[ROZWIĄZANE] Problem z Entity (IndexOfEdict)
Najlepsza odpowiedź
Indoor
17.04.2020 20:52
Problem rozwiązany, jak zawsze banalny tylko dziwni mnie, że przez tyle czasu było wszystko OK i nagle takie problemy...
W plugin_init()
Zamieniłem
register_forward(FM_TraceLine,"fw_traceline");
Na
register_forward(FM_TraceLine,"fw_traceline", true);

Indoor
17.04.2020
Cześć. Kupiłem serwer na pukawce do testowanie swojego Diablo wszystko ładnie działało ale jak dzisiaj chciałem wejść na serwer to go crashuje(tóż po wybraniu teamu). Zaznaczę, że nic nie było zmieniane w kodzie Diablo jak i żaden nowy plugin dodawany/usuwany NIC
Błąd w konsoli jest następujący:
L 04/17/2020 - 02:35:32: [ENGINE] Entity 0 can not be removedL 04/17/2020 - 02:35:32: [AMXX] Displaying debug trace (plugin "123-include-bez-avg.amxx", version "1.0b")L 04/17/2020 - 02:35:32: [AMXX] Run time error 10: native error (native "remove_entity")L 04/17/2020 - 02:35:32: [AMXX] [0] 123-include-bez-avg.sma::RoundStart (line 1542)L 04/17/2020 - 02:35:32: FATAL ERROR (shutting down): IndexOfEdict: bad entityFATAL ERROR (shutting down): IndexOfEdict: bad entitySegmentation fault (core dumped)Linia 1542:remove_entity(c4fake[id])Więc zamieniłem na takie coś:if(c4fake[id]) { remove_entity(c4fake[id]) }Błąd zmienił się na taki:L 04/17/2020 - 02:49:37: FATAL ERROR (shutting down): IndexOfEdict: bad entity FATAL ERROR (shutting down): IndexOfEdict: bad entity Segmentation fault (core dumped) email debug.log to [email protected] Fri Apr 17 02:49:37 CEST 2020: Server restart in 10 secondsW zasadzie taki sam ale bez linii gdzie jest błądPrzejrzałem cały kod Diablo nie widzę nigdzie błędu nie wiem co robić ;(Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.7.0.695-dev
Build date: 15:54:29 Apr 6 2020 (2186)Metamod-P 1.21p37, Amx Mod X 1.8.3, Reunion, VoiceTranscoder, ReAuthCheck
Użytkownik Indoor edytował ten post 17.04.2020 01:57
dasiek
17.04.2020
Pierwsza sprawa - Z jakiego pluginu korzystasz? Skąd go pobrałes?
Co do tematu: warunek w Ifie który dodałeś powinien chyba sprawdzać czy obiekt jest poprawny - https://amxx.pl/doku...d-ent<br><br>
jeśli to rozwiąże problem, OK, ale dziwne jest to, że plugin próbuje robić coś na entity, który nie istnieje. Coś musi być spsute.
Indoor
17.04.2020
Plugin to DiabloMod by Gutek i Miczu 5.9l lecz mooocno zmodyfikowany przeze mnie. Kod z dokumentacji który podałeś znalazłem w nocy i niestety jest nadal ten błąd
L 04/17/2020 - 13:37:55: [ENGINE] Entity 0 can not be removed L 04/17/2020 - 13:37:55: [AMXX] Displaying debug trace (plugin "123-include-bez-avg.amxx", version "1.0b") L 04/17/2020 - 13:37:55: [AMXX] Run time error 10: native error (native "remove_entity") L 04/17/2020 - 13:37:55: [AMXX] [0] 123-include-bez-avg.sma::DelEnt (line 1634) L 04/17/2020 - 13:37:55: [AMXX] [1] 123-include-bez-avg.sma::RoundStart (line 1615) L 04/17/2020 - 13:37:55: FATAL ERROR (shutting down): Bad entity in IndexOfEdict() FATAL ERROR (shutting down): Bad entity in IndexOfEdict() email debug.log to [email protected] Fri Apr 17 13:37:55 CEST 2020: Server restart in 10 seconds
Linia 1615 odpowiada
DelEnt(c4fake[id]);
Linia 1634(remove_entity):
public DelEnt(ent){ if(is_valid_ent(ent)) return; remove_entity(ent); }
A tutaj cały public od meekstone czyli od tego entity
public item_c4fake(id){ if (c4state[id] > 1){ hudmsg(id,2.0,"Meekstone mozesz uzyc raz na runde!"); return PLUGIN_CONTINUE; } if (player_b_meekstone[id] > 0 && c4state[id] == 1 && is_user_alive(id) == 1 && freeze_ended == true){ explode(c4bombc[id],id,0); for(new a = 0; a < MAX; a++){ if (is_user_connected(a) && is_user_alive(a)){ new origin1[3]; get_user_origin(a,origin1); if(get_distance(c4bombc[id],origin1) < 300 && get_user_team(a) != get_user_team(id)){ if(player_b_antymeek[a] > 0 || c_antymeek[a] > 0); return PLUGIN_CONTINUE; UTIL_Kill(id,a,"grenade"); } } } c4state[id] = 2; remove_entity(c4fake[id]); c4fake[id] = 0; } if (player_b_meekstone[id] > 0 && c4state[id] == 0 && c4fake[id] == 0 && is_user_alive(id) == 1 && freeze_ended == true){ new Float:pOrigin[3]; entity_get_vector(id,EV_VEC_origin, pOrigin); c4fake[id] = create_entity("info_target"); entity_set_model(c4fake[id],"models/w_backpack.mdl"); entity_set_origin(c4fake[id],pOrigin); entity_set_string(c4fake[id],EV_SZ_classname,"fakec4"); entity_set_edict(c4fake[id],EV_ENT_owner,id); entity_set_int(c4fake[id],EV_INT_movetype,6); new Float:aOrigin[3]; entity_get_vector(c4fake[id],EV_VEC_origin, aOrigin); c4bombc[id][0] = floatround(aOrigin[0]); c4bombc[id][1] = floatround(aOrigin[1]); c4bombc[id][2] = floatround(aOrigin[2]); c4state[id] = 1; } return PLUGIN_CONTINUE; }
dredek
17.04.2020
Do resethud(id) dodaj
if (c4fake[id] > 0){remove_entity(c4fake[id])c4fake[id] = 0}if (ent[id] > 0){remove_entity(ent[id])ent[id] = 0}public DelEnt(ent) możesz wywalić
Indoor
17.04.2020
Mam to od początku w ResetHUD
if (c4fake[id] > 0){if(pev_valid(c4fake[id])){remove_entity(c4fake[id]);}c4fake[id] = 0}
Użytkownik Indoor edytował ten post 17.04.2020 16:57
dredek
17.04.2020
Zrób tak jak Ci wysłałem, wywal tą zbędną funkcje i zobacz czy serwer nadal będzie sypał błędami.
Indoor
17.04.2020
To co podałeś to miałem od początku i również był ten sam błąd w nocy dodałem tylko "if(pev_valid(c4fake[id]))" sprawdzić czy coś pomoże jednak nic nie zdziałałem
Najlepsza odpowiedź
Indoor
17.04.2020
Problem rozwiązany, jak zawsze banalny tylko dziwni mnie, że przez tyle czasu było wszystko OK i nagle takie problemy...
W plugin_init()
Zamieniłem
register_forward(FM_TraceLine,"fw_traceline");
Na
register_forward(FM_TraceLine,"fw_traceline", true);
dasiek
18.04.2020
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,

Z pozdrowieniami,
Zespół AMXX.PL