• 🏆 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 Orb Manipulation v1.0

  • Like
Reactions: Malhorne and Ofel
Spell Name: Lightning Orb Manipulation v1.0



Spell Description:

231860-albums6686-picture75783.png

231860-albums6686-picture75782.png




Spell Screenshots

The caster will summon a lightning orb and gathers an energy orbs.

231860-albums6686-picture75785.png

231860-albums6686-picture75786.png



When it lasts the duration, it will explode and spread a high voltage orbs.

231860-albums6686-picture75784.png




The Spell Code [GUI].



  • LOM Configuration
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- -------------------------------------------------------------------------------- --------
      • -------- L I G H T N I N G O R B M A N I P U L A T I O N v 1 . 0 --------
      • -------- by jakeZinc --------
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The ability that used in the spell. Ability Name: Lightning Orb Manipulation --------
      • Set LOM_Ability = Lightning Orb Manipulation
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The lightning orb manipulation dummy that used as a role of orb and some stuffs. Dummy Unit Name: LOM Dummy --------
      • Set LOM_VexorianDummyType = LOM Dummy
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The model of the summoned orb. --------
      • Set LOM_OrbModel = Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The special effects of orb when it is explodes. --------
      • Set LOM_GroundEffect = Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The model of the energy orb --------
      • Set LOM_OrbEnergyModel = Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
      • -------- -------------------------------------------------------------------------------- --------
      • -------- I've just put a mini particle effect in the Gathered Fx, it can generates a heavy lag if you use some highly particle effects. --------
      • -------- This is the special effect of energy orb when it is gathered by the Orb. --------
      • Set LOM_OrbEnergyGatheredFx = Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
      • -------- -------------------------------------------------------------------------------- --------
      • -------- This is the special effects of orb when it starts the gathering. --------
      • Set LOM_OrbBirthFx = war3mapImported\Great Lightning.mdx
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The scale size of the orb. --------
      • Set LOM_OrbSize[1] = 1.35
      • Set LOM_OrbSize[2] = 1.80
      • Set LOM_OrbSize[3] = 2.25
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The gather interval seconds of energy orb. --------
      • -------- The limit is depends on the Timer Interval --------
      • Set LOM_OrbEnergyIntervalGather[1] = 0.20
      • Set LOM_OrbEnergyIntervalGather[2] = 0.18
      • Set LOM_OrbEnergyIntervalGather[3] = 0.16
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The transparency of the energy orb. --------
      • Set LOM_OrbEnergyTransparency[1] = 60.00
      • Set LOM_OrbEnergyTransparency[2] = 60.00
      • Set LOM_OrbEnergyTransparency[3] = 60.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The collision size of the energy orb. --------
      • Set LOM_OrbEnergyCollisionRad[1] = 40.00
      • Set LOM_OrbEnergyCollisionRad[2] = 45.00
      • Set LOM_OrbEnergyCollisionRad[3] = 50.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The acceleration speed of the energy orb. --------
      • Set LOM_OrbEnergyAcceleration[1] = 100.00
      • Set LOM_OrbEnergyAcceleration[2] = 100.00
      • Set LOM_OrbEnergyAcceleration[3] = 100.00
      • -------- -------------------------------------------------------------------------------- --------
      • Set LOM_OrbEnergyAttackType = Spells
      • Set LOM_OrbEnergyDamageType = Lightning
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The color of the energy orb, RGB. Max at 100%. --------
      • -------- Red --------
      • Set LOM_OrbEnergyColor[1] = 100.00
      • -------- Green --------
      • Set LOM_OrbEnergyColor[2] = 100.00
      • -------- Blue --------
      • Set LOM_OrbEnergyColor[3] = 100.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The scale size of the energy orb. --------
      • Set LOM_OrbEnergySize[1] = 0.70
      • Set LOM_OrbEnergySize[2] = 0.80
      • Set LOM_OrbEnergySize[3] = 0.90
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The explode radius of the Orb when it ends the duration of the orb. --------
      • Set LOM_ExplodeRadius[1] = 400.00
      • Set LOM_ExplodeRadius[2] = 450.00
      • Set LOM_ExplodeRadius[3] = 500.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The growing speed of the orb per gathered energy speed. --------
      • Set LOM_OrbSizeGrowSpeed[1] = 0.15
      • Set LOM_OrbSizeGrowSpeed[2] = 0.15
      • Set LOM_OrbSizeGrowSpeed[3] = 0.15
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The max size limit of the Orb. --------
      • Set LOM_OrbMaxLimitSize[1] = 6.00
      • Set LOM_OrbMaxLimitSize[2] = 7.00
      • Set LOM_OrbMaxLimitSize[3] = 8.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The height of the orb. --------
      • Set LOM_OrbHeight[1] = 125.00
      • Set LOM_OrbHeight[2] = 160.00
      • Set LOM_OrbHeight[3] = 185.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The height of the energy orb. --------
      • Set LOM_OrbEnergyHeight[1] = 125.00
      • Set LOM_OrbEnergyHeight[2] = 160.00
      • Set LOM_OrbEnergyHeight[3] = 185.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The duration of the orb. --------
      • Set LOM_OrbDuration[1] = 5.00
      • Set LOM_OrbDuration[2] = 6.50
      • Set LOM_OrbDuration[3] = 8.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- This is the minimum range where the energy orb spawning. --------
      • Set LOM_OrbEnergyMinRange[1] = 200.00
      • Set LOM_OrbEnergyMinRange[2] = 225.00
      • Set LOM_OrbEnergyMinRange[3] = 250.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- This is the maximum range where the energy orb spawning. --------
      • Set LOM_OrbEnergyMaxRange[1] = 350.00
      • Set LOM_OrbEnergyMaxRange[2] = 375.00
      • Set LOM_OrbEnergyMaxRange[3] = 400.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- This is the minimum speed of the energy orb travels to the orb. --------
      • Set LOM_OrbEnergyMinSpeed[1] = 250.00
      • Set LOM_OrbEnergyMinSpeed[2] = 350.00
      • Set LOM_OrbEnergyMinSpeed[3] = 450.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- This is the maximum speed of the energy orb travels to the orb. --------
      • Set LOM_OrbEnergyMaxSpeed[1] = 400.00
      • Set LOM_OrbEnergyMaxSpeed[2] = 500.00
      • Set LOM_OrbEnergyMaxSpeed[3] = 600.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The damage of the energy orb when it collides to the enemy units in the collision size. --------
      • Set LOM_OrbEnergyDamage[1] = 15.00
      • Set LOM_OrbEnergyDamage[2] = 25.00
      • Set LOM_OrbEnergyDamage[3] = 35.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The amount of energy orb when spawns at the Gather Interval Seconds. --------
      • Set LOM_OrbEnergyAmount[1] = 4
      • Set LOM_OrbEnergyAmount[2] = 4
      • Set LOM_OrbEnergyAmount[3] = 4
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The damage of the exploded orb. --------
      • Set LOM_ExplodeDamage[1] = 100.00
      • Set LOM_ExplodeDamage[2] = 200.00
      • Set LOM_ExplodeDamage[3] = 300.00
      • -------- -------------------------------------------------------------------------------- --------
      • Set LOM_ExplodeAttackType = Siege
      • Set LOM_ExplodeDamageType = Demolition
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The special effects of the units that been affected on the explosion stage. --------
      • Set LOM_ExplodePickedUnitFx = Abilities\Weapons\Bolt\BoltImpact.mdl
      • Set LOM_ExplodePickedUnitFxAttach = origin
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The explosion knockback range. --------
      • Set LOM_Explode_KB_Range[1] = 300.00
      • Set LOM_Explode_KB_Range[2] = 325.00
      • Set LOM_Explode_KB_Range[3] = 350.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The explosion knockback speed. --------
      • Set LOM_Explode_KB_Speed[1] = 400.00
      • Set LOM_Explode_KB_Speed[2] = 450.00
      • Set LOM_Explode_KB_Speed[3] = 500.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The explosion knockback acceleration speed. --------
      • Set LOM_Explode_KB_Acceleration[1] = -150.00
      • Set LOM_Explode_KB_Acceleration[2] = -125.00
      • Set LOM_Explode_KB_Acceleration[3] = -100.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The explosion knockback collision size of the affected knocbacked units. --------
      • Set LOM_Explode_KB_CollisionArea[1] = 75.00
      • Set LOM_Explode_KB_CollisionArea[2] = 75.00
      • Set LOM_Explode_KB_CollisionArea[3] = 75.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The explosion knockback special effects and attachment of the effect. --------
      • Set LOM_Explode_KB_Fx = Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
      • Set LOM_Explode_KB_FxAttach = chest
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The explosion knockback max zOffset or max height of the affected units in the explosion. --------
      • Set LOM_Explode_KB_ZHeight[1] = 200.00
      • Set LOM_Explode_KB_ZHeight[2] = 225.00
      • Set LOM_Explode_KB_ZHeight[3] = 250.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The explosion knockback damage per slide. --------
      • Set LOM_Explode_KB_Damage[1] = 25.00
      • Set LOM_Explode_KB_Damage[2] = 35.00
      • Set LOM_Explode_KB_Damage[3] = 45.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- Destroy trees in the explosion knocback? True = Yes and False = No. --------
      • Set LOM_Explode_KB_DestroyTrees = True
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The amount of the high voltage orb when it spreads into the explosion --------
      • Set LOM_SpreadOrb_Amount[1] = 6
      • Set LOM_SpreadOrb_Amount[2] = 8
      • Set LOM_SpreadOrb_Amount[3] = 10
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The model of the high voltage orb when it spreads into the explosion --------
      • Set LOM_SpreadOrbModel = war3mapImported\LightningSphere_FX.mdl
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The size of the high voltage orb when it spreads into the explosion --------
      • -------- The custom model does not support size so the scale is 1.00 only, of course you can configurable the model anything you want ^^. --------
      • Set LOM_SpreadOrb_Size[1] = 1.00
      • Set LOM_SpreadOrb_Size[2] = 1.00
      • Set LOM_SpreadOrb_Size[3] = 1.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The height of the high voltage orb when it spreads into the explosion --------
      • Set LOM_SpreadOrb_Height[1] = 125.00
      • Set LOM_SpreadOrb_Height[2] = 160.00
      • Set LOM_SpreadOrb_Height[3] = 185.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The max range of the high voltage orb when spread and travels. --------
      • Set LOM_SpreadOrb_Range[1] = 400.00
      • Set LOM_SpreadOrb_Range[2] = 450.00
      • Set LOM_SpreadOrb_Range[3] = 500.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The speed of the high voltage orb when spread and travels. --------
      • Set LOM_SpreadOrb_Speed[1] = 500.00
      • Set LOM_SpreadOrb_Speed[2] = 550.00
      • Set LOM_SpreadOrb_Speed[3] = 600.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The acceleration speed of the high voltage orb when spread and travels. --------
      • Set LOM_SpreadOrb_Acceleration[1] = 100.00
      • Set LOM_SpreadOrb_Acceleration[2] = 100.00
      • Set LOM_SpreadOrb_Acceleration[3] = 100.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The collision area of the high voltage orb when spread and travels. --------
      • Set LOM_SpreadOrb_Collision[1] = 200.00
      • Set LOM_SpreadOrb_Collision[2] = 200.00
      • Set LOM_SpreadOrb_Collision[3] = 200.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The damage of the high voltage orb when spread and travels. --------
      • Set LOM_SpreadOrb_Damage[1] = 150.00
      • Set LOM_SpreadOrb_Damage[2] = 200.00
      • Set LOM_SpreadOrb_Damage[3] = 250.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- Destroy trees in the collision area of the high voltage orb? True = Yes and False = No. --------
      • Set LOM_SpreadOrb_DestroyTrees = True
      • -------- -------------------------------------------------------------------------------- --------
      • Set LOM_SpreadOrbAttackType = Spells
      • Set LOM_SpreadOrbDamageType = Lightning
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The special effects of the high voltage orb when explodes. --------
      • Set LOM_SpreadOrb_EndFx = Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The damage of the high voltage orb when explodes in the collision area. --------
      • Set LOM_SpreadOrb_BlastDamage[1] = 100.00
      • Set LOM_SpreadOrb_BlastDamage[2] = 200.00
      • Set LOM_SpreadOrb_BlastDamage[3] = 300.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The overall max radius of the spell when casted. --------
      • Set LOM_Radius[1] = 400.00
      • Set LOM_Radius[2] = 450.00
      • Set LOM_Radius[3] = 500.00
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The special effects of the affected units in the birth of the orb. --------
      • Set LOM_UFx = Abilities\Weapons\Bolt\BoltImpact.mdl
      • Set LOM_UFx_Attach = origin
      • -------- -------------------------------------------------------------------------------- --------
      • -------- The damage of the affected units in the birth of the orb. --------
      • Set LOM_Damage[1] = 100.00
      • Set LOM_Damage[2] = 200.00
      • Set LOM_Damage[3] = 300.00
      • -------- -------------------------------------------------------------------------------- --------
      • Set LOM_AttackType = Magic
      • Set LOM_DamageType = Lightning
      • -------- -------------------------------------------------------------------------------- --------
      • -------- 0.03 is Recommended for smooth spell. When it does lag then you can set this to 0.04 but it is not recommended when you use a 0.05 above. --------
      • Set LOM_TimerInterval = 0.03
      • -------- -------------------------------------------------------------------------------- --------
      • -------- DON'T TOUCH THE LINE BELOW. --------
      • Trigger - Add to LOM Loop <gen> the event (Time - Every LOM_TimerInterval seconds of game time)
      • -------- -------------------------------------------------------------------------------- --------
  • LOM Execution
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to LOM_Ability
    • Actions
      • -------- -------------------------------- --------
      • -------- Local variables x/y --------
      • Custom script: local real x = GetSpellTargetX ( )
      • Custom script: local real y = GetSpellTargetY ( )
      • -------- Indexing --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • LOM_MaxIndex Equal to 0
        • Then - Actions
          • Trigger - Turn on LOM Loop <gen>
        • Else - Actions
      • -------- -------------------------------- --------
      • -------- Settings --------
      • Set LOM_MaxIndex = (LOM_MaxIndex + 1)
      • Set LOM_Caster[LOM_MaxIndex] = (Triggering unit)
      • Set LOM_Level[LOM_MaxIndex] = (Level of LOM_Ability for LOM_Caster[LOM_MaxIndex])
      • Set LOM_Player[LOM_MaxIndex] = (Triggering player)
      • -------- -------------------------------- --------
      • Custom script: set udg_LOM_OrbDummy[ udg_LOM_MaxIndex ] = CreateUnit( udg_LOM_Player[ udg_LOM_MaxIndex ], udg_LOM_VexorianDummyType, x, y, 0 )
      • Custom script: call SetUnitScale( udg_LOM_OrbDummy[ udg_LOM_MaxIndex], udg_LOM_OrbSize[ udg_LOM_Level [ udg_LOM_MaxIndex ] ], 0, 0 )
      • Animation - Change LOM_OrbDummy[LOM_MaxIndex] flying height to LOM_OrbHeight[LOM_Level[LOM_MaxIndex]] at 0.00
      • Custom script: call DestroyEffect( AddSpecialEffect( udg_LOM_OrbBirthFx, x, y ) )
      • Custom script: set udg_LOM_OrbModelCache[ udg_LOM_MaxIndex ] = AddSpecialEffectTarget( udg_LOM_OrbModel, udg_LOM_OrbDummy[ udg_LOM_MaxIndex ], "origin" )
      • -------- -------------------------------- --------
      • -------- Cache Real Timers. --------
      • Set LOM_OrbTimerCache[LOM_MaxIndex] = 0.00
      • Set LOM_OE_IntervalGatherCache[LOM_MaxIndex] = 0.00
      • Set LOM_OrbGrowSizeCache[LOM_MaxIndex] = LOM_OrbSize[LOM_Level[LOM_MaxIndex]]
      • -------- -------------------------------- --------
      • -------- This code maintains the efficiency and increase the usage of local real x/y in the spell. --------
      • -------- -------------------------------- --------
      • Custom script: call GroupEnumUnitsInRange( bj_lastCreatedGroup, x, y, udg_LOM_Radius[ udg_LOM_Level[ udg_LOM_MaxIndex ] ], null )
      • Custom script: loop
      • Custom script: set udg_LOM_U = FirstOfGroup( bj_lastCreatedGroup )
      • Custom script: exitwhen udg_LOM_U == null
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (LOM_U belongs to an enemy of LOM_Player[LOM_MaxIndex]) Equal to True
          • (LOM_U is dead) Not equal to True
          • (LOM_U is Magic Immune) Not equal to True
        • Then - Actions
          • Unit - Cause LOM_Caster[LOM_MaxIndex] to damage LOM_U, dealing LOM_Damage[LOM_Level[LOM_MaxIndex]] damage of attack type LOM_AttackType and damage type LOM_DamageType
          • Custom script: call DestroyEffect( AddSpecialEffectTarget( udg_LOM_UFx, udg_LOM_U, udg_LOM_UFx_Attach ) )
        • Else - Actions
      • Custom script: call GroupRemoveUnit( bj_lastCreatedGroup, udg_LOM_U )
      • Custom script: endloop
      • -------- -------------------------------- --------
  • LOM Loop
    • Events
    • Conditions
    • Actions
      • For each (Integer LOM_CurrentIndex) from 1 to LOM_MaxIndex, do (Actions)
        • Loop - Actions
          • -------- -------------------------------------------------------------------------------- --------
          • Set LOM_OrbTimerCache[LOM_CurrentIndex] = (LOM_OrbTimerCache[LOM_CurrentIndex] + LOM_TimerInterval)
          • Set LOM_OE_IntervalGatherCache[LOM_CurrentIndex] = (LOM_OE_IntervalGatherCache[LOM_CurrentIndex] + LOM_TimerInterval)
          • Set LOM_OrbPosition = (Position of LOM_OrbDummy[LOM_CurrentIndex])
          • -------- -------------------------------------------------------------------------------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • LOM_OE_IntervalGatherCache[LOM_CurrentIndex] Greater than or equal to LOM_OrbEnergyIntervalGather[LOM_Level[LOM_CurrentIndex]]
            • Then - Actions
              • -------- -------------------------------------------------------------------------------- --------
              • Set LOM_OE_IntervalGatherCache[LOM_CurrentIndex] = 0.00
              • Set LOM_OrbGrowSizeCache[LOM_CurrentIndex] = (LOM_OrbGrowSizeCache[LOM_CurrentIndex] + LOM_OrbSizeGrowSpeed[LOM_Level[LOM_CurrentIndex]])
              • -------- -------------------------------------------------------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • LOM_OrbGrowSizeCache[LOM_CurrentIndex] Less than or equal to LOM_OrbMaxLimitSize[LOM_Level[LOM_CurrentIndex]]
                • Then - Actions
                  • Custom script: call SetUnitScale( udg_LOM_OrbDummy[ udg_LOM_CurrentIndex], udg_LOM_OrbGrowSizeCache[ udg_LOM_CurrentIndex ], 0, 0 )
                • Else - Actions
              • -------- -------------------------------------------------------------------------------- --------
              • -------- Phase 1: Creating Energy Orbs --------
              • -------- -------------------------------------------------------------------------------- --------
              • For each (Integer LOM_OrbEnergyIntegerCache) from 1 to LOM_OrbEnergyAmount[LOM_Level[LOM_CurrentIndex]], do (Actions)
                • Loop - Actions
                  • -------- -------------------------------------------------------------------------------- --------
                  • Set LOM_OrbEnergySpawnLoc = (LOM_OrbPosition offset by (Random real number between LOM_OrbEnergyMinRange[LOM_Level[LOM_CurrentIndex]] and LOM_OrbEnergyMaxRange[LOM_Level[LOM_CurrentIndex]]) towards (Random real number between 0.00 and 360.00) degrees)
                  • Unit - Create 1 LOM_VexorianDummyType for LOM_Player[LOM_CurrentIndex] at LOM_OrbEnergySpawnLoc facing Default building facing degrees
                  • Set LOM_OrbEnergyUnit = (Last created unit)
                  • Custom script: call SetUnitScale( udg_LOM_OrbEnergyUnit, udg_LOM_OrbEnergySize[ udg_LOM_Level [ udg_LOM_CurrentIndex ] ], 0, 0 )
                  • Animation - Change LOM_OrbEnergyUnit flying height to LOM_OrbEnergyHeight[LOM_Level[LOM_CurrentIndex]] at 0.00
                  • Animation - Change LOM_OrbEnergyUnit's vertex coloring to (LOM_OrbEnergyColor[1]%, LOM_OrbEnergyColor[2]%, LOM_OrbEnergyColor[3]%) with LOM_OrbEnergyTransparency[LOM_Level[LOM_CurrentIndex]]% transparency
                  • -------- -------------------------------------------------------------------------------- --------
                  • Set LOM_OrbEnergyPosition = (Position of LOM_OrbEnergyUnit)
                  • Set KB3D_Unit = LOM_OrbEnergyUnit
                  • Set KB3D_Range = (Distance between LOM_OrbEnergyPosition and LOM_OrbPosition)
                  • Set LOM_OrbEnergyRealCache = (Random real number between LOM_OrbEnergyMinSpeed[LOM_Level[LOM_CurrentIndex]] and LOM_OrbEnergyMaxSpeed[LOM_Level[LOM_CurrentIndex]])
                  • Set KB3D_Speed = LOM_OrbEnergyRealCache
                  • Set KB3D_Angle = (Angle from LOM_OrbEnergyPosition to LOM_OrbPosition)
                  • Set KB3D_EndFx = LOM_OrbEnergyGatheredFx
                  • Set KB3D_EndwhenDead = True
                  • Set KB3D_KillatEnd = True
                  • Set KB3D_Accel = LOM_OrbEnergyAcceleration[LOM_Level[LOM_CurrentIndex]]
                  • Set KB3D_AllowOutSiding = False
                  • Set KB3D_AoE = LOM_OrbEnergyCollisionRad[LOM_Level[LOM_CurrentIndex]]
                  • Set KB3D_AttackType = LOM_OrbEnergyAttackType
                  • Set KB3D_DamageType = LOM_OrbEnergyDamageType
                  • Set KB3D_Damager = LOM_Caster[LOM_CurrentIndex]
                  • Set KB3D_DestroyTree = False
                  • Set KB3D_DisableUnit = True
                  • Set KB3D_FaceAngle = True
                  • Set KB3D_Fx_Attach = origin
                  • Set KB3D_iKB = False
                  • Set KB3D_LineDamage = LOM_OrbEnergyDamage[LOM_Level[LOM_CurrentIndex]]
                  • Set KB3D_JumpOverCliff = True
                  • Set KB3D_TrailFx = LOM_OrbEnergyModel
                  • Set KB3D_UnpathableStop = False
                  • Custom script: call TriggerEvaluate( udg_KB3D_Registration )
                  • -------- -------------------------------------------------------------------------------- --------
                  • -------- Remove Leaks --------
                  • Custom script: call RemoveLocation( udg_LOM_OrbEnergyPosition )
                  • Custom script: call RemoveLocation( udg_LOM_OrbEnergySpawnLoc )
                  • -------- -------------------------------------------------------------------------------- --------
            • Else - Actions
          • -------- -------------------------------------------------------------------------------- --------
          • -------- Phase 2: Explode Orb. --------
          • -------- -------------------------------------------------------------------------------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • LOM_OrbTimerCache[LOM_CurrentIndex] Greater than or equal to LOM_OrbDuration[LOM_Level[LOM_CurrentIndex]]
            • Then - Actions
              • -------- -------------------------------------------------------------------------------- --------
              • Unit - Create 1 LOM_VexorianDummyType for LOM_Player[LOM_CurrentIndex] at LOM_OrbPosition facing Default building facing degrees
              • Set LOM_GroundDummy = (Last created unit)
              • Animation - Change LOM_GroundDummy's size to ((LOM_ExplodeRadius[LOM_Level[LOM_CurrentIndex]] x 0.53)%, 0.00%, 0.00%) of its original size
              • Custom script: call DestroyEffect( AddSpecialEffectTarget( udg_LOM_GroundEffect, udg_LOM_GroundDummy, "origin" ) )
              • Unit - Add a 1.00 second Generic expiration timer to LOM_GroundDummy
              • -------- -------------------------------------------------------------------------------- --------
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within LOM_ExplodeRadius[LOM_Level[LOM_CurrentIndex]] of LOM_OrbPosition) and do (Actions)
                • Loop - Actions
                  • Set LOM_Picked = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (LOM_Picked belongs to an enemy of LOM_Player[LOM_CurrentIndex]) Equal to True
                      • (LOM_Picked is dead) Not equal to True
                      • (LOM_Picked is A structure) Not equal to True
                      • (LOM_Picked is A flying unit) Not equal to True
                      • (LOM_Picked is Mechanical) Not equal to True
                      • (LOM_Picked is Magic Immune) Not equal to True
                      • (LOM_Picked is Resistant) Not equal to True
                    • Then - Actions
                      • Unit - Cause LOM_Caster[LOM_CurrentIndex] to damage LOM_Picked, dealing LOM_ExplodeDamage[LOM_Level[LOM_CurrentIndex]] damage of attack type LOM_ExplodeAttackType and damage type LOM_ExplodeDamageType
                      • Custom script: call DestroyEffect( AddSpecialEffectTarget( udg_LOM_ExplodePickedUnitFx, udg_LOM_Picked, udg_LOM_ExplodePickedUnitFxAttach ) )
                      • Set LOM_PickedPos = (Position of LOM_Picked)
                      • Set KB3D_Unit = LOM_Picked
                      • Set KB3D_Range = LOM_Explode_KB_Range[LOM_Level[LOM_CurrentIndex]]
                      • Set KB3D_Speed = LOM_Explode_KB_Speed[LOM_Level[LOM_CurrentIndex]]
                      • Set KB3D_Angle = (Angle from LOM_OrbPosition to LOM_PickedPos)
                      • Set KB3D_Accel = LOM_Explode_KB_Acceleration[LOM_Level[LOM_CurrentIndex]]
                      • Set KB3D_AoE = LOM_Explode_KB_CollisionArea[LOM_Level[LOM_CurrentIndex]]
                      • Set KB3D_AttackType = LOM_ExplodeAttackType
                      • Set KB3D_DamageType = LOM_ExplodeDamageType
                      • Set KB3D_Damager = LOM_Caster[LOM_CurrentIndex]
                      • Set KB3D_DestroyTree = LOM_Explode_KB_DestroyTrees
                      • Set KB3D_Fx = LOM_Explode_KB_Fx
                      • Set KB3D_Fx_Attach = LOM_Explode_KB_FxAttach
                      • Set KB3D_JumpOverCliff = True
                      • Set KB3D_UnpathableStop = True
                      • Set KB3D_Zoffset = LOM_Explode_KB_ZHeight[LOM_Level[LOM_CurrentIndex]]
                      • Set KB3D_LoopDamage = LOM_Explode_KB_Damage[LOM_Level[LOM_CurrentIndex]]
                      • Custom script: call TriggerEvaluate( udg_KB3D_Registration )
                      • Custom script: call RemoveLocation( udg_LOM_PickedPos )
                    • Else - Actions
              • -------- -------------------------------------------------------------------------------- --------
              • -------- Phase 3: Creating High Voltage Orbs. --------
              • -------- -------------------------------------------------------------------------------- --------
              • For each (Integer LOM_SpreadOrb_IntegerCache) from 1 to LOM_SpreadOrb_Amount[LOM_Level[LOM_CurrentIndex]], do (Actions)
                • Loop - Actions
                  • -------- -------------------------------------------------------------------------------- --------
                  • Set LOM_SpreadOrb_Angle = (LOM_SpreadOrb_Angle + (360.00 / (Real(LOM_SpreadOrb_Amount[LOM_Level[LOM_CurrentIndex]]))))
                  • Set LOM_SpreadOrbSpawnLoc = (LOM_OrbPosition offset by 0.00 towards LOM_SpreadOrb_Angle degrees)
                  • Unit - Create 1 LOM_VexorianDummyType for LOM_Player[LOM_CurrentIndex] at LOM_SpreadOrbSpawnLoc facing Default building facing degrees
                  • Set LOM_SpreadOrbUnit = (Last created unit)
                  • Custom script: call SetUnitScale( udg_LOM_SpreadOrbUnit, udg_LOM_SpreadOrb_Size[ udg_LOM_Level [ udg_LOM_CurrentIndex ] ], 0, 0 )
                  • Animation - Change LOM_SpreadOrbUnit flying height to LOM_SpreadOrb_Height[LOM_Level[LOM_CurrentIndex]] at 0.00
                  • -------- -------------------------------------------------------------------------------- --------
                  • Set KB3D_Unit = LOM_SpreadOrbUnit
                  • Set KB3D_Range = LOM_SpreadOrb_Range[LOM_Level[LOM_CurrentIndex]]
                  • Set KB3D_Speed = LOM_SpreadOrb_Speed[LOM_Level[LOM_CurrentIndex]]
                  • Set KB3D_Angle = LOM_SpreadOrb_Angle
                  • Set KB3D_EndFx = LOM_SpreadOrb_EndFx
                  • Set KB3D_AoEEndDamage = 100.00
                  • Set KB3D_EndwhenDead = True
                  • Set KB3D_KillatEnd = True
                  • Set KB3D_Accel = LOM_SpreadOrb_Acceleration[LOM_Level[LOM_CurrentIndex]]
                  • Set KB3D_AllowOutSiding = False
                  • Set KB3D_AoE = LOM_SpreadOrb_Collision[LOM_Level[LOM_CurrentIndex]]
                  • Set KB3D_Arc = (KB3D_Speed / 175.00)
                  • Set KB3D_AttackType = LOM_SpreadOrbAttackType
                  • Set KB3D_DamageType = LOM_SpreadOrbDamageType
                  • Set KB3D_Damager = LOM_Caster[LOM_CurrentIndex]
                  • Set KB3D_DestroyTree = LOM_SpreadOrb_DestroyTrees
                  • Set KB3D_DisableUnit = True
                  • Set KB3D_FaceAngle = True
                  • Set KB3D_Fx_Attach = origin
                  • Set KB3D_iKB = False
                  • Set KB3D_AoEDamage = LOM_SpreadOrb_Damage[LOM_Level[LOM_CurrentIndex]]
                  • Set KB3D_JumpOverCliff = True
                  • Set KB3D_TrailFx = LOM_SpreadOrbModel
                  • Set KB3D_UnpathableStop = False
                  • Set KB3D_D_STRUCTURE = True
                  • Set KB3D_D_MECHANICAL = True
                  • Custom script: call TriggerEvaluate( udg_KB3D_Registration )
                  • Custom script: call RemoveLocation( udg_LOM_SpreadOrbSpawnLoc )
              • -------- -------------------------------------------------------------------------------- --------
              • -------- Removed attached effect and kill the orb. --------
              • Unit - Kill LOM_OrbDummy[LOM_CurrentIndex]
              • Special Effect - Destroy LOM_OrbModelCache[LOM_CurrentIndex]
              • -------- -------------------------------------------------------------------------------- --------
              • -------- Recycling and Nullified Small Leaks. --------
              • Set LOM_Caster[LOM_CurrentIndex] = LOM_Caster[LOM_MaxIndex]
              • Set LOM_Level[LOM_CurrentIndex] = LOM_Level[LOM_MaxIndex]
              • Set LOM_OrbDummy[LOM_CurrentIndex] = LOM_OrbDummy[LOM_MaxIndex]
              • Set LOM_OrbTimerCache[LOM_CurrentIndex] = LOM_OrbTimerCache[LOM_MaxIndex]
              • Set LOM_OrbModelCache[LOM_CurrentIndex] = LOM_OrbModelCache[LOM_MaxIndex]
              • Set LOM_OrbGrowSizeCache[LOM_CurrentIndex] = LOM_OrbGrowSizeCache[LOM_MaxIndex]
              • Set LOM_Player[LOM_CurrentIndex] = LOM_Player[LOM_MaxIndex]
              • Set LOM_OE_IntervalGatherCache[LOM_CurrentIndex] = LOM_OE_IntervalGatherCache[LOM_MaxIndex]
              • -------- -------------------------------------------------------------------------------- --------
              • Custom script: set udg_LOM_Caster[ udg_LOM_MaxIndex ] = null
              • Custom script: set udg_LOM_OrbDummy[ udg_LOM_MaxIndex ] = null
              • -------- -------------------------------------------------------------------------------- --------
              • Set LOM_MaxIndex = (LOM_MaxIndex - 1)
              • Set LOM_CurrentIndex = (LOM_CurrentIndex - 1)
              • -------- -------------------------------------------------------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • LOM_MaxIndex Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • -------- -------------------------------------------------------------------------------- --------
            • Else - Actions
          • -------- -------------------------------------------------------------------------------- --------
          • -------- Remove Leaks. --------
          • Custom script: call RemoveLocation( udg_LOM_OrbPosition )
          • -------- -------------------------------------------------------------------------------- --------
