seek nephrite Posted July 23, 2021 Posted July 23, 2021 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.
Banditul Posted July 23, 2021 Posted July 23, 2021 Pot sa intreeb de ce ai facut un alt topic cu exact acelasi lucru cand ai deja
Banditul Posted July 24, 2021 Posted July 24, 2021 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.
shane Posted July 24, 2021 Posted July 24, 2021 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 =>
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now