Thunder.1337 Posted May 31, 2017 Report Share Posted May 31, 2017 Acum incepem la partea a 2-a Vom face un Stock stock pName(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); return name; } Stock este o functie scurta la care nu ai nevoie de forward(nu prea stiu cum sa explic stock-ul )Acest stock ne va ajuta la aflarea numelui playeruluiAcum vom merge la OnPlayerConnectsi vom faceasa Apasati CTRL+F in GM si cautati OnPlayerConnect pana va apare asa: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new file[500]; if(dialogid == Register) { if(!response) return Kick(playerid); if(!strlen(inputtext)) return ShowPlayerDialog(playerid,register,DIALOG_STYLE_PASSWORD,"Register","Welcome\nPlease Register to save your Coins,Moneys,Score","Register","Cancel"); format(file,sizeof(file),Data,pName(playerid)); dini_Create(file); dini_IntSet(file,"Password",udb_hash(inputtext)); dini_IntSet(file,"Moneys",PlayerInfouserbar[Moneys] += 30000); dini_IntSet(file,"Score",PlayerInfouserbar[Score] += 3); dini_IntSet(file,"Kills",PlayerInfouserbar[Kills] = 0); dini_IntSet(file,"Deaths",PlayerInfouserbar[Deaths] = 0); dini_IntSet(file,"Level",PlayerInfouserbar[Level] = 0); PlayerInfouserbar[LoggedIn] = 1; } if(dialogid == Login) { format(file,sizeof(file),Data,pName(playerid)); if(!response) return Kick(playerid); if(!strlen(inputtext)) return ShowPlayerDialog(playerid,login,DIALOG_STYLE_PASSWORD,"Login","Welcome\nPlease login to load your Coins,Moneys,Score","Login","Cancel"); new tmp; tmp = dini_Int(file,"Password"); if(udb_hash(inputtext) != tmp) { ShowPlayerDialog(playerid,login,DIALOG_STYLE_PASSWORD,"Fail Login","Incorrect Password\nPlease try again","Login","Cancel"); } else { PlayerInfouserbar[LoggedIn] = 1; PlayerInfouserbar[Kills] = dini_Int(file,"Kills"); PlayerInfouserbar[Deaths] = dini_Int(file,"Deaths"); PlayerInfouserbar[Level] = dini_Int(file,"Level"); GivePlayerMoney(playerid,dini_Int(file,"Money") + GetPlayerMoney(playerid)); } } return 1; } dini_Create(file); - Cu functia asta se va crea contultmp = dini_Int(file,"Password"); - Afla parola playeruluiAcum contul trebbuie sa se salveze in scriptfiles/UsersDar cand playerul se va deconecta totul va disparea(banii,scorul si celelalte vor fi la 0)Cum facem sa nu se reseteze?Pai simpluDucetiva la OnPlayerDisconnect si faceti asa if OnPlayerDisconnect(playerid, reason){ new file[255]; format(file,sizeof(file),Data,pName(playerid)); dini_IntSet(file,"Coins",PlayerInfouserbar[Coins]); dini_IntSet(file,"Kills",PlayerInfouserbar[Kills]); dini_IntSet(file,"Deaths",PlayerInfouserbar[Deaths]); dini_IntSet(file,"Level",PlayerInfouserbar[Level]); dini_IntSet(file,"Vip",PlayerInfouserbar[Vip]); dini_IntSet(file,"Money",GetPlayerMoney(playerid)); dini_IntSet(file,"Score",GetPlayerScore(playerid)); return 1; } Cand playerul iese nu i se salveaza scorulCum facem sa i se salveze?Pai ducetiva din nou laOnPLayerConnect si puneti asa SetPlayerScore(playerid,dini_Int(file,"Score")+GetPlayerScore(playerid)); SetPlayerScore - Ii reda scorul(cand sa deconectat i sa salvat iar acum ii reda scorul)dini_IntSet - Seteaza statisticile playerului(banii , scorul si celelalte)dini_Int - Ii reda playerului statisticile salvateDaca nu ati inteles cv dati replyPS:daca esti n00b si nu intelegi mai bine nu te mai apuca sa`l faci. Este un tip de login/register : PE DIALOG. Link to comment Share on other sites More sharing options...
Recommended Posts