Nie chcecie wiedzieć ile dni straciłem zanim przez przypadek to odkryłem.
Chciałem zrobić minę, w którą jak się strzeli to wybuchnie. Użyłem więc granata HE i zmieniłem mu model. Niestety ta klasa bytu (grenade_projectile) nie dawała mi możliwości postrzału. Po ustawieniu offsetów takich jak takedamage na 2 oraz health i maxhealth dawało się zadać obrażenia ale tylko poprzez wybuch czegos obok, strzał przenikał przez niego. Na rozwiązanie wpadłem przez przypadek kiedy to postanowiłem użyć innego bytu (weapon_hegrenade) i po ustawieniu mu kilku właściwości niezwiązanych na pozór z solidem czy collisionem nagle przestał odbierać pociski. Okazało się, że sęk tkwi w ownerze.
Wystarczy ustawić mu ownera na -1 i zacznie przyjmować strzały. Następujący kod sprawi, że granat po strzeleniu w niego wybuchnie:
Entity_SetOwner(iGrenade,-1) SetEntProp(iGrenade, Prop_Data, "m_takedamage",2); SetEntProp(iGrenade, Prop_Data, "m_iMaxHealth", 12); SetEntProp(iGrenade, Prop_Data, "m_iHealth", 10);
Oczywiście rzadko uda się postrzelić granat w locie, ale można to wykorzystać np do jakichś min czy cuś. zhookować spawn bytu, w Timerze na 0.2 sek ustawic mu nextthink na -1 zeby zapobiec wybuchowi i taka mina bedzie sobie lezala az ja ktos postrzeli, a mozna tez jej dorobic jakis aktywator Dziele się w z wami tą wiedzą, bo 3 dni mi zajęło zanim to odkryłem. Mam nadzieję, że komuś się to przyda do zrobienia czsegoś fajnego.
Użytkownik grankee edytował ten post 22.11.2015 08:18