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

Lightning Dash v0.7

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: T. D. W.
Lightning Dash
by:Goldenflame

Description:
Lightning Dash
Dash into the target enemy, when a nearby enemy is open it dashes into it.
Level 1 - 2 dashes, 75 damage and 2 sec 30% slow in 350 AOE
Level 2 - 2 dashes, 150 damage and 2.5 sec 30% slow in 350 AOE
Level 3 - 3 dashes, 225 damage and 2.5 sec 40% slow in 350 AOE
Triggers:
  • LD Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- The ability casted to trigger. --------
      • Set LD_Ability = Lightning Dash
      • -------- The dummy ability to slow the units --------
      • Set LD_DummyAbil = Lightning Dash (Thunder Clap)
      • -------- The max range the unit will dash to. --------
      • Set LD_MaxRange[1] = 450.00
      • Set LD_MaxRange[2] = 600.00
      • Set LD_MaxRange[3] = 750.00
      • -------- The min range the unit will dash to. --------
      • Set LD_MinRange[1] = 200.00
      • Set LD_MinRange[2] = 100.00
      • Set LD_MinRange[3] = 50.00
      • -------- The damage it will deal. --------
      • Set LD_Damage[1] = 75.00
      • Set LD_Damage[2] = 150.00
      • Set LD_Damage[3] = 225.00
      • -------- The number of units it will dash into. --------
      • Set LD_NumberTargets[1] = 2
      • Set LD_NumberTargets[2] = 2
      • Set LD_NumberTargets[3] = 3
      • -------- Changes dash dummy into alternate( Just leave blank if you dont want to) --------
      • Set LD_AnimationTag = alternate
      • -------- The speed of dash. --------
      • -------- just increase the 0.04 for faster dash --------
      • Set LD_Speed[1] = (LD_MaxRange[1] x 0.04)
      • Set LD_Speed[2] = (LD_MaxRange[2] x 0.04)
      • Set LD_Speed[3] = (LD_MaxRange[3] x 0.04)
      • -------- The space in which the dummy trail will spawn. --------
      • Set LD_DummyWidth = 15.00
      • -------- Special effect on the target --------
      • Set LD_TargetEffect = Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
      • -------- Special effect on the trail --------
      • Set LD_FloorEffect = Abilities\Spells\Orc\Purge\PurgeBuffTarget.mdl
      • -------- Time before dashing again. --------
      • Set LD_Wait = 0.20
      • -------- Animation done by unit when dashing --------
      • Set LD_Animation = attack slam alternate
      • -------- Time When the trail dummy dies --------
      • Set LD_DummyTimer = 0.15
      • -------- Condition to check on picking enemy to dash into. --------
      • Set LD_Alive = True
      • Set LD_Enemy = True
      • Set LD_GroundUnit = True
      • Set LD_Mechanical = False
      • Set LD_Structure = False
      • Set LD_KBDash = False
      • -------- Trail Dummy Color and Transparecy --------
      • Set LD_DummyBlue = 100.00
      • Set LD_DummyGreen = 100.00
      • Set LD_DummyRed = 100.00
      • Set LD_DummyTransparecy = 35.00
      • -------- KB Configure --------
      • -------- Unit within this range is knockbacked. --------
      • Set LD_AOE[1] = 300.00
      • Set LD_AOE[2] = 300.00
      • Set LD_AOE[3] = 300.00
      • -------- Just dont touch. --------
      • Set LD_KB_Accel = -150.00
      • -------- Destroy Trees? --------
      • Set LD_KB_DestroyTree = True
      • -------- Stun Unit? --------
      • Set LD_KB_DisableUnit = True
      • -------- Effect attachedd to the KB unit. --------
      • Set LD_KB_FX = Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
      • -------- Attachment point. --------
      • Set LD_KB_FX_Attach = origin
      • -------- Height of the knockback. --------
      • Set LD_KB_Offset[1] = 300.00
      • Set LD_KB_Offset[2] = 300.00
      • Set LD_KB_Offset[3] = 300.00
      • -------- Make unit KB outside camera bound? --------
      • Set LD_KB_Outsiding = False
      • -------- Make unit imposibbly goes through unpathable terrain. --------
      • Set LD_KB_Pathable = False
      • -------- Distance of the KB. --------
      • Set LD_KB_Range[1] = 350.00
      • Set LD_KB_Range[2] = 350.00
      • Set LD_KB_Range[3] = 350.00
      • -------- Speed of KB. --------
      • Set LD_KB_Speed[1] = 500.00
      • Set LD_KB_Speed[2] = 500.00
      • Set LD_KB_Speed[3] = 500.00
      • -------- Attack Type --------
      • Set LD_AttackType = Spells
      • -------- Damage Type --------
      • Set LD_DamageType = Lightning
  • LD Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to LD_Ability
    • Actions
      • Set LD_MaxIndex = (LD_MaxIndex + 1)
      • Set LD_Cast[LD_MaxIndex] = (Triggering unit)
      • Set LD_TargetUnit[LD_MaxIndex] = (Target unit of ability being cast)
      • Set LD_CastOwner[LD_MaxIndex] = (Owner of LD_Cast[LD_MaxIndex])
      • Set LD_Level[LD_MaxIndex] = (Level of Lightning Dash for LD_Cast[LD_MaxIndex])
      • Set LD_TargetCount[LD_MaxIndex] = 0
      • Set LD_WaitAttack[LD_MaxIndex] = 0.00
      • Set LD_Attack[LD_MaxIndex] = False
      • Set LD_RangeCounter[LD_MaxIndex] = 0.00
      • Set TempPoint = (Position of LD_Cast[LD_MaxIndex])
      • Set TempPoint2 = (Position of LD_TargetUnit[LD_MaxIndex])
      • Set LD_Speed2[LD_MaxIndex] = LD_Speed[LD_Level[LD_MaxIndex]]
      • Set LD_Range[LD_MaxIndex] = (Distance between TempPoint and TempPoint2)
      • Custom script: set udg_LD_Group[udg_LD_MaxIndex] = CreateGroup()
      • Unit Group - Add LD_TargetUnit[LD_MaxIndex] to LD_Group[LD_MaxIndex]
      • -------- set udg_LD_Group[udg_LD_MaxIndex] = CreateGroup() --------
      • Animation - Play LD_Cast[LD_MaxIndex]'s LD_Animation animation
      • Unit - Turn collision for LD_Cast[LD_MaxIndex] Off
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • LD_MaxIndex Greater than or equal to 1
        • Then - Actions
          • Trigger - Turn on LD Loop <gen>
        • Else - Actions
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call RemoveLocation(udg_TempPoint2)
  • LD Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer LD_AIndex) from 1 to LD_MaxIndex, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • LD_TargetCount[LD_AIndex] Greater than or equal to LD_NumberTargets[LD_Level[LD_AIndex]]
            • Then - Actions
              • Custom script: call DestroyGroup(udg_LD_Group[udg_LD_AIndex])
              • Custom script: call DestroyGroup(udg_LD_KB_Group[udg_LD_AIndex])
              • Set LD_Angle[LD_AIndex] = LD_Angle[LD_MaxIndex]
              • Set LD_Attack[LD_AIndex] = LD_Attack[LD_MaxIndex]
              • Set LD_Cast[LD_AIndex] = LD_Cast[LD_MaxIndex]
              • Set LD_CastOwner[LD_AIndex] = LD_CastOwner[LD_MaxIndex]
              • Set LD_Group[LD_AIndex] = LD_Group[LD_MaxIndex]
              • Set LD_KB_Group[LD_AIndex] = LD_KB_Group[LD_MaxIndex]
              • Set LD_DummyDash[LD_AIndex] = LD_DummyDash[LD_MaxIndex]
              • Set LD_DummySpace[LD_AIndex] = LD_DummySpace[LD_MaxIndex]
              • Set LD_DummyTC[LD_AIndex] = LD_DummyTC[LD_MaxIndex]
              • Set LD_Range[LD_AIndex] = LD_Range[LD_MaxIndex]
              • Set LD_Level[LD_AIndex] = LD_Level[LD_MaxIndex]
              • Set LD_RangeCounter[LD_AIndex] = LD_RangeCounter[LD_MaxIndex]
              • Set LD_RangeCounter[LD_AIndex] = LD_RangeCounter[LD_MaxIndex]
              • Set LD_TargetCount[LD_AIndex] = LD_TargetCount[LD_MaxIndex]
              • Set LD_TargetUnit[LD_AIndex] = LD_TargetUnit[LD_MaxIndex]
              • Set LD_WaitAttack[LD_AIndex] = LD_WaitAttack[LD_MaxIndex]
              • Set LD_Speed2[LD_AIndex] = LD_Speed2[LD_MaxIndex]
              • Set LD_SpecialEffect[LD_AIndex] = LD_SpecialEffect[LD_MaxIndex]
              • Set LD_AIndex = (LD_AIndex - 1)
              • Set LD_MaxIndex = (LD_MaxIndex - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • LD_MaxIndex Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • LD_Attack[LD_AIndex] Equal to True
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • LD_WaitAttack[LD_AIndex] Greater than or equal to LD_Wait
                    • Then - Actions
                      • Set LD_TargetCount[LD_AIndex] = (LD_TargetCount[LD_AIndex] + 1)
                      • Set LD_WaitAttack[LD_AIndex] = 0.00
                      • Set LD_Attack[LD_AIndex] = False
                    • Else - Actions
                      • Set LD_WaitAttack[LD_AIndex] = (LD_WaitAttack[LD_AIndex] + 0.03)
                • Else - Actions
                  • Set TempPoint = (Position of LD_Cast[LD_AIndex])
                  • Set TempPoint2 = (Position of LD_TargetUnit[LD_AIndex])
                  • Set LD_Angle[LD_AIndex] = (Angle from TempPoint to TempPoint2)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • LD_RangeCounter[LD_AIndex] Greater than or equal to LD_Range[LD_AIndex]
                    • Then - Actions
                      • Animation - Play LD_Cast[LD_AIndex]'s LD_Animation animation
                      • Special Effect - Create a special effect at TempPoint using LD_TargetEffect
                      • Special Effect - Destroy (Last created special effect)
                      • Unit - Cause LD_Cast[LD_AIndex] to damage LD_TargetUnit[LD_AIndex], dealing LD_Damage[LD_Level[LD_AIndex]] damage of attack type LD_AttackType and damage type LD_DamageType
                      • Unit - Create 1 Lightning Dash Dummy for LD_CastOwner[LD_AIndex] at TempPoint facing Default building facing degrees
                      • Unit - Add Lightning Dash (Thunder Clap) to LD_DummyTC[LD_AIndex]
                      • Unit - Set level of Lightning Dash (Thunder Clap) for LD_DummyTC[LD_AIndex] to LD_Level[LD_AIndex]
                      • Set LD_DummyTC[LD_AIndex] = (Last created unit)
                      • Unit - Add a LD_WaitAttack[LD_AIndex] second Generic expiration timer to LD_DummyTC[LD_AIndex]
                      • Unit - Turn collision for LD_DummyDash[LD_AIndex] Off
                      • Unit - Set level of Lightning Dash (Thunder Clap) for LD_DummyTC[LD_AIndex] to LD_Level[LD_AIndex]
                      • Unit - Order LD_DummyTC[LD_AIndex] to Human Mountain King - Thunder Clap
                      • Set TempGroup = (Units within LD_MaxRange[LD_Level[LD_AIndex]] of TempPoint matching (((((Matching unit) is alive) Equal to LD_Alive) and (((Matching unit) is in LD_KB_Group[LD_AIndex]) Equal to LD_KBDash)) and ((((Matching unit) belongs to an enemy of LD_CastOwner[LD_AIndex
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Number of units in TempGroup) Greater than 0
                        • Then - Actions
                          • Set TempUnit = (Random unit from TempGroup)
                          • Unit Group - Add TempUnit to LD_Group[LD_AIndex]
                          • Set LD_TargetUnit[LD_AIndex] = TempUnit
                          • Set TempPoint2 = (Position of LD_TargetUnit[LD_AIndex])
                          • Set LD_RangeCounter[LD_AIndex] = 0.00
                          • Set LD_Range[LD_AIndex] = (Distance between TempPoint and TempPoint2)
                          • Custom script: call DestroyGroup(udg_TempGroup)
                          • Custom script: call RemoveLocation(udg_TempPoint2)
                          • Set LD_Attack[LD_AIndex] = True
                        • Else - Actions
                          • Set LD_TargetCount[LD_AIndex] = LD_NumberTargets[LD_Level[LD_AIndex]]
                      • Set TempGroup2 = (Units within LD_AOE[LD_Level[LD_AIndex]] of TempPoint matching (((Matching unit) is alive) Equal to LD_Alive))
                      • Unit Group - Pick every unit in TempGroup2 and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Picked unit) is A ground unit) Equal to LD_GroundUnit
                              • ((Picked unit) is Mechanical) Equal to LD_Mechanical
                              • ((Picked unit) is A structure) Equal to LD_Structure
                              • ((Picked unit) belongs to an enemy of LD_CastOwner[LD_AIndex]) Equal to LD_Enemy
                            • Then - Actions
                              • Set LD_KB_Angle[LD_AIndex] = (Angle from TempPoint to (Position of (Picked unit)))
                              • Unit Group - Add (Picked unit) to LD_KB_Group[LD_AIndex]
                              • Set KB3D_Unit = (Picked unit)
                              • Set KB3D_Accel = LD_KB_Accel
                              • Set KB3D_Angle = LD_KB_Angle[LD_AIndex]
                              • Set KB3D_DestroyTree = LD_KB_DestroyTree
                              • Set KB3D_DisableUnit = LD_KB_DisableUnit
                              • Set KB3D_Fx = LD_KB_FX
                              • Set KB3D_Fx_Attach = LD_KB_FX_Attach
                              • Set KB3D_Range = LD_KB_Range[LD_Level[LD_AIndex]]
                              • Set KB3D_Speed = LD_KB_Speed[LD_Level[LD_AIndex]]
                              • Set KB3D_UnpathableStop = LD_KB_Pathable
                              • Set KB3D_Zoffset = LD_KB_Offset[LD_Level[LD_AIndex]]
                              • Set KB3D_AllowOutSiding = LD_KB_Outsiding
                              • -------- -------------------------------------------------------------------------- --------
                              • Custom script: call TriggerEvaluate( udg_KB3D_Registration )
                            • Else - Actions
                    • Else - Actions
                      • Set TempPoint3 = (TempPoint offset by LD_Speed2[LD_AIndex] towards LD_Angle[LD_AIndex] degrees)
                      • Special Effect - Create a special effect at TempPoint using LD_FloorEffect
                      • Special Effect - Destroy (Last created special effect)
                      • Unit - Move LD_Cast[LD_AIndex] instantly to TempPoint3, facing LD_Angle[LD_AIndex] degrees
                      • Set LD_RangeCounter[LD_AIndex] = (LD_RangeCounter[LD_AIndex] + LD_Speed2[LD_AIndex])
                      • Custom script: call RemoveLocation(udg_TempPoint3)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • LD_DummySpace[LD_AIndex] Greater than or equal to LD_DummyWidth
                    • Then - Actions
                      • Unit - Create 1 Mountain King Dummy for LD_CastOwner[LD_AIndex] at TempPoint facing LD_Angle[LD_AIndex] degrees
                      • Set LD_DummyDash[LD_AIndex] = (Last created unit)
                      • Animation - Play LD_DummyDash[LD_AIndex]'s LD_Animation animation
                      • Animation - Add the LD_AnimationTag animation tag to LD_DummyDash[LD_AIndex]
                      • Unit - Add a LD_DummyTimer second Generic expiration timer to LD_DummyDash[LD_AIndex]
                      • Unit - Turn collision for LD_DummyDash[LD_AIndex] Off
                      • Animation - Change LD_DummyDash[LD_AIndex]'s vertex coloring to (LD_DummyRed%, LD_DummyGreen%, LD_DummyBlue%) with LD_DummyTransparecy% transparency
                      • Set LD_DummySpace[LD_AIndex] = 0.00
                    • Else - Actions
                      • Set LD_DummySpace[LD_AIndex] = (LD_DummySpace[LD_AIndex] + LD_Speed2[LD_AIndex])
                  • Custom script: call RemoveLocation(udg_TempPoint)
                  • Custom script: call RemoveLocation(udg_TempPoint2)
JASS:
Lightning Dash v0.7 Major changes made includes addition of system.

by: GoldenFlame

Version 0.5 Changelog - Added KB3D system v1.6.0
                      - Added conditions to segregate units that are to be knockback
                      - Added more configurations
Version 0.6 Changelog - Remove Shadow of thunder clap dummy.
                      - Added LD_Ability and LD_DummyAbility for easy configuration
                      - Change the model of Thunder Clap dummy into none.mdl
                      - Set dummy death art of dummy dash into none
                      - Abilties of Dummies aare added thru triggers to prevent errors
                      - blend time of dummies set to 0 also the movement speed is set into fly with 0 collision.
                      - vision of dumy units changed into 0
                      - added 1 caster in the map
Version 0.7 Changelog - Made Attack Type and Damage Type Configurable

Lightning Dash - Dashes through enemy dealing damage into it, slows and knockbac nearby unit,however 
                 if there is a open unit it will dash into it and damage it again.


Pros - MUI Spell
     - Lag Free
     - Leak Free
     - Configurable


Importing:
Go to:
File
Preferences
General
Check the box labelled ''Automatically create unknown variables while pasting trigger data''
and the copy the folder Knockback 3D and Lightning Dash v0.6

Also copy all custom units and abilty in the object editor.
    
Notes.
    #1. Configure carefully the spell by altering the configurable in LD Config Trigger 
    #2. Do not change anything besides all the variables in LD Config.


//==========================================================================================================================================

Give credits to this people if you use this spell
Jad

Credits
Jad
Rheiko
Chobibo

Remarks:
[FONT="Trebuchet MS]Freely to be distributed in public, if used in game add me in your credits, just a simple spell.[/FONT]

edit 1: Does not dash anymore to same unit.
edit 2: Made Heavy changes

Keywords:
lightning, dash, timewalk, teleport, broom, jump, hop, slow, thunder, noob, white, electricity
Contents

Lightning Dash v0.1.c (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Lightning Dash v0.7 | Reviewed by Maker | 1st November 2013 Concept[/COLOR]] You added some originality by having the hero charge twice, and charge spells are cool... ...but...

Moderator

M

Moderator

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


Lightning Dash v0.7 | Reviewed by Maker | 1st November 2013

[COLOR="gray"

[COLOR="gray"

[COLOR="gray"

[COLOR="gray"

[COLOR="gray"

Concept[/COLOR]]
126248-albums6177-picture66521.png
  • You added some originality by having the hero charge twice,
    and charge spells are cool...
126248-albums6177-picture66523.png
  • ...but there have been many charge spells done over
    the years so it can be difficult to make an exciting rendition of the theme
Triggers[/COLOR]]
126248-albums6177-picture66521.png
  • Good configuration settings
126248-albums6177-picture66522.png
  • The caster can have the collision turned off even after the
    spell is over
  • You have a location leak in the looping trigger
  • You can leak a unit group in the looping trigger
  • It looks like you are forgetting to set a dummy unit to a variable
    in the looping trigger
126248-albums6177-picture66523.png
  • You might want to filter out flying units
  • I recommend adding (optional) pathing detection
    so the hero doesn't go over/through cliffs or buildings
  • Use variables for the dummy unit type and dummy ability
Objects[/COLOR]]
126248-albums6177-picture66521.png
  • No unnecessary objects
126248-albums6177-picture66523.png
  • The learn tooltip is the same as the learned tooltip
Effects[/COLOR]]
126248-albums6177-picture66521.png
  • The effetcs are ok
126248-albums6177-picture66523.png
  • The dummy trail could fade out
  • The dash could make a sound
Rating[/COLOR]]
CONCEPTTRIGGERSOBJECTSEFFECTSRATINGSTATUS
126248-albums6177-picture75358.jpg
126248-albums6177-picture75358.jpg
126248-albums6177-picture75359.jpg
126248-albums6177-picture75358.jpg
126248-albums6177-picture75358.jpg
NEEDS FIX
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
0.1.b Review

Personal Words

Review

Suggestions

Rating

Judgement

Note

Review Claimed by Chobibo, and this is what would've happened anyway since it's GUI :p
  • Add Comments (explanations) in LD Config to what variables do
  • Remove the Cleaning Trigger, it can be replaced by seting the death type of the unit to:
    deeZXya.png
  • Remove the Shadow of the Lightning Dash Dummy and change his death type to :
    deeZXya.png
    • Custom script: call RemoveLocation(udg_TempPoint3)
    • [*]
    this should be at the end of the ELSE block of this condition:
    • LD_RangeCounter[LD_AIndex] Greater than or equal to LD_Range[LD_AIndex]
    • [*]
  • You should make the Animation of the caster which is played at cast configurable via a variable
  • LD_Speed should be an array
I think that's all, it's a cool spell, it's somehow original since you combined the trail to it :)
You may want to make the Dash STOP or Change TARGET if the target is Dead (before it his him)
225233-albums6523-picture74070.jpg
225233-albums6523-picture74105.jpg
If You want me to review an Update of This Spell, Please Notifiy me this by VM or PM
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
All configurations except effects and attachments should be arrays, since the spell has 3 levels, each configuration of the spell should be an array to support each level

As for an example:
If i wanted to use this spell in my map, and i want it to damage the same amount for all levels, same amount of targets, but i want to each level has a greater dash speed...
And referring to the spell name "dash" tje first thing that should be flawlessly configurable is speed :3
 
Level 20
Joined
Aug 13, 2013
Messages
1,696
The configuration trigger must be documented, you must add the vertex coloring of the dummy and their transparency, ( maybe the user wants to change that so he will not touch nor harm the code ), and the animation of the caster.
 
Level 22
Joined
Aug 27, 2013
Messages
3,973

Lightning Dash v0.2 Review

By Rheiko

Documentation

  • Next time remember to update your description when you update the spell
  • No importing instructions

Triggers

Pros

  • A nice spell, dashing with trails are a good combination
  • The Triggers are Readable and Clean
  • leakless
  • MUI
  • Variables are descriptive
  • Simple but useful

Cons

None

Suggestions

  • Check if the target is dead and cancel the spell
  • Use check walkability by PurgeandFire
  • Make dummy's color configurable
  • Make a decent importing instructions
  • Update your triggers when you update your spell

Contact Me

If you have a question concerning this review, post it here or send me a PM / VM


3/5 - Vote For Approval

 
Level 20
Joined
Aug 13, 2013
Messages
1,696
Review


Lightning Dash v0.4
This spell had been reviewed by jakeZinc.


Trigger Code
The triggering looks good and clean. But simply notice that you misplaced removing location of TempPoint3, yo must remove it where you'd set it. You did not remove the dummy here:
  • Unit - Create 1 Lightning Dash Dummy for LD_CastOwner[LD_AIndex] at TempPoint facing Default building facing degrees
. This dummy unit has a shadows and I consider that this is the caster of the thunder clap dummy.
Documentation
The documentation is well good.
Configuration
The configuration is lacking, you must add the Ability, Dummy Configuration so that it will not make the users to touch the trigger core
Pros
It is swag and beautiful.
Cons
The death art special of the dummy, the shadow of the dummy.
Importing Instruction
There's no importing instruction
Special Effects
The special effects are fantastic and the trail is awesome!
Usefulness
Useful can be use in chasing enemies and it is a dash spell that can jumps in every target.
Suggestions
Do not add shadows to the dummy, make the model of the thunder clap caster to be none.mdl. Set the death art special of the mountain king dummy to none. Do not add an ability to the dummy in the object editor, you must add it via triggers, so that it will not have an errors in the spell. Set the blend time of the thunder clap caster to 0.00. Set the movement type of the dummy to fly and set their collision size to 0.00. The dummy has a wide vision maybe make it 0. Use locust unit as a dummy because it is much faster than picking custom units that does not have a locust ability. The thunder clap caster must has a death type - Can't raise and does not decay. Must have at least two casters in the map. Make the max range, wait, and dummytime to be array configurability per level.
Description Tooltip
I think the tooltip is nice and it is support every level of the spell

jakeZinc Score Board
Rejected: 1-10
Unacceptable : 11-30
Lacking : 31-49
Useful : 50-69
Recommended : 70-90
Highly Recommended : 91-100
Director Cut : 101-105
Scores
1) Triggering - 15/20
2) Documentation - 7/10
3) Importing Instruction - 0/10
4) Special Effects - 15/15
5) Usefulness - 15/20
6) Tooltip - 8/10
7) Configuration - 5/10
Ratings
Total Score - 65/105
jakeZinc Rating - 3/5
Status - Useful and Needs Fix
 
Level 20
Joined
Aug 13, 2013
Messages
1,696
Review


Lightning Dash v0.7
This spell had been quick reviewed changes by jakeZinc.


Trigger Code
  • Unit - Cause LD_Cast[LD_AIndex] to damage LD_TargetUnit[LD_AIndex], dealing LD_Damage[LD_Level[LD_AIndex]] damage of attack type LD_AttackType and damage type LD_DamageType
    • Unit - Create 1 Lightning Dash Dummy for LD_CastOwner[LD_AIndex] at TempPoint facing Default building facing degrees
    • Unit - Add Lightning Dash (Thunder Clap) to LD_DummyTC[LD_AIndex]
    • Unit - Set level of Lightning Dash (Thunder Clap) for LD_DummyTC[LD_AIndex] to LD_Level[LD_AIndex]
    • Set LD_DummyTC[LD_AIndex] = (Last created unit)
    • Unit - Add a LD_WaitAttack[LD_AIndex] second Generic expiration timer to LD_DummyTC[LD_AIndex]
    • Unit - Turn collision for LD_DummyDash[LD_AIndex] Off
    • Unit - Set level of Lightning Dash (Thunder Clap) for LD_DummyTC[LD_AIndex] to LD_Level[LD_AIndex]
    • Unit - Order LD_DummyTC[LD_AIndex] to Human Mountain King - Thunder Clap
