- Joined
- May 16, 2020
- Messages
- 660
Hi guys,
I recently created a new map to test spells quicker, so I copied the libraries (where everything works) from my main map to the testmap.
The problem is that the Illusion ability is not cast when targeting enemies:
Here the spell description:
I attached the test map. The invovled triggers are:
I recently created a new map to test spells quicker, so I copied the libraries (where everything works) from my main map to the testmap.
The problem is that the Illusion ability is not cast when targeting enemies:
-
Custom script: call IssueTargetOrderById(udg_Illusion_Dummy, 852274, udg_Disruption_Target[udg_Disruption_Integer_A])
Here the spell description:
Banishes the targeted unit from the battlefield for a short duration. Upon returning, two illusions of the banished unit are created under Shadow Demon's control.
I attached the test map. The invovled triggers are:
Illusion System
-
IllusionCreate
-
Events
-
Conditions
-
Actions
-
Set VariableSet Illusion_Point = (Position of Illusion_Caster)
-
Unit - Create 1 Dummy (Fly/Speed 0) for Illusion_Player at Illusion_Point facing Default building facing degrees
-
Custom script: call RemoveLocation(udg_Illusion_Point)
-
Set VariableSet Illusion_Dummy = (Last created unit)
-
Unit - Add Illusion.ABILITY to Illusion_Dummy
-
Unit - Add a 0.50 second Generic expiration timer to Illusion_Dummy
-
Ability - Set Ability: (Unit: Illusion_Dummy's Ability with Ability Code: Illusion.ABILITY )'s Real Level Field: Damage Dealt (% of normal) ('Iild') of Level: 0 to Illusion_DamageDealt
-
Ability - Set Ability: (Unit: Illusion_Dummy's Ability with Ability Code: Illusion.ABILITY )'s Real Level Field: Damage Received Multiplier ('Iilw') of Level: 0 to Illusion_DamageTaken
-
Ability - Set Ability: (Unit: Illusion_Dummy's Ability with Ability Code: Illusion.ABILITY )'s Real Level Field: Duration - Hero ('ahdu') of Level: 0 to Illusion_Duration
-
Ability - Set Ability: (Unit: Illusion_Dummy's Ability with Ability Code: Illusion.ABILITY )'s Real Level Field: Duration - Normal ('adur') of Level: 0 to Illusion_Duration
-
Custom script: call IssueTargetOrderById(udg_Illusion_Dummy, 852274, udg_Illusion_Caster)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Illusion_AppearCustomized Equal to True
-
-
Then - Actions
-
Trigger - Turn on IllusionDetect <gen>
-
-
Else - Actions
-
-
-
-
IllusionDetect
-
Events
-
Unit - A unit enters (Playable map area)
-
-
Conditions
-
((Triggering unit) is an illusion) Equal to True
-
-
Actions
-
Set VariableSet Illusion_AppearCustomized = False
-
-------- --------
-
Set VariableSet Illusion_UnitIllusion = (Triggering unit)
-
Unit - Move Illusion_UnitIllusion instantly to Illusion_AppearPoint, facing Illusion_AppearFacing degrees
-
Set VariableSet Illusion_Event = 1.00
-
Set VariableSet Illusion_Event = 0.00
-
Custom script: call RemoveLocation(udg_Illusion_AppearPoint)
-
-------- --------
-
Set VariableSet Illusion_Custom = <Empty String>
-
Trigger - Turn off (This trigger)
-
-
-
Disruption
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Disruption
-
-
Actions
-
Set VariableSet Disruption_Index = (Disruption_Index + 1)
-
Set VariableSet Disruption_Caster[Disruption_Index] = (Triggering unit)
-
Set VariableSet Disruption_Target[Disruption_Index] = (Target unit of ability being cast)
-
Set VariableSet Disruption_Counter[Disruption_Index] = 0
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Disruption_Index Equal to 1
-
-
Then - Actions
-
Countdown Timer - Start Disruption_Timer as a Repeating timer that will expire in 0.05 seconds
-
Trigger - Turn on Disruption Loop <gen>
-
-
Else - Actions
-
-
-------- --------
-
Set VariableSet Disruption_Point = (Position of Disruption_Target[Disruption_Index])
-
Special Effect - Create a special effect at Disruption_Point using WILLTHEALMIGHTY-Void5.mdx
-
Set VariableSet Disruption_SFX[Disruption_Index] = (Last created special effect)
-
Unit - Make Disruption_Target[Disruption_Index] Invulnerable
-
-------- Adding to Group for Sanity's Eclipse Damage through Invulnerability --------
-
Unit Group - Add Disruption_Target[Disruption_Index] to Disruption_Group
-
Unit - Hide Disruption_Target[Disruption_Index]
-
-------- --------
-
Visibility - Create an initially Enabled visibility modifier for (Owner of Disruption_Target[Disruption_Index]) emitting Visibility from Disruption_Point to a radius of 800.00.
-
Set VariableSet Disruption_Vision[Disruption_Index] = (Last created visibility modifier)
-
Custom script: call RemoveLocation(udg_Disruption_Point)
-
-------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Disruption_Caster[Disruption_Index] Not equal to Disruption_Target[Disruption_Index]
-
-
Then - Actions
-
Unit - Pause Disruption_Target[Disruption_Index]
-
-
Else - Actions
-
Wait 0.01 seconds
-
Unit - Pause Disruption_Target[Disruption_Index]
-
-
-
-
-
Disruption Loop
-
Events
-
Time - Disruption_Timer expires
-
-
Conditions
-
Actions
-
For each (Integer Disruption_Integer_A) from 1 to Disruption_Index, do (Actions)
-
Loop - Actions
-
Set VariableSet Disruption_Counter[Disruption_Integer_A] = (Disruption_Counter[Disruption_Integer_A] + 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Disruption_Counter[Disruption_Integer_A] Greater than or equal to 55
-
-
Then - Actions
-
Visibility - Disable Disruption_Vision[Disruption_Integer_A]
-
Visibility - Destroy Disruption_Vision[Disruption_Integer_A]
-
Unit - Unpause Disruption_Target[Disruption_Integer_A]
-
Unit - Make Disruption_Target[Disruption_Integer_A] Vulnerable
-
Unit Group - Remove Disruption_Target[Disruption_Integer_A] from Disruption_Group.
-
Unit - Unhide Disruption_Target[Disruption_Integer_A]
-
Selection - Select Disruption_Target[Disruption_Integer_A] for (Owner of Disruption_Target[Disruption_Integer_A])
-
-------- --------
-
Special Effect - Destroy Disruption_SFX[Disruption_Integer_A]
-
Special Effect - Create a special effect attached to the origin of Disruption_Target[Disruption_Integer_A] using UltKillShadow.mdx
-
Special Effect - Destroy (Last created special effect)
-
-------- --------
-
Set VariableSet Disruption_CV = (Custom value of Disruption_Caster[Disruption_Integer_A])
-
Set VariableSet Disruption_TargetIllusion[Disruption_CV] = Disruption_Target[Disruption_Integer_A]
-
-------- --------
-
Set VariableSet Disruption_CounterIllusion = 0
-
Trigger - Turn on Disruption Attack <gen>
-
-------- --------
-
Set VariableSet Illusion_Point = (Position of Disruption_Target[Disruption_Integer_A])
-
Unit - Create 1 Dummy (Ground/Speed 0) for (Owner of Disruption_Caster[Disruption_Integer_A]) at Illusion_Point facing Default building facing degrees
-
Set VariableSet Illusion_Dummy = (Last created unit)
-
Unit - Add Illusion.ABILITY to Illusion_Dummy
-
Unit - Add a 0.50 second Generic expiration timer to Illusion_Dummy
-
Ability - Set Ability: (Unit: Illusion_Dummy's Ability with Ability Code: Illusion.ABILITY )'s Real Level Field: Damage Dealt (% of normal) ('Iild') of Level: 0 to (0.15 + (0.15 x (Real((Level of Disruption for Disruption_Caster[Disruption_Integer_A])))))
-
Ability - Set Ability: (Unit: Illusion_Dummy's Ability with Ability Code: Illusion.ABILITY )'s Real Level Field: Damage Received Multiplier ('Iilw') of Level: 0 to 3.00
-
Ability - Set Ability: (Unit: Illusion_Dummy's Ability with Ability Code: Illusion.ABILITY )'s Real Level Field: Duration - Hero ('ahdu') of Level: 0 to (10.00 + (Real((Level of Disruption for Disruption_Caster[Disruption_Integer_A]))))
-
Ability - Set Ability: (Unit: Illusion_Dummy's Ability with Ability Code: Illusion.ABILITY )'s Real Level Field: Duration - Normal ('adur') of Level: 0 to (10.00 + (Real((Level of Disruption for Disruption_Caster[Disruption_Integer_A]))))
-
Ability - Set Ability: (Unit: Illusion_Dummy's Ability with Ability Code: Illusion.ABILITY )'s Real Level Field: Area of Effect ('aare') of Level: 0 to 48.00
-
Custom script: call RemoveLocation(udg_Illusion_Point)
-
-------- --------
-
For each (Integer Disruption_Integer_B) from 1 to 2, do (Actions)
-
Loop - Actions
-
Custom script: call IssueTargetOrderById(udg_Illusion_Dummy, 852274, udg_Disruption_Target[udg_Disruption_Integer_A])
-
-
-
-------- --------
-
Set VariableSet Disruption_Caster[Disruption_Integer_A] = Disruption_Caster[Disruption_Index]
-
Set VariableSet Disruption_Target[Disruption_Integer_A] = Disruption_Target[Disruption_Index]
-
Set VariableSet Disruption_Counter[Disruption_Integer_A] = Disruption_Counter[Disruption_Index]
-
Set VariableSet Disruption_SFX[Disruption_Integer_A] = Disruption_SFX[Disruption_Index]
-
Set VariableSet Disruption_Vision[Disruption_Integer_A] = Disruption_Vision[Disruption_Index]
-
-------- --------
-
Set VariableSet Disruption_Index = (Disruption_Index - 1)
-
Set VariableSet Disruption_Integer_A = (Disruption_Integer_A - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Disruption_Index Equal to 0
-
-
Then - Actions
-
Countdown Timer - Pause Disruption_Timer
-
Trigger - Turn off (This trigger)
-
-
Else - Actions
-
-
-
Else - Actions
-
-
-
-
-
-
Disruption Attack
-
Events
-
Unit - A unit enters (Playable map area)
-
-
Conditions
-
((Triggering unit) is an illusion) Equal to True
-
Disruption_CounterIllusion Less than 2
-
-
Actions
-
Set VariableSet Disruption_CounterIllusion = (Disruption_CounterIllusion + 1)
-
Set VariableSet Illusion_UnitIllusion = (Triggering unit)
-
Set VariableSet Disruption_CV = (Custom value of Illusion_Caster)
-
Unit - Order Illusion_UnitIllusion to Attack Disruption_TargetIllusion[Disruption_CV]
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Disruption_CounterIllusion Equal to 2
-
-
Then - Actions
-
Trigger - Turn off (This trigger)
-
-
Else - Actions
-
-
-
Attachments
Last edited: