- Joined
- Feb 8, 2013
- Messages
- 1,479
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
-
-
-
-
-
-
-