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

Kamehameha v1.0


Kamehameha[TD]v1.0
  • Index

    1. Description
    2. Screenshot
    3. Code/Trigger
    4. Credit
    5. Last Message
    6. Changelog

  • Description

    You know this... :p
  • Screenshot

    Kamehameha2.jpg

    Kamehameha3.jpg

    Kamehameha4.jpg

  • Code/Trigger

    • Kamehameha Setting
      • Events
        • Map initialization
      • Conditions
      • Actions
        • -------- --------------------------- --------
        • -------- Ability object --------
        • Set Kh_ability = Kamehameha
        • -------- --------------------------- --------
        • -------- Ability order ID --------
        • Set Kh_orderID = (Order(shockwave))
        • -------- --------------------------- --------
        • -------- Determines the missile dummy --------
        • Set Kh_missileDummy = Kamehameha Missile
        • -------- --------------------------- --------
        • -------- Determines the missile head dummy --------
        • Set Kh_missileHeadDummy = Kamehameha Missile Head
        • -------- --------------------------- --------
        • -------- Determines the missile spawn offset from caster position --------
        • Set Kh_missileStartOffset = 75.00
        • -------- --------------------------- --------
        • -------- Determines the missile path type --------
        • Set Kh_missilePathType = Flyability
        • -------- --------------------------- --------
        • -------- Determines the missile speed --------
        • Set Kh_missileSpeed[1] = 50.00
        • Set Kh_missileSpeed[2] = 60.00
        • Set Kh_missileSpeed[3] = 70.00
        • Set Kh_missileSpeed[4] = 80.00
        • -------- --------------------------- --------
        • -------- Determines the missile scale --------
        • Set Kh_missileScale[1] = 4.00
        • Set Kh_missileScale[2] = 5.00
        • Set Kh_missileScale[3] = 6.00
        • Set Kh_missileScale[4] = 7.00
        • -------- --------------------------- --------
        • -------- Determines the missile head scale --------
        • Set Kh_missileHeadScale[1] = 6.00
        • Set Kh_missileHeadScale[2] = 7.00
        • Set Kh_missileHeadScale[3] = 8.00
        • Set Kh_missileHeadScale[4] = 9.00
        • -------- --------------------------- --------
        • -------- Determines the missile fade speed --------
        • Set Kh_missileFadeSpeed[1] = 5.00
        • Set Kh_missileFadeSpeed[2] = 5.00
        • Set Kh_missileFadeSpeed[3] = 5.00
        • Set Kh_missileFadeSpeed[4] = 5.00
        • -------- --------------------------- --------
        • -------- Determines the effect spawn along the main missile --------
        • Set Kh_missileEffectDummy = Kamehameha Missile Effect
        • -------- --------------------------- --------
        • -------- Determines the missile effect scale --------
        • Set Kh_missileEffectScale[1] = 1.30
        • Set Kh_missileEffectScale[2] = 1.40
        • Set Kh_missileEffectScale[3] = 1.50
        • Set Kh_missileEffectScale[4] = 1.60
        • -------- --------------------------- --------
        • -------- Determines the missile effect spawn interval --------
        • Set Kh_missileEffectInterval = 0.12
        • -------- --------------------------- --------
        • -------- Determines the missile effect duration --------
        • Set Kh_missileEffectTime = 1.50
        • -------- --------------------------- --------
        • -------- Determines the channelling duration --------
        • Set Kh_channelDuration[1] = 4.50
        • Set Kh_channelDuration[2] = 4.50
        • Set Kh_channelDuration[3] = 4.50
        • Set Kh_channelDuration[4] = 4.50
        • -------- --------------------------- --------
        • -------- Determines the channel effect --------
        • Set Kh_channelEffect = war3mapImported\Bibang.mdx
        • Set Kh_channelEffectAttachment = hand
        • -------- --------------------------- --------
        • -------- Determines the channel sound --------
        • Set Kh_channelSound = kamehame <gen>
        • -------- --------------------------- --------
        • -------- Determines the caster throw animation --------
        • Set Kh_throwAnimation = spell three
        • -------- --------------------------- --------
        • -------- Determines the caster throw animation speed --------
        • Set Kh_throwAnimationSpeed[1] = 100.00
        • Set Kh_throwAnimationSpeed[2] = 100.00
        • Set Kh_throwAnimationSpeed[3] = 100.00
        • Set Kh_throwAnimationSpeed[4] = 100.00
        • -------- --------------------------- --------
        • -------- Determines the delay before the trigger proceed to the next stage after 'throwing' --------
        • Set Kh_throwDelay[1] = 0.30
        • Set Kh_throwDelay[2] = 0.30
        • Set Kh_throwDelay[3] = 0.30
        • Set Kh_throwDelay[4] = 0.30
        • -------- --------------------------- --------
        • -------- Determines the release effect dummy --------
        • Set Kh_releaseEffectDummy = Kamehameha Release Effect
        • -------- --------------------------- --------
        • -------- Determines the release effect scale --------
        • Set Kh_releaseEffectScale[1] = 1.20
        • Set Kh_releaseEffectScale[2] = 1.30
        • Set Kh_releaseEffectScale[3] = 1.40
        • Set Kh_releaseEffectScale[4] = 1.50
        • -------- --------------------------- --------
        • -------- Determines the release effect spawn offset from caster position --------
        • Set Kh_releaseEffectOffset = 0.00
        • -------- --------------------------- --------
        • -------- Determines the release effect duration --------
        • Set Kh_releaseEffectTime = 1.00
        • -------- --------------------------- --------
        • -------- Determines the release effect sound --------
        • Set Kh_releaseSound = ha <gen>
        • -------- --------------------------- --------
        • -------- Determines the effect that periodically spawn on caster position --------
        • Set Kh_loopingEffectDummy = Kamehameha Looping Effect
        • -------- --------------------------- --------
        • -------- Determines the looping effect scale --------
        • Set Kh_loopingEffectScale[1] = 1.20
        • Set Kh_loopingEffectScale[2] = 1.30
        • Set Kh_loopingEffectScale[3] = 1.40
        • Set Kh_loopingEffectScale[4] = 1.50
        • -------- --------------------------- --------
        • -------- Determines the looping effect spawn offset from caster position --------
        • Set Kh_loopingEffectOffset = 50.00
        • -------- --------------------------- --------
        • -------- Determines the looping effect interval --------
        • Set Kh_loopingEffectInterval = 0.15
        • -------- --------------------------- --------
        • -------- Determines the looping effect duration --------
        • Set Kh_loopingEffectTime = 1.00
        • -------- --------------------------- --------
        • -------- Determines the explosion effect dummy --------
        • Set Kh_explosionEffectDummy[1] = Kamehameha Explosion Effect 1
        • Set Kh_explosionEffectTime[1] = 10.00
        • Set Kh_explosionEffectDummy[2] = Kamehameha Explosion Effect 2
        • Set Kh_explosionEffectTime[2] = 1.00
        • -------- --------------------------- --------
        • -------- Determines the first explosion effect scale --------
        • Set Kh_explosionEffect1Scale[1] = 1.00
        • Set Kh_explosionEffect1Scale[2] = 1.10
        • Set Kh_explosionEffect1Scale[3] = 1.20
        • Set Kh_explosionEffect1Scale[4] = 1.30
        • -------- --------------------------- --------
        • -------- Determines the second explosion effect scale --------
        • Set Kh_explosionEffect2Scale[1] = 1.00
        • Set Kh_explosionEffect2Scale[2] = 1.10
        • Set Kh_explosionEffect2Scale[3] = 1.20
        • Set Kh_explosionEffect2Scale[4] = 1.30
        • -------- --------------------------- --------
        • -------- Determines the dust effect dummy --------
        • Set Kh_dustEffectDummy = Kamehameha Dust Effect
        • -------- --------------------------- --------
        • -------- Determines the dust effect scale --------
        • Set Kh_dustEffectScale[1] = 2.80
        • Set Kh_dustEffectScale[2] = 3.00
        • Set Kh_dustEffectScale[3] = 3.20
        • Set Kh_dustEffectScale[4] = 3.40
        • -------- --------------------------- --------
        • -------- Determines the dust effect animation speed --------
        • Set Kh_dustEffectAnimSpeed = 10.00
        • -------- --------------------------- --------
        • -------- Determines the dust effect duration --------
        • Set Kh_dustEffectTime = 8.00
        • -------- --------------------------- --------
        • -------- Determines the damage dealt by missile --------
        • Set Kh_damageMissile[1] = 200.00
        • Set Kh_damageMissile[2] = 250.00
        • Set Kh_damageMissile[3] = 300.00
        • Set Kh_damageMissile[4] = 350.00
        • -------- --------------------------- --------
        • -------- Determines the damage radius for the missile --------
        • Set Kh_damageMissileRadius[1] = 150.00
        • Set Kh_damageMissileRadius[2] = 200.00
        • Set Kh_damageMissileRadius[3] = 250.00
        • Set Kh_damageMissileRadius[4] = 300.00
        • -------- --------------------------- --------
        • -------- Determines the missile hit effect --------
        • Set Kh_damageMissileEffect = war3mapImported\mihawkslashhit.mdx
        • Set Kh_damageMEffectAttachment = chest
        • -------- --------------------------- --------
        • -------- Determines the damage dealt by explosion --------
        • Set Kh_damageExplosion[1] = 300.00
        • Set Kh_damageExplosion[2] = 350.00
        • Set Kh_damageExplosion[3] = 400.00
        • Set Kh_damageExplosion[4] = 450.00
        • -------- --------------------------- --------
        • -------- Determines the damage radius for the explosion --------
        • Set Kh_damageExplosionRadius[1] = 600.00
        • Set Kh_damageExplosionRadius[2] = 700.00
        • Set Kh_damageExplosionRadius[3] = 800.00
        • Set Kh_damageExplosionRadius[4] = 900.00
        • -------- --------------------------- --------
        • -------- Determines the attack-type --------
        • Set Kh_attackType = Spells
        • -------- --------------------------- --------
        • -------- Determines the damage-type --------
        • Set Kh_damageType = Normal
        • -------- --------------------------- --------
        • -------- Determines the spell timer speed. Recommended value: 0.03 --------
        • Set Kh_timerSpeed = 0.03
        • -------- =========================================================================== --------
        • Trigger - Add to Kamehameha Loop <gen> the event (Time - Every Kh_timerSpeed seconds of game time)
        • Custom script: set udg_Kh_harvester = CreateUnit(Player(15), 'hpea', 0, 0, 0)
        • Custom script: call UnitAddAbility(udg_Kh_harvester, 'Aloc')
        • Unit - Hide Kh_harvester
        • Set Kh_harvestOrder = (Order(harvest))
    • Kamehameha Cast
      • Events
        • Unit - A unit Starts the effect of an ability
      • Conditions
        • (Ability being cast) Equal to Kh_ability
      • Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • Kh_maxIndex Equal to 0
          • Then - Actions
            • Trigger - Turn on Kamehameha Loop <gen>
          • Else - Actions
        • Set Kh_maxIndex = (Kh_maxIndex + 1)
        • Set Kh_caster[Kh_maxIndex] = (Triggering unit)
        • Set Kh_owner[Kh_maxIndex] = (Triggering player)
        • Set Kh_level[Kh_maxIndex] = (Level of Kh_ability for Kh_caster[Kh_maxIndex])
        • Set Kh_realTimer[Kh_maxIndex] = Kh_channelDuration[Kh_level[Kh_maxIndex]]
        • Set Kh_tempLoc = (Position of Kh_caster[Kh_maxIndex])
        • Set Kh_tempLoc2 = (Target point of ability being cast)
        • Set Kh_distance[Kh_maxIndex] = (Distance between Kh_tempLoc and Kh_tempLoc2)
        • Set Kh_angle[Kh_maxIndex] = (Angle from Kh_tempLoc to Kh_tempLoc2)
        • Custom script: call RemoveLocation(udg_Kh_tempLoc)
        • Custom script: call RemoveLocation(udg_Kh_tempLoc2)
        • Special Effect - Create a special effect attached to the Kh_channelEffectAttachment of Kh_caster[Kh_maxIndex] using Kh_channelEffect
        • Set Kh_attachedEffect[Kh_maxIndex] = (Last created special effect)
        • Sound - Play Kh_channelSound at 100.00% volume, attached to Kh_caster[Kh_maxIndex]
        • Set Kh_lastSound[Kh_maxIndex] = (Last played sound)
        • Set Kh_stageID[Kh_maxIndex] = 3
    • Kamehameha Loop
      • Events
      • Conditions
      • Actions
        • For each (Integer Kh_index) from 1 to Kh_maxIndex, do (Actions)
          • Loop - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • Kh_stageID[Kh_index] Equal to 1
              • Then - Actions
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • (Current order of Kh_caster[Kh_index]) Equal to Kh_orderID
                  • Then - Actions
                    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      • If - Conditions
                        • Kh_reachedDistance[Kh_index] Less than Kh_distance[Kh_index]
                      • Then - Actions
                        • Set Kh_realTimer[Kh_index] = (Kh_realTimer[Kh_index] - Kh_timerSpeed)
                        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          • If - Conditions
                            • Kh_realTimer[Kh_index] Less than or equal to 0.00
                          • Then - Actions
                            • Set Kh_realTimer[Kh_index] = Kh_loopingEffectInterval
                            • Set Kh_tempLoc = (Kh_startPoint[Kh_index] offset by Kh_loopingEffectOffset towards Kh_angle[Kh_index] degrees)
                            • Unit - Create 1 Kh_loopingEffectDummy for Kh_owner[Kh_index] at Kh_tempLoc facing Kh_angle[Kh_index] degrees
                            • Set Kh_dummy = (Last created unit)
                            • Custom script: call SetUnitScale(udg_Kh_dummy, udg_Kh_loopingEffectScale[udg_Kh_level[udg_Kh_index]], 0, 0)
                            • Unit - Add a Kh_loopingEffectTime second Generic expiration timer to Kh_dummy
                            • Custom script: call RemoveLocation(udg_Kh_tempLoc)
                          • Else - Actions
                        • Set Kh_tempLoc = (Kh_startPoint[Kh_index] offset by Kh_reachedDistance[Kh_index] towards Kh_angle[Kh_index] degrees)
                        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          • If - Conditions
                            • (Terrain pathing at Kh_tempLoc of type Kh_missilePathType is off) Equal to False
                          • Then - Actions
                            • Custom script: call SetUnitX(udg_Kh_missileHead[udg_Kh_index], GetLocationX(udg_Kh_tempLoc))
                            • Custom script: call SetUnitY(udg_Kh_missileHead[udg_Kh_index], GetLocationY(udg_Kh_tempLoc))
                            • Set Kh_realTimer2[Kh_index] = (Kh_realTimer2[Kh_index] - Kh_timerSpeed)
                            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              • If - Conditions
                                • Kh_realTimer2[Kh_index] Less than or equal to 0.00
                              • Then - Actions
                                • Set Kh_realTimer2[Kh_index] = Kh_missileEffectInterval
                                • Unit - Create 1 Kh_missileEffectDummy for Kh_owner[Kh_index] at Kh_tempLoc facing Kh_angle[Kh_index] degrees
                                • Set Kh_dummy = (Last created unit)
                                • Custom script: call SetUnitScale(udg_Kh_dummy, udg_Kh_missileEffectScale[udg_Kh_level[udg_Kh_index]], 0, 0)
                                • Unit - Add a Kh_missileEffectTime second Generic expiration timer to Kh_dummy
                              • Else - Actions
                            • Unit - Create 1 Kh_missileDummy for Kh_owner[Kh_index] at Kh_tempLoc facing Kh_angle[Kh_index] degrees
                            • Set Kh_dummy = (Last created unit)
                            • Custom script: call SetUnitScale(udg_Kh_dummy, udg_Kh_missileScale[udg_Kh_level[udg_Kh_index]], 0, 0)
                            • Unit Group - Add Kh_dummy to Kh_missileGroup[Kh_index]
                            • Set Kh_tempGroup = (Units within Kh_damageMissileRadius[Kh_level[Kh_index]] of Kh_tempLoc)
                            • Unit Group - Pick every unit in Kh_tempGroup and do (Actions)
                              • Loop - Actions
                                • Set Kh_pickedUnit = (Picked unit)
                                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  • If - Conditions
                                    • (Kh_pickedUnit is dead) Equal to False
                                    • (Kh_pickedUnit is A flying unit) Equal to False
                                    • (Kh_pickedUnit is Magic Immune) Equal to False
                                    • (Kh_pickedUnit is in Kh_damagedGroup[Kh_index]) Equal to False
                                    • (Kh_pickedUnit belongs to an ally of Kh_owner[Kh_index]) Equal to False
                                  • Then - Actions
                                    • Special Effect - Create a special effect attached to the Kh_damageMEffectAttachment of Kh_pickedUnit using Kh_damageMissileEffect
                                    • Special Effect - Destroy (Last created special effect)
                                    • Unit - Cause Kh_caster[Kh_index] to damage Kh_pickedUnit, dealing Kh_damageMissile[Kh_level[Kh_index]] damage of attack type Kh_attackType and damage type Kh_damageType
                                    • Unit Group - Add Kh_pickedUnit to Kh_damagedGroup[Kh_index]
                                  • Else - Actions
                            • Custom script: call DestroyGroup(udg_Kh_tempGroup)
                            • Set Kh_reachedDistance[Kh_index] = (Kh_reachedDistance[Kh_index] + Kh_missileSpeed[Kh_level[Kh_index]])
                          • Else - Actions
                            • Set Kh_reachedDistance[Kh_index] = Kh_distance[Kh_index]
                            • Set Kh_tempLoc2 = (Kh_startPoint[Kh_index] offset by Kh_distance[Kh_index] towards Kh_angle[Kh_index] degrees)
                            • Custom script: call SetUnitX(udg_Kh_missileHead[udg_Kh_index], GetLocationX(udg_Kh_tempLoc2))
                            • Custom script: call SetUnitY(udg_Kh_missileHead[udg_Kh_index], GetLocationY(udg_Kh_tempLoc2))
                            • Custom script: call RemoveLocation(udg_Kh_tempLoc2)
                        • Custom script: call RemoveLocation(udg_Kh_tempLoc)
                      • Else - Actions
                        • Set Kh_tempLoc = (Position of Kh_missileHead[Kh_index])
                        • Unit - Create 1 Kh_explosionEffectDummy[1] for Kh_owner[Kh_index] at Kh_tempLoc facing 0.00 degrees
                        • Set Kh_dummy = (Last created unit)
                        • Custom script: call SetUnitScale(udg_Kh_dummy, udg_Kh_explosionEffect1Scale[udg_Kh_level[udg_Kh_index]], 0, 0)
                        • Unit - Add a Kh_explosionEffectTime[1] second Generic expiration timer to Kh_dummy
                        • Unit - Create 1 Kh_explosionEffectDummy[2] for Kh_owner[Kh_index] at Kh_tempLoc facing 0.00 degrees
                        • Set Kh_dummy = (Last created unit)
                        • Custom script: call SetUnitScale(udg_Kh_dummy, udg_Kh_explosionEffect2Scale[udg_Kh_level[udg_Kh_index]], 0, 0)
                        • Unit - Add a Kh_explosionEffectTime[2] second Generic expiration timer to Kh_dummy
                        • Unit - Create 1 Kh_dustEffectDummy for Kh_owner[Kh_index] at Kh_tempLoc facing 0.00 degrees
                        • Set Kh_dummy = (Last created unit)
                        • Custom script: call SetUnitScale(udg_Kh_dummy, udg_Kh_dustEffectScale[udg_Kh_level[udg_Kh_index]], 0, 0)
                        • Unit - Add a Kh_dustEffectTime second Generic expiration timer to Kh_dummy
                        • Animation - Change Kh_dummy's animation speed to Kh_dustEffectAnimSpeed% of its original speed
                        • Animation - Play Kh_dummy's death animation
                        • Set Kh_tempGroup = (Units within Kh_damageExplosionRadius[Kh_level[Kh_index]] of Kh_tempLoc)
                        • Unit Group - Pick every unit in Kh_tempGroup and do (Actions)
                          • Loop - Actions
                            • Set Kh_pickedUnit = (Picked unit)
                            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              • If - Conditions
                                • (Kh_pickedUnit is dead) Equal to False
                                • (Kh_pickedUnit is Magic Immune) Equal to False
                                • (Kh_pickedUnit belongs to an ally of Kh_owner[Kh_index]) Equal to False
                              • Then - Actions
                                • Unit - Cause Kh_caster[Kh_index] to damage Kh_pickedUnit, dealing Kh_damageExplosion[Kh_level[Kh_index]] damage of attack type Kh_attackType and damage type Kh_damageType
                              • Else - Actions
                        • Custom script: call DestroyGroup(udg_Kh_tempGroup)
                        • Destructible - Pick every destructible within Kh_damageExplosionRadius[Kh_level[Kh_index]] of Kh_tempLoc and do (Actions)
                          • Loop - Actions
                            • Set Kh_tempDest = (Picked destructible)
                            • Custom script: if IssueTargetOrderById(udg_Kh_harvester, 852018, udg_Kh_tempDest) then
                            • Destructible - Kill Kh_tempDest
                            • Custom script: endif
                        • Unit - Order Kh_harvester to Stop
                        • Custom script: call RemoveLocation(udg_Kh_tempLoc)
                        • Custom script: call RemoveLocation(udg_Kh_startPoint[udg_Kh_index])
                        • Custom script: call DestroyGroup(udg_Kh_damagedGroup[udg_Kh_index])
                        • Unit - Order Kh_caster[Kh_index] to Stop
                        • Set Kh_curTransparency[Kh_index] = 0.00
                        • Set Kh_stageID[Kh_index] = 2
                  • Else - Actions
                    • Set Kh_tempLoc = (Position of Kh_missileHead[Kh_index])
                    • Unit - Create 1 Kh_explosionEffectDummy[1] for Kh_owner[Kh_index] at Kh_tempLoc facing 0.00 degrees
                    • Set Kh_dummy = (Last created unit)
                    • Custom script: call SetUnitScale(udg_Kh_dummy, udg_Kh_explosionEffect1Scale[udg_Kh_level[udg_Kh_index]], 0, 0)
                    • Unit - Add a Kh_explosionEffectTime[1] second Generic expiration timer to Kh_dummy
                    • Unit - Create 1 Kh_explosionEffectDummy[2] for Kh_owner[Kh_index] at Kh_tempLoc facing 0.00 degrees
                    • Set Kh_dummy = (Last created unit)
                    • Custom script: call SetUnitScale(udg_Kh_dummy, udg_Kh_explosionEffect2Scale[udg_Kh_level[udg_Kh_index]], 0, 0)
                    • Unit - Add a Kh_explosionEffectTime[2] second Generic expiration timer to Kh_dummy
                    • Set Kh_tempGroup = (Units within Kh_damageExplosionRadius[Kh_level[Kh_index]] of Kh_tempLoc)
                    • Unit Group - Pick every unit in Kh_tempGroup and do (Actions)
                      • Loop - Actions
                        • Set Kh_pickedUnit = (Picked unit)
                        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          • If - Conditions
                            • (Kh_pickedUnit is dead) Equal to False
                            • (Kh_pickedUnit is Magic Immune) Equal to False
                            • (Kh_pickedUnit belongs to an ally of Kh_owner[Kh_index]) Equal to False
                          • Then - Actions
                            • Unit - Cause Kh_caster[Kh_index] to damage Kh_pickedUnit, dealing Kh_damageExplosion[Kh_level[Kh_index]] damage of attack type Kh_attackType and damage type Kh_damageType
                          • Else - Actions
                    • Custom script: call DestroyGroup(udg_Kh_tempGroup)
                    • Destructible - Pick every destructible within Kh_damageExplosionRadius[Kh_level[Kh_index]] of Kh_tempLoc and do (Actions)
                      • Loop - Actions
                        • Set Kh_tempDest = (Picked destructible)
                        • Custom script: if IssueTargetOrderById(udg_Kh_harvester, 852018, udg_Kh_tempDest) then
                        • Destructible - Kill Kh_tempDest
                        • Custom script: endif
                    • Unit - Order Kh_harvester to Stop
                    • Custom script: call RemoveLocation(udg_Kh_tempLoc)
                    • Custom script: call RemoveLocation(udg_Kh_startPoint[udg_Kh_index])
                    • Custom script: call DestroyGroup(udg_Kh_damagedGroup[udg_Kh_index])
                    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      • If - Conditions
                        • (Kh_missileGroup[Kh_index] is empty) Equal to True
                      • Then - Actions
                        • Set Kh_curTransparency[Kh_index] = 100.00
                      • Else - Actions
                        • Set Kh_curTransparency[Kh_index] = 0.00
                    • Set Kh_stageID[Kh_index] = 2
              • Else - Actions
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • Kh_stageID[Kh_index] Equal to 2
                  • Then - Actions
                    • Set Kh_curTransparency[Kh_index] = (Kh_curTransparency[Kh_index] + Kh_missileFadeSpeed[Kh_level[Kh_index]])
                    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      • If - Conditions
                        • Kh_curTransparency[Kh_index] Less than 100.00
                      • Then - Actions
                        • Unit Group - Pick every unit in Kh_missileGroup[Kh_index] and do (Actions)
                          • Loop - Actions
                            • Set Kh_dummy = (Picked unit)
                            • Animation - Change Kh_dummy's vertex coloring to (100.00%, 100.00%, 100.00%) with Kh_curTransparency[Kh_index]% transparency
                      • Else - Actions
                        • Unit Group - Pick every unit in Kh_missileGroup[Kh_index] and do (Actions)
                          • Loop - Actions
                            • Unit - Kill (Picked unit)
                        • Custom script: call DestroyGroup(udg_Kh_missileGroup[udg_Kh_index])
                        • Set Kh_stageID[Kh_index] = 5
                  • Else - Actions
                    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      • If - Conditions
                        • Kh_stageID[Kh_index] Equal to 3
                      • Then - Actions
                        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          • If - Conditions
                            • (Current order of Kh_caster[Kh_index]) Equal to Kh_orderID
                          • Then - Actions
                            • Set Kh_realTimer[Kh_index] = (Kh_realTimer[Kh_index] - Kh_timerSpeed)
                            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              • If - Conditions
                                • Kh_realTimer[Kh_index] Less than or equal to 0.00
                              • Then - Actions
                                • Animation - Change Kh_caster[Kh_index]'s animation speed to Kh_throwAnimationSpeed[Kh_level[Kh_index]]% of its original speed
                                • Animation - Play Kh_caster[Kh_index]'s Kh_throwAnimation animation
                                • Set Kh_realTimer[Kh_index] = Kh_throwDelay[Kh_level[Kh_index]]
                                • Set Kh_stageID[Kh_index] = 4
                              • Else - Actions
                          • Else - Actions
                            • Special Effect - Destroy Kh_attachedEffect[Kh_index]
                            • Sound - Stop Kh_lastSound[Kh_index] Immediately
                            • Set Kh_stageID[Kh_index] = 5
                      • Else - Actions
                        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          • If - Conditions
                            • Kh_stageID[Kh_index] Equal to 4
                          • Then - Actions
                            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              • If - Conditions
                                • (Current order of Kh_caster[Kh_index]) Equal to Kh_orderID
                              • Then - Actions
                                • Set Kh_realTimer[Kh_index] = (Kh_realTimer[Kh_index] - Kh_timerSpeed)
                                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  • If - Conditions
                                    • Kh_realTimer[Kh_index] Less than or equal to 0.00
                                  • Then - Actions
                                    • Animation - Change Kh_caster[Kh_index]'s animation speed to 100.00% of its original speed
                                    • Special Effect - Destroy Kh_attachedEffect[Kh_index]
                                    • Set Kh_tempLoc = (Position of Kh_caster[Kh_index])
                                    • Set Kh_startPoint[Kh_index] = (Kh_tempLoc offset by Kh_releaseEffectOffset towards Kh_angle[Kh_index] degrees)
                                    • Unit - Create 1 Kh_releaseEffectDummy for Kh_owner[Kh_index] at Kh_tempLoc facing Kh_angle[Kh_index] degrees
                                    • Set Kh_dummy = (Last created unit)
                                    • Custom script: call SetUnitScale(udg_Kh_dummy, udg_Kh_releaseEffectScale[udg_Kh_level[udg_Kh_index]], 0, 0)
                                    • Unit - Add a Kh_releaseEffectTime second Generic expiration timer to Kh_dummy
                                    • Custom script: set udg_Kh_missileGroup[udg_Kh_index] = CreateGroup()
                                    • Custom script: set udg_Kh_damagedGroup[udg_Kh_index] = CreateGroup()
                                    • Set Kh_tempLoc2 = (Kh_tempLoc offset by Kh_missileStartOffset towards Kh_angle[Kh_index] degrees)
                                    • Custom script: call RemoveLocation(udg_Kh_tempLoc)
                                    • Unit - Create 1 Kh_missileHeadDummy for Kh_owner[Kh_index] at Kh_tempLoc2 facing Kh_angle[Kh_index] degrees
                                    • Set Kh_missileHead[Kh_index] = (Last created unit)
                                    • Custom script: call SetUnitScale(udg_Kh_missileHead[udg_Kh_index], udg_Kh_missileHeadScale[udg_Kh_level[udg_Kh_index]], 0, 0)
                                    • Unit Group - Add Kh_missileHead[Kh_index] to Kh_missileGroup[Kh_index]
                                    • Custom script: call RemoveLocation(udg_Kh_tempLoc2)
                                    • Sound - Stop Kh_lastSound[Kh_index] Immediately
                                    • Sound - Play Kh_releaseSound at 100.00% volume, attached to Kh_caster[Kh_index]
                                    • Set Kh_reachedDistance[Kh_index] = Kh_missileStartOffset
                                    • Set Kh_realTimer[Kh_index] = 0.00
                                    • Set Kh_realTimer2[Kh_index] = Kh_missileEffectInterval
                                    • Set Kh_stageID[Kh_index] = 1
                                  • Else - Actions
                              • Else - Actions
                                • Special Effect - Destroy Kh_attachedEffect[Kh_index]
                                • Sound - Stop Kh_lastSound[Kh_index] Immediately
                                • Set Kh_stageID[Kh_index] = 5
                          • Else - Actions
                            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              • If - Conditions
                                • Kh_stageID[Kh_index] Equal to 5
                              • Then - Actions
                                • Set Kh_angle[Kh_index] = Kh_angle[Kh_maxIndex]
                                • Set Kh_attachedEffect[Kh_index] = Kh_attachedEffect[Kh_maxIndex]
                                • Set Kh_caster[Kh_index] = Kh_caster[Kh_maxIndex]
                                • Set Kh_damagedGroup[Kh_index] = Kh_damagedGroup[Kh_maxIndex]
                                • Set Kh_lastSound[Kh_index] = Kh_lastSound[Kh_maxIndex]
                                • Set Kh_level[Kh_index] = Kh_level[Kh_maxIndex]
                                • Set Kh_missileGroup[Kh_index] = Kh_missileGroup[Kh_maxIndex]
                                • Set Kh_missileHead[Kh_index] = Kh_missileHead[Kh_maxIndex]
                                • Set Kh_owner[Kh_index] = Kh_owner[Kh_maxIndex]
                                • Set Kh_reachedDistance[Kh_index] = Kh_reachedDistance[Kh_maxIndex]
                                • Set Kh_realTimer[Kh_index] = Kh_realTimer[Kh_maxIndex]
                                • Set Kh_realTimer2[Kh_index] = Kh_realTimer2[Kh_maxIndex]
                                • Set Kh_stageID[Kh_index] = Kh_stageID[Kh_maxIndex]
                                • Set Kh_startPoint[Kh_index] = Kh_startPoint[Kh_maxIndex]
                                • Set Kh_maxIndex = (Kh_maxIndex - 1)
                                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  • If - Conditions
                                    • Kh_maxIndex Equal to 0
                                  • Then - Actions
                                    • Trigger - Turn off (This trigger)
                                  • Else - Actions
                                    • Set Kh_index = (Kh_index - 1)
                              • Else - Actions
  • Credit

    Thanks to:
    1. Guide_to_Jesus
    2. ZzdragonbeterzZ
    3. Obito Uchiha
    4. Valkemiere
    5. WILLTHEALMIGHTY
    6. JetFangInferno
    7. lolledlol
  • Last Message

    Hi, its been a while... :D
