←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] plugin usuwający enty crashuj...

Zablokowany

  • +
  • -
Pan PrO - zdjęcie Pan PrO 11.11.2012

Witam. Dlaczego plugin usuwający enty crashuje serwer bez żadnych error logów ??



#include <amxmodx>
#include <engine>

#define PLUGIN "Remove Ent"
#define VERSION "1.0"
#define AUTHOR "Pan PrO"

new const Enty[][] = {
"rocket",
"medkit",
"mine"
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
}

public NowaRunda()
{
for(new iEnt=0; iEnt < sizeof Enty; iEnt++)
{
new idEnt = find_ent_by_class(-1, Enty[iEnt]);
while(idEnt > 0)
{
remove_entity(idEnt);
idEnt = find_ent_by_class(idEnt, Enty[iEnt]);
}
}
}

public client_disconnect(id)
UsunEnty(id);

public UsunEnty(id)
{
for(new iEnt=0; iEnt < sizeof Enty; iEnt++)
{
new idEnt = find_ent_by_class(0, Enty[iEnt]);
while(idEnt > 0)
{
if(entity_get_edict(idEnt, EV_ENT_owner) == id)
remove_entity(idEnt);
idEnt = find_ent_by_class(idEnt, Enty[iEnt]);
}
}
}
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 11.11.2012

Może dlatego, że:
new idEnt = find_ent_by_class(-1, Enty[iEnt]); 

podajesz tutaj -1, a powinieneś 0?
Odpowiedz

  • +
  • -
Pan PrO - zdjęcie Pan PrO 12.11.2012

hmm zobaczymy ale mam wątpliwości
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 12.11.2012

Może dlatego, że:

new idEnt = find_ent_by_class(-1, Enty[iEnt]); 

podajesz tutaj -1, a powinieneś 0?

Na pewno w tym nie ma żadnego błędu, zresztą chyba nawet zawsze powinno się zaczynać od -1 w takich funkcjach jak szukanie jakiegoś bytu na mapie.

#include <amxmodx>
#include <engine>

#define PLUGIN "Remove Ent"
#define VERSION "1.0"
#define AUTHOR "Pan PrO"

new const Enty[][] = {
"rocket",
"medkit",
"mine"
}

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);

register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
}

public NowaRunda()
UsunEnty();

public client_disconnect(id)
UsunEnty(id);

stock UsunEnty(id = 0) {
new iEnt, idEnt, iSizeEnt = sizeof(Enty);
for(iEnt=0; iEnt<iSizeEnt; ++iEnt) {
idEnt = -1;
while((idEnt = find_ent_by_class(idEnt, Enty[iEnt]))) {
if(id && entity_get_edict(idEnt, EV_ENT_owner) != id)
continue;

remove_entity(idEnt);
}
}
}

Tak powinno być dobrze.

Możliwe też, że obydwa pluginy są dobre, tylko może po prostu w innym pluginie usuwasz ent, który został już usunięty przy pomocy tego pluginu, który tu podałeś.
Odpowiedz

  • +
  • -
Pan PrO - zdjęcie Pan PrO 12.11.2012

Można Zamknąć.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 12.11.2012

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany