Page 1 of 2

entity touch

Posted: 2012 Apr 02 12:48
by aurimasko
turiu entity sukūrimo kodą:

Code: Select all

                                        new Float:MinBox[3], Float:MaxBox[3]                            MinBox[0] = -20.0                            MinBox[1] = -20.0                            MinBox[2] = 0.0                            MaxBox[0] = 20.0                            MaxBox[1] = 20.0                                MaxBox[2] = 15.0                                     ent = create_entity("info_target")                            entity_set_string(ent, EV_SZ_classname,"SpitterAcid")                            entity_set_model(ent, "models/uus/acid.mdl")                            entity_set_origin(ent, origin3)                            entity_set_size(ent, MinBox, MaxBox)                            entity_set_vector(ent, EV_VEC_mins, MinBox)                            entity_set_vector(ent, EV_VEC_maxs, MaxBox)                            entity_set_int(ent, EV_INT_solid, SOLID_TRIGGER)                                     
ir turiu kas vyksta jį palietus:

Code: Select all

 register_touch("SpitterAcid", "player", "acid_touch")public acid_touch(id){    log_amx("acidas")    set_task(1.0, "task_aciddmg", id+TASK_ACIDDMG, "", 0, "b")    set_task(get_pcvar_float(cvar_aciddmgtime), "task_stopdmg", id+TASK_ACIDDMG2)       return FMRES_IGNORED} 
entity sukuria, bet užlipus ant jo niieko nevyksta ir neprintina nieko į logus.. classname sutampa..
ir kaip padidinti man pvzd dvigubai savo entity modelį?

Re: entity touch

Posted: 2012 Apr 02 13:04
by hleV
Žiūrėk, kad nustatymai būtų tokia tvarka:
  1. Sukuri entity.
  2. Nustatai classname.
  3. Nustatai origin.
  4. Nustatai model.
  5. Nustatai solid.
  6. Nustatai mins ir maxs.
Tarp kitko tu du kartus sukuri "info_target" kažkodėl.

Re: entity touch

Posted: 2012 Apr 02 13:34
by aurimasko
na jau veikia.. dabar pas mane padaryta, kad užlipus ant to entity uždedamas set_taskas kad mažėtų hp.. kaip padaryti kad nulipus nuo to entity removintų taską?

Re: entity touch

Posted: 2012 Apr 02 13:44
by aaarnas
Modelį nežinau ar galima ištempti (sprite tik tikriausiai), bet funkcija tam - EV_FL_scale

Įdėk touch'e, kad pastoviai atnaujintų į kintamąjį laiką, kol žaidėjas touchina entity. O taske tikrink, kada tas laikas kintamąjame pasidarys pakankamai mažesnis nei dabartinis laikas, tada removink task'ą.

Re: entity touch

Posted: 2012 Apr 02 14:31
by aurimasko
o kaip pašalinti visus entity roundui pasibaigus?

Re: entity touch

Posted: 2012 Apr 02 14:36
by aaarnas
Į Array išsisaugok visų sukurtų entity id ir po to iš jo trink HLTV evente.

Re: entity touch

Posted: 2012 Apr 02 14:56
by aurimasko
gerai aš pasidariau array:

Code: Select all

     Acidai = ArrayCreate(50) 
jau viska normaliai trina ir panašiai.. bet ar įmanoma padaryti, kad neribotas kiekis būtų ?

Re: entity touch

Posted: 2012 Apr 02 15:03
by Fly3r
Tai didink tą 50. Beje, modelį ištempti tikrai įmanoma.

Re: entity touch

Posted: 2012 Apr 02 15:03
by aurimasko
tai aš galiu padaryti jį 99999, bet man reikia kad būtų apskritai neribotai

Re: entity touch

Posted: 2012 Apr 02 15:05
by Fly3r
O tau ką mažai tiek? :)

Čia, šiaip, nereikia jokio array. Tiesiog

Code: Select all

 public new_round(){     new ent = -1;     while ((ent = find_entity_by_class(ent, "SpitterAcid")) != 0)     {          remove_entity(ent);     }}
Ir viskas. :)