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

Dash v1.4 [GUI]

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
The idea came while playing Megaman X8 :p
-----------------------------------------------------------------------------------
Hero makes the move to a single speed according to the angle at which you are, cause 75/150/225/300 damage, 15/20/25/30 speed and 150/200/250/300 max range, also make your hero invisible and affected units cannot attack momentarily.

Invisibility duration: 10 seconds.
Off attack duration: 1.5 seconds.

Triggers:

  • Dash Settings
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Dash_Ability = Dash
      • Set Dash_DummyAbility = Dash (Off attack)
      • Set Dash_DummyEffect = Dummy (Dash)
      • Set Dash_DummyOffAttack = Dummy (Off attack)
      • Set Dash_AttackType = Spells
      • Set Dash_DamageType = Normal
      • -------- as a normal effect set this to 2 (don't change this to more or you get not good effect :/) --------
      • Set Dash_Limit_N = 2
  • Dash
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Dash_Ability
    • Actions
      • Set Dash_M_Index = (Dash_M_Index + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Dash_M_Index Equal to 1
        • Then - Actions
          • Trigger - Turn on Dash Loop <gen>
        • Else - Actions
      • Set Dash_Limit[Dash_M_Index] = Dash_Limit_N
      • Set Dash_Caster[Dash_M_Index] = (Triggering unit)
      • Set Dash_Angle[Dash_M_Index] = (Facing of Dash_Caster[Dash_M_Index])
      • Set Dash_Ability_Level[Dash_M_Index] = (Level of Dash_Ability for Dash_Caster[Dash_M_Index])
      • Set Dash_Damage[Dash_M_Index] = (75.00 x (Real(Dash_Ability_Level[Dash_M_Index])))
      • Set Dash_Speed[Dash_M_Index] = (10.00 + (5.00 x (Real(Dash_Ability_Level[Dash_M_Index]))))
      • Set Dash_Distance[Dash_M_Index] = (10 + (5 x Dash_Ability_Level[Dash_M_Index]))
      • Unit - Turn collision for Dash_Caster[Dash_M_Index] Off
  • Dash Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Dash_C_Index) from 1 to Dash_M_Index, do (Actions)
        • Loop - Actions
          • Set Dash_Distance[Dash_C_Index] = (Dash_Distance[Dash_C_Index] - 1)
          • Set Dash_Point1[Dash_C_Index] = (Position of Dash_Caster[Dash_C_Index])
          • Set Dash_Point2[Dash_C_Index] = (Dash_Point1[Dash_C_Index] offset by Dash_Speed[Dash_C_Index] towards Dash_Angle[Dash_C_Index] degrees)
          • Unit - Move Dash_Caster[Dash_C_Index] instantly to Dash_Point2[Dash_C_Index]
          • Set Dash_Limit[Dash_C_Index] = (Dash_Limit[Dash_C_Index] - 1)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Dash_Limit[Dash_C_Index] Equal to 0
            • Then - Actions
              • Set Dash_Limit[Dash_C_Index] = Dash_Limit_N
              • Unit - Create 1 Dash_DummyEffect for (Owner of Dash_Caster[Dash_C_Index]) at Dash_Point2[Dash_C_Index] facing (Facing of Dash_Caster[Dash_C_Index]) degrees
              • Set Dash_Dummy = (Last created unit)
              • Unit - Add a 0.40 second Generic expiration timer to Dash_Dummy
              • Animation - Change Dash_Dummy's vertex coloring to (100.00%, 100.00%, 100.00%) with 50.00% transparency
              • Animation - Play Dash_Dummy's walk animation
              • Set Dash_Dummy = No unit
            • Else - Actions
          • Animation - Play Dash_Caster[Dash_C_Index]'s walk animation
          • Set Dash_Group = (Units within 150.00 of Dash_Point2[Dash_C_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 unit) belongs to an enemy of
          • Unit Group - Pick every unit in Dash_Group and do (Actions)
            • Loop - Actions
              • Set Dash_Picked_Unit = (Picked unit)
              • Unit - Cause Dash_Caster[Dash_C_Index] to damage Dash_Picked_Unit, dealing Dash_Damage[Dash_C_Index] damage of attack type Dash_AttackType and damage type Dash_DamageType
              • Set Dash_Point_Off_attack[Dash_C_Index] = (Position of Dash_Picked_Unit)
              • Unit - Create 1 Dash_DummyOffAttack for (Owner of Dash_Caster[Dash_C_Index]) at Dash_Point_Off_attack[Dash_C_Index] facing Default building facing (270.0) degrees
              • Set Dash_Dummy = (Last created unit)
              • Special Effect - Create a special effect at Dash_Point_Off_attack[Dash_C_Index] using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Add Dash_DummyAbility to Dash_Dummy
              • Unit - Order Dash_Dummy to Neutral Pandaren Brewmaster - Drunken Haze Dash_Picked_Unit
              • Unit - Add a 0.75 second Generic expiration timer to Dash_Dummy
              • Unit Group - Add Dash_Picked_Unit to Dash_GroupCheck
              • Custom script: call RemoveLocation(udg_Dash_Point_Off_attack[udg_Dash_C_Index])
              • Set Dash_Picked_Unit = No unit
              • Set Dash_Dummy = No unit
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • Dash_Distance[Dash_C_Index] Less than or equal to 0
                  • (Terrain pathing at Dash_Point1[Dash_C_Index] of type Walkability is off) Equal to True
            • Then - Actions
              • Unit Group - Remove all units from Dash_GroupCheck
              • Unit - Turn collision for Dash_Caster[Dash_C_Index] On
              • Hero - Create Invisibility Effect and give it to Dash_Caster[Dash_C_Index]
              • Set Dash_Limit[Dash_C_Index] = Dash_Limit[Dash_M_Index]
              • Set Dash_Angle[Dash_C_Index] = Dash_Angle[Dash_M_Index]
              • Set Dash_Ability_Level[Dash_C_Index] = Dash_Ability_Level[Dash_M_Index]
              • Set Dash_Damage[Dash_C_Index] = Dash_Damage[Dash_M_Index]
              • Set Dash_Speed[Dash_C_Index] = Dash_Speed[Dash_M_Index]
              • Set Dash_Distance[Dash_C_Index] = Dash_Distance[Dash_M_Index]
              • Set Dash_Caster[Dash_C_Index] = Dash_Caster[Dash_M_Index]
              • Set Dash_C_Index = (Dash_C_Index - 1)
              • Set Dash_M_Index = (Dash_M_Index - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Dash_M_Index Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions
          • Custom script: call RemoveLocation (udg_Dash_Point1[udg_Dash_C_Index])
          • Custom script: call RemoveLocation (udg_Dash_Point2[udg_Dash_C_Index])
          • Custom script: call DestroyGroup (udg_Dash_Group)
The Trigger "Dash Debug" is for not to cause problems with the death of the dummy animation and sound of his death.

Sorry for my english, i'm still learning :D
-----------------------------------------------------------------------------------
Updated!!! Comment please :p

Keywords:
knight,footmen,wars,koleshy,engine
Contents

Dash v1.4 - By ArOn (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Dash v1.4 | Reviewed by Maker | 5th Aug 2013 NEEDS FIX Dash group check variable is not used correctly. You could use a unit group array Add importing...

Moderator

M

Moderator

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


Dash v1.4 | Reviewed by Maker | 5th Aug 2013
NEEDS FIX


126248-albums6177-picture66522.png


  • Dash group check variable is not used correctly. You could use a unit group array
126248-albums6177-picture66523.png


  • Add importing instructions
  • The dummies give vision
  • Dash point off attack variable should not be an array
  • You only need to create one dummy to cast the ability on every picked unit
126248-albums6177-picture66524.png
[tr]



Dash v1.2 | Reviewed by Maker | 3rd Aug 2013
NEEDS FIX


126248-albums6177-picture66522.png


  • Use variables for the ability and unit type
  • Do not pause the caster
126248-albums6177-picture66523.png


  • You do not need Dash Debug trigger, set death time to 0 instead
  • Your spell potentially creates tons of units. Try to find a way
    to optionally limit the number of units created
126248-albums6177-picture66524.png
[tr]
 
Level 8
Joined
Apr 1, 2011
Messages
91
Anything u use twice or more should be stored in a variable and the variable should be used.

since this is just a temp variable make it a temp variable. dont use arrays unless u have to.
  • Set Dash_Real[Dash_C_Index] = ((Distance between Dash_Point1[Dash_C_Index] and Dash_Point3[Dash_C_Index]) / 5.00)

already i deleted it
I had forgotten to remove that part of the group also :p
 
Level 8
Joined
Apr 1, 2011
Messages
91
about this "Your spell potentially creates tons of units. Try to find a way
to optionally limit the number of units created
"

i think this is not necessary, that's part of the effect to make it look good.
about the others already changed and added settings from a new trigger "Settings"
 
Level 29
Joined
Oct 24, 2012
Messages
6,543
about this "Your spell potentially creates tons of units. Try to find a way
to optionally limit the number of units created
"

i think this is not necessary, that's part of the effect to make it look good.
about the others already changed and added settings from a new trigger "Settings"

creating tons of units is bad as every unit u create causes a small leak that cant be helped other than not creating the units.
 
Top