• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

[Trigger] Problems with applying indexing system in 3 triggers

Status
Not open for further replies.
Level 12
Joined
Aug 12, 2008
Messages
350
Spell Description
Active Ability
Spell Type : Single Target
Cast Range : 100
Lyner grab hold of a target and toss the target high up in the air then shoot couple of arrows to the target.
Level 1: 1.5 seconds in the air
Level 2: 2 seconds in the air
Level 3: 2.5 seconds in the air
As everyone know, Hanky's dynamic indexing system is great but somehow I don't know how to apply it when facing 3 triggers.
Here goes the trigger:
  • Hypershot
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Hypershot
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HS_index_size Equal to 0
        • Then - Actions
          • Trigger - Turn on Hypershot float <gen>
          • Trigger - Turn on Hypershot strikes <gen>
        • Else - Actions
      • Set HS_index_size = (HS_index_size + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HS_index_size Greater than HS_index_max
        • Then - Actions
          • Set HS_index1[HS_index_size] = HS_index_size
          • Set HS_index_max = HS_index_size
        • Else - Actions
      • Set HS_index2 = HS_index1[HS_index_size]
      • -------- ======================================================== --------
      • Set HS_duration_count[HS_index2] = 0.00
      • Set HS_floatspeed[HS_index2] = 35.00
      • -------- ----- setting the caster and target ----- --------
      • Set HS_caster[HS_index2] = (Triggering unit)
      • Set HS_target[HS_index2] = (Target unit of ability being cast)
      • -------- ----- duration of target unit in the air ----- --------
      • Set HS_duration_max[HS_index2] = (1.00 + (0.50 x (Real((Level of Hypershot for HS_caster[HS_index2])))))
      • -------- ----- damage dealt per arrow ----- --------
      • Set HS_dmgPerArrow[HS_index2] = (10.00 + (10.00 x (Real((Level of Hypershot_attachment for HS_caster[HS_index2])))))
      • -------- ----- adding crow form ability to target to make it float ----- --------
      • Unit - Add Crow Form to HS_target[HS_index2]
      • Unit - Remove Crow Form from HS_target[HS_index2]
      • -------- ----- increase the caster's animation speed ----- --------
      • Animation - Change HS_caster[HS_index2]'s animation speed to 500.00% of its original speed
      • -------- ----- pause the caster and target ----- --------
      • Unit - Pause HS_caster[HS_index2]
      • Unit - Pause HS_target[HS_index2]
      • -------- ----- add invulnerable to target during float ----- --------
      • Unit - Add Invulnerable (Neutral) to HS_target[HS_index2]
      • -------- ----- adding attachment/special effects ----- --------
      • Unit - Add Hypershot_attachment to HS_caster[HS_index2]
      • -------- ----- adding locust to the caster ----- --------
      • Custom script: call UnitAddAbility(udg_HS_caster[udg_HS_index2], 'Aloc')
  • Hypershot float
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer HS_index3) from 1 to HS_index_size, do (Actions)
        • Loop - Actions
          • Set HS_index2 = HS_index1[HS_index3]
          • Animation - Change HS_target[HS_index2] flying height to ((Current flying height of HS_target[HS_index2]) + HS_floatspeed[HS_index2]) at 0.00
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Current flying height of HS_target[HS_index2]) Less than or equal to 550.00
            • Then - Actions
              • Set HS_floatspeed[HS_index2] = (HS_floatspeed[HS_index2] - 1.15)
            • Else - Actions
              • Set HS_floating[HS_index2] = True
              • Unit - Remove Invulnerable (Neutral) from HS_target[HS_index2]
              • Unit Group - Add HS_caster[HS_index2] to HS_strikegroup
              • Unit - Unpause HS_caster[HS_index2]
              • Unit - Order HS_caster[HS_index2] to Attack HS_target[HS_index2]
  • Hypershot strikes
    • Events
      • Time - Every 0.20 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in HS_strikegroup and do (Actions)
        • Loop - Actions
          • For each (Integer HS_index3) from 1 to HS_index_size, do (Actions)
            • Loop - Actions
              • Set HS_index2 = HS_index1[HS_index3]
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (HS_target[HS_index2] is alive) Equal to True
                  • HS_duration_count[HS_index2] Less than HS_duration_max[HS_index2]
                • Then - Actions
                  • Set HS_duration_count[HS_index2] = (HS_duration_count[HS_index2] + 0.20)
                  • Animation - Play HS_caster[HS_index2]'s attack animation
                  • Set HS_casterpoint = (Position of HS_caster[HS_index2])
                  • Unit - Create 1 dummy unit for (Owner of HS_caster[HS_index2]) at HS_casterpoint facing Default building facing degrees
                  • Set HS_dummy[HS_index2] = (Last created unit)
                  • Unit - Add Hypershot_dummy to HS_dummy[HS_index2]
                  • Unit - Order HS_dummy[HS_index2] to Human Mountain King - Storm Bolt HS_target[HS_index2]
                  • Unit - Cause HS_caster[HS_index2] to damage HS_target[HS_index2], dealing HS_dmgPerArrow[HS_index2] damage of attack type Spells and damage type Normal
                  • Custom script: call RemoveLocation (udg_HS_casterpoint)
                • Else - Actions
                  • Animation - Change HS_target[HS_index2] flying height to 0.00 at 1000.00
                  • Unit - Remove Hypershot_attachment from HS_caster[HS_index2]
                  • Animation - Change HS_caster[HS_index2]'s animation speed to 100.00% of its original speed
                  • Unit Group - Remove HS_caster[HS_index2] from HS_strikegroup
                  • -------- ----- complete way to remove locust ----- --------
                  • Unit - Hide HS_caster[HS_index2]
                  • Custom script: call UnitRemoveAbility(udg_HS_caster[udg_HS_index2], 'Aloc')
                  • Unit - Unhide HS_caster[HS_index2]
                  • Unit - Add Bear Form to HS_caster[HS_index2]
                  • Unit - Order HS_caster[HS_index2] to Night Elf Druid Of The Claw - Bear Form
                  • Unit - Remove Bear Form from HS_caster[HS_index2]
                  • -------- ----- -------------------------------------------------- ----- --------
                  • Set HS_index1[HS_index3] = HS_index1[HS_index_size]
                  • Set HS_index1[HS_index_size] = HS_index2
                  • Set HS_index_size = (HS_index_size - 1)
                  • Set HS_index3 = (HS_index3 - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • HS_index_size Equal to 0
                    • Then - Actions
                      • Trigger - Turn off Hypershot float <gen>
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
Okay, the problem is that this spell works for single caster only. When 2 caster cast this spell, one after another, it floats up properly but somehow when the first target drop down, the second target drop down too although the duration haven't over. I guess the third trigger got problems as it uses the same index as the second trigger.
Can anyone help me with this?


EDIT: Solved.
 
Last edited:
Status
Not open for further replies.
Top