Hymn of Hope

TzalDadok

New Member
Reaction score
2
Hymn of Hope is a spell im trying to copy from WoW. Im not trying to copy it exactly but most of it. Ill put the description of the spell im trying to do.

LEVEL 1:
Restores 2% mana to the caster every 2 seconds. The Priest must channel to maintain the spell. After a successful and complete channel also increases their total maximum mana by 10% for 15 seconds. Lasts 10 seconds.

LEVEL 2:
Restores 4% mana to the caster every 2 seconds. The Priest must channel to maintain the spell. After a successful and complete channel also increases their total maximum mana by 15% for 15 seconds. Lasts 10 seconds.

LEVEL 3:
Restores 6% mana to the caster every 2 seconds. The Priest must channel to maintain the spell. After a successful and complete channel also increases their total maximum mana by 20% for 15 seconds. Lasts 10 seconds.

LEVEL 4:
Restores 8% mana to the caster every 2 seconds. The Priest must channel to maintain the spell. After a successful and complete channel also increases their total maximum mana by 25% for 15 seconds. Lasts 10 seconds.

The part I cant figure out is how to increase the max mana of the caster.

This is what i have:

Trigger:
  • Hymn of Hope
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Hymn of Hope
    • Actions
      • Set HymnOfHope_Caster = (Casting unit)
      • Set HymnOfHope_Activate = True
      • Countdown Timer - Start HymnOfHope_Timer as a One-shot timer that will expire in 10.00 seconds


Trigger:
  • Hymn of Hope Activate
    • Events
      • Time - Every 2.00 seconds of game time
    • Conditions
      • HymnOfHope_Activate Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Hymn of Hope for HymnOfHope_Caster) Equal to 1
        • Then - Actions
          • Unit - Set mana of HymnOfHope_Caster to ((Mana of HymnOfHope_Caster) + ((Max mana of HymnOfHope_Caster) x 0.02))
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Hymn of Hope for HymnOfHope_Caster) Equal to 2
            • Then - Actions
              • Unit - Set mana of HymnOfHope_Caster to ((Mana of HymnOfHope_Caster) + ((Max mana of HymnOfHope_Caster) x 0.04))
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Hymn of Hope for HymnOfHope_Caster) Equal to 3
                • Then - Actions
                  • Unit - Set mana of HymnOfHope_Caster to ((Mana of HymnOfHope_Caster) + ((Max mana of HymnOfHope_Caster) x 0.06))
                • Else - Actions
                  • Unit - Set mana of HymnOfHope_Caster to ((Mana of HymnOfHope_Caster) + ((Max mana of HymnOfHope_Caster) x 0.08))


Trigger:
  • Hymn of Hope DeActivate
    • Events
      • Time - HymnOfHope_Timer expires
    • Conditions
    • Actions
      • Set HymnOfHope_Activate = False
 

TheLegend

New Member
Reaction score
10
you cannot use Unit-Set mana to increase the max mana of the unit, you'll have to add intelligence to the unit instead ill try to explain this:
First you have to find out how much mana the unit gains from one point of intelligence, for example 25. Then you divide the max mana with this number to get the units intelligence (if it was 100 it will be 5) - this will be real A. Real B will be the percent you want to add 0<=B<=1. Now you add the intell attribute to your unit that is you ADD R2I(AxB) and later you remove that when the eff fades. PS: R2I means Real to Integer
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
create an item that gives permanent mana gain (mana tome) +1 mana and do this:

Trigger:
  • Mana Increase
    • Events
      • A unit finishes casting an ability
    • Conditions
      • Ability cast is equal to Hymn of Hope
    • Actions
      • For each integer A from 1 to Integer((maximum mana of (Casting unit)) x (0.05 + (0.05 x Real(Level of ability cast)))) do actions
        • Loop - Actions
          • Hero - Give him the mana item
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
613
A similar ability, but with negative values ought to do the trick.
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
just add the action to the loop:
Trigger:
  • Hashtable - Save Integer ((Key of Triggering unit) of 0 in Your_Hashtable) + 1 as (Key of Triggering unit) of 0 in Your_Hashtable

you would need to create a hashtable at map init and save it to a variable, then replace Your_Hashtable with that variable
then you can do a wait, and do the same with negative values but make the loop instead use the hashtable value that you just saved
 

TzalDadok

New Member
Reaction score
2
Ok guys this is how I did it and is working :D

Thanks a lot for everything. Any other suggestions?

Trigger:
  • Hymn of Hope
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Hymn of Hope
    • Actions
      • Set HymnOfHope_Caster = (Casting unit)
      • Set HymnOfHope_Activate = True
      • Countdown Timer - Start HymnOfHope_Timer as a One-shot timer that will expire in 10.00 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HymnOfHope_MoveEvent Equal to False
        • Then - Actions
          • Trigger - Add to Hymn of Hope DeActivate 2 &lt;gen&gt; the event (Unit - HymnOfHope_Caster Is issued an order targeting an object)
          • Trigger - Add to Hymn of Hope DeActivate 2 &lt;gen&gt; the event (Unit - HymnOfHope_Caster Is issued an order targeting a point)
          • Set HymnOfHope_MoveEvent = True
        • Else - Actions
          • Do nothing


Trigger:
  • Hymn of Hope Activate
    • Events
      • Time - Every 2.00 seconds of game time
    • Conditions
      • HymnOfHope_Activate Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Hymn of Hope for HymnOfHope_Caster) Equal to 1
        • Then - Actions
          • Unit - Set mana of HymnOfHope_Caster to ((Mana of HymnOfHope_Caster) + ((Max mana of HymnOfHope_Caster) x 0.02))
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Hymn of Hope for HymnOfHope_Caster) Equal to 2
            • Then - Actions
              • Unit - Set mana of HymnOfHope_Caster to ((Mana of HymnOfHope_Caster) + ((Max mana of HymnOfHope_Caster) x 0.04))
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Hymn of Hope for HymnOfHope_Caster) Equal to 3
                • Then - Actions
                  • Unit - Set mana of HymnOfHope_Caster to ((Mana of HymnOfHope_Caster) + ((Max mana of HymnOfHope_Caster) x 0.06))
                • Else - Actions
                  • Unit - Set mana of HymnOfHope_Caster to ((Mana of HymnOfHope_Caster) + ((Max mana of HymnOfHope_Caster) x 0.08))


Trigger:
  • Hymn of Hope DeActivate 1
    • Events
      • Time - HymnOfHope_Timer expires
    • Conditions
    • Actions
      • Set HymnOfHope_Activate = False


Trigger:
  • Hymn of Hope DeActivate 2
    • Events
    • Conditions
    • Actions
      • Set HymnOfHope_Activate = False
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
Trigger:
  • Trigger:
    • Hymn of Hope Activate
    • Events
      • Time - Every 2.00 seconds of game time
    • Conditions
      • HymnOfHope_Activate Equal to True
    • Actions
      • Unit - Set mana of HymnOfHope_Caster to ((Mana of HymnOfHope_Caster) + ((Max mana of HymnOfHope_Caster) x (Real(Level of Hymn of Hope for HymnOfHope_Caster) x 0.2)))

is the same as ur second trigger but WAY more efficient
also add the casting unit to a group in the first trigger right after the add event actions, and put all of that in an if then else action with the if condition that the casting unit is not in that group, so you dont add the event a buncha times and cause an event leak
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top