Information:

JASS:
*Spell Name: Lightning Orb Manipulation v1.0 = Initial Released.

*Spell Author/Creator: by jakeZinc.

*Spell Version: v1.0 =  Initial Upload at www.hiveworkshop.com

*Spell Purpose: Uses KB3D System v1.7.1. An ultimate lightning spell that reduce outnumbered enemies
                in the radius or area. Can do a massively damage and knocback in the area when
                the spell is finished.
                

*Spell Idea: None.

*Spell Requested: None.


*Spell Features v1.0 = * Multi- Unit Instanceabilty ( MUI Spell )
                       * Leakless
                       * Readability
                       * Indexed Array
                       * KB3D System


How to Import/Install:
=Preparing for import=
Go to:
File
Preferences
General
Check the box labelled ''Automatically create unknown variables while pasting trigger data''


=Speeding up import of object data-
Go to:
Window
make sure the 'brush list' is unchecked.
You can swap between my map and your map.


=Main importing= 

Difficuly in Importing:

"Easy" = 1 to 3 Copy - Paste Required
"Medium" = 4 to 6 Copy - Paste Required
"Hard" = 7 above, Copy - Paste Required

Spell Importing Difficulty: 'Medium'
    
    In order of importing: Copy --> Paste to your Map.
    
    Object Editor - Abilities - Lightning Orb Manipulation
    Object Editor - Units - LOM Dummy ( Dummy Unit )
    Trigger Editor - Folder - Lightning Orb Manipulation v1.0
    Trigger Editor - Folder - Knockback 3D v1.7.1. ( Not needed if you have already one )
    
    
    Import/Export Files:    
    
    Required:
    You must import the dummy model by Vexorian in Import Manager ( F12 )
    Optional:
    Import the war3mapImported\Great Lightning.mdx, Great Lightning Model
    Import the war3mapImported\LightningSphere_FX.mdx, Lightning Sphere Model
    Import the Icon: BTN and DISBTN_ ThunderGlobe, Lightning Orb Manipulation Icon.
    
