Eponasoft Posted October 5, 2012 Is there any way to trigger a linedef action when a projectile explodes within its vicinity? I know that you can do an action when a linedef that's part of a wall is shot, but I wanna know if it can be done with *only* an explosive projectile, like a rocket. If not, then I have other ways to do what I wanna do, but this seems the most obvious way. 0 Share this post Link to post
Gez Posted October 5, 2012 No, not really. The work around usually consists in using invisible things placed along the linedef that will take damage. For instance, it's how Strife handled it, with forcefield guard actors and degnin ore. 0 Share this post Link to post
Eponasoft Posted October 5, 2012 Yeah, that's what I figured... so I figured I'd just place a custom thing that only takes damage of a custom type and ignores all other damage types, then has an action for when it's activated ('killed'). Thanks again Gez, you're always helpful. :D 0 Share this post Link to post
Eponasoft Posted October 5, 2012 Yeah, it worked pretty well... I created a new DECORATE Thing and put it in the middle of closed walls... actor BombDoorActivator 10400 { Height 128 Radius 64 Health 1 DamageFactor Slash, 0 DamageFactor Magic, 0 DamageFactor Boom, 100 +SHOOTABLE +NEVERRESPAWN +DONTMORPH +DONTRIP +NOTELEFRAG +NEVERFAST +NOINFIGHTING +NOTARGET +NOTIMEFREEZE +NOFEAR +NOTARGETSWITCH +NOTELEOTHER +NOICEDEATH +NOBLOOD +NOVERTICALMELEERANGE States { Spawn: TNTA A 1 Loop Death: TNT1 A 1 Stop } }Then, I use Thing action 194 to "remove" the wall. It only works with the designated weapon. The large radius and tall height give it the ability to be blown up from either side of the wall, and at any point of the wall's height (since the blastable walls are only ever 128 units tall). 0 Share this post Link to post
Pottus Posted October 6, 2012 How about this... actor ExplodingWall 20001 { health 1 radius 1 height 1 DamageFactor Slash, 0 DamageFactor Magic, 0 DamageFactor Boom, 100 +nogravity +shootable states { Spawn: TNT1 A -1 stop Death: TNT1 A 0 ACS_ExecuteAlways(600, 0) stop } } actor ExplodingWall2 : ExplodingWall 20002 { states { Death: TNT1 A 0 ACS_ExecuteAlways(601, 0) stop } } actor ExplodingWall3 : ExplodingWall 20003 { states { Death: TNT1 A 0 ACS_ExecuteAlways(602, 0) stop } } actor ExplodingWall4 : ExplodingWall 20004 { states { Death: TNT1 A 0 ACS_ExecuteAlways(603, 0) stop } } actor ExplodingWall5 : ExplodingWall 20005 { states { Death: TNT1 A 0 ACS_ExecuteAlways(604, 0) stop } } actor ExplodingWall6 : ExplodingWall 20006 { states { Death: TNT1 A 0 ACS_ExecuteAlways(605, 0) stop } } actor ExplodingWall7 : ExplodingWall 20007 { states { Death: TNT1 A 0 ACS_ExecuteAlways(606, 0) stop } } actor ExplodingWall8 : ExplodingWall 20008 { states { Death: TNT1 A 0 ACS_ExecuteAlways(607, 0) stop } } actor ExplodingWall9 : ExplodingWall 20009 { states { Death: TNT1 A 0 ACS_ExecuteAlways(608, 0) stop } } actor ExplodingWall10 : ExplodingWall 20010 { states { Death: TNT1 A 0 ACS_ExecuteAlways(609, 0) stop } } 0 Share this post Link to post
Gez Posted October 6, 2012 Why do you need so many? Since all you need for them to do is to run a script when they die; it's simpler to just put special 226 (ACS_ExecuteAlways) on them in the map editor. That way, you can use the same actor for whatever script number. 0 Share this post Link to post
Pottus Posted October 6, 2012 Ya your right that would be the best way. 0 Share this post Link to post
Eponasoft Posted October 7, 2012 I took a short video of it working... shot it with my cellphone camera so it's not the prettiest presentation but it gets the job done. http://youtu.be/PdfYF3EAti4 I expanded the BombDoorActivator Actor's Death state to include a mess of A_TossGib calls, then put a bunch of JUNK* sprites into the wad. Works pretty well, eh? No ACS required this time around. :) 0 Share this post Link to post