Page 1 of 1
errorai
Posted: 2010 Nov 05 17:02
by aurimasko
Code: Select all
L 11/05/2010 - 14:40:56: [HAMSANDWICH] Invalid entity (131)L 11/05/2010 - 14:40:57: [AMXX] Displaying debug trace (plugin "jbextreme.amxx")L 11/05/2010 - 14:40:57: [AMXX] Run time error 10: native error (native "ExecuteHamB")L 11/05/2010 - 14:40:57: [AMXX] [0] jbextreme.sma::jail_open (line 1694)L 11/05/2010 - 14:40:57: [AMXX] [1] jbextreme.sma::check_freeday (line 1434)
Kaip pataisyti?
Eilutė:
Code: Select all
public jail_openas_(tempid){static ifor(i = 0; i < sizeof(g_Buttons); i++){ if(g_Buttons[i]) { ExecuteHamB(Ham_Use, g_Buttons[i], 0, 0, 1, 1.0) // šita entity_set_float(g_Buttons[i], EV_FL_frame, 0.0) }}}
Re: errorai
Posted: 2010 Nov 05 22:20
by newb
Nezinau ka daro sita funkcija, bet vel gauni id, ir bandai visiem kazka keist ^^
P.S. Naudot static i nera teisingai, ir i = 0 irgi nerasoma, nes i ir taip bus 0.
Re: errorai
Posted: 2010 Nov 05 23:03
by aaarnas
Vienas dalykas, for cikle visada turi priskirti reikšmę. Beje esu skaitęs, kad kuriant kintamąjį su static atrodo reikia visuomet nustatyti reikšmę, nes atmintyje gali būti užsilikusi senoji reikšmė.
Klaidą rodo, nes ant 0 iškvieti ExecuteHamB funkciją.
Tavo skriptas yra visiškai nelogiškas. Pagal entity rikiavimus:
0 - serveris
1-32 - žaidėjai
33 > pasaulio entity
Tai čia prasideda min nuo 33
Re: errorai
Posted: 2010 Nov 05 23:08
by newb
aaarnas wrote:Vienas dalykas, for cikle visada turi priskirti reikšmę.
Nori pasakyt kad taip neteisingai ? >_<
Re: errorai
Posted: 2010 Nov 05 23:08
by aurimasko
aaarnas wrote:Vienas dalykas, for cikle visada turi priskirti reikšmę. Beje esu skaitęs, kad kuriant kintamąjį su static atrodo reikia visuomet nustatyti reikšmę, nes atmintyje gali būti užsilikusi senoji reikšmė.
Klaidą rodo, nes ant 0 iškvieti ExecuteHamB funkciją.
Tavo skriptas yra visiškai nelogiškas. Pagal entity rikiavimus:
0 - serveris
1-32 - žaidėjai
33 > pasaulio entity
Tai čia prasideda min nuo 33
Tai kurią čia vietą keisti?
Re: errorai
Posted: 2010 Nov 05 23:14
by aaarnas
Apskritai tą funkcija nelogiška. Kada tu nustatai duomenis į g_Buttons ir kokius ?
Re: errorai
Posted: 2010 Nov 05 23:17
by aurimasko
Čia tik gabaliukas kodo.
Code: Select all
new g_Buttons[10]public setup_buttons(){new ent[3]new Float:origin[3]new info[32]new pos while((pos <= sizeof(g_Buttons)) && (ent[0] = engfunc(EngFunc_FindEntityByString, ent[0], "classname", "info_player_deathmatch"))){ pev(ent[0], pev_origin, origin) while((ent[1] = engfunc(EngFunc_FindEntityInSphere, ent[1], origin, CELL_RADIUS))) { if(!is_valid_ent(ent[1])) continue entity_get_string(ent[1], EV_SZ_classname, info, charsmax(info)) if(!equal(info, "func_door")) continue entity_get_string(ent[1], EV_SZ_targetname, info, charsmax(info)) if(!info[0]) continue if(TrieKeyExists(g_CellManagers, info)) { TrieGetCell(g_CellManagers, info, ent[2]) } else { ent[2] = engfunc(EngFunc_FindEntityByString, 0, "target", info) } if(is_valid_ent(ent[2]) && (in_array(ent[2], g_Buttons, sizeof(g_Buttons)) < 0)) { g_Buttons[pos] = ent[2] pos++ break } }}TrieDestroy(g_CellManagers)} stock in_array(needle, data[], size){for(new i = 0; i < size; i++){ if(data[i] == needle) return i}return -1}