Jump to content

PIN eroare


Recommended Posts

am facut un sistem de pin si nu imi face verificarile cum trebuie

intru pe server, imi fac cont nou, dau /setpin, e ok, pin-ul s a salvat in baza de date. imi dau /spawn, si imi cere pin-ul, il bag, totul ok, merge cum trebuie pana aici.

Daca ies de pe server, si intru, desi in baza de date am un pin setat, nu imi cere sa il introduc.. nu stiu de ce.. am pus asa: 

// Onplayerconnect

if(PlayerInfo[playerid][SetPin] == 1) // [Setpin] adica daca player-ul are un pin setat, si asta e ok in baza de date.
    {
    PlayerInfo[playerid][PINSecurity] = 1;
    PlayerInfo[playerid][SetPin] = 1;
    }

// onplayerspawn

if(PlayerInfo[playerid][SetPin] == 1)
    {
        strcat(eString, "{FF0000}Contul tau este securizat cu un PIN.\n\
                         {FFFF00}Te rugam sa iti scrii Pin-ul mai jos, daca nu il mai stii poti face o cerere pe discord-ul server-ului.");
        ShowPlayerDialog(playerid, DIALOG_SPAWNPIN, DIALOG_STYLE_INPUT, "{FF0000}Account security #PIN", eString, "Ok", "Close");
    }

Deci merge tot cum trebuie pana sa ies de pe server, daca ies si intru iar nu mai face verificarea cum trebuie.

Link to comment
Share on other sites

Cum ti-am spus si acolo. Verifica locatia unde iti incarci datele playerului din baza de date si incarca si valoarea care iti spune ca playerul are pin si in functie de ce valoare ai incarcat seteaza si restul variabilelor. La OnPlayerConnect SetPin va fi intodeauna 0 pentru ca 100% in acel moment nu ai incarcat absolut nimic din baza de date.

Link to comment
Share on other sites

Salut @seek nephrite,

Ce iti mai recomand eu, pe langa ce a spus Banditu, elimina variabilele curente de la pin si fa verificarea in felul urmator: Daca jucatorul are in baza de date valoarea din coloana 'Pin', mai mare de 0 (Ex: 1234 pinul meu), sa ii il detecteze ca si cum ar avea un pin pe cont setat. Nu are rost sa creezi atatea variabile.

Exemplu din care ai putea intelege mai clar la ce ma refer:

//o variabila noua
playerVariables[playerid][pPin]

//o functie noua

havePlayerPin(playerid) return playerVariables[playerid][pPin] > 0 ? true : false; //Asta se traduce in felu urmator: Daca jucatorul are pPin mai mare de 0 (ex: 1234), atunci se va returna ca are pin pe cont (true), iar daca nu, se va returna ca nu are pin (false)

//o simpla verificarea in momentul in care se logheaza pe cont

if(havePlayerPin(playerid)) showPinDialog(playerid);

//salvarea pinului in baza
playerVariables[playerid][pPin] = pinul intrudus;
etc..

In alta ordine de idei,

Daca vrei sa ramai la ideea ta, unul din motivele pentru care nu iti afiseaza dialogul de pin la logare, in cazul in care il ai setat pe cont, e faptul ca nu incarci valoarea din baza de date pentru variabila care detecteaza ca ai un pin setat pe cont. Practic, variabila ta e 0, ceea ce inseamna ca nu ai un pin pe cont.

Daca te-am ajutat =>

spacer.png

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.