• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

I need help creating this hero ability

Status
Not open for further replies.

Gojira2000

G

Gojira2000

I'll try to explain to the best of my ability on what I need for this particular ability.

Ok I need a Deactivate-able (like Immolation) hero ability that has 3 levels that puts the effects of slow poison (slows attack and movement speed, and damages overtime) on all nearby enemy units within 800 range of the user

and I need it to damage the user overtime as well (until he shuts off the ability)

I hope this is wasn't to confusing. Help will be greatly appreciated.
 

Kusanagi Kuro

Hosted Project: SC
Level 10
Joined
Mar 11, 2012
Messages
708
Base the skill on Immolation, set the target to ur hero. Done the 2nd part. The 1st part isnt easy. Create a dummy unit with 0.99 base attack time, 0 animation, 1 damage and add slow poison to that unit. Then have 4 trigger like this:
First is preparation trigger:
  • Prepare
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to (Yourskill)
    • Actions
      • Unit Group - Add (Triggering Unit) to (1stgroup)
Second is activation trigger:
  • Activation
    • Events
      • Unit - A unit Is issued an order with no target
    • Conditions
      • (Issued order) Equal to (Order(immolation))
      • ((Triggering unit) is in (1stgroup)) Equal to True
    • Actions
      • Unit Group - Add (Triggering unit) to (2ndgroup)
Then a loop trigger to damage other unit around him:
  • Loop
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((2ndgroup) is empty) Equal to True
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
          • Unit Group - Pick every unit in (2ndgroup) and do (Actions)
            • Loop - Actions
              • Set CV = (Custom value of (Picked Unit)
              • Set tempPoint = (Position of (Picked Unit))
              • Set Hero[CV] = (Picked Unit)
              • Set DamageGroup[CV] = (Units within 800.00 of (tempPoint) matching ((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True)))
              • Unit Group - Pick every unit in DamageGroup[CV] and do (Actions)
                • Loop - Actions
                  • Set tempPoint2 = (Position of (Picked Unit))
                  • Unit - Create 1 Dummy for (Owner of (Hero[CV])) at (tempPoint2) facing Default building facing degrees
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • Unit - Order (Last created unit) to Attack (Picked unit)
                  • Custom script: call RemoveLocation(udg_tempPoint2)
                • Custom script: call RemoveLocation(udg_tempPoint)
                • Custom script: call DestroyGroup(udg_DamageGroup[udg_CV]
Now for the cancelation trigger:
  • Cancel
    • Events
      • Unit - A unit Is issued an order with no target
    • Conditions
      • (Issued order) Equal to (Order(unimmolation))
      • ((Triggering unit) is in (1stgroup) Equal to True
    • Actions
      • Unit Group - Remove (Triggering unit) from (2ndgroup)
 
Level 23
Joined
Oct 20, 2012
Messages
3,075
You can try using periodics.
When the hero activates the spell, turn on the trigger that applies the effect on the enemies (could be a trigger that picks every unit that hasn't been buffed within AoE then buffs them) and the trigger that applies the effect on the hero too. There's that trigger action that will set the life of the hero. (I think this could be merged into 1 periodic trigger)

EDIT: ^Well, there it is. Posted above me.
 

Gojira2000

G

Gojira2000

Thank you all very much!

I think I may have found a much easier solution though.

Would it be much easier to just to attach an Endurance aura buff with negative values with a modified Immolation (extended range and harms user)?
 

Kusanagi Kuro

Hosted Project: SC
Level 10
Joined
Mar 11, 2012
Messages
708
U must add Endurance Aura with negative values to the hero when he actives Immolation and remove it when he deactives Immolation. Otherwise, it will always slow the enemy even if he has turned off Immolation.
Still, u need to use my Prepare trigger, Cast trigger and Cancel trigger in that case.
 

Gojira2000

G

Gojira2000

U must add Endurance Aura with negative values to the hero when he actives Immolation and remove it when he deactives Immolation. Otherwise, it will always slow the enemy even if he has turned off Immolation.
Still, u need to use my Prepare trigger, Cast trigger and Cancel trigger in that case.

K thanks, for the advice:thumbs_up:
 
Immolation cannot harm user.

^ @Hayaku, you can choose not to use 1stgroup and instead check if the level of the ability for the triggering unit is greater than 0. Also, you never turn the periodic on, which can cause bugs after the number of units in 2ndgroup is 0.

You create dummies for every unit. Instead of that, create one dummy and order it to cast everything.

You use last created unit, cache that into TempUnit for better performance..

Lastly, you do not need to tinker with custom value or unit data. Just use TempVars for that.

An easier way is to simply periodic-pick every unit within playable map area matching unit has buff immolation and do those actions(hero has that buff once casted).
 
Level 11
Joined
Jun 15, 2011
Messages
447
I think it will be less laggy if you do it this way:

Just use "Add/Remove Ability" instead...

Like this, when a unit is issued an order (immolation) then do add Building Damage Aura (based) and Tornado Slow Aura (based) to ordered unit... After this, the unit will damage and slow enemies in a set AoE of the abilities. (Set the "Targets Allowed" of Building Damage Aura to whatever you like)
And when it dies or is issued an order (unimmolation) then do remove the last added abilities... You can use spellbook to hide the Slow Aura based ability.

And for those who do not know it, Building Damage Aura and Slow Aura are both abilities of the "Tornado" unit. One which deals damage to buildings in an AoE per second and one slowing enemy units in its AoE... Just set "Targets Allowed" to whatever you like.
 

Gojira2000

G

Gojira2000

I've tried that, but I don't think building damage aura would work. Why not just use the Immolation, change its effect to poison, then add Tornado Slow Aura?

Yes that would work.

Can you give me a screen shot of the trigger please? (I'm real noob to triggers still sorry)
 

sentrywiz

S

sentrywiz

I wouldn't base it on endurance aura or tornado slow, because you basically want:

- Toggle ability that partially damages the user (you didn't specify how or when)
- Poison with slow

So you can trigger it when your ability is active, every X seconds it checks for enemies around the user, and creates dummy unit that shoot poison at them or apply a modified Shadow Strike.

Another solution is every X seconds to create a dummy that will cast Acid Bomb on everything, but that will also slow your hero.

The easiest way in my view to do this is:

-Hero cast Ability Name, based on Immolation
-You add a negative Endurance Aura/Unholy Aura to only heroes that have your dummy immolation ability buff. If a unit doesn't have it, remove the aura
-Immolation deals damage overtime
-Make a counter based on for example, every X + 2 seconds, the hero is damaged for Y amount
 
Status
Not open for further replies.
Top