Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
aurimasko
Flooderis arba specialistas
Posts: 736 Joined: 2010 Sep 04 08:45
Post
by aurimasko » 2010 Nov 05 17:02
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) }}}
newb
Pluginų patvirtintojas
Posts: 1047 Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:
Post
by newb » 2010 Nov 05 22:20
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.
aaarnas
Vyr. diskusijų administratorius
Posts: 3891 Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:
Post
by aaarnas » 2010 Nov 05 23:03
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
Palikau CS pasaulį ;/ . Nebepasiekiamas.
newb
Pluginų patvirtintojas
Posts: 1047 Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:
Post
by newb » 2010 Nov 05 23:08
aaarnas wrote: Vienas dalykas, for cikle visada turi priskirti reikšmę.
Nori pasakyt kad taip neteisingai ? >_<
aurimasko
Flooderis arba specialistas
Posts: 736 Joined: 2010 Sep 04 08:45
Post
by aurimasko » 2010 Nov 05 23:08
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?
aaarnas
Vyr. diskusijų administratorius
Posts: 3891 Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:
Post
by aaarnas » 2010 Nov 05 23:14
Apskritai tą funkcija nelogiška. Kada tu nustatai duomenis į g_Buttons ir kokius ?
Palikau CS pasaulį ;/ . Nebepasiekiamas.
aurimasko
Flooderis arba specialistas
Posts: 736 Joined: 2010 Sep 04 08:45
Post
by aurimasko » 2010 Nov 05 23:17
Č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}
Users browsing this forum: No registered users and 6 guests