You need two triggers: One to save your hitpoints of the last seconds for specific intervals, and one to restore your hitpoints.
here's one way to do it, but it only works if there really is just one single unit in the game with this ability. Otherwise you'd have to change it a bit.
start...
The 4 main buildings all use the same animations for their upgrades: "upgrade first" and "upgrade second".
You can look this up yourself in the object editor, under "art - required animation names" I think. ;)
I would do it like this:
function IsAbilityUltimate takes integer id returns boolean
return ( id == 'A001' or id == 'A002' or id == 'A003' or id == 'A004' or id == 'A005' )
endfunction
(A001, A002, A003, A004 and A005 are ultimates)
You're just comparing some integers (as many as there are...
Well, both of your triggers leak a unit-variable (DartTarget), apart from that I don't see much difference between them.
The biggest problem is that you use global variables. If ANY other unit uses Envenomed Dart or Ultimate Envenomed Dart during one of your waits (or even the same unit), you...
No hero can have a higher level than the number in the gameplay constants.
Either you turn your bosses into normal units or you set the maximum hero lvl to 750 and then trigger that experience is disabled for your hero when he reaches lvl 99.
I would just use the ability Phoenix Fire. It automatically attacks nearby enemies, gives them a DoT, and isn't cast on enemies that already have the buff. Sounds perfect for what you want. And you don't need a single annoying trigger.
I don't know why it works one time and not the other, sorry.
But your AOEEffect-Trigger is needlessly complicated.
You have: (MaxDam*Pow(Distance,-1))*(MaxDam/(MinNum*MaxDam))
Now, Pow(Distance,-1) is the same as 1/Distance.
And (MaxDam/(MinNum*MaxDam)) is just MinNum.
So in the end, what...
Ah, so everything inside the if-actions-block is already local.
Then I'm sure that each player get's a different random value (and a different message) as long as the if-condition is there.
Without the if-condition, everyone should get the same message I think.
That's got nothing to do with one another. oO
The condition is useless because as I said, every player is in "bj_FORCE_ALL_PLAYERS" anyway.
So this:
if IsPlayerInForce(GetLocalPlayer(), bj_FORCE_ALL_PLAYERS) then
call DisplayTextToPlayer(GetLocalPlayer(), 0., 0., sc + MSG[GetRandomInt(1...