• Check out the results of the Techtree Contest #19!
  • Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

How to stack healing aura?

You’ll need variables and an Unit Indexer that assigns custom values as unique index on map Init

Variables:
—PriestGroup - unit group
—AuraUnits - unit group
—TempGroup - unit group
—TempP - point
—Target - unit
—TempInt - integer
—PriestCount - integer(array)

Create a dummy ability based on item life regen.

1. Create the dummy ability

— Base ability: Item Life Regeneration (or any ability that adds flat HP regen).
— Data – Life Regeneration: 1.00 (per level)
— Stats – Levels: 50 (or high enough for your max stack).
— Stats – Actively Used: False.
—Art – Button Position: set both X and Y to -11 (hides it from the command card).

  • Stacking Healing Aura
    • Events
      • Time - Every 0.50 seconds of game time
    • Conditions
    • Actions
      • -------- Reset previous state --------
      • Unit Group - Pick every unit in AuraUnits and do (Actions)
        • Loop - Actions
          • Unit - Remove Healing Aura (Dummy) from (Picked unit)
      • Unit Group - Clear AuraUnits
      • -------- Count priests for each unit --------
      • Set PriestGroup = (Units of type Priest)
      • Unit Group - Pick every unit in PriestGroup and do (Actions)
        • Loop - Actions
          • Set TempPoint = (Position of (Picked unit))
          • Set TempGroup = (Units within 500.00 of TempPoint matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an ally of (Owner of (Picked unit))) Equal to True) and (((Matching unit) is A structure) Equal to False)))
          • Unit Group - Pick every unit in TempGroup and do (Actions)
            • Loop - Actions
              • Set Target = (Picked unit)
              • Set TempInteger = (Custom value of Target)
              • Set PriestCount[TempInteger] = (PriestCount[TempInteger] + 1)
              • Unit Group - Add Target to AuraUnits
          • Custom script: call RemoveLocation(udg_TempPoint)
          • Custom script: call DestroyGroup(udg_TempGroup)
      • Custom script: call DestroyGroup(udg_PriestGroup)
      • -------- Apply regen based on count --------
      • Unit Group - Pick every unit in AuraUnits and do (Actions)
        • Loop - Actions
          • Set Target = (Picked unit)
          • Set TempInteger = (Custom value of Target)
          • Unit - Add Healing Aura (Dummy) to Target
          • Unit - Set level of Healing Aura (Dummy) for Target to PriestCount[TempInteger]
          • Set PriestCount[TempInteger] = 0

The trigger runs every 0.5 seconds, which is light enough for most maps.
If you have many priests, you can increase the interval slightly (~ 1.0 second) the effect will still be smooth.

· Event‑based alternative: If you prefer, you can track priests entering/leaving range and update only affected units. That’s more efficient but also more complex.
 
Back
Top