- Joined
- Feb 9, 2009
- Messages
- 1,814
| PREVIEW:
|
| DESCRIPTION: |
Lost Entities Configuration

Events


Map initialization

Conditions

Actions


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- UNDECLARED VARIABLES FIELD --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


Set LE_X[0] = LE_X[0]


Set LE_Y[0] = LE_Y[0]


Set LE_Window[0] = LE_Window[0]


-------- ^ DELETE AFTER IMPORTING ^ --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- The interval of the periodic is solved by ( second / frames per second ). * Recommended Value: ( 1 / 30 ) for default performance. --------


Set LE_Periodic = Lost Entities Periodic <gen>


-------- ^ Set this to: Lost Entities Periodic <gen> --------


Set LE_PeriodicInterval = (1.00 / 60.00)


-------- ^Modify at your own risk: Changing the frames per second can impact performance. --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- SPELL CONFIGURATION FIELD --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- OBJECT EDITOR --------


-------- The spell or ability used in the codes. ( Strictly Import the Lost Entities Ability ) --------


Set LE_Ability = Lost Entities


-------- --------


-------- The dummy unit used in the codes. ( Strictly Import the Lost Entities Dummy Unit ) --------


Set LE_DummyType = Lost Entities Dummy


-------- ^ Tip: You can also select one of the dummies already existed or created in your map. ( Make sure dummy.mdx is the model used in that dummy unit and the unit's data value must be similar to it. ) --------


-------- ^ This tip is useful for sharing dummy type units. ( Saves you 1 Unit Type in your object editor ) ( As long as they have similar object data values. ) --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- * DATA ARRAY VALUES: [ 1 ] = Level 1, [ 2 ] = Level 2, [ 3 ] = Level 3 ..., You can increase the array value if you want to add the levels of the ability in an integer consecutive order. --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- SPELL DATA --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- The maximum level of the ability or the number of levels in Lost Entities Ability. --------


Set LE_MaxLevel = 3


-------- ^ Modify at your own risk: Must be equal to the amount of levels in Lost Entities Ability in OBJECT EDITOR. --------


-------- --------


-------- The radius of the ability. --------


Set LE_Radius[1] = 200.00


Set LE_Radius[2] = 200.00


Set LE_Radius[3] = 200.00


-------- --------


-------- The activation time of the portal to release the lost entities. --------


Set LE_ActivationDelay[1] = 0.75


Set LE_ActivationDelay[2] = 0.75


Set LE_ActivationDelay[3] = 0.75


-------- --------


-------- The duration time of the portal. --------


Set LE_Duration[1] = 5.00


Set LE_Duration[2] = 5.00


Set LE_Duration[3] = 5.00


-------- ^ Note: Begins to tick after the LE_ActivationDelay. --------


-------- --------


-------- TARGETS FILTRATION - you can filter your wanted targets here. --------


Set LE_FilterHero = True


Set LE_FilterFlying = True


Set LE_FilterGround = True


Set LE_FilterStructure = True


Set LE_FilterMechanical = True


Set LE_FilterMagicImmune = True


-------- ^ Note: Structure can only be filtered on entity damage. --------


-------- ^ This is intentional --------


-------- --------


-------- The ability can destroy trees? --------


Set LE_Destroy = True


-------- --------


-------- The attack and damage type of the ability. --------


Set LE_AttackType = Spells


Set LE_DamageType = Normal


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- PORTAL DATA --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- Land Portal --------


-------- The model of the land portal. --------


Set LE_Model[0] = war3mapImported\Void Disc.mdx


Set LE_ModelString[0] = origin


-------- The size of the land portal. --------


Set LE_LandSize[1] = 1.00


Set LE_LandSize[2] = 1.00


Set LE_LandSize[3] = 1.00


-------- ^ Note: Mythic's Void Disc.mdx model is not scaleable for the moment. --------


-------- The height of the land portal. --------


Set LE_LandHeight[1] = 5.00


Set LE_LandHeight[2] = 5.00


Set LE_LandHeight[3] = 5.00


-------- Sky Portal --------


-------- The model of the sky portal. --------


Set LE_Model[1] = war3mapImported\Void Disc.mdx


Set LE_ModelString[1] = origin


-------- The size of the sky portal. --------


Set LE_SkySize[1] = 1.00


Set LE_SkySize[2] = 1.00


Set LE_SkySize[3] = 1.00


-------- ^ Note: Mythic's Void Disc.mdx model is not scaleable for the moment. --------


-------- The height of the sky portal. --------


Set LE_SkyHeight[1] = 500.00


Set LE_SkyHeight[2] = 500.00


Set LE_SkyHeight[3] = 500.00


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- ENTITY DATA --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- The model used for the lost entities. --------


Set LE_Model[2] = Abilities\Weapons\AvengerMissile\AvengerMissile.mdl


Set LE_ModelString[2] = origin


-------- --------


-------- The size of the entity. --------


Set LE_EntitySize[1] = 0.85


Set LE_EntitySize[2] = 0.90


Set LE_EntitySize[3] = 0.95


-------- --------


-------- The collision radius of the entity. --------


Set LE_EntityRadius[1] = 40.00


Set LE_EntityRadius[2] = 45.00


Set LE_EntityRadius[3] = 50.00


-------- --------


-------- The hit damage of the entity. --------


Set LE_EntityDamage[1] = 10.00


Set LE_EntityDamage[2] = 12.50


Set LE_EntityDamage[3] = 15.00


-------- --------


-------- The model used for the damaged units inflicted by LE_EntityDamage --------


Set LE_Model[3] = <Empty String>


Set LE_ModelString[3] = <Empty String>


-------- --------


-------- The creation amount of the entity. --------


Set LE_EntitySpawnCount[1] = 5


Set LE_EntitySpawnCount[2] = 5


Set LE_EntitySpawnCount[3] = 5


-------- --------


-------- The creation interval of the entity. --------


Set LE_EntitySpawnInterval[1] = 0.20


Set LE_EntitySpawnInterval[2] = 0.15


Set LE_EntitySpawnInterval[3] = 0.10


-------- --------


-------- The pitch of the entity. --------


Set LE_EntityPitch = 180


-------- --------


-------- The travel speed of the entity to reach the sky portal. --------


Set LE_EntityTravelSpeed[1] = 10.00


Set LE_EntityTravelSpeed[2] = 10.00


Set LE_EntityTravelSpeed[3] = 10.00


-------- --------


-------- The entity can lift units? --------


Set LE_EntityLift[1] = True


Set LE_EntityLift[2] = True


Set LE_EntityLift[3] = True


-------- --------


-------- The chance or rate of the lifting --------


Set LE_EntityLiftRate[1] = 10


Set LE_EntityLiftRate[2] = 10


Set LE_EntityLiftRate[3] = 10


-------- --------


-------- The lifting speed of the entity for the units. --------


Set LE_EntityLiftSpeed[1] = 2.50


Set LE_EntityLiftSpeed[2] = 5.00


Set LE_EntityLiftSpeed[3] = 7.50


-------- --------


-------- The extra minus height gap for the entities entering the sky portal. --------


Set LE_EntityEntryGap = 0.00


-------- --------


-------- The model used when the lifted units entered the sky portal. --------


Set LE_Model[4] = <Empty String>


Set LE_ModelString[4] = <Empty String>


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- LIFTED UNITS DATA --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- The extra minus height gap for the units entering the sky portal. --------


Set LE_PickedEntryGap = 25.00


-------- --------


-------- Disable the pathing for the lifted units? --------


Set LE_PickedPathable = True


-------- Make the lifted units vulnerable? --------


Set LE_PickedVulnerable = True


-------- Enable the movement for the lifted units? --------


Set LE_PickedMovable = True


-------- Make the lifted units entering the sky portal able to return on the land portal? --------


Set LE_PickedReturnable = False


-------- And take damage instead ( or not: 0.00 ) --------


Set LE_PickedReturnDamage[1] = 0.00


Set LE_PickedReturnDamage[2] = 0.00


Set LE_PickedReturnDamage[3] = 0.00


-------- --------


-------- The falling speed of the units when escaped the entities zone or if they didn't reached the sky portal. --------


Set LE_PickedFallSpeed[1] = 5.00


Set LE_PickedFallSpeed[2] = 5.00


Set LE_PickedFallSpeed[3] = 5.00


-------- --------


-------- The gravity to force on the LE_PickedFallSpeed. --------


Set LE_Gravity = 0.50


-------- --------


-------- The impact damage to the units that fall on the ground. --------


Set LE_FailLiftDamage[1] = 0.00


Set LE_FailLiftDamage[2] = 0.00


Set LE_FailLiftDamage[3] = 0.00


-------- --------


-------- The model used when the units begin to impact on the ground. --------


Set LE_Model[5] = Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl


Set LE_ModelString[5] = origin


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- CODE DATA --------


-------- ( BE CAREFUL TOUCHING THE LINES BELOW IF YOU HAVE NO EXPERIENCE IN ITS CODING DEFINITION ) --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


Set LE_CustomLocation = (Point(0.00, 0.00))


-------- PRELOAD OBJECTS --------


Custom script: set udg_LE_Unit = CreateUnit(Player(15), udg_LE_DummyType, 0, 0, 0)


Custom script: if UnitAddAbility(udg_LE_Unit, udg_LE_Ability) and UnitRemoveAbility(udg_LE_Unit, udg_LE_Ability) then


Custom script: endif


Custom script: call SetUnitY(udg_LE_Unit, GetRectMaxY( bj_mapInitialPlayableArea )+1000)


Set LE_CustomInteger = 0


For each (Integer LE_CustomInteger) from 0 to 5, do (Actions)



Loop - Actions




Custom script: call DestroyEffect(AddSpecialEffect(udg_LE_Model[udg_LE_CustomInteger], GetUnitX(udg_LE_Unit), GetUnitY(udg_LE_Unit)))


Custom script: call RemoveUnit(udg_LE_Unit)


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




LE_Destroy Equal to True



Then - Actions




Custom script: set udg_LE_DestructibleChecker = CreateUnit(Player(15), udg_LE_DummyType, 0, 0, 0)




Custom script: call UnitAddAbility( udg_LE_DestructibleChecker,'Ahar' )



Else - Actions


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- DON'T TOUCH THESE. ( If this line malfunctions you can touch it to correct the needed parameters or values. ) --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


Custom script: call TriggerRegisterTimerEventPeriodic(udg_LE_Periodic, udg_LE_PeriodicInterval)


-------- CALCULATIONS --------


For each (Integer LE_CustomInteger) from 1 to LE_MaxLevel, do (Actions)



Loop - Actions




Set LE_RealMin[LE_CustomInteger] = (LE_Radius[LE_CustomInteger] / 5.00)




Set LE_RealEntityHeight[LE_CustomInteger] = (LE_SkyHeight[LE_CustomInteger] - LE_EntityEntryGap)




Set LE_RealMax[LE_CustomInteger] = (LE_Radius[LE_CustomInteger] x 0.70)




Set LE_RealPickedHeight[LE_CustomInteger] = (LE_SkyHeight[LE_CustomInteger] - LE_PickedEntryGap)


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- END OF SPELL CONFIGURATION FIELD --------


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------
Lost Entities Execution

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to LE_Ability

Actions


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------


-------- declaration of locals --------


Custom script: local real x = GetSpellTargetX( )


Custom script: local real y = GetSpellTargetY( )


Custom script: local real ang


-------- - --------


Set LE_Caster[0] = (Triggering unit)


Set LE_CasterPlayer[0] = (Owner of LE_Caster[0])


Set LE_Level[0] = (Level of LE_Ability for LE_Caster[0])


Custom script: set ang = Atan2( y - GetUnitY(udg_LE_Caster[0]) , x - GetUnitX(udg_LE_Caster[0]) ) * bj_RADTODEG


-------- - --------


Custom script: set udg_LE_Unit = CreateUnit(udg_LE_CasterPlayer[0], udg_LE_DummyType, x, y, ang)


Custom script: set udg_LE_CustomID = GetUnitUserData(udg_LE_Unit)


Custom script: call SetUnitX(udg_LE_Unit, x)


Custom script: call SetUnitY(udg_LE_Unit, y)


Custom script: if UnitAddAbility(udg_LE_Unit, 'Amrf') and UnitRemoveAbility(udg_LE_Unit, 'Amrf') then


Custom script: endif


Custom script: call SetUnitFlyHeight(udg_LE_Unit, udg_LE_LandHeight[udg_LE_Level[0]], 0)


Custom script: call SetUnitScale(udg_LE_Unit, udg_LE_LandSize[udg_LE_Level[0]], 0, 0)


Custom script: set udg_LE_LandModelHandler[udg_LE_CustomID] = AddSpecialEffectTarget(udg_LE_Model[0], udg_LE_Unit, udg_LE_ModelString[0])


-------- - --------


Custom script: set udg_LE_PortalUnit[udg_LE_CustomID] = CreateUnit(udg_LE_CasterPlayer[0], udg_LE_DummyType, x, y, ang)


Custom script: call SetUnitX(udg_LE_PortalUnit[udg_LE_CustomID], x)


Custom script: call SetUnitY(udg_LE_PortalUnit[udg_LE_CustomID], y)


Custom script: if UnitAddAbility(udg_LE_PortalUnit[udg_LE_CustomID], 'Amrf') and UnitRemoveAbility(udg_LE_PortalUnit[udg_LE_CustomID], 'Amrf') then


Custom script: endif


Custom script: call SetUnitFlyHeight(udg_LE_PortalUnit[udg_LE_CustomID], udg_LE_SkyHeight[udg_LE_Level[0]], 0)


Custom script: call SetUnitScale(udg_LE_PortalUnit[udg_LE_CustomID], udg_LE_SkySize[udg_LE_Level[0]], 0, 0)


Custom script: set udg_LE_SkyModelHandler[udg_LE_CustomID] = AddSpecialEffectTarget(udg_LE_Model[1], udg_LE_PortalUnit[udg_LE_CustomID], udg_LE_ModelString[1])


-------- - --------


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




LE_Destroy Equal to True



Then - Actions




Custom script: call MoveLocation(udg_LE_CustomLocation, GetUnitX(udg_LE_Unit), GetUnitY(udg_LE_Unit))




Destructible - Pick every destructible within LE_Radius[LE_Level[0]] of LE_CustomLocation and do (Actions)





Loop - Actions






Set LE_Destructible = (Picked destructible)






Unit - Order LE_DestructibleChecker to Harvest LE_Destructible






If (All Conditions are True) then do (Then Actions) else do (Else Actions)







If - Conditions








(Current order of LE_DestructibleChecker) Equal to (Order(harvest))







Then - Actions








Destructible - Kill LE_Destructible







Else - Actions






Unit - Order LE_DestructibleChecker to Stop



Else - Actions


-------- - --------


Set LE_Stage[LE_CustomID] = 1


Set LE_Caster[LE_CustomID] = LE_Caster[0]


Set LE_CasterPlayer[LE_CustomID] = LE_CasterPlayer[0]


Set LE_Level[LE_CustomID] = LE_Level[0]


Set LE_ActivationCounter[LE_CustomID] = 0.00


Set LE_EntitySpawnCounter[LE_CustomID] = 0.00


Set LE_DurationCounter[LE_CustomID] = 0.00


-------- - --------


Set LE_Instance = (LE_Instance + 1)


Unit Group - Add LE_Unit to LE_Group


-------- - --------


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




LE_Instance Equal to 1



Then - Actions




Trigger - Turn on LE_Periodic



Else - Actions


-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------
Lost Entities Periodic

Events

Conditions

Actions


Unit Group - Pick every unit in LE_Group and do (Actions)



Loop - Actions




-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------




-------- declaration of locals --------




Custom script: local real x




Custom script: local real x2




Custom script: local real y




Custom script: local real y2




-------- - --------




Set LE_Unit = (Picked unit)




Custom script: set udg_LE_ID = GetUnitUserData(udg_LE_Unit)




Custom script: set x = GetUnitX(udg_LE_Unit)




Custom script: set y = GetUnitY(udg_LE_Unit)




-------- - --------




If (All Conditions are True) then do (Then Actions) else do (Else Actions)





If - Conditions






LE_Stage[LE_ID] Equal to 1





Then - Actions






-------- - --------






If (All Conditions are True) then do (Then Actions) else do (Else Actions)







If - Conditions








LE_ActivationCounter[LE_ID] Less than or equal to LE_ActivationDelay[LE_Level[LE_ID]]







Then - Actions








Set LE_ActivationCounter[LE_ID] = (LE_ActivationCounter[LE_ID] + LE_PeriodicInterval)







Else - Actions








-------- - --------








If (All Conditions are True) then do (Then Actions) else do (Else Actions)









If - Conditions










LE_DurationCounter[LE_ID] Less than or equal to LE_Duration[LE_Level[LE_ID]]









Then - Actions










-------- - --------










If (All Conditions are True) then do (Then Actions) else do (Else Actions)











If - Conditions












LE_EntitySpawnCounter[LE_ID] Less than or equal to LE_EntitySpawnInterval[LE_Level[LE_ID]]











Then - Actions












Set LE_EntitySpawnCounter[LE_ID] = (LE_EntitySpawnCounter[LE_ID] + LE_PeriodicInterval)











Else - Actions












-------- - --------












For each (Integer LE_CustomInteger) from 1 to LE_EntitySpawnCount[LE_Level[LE_ID]], do (Actions)













Loop - Actions














-------- - --------














Custom script: set x2 = x+GetRandomReal(udg_LE_RealMin[udg_LE_Level[udg_LE_ID]],udg_LE_RealMax[udg_LE_Level[udg_LE_ID]]) * Cos(GetRandomReal(-bj_PI,bj_PI))














Custom script: set y2 = y+GetRandomReal(udg_LE_RealMin[udg_LE_Level[udg_LE_ID]],udg_LE_RealMax[udg_LE_Level[udg_LE_ID]]) * Sin (GetRandomReal(-bj_PI,bj_PI))














Custom script: set udg_LE_PortalUnit[0] = CreateUnit( udg_LE_CasterPlayer[udg_LE_ID], udg_LE_DummyType, x2, y2, GetRandomReal(0,360) )














Custom script: set udg_LE_CustomID = GetUnitUserData(udg_LE_PortalUnit[0])














Custom script: call SetUnitX(udg_LE_PortalUnit[0], x2)














Custom script: call SetUnitY(udg_LE_PortalUnit[0], y2)














Custom script: if UnitAddAbility(udg_LE_PortalUnit[0], 'Amrf') and UnitRemoveAbility(udg_LE_PortalUnit[0], 'Amrf') then














Custom script: endif














Custom script: call SetUnitFlyHeight(udg_LE_PortalUnit[0], GetUnitFlyHeight(udg_LE_Unit), 0)














Custom script: call SetUnitScale(udg_LE_PortalUnit[0], udg_LE_EntitySize[udg_LE_Level[0]], 0, 0)














Custom script: call SetUnitAnimationByIndex(udg_LE_PortalUnit[0], udg_LE_EntityPitch)














Custom script: set udg_LE_EntityModelHandler[udg_LE_CustomID] = AddSpecialEffectTarget(udg_LE_Model[2], udg_LE_PortalUnit[0], udg_LE_ModelString[2])














-------- - --------














Set LE_PortalUnit[LE_CustomID] = LE_Unit














Set LE_Stage[LE_CustomID] = 2














Set LE_Level[LE_CustomID] = LE_Level[LE_ID]














Set LE_EntityHeight[LE_CustomID] = (Current flying height of LE_PortalUnit[0])














Set LE_Instance = (LE_Instance + 1)














Unit Group - Add LE_PortalUnit[0] to LE_Group














-------- - --------














Custom script: call GroupEnumUnitsInRange(bj_lastCreatedGroup, x2, y2, udg_LE_EntityRadius[udg_LE_Level[udg_LE_ID]], null)














Custom script: loop














Custom script: set udg_LE_PickedUnit = FirstOfGroup(bj_lastCreatedGroup)














Custom script: exitwhen udg_LE_PickedUnit == null














If (All Conditions are True) then do (Then Actions) else do (Else Actions)















If - Conditions
















(LE_PickedUnit is dead) Equal to False
















Or - Any (Conditions) are true

















Conditions


















(LE_PickedUnit is A Hero) Equal to False


















LE_FilterHero Equal to True
















Or - Any (Conditions) are true

















Conditions


















(LE_PickedUnit is A flying unit) Equal to False


















LE_FilterFlying Equal to True
















Or - Any (Conditions) are true

















Conditions


















(LE_PickedUnit is A ground unit) Equal to False


















LE_FilterGround Equal to True
















Or - Any (Conditions) are true

















Conditions


















(LE_PickedUnit is A structure) Equal to False


















LE_FilterStructure Equal to True
















Or - Any (Conditions) are true

















Conditions


















(LE_PickedUnit is Mechanical) Equal to False


















LE_FilterMechanical Equal to True
















Or - Any (Conditions) are true

















Conditions


















(LE_PickedUnit is Magic Immune) Equal to False


















LE_FilterMagicImmune Equal to True
















(LE_PickedUnit belongs to an enemy of LE_CasterPlayer[LE_ID]) Equal to True















Then - Actions
















-------- - --------
















Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_LE_Model[3],udg_LE_PickedUnit,udg_LE_ModelString[3]))
















