Triggering script based on enemy's HP?

Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.

Please bear in mind that the people helping you do not automatically know how much you know. You may be asked to upload your project file to look at. Don't be afraid to ask questions about what things mean, but also please be patient with the people trying to help you. (And helpers, please be patient with the person you're trying to help!)

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is OFF
Smilies are ON

Topic review
   

Expand view Topic review: Triggering script based on enemy's HP?

Re: Triggering script based on enemy's HP?

by gloomiest666 » Sat Nov 16, 2019 11:53 am

KeksDose wrote:It's pretty close. There's no "when", but there's "while" and delays, so you can do this:

Code: Select all

script 1 OPEN
{
   while(50 < GetActorProperty(3, APROP_HEALTH))
   {
      Delay(1);
   }
   Acs_Execute(2, 0);
}
Usually, you'll be writing scripts that wait a lot like that to time your triggers.
Thank you very much :)

Re: Triggering script based on enemy's HP?

by KeksDose » Sat Nov 16, 2019 9:19 am

It's pretty close. There's no "when", but there's "while" and delays, so you can do this:

Code: Select all

script 1 OPEN
{
   while(50 < GetActorProperty(3, APROP_HEALTH))
   {
      Delay(1);
   }
   Acs_Execute(2, 0);
}
Usually, you'll be writing scripts that wait a lot like that to time your triggers.

Triggering script based on enemy's HP?

by gloomiest666 » Sat Nov 16, 2019 9:05 am

I'm trying to make an ACS execute after a certain mob that has a TID of 3 loses 50% of its health points or more (in this case the monster has 100 base HP).

I've tried with:


script 1 OPEN
{
When (GetActorProperty (3, APROP_HEALTH,"monstername") <= 50)
{
Acs_Execute(2,0);
}
}


and also:


script 1 OPEN
{
if (GetActorProperty (3, APROP_HEALTH) <= 50)
Acs_Execute(2,0);
}


Yet none worked. What am I doing wrong?

Top