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


Dodatki SourceMod












