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

Wysłany: 2014-08-26, 20:37


Loghain







Wiek: 29
Na forum: 4506 dni
Posty: 51

Piwa: 1

Respekt: 50

Mam ma?y problem z rejestracj?, a mianowicie gdy kto? wchodzi pierwszy raz na serwer i nie wpisuj?ca has?a kliknie Rejestracja to poka?e mu ?e nie wpisa? has?a, ale gdy si? roz??czy i wejdzie to ma logowanie x.x

Jak naprawi? to niedopatrzenie?
Kod:

#define LOGIN 1 //rejestracja
#define REGISTER 2 //rejestracja
#define DIALOG_STYLE_PASSWORD 3 //rejestracja


Pawn
public OnPlayerConnect(playerid)
{
    new Nick [30]; //rejestracja
    new Gname[MAX_PLAYER_NAME]; //rejestracja
    GetPlayerName(playerid,Gname,sizeof(Gname)); //rejestracja
    format(Nick,sizeof(Nick),"/Gracze/%s.txt",Gname); //rejestracja
    if(dini_Exists(Nick)){ //rejestracja
        ShowPlayerDialog(playeridLOGINDIALOG_STYLE_PASSWORD,"   ===== [PL] Polski Power Truck [PPT] =====","Witamy ponownie na serwerze [PPT], aby sie zalogowac wpisz\n\t   haslo ktore podales podczas rejestracji.","Login","Anuluj"); //rejestracja
    }else{ //rejestracja
        ShowPlayerDialog(playeridREGISTERDIALOG_STYLE_PASSWORD,"     ===== [PL] Polski Power Truck [PPT] =====","Witamy po raz pierwszy na serwerze [PPT], aby sie zarejestrowac\n\t\t     wprowadz haslo ponizej.\n\t       Uzyj takie hasla ktore zapamietasz !!!","Rejestracja","Anuluj"); //rejestracja
    //rejestracja
    return 1;
}

public OnPlayerDisconnect(playeridreason)
{
    ZapisGracza(playerid); //rejestracja
    return 1;
}

public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(dialogid == REGISTER){ //rejestracja
        if(response == 0){ //rejestracja
            SendClientMessage(playeridCOLOR_VIOLET,"Anulowales/as rejestracje"); //rejestracja
            Kick(playerid); //rejestracja
        //rejestracja
        if(response == 1){ //rejestracja
            if(!strlen(inputtext)){ //rejestracja
                ShowPlayerDialog(playeridREGISTERDIALOG_STYLE_PASSWORD,"===== [PL] Polski Power Truck [PPT] =====","Nie podales hasla !!! -.-","Rejestracja","Anuluj"); //rejestracja
            //rejestracja
            Rejestruj(playerid,MD5_Hash(inputtext)); //rejestracja
        //rejestracja
    //rejestracja
    if(dialogid == LOGIN){ //rejestracja
        if(response == 0){ //rejestracja
            SendClientMessage(playeridCOLOR_VIOLET,"Anulowales/as logowanie"); //rejestracja
            Kick(playerid); //rejestracja
            return 1//rejestracja
        //rejestracja
        if(response == 1){ //rejestracja
            Login(playerid,MD5_Hash(inputtext)); //rejestracja
        //rejestracja
    //rejestracja
    return 1;
}

stock Rejestruj(playerid,key[])
{
    new Nick [30];
    new Gname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Gname,sizeof(Gname));
    format(Nick,sizeof(Nick),"/Gracze/%s.txt",Gname);
    dini_Create(Nick);
    dini_Set(Nick,"Haslo",key);
    dini_IntSet(Nick,"Kasa",1000);
    dini_IntSet(Nick,"Score",0);
    return 1;
}

stock Login(playeridkey[])
{
    new Nick [30];
    new Gname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Gname,sizeof(Gname));
    format(Nick,sizeof(Nick),"/Gracze/%s.txt",Gname);
    if(!strcmp(key,dini_Get(Nick,"Haslo"), false)){
        WczytajGracza(playerid);
    }else{
        ShowPlayerDialog(playeridLOGINDIALOG_STYLE_PASSWORD,"Login","Zle haslo","Login","Anuluj");
    }
    return 1;
}

stock WczytajGracza(playerid)
{
    new Nick [30];
    new Gname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Gname,sizeof(Gname));
    format(Nick,sizeof(Nick),"/Gracze/%s.txt",Gname);
    if(dini_Exists(Nick)){
        GivePlayerMoney(playeriddini_Int(Nick,"Kasa"));
        SetPlayerScore(playeriddini_Int(Nick,"Score"));
    }
    return 1;
}

stock ZapisGracza(playerid)
{
    new Nick [30];
    new Gname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Gname,sizeof(Gname));
    format(Nick,sizeof(Nick),"/Gracze/%s.txt",Gname);
    if(dini_Exists(Nick)){
        dini_IntSet(Nick,"Kasa",GetPlayerMoney(playerid));
        dini_IntSet(Nick,"Score",GetPlayerScore(playerid));
    }
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-27, 01:47


Axel9697







Wiek: 32
Na forum: 5904 dni
Posty: 115

Piwa: 44

Respekt: 73,2

Dodaj
Kod:

return 1;

by zatrzyma? wykonywanie reszty kodu po tej linijce
Kod:

ShowPlayerDialog(playerid, REGISTER, DIALOG_STYLE_PASSWORD,"===== [PL] Polski Power Truck [PPT] =====","Nie podales hasla !! ! -.-","Rejestracja","Anuluj"); //rejestracja


Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-27, 10:30


Loghain







Wiek: 29
Na forum: 4506 dni
Posty: 51

Piwa: 1

Respekt: 50

Thx wielkie :)
Taka oczywisto?? a ja w niej wpad?em ;/

Edit.
A da?oby si? zrobi? ?e jak wpisze x3 razy z?e has?o to dostanie kicka?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-27, 11:34


Axel9697







Wiek: 32
Na forum: 5904 dni
Posty: 115

Piwa: 44

Respekt: 73,2

Jasne, ?e tak. :P
Zr?b tablic?, kt?ra obejmie wszystkich graczy i przy nieudanym logowaniu sprawdzaj czy zmienna przekracza 2 (kick), a jak nie to dodawaj 1 do tej zmiennej.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-27, 12:26


Loghain







Wiek: 29
Na forum: 4506 dni
Posty: 51

Piwa: 1

Respekt: 50

Czyli:
New Login[3]
Login[0] = 1
Login[1] = 2
Login[2] = 3

i potem tam ni?ej z if()?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-27, 18:02


kamil445

:D






Wiek: 29
Na forum: 6151 dni
Posty: 119
Nick w MP: Czechu

Piwa: 882

Respekt: 50

nie lepiej

Kod:

new Login[MAX_PLAYERS];


potem w tej rejestracji/logowaniu

Kod:

Login++;


a potem funkcja
Kod:

if(login[playerid] == 3)
{
kick(playerid);
return 1;
}


nie zapomnij o zerowaniu po wywaleniu, wiec mozna doda? w onplayerdisconnect lub connect

Kod:

Login[playerid] == 0;


Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-27, 18:23


Loghain







Wiek: 29
Na forum: 4506 dni
Posty: 51

Piwa: 1

Respekt: 50

Wrzuci mi to kto? do kodu u g?ry, bo mi full b??d?w wywala, nwm czemu.
Ja da?em tak:
pod include:
new Login[MAX_PLAYERS];

Potem w :
Pawn
stock Login(playeridkey[])
{
    new Nick [30];
    new Gname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Gname,sizeof(Gname));
    format(Nick,sizeof(Nick),"/Gracze/%s.txt",Gname);
    if(!strcmp(key,dini_Get(Nick,"Haslo"), false)){
        WczytajGracza(playerid);
    }else{
        ShowPlayerDialog(playeridLOGINDIALOG_STYLE_PASSWORD,"===== [PL] Polski Power Truck [PPT] =====","Wpisales zle haslo, sprobuj ponownie zwracajac uwage na wielkosc liter.","Login","Anuluj");
       Login++;
if(login[playerid] == 3)
{
kick(playerid);
return 1;
}
    }
    return 1;
}


No i to w connect:
Login[playerid] == 0;

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-28, 11:36


kazami

Pawner/PTG






Wiek: 27
Na forum: 4596 dni
Posty: 405
Nick w MP: adi888

Piwa: 43

Respekt: 76,3

Ostrzeżeń: 80%
nw do czego ci te new Login , ale do stocka nie potrzeba takiego czego? jak new Login.

Poprostu robisz stocka bez rzadnych new

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-28, 17:25


kamil445

:D






Wiek: 29
Na forum: 6151 dni
Posty: 119
Nick w MP: Czechu

Piwa: 882

Respekt: 50

Stock mo?e si? zwa? tak samo jak zmienna ? wydaje mi si? ?e nie...

Zamiast new Login[MAX_PLAYERS];

daj np new LoginCount[MAX_PLAYERS];

bedzie sie ci kojarzy?o od czego ta zmienna i bd dzia?a?o :P

masz gotowca (nie sprawdzony, ale powinno trybi?)

Kod:


new LoginCount[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
new Nick [30]; //rejestracja
new Gname[MAX_PLAYER_NAME]; //rejestracja
GetPlayerName(playerid,Gname,sizeof(Gname)); //rejestracja
format(Nick,sizeof(Nick),"/Gracze/%s.txt",Gname); //rejestracja
if(dini_Exists(Nick)){ //rejestracja
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD," ===== [PL] Polski Power Truck [PPT] =====","Witamy ponownie na serwerze [PPT], aby sie zalogowac wpisz\n\t haslo ktore podales podczas rejestracji.","Login","Anuluj"); //rejestracja
}else{ //rejestracja
ShowPlayerDialog(playerid, REGISTER, DIALOG_STYLE_PASSWORD," ===== [PL] Polski Power Truck [PPT] =====","Witamy po raz pierwszy na serwerze [PPT], aby sie zarejestrowac\n\t\t wprowadz haslo ponizej.\n\t Uzyj takie hasla ktore zapamietasz !! !","Rejestracja","Anuluj"); //rejestracja
} //rejestracja
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
ZapisGracza(playerid); //rejestracja
LoginCount[playerid] = 0;
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == REGISTER){ //rejestracja
if(response == 0){ //rejestracja
SendClientMessage(playerid, COLOR_VIOLET,"Anulowales/as rejestracje"); //rejestracja
Kick(playerid); //rejestracja
} //rejestracja
if(response == 1){ //rejestracja
if(!strlen(inputtext)){ //rejestracja
ShowPlayerDialog(playerid, REGISTER, DIALOG_STYLE_PASSWORD,"===== [PL] Polski Power Truck [PPT] =====","Nie podales hasla !! ! -.-","Rejestracja","Anuluj"); //rejestracja
} //rejestracja
Rejestruj(playerid,MD5_Hash(inputtext)); //rejestracja
} //rejestracja
} //rejestracja
if(dialogid == LOGIN){ //logowanie
if(response == 0){ //pierwszy przycisk
SendClientMessage(playerid, COLOR_VIOLET,"Anulowales/as logowanie"); //rejestracja
Kick(playerid);
return 1;
}
if(response == 1){ //rejestracja
Login(playerid,MD5_Hash(inputtext)); //rejestracja
} //rejestracja
} //rejestracja
return 1;
}

