SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 12/08/2014, 06:04 PM   #1
Rodney Francalim
Gangsta
 
Rodney Francalim's Avatar
 
Join Date: Jun 2010
Location: Fortaleza, CE.
Posts: 667
Reputation: 92
Default Reconectar jogador

Então, estou há alguns minutos tentando fazer uma espécie de 'reconexão' do jogador com o servidor, tentei fazer aqui de algumas maneiras e resolvi recorrer à pesquisa. Achei algumas soluções, muitas delas semelhantes e resolvi usá-las.

pawn Code:
stock Reconectar( playerid )
{
    new
        str[ 7 + 16 ],
        ip[ 16 ]
    ;

    GetPlayerIp( playerid, ip, sizeof( ip ));
    SetPVarString( playerid, "ip", ip );
    format( str, sizeof( str ), "banip %s", ip );
    SendRconCommand( str );
    printf( "DEBUG: Comando '%s' executado.", str );
    return 1;
}

public OnPlayerConnect( playerid )
{
    SetPVarString( playerid, "ip", "sem ip" );
    return 1;
}

public OnPlayerDisconnect( playerid, reason )
{
    new
        str[ 9 + 16 ],
        ip[ 16 ]
    ;

    GetPVarString( playerid, "ip", ip, 16 );
    if( strcmp( ip, "sem ip", false ) != 0 )
    {
        GetPVarString( playerid, "ip", ip, 16 );
        format( str, sizeof( str ), "unbanip %s", ip );
        SendRconCommand( str );
        printf( "DEBUG: Comando '%s' executado.", str );
    }
    return 1;
}

Pois bem, como eu fiz os DEBUG, eu pude acompanhar e está tudo normal, o servidor lê tudo isso.

No servidor, o jogador sobre 'timeout' normal, mas quando ele tenta reconectar, aparece 'You are banned from this server.' Sendo que no DEBUG aparece: "Comando 'unbanip 127.0.0.1' executado" - Tal como o comando 'banip'.

E o mais 'legal' é que o jogador loga normalmente se fechar o GTA.

Então queria saber se alguém sabe o porquê do player receber o aviso de 'You're banned from this server.'?
__________________


"O que é mais instigante nestes tempos instigantes é que ainda não estamos pensando." – Martin Heidegger
Rodney Francalim is offline   Reply With Quote
Old 12/08/2014, 06:11 PM   #2
connork
Gangsta
 
connork's Avatar
 
Join Date: May 2013
Posts: 562
Reputation: 46
Default Re: Reconectar jogador

Armazene o IP em uma string global, faça a função rodar, e em onplayerdisconnect faça a função de desbanir o IP pela variavel global.
connork is offline   Reply With Quote
Old 12/08/2014, 06:18 PM   #3
Rodney Francalim
Gangsta
 
Rodney Francalim's Avatar
 
Join Date: Jun 2010
Location: Fortaleza, CE.
Posts: 667
Reputation: 92
Default Re: Reconectar jogador

Dá no mesmo, cara. Já tinha testado assim.

O problema é que o jogador, ao tentar logar depois do 'timeout' é dado como banido, mas quando eu fecho e o GTA e logo novamente, ele não está.
__________________


"O que é mais instigante nestes tempos instigantes é que ainda não estamos pensando." – Martin Heidegger
Rodney Francalim is offline   Reply With Quote
Old 12/08/2014, 06:19 PM   #4
RoacH`
Huge Clucker
 
RoacH`'s Avatar
 
Join Date: Apr 2012
Posts: 276
Reputation: 27
Default Re: Reconectar jogador

