Saltar al contenido
  • Global

    Global

    Chatroom Rules

    • NO SE DA SOPORTE EN CHATBOX
    • NO SPAM
    • NO FLOOD

[TUTORIAL] Crear un sistema de AFK simple


Publicaciones recomendadas

  • Usuario
Publicado (editado)

Hola, hoy os voy a enseñar como crear un sistema de AFK simple, os lo explico todo en los comentarios de los comandos y funciones.

 

Empecemos.

 

Primero de todo, tienen que tener el include a_samp, si no lo tienen, vayan a arriba de todo del GM y ponen:

 

#include <a_samp>

 

Ahora, debajo de los includes/defines/news, ponen esto:

 

#define ROJO 0xF10000FF //define el color ROJO
#define VERDE 0x006500FF //define el color VERDE
#define AZUL 0x000071FF //define el color AZUL
#define NARANJA 0xBF6500FF //define el color NARANJA[/color]
[color=#444444]new EstaEnAFK[MAX_PLAYERS]; //Define EstaEnAFK, y el MAX_PLAYERS hace que esta variable se actualiza por cada jugador
new Float:ReponerVida; //Define Reponer Vida en Float

 

 

Vamos al public OnPlayerText(playerid, text[]) y agregan esta funcion:

 

if(EstaEnAFK[playerid] == 1)//Dice que si el jugador esta en AFK hara lo siguiente
{
SendClientMessage(playerid,ROJO,"Si estás en AFK, no puedes hablar, pon /volverafk para volver a jugar"); //envia un mensaje diciendo al player que si está en modo AFK, no puede hablar
return 0;
}

 

Ahora, vamos a OnPlayerCommandText y agregan estos dos comandos:

 

 

 


[indent=1][color=#000000][color=#0000FF]new[/color] string[[color=#0B0B61]2[/color][color=#0B0B61]5[/color][color=#0B0B61]6[/color]]; [color=#000000]//[/color]define string, que se podrán poner [color=#0B0B61]2[/color][color=#0B0B61]5[/color][color=#0B0B61]6[/color] caracteres
[color=#0000FF]new[/color] NombreJugador[MAX_PLAYER_NAME]; [color=#000000]//[/color]Define NombreJugador, servira para captar el nombre del jugador que pone el comando
[color=#0000FF]if[/color] (strcmp([color=#0B0B61]"/ponerafk"[/color], cmdtext, [color=#0000FF]true[/color]) == [color=#0B0B61]0[/color]) [color=#000000]//[/color] dice que el comando es /ponerafk
{
[color=#0000FF]if[/color](EstaEnAFK[playerid] == [color=#0B0B61]1[/color]) [color=#000000]//[/color]si esta en afk, enviará lo siguiente
{
[color=#0000FF]return[/color] SendClientMessage(playerid,ROJO,[color=#0B0B61]"Ya estás en modo AFK"[/color]); [color=#000000]//[/color]un mensaje diciendo que ya estas en modo afk
}
EstaEnAFK[playerid] = [color=#0B0B61]1[/color]; [color=#000000]//[/color] define que el jugador esta afk poniendo la variable EstaEnAFK en [color=#0B0B61]1[/color]
SetPlayerVirtualWorld(playerid, [color=#0B0B61]6[/color]);[color=#000000]//[/color]pone el virtualworld del jugador al [color=#0B0B61]6[/color], asi sera invisible a los demas
GetPlayerHealth(playerid, ReponerVida); [color=#000000]//[/color]coje la vida y la guarda en la variable RepnerVida, para despues ser usada para reponerle la vida que tenia el jugador
SetPlayerHealth(playerid,[color=#0B0B61]9[/color][color=#0B0B61]9[/color][color=#0B0B61]9[/color][color=#0B0B61]9[/color]); [color=#000000]//[/color]pone en [color=#0B0B61]9[/color][color=#0B0B61]9[/color][color=#0B0B61]9[/color][color=#0B0B61]9[/color] la vida del jugador
SendClientMessage(playerid,NARANJA,[color=#0B0B61]"Ahora estás en modo AFK"[/color]); [color=#000000]//[/color]envia un mensaje al jugador diciendo que esta en modo afk
SendClientMessage(playerid,NARANJA,[color=#0B0B61]"Usa /volverafk para volver a jugar"[/color]);[color=#000000]//[/color]envia un mensaje al jugador diciendo que use /volverafk para quitarse del modo afk
GetPlayerName(playerid, NombreJugador, MAX_PLAYERS); [color=#000000]//[/color]coje el nombre del jugador que ha usado el comando y lo guarda en NombreJugador
format(string, [color=#0000FF]sizeof[/color](string), [color=#0B0B61]"%s está en modo AFK"[/color], NombreJugador);[color=#000000]//[/color]crea en el string un texto que tiene un %s que es el nombre del jugador
SendClientMessageToAll(AZUL,string); [color=#000000]//[/color]envia el string a todos los jugadores
TogglePlayerControllable(playerid,[color=#0B0B61]0[/color]); [color=#000000]//[/color]hace incontrolable el jugador [color=#000000]([/color]congelado[color=#000000])[/color]
[color=#0000FF]return[/color] [color=#0B0B61]1[/color];
}

[color=#0000FF]if[/color] (strcmp([color=#0B0B61]"/volverafk"[/color], cmdtext, [color=#0000FF]true[/color]) == [color=#0B0B61]0[/color])
{
[color=#0000FF]if[/color](EstaEnAFK[playerid] == [color=#0B0B61]0[/color])[color=#000000]//[/color]dice que si la variable EstaEnAFK esta en [color=#0B0B61]0[/color] hara la siguiente funcion
{
[color=#0000FF]return[/color] SendClientMessage(playerid,ROJO,[color=#0B0B61]"No estas AFK!"[/color]); [color=#000000]//[/color] enviara un mensaje al usuario diciendo que el no estaba en afk
}
EstaEnAFK[playerid] = [color=#0B0B61]0[/color];[color=#000000]//[/color]pone la variable EstaEnAFK en [color=#0B0B61]0[/color], ahra el jugador ya no esta en AFK
SetPlayerVirtualWorld(playerid, [color=#0B0B61]0[/color]); [color=#000000]//[/color]pone al jugador en el VirtualWorld [color=#0B0B61]0[/color], asi ya lo pueden ver los demas y el puede ver a los demas
SetPlayerHealth(playerid,ReponerVida);[color=#000000]//[/color]pone la vida del jugador en la que tenia antes, gracias a que la hemos guardado en la variable ReponerVida
SendClientMessage(playerid,VERDE,[color=#0B0B61]"Ya no estás en modo AFK"[/color]); [color=#000000]//[/color]envia un mensaje al jugador diciendo que ya no esta en modo afk
GetPlayerName(playerid, NombreJugador, MAX_PLAYERS);[color=#000000]//[/color]coje el nombre del jugador y lo guarda en NombreJugador
format(string, [color=#0000FF]sizeof[/color](string), [color=#0B0B61]"%s ya no está en modo AFK"[/color], NombreJugador); [color=#000000]//[/color]crea un string con un %s que será NombreJugador
SendClientMessageToAll(NARANJA,string); [color=#000000]//[/color]envia el mensaje a todos los jugadores
TogglePlayerControllable(playerid,[color=#0B0B61]1[/color]); [color=#000000]//[/color]hace controlable al jugador
[color=#0000FF]return[/color] [color=#0B0B61]1[/color];
}[/color][/indent]

 

Listo, ya tenemos el Sistema de AFK

 

Creditos: Ale[X]

 

un saludo!!

Editado por CeKiT
  • Usuario
Publicado

Hola, hoy os voy a enseñar como crear un sistema de AFK simple, os lo explico todo en los comentarios de los comandos y funciones.

 

Empecemos.

 

Primero de todo, tienen que tener el include a_samp, si no lo tienen, vayan a arriba de todo del GM y ponen:

 

#include <a_samp>

 

Ahora, debajo de los includes/defines/news, ponen esto:

 

#define ROJO 0xF10000FF //define el color ROJO
#define VERDE 0x006500FF //define el color VERDE
#define AZUL 0x000071FF //define el color AZUL
#define NARANJA 0xBF6500FF //define el color NARANJA[/color]
[color=#444444]new EstaEnAFK[MAX_PLAYERS]; //Define EstaEnAFK, y el MAX_PLAYERS hace que esta variable se actualiza por cada jugador
new Float:ReponerVida; //Define Reponer Vida en Float

 

 

Vamos al public OnPlayerText(playerid, text[]) y agregan esta funcion:

 

if(EstaEnAFK[playerid] == 1)//Dice que si el jugador esta en AFK hara lo siguiente
{
SendClientMessage(playerid,ROJO,"Si estás en AFK, no puedes hablar, pon /volverafk para volver a jugar"); //envia un mensaje diciendo al player que si está en modo AFK, no puede hablar
return 0;
}

 

Ahora, vamos a OnPlayerCommandText y agregan estos dos comandos:

 

 

 


[indent=1][color=#000000][color=#0000FF]new[/color] string[[color=#0B0B61]2[/color][color=#0B0B61]5[/color][color=#0B0B61]6[/color]]; [color=#000000]//[/color]define string, que se podrán poner [color=#0B0B61]2[/color][color=#0B0B61]5[/color][color=#0B0B61]6[/color] caracteres
[color=#0000FF]new[/color] NombreJugador[MAX_PLAYER_NAME]; [color=#000000]//[/color]Define NombreJugador, servira para captar el nombre del jugador que pone el comando
[color=#0000FF]if[/color] (strcmp([color=#0B0B61]"/ponerafk"[/color], cmdtext, [color=#0000FF]true[/color]) == [color=#0B0B61]0[/color]) [color=#000000]//[/color] dice que el comando es /ponerafk
{
[color=#0000FF]if[/color](EstaEnAFK[playerid] == [color=#0B0B61]1[/color]) [color=#000000]//[/color]si esta en afk, enviará lo siguiente
{
[color=#0000FF]return[/color] SendClientMessage(playerid,ROJO,[color=#0B0B61]"Ya estás en modo AFK"[/color]); [color=#000000]//[/color]un mensaje diciendo que ya estas en modo afk
}
EstaEnAFK[playerid] = [color=#0B0B61]1[/color]; [color=#000000]//[/color] define que el jugador esta afk poniendo la variable EstaEnAFK en [color=#0B0B61]1[/color]
SetPlayerVirtualWorld(playerid, [color=#0B0B61]6[/color]);[color=#000000]//[/color]pone el virtualworld del jugador al [color=#0B0B61]6[/color], asi sera invisible a los demas
GetPlayerHealth(playerid, ReponerVida); [color=#000000]//[/color]coje la vida y la guarda en la variable RepnerVida, para despues ser usada para reponerle la vida que tenia el jugador
SetPlayerHealth(playerid,[color=#0B0B61]9[/color][color=#0B0B61]9[/color][color=#0B0B61]9[/color][color=#0B0B61]9[/color]); [color=#000000]//[/color]pone en [color=#0B0B61]9[/color][color=#0B0B61]9[/color][color=#0B0B61]9[/color][color=#0B0B61]9[/color] la vida del jugador
SendClientMessage(playerid,NARANJA,[color=#0B0B61]"Ahora estás en modo AFK"[/color]); [color=#000000]//[/color]envia un mensaje al jugador diciendo que esta en modo afk
SendClientMessage(playerid,NARANJA,[color=#0B0B61]"Usa /volverafk para volver a jugar"[/color]);[color=#000000]//[/color]envia un mensaje al jugador diciendo que use /volverafk para quitarse del modo afk
GetPlayerName(playerid, NombreJugador, MAX_PLAYERS); [color=#000000]//[/color]coje el nombre del jugador que ha usado el comando y lo guarda en NombreJugador
format(string, [color=#0000FF]sizeof[/color](string), [color=#0B0B61]"%s está en modo AFK"[/color], NombreJugador);[color=#000000]//[/color]crea en el string un texto que tiene un %s que es el nombre del jugador
SendClientMessageToAll(AZUL,string); [color=#000000]//[/color]envia el string a todos los jugadores
TogglePlayerControllable(playerid,[color=#0B0B61]0[/color]); [color=#000000]//[/color]hace incontrolable el jugador [color=#000000]([/color]congelado[color=#000000])[/color]
[color=#0000FF]return[/color] [color=#0B0B61]1[/color];
}

[color=#0000FF]if[/color] (strcmp([color=#0B0B61]"/volverafk"[/color], cmdtext, [color=#0000FF]true[/color]) == [color=#0B0B61]0[/color])
{
[color=#0000FF]if[/color](EstaEnAFK[playerid] == [color=#0B0B61]0[/color])[color=#000000]//[/color]dice que si la variable EstaEnAFK esta en [color=#0B0B61]0[/color] hara la siguiente funcion
{
[color=#0000FF]return[/color] SendClientMessage(playerid,ROJO,[color=#0B0B61]"No estas AFK!"[/color]); [color=#000000]//[/color] enviara un mensaje al usuario diciendo que el no estaba en afk
}
EstaEnAFK[playerid] = [color=#0B0B61]0[/color];[color=#000000]//[/color]pone la variable EstaEnAFK en [color=#0B0B61]0[/color], ahra el jugador ya no esta en AFK
SetPlayerVirtualWorld(playerid, [color=#0B0B61]0[/color]); [color=#000000]//[/color]pone al jugador en el VirtualWorld [color=#0B0B61]0[/color], asi ya lo pueden ver los demas y el puede ver a los demas
SetPlayerHealth(playerid,ReponerVida);[color=#000000]//[/color]pone la vida del jugador en la que tenia antes, gracias a que la hemos guardado en la variable ReponerVida
SendClientMessage(playerid,VERDE,[color=#0B0B61]"Ya no estás en modo AFK"[/color]); [color=#000000]//[/color]envia un mensaje al jugador diciendo que ya no esta en modo afk
GetPlayerName(playerid, NombreJugador, MAX_PLAYERS);[color=#000000]//[/color]coje el nombre del jugador y lo guarda en NombreJugador
format(string, [color=#0000FF]sizeof[/color](string), [color=#0B0B61]"%s ya no está en modo AFK"[/color], NombreJugador); [color=#000000]//[/color]crea un string con un %s que será NombreJugador
SendClientMessageToAll(NARANJA,string); [color=#000000]//[/color]envia el mensaje a todos los jugadores
TogglePlayerControllable(playerid,[color=#0B0B61]1[/color]); [color=#000000]//[/color]hace controlable al jugador
[color=#0000FF]return[/color] [color=#0B0B61]1[/color];
}[/color][/indent]

 

Listo, ya tenemos el Sistema de AFK

 

un saludo!!

http://puu.sh/mopd

seria mejor si pusieras los creditos, en todo caso igual vale.

  • Usuario
Publicado

si quieren algun script o necestan ayuda me dicen

 

si quieren algun script o necestan ayuda me dicen

 

si quieren algun script o necestan ayuda me dicen

  • Usuario
Publicado

y quien es la de la foto de perfil??? Stallin de pawnoscripting tienen esa misma foto xd

  • 4 months later...
  • Usuario
Publicado

¿Tutorial?

 

No veo la explicacion de las partes, se supone que esto es para que aprendan y no para que hagan copy paste!

 

eso...

No revivas temas viejos te podrían sancionar :/.
Invitado
Este tema está cerrado a nuevas respuestas.
  • Explorando recientemente   0 miembros

    • No hay usuarios registrados viendo esta página.
×
×
  • Crear nuevo...