EXP Mod error w logach
Qunir
28.03.2014
Witaj,
Nie umiem sobie poradzić z błędami które wyskakują mi na serwerze. Próbowałem różnych metod żeby to naprawić ale zawsze kończyło się to tak że serwer crashował się i nie mam zielonego pojęcia co jest nie tak.
Log amxx:
Cytat
L 03/25/2014 - 21:11:15: Start of error session.
L 03/25/2014 - 21:11:15: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20140325.log")L 03/25/2014 - 21:11:15: [AMXX] Displaying debug trace (plugin "dm_expmod.amxx", version "1.0")L 03/25/2014 - 21:11:15: [AMXX] Run time error 4: index out of boundsL 03/25/2014 - 21:11:15: [AMXX] [0] dm_expmod.sma::client_connect (line 86)L 03/25/2014 - 21:11:15: [AMXX] [1] dm_expmod.sma::LoadXp (line 508)L 03/25/2014 - 21:11:15: [AMXX] [2] dm_expmod.sma::client_connect (line 84)
Zmienne:
new name[32]; new XP[33], PoziomGracza[33]; new punkty_gracza[33], niewidzialnosc_gracza[33], he_gracza[33], noz_gracza[33], grawitacja_gracza[33]; new bonusowe_niewidzialnosc_gracza[33], bonusowa_he_gracza[33], bonusowa_noz_gracza[33], bonusowa_grawitacja_gracza[33]; new szybkosc_rozdania[33];
Linijki: client_connect (line 86) i client_connect (line 84)
public client_connect(id) { LoadXp(id); if(PoziomGracza[id] == 0) { PoziomGracza[id]=1; } PokazInformacje(id); set_task(20.0, "Powitanie" ,id) }
Linijka: LoadXp (line 508)
public LoadXp(id) { new name[31]; get_user_name(id,name,31); new vaultkey[64], vaultdata[256]; format(vaultkey, 63, "%s-DM", name); format(vaultdata, 255, "%i#%i#%i#%i#%i#%i", XP[id], PoziomGracza[id], he_gracza[id], niewidzialnosc_gracza[id], noz_gracza[id], grawitacja_gracza[id]); nvault_get(gVault, vaultkey, vaultdata,255); //Wczytujemy klucz i dane replace_all(vaultdata, 255, "#", " "); //Zamieniamy # na spacje. new XPV[32], PoziomGraczaV[32], he_graczaV[32], niewidzialnosc_graczaV[32], noz_graczaV[32], grawitacja_graczaV[32]; //Tworzymy nowe tablice do ktorych wyciagniemy wartosci zapisanych danych (Mozecie nawet zmienic XP na CYCKI to nie ma znaczenia, wazne zebyscie wiedzieli o co chodzi) parse(vaultdata, XPV, 31, PoziomGraczaV, 31, he_graczaV, 31, niewidzialnosc_graczaV, 31, noz_graczaV, 31, grawitacja_graczaV, 31); //Wyciagamy z bazy dane do utworzonych wczesniej tablic XP[id] = str_to_num(XPV); //Przypisujemy wczytane wartosci do naszych 'pierwotnych' tablic PoziomGracza[id] = str_to_num(PoziomGraczaV); he_gracza[id] = str_to_num(he_graczaV); niewidzialnosc_gracza[id] = str_to_num(niewidzialnosc_graczaV); noz_gracza[id] = str_to_num(noz_graczaV); grawitacja_gracza[id] = str_to_num(grawitacja_graczaV); return PLUGIN_CONTINUE; }
Jeśli będzie potrzeba udostępnie więcej kodu.
Rivit
30.03.2014
w loadxp w pierwszych linijkach zmien rozmiar na 33 i w get_user name daj na 32
Qunir
30.03.2014
Nadal ten sam błąd otrzymuje. Próbowałem(get_user name dałem na 32):
format(vaultdata, 255, "%i#%i#%i#%i#%i#%i", XP[id], PoziomGracza[id], he_gracza[id], niewidzialnosc_gracza[id], noz_gracza[id], grawitacja_gracza[id]);
Podmienić na:
format(vaultdata, 255, "%i#%i#%i#%i#%i#%i", XP[33], PoziomGracza[33], he_gracza[33], niewidzialnosc_gracza[33], noz_gracza[33], grawitacja_gracza[33]);
lub
new XPV[32], PoziomGraczaV[32], he_graczaV[32], niewidzialnosc_graczaV[32], noz_graczaV[32], grawitacja_graczaV[32]; //Tworzymy nowe tablice do ktorych wyciagniemy wartosci zapisanych danych (Mozecie nawet zmienic XP na CYCKI to nie ma znaczenia, wazne zebyscie wiedzieli o co chodzi) parse(vaultdata, XPV, 31, PoziomGraczaV, 31, he_graczaV, 31, niewidzialnosc_graczaV, 31, noz_graczaV, 31, grawitacja_graczaV, 31); //Wyciagamy z bazy dane do utworzonych wczesniej tablic
Podmienić na:
new XPV[33], PoziomGraczaV[33], he_graczaV[33], niewidzialnosc_graczaV[33], noz_graczaV[33], grawitacja_graczaV[33]; //Tworzymy nowe tablice do ktorych wyciagniemy wartosci zapisanych danych (Mozecie nawet zmienic XP na CYCKI to nie ma znaczenia, wazne zebyscie wiedzieli o co chodzi) parse(vaultdata, XPV, 32, PoziomGraczaV, 32, he_graczaV, 32, niewidzialnosc_graczaV, 32, noz_graczaV, 32, grawitacja_graczaV, 32); //Wyciagamy z bazy dane do utworzonych wczesniej tablic
Próbowałem nawet kilka innych opcji ale nic to nie dało.
Crashy nie miałem lecz błąd dalej się pojawia w rezultacie loadxp wygląda tak:
public LoadXp(id) { new name[31]; get_user_name(id,name,32); new vaultkey[64], vaultdata[256]; format(vaultkey, 63, "%s-DM", name); format(vaultdata, 255, "%i#%i#%i#%i#%i#%i", XP[33], PoziomGracza[33], he_gracza[33], niewidzialnosc_gracza[33], noz_gracza[33], grawitacja_gracza[33]); nvault_get(gVault, vaultkey, vaultdata,255); //Wczytujemy klucz i dane replace_all(vaultdata, 255, "#", " "); //Zamieniamy # na spacje. new XPV[33], PoziomGraczaV[33], he_graczaV[33], niewidzialnosc_graczaV[33], noz_graczaV[33], grawitacja_graczaV[33]; //Tworzymy nowe tablice do ktorych wyciagniemy wartosci zapisanych danych (Mozecie nawet zmienic XP na CYCKI to nie ma znaczenia, wazne zebyscie wiedzieli o co chodzi) parse(vaultdata, XPV, 32, PoziomGraczaV, 32, he_graczaV, 32, niewidzialnosc_graczaV, 32, noz_graczaV, 32, grawitacja_graczaV, 32); //Wyciagamy z bazy dane do utworzonych wczesniej tablic XP[id] = str_to_num(XPV); //Przypisujemy wczytane wartosci do naszych 'pierwotnych' tablic PoziomGracza[id] = str_to_num(PoziomGraczaV); he_gracza[id] = str_to_num(he_graczaV); niewidzialnosc_gracza[id] = str_to_num(niewidzialnosc_graczaV); noz_gracza[id] = str_to_num(noz_graczaV); grawitacja_gracza[id] = str_to_num(grawitacja_graczaV); return PLUGIN_CONTINUE; }
Rivit
30.03.2014
Zamien to:
new name[31]; get_user_name(id,name,32);
Na to:
new name[33]; get_user_name(id, name, 32);