Muitas pessoas que têm o comando /relogar usam a maneira com "banip 04.04.04.04", assim como no exemplo:
peão Код:- Código:
#include <zcmd>
#define FILTERSCRIPT
novo ireconnect [ MAX_PLAYERS ] ;
public OnPlayerDisconnect ( playerid, razão )
{
if ( ireconnect [ playerid ] == 1 )
{
new unbanningip [ 16 ] , string [ 128 ] ;
GetPVarString ( playerid, "reconectar" , unbanningip, 16 ) ; // Obtém a string msg do
formato PVar( string, sizeof ( string ) , "unbanip %s" , unbanipip ) ;
SendRconCommand ( string ) ;
printf ( string ) ;
SendRconCommand ( "reloadbans" ) ;
ireconnect [ playerid ] = 0 ;
}
retorna 1 ;
}
//==================================================== ===============================
//Reconectar
//================================================ ==============================
COMANDO : reconectar ( playerid, params [ ] )
{
novo pid;
if ( sscanf ( params, "us" , pid, params [ 2 ] ) ) return SendClientMessage ( playerid, 0xFF0000AA, "Uso do Comando: /reconectar [playerid] [motivo]" ) ;
if ( nível [ playerid ] >= 1 || viplevel [ playerid] == 2 ) //altere-os para o jeito que você obteve em seu script de administração. foi assim que consegui, então..
{
if ( ! IsPlayerConnected ( pid ) ) return SendClientMessage ( playerid, red, "ERRO: Esse jogador não está online." ) ;
novo adminname [ MAX_PLAYER_NAME ] , paramname [ MAX_PLAYER_NAME ] , string [ 180 ] ;
novo ip [ 16 ] ;
GetPlayerIp( pid, ip, sizeof ( ip ) ) ;
GetPlayerName ( pid, paramname, sizeof ( paramname ) ) ;
GetPlayerName ( playerid, adminname, sizeof ( adminname ) ) ;
format ( string, sizeof ( string ) , "Administrador %s forçou %s a se reconectar. [Razão: %s]" , adminname, paramname, params [ 2 ] ) ;
SendClientMessageToAll (vermelho, corda ) ;
imprimir ( string ) ;
formato ( string, sizeof ( string ) , "banip %s" , ip ) ;
SetPVarString ( pid, "reconectar" , ip ) ;
conectar [ pid ] = 1 ;
SendRconCommand ( string ) ;
}
else SendClientMessage ( playerid, red,"Erro: você deve ser um administrador de nível superior para usar esse comando." ) ;
retornar 1 ;
}
Logo após ser lançada a função BlockIpAddress lá na 0.3z R2 (Não tenho certeza se foi a R2 rs), o comando para o jogador reconectar ao servidor pode ser feito de uma maneira muito mais simples, sem complicações e o risco do servidor travar (por outro motivo) na hora que o ip do tal jogador foi banido para relogar, irá continuar banido no samp.ban.
peão Код:- Código:
[size=14][size=13]#include <zcmd> //inclui um include do processador de comandos
CMD : relogar ( playerid )
{
SendClientMessage ( playerid, - 1 , "{ffff00}Reconectando, aguarde..." ) ; //envia uma mensagem ao cliente
BlockIpAddress ( GetPlayerIpEx ( playerid ) , 11000 ) ; //gera e bloqueia o ip do cliente por 11 segundos, assim dando tempo certo dele relogar
return 1 ;
}
estoque GetPlayerIpEx ( playerid ) //a stock onde gera o ip com mais facilidade, também podendo ser usado em outros scripts
{
new pip [ 16 ] ;
GetPlayerIp ( playerid, pip, 16 ) ; pip
de retorno ;
}[/size][/size]
[center][/center]
Algo simples e ъtil, espero ter ajudado.
Creditos: Krusheer