Unit - Cause LE_Caster[LE_ID] to damage LE_PickedUnit, dealing LE_EntityDamage[LE_Level[LE_ID]] damage of attack type LE_AttackType and damage type LE_DamageType
















-------- - --------
















If (All Conditions are True) then do (Then Actions) else do (Else Actions)

















If - Conditions


















LE_EntityLift[LE_Level[LE_ID]] Equal to True


















(Random integer number between 1 and 100) Less than or equal to LE_EntityLiftRate[LE_Level[LE_ID]]


















(LE_PickedUnit is A structure) Equal to False


















(LE_PickedUnit is in LE_Group) Equal to False

















Then - Actions


















-------- - --------


















Custom script: set udg_LE_CustomID = GetUnitUserData(udg_LE_PickedUnit)


















Custom script: set udg_LE_EntityModelHandler[udg_LE_CustomID] = AddSpecialEffectTarget(udg_LE_Model[2], udg_LE_PickedUnit, udg_LE_ModelString[2])


















Custom script: set udg_LE_X[udg_LE_CustomID] = x


















Custom script: set udg_LE_Y[udg_LE_CustomID] = y


















Custom script: if UnitAddAbility(udg_LE_PickedUnit, 'Amrf') and UnitRemoveAbility(udg_LE_PickedUnit, 'Amrf') then


















