Witam, mam pewien problem z CoD. Mianowicie jeśli na jakiejkolwiek kllasie ustawie np. poziom 30 i zmienie mape to on będzie 30... Jeśli z tego 30 zmienie np. na 2 i zmienie mape to nadal jest 30... Mogę wiedzieć jak to naprawić? ![]()
Publiki zapiszdane i wczytajdane:
public ZapiszDane(id)
{
if(!klasa_gracza[id] || doswiadczenie_gracza[id] < 1 || vault == INVALID_HANDLE)
return PLUGIN_CONTINUE;
 
new vaultkey[128],vaultdata[256], identyfikator[64];
format(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], player_armor[id]);
 
new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
 
switch(typ_zapisu)
{
case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
}
 
format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa_gracza[id]], typ_zapisu);
nvault_set(vault,vaultkey,vaultdata);
 
return PLUGIN_CONTINUE;
}
 
public WczytajDane(id, klasa)
{
if(vault == INVALID_HANDLE)
return PLUGIN_CONTINUE;
 
new vaultkey[128],vaultdata[256], identyfikator[64];
 
new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
 
switch(typ_zapisu)
{
case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
}
 
format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa], typ_zapisu);
 
 
if(!nvault_get(vault,vaultkey,vaultdata,255)) // Jezeli nie ma danych gracza sprawdza stary zapis. 
{
format(vaultkey, charsmax(vaultkey), "%s-%i-cod", nazwa_gracza[id], klasa);
nvault_get(vault,vaultkey,vaultdata,255);
}
 
replace_all(vaultdata, 255, "#", " ");
 
new danegracza[7][32];
 
parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 31, danegracza[6], 31); 
 
doswiadczenie_gracza[id] = str_to_num(danegracza[0]);
poziom_gracza[id] = str_to_num(danegracza[1])>0?str_to_num(danegracza[1]):1;
inteligencja_gracza[id] = str_to_num(danegracza[2]);
zdrowie_gracza[id] = str_to_num(danegracza[3]);
wytrzymalosc_gracza[id] = str_to_num(danegracza[4]);
kondycja_gracza[id] = str_to_num(danegracza[5]);
player_armor[id] = str_to_num(danegracza[6]);
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-player_armor[id];
 
 
return PLUGIN_CONTINUE;
 
} 
					
					

 
Dodatki SourceMod






				
				






