About Regeneration

Sonic

New Member
Reaction score
10
How to freeze mana or health regeneration. I mean to stop regeneration of mana or hit points for x seconds
 

Music Man

Cool Member
Reaction score
3
The difficulty depends on the scenario you would like to stop health or mana "regeneration".

Here's my try at it:

Trigger:
  • StopManaSpellCast
    • StopManaSpellCast
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • (Ability being cast) Equal to Stopmanaregenspell
    • Actions
      • Set targetofunitspell = (Target unit of ability being cast)
      • Set manaoftarget = (Mana of (Target unit of ability being cast))
      • Trigger - Turn on MechanicsOfSpell <gen>
      • Trigger - Turn on Unitusesitem <gen>
      • Trigger - Turn on Unitishealed <gen>
      • Trigger - Turn on Unitisattacked <gen>
      • -------- Assuming the spell is 5 seconds long --------
      • Wait 5.00 seconds
      • Trigger - Turn off MechanicsOfSpell <gen>
      • Trigger - Turn off Unitusesitem <gen>
      • Trigger - Turn off Unitishealed <gen>
      • Trigger - Turn off Unitisattacked <gen>


Trigger:
  • MechanicsOfSpell
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • -------- Checking the current mana with respect to the mana at the time the spell was cast --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Mana of targetofunitspell) Greater than or equal to manaoftarget
        • Then - Actions
          • Unit - Set mana of targetofunitspell to manaoftarget
        • Else - Actions
          • -------- If the unit's mana is not equal to or greater than what it was before, the unit casted a spell, therefore we need to readjust our mana pivot point --------
          • Set manaoftarget = (Mana of targetofunitspell)

Trigger:
  • Unitusesitem
    • Events
      • Unit - A unit Uses an item
    • Conditions
      • (Triggering unit) Equal to targetofunitspell
    • Actions
      • Set manaoftarget = (Mana of targetofunitspell)
      • Set lifeoftarget = (Life of (Target unit of ability being cast))


Trigger:
  • Unitishealed
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Target unit of ability being cast) Equal to targetofunitspell
    • Actions
      • Set manaoftarget = (Mana of (Target unit of ability being cast))
      • Set lifeoftarget = (Life of (Target unit of ability being cast))


Trigger:
  • Unitisattacked
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Attacked unit) Equal to targetofunitspell
    • Actions
      • -------- Set mana as well in case target has manaburn --------
      • Set manaoftarget = (Mana of (Target unit of ability being cast))
      • Set lifeoftarget = (Life of (Target unit of ability being cast))

Just wanted to add this is only for mana, you just have to change the attribute to the health of the target of issued order. Humm this will not work correctly if the unit uses a mana pot though.
You will have to enable another independent trigger for the duration of the spell that checks to see if he uses an item.
bagh here you go:^^

Time for more rules
 

Sonic

New Member
Reaction score
10
oh, I understand all, but can't I increase the periodic time to not cause lag
 

Music Man

Cool Member
Reaction score
3
oh, I understand all, but can't I increase the periodic time to not cause lag

The periodic time shouldn't cause lag, go ahead and try.

If it does, the reason why it is so quick is because it is suppose to " out-pace " the mana regen rate of the unit.

If you move the check to like .5 or 1 second, the unit may gain a couple points, but the trigger will still reset it correctly. So if you don't want to be overly technical and just have it sort of work, go ahead and modulate the timer.
 

Sonic

New Member
Reaction score
10
The periodic time shouldn't cause lag, go ahead and try.

If it does, the reason why it is so quick is because it is suppose to " out-pace " the mana regen rate of the unit.

If you move the check to like .5 or 1 second, the unit may gain a couple points, but the trigger will still reset it correctly. So if you don't want to be overly technical and just have it sort of work, go ahead and modulate the timer.


ok ok +rep
 

Jedi

New Member
Reaction score
63
I see, seems good idea :D What about if unit takes damage or cast an ability between periods ?
 

Music Man

Cool Member
Reaction score
3
Unless the unit has some ability to make his mana go up, I think I have tackled that.

As for an ability to make life go up (heal etc..), you would have to add the trigger unit - casts an ability - set manaoftarget(or life) equal to the life of the unit.

Yeah I guess I could edit than in to my description. This would be a lot easier with jass I just know lol.
 

mapguy

New Member
Reaction score
46
when you detect that the unit uses an item or a magic you forget that the mana is only uses 0.00 seconds after all trigger runs.

which means, you have to use a timer of 0.00 seconds to detect the mana that was lost by using an item or ability.
 

Ayanami

칼리
Reaction score
288
when you detect that the unit uses an item or a magic you forget that the mana is only uses 0.00 seconds after all trigger runs.

which means, you have to use a timer of 0.00 seconds to detect the mana that was lost by using an item or ability.

How is this going to stop regeneration in any way? Sonic asked "how to stop mana regeneration" and not "how to keep my mana constant".
 

mapguy

New Member
Reaction score
46
when a unit uses an item it loses mana.

so, you have to store the NEW mana value to make the unit to be unable to renerate more than it.

<3 glen
 

Ayanami

칼리
Reaction score
288
when a unit uses an item it loses mana.

so, you have to store the NEW mana value to make the unit to be unable to renerate more than it.

<3 glen

Well, true, you do have a point there. What's with the <3? (Kimochi warui desu)
 

Ayanami

칼리
Reaction score
288
<3 this is a heart.
It makes blood flow throug our veins and kills us if stops beating.

That wasn't necessary, really. I don't find any sarcasm nor humor in that so I can't really appreciate that.

On topic. If you're looking for a MUI method of achieving this, hashtables would be the best method. If non-MUI, I guess global variables will work fine.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      • Ghan
        Administrator - Servers are fun

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top