- Joined
- Feb 8, 2013
- Messages
- 1,476
I read this: Tutorial, visualize dynamic indexing
When the trigger runs one instance it works fine. If I disable the de-index section in the final trigger, it works fine MUI. But, that is not shutting down the loops. When I enable the deindex, it stops the 'AV Loop Fire' trigger for the second instance. I know I must be close but I can't see the end of this tunnel. Please help.
Attached test map includes 2 heroes with the spell for mui testing.
It also contains 3 other spells which use a different (my own less efficient) de-indexing system.
I read this: Tutorial, visualize dynamic indexing
and this, and I'm still lost.
When the trigger runs one instance it works fine. If I disable the de-index section in the final trigger, it works fine MUI. But, that is not shutting down the loops. When I enable the deindex, it stops the 'AV Loop Fire' trigger for the second instance. I know I must be close but I can't see the end of this tunnel. Please help.
Attached test map includes 2 heroes with the spell for mui testing.
It also contains 3 other spells which use a different (my own less efficient) de-indexing system.
I read this: Tutorial, visualize dynamic indexing
and this, and I'm still lost.
-
AV Config
-

Events
-


Time - Elapsed game time is 0.00 seconds
-
-

Conditions
-

Actions
-


Set AV_Ability = Aeros Vex
-


Set AV_StompEfx = Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
-


Set AV_RedFxCaster = Abilities\Weapons\VengeanceMissile\VengeanceMissile.mdl
-


Set AV_LightningStrike = Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
-


Set AV_GroundSplatFx = Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
-


Set AV_MaxHeight = 300.00
-
-
-
AV Cast
-

Events
-


Unit - A unit Starts the effect of an ability
-
-

Conditions
-


(Ability being cast) Equal to AV_Ability
-
-

Actions
-


Set AV_Index = (AV_Index + 1)
-


Set AV_Caster[AV_Index] = (Triggering unit)
-


Set AV_BoolMaxHi[AV_Index] = False
-


Set AV_FlyingHeight[AV_Index] = 0.00
-


Set AV_Timer[AV_Index] = 0
-


Set AV_Timer2[AV_Index] = 0
-


Unit - Pause AV_Caster[AV_Index]
-


Custom script: call SetUnitAnimationByIndex (udg_AV_Caster[udg_AV_Index], 3)
-


Unit - Add Crow Form to AV_Caster[AV_Index]
-


Unit - Remove Crow Form from AV_Caster[AV_Index]
-


Trigger - Turn on AV Wait <gen>
-
-
-
AV Wait
-

Events
-


Time - Every 0.03 seconds of game time
-
-

Conditions
-

Actions
-


For each (Integer AV_Loop_X) from 1 to AV_Index, do (Actions)
-



Loop - Actions
-




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





If - Conditions
-






AV_Timer[AV_Loop_X] Less than 18
-
-





Then - Actions
-






Set AV_Timer[AV_Loop_X] = (AV_Timer[AV_Loop_X] + 1)
-
-





Else - Actions
-






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







If - Conditions
-








AV_Timer[AV_Loop_X] Equal to 18
-
-







Then - Actions
-








Set AV_Timer[AV_Loop_X] = 19
-








Set AV_Loc = (Position of AV_Caster[AV_Loop_X])
-








Special Effect - Create a special effect at AV_Loc using AV_StompEfx
-








Special Effect - Destroy (Last created special effect)
-








Custom script: call RemoveLocation(udg_AV_Loc)
-








Special Effect - Create a special effect attached to the foot, left of AV_Caster[AV_Index] using Abilities\Spells\Orc\FeralSpirit\feralspirittarget.mdl
-








Special Effect - Destroy (Last created special effect)
-








Special Effect - Create a special effect attached to the foot, right of AV_Caster[AV_Index] using Abilities\Spells\Orc\FeralSpirit\feralspirittarget.mdl
-








Special Effect - Destroy (Last created special effect)
-








Trigger - Turn on AV Loop Ascending <gen>
-
-







Else - Actions
-








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