stock Rejestruj(playerid,key[])
{
new Nick [30];
new Gname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Gname,sizeof(Gname));
format(Nick,sizeof(Nick),"/Gracze/%s.txt",Gname);
dini_Create(Nick);
dini_Set(Nick,"Haslo",key);
dini_IntSet(Nick,"Kasa",1000);
dini_IntSet(Nick,"Score",0);
return 1;
}

stock Login(playerid, key[])
{
if(LoginCount[playerid] == 3)
{
kick(playerid);
return 1;
}
new Nick [30];
new Gname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Gname,sizeof(Gname));
format(Nick,sizeof(Nick),"/Gracze/%s.txt",Gname);
if(!strcmp(key,dini_Get(Nick,"Haslo"), false)){
WczytajGracza(playerid);
}else{
LoginCount[playerid]++;
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD,"Login","Zle haslo","Login","Anuluj");
}
return 1;
}

stock WczytajGracza(playerid)
{
new Nick [30];
new Gname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Gname,sizeof(Gname));
format(Nick,sizeof(Nick),"/Gracze/%s.txt",Gname);
if(dini_Exists(Nick)){
GivePlayerMoney(playerid, dini_Int(Nick,"Kasa"));
SetPlayerScore(playerid, dini_Int(Nick,"Score"));
}
return 1;
}

stock ZapisGracza(playerid)
{
new Nick [30];
new Gname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Gname,sizeof(Gname));
format(Nick,sizeof(Nick),"/Gracze/%s.txt",Gname);
if(dini_Exists(Nick)){
dini_IntSet(Nick,"Kasa",GetPlayerMoney(playerid));
dini_IntSet(Nick,"Score",GetPlayerScore(playerid));
}
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-28, 18:11


Loghain







Wiek: 29
Na forum: 4506 dni
Posty: 51

Piwa: 1

Respekt: 50

Thx, dzia?a :)

Postaw piwo autorowi tego posta
 

 
Tagi: rejestracja
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