Moderator
M
Moderator
|
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 )




-------- -------------------------------------------------------------------------------- --------
*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