Custom script: endif


















If (All Conditions are True) then do (Then Actions) else do (Else Actions)



















If - Conditions




















LE_PickedPathable Equal to True



















Then - Actions




















Custom script: call SetUnitPathing(udg_LE_PickedUnit, false)



















Else - Actions


















If (All Conditions are True) then do (Then Actions) else do (Else Actions)



















If - Conditions




















LE_PickedVulnerable Equal to False



















Then - Actions




















Unit - Make LE_PickedUnit Invulnerable



















Else - Actions


















If (All Conditions are True) then do (Then Actions) else do (Else Actions)



















If - Conditions




















LE_PickedMovable Equal to False



















Then - Actions




















Custom script: set udg_LE_Window[udg_LE_CustomID] = GetUnitPropWindow(udg_LE_PickedUnit)




















Custom script: call SetUnitPropWindow(udg_LE_PickedUnit, 0)



















Else - Actions


















Set LE_PickedHeight[LE_CustomID] = (Current flying height of LE_PickedUnit)


















Set LE_Stage[LE_CustomID] = 3


















Set LE_FailLift[LE_CustomID] = False


















Set LE_GravityCounter[LE_CustomID] = LE_Gravity


















Set LE_Caster[LE_CustomID] = LE_Caster[LE_ID]


















Set LE_CasterPlayer[LE_CustomID] = LE_CasterPlayer[LE_ID]


















