• 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.

[Trigger] Trigger enhanced AoE healing spell...

Status
Not open for further replies.
Level 4
Joined
Sep 22, 2011
Messages
70
Hey, I need help with a trigger enhanced aoe healing spell.

What I want the ability to do: When cast by a player, it will heal all units within 350.00 of the unit casting the spell for X amount. The range of the spell never changes.

The current trigger I have for this, is..
  • Holy Nova
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Holy Nova (Hero)
    • Actions
      • Set HolyNova_Target = (Units within 350.00 of (Position of (Triggering unit)))
      • Unit Group - Pick every unit in HolyNova_Target and do (Actions)
        • Loop - Actions
          • Set HolyNova_Location = (Position of (Picked unit))
          • Unit - Create 1 Dummy Holy Nova for (Owner of (Triggering unit)) at HolyNova_Location facing Default building facing degrees
          • Unit - Set level of Holy Nova (Dummy) for (Last created unit) to (Level of Holy Nova (Hero) for (Triggering unit))
          • Unit - Order (Last created unit) to Human Priest - Heal (Picked unit)
          • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_HolyNova_Location)
      • Custom script: call DestroyGroup(udg_HolyNova_Target)
What I need help with: Will this trigger work? Basically, will it create a Dummy unit at the location of each unit within 350, order the dummy created at the location of each unit, to heal the unit it is created at, then die after 3 sec. ?
If this wont, I need to know what will. And I know theres already a similar ability (healing wave) but I want this to heal everyone within range at the same time, not jump from target to target.

Additional Info if needed:
The ability for the hero has 10 levels, it is based of mana shield(i know thunderclap would work just as efficiently but i couldnt think of thunder clap or war stomp till after i alsready made it)
The ability the hero has is not targetable, and does absolutly nothing.

The ability the dummy has is based off the Human Priest - Heal ability.
It has the same number of levels as the Hero's ability, and heals for the following amounts accordingly:
56
98
146
216
374
489
634
772
824
996

I also have another side-effect of this ability if you could help me with that aswell, I want the ability to heal the targets affected by more health, over X seconds, based off the heal given initially. *CHANGED* It will heal for a % of the units MAX health, over the duration, rather then based on the health given from the heal.
the %'s and seconds are:
10% over 5sec.
12% over 5sec.
15% over 6sec.
15% over 6sec.
20% over 8sec.
22% over 8sec.
23% over 8sec.
25% over 9sec.
25% over 10sec.
30% over 12sec.


Im pretty sure I know how to easily do this small trickle-heal after-effect, but if your willing to include your own way of doing so, feel free to gimme suggestions plz.

Thanks in advance to everyone who helps.
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
-The event should be Start an effect of an spell.

-Owner of triggering Unit -> Triggering Player

-It will work although I don't get why you want a dummy healing ability, there is a trigger action for setting unit's hp. Use that one instead then there will not be any dummies.

-The second suggestion, you probably need a heal system as heal over time abilities such as revulation (cant spell it on freehand) is just healing amount.
 
Level 33
Joined
Mar 27, 2008
Messages
8,035
MAIN SPELL
Your ability heals difference per level is... weird and unscaled

Here's a clearer picture of what I meant:
42 , 48 , 70 , 158 , 115 , 145 , 138 , 52 , 172

The first value, is when you subtract Level 1 with Level 2, you will get 42
Next is when you subtract Level 2 with Level 3 value, and so on...

At first, the values went on pretty well journey (nice ascending values) until it fluctuated at fifth value, which is supposed to be higher than the fourth value, but it didn't

Therefore, I suggest that you should rescale your ability difference per leve, something like Heals for 50 , 100 , 150 , 200 , and so on (in orderly manner of ascending values (it will make your trigger looks less messy, trust me))

By the way, this is the trigger action which you will use (instead of summoning dummies and order them (less effecient))

  • Healing Spell AoE
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to *YourAbility*
    • Actions
      • Set CasterLoc = (Position of (Triggering unit))
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 350.00 of CasterLoc) and do (Actions)
        • Loop - Actions
          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + *YourHealingValue*)
      • Custom script: call RemoveLocation(udg_CasterLoc)
* = your own variable.
SIDE EFFECTS
It will heal for a % of the units MAX health
Wait, whaaa- ?
The last Level of this ability will make the the healing goes for 12 seconds and heals 30% from MAX HP per second, that will become, 360% heal (you know 100% is the limit for percentual calculation from a given limit value)

Example:
You have 1000 HP
You took damage until your HP is decreased to 100
The spell takes its effect
It will heal 300HP/sec to the unit and it will last for 12 seconds
Now, the maximum healing it can go is 3600HP, but the unit only has a limit of 1000HP

Now, don't you feel weird ?

I think you're trying to say heals the unit based from its current HP, right ?

If it is based on current HP, it is possible, and no weird math is going to happen :)
 
Level 4
Joined
Sep 22, 2011
Messages
70
I like the suggestion of not using dummies for the spell heal, and i will use that, thanks.


@the Side Effects comment..
You read it slightly wrong (or i din word it correctly), it will heal that 30% OVER 12seconds, not 30% PER second over 12sec.
In other words, to use your example,
Unit has 1000hp
Say the healing spell's initial heal is 100.
Unit takes 500damage
30% of 1000=300
Over 12sec, it will be healed a TOTAL of 300, equaling about 25health per. sec



**EDIT**
Also don't get me wrong its a easy, simple, effective solution but.. i swear I heard someone awhile back on the hive say using the "set life of unit to (Life of unit +(or - for dmg) ##)" was bad to use, or was it just me? are there any bugs that could prop up with this action?
 
I like the suggestion of not using dummies for the spell heal, and i will use that, thanks.


@the Side Effects comment..
You read it slightly wrong (or i din word it correctly), it will heal that 30% OVER 12seconds, not 30% PER second over 12sec.
In other words, to use your example,
Unit has 1000hp
Say the healing spell's initial heal is 100.
Unit takes 500damage
30% of 1000=300
Over 12sec, it will be healed a TOTAL of 300, equaling about 25health per. sec



**EDIT**
Also don't get me wrong its a easy, simple, effective solution but.. i swear I heard someone awhile back on the hive say using the "set life of unit to (Life of unit +(or - for dmg) ##)" was bad to use, or was it just me? are there any bugs that could prop up with this action?

He probably said it for damaging an enemy, because the said action ignores armor/resistances and doesn't compensate the supposed killer with gold.
 
Level 4
Joined
Sep 22, 2011
Messages
70
well the armor/resist isnt rly a problem, and the creep gold is being removed anyways sooo
and what is so damned inherintly bad about GUI editing? ive seen and done some rly awsome and elegant maps done soley in GUI.. so far i''ve figured out how to do everything in GUI that people keep telling me has to be done in jass
 
Status
Not open for further replies.
Top