• 🏆 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!

Counter Helix [KE] - Work for all characters

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: Wrda
This skill is of the Dota Axe, but in this case it works for any character (all characters not have the animation and blademaster spin effect is why it already includes all), you can not abuse other effect or the damage has an invisible cooldown few seconds.

Credits to: JetFangInferno for visual effect

Keywords:
knight,footmen,koleshy,engine
Contents

Counter Helix for All Character [KE] (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Counter Helix | Reviewed by Maker | 28th Apr 2013 NEEDS FIX The spell is MUI Don't remove the buff [tr] You don't need arrays for the...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.


Counter Helix | Reviewed by Maker | 28th Apr 2013
NEEDS FIX


126248-albums6177-picture66521.png


  • The spell is MUI
126248-albums6177-picture66522.png


  • Don't remove the buff
126248-albums6177-picture66523.png


  • You don't need arrays for the group and location
  • The learn icon is the passive version
  • There are no proper tooltips
  • The groups, locations and special effects
    could be nulled after destroying them, but it is not required
[tr]
 
Level 20
Joined
Jun 27, 2011
Messages
1,864
  • Counter Helix KE
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • ((Attacked unit) has buff Counter Helix [KE]) Equal to True
      • ((Attacked unit) is an illusion) Equal to False
      • (Random percentage) Less than or equal to (30.00 x (Real((Level of Counter Helix [KE] for (Attacked unit)))))
    • Actions
      • Set CounterHelixKE_M_Index = (CounterHelixKE_M_Index + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • CounterHelixKE_M_Index Equal to 1
        • Then - Actions
          • Trigger - Turn on Counter Helix KE Check <gen>
        • Else - Actions
      • Set CounterHelixKE_Check[CounterHelixKE_M_Index] = 0
      • Set CounterHelixKE_Caster[CounterHelixKE_M_Index] = (Attacked unit)
      • Unit - Remove Counter Helix [KE] buff from CounterHelixKE_Caster[CounterHelixKE_M_Index]
      • Set CounterHelixKE_Caster_Point[CounterHelixKE_M_Index] = (Position of CounterHelixKE_Caster[CounterHelixKE_M_Index])
      • Special Effect - Create a special effect at CounterHelixKE_Caster_Point[CounterHelixKE_M_Index] using Textures\ExplosiveTornado.mdx
      • Set CounterHelixKE_Effect[CounterHelixKE_M_Index] = (Last created special effect)
      • Set CounterHelixKE_AoEDmg[CounterHelixKE_M_Index] = (Units within 350.00 of CounterHelixKE_Caster_Point[CounterHelixKE_M_Index] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching uni
      • Unit Group - Pick every unit in CounterHelixKE_AoEDmg[CounterHelixKE_M_Index] and do (Actions)
        • Loop - Actions
          • Set CounterHelixKE_PickPoint = (Position of (Picked unit))
          • Unit - Cause CounterHelixKE_Caster[CounterHelixKE_M_Index] to damage (Picked unit), dealing (400.00 x (Real((Level of Counter Helix [KE] for CounterHelixKE_Caster[CounterHelixKE_M_Index])))) damage of attack type Spells and damage type Normal
          • Special Effect - Create a special effect at CounterHelixKE_PickPoint using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation(udg_CounterHelixKE_PickPoint)
      • Custom script: call DestroyGroup(udg_CounterHelixKE_AoEDmg[udg_CounterHelixKE_M_Index])
      • Custom script: call RemoveLocation(udg_CounterHelixKE_Caster_Point[udg_CounterHelixKE_M_Index])
  • Counter Helix KE Check
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer CounterHelixKE_C_Index) from 1 to CounterHelixKE_M_Index, do (Actions)
        • Loop - Actions
          • Set CounterHelixKE_Check[CounterHelixKE_C_Index] = (CounterHelixKE_Check[CounterHelixKE_C_Index] + 1)
          • Unit - Remove Counter Helix [KE] buff from CounterHelixKE_Caster[CounterHelixKE_C_Index]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CounterHelixKE_Check[CounterHelixKE_C_Index] Equal to 50
            • Then - Actions
              • Special Effect - Destroy CounterHelixKE_Effect[CounterHelixKE_C_Index]
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CounterHelixKE_Check[CounterHelixKE_C_Index] Equal to 200
            • Then - Actions
              • Set CounterHelixKE_Check[CounterHelixKE_C_Index] = CounterHelixKE_Check[CounterHelixKE_M_Index]
              • Set CounterHelixKE_Effect[CounterHelixKE_C_Index] = CounterHelixKE_Effect[CounterHelixKE_M_Index]
              • Set CounterHelixKE_Caster[CounterHelixKE_C_Index] = CounterHelixKE_Caster[CounterHelixKE_M_Index]
              • Set CounterHelixKE_C_Index = (CounterHelixKE_C_Index - 1)
              • Set CounterHelixKE_M_Index = (CounterHelixKE_M_Index - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CounterHelixKE_M_Index Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions
 
Level 18
Joined
Jul 3, 2010
Messages
536
It's well executed. Perhaps the following can be considered:

- On Counter Helix KE you use a given real (30) for Helix chance. I advise you move such constants into another trigger and simply add an array to them so the spell's fixed values - damage, area of effect, proc chance - can be changed quickly and they can be recalled as Helix_Damage[Level of Helix_Ability for (Attacked Unit)] The same should be done every time you use a constant that a user would like to change.
Then, once it's ready, you simply run it on map initialization.
- Counter Helix does physical damage in DotA.
- Use Timers instead of periodically running triggers, it's so much cleaner.
 
Level 10
Joined
Aug 21, 2010
Messages
316
At this very moment I'm looking at the original and I can tell you that this version more complicated than the original

Absolutely unnecessary periodic trigger for such a simple spell
 
Top