Set LE_Level[LE_CustomID] = LE_Level[LE_ID]


















Set LE_PortalUnit[LE_CustomID] = LE_PortalUnit[LE_ID]


















Set LE_Instance = (LE_Instance + 1)


















Unit Group - Add LE_PickedUnit to LE_Group


















-------- - --------

















Else - Actions
















-------- - --------















Else - Actions














Custom script: call GroupRemoveUnit(bj_lastCreatedGroup, udg_LE_PickedUnit)














Custom script: endloop












-------- - --------












Set LE_EntitySpawnCounter[LE_ID] = 0.00










Set LE_DurationCounter[LE_ID] = (LE_DurationCounter[LE_ID] + LE_PeriodicInterval)









Else - Actions










Special Effect - Destroy LE_LandModelHandler[LE_ID]










Unit - Kill LE_Unit










Special Effect - Destroy LE_SkyModelHandler[LE_ID]










Unit - Kill LE_PortalUnit[LE_ID]










Set LE_Instance = (LE_Instance - 1)










Unit Group - Remove LE_Unit from LE_Group










If (All Conditions are True) then do (Then Actions) else do (Else Actions)











If - Conditions












LE_Instance Equal to 0











Then - Actions












Custom script: call DisableTrigger(udg_LE_Periodic)