You misplaced setting the unit's dummy variable, this will not work.
  • Unit Group - Pick every unit in TempGroup2 and do (Actions)
    • Loop - Actions
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
    • ((Picked unit) is A ground unit) Equal to LD_GroundUnit
Seems that you use it many times just filtering units then make it variable or store the picked unit to a variable to maintain efficiency.
  • Set LD_KB_Angle[LD_AIndex] = (Angle from TempPoint to (Position of (Picked unit)))
This is leaking a point and it must be removed, store the Position of PickedUnit into a variable then remove it by using RemoveLocation ( udg_pointlocation ).
  • Set TempGroup2 = (Units within LD_AOE[LD_Level[LD_AIndex]] of TempPoint matching (((Matching unit) is alive) Equal to LD_Alive))
you don't need a Matching Unit is Alive, you must filter it like you does in other filters.
  • Set LD_Level[LD_MaxIndex] = (Level of Lightning Dash for LD_Cast[LD_MaxIndex])
Use your ability variable,
  • Set LD_Speed2[LD_MaxIndex] = LD_Speed[LD_Level[LD_MaxIndex]]
You don't need this, use your variable.
  • Set LD_RangeCounter[LD_AIndex] = LD_RangeCounter[LD_MaxIndex]
  • Set LD_RangeCounter[LD_AIndex] = LD_RangeCounter[LD_MaxIndex]
