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

Raikiri v1.1

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
I suggest to re-upload this spell coz i've deleted the my spellpack due to lots of leaks.

Spell desc:
Caster moves 600 range forward and damaging nearby enemy every .03 sec.
Level 1 - 10 damage, 100 AoE
Level 2 - 15 damage, 150 AoE
Level 3 - 20 damage, 200 AoE
Level 4 - 25 damage, 250 AoE

[TD]Raikiri (by doomhammer99)[/TD]

Spell Init

Raikiri Cast

Raikiri Charge


  • Spell Init
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Raikiri_Ability = Raikiri
      • -------- Change this if you wished to --------
      • Set SFX[1] = Abilities\Weapons\ZigguratMissile\ZigguratMissile.mdl
      • Set SFX[2] = Abilities\Spells\Orc\Purge\PurgeBuffTarget.mdl
      • Set Raikiri_AoE[1] = 100.00
      • Set Raikiri_AoE[2] = 150.00
      • Set Raikiri_AoE[3] = 200.00
      • Set Raikiri_AoE[4] = 250.00
      • Set Raikiri_Damage[1] = 10.00
      • Set Raikiri_Damage[2] = 15.00
      • Set Raikiri_Damage[3] = 20.00
      • Set Raikiri_Damage[4] = 25.00
      • Set Raikiri_Animation = attack slam
      • -------- ------------------------------- --------

  • Raikiri Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Raikiri_Ability
    • Actions
      • -------- IMPORTANT SYSTEM PART START --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Raikiri_IndexSize Equal to 0
        • Then - Actions
          • Trigger - Turn on Raikiri Charge <gen>
        • Else - Actions
      • -------- Increase the index size --------
      • Set Raikiri_IndexSize = (Raikiri_IndexSize + 1)
      • -------- Dynamic Index --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Raikiri_IndexSize Greater than Raikiri_IndexMaxSize
        • Then - Actions
          • Set Raikiri_Index[Raikiri_IndexSize] = Raikiri_IndexSize
          • Set Raikiri_IndexMaxSize = Raikiri_IndexSize
        • Else - Actions
      • -------- Dynamic Index End --------
      • -------- IMPORTANT SYSTEM PART END --------
      • Set Raikiri_TempInt = Raikiri_Index[Raikiri_IndexSize]
      • -------- Setup those arrays --------
      • Set Raikiri_Caster[Raikiri_TempInt] = (Casting unit)
      • Set Raikiri_CasterLoc = (Position of (Raikiri_Caster[Raikiri_TempInt]))
      • Set Raikir_Owner[Raikiri_TempInt] = (Owner of Raikiri_Caster[Raikiri_TempInt])
      • Set Raikiri_Level[Raikiri_TempInt] = (Level of Raikiri_Ability for Raikiri_Caster[Raikiri_TempInt])
      • Set Raikiri_Angle[Raikiri_TempInt] = (Facing of (Triggering unit))
      • Special Effect - Create a special effect attached to the right hand of Raikiri_Caster[Raikiri_TempInt] using SFX[1]
      • Set Raikiri_Buff1[Raikiri_TempInt] = (Last created special effect)
      • -------- This is the distance it will travel.. If you want to change this, multiply it by 4.. Current distance is 600 --------
      • Set Raikiri_Distance[Raikiri_TempInt] = 2400.00
      • -------- Don't touch this --------
      • Set Raikiri_Speed[Raikiri_TempInt] = 25.00
      • Unit - Turn collision for Raikiri_Caster[Raikiri_TempInt] Off
      • Unit - Pause Raikiri_Caster[Raikiri_TempInt]
      • Custom script: call RemoveLocation(udg_Raikiri_MovePoint)
      • Custom script: call RemoveLocation(udg_Raikiri_CasterLoc)
  • Raikiri Charge
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Raikiri_Loop) from 1 to Raikiri_IndexSize, do (Actions)
        • Loop - Actions
          • -------- This let look everything cleaner. --------
          • Set Raikiri_TempInt = Raikiri_Index[Raikiri_Loop]
          • -------- Condition... --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Raikiri_Distance[Raikiri_TempInt] Greater than 0.00
            • Then - Actions
              • Set Raikiri_CasterLoc = (Position of Raikiri_Caster[Raikiri_TempInt])
              • Set Raikiri_MovePoint = (Raikiri_CasterLoc offset by Raikiri_Speed[Raikiri_TempInt] towards Raikiri_Angle[Raikiri_TempInt] degrees)
              • Unit - Move Raikiri_Caster[Raikiri_TempInt] instantly to Raikiri_MovePoint, facing Raikiri_Angle[Raikiri_TempInt] degrees
              • Animation - Play Raikiri_Caster[Raikiri_TempInt]'s Raikiri_Animation animation
              • Custom script: set bj_wantDestroyGroup=true
              • Set Raikiri_Group[Raikiri_TempInt] = (Units within Raikiri_AoE[Raikiri_TempInt] of Raikiri_MovePoint)
              • Unit Group - Pick every unit in (Raikiri_Group[Raikiri_TempInt]) and do (Actions)
                • Loop - Actions
                  • Set Raikiri_Targets[Raikiri_TempInt] = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (((Picked unit) is alive) Equal to True) and ((Owner of (Picked unit)) Not equal to Raikir_Owner[Raikiri_TempInt])
                    • Then - Actions
                      • Unit - Cause Raikiri_Caster[Raikiri_TempInt] to damage Raikiri_Targets[Raikiri_TempInt], dealing Raikiri_Damage[Raikiri_Level[Raikiri_TempInt]] damage of attack type Spells and damage type Normal
                      • Special Effect - Create a special effect attached to the right hand of Raikiri_Caster[Raikiri_TempInt] using SFX[2]
                      • Set Raikiri_Buff2[Raikiri_TempInt] = (Last created special effect)
                      • Special Effect - Destroy Raikiri_Buff2[Raikiri_TempInt]
                      • Unit Group - Remove Raikiri_Targets[Raikiri_TempInt] from (Last created unit group)
                    • Else - Actions
              • Set Raikiri_Distance[Raikiri_TempInt] = (Raikiri_Distance[Raikiri_TempInt] - 100.00)
              • Custom script: call RemoveLocation(udg_Raikiri_MovePoint)
              • Custom script: call RemoveLocation(udg_Raikiri_CasterLoc)
            • Else - Actions
              • Animation - Reset Raikiri_Caster[Raikiri_TempInt]'s animation
              • Unit - Turn collision for Raikiri_Caster[Raikiri_TempInt] On
              • Unit - Unpause Raikiri_Caster[Raikiri_TempInt]
              • Special Effect - Destroy Raikiri_Buff1[Raikiri_TempInt]
              • Set Raikiri_Index[Raikiri_Loop] = Raikiri_Index[Raikiri_IndexSize]
              • Set Raikiri_Index[Raikiri_IndexSize] = Raikiri_TempInt
              • Set Raikiri_IndexSize = (Raikiri_IndexSize - 1)
              • Set Raikiri_Loop = (Raikiri_Loop - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Raikiri_IndexSize Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                  • Skip remaining actions
                • Else - Actions
              • -------- IMPORTANT SYSTEM PART END --------
Changelog:
1.0 - First upload
1.1 - Fixed variables

Thanks to these for reviewing my spell:
GywGod133
mogulkhan1Axe
deathismyfriend

Give credits to me and doomhammer99 (especially for fixing my model)

Keywords:
fareezizfar, doomhammer99, raikiri, lightning, shock, electric, naruto, kakashi, rush,
Contents

Kakashi Spellpack by fareezizfar (Map)

Reviews
12th Dec 2015 IcemanBo: For long time as NeedsFix. Rejected. 14:59, 5th Jan 2015 Maker: Avoid using Pause unit.

Moderator

M

Moderator

12th Dec 2015
IcemanBo: For long time as NeedsFix. Rejected.

14:59, 5th Jan 2015
Maker: Avoid using Pause unit.
 
Level 13
Joined
Jul 16, 2012
Messages
679
  • (((Picked unit) is alive) Equal to True) and ((Owner of (Picked unit)) Not equal to Raikir_Owner[Raikiri_TempInt])
->>>
  • (((Raikiri_Targets[Raikiri_TempInt]) is alive) Equal to True) and ((Owner of (Raikiri_Targets[Raikiri_TempInt])) Not equal to Raikir_Owner[Raikiri_TempInt])
cuz Raikiri_Targets[Raikiri_TempInt] = Picked Unit

EDIT:
Use Unit Group Variable instead of this Unit Group - Pick every unit in (Units within Raikiri_AoE[Raikiri_Level[Raikiri_TempInt]] of Raikiri_MovePoint) and do (Actions) and the Unit Group - Remove Raikiri_Targets[Raikiri_TempInt] from (Last created unit group) become to this Unit Group - Remove Raikiri_Targets[Raikiri_TempInt] from UnitGroup

  • (Ability being cast) Equal to Raikiri
->>>>
  • (Ability being cast) Equal to Raikiri_Ability
You forgot to put the ability in a variable

So some parts of your code will be change
  • Set Raikiri_Level[Raikiri_TempInt] = (Level of Raikiri_Ability for Raikiri_Caster[Raikiri_TempInt])
EDIT 2:
  • Special Effect - Create a special effect attached to the right hand of Raikiri_Caster[Raikiri_TempInt] using SFX[2]
  • Set Raikiri_Buff2[Raikiri_TempInt] = (Last created special effect)
  • Special Effect - Destroy Raikiri_Buff2[Raikiri_TempInt]
->>>>>
  • Special Effect - Create a special effect attached to the right hand of Raikiri_Caster[Raikiri_TempInt] using SFX[2]
  • Special Effect - Destroy (Last created special effect)
 
Last edited:
Level 8
Joined
Nov 9, 2011
Messages
326
Not bad to be honest i don't see leaks (me at least) also why do u remove units from group
  • Unit Group - Remove Raikiri_Targets[Raikiri_TempInt] from (Last created unit group)
So you do damage again?

If so u can just deal one instance of damage no need to do damage per 0.03 seconds.

4/5
 
Level 8
Joined
Nov 9, 2011
Messages
326
  • (((Picked unit) is alive) Equal to True) and ((Owner of (Picked unit)) Not equal to Raikir_Owner[Raikiri_TempInt])
->>>
  • (((Raikiri_Targets[Raikiri_TempInt]) is alive) Equal to True) and ((Owner of (Raikiri_Targets[Raikiri_TempInt])) Not equal to Raikir_Owner[Raikiri_TempInt])
cuz Raikiri_Targets[Raikiri_TempInt] = Picked Unit

Yea didn't see that one lolz
 
Switch the first and second action around. Then use the variable instead of triggering unit.

  • Set Raikiri_CasterLoc = (Position of (Triggering unit))
    • Set Raikiri_Caster[Raikiri_TempInt] = (Triggering unit)
    • Set Raikir_Owner[Raikiri_TempInt] = (Triggering player)
    • Set Raikiri_Level[Raikiri_TempInt] = (Level of Raikiri for Raikiri_Caster[Raikiri_TempInt])
    • Set Raikiri_Angle[Raikiri_TempInt] = (Facing of (Triggering unit))
Speed and distance should be customizable and in the init trigger.
 
Not bad to be honest i don't see leaks (me at least) also why do u remove units from group
  • Unit Group - Remove Raikiri_Targets[Raikiri_TempInt] from (Last created unit group)
So you do damage again?

If so u can just deal one instance of damage no need to do damage per 0.03 seconds.

4/5

yeah.. i though that enemy can blink from the area it trails, so they can reduce damage taken on them.. btw, thanks
 
Top