Go to the top

Changelog


v1.0
Initial version

Keywords:
Dragon Ball, Explosive, Long, Strong, GUI, MUI.
Contents

testmap (Map)

Reviews
22:54, 6th Jul 2014 PurgeandFire: Review: http://www.hiveworkshop.com/forums/2552196-post12.html Approved. Try to fix the screenshots in the map description when you can.

Moderator

M

Moderator

22:54, 6th Jul 2014
PurgeandFire: Review:
http://www.hiveworkshop.com/forums/2552196-post12.html

Approved. Try to fix the screenshots in the map description when you can.
 

Kazeon

Hosted Project: EC
Level 33
Joined
Oct 12, 2011
Messages
3,449
  • you don't need to do this when Kh_index equal to Kh_maxIndex. not really hurt
    • Set Kh_angle[Kh_index] = Kh_angle[Kh_maxIndex]
    • Set Kh_attachedEffect[Kh_index] = Kh_attachedEffect[Kh_maxIndex]
    • Set Kh_caster[Kh_index] = Kh_caster[Kh_maxIndex]
    • Set Kh_damagedGroup[Kh_index] = Kh_damagedGroup[Kh_maxIndex]
    • ...
      • Set Kh_stageID[Kh_index] = Kh_stageID[Kh_maxIndex]
      • Set Kh_startPoint[Kh_index] = Kh_startPoint[Kh_maxIndex]
  • you never set it, so why you remove? maybe the better question is, what is that variable for? you dont set it on cast neither
    • Custom script: call RemoveLocation(udg_Kh_startPoint[udg_Kh_index])
  • I guess pathability for missiles are always Fly
    • Set Kh_missilePathType = Flyability
    so just don't make it configurable, since it can causes spell looks like bugged in certain cases if user change it..
  • I don't know will this bugs or not, if not it's shorter
    • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • (Current order of Kh_caster[Kh_index]) Equal to (==) Kh_orderID
      • Then - Actions
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • Kh_stageID[Kh_index] Equal to (==) 3
          • Then - Actions
            • Set Kh_realTimer[Kh_index] = (Kh_realTimer[Kh_index] - Kh_timerSpeed)
              • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Kh_realTimer[Kh_index] Less than or equal to (<=) 0.00
                • Then - Actions
                  • Animation - Change Kh_caster[Kh_index]'s animation speed to Kh_throwAnimationSpeed[Kh_level[Kh_index]]% of its original speed
                  • Animation - Play Kh_caster[Kh_index]'s Kh_throwAnimation animation
                  • Set Kh_realTimer[Kh_index] = Kh_throwDelay[Kh_level[Kh_index]]
                  • Set Kh_stageID[Kh_index] = 4
                • Else - Actions
          • Else - Actions
            • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • Kh_stageID[Kh_index] Equal to (==) 4
              • Then - Actions
                • Set Kh_realTimer[Kh_index] = (Kh_realTimer[Kh_index] - Kh_timerSpeed)
                  • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Kh_realTimer[Kh_index] Less than or equal to (<=) 0.00
                    • Then - Actions
                      • Animation - Change Kh_caster[Kh_index]'s animation speed to 100.00% of its original speed
                      • Special Effect - Destroy Kh_attachedEffect[Kh_index]
                      • Set Kh_tempLoc = (Position of Kh_caster[Kh_index])
                      • Set Kh_startPoint[Kh_index] = (Kh_tempLoc offset by Kh_releaseEffectOffset towards Kh_angle[Kh_index] degrees)
                      • Unit - Create 1 Kh_releaseEffectDummy for Kh_owner[Kh_index] at Kh_tempLoc facing Kh_angle[Kh_index] degrees
                      • Set Kh_dummy = (Last created unit)
                      • Custom script: call SetUnitScale(udg_Kh_dummy, udg_Kh_releaseEffectScale[udg_Kh_level[udg_Kh_index]], 0, 0)
                      • Unit - Add a Kh_releaseEffectTime second Generic expiration timer to Kh_dummy
                      • Custom script: set udg_Kh_missileGroup[udg_Kh_index] = CreateGroup()
                      • Custom script: set udg_Kh_damagedGroup[udg_Kh_index] = CreateGroup()
                      • Set Kh_tempLoc2 = (Kh_tempLoc offset by Kh_missileStartOffset towards Kh_angle[Kh_index] degrees)
                      • Custom script: call RemoveLocation(udg_Kh_tempLoc)
                      • Unit - Create 1 Kh_missileHeadDummy for Kh_owner[Kh_index] at Kh_tempLoc2 facing Kh_angle[Kh_index] degrees
                      • Set Kh_missileHead[Kh_index] = (Last created unit)
                      • Custom script: call SetUnitScale(udg_Kh_missileHead[udg_Kh_index], udg_Kh_missileHeadScale[udg_Kh_level[udg_Kh_index]], 0, 0)
                      • Unit Group - Add Kh_missileHead[Kh_index] to Kh_missileGroup[Kh_index]
                      • Custom script: call RemoveLocation(udg_Kh_tempLoc2)
                      • Sound - Stop Kh_lastSound[Kh_index] Immediately
                      • Sound - Play Kh_releaseSound at 100.00% volume, attached to Kh_caster[Kh_index]
                      • Set Kh_reachedDistance[Kh_index] = Kh_missileStartOffset
                      • Set Kh_realTimer[Kh_index] = 0.00
                      • Set Kh_realTimer2[Kh_index] = Kh_missileEffectInterval
                      • Set Kh_stageID[Kh_index] = 1
                    • Else - Actions
              • Else - Actions
                • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • Kh_stageID[Kh_index] Equal to (==) 5
                  • Then - Actions
                    • Set Kh_angle[Kh_index] = Kh_angle[Kh_maxIndex]
                    • Set Kh_attachedEffect[Kh_index] = Kh_attachedEffect[Kh_maxIndex]
                    • Set Kh_caster[Kh_index] = Kh_caster[Kh_maxIndex]
                    • Set Kh_damagedGroup[Kh_index] = Kh_damagedGroup[Kh_maxIndex]
                    • Set Kh_lastSound[Kh_index] = Kh_lastSound[Kh_maxIndex]
                    • Set Kh_level[Kh_index] = Kh_level[Kh_maxIndex]
                    • Set Kh_missileGroup[Kh_index] = Kh_missileGroup[Kh_maxIndex]
                    • Set Kh_missileHead[Kh_index] = Kh_missileHead[Kh_maxIndex]
                    • Set Kh_owner[Kh_index] = Kh_owner[Kh_maxIndex]
                    • Set Kh_reachedDistance[Kh_index] = Kh_reachedDistance[Kh_maxIndex]
                    • Set Kh_realTimer[Kh_index] = Kh_realTimer[Kh_maxIndex]
                    • Set Kh_realTimer2[Kh_index] = Kh_realTimer2[Kh_maxIndex]
                    • Set Kh_stageID[Kh_index] = Kh_stageID[Kh_maxIndex]
                    • Set Kh_startPoint[Kh_index] = Kh_startPoint[Kh_maxIndex]
                    • Set Kh_maxIndex = (Kh_maxIndex - 1)
                      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • Kh_maxIndex Equal to (==) 0
                        • Then - Actions
                          • Trigger - Turn off (This trigger)
                        • Else - Actions
                          • Set Kh_index = (Kh_index - 1)
                  • Else - Actions
      • Else - Actions
        • Special Effect - Destroy Kh_attachedEffect[Kh_index]
        • Sound - Stop Kh_lastSound[Kh_index] Immediately
        • Set Kh_stageID[Kh_index] = 5
  • you could use less dummy units, just use one dummy if they have same movespeed, pitch, and roll angle, even you are somehow able to use only one dummy using Vexorian's dummy by using this feature
    call SetUnitAnimationByIndex(u, dex)
  • Spell is super cool and eye lollipop, coding is decent except things I have mentioned above
 
Level 7
Joined
Jan 3, 2014
Messages
59
  • you never set it, so why you remove? maybe the better question is, what is that variable for? you dont set it on cast neither
    • Custom script: call RemoveLocation(udg_Kh_startPoint[udg_Kh_index])
I did set that with the stage ID, when it enter stage ID 1 (creating missiles)

  • I guess pathability for missiles are always Fly
    • Set Kh_missilePathType = Flyability
    so just don't make it configurable, since it can causes spell looks like bugged in certain cases if user change it..
i will remove this asap...

  • I don't know will this bugs or not, if not it's shorter
    • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • (Current order of Kh_caster[Kh_index]) Equal to (==) Kh_orderID
      • Then - Actions
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • Kh_stageID[Kh_index] Equal to (==) 3
          • Then - Actions
            • Set Kh_realTimer[Kh_index] = (Kh_realTimer[Kh_index] - Kh_timerSpeed)
              • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Kh_realTimer[Kh_index] Less than or equal to (<=) 0.00
                • Then - Actions
                  • Animation - Change Kh_caster[Kh_index]'s animation speed to Kh_throwAnimationSpeed[Kh_level[Kh_index]]% of its original speed
                  • Animation - Play Kh_caster[Kh_index]'s Kh_throwAnimation animation
                  • Set Kh_realTimer[Kh_index] = Kh_throwDelay[Kh_level[Kh_index]]
                  • Set Kh_stageID[Kh_index] = 4
                • Else - Actions
          • Else - Actions
            • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • Kh_stageID[Kh_index] Equal to (==) 4
              • Then - Actions
                • Set Kh_realTimer[Kh_index] = (Kh_realTimer[Kh_index] - Kh_timerSpeed)
                  • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Kh_realTimer[Kh_index] Less than or equal to (<=) 0.00
                    • Then - Actions
                      • Animation - Change Kh_caster[Kh_index]'s animation speed to 100.00% of its original speed
                      • Special Effect - Destroy Kh_attachedEffect[Kh_index]
                      • Set Kh_tempLoc = (Position of Kh_caster[Kh_index])
                      • Set Kh_startPoint[Kh_index] = (Kh_tempLoc offset by Kh_releaseEffectOffset towards Kh_angle[Kh_index] degrees)
                      • Unit - Create 1 Kh_releaseEffectDummy for Kh_owner[Kh_index] at Kh_tempLoc facing Kh_angle[Kh_index] degrees
                      • Set Kh_dummy = (Last created unit)
                      • Custom script: call SetUnitScale(udg_Kh_dummy, udg_Kh_releaseEffectScale[udg_Kh_level[udg_Kh_index]], 0, 0)
                      • Unit - Add a Kh_releaseEffectTime second Generic expiration timer to Kh_dummy
                      • Custom script: set udg_Kh_missileGroup[udg_Kh_index] = CreateGroup()
                      • Custom script: set udg_Kh_damagedGroup[udg_Kh_index] = CreateGroup()
                      • Set Kh_tempLoc2 = (Kh_tempLoc offset by Kh_missileStartOffset towards Kh_angle[Kh_index] degrees)
                      • Custom script: call RemoveLocation(udg_Kh_tempLoc)
                      • Unit - Create 1 Kh_missileHeadDummy for Kh_owner[Kh_index] at Kh_tempLoc2 facing Kh_angle[Kh_index] degrees
                      • Set Kh_missileHead[Kh_index] = (Last created unit)
                      • Custom script: call SetUnitScale(udg_Kh_missileHead[udg_Kh_index], udg_Kh_missileHeadScale[udg_Kh_level[udg_Kh_index]], 0, 0)
                      • Unit Group - Add Kh_missileHead[Kh_index] to Kh_missileGroup[Kh_index]
                      • Custom script: call RemoveLocation(udg_Kh_tempLoc2)
                      • Sound - Stop Kh_lastSound[Kh_index] Immediately
                      • Sound - Play Kh_releaseSound at 100.00% volume, attached to Kh_caster[Kh_index]
                      • Set Kh_reachedDistance[Kh_index] = Kh_missileStartOffset
                      • Set Kh_realTimer[Kh_index] = 0.00
                      • Set Kh_realTimer2[Kh_index] = Kh_missileEffectInterval
                      • Set Kh_stageID[Kh_index] = 1
                    • Else - Actions
              • Else - Actions
                • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • Kh_stageID[Kh_index] Equal to (==) 5
                  • Then - Actions
                    • Set Kh_angle[Kh_index] = Kh_angle[Kh_maxIndex]
                    • Set Kh_attachedEffect[Kh_index] = Kh_attachedEffect[Kh_maxIndex]
                    • Set Kh_caster[Kh_index] = Kh_caster[Kh_maxIndex]
                    • Set Kh_damagedGroup[Kh_index] = Kh_damagedGroup[Kh_maxIndex]
                    • Set Kh_lastSound[Kh_index] = Kh_lastSound[Kh_maxIndex]
                    • Set Kh_level[Kh_index] = Kh_level[Kh_maxIndex]
                    • Set Kh_missileGroup[Kh_index] = Kh_missileGroup[Kh_maxIndex]
                    • Set Kh_missileHead[Kh_index] = Kh_missileHead[Kh_maxIndex]
                    • Set Kh_owner[Kh_index] = Kh_owner[Kh_maxIndex]
                    • Set Kh_reachedDistance[Kh_index] = Kh_reachedDistance[Kh_maxIndex]
                    • Set Kh_realTimer[Kh_index] = Kh_realTimer[Kh_maxIndex]
                    • Set Kh_realTimer2[Kh_index] = Kh_realTimer2[Kh_maxIndex]
                    • Set Kh_stageID[Kh_index] = Kh_stageID[Kh_maxIndex]
                    • Set Kh_startPoint[Kh_index] = Kh_startPoint[Kh_maxIndex]
                    • Set Kh_maxIndex = (Kh_maxIndex - 1)
                      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • Kh_maxIndex Equal to (==) 0
                        • Then - Actions
                          • Trigger - Turn off (This trigger)
                        • Else - Actions
                          • Set Kh_index = (Kh_index - 1)
                  • Else - Actions
      • Else - Actions
        • Special Effect - Destroy Kh_attachedEffect[Kh_index]
        • Sound - Stop Kh_lastSound[Kh_index] Immediately
        • Set Kh_stageID[Kh_index] = 5
