- Joined
- Feb 8, 2013
- Messages
- 1,478
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
-
Events
-
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>
-
Events
-
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
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
For each (Integer AV_Loop_X) from 1 to AV_Index, do (Actions)
-
Events
-
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
-
If - Conditions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
For each (Integer AV_Loop_X) from 1 to AV_Index, do (Actions)
-
Events
-
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
-
If - Conditions
- 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
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
For each (Integer AV_Loop_X) from 1 to AV_Index, do (Actions)
-
Events
-
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
-
If - Conditions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
For each (Integer AV_Loop_X) from 1 to AV_Index, do (Actions)
-
Events