• 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.
  • 💡 We're thrilled to announce that our upcoming texturing contest is in the works, and we're eager to hear your suggestions! Please take this opportunity to share your ideas in this theme discussion thread for the Texturing Contest #34!
  • 🏆 Hive's 7th HD Modeling Contest: Icecrown Creature is now open! The frozen wastes of Icecrown are home to some of Azeroth’s most terrifying and resilient creatures. For this contest, your challenge is to design and model a HD 3D monster that embodies the cold, undead, and sinister essence of Icecrown! 📅 Submissions close on April 13, 2025. Don't miss this opportunity to let your creativity shine! Enter now and show us your frozen masterpiece! 🔗 Click here to enter!

Simple MUI heal over time spell

Status
Not open for further replies.
Level 3
Joined
Jul 25, 2014
Messages
31
As the title says, I need a very simple spell:

Heal unit for 1.66 x HeroIntelligence each second for 12 seconds.



I don't know how to make it MUI so it can be cast on two units at the same time, looked everywhere and couldn't find an answer to this simple question. I tried some tutorials but they are different and don't work for "Every 1.00 seconds of game time" loop I tried this with.

Thanks in advance
 
Level 24
Joined
Aug 1, 2013
Messages
4,658
Effect Over Time System

  • Heal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to HealOverTime
    • Actions
      • Custom script: call EOT_Set_Default_Variables()
      • Set EOT_Param_Source = (Triggering unit)
      • Set EOT_Param_Target = (Triggering unit)
      • -------- or use (Targeted Unit Of Ability Being Cast) --------
      • Set EOT_Param_Duration = 12.00
      • Set EOT_Param_Interval = 1.00
      • Set EOT_Param_Buff = Custom HealOverTime
      • Set EOT_Param_Buff_Holder = HealOverTime (Buff Holder)
      • Set TempAbility = (Ability being cast)
      • Custom script: set udg_TempInteger = udg_TempAbility
      • Set EOT_Param_Type = (Real(TempInteger))
      • Set EOT_Param_Positive = True
      • Trigger - Run EOT_Trigger_Create_EOT (ignoring conditions)
  • Heal Interval
    • Events
      • Game - EOT_Event_On_Interval becomes Equal to 0.00
    • Conditions
    • Actions
      • Set TempAbility = HealOverTime
      • Custom script: set udg_TempInteger = udg_TempAbility
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • EOT_Param_Type Equal to (Real(TempInteger))
        • Then - Actions
          • Set TempReal = (1.66 x (Real((Intelligence of EOT_Param_Source (Include bonuses)))))
          • Unit - Set life of EOT_Param_Target to ((Life of EOT_Param_Target) + TempReal)
        • Else - Actions
This one heals the hero for 1.66 * intelligence that is calculated on each interval.

  • Heal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to HealOverTime
    • Actions
      • Custom script: call EOT_Set_Default_Variables()
      • Set EOT_Param_Source = (Triggering unit)
      • Set EOT_Param_Target = (Triggering unit)
      • -------- or use (Targeted Unit Of Ability Being Cast) --------
      • Set EOT_Param_Duration = 12.00
      • Set EOT_Param_Interval = 1.00
      • Set EOT_Param_Buff = Custom HealOverTime
      • Set EOT_Param_Buff_Holder = HealOverTime (Buff Holder)
      • Set TempAbility = (Ability being cast)
      • Custom script: set udg_TempInteger = udg_TempAbility
      • Set EOT_Param_Type = (Real(TempInteger))
      • Set EOT_Param_Positive = True
      • Trigger - Run EOT_Trigger_Create_EOT (ignoring conditions)
      • Set TempReal = (1.66 x (Real((Intelligence of EOT_Param_Source (Include bonuses)))))
      • Custom script: call EOT_Save_Real(0, udg_TempReal)
  • Heal Interval
    • Events
      • Game - EOT_Event_On_Interval becomes Equal to 0.00
    • Conditions
    • Actions
      • Set TempAbility = HealOverTime
      • Custom script: set udg_TempInteger = udg_TempAbility
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • EOT_Param_Type Equal to (Real(TempInteger))
        • Then - Actions
          • Custom script: set udg_TempReal = EOT_Load_Real(0)
          • Unit - Set life of EOT_Param_Target to ((Life of EOT_Param_Target) + TempReal)
        • Else - Actions
If the Buff and Buff_Holder confuses you... check out the examples and the abilities in the object editor.
They are to display a buff.
If you don't want a buff then remove those two lines and set EOT_Param_Hidden to true instead.
 
Level 3
Joined
Jul 25, 2014
Messages
31
Thank you guys, I finally made it :) Damn I love this site so much, I'm kinda mad I didn't discover it years earlier :p

Here I will post my final trigger (I hope it's correct), if anyone else searches for this problem in the future:

NOTE:

-I based the dummy spell on Rejuvenation (atm it will heal 12 hit points over 12 seconds in addition to triggered spell so I can balance it easier), it also gives the buff with effect
-I made the spell dispellable, so the trigger will stop when the buff is dispelled
-I maybe messed up the math, because Level 1 Regrowth cast by Level 10 Furion (42 Intelligence) heals the target for 766 instead of 660, I can't figure out what's wrong
-Everything else seems to be working perfectly

2zgt4r4.jpg


Cheers!
 

Attachments

  • Regrowth.jpg
    Regrowth.jpg
    420.3 KB · Views: 228
Level 3
Joined
Jul 25, 2014
Messages
31
It's the periodic timer.

It's because you have it set to 0.30 instead of 1 second which makes it heal targets more frequently.

I suggest you use 1 second periodic timer. Nothing wrong with that. Even Blizzard's auras don't disappear immediately if they get removed.

Yeah, but I divided each multiplying number in the code by three, so it would give same results as it was 1 second timer. I tried it also with 1 second and still it doesn't give me exact accurate results.
 
Status
Not open for further replies.
Top