There is a sequence in one my maps where I have an entire group of monsters raise from the dead (as though being resurrected by an Arch-Vile) simultaneously - for no other reason than I thought it looked neat, and kind of creepy. I ended up achieving the sequence through a very laboured and messy use of invisible, impenetrable, immovable, and silent Arch-Viles that teleport over each and every individual monster corpse for a moment (long enough to raise them), and are then simply removed via ACS. It worked for the intended affect, but would be a massive pain in the arse on any scale larger than a small handful of monsters.
I was hoping to get a little clarity on why one of my first attempts at achieving this didn't work...
I initially tried using SetActorState to achieve this (it seemed like the most straight forward approach), but this wound up giving me a very bizarre issue. I tried combining two very simple scripts - the first script, which was called upon entering the map, killed the TID(1) specific monsters; the second script was...
script 1 (void)
{
SetActorState(1, "Raise", TRUE);
}
Now, the second script raises the monsters fine, they walk around and attack, and everything appears normal - except the monsters can't be hit by anything. Both hitscan and projectile weapons just pass right through them. They're not affected by splash damage. They walk right through other "Things" like barrels or trees. It's as though they no longer have a hitbox.
I noticed that the zdoom wiki page for SetActorState says,
"Note that you should refrain from using this function for any actors that use the monster AI, or unpredictable results could occur."
There is a sequence in one my maps where I have an entire group of monsters raise from the dead (as though being resurrected by an Arch-Vile) simultaneously - for no other reason than I thought it looked neat, and kind of creepy. I ended up achieving the sequence through a very laboured and messy use of invisible, impenetrable, immovable, and silent Arch-Viles that teleport over each and every individual monster corpse for a moment (long enough to raise them), and are then simply removed via ACS. It worked for the intended affect, but would be a massive pain in the arse on any scale larger than a small handful of monsters.
I was hoping to get a little clarity on why one of my first attempts at achieving this didn't work...
I initially tried using SetActorState to achieve this (it seemed like the most straight forward approach), but this wound up giving me a very bizarre issue. I tried combining two very simple scripts - the first script, which was called upon entering the map, killed the TID(1) specific monsters; the second script was...
script 1 (void)
{
SetActorState(1, "Raise", TRUE);
}
Now, the second script raises the monsters fine, they walk around and attack, and everything appears normal - except the monsters can't be hit by anything. Both hitscan and projectile weapons just pass right through them. They're not affected by splash damage. They walk right through other "Things" like barrels or trees. It's as though they no longer have a hitbox.
I noticed that the zdoom wiki page for SetActorState says,
"Note that you should refrain from using this function for any actors that use the monster AI, or unpredictable results could occur."
I'm just curious if anyone knows why this is?
Share this post
Link to post