Pode tentar algo como isso aqui,
PHP Code:
stock Reconectar(playerid) return OnPlayerConnect(playerid), SetPlayerHealth(playerid0.0), ForceClassSelection(playerid); 
RoacH` is offline   Reply With Quote
Old 12/08/2014, 06:23 PM   #5
Rodney Francalim
Gangsta
 
Rodney Francalim's Avatar
 
Join Date: Jun 2010
Location: Fortaleza, CE.
Posts: 667
Reputation: 92
Default Re: Reconectar jogador

Como isso funcionaria?

@EDIT:
Tá aí a imagem:
__________________


"O que é mais instigante nestes tempos instigantes é que ainda não estamos pensando." – Martin Heidegger
Rodney Francalim is offline   Reply With Quote
Old 12/08/2014, 06:50 PM   #6
SeV_
High-roller
 
SeV_'s Avatar
 
Join Date: Jul 2012
Location: __________________.
Posts: 1,457
Reputation: 154
Default Re: Reconectar jogador

Primeiramente você não consegue pegar o IP do player na callback OnPlayerDisconnect.

Veja a explicação por JernejL.

Isto é simples.

1. Primeiramente você precisa banir o Ip do jogador, mas não kicka ele.
2. O player se desconectará em (timeout - saiu ), No OnPlayerDisconnect você desbane o jogador - lembre que GetPlayerIp não pega na OnPlayerDisconnect, necessita armazenamento..
3. O cliente do player perderá a conexão e automaticamente se reconectará..


Sei que fizeste praticamente isto, mas era funcional antes do 0.3e.
__________________
Importação de peças para veículos do grupo VAG.
SeV_ is offline   Reply With Quote
Old 12/08/2014, 06:57 PM   #7
Rodney Francalim
Gangsta
 
Rodney Francalim's Avatar
 
Join Date: Jun 2010
Location: Fortaleza, CE.
Posts: 667
Reputation: 92
Default Re: Reconectar jogador

Justamente por isso que eu já 'getava' o IP do jogador antes do 'banip', já que eu preciso do IP do mesmo para poder bani-lo.

E de novo, os comando 'banip' e 'unbanip' são executados normalmente, o problema é que mesmo assim, quando ocorre o timeout e o client do jogador tenta reconectar, aparece o aviso de que ele está banido.

E SeV_ eu me baseei justamente no post desse cara aí.

@EDIT:

E antes do banip me refiro à função Reconectar.
__________________


"O que é mais instigante nestes tempos instigantes é que ainda não estamos pensando." – Martin Heidegger
Rodney Francalim is offline   Reply With Quote
Old 12/08/2014, 07:04 PM   #8
SeV_
High-roller
 
SeV_'s Avatar
 
Join Date: Jul 2012
Location: __________________.
Posts: 1,457
Reputation: 154
Default Re: Reconectar jogador

Já tentou com outro IP "outros jogadores" ?
__________________
Importação de peças para veículos do grupo VAG.
SeV_ is offline   Reply With Quote
Old 12/08/2014, 07:09 PM   #9
SW1FTmeister
Big Clucker
 
Join Date: Jul 2013
Location: Portugal
Posts: 97
Reputation: 0
Default Re: Reconectar jogador

Quando desbane o jogador, não se esqueça de dar reload nos bans para atualizar o servidor. Basta adicionar o seguinte:
pawn Code:
SendRconCommand("reloadbans");
SW1FTmeister is offline   Reply With Quote
Old 12/08/2014, 07:10 PM   #10
SeV_
High-roller
 
SeV_'s Avatar
 
Join Date: Jul 2012
Location: __________________.
Posts: 1,457
Reputation: 154
Default Re: Reconectar jogador

Esse sistema não é mais funcional após ao SA-MP 0.3e.
__________________
Importação de peças para veículos do grupo VAG.
SeV_ is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Jogador n é spawnado Tugamars Português/Portuguese 2 26/12/2013 09:32 PM
[Ajuda] Jogador não da Spawn dieegov Português/Portuguese 0 13/07/2013 09:03 PM
[Ajuda] Jogador Offline Smith. Português/Portuguese 4 03/02/2013 03:20 AM
Jogador Banindo shadauer Português/Portuguese 11 29/11/2012 12:39 AM
[Ajuda] Só me da valor a 1 jogador Rick_DR Português/Portuguese 1 20/08/2012 05:16 PM


All times are GMT. The time now is 06:53 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.