If - Conditions
-










AV_Index Equal to 0
-
-









Then - Actions
-










Trigger - Turn off (This trigger)
-
-









Else - Actions
-
-
-
-
-
-
-
-
-
-
AV Loop Ascending
-

Events
-


Time - Every 0.03 seconds of game time
-
-

Conditions
-

Actions
-


For each (Integer AV_Loop_X) from 1 to AV_Index, do (Actions)
-



Loop - Actions
-




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





If - Conditions
-






AV_BoolMaxHi[AV_Loop_X] Equal to False
-






AV_Timer[AV_Loop_X] Equal to 19
-
-





Then - Actions
-






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







If - Conditions
-








AV_FlyingHeight[AV_Loop_X] Less than AV_MaxHeight
-
-







Then - Actions
-








Set AV_FlyingHeight[AV_Loop_X] = (AV_FlyingHeight[AV_Loop_X] + 15.00)
-








Animation - Change AV_Caster[AV_Loop_X] flying height to AV_FlyingHeight[AV_Loop_X] at 0.00
-
-







Else - Actions
-








Set AV_BoolMaxHi[AV_Loop_X] = True
-








Animation - Change AV_Caster[AV_Loop_X]'s animation speed to 100.00% of its original speed
-








Animation - Play AV_Caster[AV_Loop_X]'s spell animation
-








Trigger - Turn on AV Loop Firing <gen>
-








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









If - Conditions
-










AV_Index Equal to 0
-
-









Then - Actions
-










Trigger - Turn off (This trigger)
-
-









Else - Actions
-
-
-
-
-





Else - Actions
-
-
-
-
-
-
AV Loop Firing
-

Events
-


Time - Every 0.05 seconds of game time
-
-

Conditions
-

Actions
-


For each (Integer AV_Loop_X) from 1 to AV_Index, do (Actions)
-



Loop - Actions
-




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





If - Conditions
-






AV_BoolMaxHi[AV_Loop_X] Equal to True
-






AV_Timer2[AV_Loop_X] Less than 40
-
-





Then - Actions
-






Game - Display to (All players) the text: ((String(AV_Timer2[AV_Loop_X])) + ((( + (String(AV_Loop_X))) + ) + (String(AV_Index))))
-






Set AV_Timer2[AV_Loop_X] = (AV_Timer2[AV_Loop_X] + 1)
-






Set AV_Loc = (Position of AV_Caster[AV_Loop_X])
-






Set AV_Angle = (Facing of AV_Caster[AV_Loop_X])
-






Set AV_Loc = (AV_Loc offset by 25.00 towards AV_Angle degrees)
-






Set AV_Offset = ((Real(AV_Timer2[AV_Loop_X])) x 20.00)
-






Set AV_LocOffset = (AV_Loc offset by AV_Offset towards AV_Angle degrees)
-






Lightning - Create a Mana Flare lightning effect from source AV_Loc to target AV_LocOffset
-






Lightning - Destroy (Last created lightning effect)
-






Set AV_X1 = (X of AV_Loc)
-






Set AV_X2 = (X of AV_LocOffset)
-






Set AV_Y1 = (Y of AV_Loc)
-






Set AV_Y2 = (Y of AV_LocOffset)
-






Custom script: set udg_AV_Z1 = GetLocationZ(udg_AV_Loc)
-






Set AV_Z1 = (AV_Z1 + 420.00)
-






Custom script: set udg_AV_Z2 = GetLocationZ(udg_AV_LocOffset)
-






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







If - Conditions
-








AV_Timer2[AV_Loop_X] Equal to 1
-
-







Then - Actions
-








Custom script: set udg_AV_LightningFx[udg_AV_Loop_X] = AddLightningEx("AFOD", true, udg_AV_X1, udg_AV_Y1, udg_AV_Z1, udg_AV_X2, udg_AV_Y2, udg_AV_Z2)
-








Lightning - Change color of AV_LightningFx[AV_Loop_X] to (0.70 0.80 1.00) with 1.00 alpha
-
-







