Este tutorial es para crear el comando AFK es muy simple pero a algunos les cuesta.
Arriba en tu GM(Gamemode)
Definiremos esto:
#define COLOR_NARANJO 0xFF9900AA
Esto es un Color que utilizaremos mas adelante.
Ahora abajo de los Defines pongamos esto:
new afk[MAX_PLAYERS];
Esto lo utilizaremos enseguida para nuestro comando de AFK
Buscaremos el Public "OnPlayerCommandText"
y pondremos esto:
if(afk[playerid] == 1 && strcmp(cmdtext, "/volver", true))
{
SendClientMessage(playerid,COLOR_NARANJO, "Puedes quitar el modo AFK con: /volver");
return 1;
}
Esto hace que no deje ocupar ningun comando mientra estes AFK.
/volver sera el unico comando que podramos ocupar.
Ahora crearemos el Comando para Avisar que estamos AFK y Congerlarnos.
if(strcmp(cmdtext, "/afk", true) == 0)
{
afk[playerid] = 1;
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, COLOR_ORANGE, " Si ya haz vuelto pon /volver ");
new str[256],nombre[24];
GetPlayerName(playerid,nombre,sizeof(nombre));
format(str,sizeof(str),"%s esta Ausente (Afk)",nombre,cmdtext);
SendClientMessageToAll(0xFFFFFFFF, str);
return 1;
}
Afk[playerid] = 1; Hace que funcione el bloqueo de comandos.
TogglePlayerControllable(playerid,0); Hace que se congele el Jugador.
playerid : Define la ID del jugador que esta ocupando la funcion.
SendClientMessage : Manda un Pensaje al Jugador
Lo mas importante, El mensaje a los demas jugadores.
new str : Define el Texto que se mostrara a los demas.
nombre[24] : Define el Nombre del Jugador.
format(str,sizeof(str),"%s esta Ausente (Afk)",nombre,cmdtext); : Es el Mensaje que se mostrara a los Usuarios.
SendClientMessageToAll(0xFFFFFFFF, str); : Es la funcion que hara que muestre el mensaje a todos los usuarios.
Ahora crearemos el Comando para Volver del AFK.
if(strcmp(cmdtext, "/volver", true) == 0)
{
afk[playerid] = 0;
new str[256],nombre[24];
GetPlayerName(playerid,nombre,sizeof(nombre));
format(str,sizeof(str),"%s a vuelto(Afk Off)",nombre,cmdtext);
SendClientMessageToAll(0xFFFFFFFF, str);
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid,COLOR_NARANJO," Haz vuelto. ");
return 1;
}
afk[playerid] = 0; Es lo que hara que deje de funcionar el Bloqueo de Comandos
TogglePlayerControllable(playerid,1); : Hace que se descongele el jugador.
Ojala les sirva :D!
Si me falta algo porfavor digan
Y digan sus dudas cauros yo se las respondo ;3!
Recomendacion: Hacerlo para un Gamemode porque en un Filterscript no bloquera los comandos ya que se encuentran en otro archivo en este caso del Gamemode.
Saludos!