←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[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);

 

:mur:  :mur:

Przejdź do postu
Zablokowany

  • +
  • -
Indoor - zdjęcie 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 removed

L 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 entity
FATAL ERROR (shutting down): IndexOfEdict: bad entity
Segmentation 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 seconds
 
W zasadzie taki sam ale bez linii gdzie jest błąd :/
Przejrzał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
Odpowiedz

  • +
  • -
dasiek - zdjęcie 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.

Odpowiedz

  • +
  • -
Indoor - zdjęcie 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;
}
Odpowiedz

  • +
  • -
dredek - zdjęcie 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ć
 
Odpowiedz

  • +
  • -
Indoor - zdjęcie 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
Odpowiedz

dredek - zdjęcie 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. 

 

Odpowiedz

Indoor - zdjęcie 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

Odpowiedz

Najlepsza odpowiedź Indoor - zdjęcie 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);

 

:mur:  :mur:

Odpowiedz

dasiek - zdjęcie dasiek 18.04.2020

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Udostępnij Udostępnij
Zablokowany