15.05.2013, 18:28
Neste tutorial vamos usar as includes ZCMD e SSCANF. As explicaзхes estгo no prуprio cуdigo.
No topo do GameMode
PHP код:
forward KickTimer(); // Criamos a forward para depois conseguirmos criar a public
new kickid; // Criamos a variбvel do ID do jogador a ser kickado
PHP код:
CMD:kick(playerid, params[])
{
if(IsPlayerAdmin(playerid)) // Nгo obrigatуrio
{
new string[128];
new string1[128];
new reason[32];
new nomeadmin[MAX_PLAYER_NAME]; // Nгo obrigatуrio
new nomeplayer[MAX_PLAYER_NAME]; // Nгo obrigatуrio
if(sscanf(params, "us", kickid, reason)) return SendClientMessage(playerid, INFO,"[ USO: ] /kick [playerid] [razгo]"); // Pega o ID do jogador e a razгo do kick
if(!IsPlayerConnected(kickid)) return SendClientMessage(playerid, FAIL,"[ ERRO: ] O player nгo estб conectado."); // Mensagem para se o jogador nгo estiver no servidor
GetPlayerName(playerid, nomeadmin, sizeof(nomeadmin)); // Pega o nome do Administrador
GetPlayerName(kickid, nomeplayer, sizeof(nomeplayer)); // Pega o nome do Player
format(string, sizeof(string), "Tu kickaste o jogador %s.", nomeplayer); // Format para o Administrador
format(string1, sizeof(string1), "Foste kickado pelo Administrador %s. Razгo: %s", nomeadmin, reason); // Format para o Player
SendClientMessage(playerid, SUCESSO, string); // Imprime a variбvel string para o Administrador
SendClientMessage(kickid, INFO, string1); // Imprime a variбvel string2
SetTimer("KickTimer", 50, false); // Aqui executa o Timer para kickar o jogador
}
else
{
SendClientMessage(playerid, FAIL, "[ ERRO: ] Tu nгo йs Administrador."); // Nгo obrigatуrio
}
return 1;
}
PHP код:
public KickTimer() // "Abre" a public
{
Kick(kickid); // Kicka o ID setado no comando
return 1;
}
Isto funciona porque o Timer dб tempo ao servidor para enviar as mensagens ao jogador, antes de o kickar.
Porque nгo funciona sу com a funзгo kick(playerid)?
Porque o servidor nгo tem tempo de enviar as mensagens, antes de kickar o jogador.
Alguma dъvida, perguntem