SA-MP Forums Archive
[Tutorial] Como kickar/banir com uma razгo - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Tutorial] Como kickar/banir com uma razгo (/showthread.php?tid=437453)



Como kickar/banir com uma razгo - bruxo00 - 15.05.2013


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




Re: Como kickar/banir com uma razгo - Jason` - 15.05.2013

Pode usar SetTimerEx.

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


Re: Como kickar/banir com uma razгo - BreakDriFT - 15.05.2013

Falta definir as cores nй ?


Re: Como kickar/banir com uma razгo - AlucardSnow - 15.05.2013

Falto explicar algumas coisas em...
Mais da para o gasto.


Re: Como kickar/banir com uma razгo - mau.tito - 15.05.2013

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; }



Re: Como kickar/banir com uma razгo - .FuneraL. - 15.05.2013

Kick(kickid); em uma public sem parametros?


Re: Como kickar/banir com uma razгo - Jason` - 15.05.2013

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


Re: Como kickar/banir com uma razгo - Don_Speed - 15.05.2013

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



Re: Como kickar/banir com uma razгo - bruxo00 - 15.05.2013

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.