Else - Actions






-------- - --------





Else - Actions






If (All Conditions are True) then do (Then Actions) else do (Else Actions)







If - Conditions








LE_Stage[LE_ID] Equal to 2







Then - Actions








-------- - --------








If (All Conditions are True) then do (Then Actions) else do (Else Actions)









If - Conditions










Or - Any (Conditions) are true











Conditions












(LE_PortalUnit[LE_ID] is dead) Equal to True












LE_EntityHeight[LE_ID] Greater than or equal to LE_RealEntityHeight[LE_Level[LE_ID]]









Then - Actions










Special Effect - Destroy LE_EntityModelHandler[LE_ID]










Unit - Hide LE_Unit










Unit - Kill LE_Unit










Set LE_Instance = (LE_Instance - 1)










Unit Group - Remove LE_Unit from LE_Group










If (All Conditions are True) then do (Then Actions) else do (Else Actions)











If - Conditions












LE_Instance Equal to 0











Then - Actions












Custom script: call DisableTrigger(udg_LE_Periodic)











Else - Actions









Else - Actions










Set LE_EntityHeight[LE_ID] = (LE_EntityHeight[LE_ID] + LE_EntityTravelSpeed[LE_Level[LE_ID]])










Custom script: call SetUnitFlyHeight(udg_LE_Unit, udg_LE_EntityHeight[udg_LE_ID], 0)








