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

Lost Entities v1.0.0 - GUI

This bundle is marked as pending. It has not been reviewed by a staff member yet.
  • Like
Reactions: ISL and Vinz
[TD] LOST ENTITIES [ GUI ] [/TD]

A target area damage mythical void ability.
"Might be useful at reducing enemy units clustering at the battlefield and combat."


PREVIEW:
lost-entities-preview-one-gif.349577

lost-entities-preview-two-gif.349576

lost-entities-preview-three-gif.349575
DESCRIPTION:
full

[TD] IMAGES: [/TD]

Start

End

Creating a two void portals that serve as the pathway for the lost entities.

full


After the portals being developed, the land portal begins to release the lost entities.

full
Releasing more lost entities as long as the two portals are active.
In this event, the entities were able to lift the units up. ( not shown here, check the preview )

full

full


[TD] CHANGELOGS: [/TD][TD]
v1.0.0 - Released
[/TD]
[TD] CREDITS: [/TD][TD]
Bribe ( Unit Indexer )
Mythic ( Portal Model )
[/TD]

Lost Entities Configuration

Lost Entities Execution

Lost Entities Periodic

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

Lost Entities v1.0.0 - GUI (Map)

Level 20
Joined
Aug 13, 2013
Messages
1,696
Yes, another model of him that I would like to give a showcase. In fact, these choices of high quality special effects can also fit to Reforged. :)

I also make my submissions to be compatible on older patches.
(The reason why I don't use the new natives)
So there should be no problem using this on 1.26+ versions.

For the documentations of my configurations that are always rich, it is beneficial to do so (for the newcomers)

If there's any problems regarding that, just let me know. Thanks!
 
Level 3
Joined
May 2, 2020
Messages
14
This is absolutely awesome. The tooltip is confusing about what exactly is happening here, but the Demo explains mechanics and perfectly conveys the flavor (with the Dark World, Lost Entities, and everything).

I am a fan of everything related to the void / voidwalkers and I'm somewhat tempted to remake the Demo section to make it more cinematic (I think I can "remix" some of WoW dialogue lines to fit the plot).
 
Level 2
Joined
Feb 1, 2024
Messages
6
Hi, need some help please, the spell is working when am using the downloaded map, then to get the spell on my map I did enable
Automatically create unknown variables while pasting trigger data' copy paste the two trigger folders : Lost Entities v1.0.0 and Unit indexer
Imported the two mdx models. Copy paste the spell Lost entities Ability and Lost entities dummy and still nothing, the spell copied on another hero does no damage no animation nothing, any help please ?
 
Level 20
Joined
Aug 13, 2013
Messages
1,696
Hi, need some help please, the spell is working when am using the downloaded map, then to get the spell on my map I did enable
Automatically create unknown variables while pasting trigger data' copy paste the two trigger folders : Lost Entities v1.0.0 and Unit indexer
Imported the two mdx models. Copy paste the spell Lost entities Ability and Lost entities dummy and still nothing, the spell copied on another hero does no damage no animation nothing, any help please ?
hello, make sure the object fields here are correct:
  • -------- ---------------------------------------------------------------------------------------------------------------------------------------- --------
    • -------- 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. ) --------
    • -------- ---------------------------------------------------------------------------------------------------------------------------------------- --------
go to the trigger called "Lost Entities Configuration" to configure... if it's still not working despite of setting them correctly you can send me the map.. thanks.
 
Level 2
Joined
Feb 1, 2024
Messages
6
am new to worldeditor so I know am missing something, thanks a lot for ur answer, sadly whatever I do still not work properly, here is an exemple map, tried it on another bigger but now used a small map to focus on the spell
 

Attachments

  • (2)BootyBay.w3x
    157.1 KB · Views: 1
Level 20
Joined
Aug 13, 2013
Messages
1,696
here's the problem... this variable is grayed out (disabled) and you may encounter that sometimes with GUI variables when importing they kinda malfunction (sorry, i forgot the whole story behind it):
1706969964410.png

but you can easily solve it by setting its value again to "Lost Entities Periodic" trigger or just double click it and click OK:
1706969893959.png

until it becomes enabled (not grayed out):
1706969809489.png

already tested it should work like spectacular. 😉

edit: ^fixed screenshots
 
Last edited:
Level 38
Joined
Feb 27, 2007
Messages
4,951
sometimes with GUI variables when importing they kinda malfunction (sorry, i forgot the whole story behind it)
There is a setting called "Create unknown variables when pasting trigger data"; it should always be on, and as long as it is you're very unlikely to get incomplete lines. Without it turned on, essentially any line that refers to a variable will immediately be disabled (though it will still appear complete visually) after pasting it. With the setting turned on it's still possible to get disabled lines if you already have a variable of the same name but it's a different type.

Finally, if you copy and paste lines that are already disabled they will not create the relevant variables even with the setting enabled, since the engine thinks those are irrelevant comments.
 
Top