Witam, mam problem z usuwaniem danych z zapisu nvault, gracze narzekają, że usuwa im czasami skiny do kos i szlugi ( nawet nie musi ich usuwac do 0 tylko mają ich o połowe mniej) Dodałem w pluginie na szlugi usuwanie wpisów starszych niż 10 dni, bo myślałem, że usuwa graczom szlugi dlatego, że dużo danych jest w pliku nvault. Posiadam 3 bazy danych sql na serwerze, (1 większa, 2 mniejsze), a do tego 8 zapisow nvault (większość to takie mniejsze zapisy)
Dodam może kod kos, ponieważ je ostatnio dodałem i też się niektórym graczom usuwa:
public client_authorized(id) { resetData(id); readData(id); } public client_disconnect(id) { saveData(id); resetData(id); } public resetData(id) { for(new i=0;i<=4;i++){ itemy_gracza[id][i] = 0 } for(new i=1;i< sizeof kosy-1;i++){ skiny_gracza[id][i] = 0 } pKnifeSkin[id] = -1 gracz_sprzedal[id] = false; }
public saveData(id) { new brak_danych[33]; if(!gracz_sprzedal[id]){ for(new i=0;i<=4;i++) { if(!itemy_gracza[id][i]){ brak_danych[id]++ } } for(new i=1;i< sizeof kosy-1;i++) { if(!skiny_gracza[id][i]){ brak_danych[id]++ } } if(brak_danych[id] == 13){ brak_danych[id] = 0; return; } } new name[33]; get_user_name(id, name, 32) new vaultkey[64],vaultdata[128], iLen; formatex(vaultkey, 63,"%s-kosy", name); for(new i=0;i<=4;i++){ iLen += formatex(vaultdata[iLen], charsmax(vaultdata)-iLen, " %d", itemy_gracza[id][i]) } iLen += formatex(vaultdata[iLen], charsmax(vaultdata)-iLen, " %d", pKnifeSkin[id]) for(new i=1;i< sizeof kosy-1;i++){ iLen += formatex(vaultdata[iLen], charsmax(vaultdata)-iLen, " %d", skiny_gracza[id][i]) } nvault_set(vault_kosy,vaultkey,vaultdata); } public readData(id) { new name[33]; get_user_name(id, name, 32) new vaultkey[64], vaultdata[128] formatex(vaultkey, 63, "%s-kosy", name); if(nvault_get(vault_kosy,vaultkey,vaultdata,127)){ new read_parse[14][8]; parse(vaultdata, read_parse[0], 7, read_parse[1], 7, read_parse[2], 7, read_parse[3], 7, read_parse[4], 7, read_parse[5], 7, read_parse[6], 7, read_parse[7], 7, read_parse[8], 7, read_parse[9], 7, read_parse[10], 7, read_parse[11], 7, read_parse[12], 7, read_parse[13], 7); for(new i=0;i<=4;i++){ itemy_gracza[id][i] = str_to_num(read_parse[i]); } pKnifeSkin[id] = str_to_num(read_parse[5]); for(new i=1;i<sizeof kosy-1;i++){ skiny_gracza[id][i] = str_to_num(read_parse[i+5]); } } return PLUGIN_CONTINUE; }
Użytkownik Black004 edytował ten post 15.12.2019 16:50