napisałem plugin który ma taska na usuwanie etów o danej nazwie, każdy "obrót" taska jest zliczany do zmiennej kolejka, a każdy ent co powstanie ma przypisaną kolejkę usówania ( ostatni "obrót" + 1, by nie zdażało sie że ent znika po utworzeniu ) do parametru:
entity_set_int(ent, EV_INT_iuser4, kolejka);
Kiedy przychodi do sprawdzenia kolejki ( usunąc enta czy nie ), serwer crashuje, nie daje żadnej informacji do logów ani do konsoli.
Poniżej zarzucam kod tego majstersztyku:
public RemoveBox(){
set_task(20.0, "RemoveBox", TASK_REMOVE_BOX);
new ent = -1;
while((ent = find_ent_by_class(ent, CLASNAME_AMMOPACK)){
SafeRemoveEntity(ent, 1);
}
kolejka++;
client_print(0, print_chat, "%i", kolejka);
}
stock SafeRemoveEntity(ent, sprawdzaj=0){
if(!is_valid_ent(ent))
return;
if(sprawdzaj){
new kolejka_enta = entity_get_int(ent, EV_INT_iuser4);
if(kolejka < kolejka_enta)
return;
}
remove_entity(ent);
}
Więc co jest powodem tego problemu, lub czy zna ktos jakieś inne rozwiązanie dla mojej mysli usuwania entów.
Użytkownik Czaso Umilacz edytował ten post 01.11.2012 14:35