* Notes:
    
    Note #1: Make sure to Configure the " LOM Configuration " trigger in the LOM_Ability and LOM_VexorianDummyType.
    
    Note #2: IF your map has already KnockBack 3D System then dont copy the KnockBack 3D System.
    
    Note #3: If the impact model effect didnt show up in the spell then make sure that you copy the "LOM Dummy" in your
             map and make sure you import the Dummy Model by Vexorian.
    
    Note #4: Report to the Author If you found a bug or tell the author if the spell is not working.
    
    Note #5: The spell will work if you follow the notes and the Main Importing Instructions.
    
    Note #6: Enjoy
     



=Modification=
All Modifications should be done in the Configuration Trigger, each configuration is explained and elaborated.


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

Pls Give credits if you use this spell in your map.

Credits: Vexorian ( Dummy.mdl )
Credits: Jad ( KB3D System v1.7.1 )
Credits: PeeKay ( For the Lightning Sphere Model )
Credits: Tranquil ( For the Great Lightning Model )
Credits: HellX - Magnus ( For the Great Lightning Icon! )


Sincerely,
    jakeZinc


KB3D System v1.7.1


Author's Note: If you found bugs or suggestions pls don't be afraid to post

Keywords:
jakeZinc, MUI, GUI, Lightning Orb Manipulation, Lightning, Orb of Lightning, Gather, High Voltage, Energy Orb.
Contents