-------- - --------







Else - Actions








If (All Conditions are True) then do (Then Actions) else do (Else Actions)









If - Conditions










LE_Stage[LE_ID] Equal to 3









Then - Actions










-------- - --------










If (All Conditions are True) then do (Then Actions) else do (Else Actions)











If - Conditions












LE_PickedHeight[LE_ID] Greater than or equal to LE_RealPickedHeight[LE_Level[LE_ID]]











Then - Actions












Custom script: if udg_LE_Model[4] != "" then












Custom script: set udg_LE_PickedUnit = CreateUnit(udg_LE_CasterPlayer[udg_LE_ID], udg_LE_DummyType, x, y, 0)












Custom script: if UnitAddAbility(udg_LE_PickedUnit, 'Amrf') and UnitRemoveAbility(udg_LE_PickedUnit, 'Amrf') then












Custom script: endif












Custom script: call SetUnitFlyHeight(udg_LE_PickedUnit, GetUnitFlyHeight(udg_LE_Unit), 0)












Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_LE_Model[4],udg_LE_PickedUnit,udg_LE_ModelString[4]))












Unit - Kill LE_PickedUnit












Custom script: endif












Special Effect - Destroy LE_EntityModelHandler[LE_ID]












If (All Conditions are True) then do (Then Actions) else do (Else Actions)













