[Tutorial] Como kickar/banir com uma razгo
#1


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 
O comando em si

PHP код:
CMD:kick(playeridparams[])
{
    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"kickidreason)) return SendClientMessage(playeridINFO,"[ USO: ] /kick [playerid] [razгo]"); // Pega o ID do jogador e a razгo do kick
        
if(!IsPlayerConnected(kickid)) return SendClientMessage(playeridFAIL,"[ ERRO: ] O player nгo estб conectado."); // Mensagem para se o jogador nгo estiver no servidor
        
GetPlayerName(playeridnomeadminsizeof(nomeadmin)); // Pega o nome do Administrador
        
GetPlayerName(kickidnomeplayersizeof(nomeplayer)); // Pega o nome do Player
        
format(stringsizeof(string), "Tu kickaste o jogador %s."nomeplayer); // Format para o Administrador
        
format(string1sizeof(string1), "Foste kickado pelo Administrador %s. Razгo: %s"nomeadminreason); // Format para o Player
        
SendClientMessage(playeridSUCESSOstring); // Imprime a variбvel string para o Administrador
        
SendClientMessage(kickidINFOstring1); // Imprime a variбvel string2
        
SetTimer("KickTimer"50false); // Aqui executa o Timer para kickar o jogador
    
}
    else
    {
         
SendClientMessage(playeridFAIL"[ ERRO: ] Tu nгo йs Administrador."); // Nгo obrigatуrio
    
}
    return 
1;

Agora temos de criar a public KickTimer

PHP код:
public KickTimer() // "Abre" a public
{
    
Kick(kickid); // Kicka o ID setado no comando
    
return 1;

Porque funciona?
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

Reply
#2

Pode usar SetTimerEx.

Edit: Tambйm nгo precisava ter criada duas arrays no comando.
Reply
#3

Falta definir as cores nй ?
Reply
#4

Falto explicar algumas coisas em...
Mais da para o gasto.
Reply
#5

Usa uma stock para o nome do player ambos id :/

pawn Код:
stock Nome(playerid) { new Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, sizeof(Name)); return Name; }
Reply
#6

Kick(kickid); em uma public sem parametros?
Reply
#7

Quote:
Originally Posted by .FuneraL.
Посмотреть сообщение
Kick(kickid); em uma public sem parametros?
kickid й uma variбvel global.
Reply
#8

Puta merda que copia bonita !
Proxima vez use um code seu
Reply
#9

Quote:
Originally Posted by Don_Speed
Посмотреть сообщение
Puta merda que copia bonita !
Proxima vez use um code seu
Espero bem que tenha provas de que este cуdigo nгo й meu.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)