[Pedido] Cуdigo para lidar com jogadores nгo sincronizados?
#1

Estava tendo diversos problemas com jogadores nгo sincronizados.

Achei esse tуpico explicando direitinho: https://sampforum.blast.hk/showthread.php?tid=659658

Mas ainda resta a dъvida, qual a melhor forma de lidar com isso? Vcs tem algum cуdigo pra detectar e kickar? Qual funзгo vcs usam? Compartilhem ai pfvr
Reply
#2

Quote:
Originally Posted by gmstrikker
Посмотреть сообщение
Estava tendo diversos problemas com jogadores nгo sincronizados.

Achei esse tуpico explicando direitinho: https://sampforum.blast.hk/showthread.php?tid=659658

Mas ainda resta a dъvida, qual a melhor forma de lidar com isso? Vcs tem algum cуdigo pra detectar e kickar? Qual funзгo vcs usam? Compartilhem ai pfvr
Eu achei o cуdigo desse tutorial o suficiente pra utilizar, mas vocк pode usar uma funзгo pra reconectar o jogador automaticamente

PHP код:
    if(IsPlayerSync{playerid} == true)
    {
        new 
pIp[16];
        
GetPlayerIp(playeridpIpsizeof(pIp) );
        
SetPVarString(playerid"reconectIP"pIp);
        new 
str[22];
        
format(strsizeof(str), "banip %s"pIp);
        
SendClientMessage(playerid, -1"Vocк foi reconectado por estar desincronizado (Relogio travado) para evitar problemas.");
        
SendRconCommand(str);
    } 
Em onplayerdisconnect vocк coloca isso

PHP код:
    new reconnect[16], strquit[24];
    
GetPVarString(playerid"reconectIP"reconnect16);
    
format(strquitsizeof(strquit), "unbanip %s"reconnect);
    
SendRconCommand(strquit); 
Reply
#3

Para se reconectar pode-se utilizar a funзгo: BlockIpAddress, assim nгo serб necessбrio banir o jogador e conseguinte desbanir.
Reply
#4

Verifica se o ping dele estб alto, se estiver kicka
Reply
#5

Quote:
Originally Posted by GSantana
Посмотреть сообщение
Verifica se o ping dele estб alto, se estiver kicka
Reply
#6

Opa vlw rapaziada, dei um +rep pra cada um dos que ma ajudaram, desculpa a demora, eu tinha desistido, muito obrigado mesmo.

Nгo tenho como testar e nгo tenho experiencia para dizer se estб certo, alguйm com experiencia ou que consiga parar o tempo tem como me dizer se isso aqui estб certo?

Код:
public OnPlayerUpdate(playerid)
{
    // tempo parado
    if(gettime() > PlayerUpdateTick[playerid])
    {
        static current_weapon, current_ammo;
        PlayerUpdateTick[playerid] = gettime() + 2;
        GetPlayerWeaponData(playerid, 0, current_weapon, current_ammo);
        IsPlayerSynced{playerid} = (current_ammo != PlayerAmmo{playerid});
        SetPlayerAmmo(playerid, current_weapon, !current_ammo);
        PlayerAmmo{playerid} = current_ammo;
        if(IsPlayerSync{playerid} == true) {
            SendClientMessage(playerid, -1, "Vocк foi reconectado por estar desincronizado (Relogio Travado) para evitar problemas."); 
            BlockIpAddress(ip, 10 * 1000); // 10 segundos
        }
    }
    return 1;
}
Reply
#7

upppp
Reply
#8

Quote:
Originally Posted by gmstrikker
Посмотреть сообщение
upppp
Ao inves disso tambйm poderia kickar o player usando a funзгo nativa "Kick(playerid)"
Reply
#9

Quote:

Ao inves disso tambйm poderia kickar o player usando a funзгo nativa "Kick(playerid)"
Kick(playerid, ""); // ("Motivo")
Reply
#10

Quote:
Originally Posted by MrToddyYT
Посмотреть сообщение
Kick(playerid, ""); // ("Motivo")
PHP код:
native Kick(playerid); 
Reply
#11

Esse IsPlayerSync, pelo menos no meu GM, nгo funcionou.

Encheu de falsos positivos. O Bruno disse que й possнvel fazer o mesmo com SetPlayerDrunkLevel, mas nгo sei como.
Reply
#12

Quote:
Originally Posted by KoloradO
Посмотреть сообщение
Esse IsPlayerSync, pelo menos no meu GM, nгo funcionou.

Encheu de falsos positivos. O Bruno disse que й possнvel fazer o mesmo com SetPlayerDrunkLevel, mas nгo sei como.
Putz, dai й tenso, to tendo muito problemas com esses jogadores com tempo parado...
Serб que nгo tem soluзгo? Varios outros servers que eu jogava tbm sofriam com isso
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)