Nie wiem czy ten touch taki szybki, że zanim usunie entity to on jeszcze raz się wywoła
Sam sobie odpowiedziałeś chyba 
Pewien nie jestem, ale Touche wykonywane są w server_frame, a ta funkcja wywoływana jest 500-1000 razy na sekundę (zależy jaki serwer), czyli dość często jak się można domyślić 
Przestawienie zmiennej logiczej (którą dodał kolega wyrzej) nie zabiera nic czasu, a jak widać usuniecie entu trochę zajmuję.
Co do tablicy to niestety lipa, bo tablica 512 nie zawsze da radę (np na de_piranesi jest chyba z 900 entów bazowych), poza tym szkoda zajmować pamięć tablicą, którą wykorzystamy w 1%.
Dlatego przy entach zazwyczaj korzysta się z nieużywanych pevów entu np tak:
public fwd_touch(ent, id)
{
if(!pev_valid(ent) || !is_user_alive(id) || pev(ent,pev_fuser4) return;
engfunc(EngFunc_RemoveEntity, ent);
Uzyj(id)
set_pev(ent,pev_fuser4,1.0)
}
Nie testowałem, ale powinno latać, jak nie śmiga, użyj tablicy, ewentualnie tablicy dynamicznej, albo znajdź sobie inny pev (byle był nie używany
)
Edit: z tym server_frame to chyba mnie poniosło mocno, touche raczej są sprawdzane w osobistych thinkach entu, one są znacznie znacznie rzadziej 
Użytkownik Ossal edytował ten post 13.06.2015 00:08