If - Conditions














LE_PickedPathable Equal to True













Then - Actions














Custom script: call SetUnitPathing(udg_LE_Unit, true)













Else - Actions












If (All Conditions are True) then do (Then Actions) else do (Else Actions)













If - Conditions














LE_PickedMovable Equal to False













Then - Actions














Custom script: call SetUnitPropWindow(udg_LE_Unit, udg_LE_Window[udg_LE_ID] * bj_RADTODEG)













Else - Actions












Custom script: call SetUnitFlyHeight(udg_LE_Unit, GetUnitDefaultFlyHeight(udg_LE_Unit), 0)












If (All Conditions are True) then do (Then Actions) else do (Else Actions)













If - Conditions














LE_PickedVulnerable Equal to False













Then - Actions














Unit - Make LE_Unit Vulnerable













Else - Actions












If (All Conditions are True) then do (Then Actions) else do (Else Actions)













If - Conditions














LE_PickedReturnable Equal to True













Then - Actions














Unit - Cause LE_Caster[LE_ID] to damage LE_Unit, dealing LE_PickedReturnDamage[LE_Level[LE_ID]] damage of attack type LE_AttackType and damage type LE_DamageType













Else - Actions














Unit - Cause LE_Caster[LE_ID] to damage LE_Unit, dealing 1000000.00 damage of attack type LE_AttackType and damage type LE_DamageType