Else - Actions
-
-






Custom script: call MoveLightningEx(udg_AV_LightningFx[udg_AV_Loop_X], true, udg_AV_X1, udg_AV_Y1, udg_AV_Z1, udg_AV_X2, udg_AV_Y2, udg_AV_Z2)
-






Special Effect - Create a special effect attached to the hand, left of AV_Caster[AV_Loop_X] using AV_RedFxCaster
-






Special Effect - Destroy (Last created special effect)
-






Special Effect - Create a special effect attached to the hand, right of AV_Caster[AV_Loop_X] using AV_RedFxCaster
-






Special Effect - Destroy (Last created special effect)
-






Special Effect - Create a special effect at AV_LocOffset using AV_GroundSplatFx
-






Special Effect - Destroy (Last created special effect)
-






Special Effect - Create a special effect at AV_LocOffset using AV_LightningStrike
-






Special Effect - Destroy (Last created special effect)
-






Special Effect - Create a special effect attached to the origin of AV_Caster[AV_Loop_X] using Abilities\Spells\Orc\FeralSpirit\feralspirittarget.mdl
-






Special Effect - Destroy (Last created special effect)
-






Custom script: call RemoveLocation(udg_AV_Loc)
-






Custom script: call RemoveLocation(udg_AV_LocOffset)
-
-





Else - Actions
-






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







If - Conditions
-








AV_Timer2[AV_Loop_X] Equal to 40
-
-







Then - Actions
-








Set AV_Timer2[AV_Loop_X] = 41
-








Lightning - Destroy AV_LightningFx[AV_Loop_X]
-








Special Effect - Destroy AV_Fx[AV_Loop_X]
-








Special Effect - Destroy AV_Fx2[AV_Loop_X]
-








Trigger - Turn on AV Loop Descending <gen>
-
-







Else - Actions
-








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









If - Conditions
-










AV_Index Equal to 0
-
-









Then - Actions
-










Trigger - Turn off (This trigger)
-
-









Else - Actions
-
-
-
-
-
-
-
-
-
-
AV Loop Descending
-

Events
-


Time - Every 0.03 seconds of game time
-
-

Conditions
-

Actions
-


For each (Integer AV_Loop_X) from 1 to AV_Index, do (Actions)
-



Loop - Actions
-




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





If - Conditions
-






AV_Timer2[AV_Loop_X] Equal to 41
-






AV_FlyingHeight[AV_Loop_X] Greater than 4.00
-
-





Then - Actions
-






Set AV_FlyingHeight[AV_Loop_X] = (AV_FlyingHeight[AV_Loop_X] - 10.00)
-






Animation - Change AV_Caster[AV_Loop_X] flying height to AV_FlyingHeight[AV_Loop_X] at 0.00
-
-





Else - Actions
-






Unit - Unpause AV_Caster[AV_Loop_X]
-






Animation - Change AV_Caster[AV_Loop_X]'s animation speed to 100.00% of its original speed
-






Animation - Reset AV_Caster[AV_Loop_X]'s animation
-






------If I disable this deindex then the spell works MUI no problems----
-






Set AV_Caster[AV_Loop_X] = AV_Caster[AV_Index]
-






Set AV_Timer[AV_Loop_X] = AV_Timer[AV_Index]
-






Set AV_Timer2[AV_Loop_X] = AV_Timer2[AV_Index]
-






Set AV_BoolMaxHi[AV_Loop_X] = AV_BoolMaxHi[AV_Index]
-






Set AV_LightningFx[AV_Loop_X] = AV_LightningFx[AV_Index]
-






Set AV_FlyingHeight[AV_Loop_X] = AV_FlyingHeight[AV_Index]
-






Set AV_Index = (AV_Index - 1)
-






Set AV_Loop_X = (AV_Loop_X - 1)
-






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







If - Conditions
-








AV_Index Equal to 0
-
-







Then - Actions
-








Trigger - Turn off (This trigger)
-
-







Else - Actions
-
-
-
-
-
-
-







