//(...) new topexp; // il. expa new topexpname[35]; // nick gracza new topexplvl[35]; // ranga //(...) public top_stats_save() { new vaultkey[64], vaultdata[512]; format(vaultkey,63,"zp_czempion") format(vaultdata,511,"%i#%s#%s#",topexp,topexpname,topexplvl) nvault_set(zp_top,vaultkey,vaultdata) } public top_stats_load() { new vaultkey[64],vaultdata[512] format(vaultkey,63,"zp_czempion") format(vaultdata,511,"%i#%s#%s#",topexp,topexpname,topexplvl) nvault_get(zp_top,vaultkey,vaultdata,511) replace_all(vaultdata, 511, "#", " ") new jeden[100], dwa[100], trzy[100]; topexp = str_to_num(jeden); parse(vaultdata, dwa, charsmax(dwa), topexpname, charsmax(topexpname)); parse(vaultdata, trzy, charsmax(trzy), topexplvl, charsmax(topexplvl)); }
Problem polega na tym, że plugin poprawnie zapisuje i odczytuje tylko 2 pierwsze zmienne (topexp, topexpname). Topexplvl jest poprawnie wyświetlana tylko, wtedy jeżeli gracz jest na serwerze. Po zmianie mapy, błędnie wyświetla dane - zamiast informacji o poziomie, jest drugi raz podany nick, czyli po prostu nie odczytuje poprawnie topexplvl.
Statystyki pokazuje w ten sposób, ale to nie ma żadnego znaczenia (tak sądzę):
formatex(tempstring,charsmax(tempstring),"<b><font color=#F21533>OBECNY CZEMPION:</br> %s | %s | exp: %i</b></font><br /><br />", topexpname, topexplvl, topexp);
Nie znam się w ogóle na nvault i na pewno brakuje gdzieś czegoś, dlatego zwracam się do was z prośbą o pomoc.
Pozdrawiam
Dodano 22 maj 2011 - 20:55:
Sry za post pod postem, proszę moderatora o złączenie tej wiadomości z 1 postem (nie mogę edytować ;/).
To co opisałem jednak nie działa.
Wróciłem do starej wersji i tak wygląda działający kod z 2 zmiennymi:
public top_stats_save() { new vaultkey[64],vaultdata[256]; format(vaultkey,63,"zp_topexp"); format(vaultdata,255,"%i#%s#",topexp,topexpname); nvault_set(zp_top,vaultkey,vaultdata); } public top_stats_load() { new vaultkey[64],vaultdata[256]; format(vaultkey,63,"zp_topexp"); format(vaultdata,255,"%i#%s#",topexp,topexpname) ; nvault_get(zp_top,vaultkey,vaultdata,255); replace_all(vaultdata, 255, "#", " "); new jeden[100]; new str_rank[32]; parse(vaultdata, str_rank, charsmax(str_rank), topexpname, charsmax(topexpname)); parse(vaultdata, jeden, 99); topexp = str_to_num(jeden); }
Jak dodać do tego 3 zmienną typu string?
Dodano 22 maj 2011 - 20:56:
Witam
//(...) new topexp; // il. expa new topexpname[35]; // nick gracza new topexplvl[35]; // ranga //(...) public top_stats_save() { new vaultkey[64], vaultdata[512]; format(vaultkey,63,"zp_czempion") format(vaultdata,511,"%i#%s#%s#",topexp,topexpname,topexplvl) nvault_set(zp_top,vaultkey,vaultdata) } public top_stats_load() { new vaultkey[64],vaultdata[512] format(vaultkey,63,"zp_czempion") format(vaultdata,511,"%i#%s#%s#",topexp,topexpname,topexplvl) nvault_get(zp_top,vaultkey,vaultdata,511) replace_all(vaultdata, 511, "#", " ") new jeden[100], dwa[100], trzy[100]; topexp = str_to_num(jeden); parse(vaultdata, dwa, charsmax(dwa), topexpname, charsmax(topexpname)); parse(vaultdata, trzy, charsmax(trzy), topexplvl, charsmax(topexplvl)); }
Problem polega na tym, że plugin poprawnie zapisuje i odczytuje tylko 2 pierwsze zmienne (topexp, topexpname). Topexplvl jest poprawnie wyświetlana tylko, wtedy jeżeli gracz jest na serwerze. Po zmianie mapy, błędnie wyświetla dane - zamiast informacji o poziomie, jest drugi raz podany nick, czyli po prostu nie odczytuje poprawnie topexplvl.
Statystyki pokazuje w ten sposób, ale to nie ma żadnego znaczenia (tak sądzę):formatex(tempstring,charsmax(tempstring),"<b><font color=#F21533>OBECNY CZEMPION:</br> %s | %s | exp: %i</b></font><br /><br />", topexpname, topexplvl, topexp);
Nie znam się w ogóle na nvault i na pewno brakuje gdzieś czegoś, dlatego zwracam się do was z prośbą o pomoc.
Pozdrawiam
Dodano 22 maj 2011 - 20:55:
To co opisałem jednak nie działa.
Wróciłem do starej wersji i tak wygląda działający kod z 2 zmiennymi:public top_stats_save() { new vaultkey[64],vaultdata[256]; format(vaultkey,63,"zp_topexp"); format(vaultdata,255,"%i#%s#",topexp,topexpname); nvault_set(zp_top,vaultkey,vaultdata); } public top_stats_load() { new vaultkey[64],vaultdata[256]; format(vaultkey,63,"zp_topexp"); format(vaultdata,255,"%i#%s#",topexp,topexpname) ; nvault_get(zp_top,vaultkey,vaultdata,255); replace_all(vaultdata, 255, "#", " "); new jeden[100]; new str_rank[32]; parse(vaultdata, str_rank, charsmax(str_rank), topexpname, charsmax(topexpname)); parse(vaultdata, jeden, 99); topexp = str_to_num(jeden); }
Jak dodać do tego 3 zmienną typu string?
Dodano 22 maj 2011 - 20:57:
Sry za ten chaos, mam nadzieję, że ktoś się połapie ;/