Unit - Hide LE_Unit














If (All Conditions are True) then do (Then Actions) else do (Else Actions)















If - Conditions
















(LE_Unit is dead) Equal to False















Then - Actions
















Unit - Unhide LE_Unit















Else - Actions












Set LE_Instance = (LE_Instance - 1)












Unit Group - Remove LE_Unit from LE_Group












If (All Conditions are True) then do (Then Actions) else do (Else Actions)













If - Conditions














LE_Instance Equal to 0













Then - Actions














Custom script: call DisableTrigger(udg_LE_Periodic)













Else - Actions












-------- - --------











Else - Actions












If (All Conditions are True) then do (Then Actions) else do (Else Actions)













If - Conditions














LE_FailLift[LE_ID] Equal to False













Then - Actions














Custom script: if IsUnitInRangeXY(udg_LE_Unit,udg_LE_X[udg_LE_ID],udg_LE_Y[udg_LE_ID],udg_LE_RealMax[udg_LE_Level[udg_LE_ID]]) and not IsUnitType(udg_LE_PortalUnit[udg_LE_ID], UNIT_TYPE_DEAD) then














Set LE_PickedHeight[LE_ID] = (LE_PickedHeight[LE_ID] + LE_EntityLiftSpeed[LE_Level[LE_ID]])














Custom script: call SetUnitFlyHeight(udg_LE_Unit, udg_LE_PickedHeight[udg_LE_ID], 0)














Custom script: else














Special Effect - Destroy LE_EntityModelHandler[LE_ID]














Set LE_FailLift[LE_ID] = True














Custom script: endif













Else - Actions














If (All Conditions are True) then do (Then Actions) else do (Else Actions)















If - Conditions
















LE_PickedHeight[LE_ID] Less than or equal to (Default flying height of LE_Unit)















Then - Actions
















Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_LE_Model[5],udg_LE_Unit,udg_LE_ModelString[5]))
















If (All Conditions are True) then do (Then Actions) else do (Else Actions)

















If - Conditions


















LE_PickedPathable Equal to True

















Then - Actions


















Custom script: call SetUnitPathing(udg_LE_Unit, true)

















Else - Actions
















If (All Conditions are True) then do (Then Actions) else do (Else Actions)

















If - Conditions


















LE_PickedMovable Equal to False

















Then - Actions


















Custom script: call SetUnitPropWindow(udg_LE_Unit, udg_LE_Window[udg_LE_ID] * bj_RADTODEG)

















Else - Actions
















Custom script: call SetUnitFlyHeight(udg_LE_Unit, GetUnitDefaultFlyHeight(udg_LE_Unit), 0)
















If (All Conditions are True) then do (Then Actions) else do (Else Actions)

















If - Conditions


















LE_PickedVulnerable Equal to False

















Then - Actions


















Unit - Make LE_Unit Vulnerable

















Else - Actions
















Unit - Cause LE_Caster[LE_ID] to damage LE_Unit, dealing LE_FailLiftDamage[LE_Level[LE_ID]] damage of attack type LE_AttackType and damage type LE_DamageType
















Set LE_Instance = (LE_Instance - 1)
















Unit Group - Remove LE_Unit from LE_Group
















If (All Conditions are True) then do (Then Actions) else do (Else Actions)

















If - Conditions


















LE_Instance Equal to 0

















Then - Actions


















Custom script: call DisableTrigger(udg_LE_Periodic)

















Else - Actions
















-------- - --------















Else - Actions
















Set LE_GravityCounter[LE_ID] = (LE_GravityCounter[LE_ID] + LE_Gravity)
















Set LE_PickedHeight[LE_ID] = ((LE_PickedHeight[LE_ID] - LE_PickedFallSpeed[LE_Level[LE_ID]]) - LE_GravityCounter[LE_ID])
















Custom script: call SetUnitFlyHeight(udg_LE_Unit, udg_LE_PickedHeight[udg_LE_ID], 0)










-------- - --------









Else - Actions




-------- ---------------------------------------------------------------------------------------------------------------------------------------- --------