it bugs, when the caster stop casting and the stage ID become 5, the trigger will not run all actions in stage 5 cuz it's inside the 'casting if' which means it will run if casting...

  • you could use less dummy units, just use one dummy if they have same movespeed, pitch, and roll angle, even you are somehow able to use only one dummy using Vexorian's dummy by using this feature
    call SetUnitAnimationByIndex(u, dex)
  • Spell is super cool and eye lollipop, coding is decent except things I have mentioned above
yeah, i just need a little rest before i do that, cuz i think it will be hard for me... will try it... thx...
 
Level 5
Joined
May 13, 2012
Messages
66
Playtested. No bugs found. Does not fire if die during channeling. Would be good to remove all SFX instantly if you decide to interrupt spell. Beam continues even if dead but new beam stops being generated.

May I modify your spell to include knockback?

+Rep: love the eyecandy!!! =D =D =D
 
In "Stage 4" inside your loop trigger:
  • Custom script: set udg_Kh_missileGroup[udg_Kh_index] = CreateGroup()
  • Custom script: set udg_Kh_damagedGroup[udg_Kh_index] = CreateGroup()
You could check first if this unitgroup == null, and only if true you should take usage of CreateGroup().

In "Stage 2" you don't need a variable for picked unit.

During it's way it's damaging units, but not destroying trees. But when it reaches target point it destroys both. Maybe it should be synced.

I don't see any checks for terrain cliff level. It's no problem for lower levels, but is it also wanted be able to pass higher cliffs?

When unit cancels the spell, it takes some time to completly remove the special effect. Is this delay intended?

Else I don't see any major things to remark. Also special effects look quite good.
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
The slash meant "or", sorry for the confusion.

EDIT: I should have used \ in there no? Sorry lol
 

Kazeon

Hosted Project: EC
Level 33
Joined
Oct 12, 2011
Messages
3,449
Excuse me, I was about to rob your explosion model :p

I've found that the animation isn't alright. I mean the ray part. In the beginning, the head is separated from the body, I don't know isn't it intentional or not.

I'm sorry I can't provide ss

You did a cool combination of effects there. The coding looks very decent too. I will leave 5/5 here :grin:
 
Top