←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Usuwanie bytu co rundę

Zablokowany

  • +
  • -
Zapalka - zdjęcie Zapalka 06.10.2010

Witam, chciałbym aby ktoś mi powiedział jak mogę zrobić aby byt usuwany był na koniec każdej rundy.
Byt ten to model który może postawić w miejscu gracz po wpisaniu komendy.
Nazwa klasy tego bytu to ludzik.
Próbowałem robić to na kilka sposobów lecz żaden z nich nie działał.
np. tak:

new ent = -1
while((ent = fm_find_ent_by_class(ent, "ludzik")))
{
engfunc(EngFunc_RemoveEntity,ent)
}

lub tak:

remove_entity(ent)

Lecz nie działa. Oczywiście wkleiłem to do funkcji(event) która wykonuje się na koniec rundy.
Jednak gdy zrobiłem aby ten byt usuwał się po 20 sek. po jego stworzeniu to wszystko działa.
Odpowiedz

  • +
  • -
Ortega - zdjęcie Ortega 06.10.2010

Do logevent round end:
new ent;
ent = -1;
while( ( ent = find_ent_by_class( ent, "ludzik" ) ) != -1 )
{
engfunc( EngFunc_RemoveEntity, ent );
}

Do sprawdzania lepiej używać modułu engine ;)
Odpowiedz

  • +
  • -
Zapalka - zdjęcie Zapalka 06.10.2010

identycznie miałem.
Nic to nie zmieniło :/
Nadal byt się nie usuwa.
I jeszcze mam jeden problem.
ten byt ma leczyć gdy ktoś w nim stoi, lecz on czasami leczy a czasami jak się w to wejdzie to dostaje się tak jakby Noclipa. Można latać gdzie się chce tak ja na free cam.
oto kod z kolizji.

public leczenie(ent,player)
{
if(czekaj[player]>=1)
{
return PLUGIN_HANDLED;
}
if(!is_user_alive(player) || !is_user_connected(player))
{
return PLUGIN_HANDLED
}
if(get_user_health(player)<100)
{
set_user_health(player,get_user_health(player)+2)
//entity_set_float ( player, EV_FL_health, get_user_health(player)+2.0 )
czekaj[player]++
set_task(1.0,"odczekaj",player)
}
else
{
return PLUGIN_HANDLED;
}
entity_set_float(player,EV_FL_nextthink,halflife_time() + 0.01)
return PLUGIN_HANDLED
}


Dodano 07 październik 2010 - 17:43:
#refresh
Użytkownik Zapalka edytował ten post 09.10.2010 11:05
Odpowiedz
Zablokowany