Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2017-01-21, 21:28


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Napotka?em dzi? taki problem, ?e je?li gracz wyjdzie z serwera, to pokazuje IP: 255.255.255.255 ,zamiast jego poprawnego.

Pawn
    new string[128];
    new pIPx[16];
    GetPlayerIp(playeridpIPxsizeof(pIPx));
    switch(reason)
    {
        case 0format(stringsizeof(string), "{A0A0A0}[QUIT] Info: {D1D1D1}%s (IP: %s) opu?ci?(a) serwer. (Brak Po??czenia/Crash)"PlayerName(playerid), pIPx);
        case 1format(stringsizeof(string), "{A0A0A0}[QUIT] Info: {D1D1D1}%s (IP: %s) opu?ci?(a) serwer. (Koniec Gry)"PlayerName(playerid), pIPx);
        case 2format(stringsizeof(string), "{A0A0A0}[QUIT] Info: {D1D1D1}%s (IP: %s) opu?ci?(a) serwer. (Kick/Ban)"PlayerName(playerid), pIPx);
    }
       SendToAdmins(string);
    SendToPolice(string);



Drugi problem:
Gdy gracz zaloguje si? na rcon ale nie ma w bazie ustawionej 2 przy adminLVL to powinno go wyrzuci?, ale tak nie jest. Kodzik:

Pawn
public OnRconLoginAttempt(ip[], password[], success)
{
    if(success)
    {
        for(new 0MAX_PLAYERSi++)
        {
            if(IsPlayerConnected(i))
            {
                new strA[128];
                   format(strAsizeof(strA), "SELECT `AdminLVL` FROM `Gracze` WHERE `Nick` = '%s' AND `AdminLVL` = '2'"PlayerName(i));
                mysql_query(strA);
                mysql_store_result();

                if(!mysql_num_rows()) //nieautoryzowany dost?p
                {
                     Kick(i);
                 }else if(mysql_num_rows())
                 {
                     pGracz[i][AdminLVL] = 2;
                     return 1;
                 }
             }

            mysql_free_result();
        }
    }
    return 1;
}


//Z tym pierwszym problem chyba wyja?niony, bo przy disconnect nie zd??a pobra? IP tego gracza

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-21, 22:08


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
http://wiki.sa-mp.com/wiki/OnPlayerDisconnect

Cytat:

Some functions might not work correctly when used in this callback because the player is already disconnected when the callback is called. This means that you can't get unambiguous information from functions like GetPlayerIP and GetPlayerPos.


Rozwi?zaniem jest pobranie IP gracza do tablicy w callbacku OnPlayerConnect i u?ywa? IP z tablicy. Co do drugiego problemu, to nie ma w og?le sprawdzania kto si? zalogowa? na rcona. Masz p?tl?, ok - na rcona zaloguje si? gracz ID 1, a pierwszy po??czony b?dzie np. gracz ID 0, warunek si? spe?ni dla gracza ID 0, bo jest po??czony z serwerem. Musisz jeszcze pobra? IP ka?dego gracza i por?wna? z tym, kt?re si? zalogowa?o.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-21, 22:22


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

"Combacior" napisał/a:

Musisz jeszcze pobra? IP ka?dego gracza i por?wna? z tym, kt?re si? zalogowa?o.


a je?li w og?le nie pobieram IP gracza, kt?ry ma si? zalogowa? na rcon?
Tylko gdy ma ustawiony AdminLVL '2', to mo?e si? zalogowa?, a je?li nie, to go wyrzuci z serwera.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-21, 22:30


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Musisz pobra? IP gracza w p?tli i por?wna? z tym, kt?re si? zalogowa?o, bo jak sprawdzisz kto si? zalogowa?? W callbacku nie ma argumentu playerid, jest tylko IP gracza, kt?ry si? zalogowa?.

Kod:

public OnRconLoginAttempt(ip[], password[], success)
{
if(success)
{
for(new i, p_ip[16 + 1]; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
GetPlayerIp(i, p_ip, 16);

if(!strcmp(ip, p_ip))
{
//ten gracz sie zalogowal, dalszy kod
break;
}
}
}
}
return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-21, 22:35


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

No tak, racja xD wszystko dzia?a, dzi?ki!

Postaw piwo autorowi tego posta
 

 
Tagi: przy :: disconnect :: rconattemp
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku