Error logi z silnika CodMod MySQL by Cypis
Ogen Dogen
01.04.2014
Witam. Używam silnika na zapis MySQL by Cypis i mam problem z error logami.
L 04/01/2014 - 18:49:15: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx") L 04/01/2014 - 18:49:15: [AMXX] Run time error 3: stack error L 04/01/2014 - 18:49:15: [AMXX] [0] codmodsql_bez_frakcji_2174287.sma::Item_Deploy_Post (line 1177)
Tutaj funkcja o którą się rozchodzi i zaznaczona linia :
public Item_Deploy_Post(ent) { new id = get_pdata_cbase(ent, 41, 4); if(!is_user_alive(id)) return; new team = get_user_team(id); if(team > 2) return; new bron = cs_get_weapon_id(ent); // linia 1177 if(!((1<<bron) & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone))) { new weaponname[24]; get_weaponname(bron, weaponname, 23); engclient_cmd(id, "drop", weaponname); } if(cs_get_user_shield(id) && !gracz_ma_tarcze[id]) engclient_cmd(id, "drop", "weapon_shield"); }
Nie za bardzo wiem czego się tutaj chycić żeby to naprawić
Proszę o pomoc.
same
04.04.2014
W plugins.ini (bądź codmod-plugins.ini - w zależności gdzie masz wpisany silnik qtm) dodaj "debug" po QTM_CodMod.amxx
QTM_CodMod.amxx debug
tak to ma wyglądać.
Ogen Dogen
06.04.2014
Displaying debug trace
To są już logi z parametrem debug
Ktoś ma jakieś bardziej kreatywne pomysły ?
Aemiksowy 06.04.2014
Spójrz na pętle w plugin_init odnosząca się do tego. Tam jest po prostu maksymalnie podana wielkość bodajże 25, zaczynając od jakiejś broni. Sam miałem ten problem i przerzuciłem się na rozwiązanie z podstawowego cod moda (curweapon). Spróbuj dodać przed !((1<<bron) pev_valid(ent) i zobacz czy będą errory. Bo tu chodzi o to, że próbuje się pobrać id broni, lecz nie ma miejsca, nr tego jest poza zasięgiem w związku z ograniczeniami wprowadzonymi w pętli.
Ostatecznie, można wyrzucić jeszcze bronie_druzyny[team] | bronie_dozwolone. Choć najbardziej to skupiłbym się na pętli, zwiększając 25 do 30.
Użytkownik Aemiksowy edytował ten post 06.04.2014 15:36
Ogen Dogen
12.04.2014
Spójrz na pętle w plugin_init odnosząca się do tego. Tam jest po prostu maksymalnie podana wielkość bodajże 25, zaczynając od jakiejś broni.
Chodzi o tą pętle ?
for(new i = CSW_P228; i <= CSW_P90; i++)
No to z tego poradnika http://amxx.pl/topic...ive-item-speed/ wynika że P90 ma wartość 30
)>
Spróbuj dodać przed !((1<<bron) pev_valid(ent) i zobacz czy będą errory.
Nadal są
Andrzejek
14.04.2014
?? ale nie jestem 100 % pewny
public Item_Deploy_Post(ent) { static id; id = get_pdata_cbase(ent, 41, 4); if(!is_user_alive(id)) return; static team; team = get_user_team(id); if(team > 2) return; static bron; bron = cs_get_weapon_id(ent); if(!((1<<bron) & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone))) { new weaponname[24]; get_weaponname(bron, weaponname, 23); engclient_cmd(id, "drop", weaponname); } if(cs_get_user_shield(id) && !gracz_ma_tarcze[id]) engclient_cmd(id, "drop", "weapon_shield"); }
Split
16.04.2014
Pozdrawiam.
Poprawione:
Sprawdź:
public Item_Deploy_Post(ent) { static id; id = get_pdata_cbase(ent, 41, 4); if(!is_user_alive(id)) return; static team; team = get_user_team(id); if(team > 2) return; new bron = cs_get_weapon_id; if(!((1<<bron) & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone))) { new weaponname[24]; get_weaponname(bron, weaponname, 23); engclient_cmd(id, "drop", weaponname); } if(cs_get_user_shield(id) && !gracz_ma_tarcze[id]) engclient_cmd(id, "drop", "weapon_shield"); }Pozdrawiam
Użytkownik e-Skill edytował ten post 16.04.2014 22:34
Andrzejek
17.04.2014
Może tak?
public Item_Deploy_Post(ent) { static id; id = get_pdata_cbase(ent, 41, 4); if(!is_user_alive(id)) return; static team; team = get_user_team(id); if(team > 2) return; cs_get_weaponbox_type(ent); static bron; bron = cs_get_weapon_id(ent); if(!((1<<bron) & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone))) { new weaponname[24]; get_weaponname(bron, weaponname, 23); engclient_cmd(id, "drop", weaponname); } if(cs_get_user_shield(id) && !gracz_ma_tarcze[id]) engclient_cmd(id, "drop", "weapon_shield"); }