Just another Warcraft III map (Map)

Reviews
Lightning Orb Manipulation v1.0 | Reviewed by Maker | 00.00.13 Concept[/COLOR]] The spell is original and useful Triggers[/COLOR]] Good configuration options and importing instructions Leakless, MUI Share the location variables...

Moderator

M

Moderator


Lightning Orb Manipulation v1.0 | Reviewed by Maker | 00.00.13

[COLOR="gray"

[COLOR="gray"

[COLOR="gray"

[COLOR="gray"

[COLOR="gray"

Concept[/COLOR]]
126248-albums6177-picture66521.png
  • The spell is original and useful
Triggers[/COLOR]]
126248-albums6177-picture66521.png
  • Good configuration options and importing instructions
  • Leakless, MUI
126248-albums6177-picture66523.png
  • Share the location variables between phases
Objects[/COLOR]]
126248-albums6177-picture66521.png
  • No unneeded objects, good configuration
126248-albums6177-picture66523.png
  • The spell uses an animation the caster does not have
  • The learn tooltip text is missing the current level
Effects[/COLOR]]
126248-albums6177-picture66521.png
  • The effects follow the concept and they look good
126248-albums6177-picture66523.png
  • You could fade in the small orbs for smoother effect
  • You could add some randomness to the medium sized orbs that appear
    when the main orb explodes
Rating[/COLOR]]
CONCEPTTRIGGERSOBJECTSEFFECTSRATINGSTATUS
126248-albums6177-picture75360.jpg
126248-albums6177-picture75360.jpg
126248-albums6177-picture75359.jpg
126248-albums6177-picture75359.jpg
126248-albums6177-picture75359.jpg
APPROVED
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
1.0 Review

Personal Words

Review

Suggestions

Rating

Judgement

Note

The Spell is INSANE the Effects are Epic, the Concept is Perfect!
You Have no Trigger Flaws, the SFxs are Really perfect, the Concept of the spell is really cool, it doesn't generate Lag or FPS drop, tooltip is good, documentation is great, i can't give a lower rating ...
Hell NO
225233-albums6523-picture74073.jpg
225233-albums6523-picture74103.jpg
If You want me to review an Update of This Spell, Please Notify me this by VM or PM
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
Oh, forgot to tell you, DON'T add Fxs with the line damage, even when KB3D will be updated, DO NOT do that the spell will not get much better (PS: you can add an effect for the line damage but it HAS to be TINY to not ruin the other SFXs)
 
Level 19
Joined
Mar 18, 2012
Messages
1,716
The custom model does not support size so the scale is 1.00 only, of course you can configurable the model anything you want ^^
It should be scale-able along with the dummy unit oO.

This is really well done, configuration aswell as execution. Its fun to cast and has great effects. :)

There is nothing wrong inside the code, documentation and readability is good.
I'll rate this fancy spell as Highly Recommended.
 
Top