You does a doubled deindexing in LD_RangeCounter.
  • Set LD_SpecialEffect[LD_AIndex] = LD_SpecialEffect[LD_MaxIndex]
Your deallocating the de-affected in allocation in execution :///.
Documentation
The documentation is well good.
Configuration
Changes made. The acceleration speed must supporting levels and it must be configurable but just warned them that turning it in positive values will not make the unit Z's offset.
Pros
It is swag and beautiful.
Cons
None.
Importing Instruction
The importing instruction is nice.
Special Effects
The special effects are fantastic and the trail is awesome!
Usefulness
Useful can be use in chasing enemies and it is a dash spell that can jumps in every target.
Suggestions
Changes made but
  • Set LD_CastOwner[LD_MaxIndex] = (Owner of LD_Cast[LD_MaxIndex])
you can use TriggerPlayer() than this always in the execution.
  • Special Effect - Create a special effect at TempPoint using LD_FloorEffect
  • Special Effect - Destroy (Last created special effect)
You can merge this into 1 line.
  • Set LD_DummyDash[LD_AIndex] = (Last created unit)
This is not needed. The caster still moves order when the speed is low, better to set a unit's propwindow.
  • (Number of units in TempGroup) Greater than 0
You can use an integer counter for this group enumerations.
  • Set LD_Speed[1] = (LD_MaxRange[1] x 0.04)
  • Set LD_Speed[2] = (LD_MaxRange[2] x 0.04)
  • Set LD_Speed[3] = (LD_MaxRange[3] x 0.04)
Must be configurability in how far the unit goes to a distance per second in the speed value.
  • -------- The space in which the dummy trail will spawn. --------
  • Set LD_DummyWidth = 15.00
Can be supported every level.
  • -------- Time before dashing again. --------
  • Set LD_Wait = 0.20
This is must be supported every level.
  • LD_MaxIndex Greater than or equal to 1
YOu can use Equal to.
Description Tooltip
I think the tooltip is nice and it is supporting every level of the spell

jakeZinc Score Board
Rejected: 1-10
Unacceptable : 11-30
Lacking : 31-49
Useful : 50-69
Recommended : 70-90
Highly Recommended : 91-100
Director Cut : 101-105
Scores
1) Triggering - 4/20
2) Documentation - 8/10
3) Importing Instruction - 8/10
4) Special Effects - 15/15
5) Usefulness - 15/20
6) Tooltip - 8/10
7) Configuration - 5/10
Ratings
Total Score - 63/105
jakeZinc Rating - 1.5/5
Status - Useful and due to the trigger code error and inefficiency Needs Fix
Note
If you fix those then the rating will be higher
 
Top