[Pedido] Relogar
#1

Alguйm sabe um sistema de relogar sem sair do SAMP?

Um comando /relogar onde o player desconecta e reconecta no servidor sem sair no /q.

Obs: tem que ser pra versгo 0.3.7

Alguйm pra ajudar?

С peзam pra usar o search, pois eu usei mas n encontrei.

+Rep pra quem ajudar
Reply
#2

achei esse code:

Quote:
Originally Posted by davi54723
Посмотреть сообщение
Acho que seria isso...
PHP код:

new boolisRelogging[MAX_PLAYERS], relogPlayerIP[MAX_PLAYERS][17];
public 
OnPlayerDisconnect(playerid)
{
    if(
isRelogging[playerid])
    {
        new 
string[30];
        
isRelogging[playerid] = false;
        
format(stringsizeof(string), "unbanip %s"relogPlayerIP[playerid]);
        
SendRconCommand(string);
    }
    return 
1;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if(!
strcmp(cmdtext"/relog"true))
    {
        new 
string[30];
        
isRelogging[playerid] = true;
        
GetPlayerIp(playeridrelogPlayerIP[playerid], 17);
        
format(stringsizeof(string), "banip %s"relogPlayerIP[playerid]);
        
SendRconCommand(string);
        
SendClientMessage(playerid, -1"Reconnecting...");
        return 
1;
    }
    return 
0;

nгo existe comando para reconnectar exatamente, entгo essa funзгo bani vocк do servidor e logo faz vocк reconnectar se desbanindo, que faz o player pensar que й um comando para reconnectar
Reply
#3

С pegou cara :/
Reply
#4

Basta isso :

Код:
new ReconnectIP[MAX_PLAYERS][32];
new bool: Reconnecting[MAX_PLAYERS];
dps em OnPlayerDisconnect

Код:
	if(Reconnecting[playerid] == true)
	{
	    new string[64];
	    format(string, sizeof(string), "unbanip %s", ReconnectIP[playerid]);
	    SendRconCommand(string);
	    Reconnecting[playerid] = false;
	}
dps o comando

Код:
CMD:relogar(playerid,params[])
{
	if(IsPlayerConnected(playerid))
	{
		new Float:arm;
		GetPlayerArmour(playerid,arm);
		if(arm < 100) return SendClientMessage(playerid,azul,"Vocк sу pode usar /relogar com a vida/colete cheios!");
	    new
     	string[64];
	    new playerIP[32];
	    GetPlayerIp(playerid, playerIP, sizeof(playerIP));
	    format(ReconnectIP[playerid], MAX_IP_SIZE, "%s", playerIP);
	    format(string, sizeof(string), "banip %s", playerIP);
	    SendRconCommand(string);
	    SendClientMessage(playerid, -1, "Relogando....");
	    Reconnecting[playerid] = true;
	    return 1;
	}
	return 1;
}
+rep PF
Reply
#5

Vou rever meu sistema de ban ip, mas obrigado.
Reply
#6

Quote:
Originally Posted by TatuTM
Посмотреть сообщение
Basta isso :

Код:
new ReconnectIP[MAX_PLAYERS][32];
new bool: Reconnecting[MAX_PLAYERS];
dps em OnPlayerDisconnect

Код:
	if(Reconnecting[playerid] == true)
	{
	    new string[64];
	    format(string, sizeof(string), "unbanip %s", ReconnectIP[playerid]);
	    SendRconCommand(string);
	    Reconnecting[playerid] = false;
	}
dps o comando

Код:
CMD:relogar(playerid,params[])
{
	if(IsPlayerConnected(playerid))
	{
		new Float:arm;
		GetPlayerArmour(playerid,arm);
		if(arm < 100) return SendClientMessage(playerid,azul,"Vocк sу pode usar /relogar com a vida/colete cheios!");
	    new
     	string[64];
	    new playerIP[32];
	    GetPlayerIp(playerid, playerIP, sizeof(playerIP));
	    format(ReconnectIP[playerid], MAX_IP_SIZE, "%s", playerIP);
	    format(string, sizeof(string), "banip %s", playerIP);
	    SendRconCommand(string);
	    SendClientMessage(playerid, -1, "Relogando....");
	    Reconnecting[playerid] = true;
	    return 1;
	}
	return 1;
}
+rep PF
Cara nгo foi praticamente o Cуdigo que eu mandei ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)