• Check out the results of the Techtree Contest #19!
  • 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.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

Elune's arrow not working spell.

Status
Not open for further replies.
Level 8
Joined
Aug 8, 2011
Messages
297
-------- IN OBJECT EDITOR, REMOVE CLASSIFICATION 'MECHANICALS' FROM STRUCTURES IN YOUR MAP [E.G. TOWERS] --------

-------- IN OBJECT EDITOR, ADD CLASSIFICATION 'MECHANICALS' TO MECHANICALS IN YOUR MAP [E.G. SIEGE ENGINES] --------

hi i got a problem with Elune's spell, is it becouse i need to do the above lines ? if it is, can someone tell me how to do that, i dont understand the lines.


here is the triggers:
  • Variables
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- !!! TAKE NOTE: !!! --------
      • -------- DO THE BELOW TO PREVENT BUGS --------
      • -------- //ONLY APPLIES TO STARFALL AND ELUNE'S ARROW\\ --------
      • -------- IN OBJECT EDITOR, REMOVE CLASSIFICATION 'MECHANICALS' FROM STRUCTURES IN YOUR MAP [E.G. TOWERS] --------
      • -------- IN OBJECT EDITOR, ADD CLASSIFICATION 'MECHANICALS' TO MECHANICALS IN YOUR MAP [E.G. SIEGE ENGINES] --------
      • -------- !!!////////////////////////////////////////////////////////!!! --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- //////////////////////////////////////STARFALL\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ --------
      • -------- //THE ABILITY ID --------
      • Set Starfall_Ability = Starfall POTM
      • -------- ///////////////////////////////////// --------
      • -------- //THE UNIT ID --------
      • Set Starfall_Unit_Effect = Starfall_Effect
      • -------- ///////////////////////////////////// --------
      • -------- //The Special Effect of Starfall --------
      • Set Starfall_Effect_Path = Abilities\Spells\NightElf\Starfall\StarfallTarget.mdl
      • -------- ///////////////////////////////////// --------
      • -------- //THE DAMAGE OF STARFALL. THE INDEX CORRESPONDS TO THE LEVEL OF THE SKILL --------
      • Set Starfall_Damage[1] = 75.00
      • Set Starfall_Damage[2] = 150.00
      • Set Starfall_Damage[3] = 225.00
      • Set Starfall_Damage[4] = 300.00
      • -------- ///////////////////////////////////// --------
      • -------- //DOES STARFALL DAMAGE MECHANICALS --------
      • Set Starfall_Damage_Mechanicals = False
      • -------- ///////////////////////////////////// --------
      • -------- //DOES STARFALL DAMAGE STRUCTURES --------
      • Set Starfall_Damage_Structures = True
      • -------- ///////////////////////////////////// --------
      • -------- //THE AoE of the Starfall. --------
      • Set Starfall_AoE = 600.00
      • -------- ///////////////////////////////////// --------
      • -------- //THE AoE of the Starfall for the extra hit unit. --------
      • Set Starfall_AoE_Randomed = 200.00
      • -------- ///////////////////////////////////// --------
      • -------- ///////////Advanced --------
      • Hashtable - Create a hashtable
      • Set Starfall_Hashtable = (Last created hashtable)
      • -------- //////////////////////////////////////////////////////////////////////END OF STARFALL --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- //////////////////////////////////////ELUNE'S ARROW\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ --------
      • -------- //THE ABILITY ID --------
      • Set Arrow_Ability = Elune's Arrow
      • Set Arrow_Ability_Stun = Arrow_Stun
      • -------- ///////////////////////////////////// --------
      • -------- //THE UNIT ID --------
      • Set Arrow_Unit_Projectile = Arrow_Projectile
      • Set Arrow_Unit_Dummy = Arrow_Stun_Object
      • -------- ///////////////////////////////////// --------
      • -------- //THE DAMAGE OF THE ARROW. THE INDEX CORRESPONDS TO THE LEVEL OF THE SKILL --------
      • Set Arrow_Damage[1] = 90.00
      • Set Arrow_Damage[2] = 180.00
      • Set Arrow_Damage[3] = 270.00
      • Set Arrow_Damage[4] = 360.00
      • -------- ///////////////////////////////////// --------
      • -------- //THE MAXIMUM DISTANCE OF THE ARROW --------
      • Set Arrow_Maximum_Distance = 3000.00
      • -------- ///////////////////////////////////// --------
      • -------- //ARROW OFFSET --------
      • Set Arrow_Offset = 30.00
      • -------- ///////////////////////////////////// --------
      • -------- //ARROW SPEED --------
      • Set Arrow_Speed = 0.03
      • -------- ///////////////////////////////////// --------
      • -------- //ARROW Area of Effect --------
      • Set Arrow_AoE = 125.00
      • -------- ///////////////////////////////////// --------
      • -------- //CAN ARROW PASS THROUGH ALLIES --------
      • Set Arrow_Pass_Allies = True
      • -------- ///////////////////////////////////// --------
      • -------- //CAN ARROW PASS THROUGH STRUCTURES --------
      • Set Arrow_Pass_Structures = True
      • -------- ///////////////////////////////////// --------
      • -------- //CAN ARROW DAMAGE STRUCTURES --------
      • -------- [NOTE : udg_Arrow_Pass_Structures must be set to false] --------
      • Set Arrow_Damage_Structures = False
      • -------- ///////////////////////////////////// --------
      • -------- //CAN ARROW PASS THROUGH MECHANICALS --------
      • Set Arrow_Pass_Mechanicals = True
      • -------- ///////////////////////////////////// --------
      • -------- //CAN ARROW DAMAGE MECHANICALS --------
      • -------- [NOTE : udg_Arrow_Pass_Mechanicals must be set to false] --------
      • Set Arrow_Damage_Mechanicals = False
      • -------- ///////////////////////////////////// --------
      • -------- ///////////Advanced --------
      • Trigger - Add to ArrowMove <gen> the event (Time - Every Arrow_Speed seconds of game time)
      • Trigger - Turn off ArrowMove <gen>
      • -------- //////////////////////////////////////////////////////////////////////END OF ELUNE'S ARROW --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- //////////////////////////////////////LEAP\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ --------
      • -------- //THE ABILITY ID --------
      • Set Leap_Ability = Leap
      • Set Leap_Ability_Buff = Leap_Buff
      • -------- ///////////////////////////////////// --------
      • -------- //THE UNIT ID --------
      • Set Leap_Unit_Dummy = Leap_Dummy_Unit
      • -------- ///////////////////////////////////// --------
      • -------- //THE RANGE OF LEAP. THE INDEX CORRESPONDS TO THE LEVEL OF THE SKILL --------
      • Set Leap_Maximum_Distance[1] = 630.00
      • Set Leap_Maximum_Distance[2] = 690.00
      • Set Leap_Maximum_Distance[3] = 780.00
      • Set Leap_Maximum_Distance[4] = 840.00
      • -------- //////////////////////////////////////////////////////////////////////END OF LEAP --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- //////////////////////////////////////MOONLIGHT SHADOW\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ --------
      • -------- //THE ABILITY ID --------
      • Set MS_Ability = Moonlight Shadow
      • Set MS_Ability_Buff = MS_Invisibility
      • -------- ///////////////////////////////////// --------
      • -------- //The Special Effect of Moonlight Shadow --------
      • Set MSEffectPath = Abilities\Spells\Human\Invisibility\InvisibilityTarget.mdl
      • -------- ///////////////////////////////////// --------
      • -------- //THE DURATION OF INVISIBILITY --------
      • Set MS_Duration = 11.00
      • -------- ///////////////////////////////////// --------
      • -------- ///////////Advanced --------
      • Hashtable - Create a hashtable
      • Set MS_Hashtable = (Last created hashtable)
      • -------- //////////////////////////////////////////////////////////////////////END OF MOONLIGHT SHADOW --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- DO NOT COPY: --------
      • Custom script: call DestroyTrigger(gg_trg_Variables)

  • ArrowCast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Arrow_Ability
    • Actions
      • -------- //ONLY IF WHERE THERE ARE NO INSTANCES IT WILL START TRIGGER OF MOVING THE ARROW --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Arrow_MUI Equal to False
        • Then - Actions
          • Trigger - Turn on ArrowMove <gen>
        • Else - Actions
      • -------- ///////////////////////// --------
      • Set Arrow_MUI = True
      • Set Arrow_MUI_2 = (Arrow_MUI_2 + 1)
      • Set Arrow_CastingUnit[Arrow_MUI_2] = (Triggering unit)
      • Set Arrow_Default_Point[Arrow_MUI_2] = (Position of (Triggering unit))
      • Set Arrow_Point[Arrow_MUI_2] = (Position of (Triggering unit))
      • Set Arrow_Target_Point = (Target point of ability being cast)
      • Set Arrow_Angle[Arrow_MUI_2] = (Angle from Arrow_Default_Point[Arrow_MUI_2] to Arrow_Target_Point)
      • Set Arrow_Level[Arrow_MUI_2] = (Level of Arrow_Ability for (Triggering unit))
      • Unit - Create 1 Arrow_Unit_Projectile for (Owner of (Triggering unit)) at Arrow_Default_Point[Arrow_MUI_2] facing Arrow_Angle[Arrow_MUI_2] degrees
      • Unit - Turn collision for (Last created unit) Off
      • Unit - Add Storm Crow Form to (Last created unit)
      • Set Arrow[Arrow_MUI_2] = (Last created unit)
      • -------- REMOVING LEAKS --------
      • Custom script: call RemoveLocation(udg_Arrow_Target_Point)

  • ArrowMove
    • Events
    • Conditions
    • Actions
      • For each (Integer A) from 1 to Arrow_MUI_2, do (Actions)
        • Loop - Actions
          • Set Arrow_Point[(Integer A)] = (Arrow_Point[(Integer A)] offset by Arrow_Offset towards Arrow_Angle[(Integer A)] degrees)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Playable map area) contains Arrow_Point[(Integer A)]) Equal to True
            • Then - Actions
              • Unit - Move Arrow[(Integer A)] instantly to Arrow_Point[(Integer A)]
            • Else - Actions
              • Unit - Kill Arrow[(Integer A)]
              • Custom script: set udg_Arrow[GetForLoopIndexA()] = null
          • -------- //UNITS IN RANGE --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Arrow_Pass_Allies Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Arrow_Pass_Structures Equal to True
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Arrow_Pass_Mechanicals Equal to True
                    • Then - Actions
                      • Set Arrow_Group[(Integer A)] = (Units within Arrow_AoE of Arrow_Point[(Integer A)] matching (((Unit-type of (Matching unit)) Not equal to Arrow_Unit_Projectile) and (((Matching unit) Not equal to Arrow_CastingUnit[(Integer A)]) and ((((Matching unit) is alive) Equal to True) and ((((Matchi
                    • Else - Actions
                      • Set Arrow_Group[(Integer A)] = (Units within Arrow_AoE of Arrow_Point[(Integer A)] matching (((Unit-type of (Matching unit)) Not equal to Arrow_Unit_Projectile) and (((Matching unit) Not equal to Arrow_CastingUnit[(Integer A)]) and ((((Matching unit) is alive) Equal to True) and ((((Matchi
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Arrow_Pass_Mechanicals Equal to True
                    • Then - Actions
                      • Set Arrow_Group[(Integer A)] = (Units within Arrow_AoE of Arrow_Point[(Integer A)] matching (((Unit-type of (Matching unit)) Not equal to Arrow_Unit_Projectile) and (((Matching unit) Not equal to Arrow_CastingUnit[(Integer A)]) and ((((Matching unit) is alive) Equal to True) and ((((Matchi
                    • Else - Actions
                      • Set Arrow_Group[(Integer A)] = (Units within Arrow_AoE of Arrow_Point[(Integer A)] matching (((Unit-type of (Matching unit)) Not equal to Arrow_Unit_Projectile) and (((Matching unit) Not equal to Arrow_CastingUnit[(Integer A)]) and ((((Matching unit) is alive) Equal to True) and (((Owner o
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Arrow_Pass_Structures Equal to True
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Arrow_Pass_Mechanicals Equal to True
                    • Then - Actions
                      • Set Arrow_Group[(Integer A)] = (Units within Arrow_AoE of Arrow_Point[(Integer A)] matching (((Unit-type of (Matching unit)) Not equal to Arrow_Unit_Projectile) and (((Matching unit) Not equal to Arrow_CastingUnit[(Integer A)]) and ((((Matching unit) is alive) Equal to True) and ((((Matchi
                    • Else - Actions
                      • Set Arrow_Group[(Integer A)] = (Units within Arrow_AoE of Arrow_Point[(Integer A)] matching (((Unit-type of (Matching unit)) Not equal to Arrow_Unit_Projectile) and (((Matching unit) Not equal to Arrow_CastingUnit[(Integer A)]) and ((((Matching unit) is alive) Equal to True) and (((Matchin
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Arrow_Pass_Mechanicals Equal to True
                    • Then - Actions
                      • Set Arrow_Group[(Integer A)] = (Units within Arrow_AoE of Arrow_Point[(Integer A)] matching (((Unit-type of (Matching unit)) Not equal to Arrow_Unit_Projectile) and (((Matching unit) Not equal to Arrow_CastingUnit[(Integer A)]) and ((((Matching unit) is alive) Equal to True) and (((Matchin
                    • Else - Actions
                      • Set Arrow_Group[(Integer A)] = (Units within Arrow_AoE of Arrow_Point[(Integer A)] matching (((Unit-type of (Matching unit)) Not equal to Arrow_Unit_Projectile) and (((Matching unit) Not equal to Arrow_CastingUnit[(Integer A)]) and (((Matching unit) is alive) Equal to True))))
          • -------- /////////////////// --------
          • Set Arrow_Unit[(Integer A)] = (Random unit from Arrow_Group[(Integer A)])
          • Custom script: call DestroyGroup(udg_Arrow_Group[GetForLoopIndexA()])
          • Set Arrow_Distance[(Integer A)] = (Distance between Arrow_Default_Point[(Integer A)] and Arrow_Point[(Integer A)])
          • -------- //IF IT HITS A UNIT OR MAX RANGE --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Arrow_Distance[(Integer A)] Greater than or equal to Arrow_Maximum_Distance
            • Then - Actions
              • Unit - Kill Arrow[(Integer A)]
              • Custom script: set udg_Arrow[GetForLoopIndexA()] = null
            • Else - Actions
              • -------- //DAMAGE SYSTEM --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Arrow_Unit[(Integer A)] Not equal to No unit
                • Then - Actions
                  • Unit - Create 1 Arrow_Unit_Dummy for Player 1 (Red) at Arrow_Point[(Integer A)] facing Arrow_Angle[(Integer A)] degrees
                  • Set Arrow_Dummy_Unit[(Integer A)] = (Last created unit)
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • -------- //STUN DURATION --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Arrow_Distance[(Integer A)] Greater than (Arrow_Maximum_Distance / 2.00)
                    • Then - Actions
                      • Unit - Set level of Arrow_Ability_Stun for (Last created unit) to 10
                    • Else - Actions
                      • Unit - Set level of Arrow_Ability_Stun for (Last created unit) to (Integer((Arrow_Distance[(Integer A)] / 150.00)))
                  • -------- /////////////////// --------
                  • -------- //CHECK BOOLEAN FOR STRUCTURE AND MECHANICALS AND DAMAGE ACCORDINGLY --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Owner of Arrow[(Integer A)]) is an enemy of (Owner of Arrow_Unit[(Integer A)])) Equal to True
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Arrow_Unit[(Integer A)] is A structure) Equal to True
                        • Then - Actions
                          • -------- //IF IT IS A STRUCTURE... --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • Arrow_Damage_Structures Equal to True
                            • Then - Actions
                              • Unit - Order Arrow_Unit[(Integer A)] to Hold Position
                              • Unit - Order Arrow_Dummy_Unit[(Integer A)] to Human Mountain King - Storm Bolt Arrow_Unit[(Integer A)]
                              • Unit - Cause (Last created unit) to damage Arrow_Unit[(Integer A)], dealing Arrow_Damage[Arrow_Level[(Integer A)]] damage of attack type Magic and damage type Magic
                              • Unit - Order Arrow_Unit[(Integer A)] to Stop
                            • Else - Actions
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Arrow_Unit[(Integer A)] is Mechanical) Equal to True
                            • Then - Actions
                              • -------- //IF IT IS MECHANICAL... --------
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • Arrow_Damage_Mechanicals Equal to True
                                • Then - Actions
                                  • Unit - Order Arrow_Unit[(Integer A)] to Hold Position
                                  • Unit - Order Arrow_Dummy_Unit[(Integer A)] to Human Mountain King - Storm Bolt Arrow_Unit[(Integer A)]
                                  • Unit - Cause (Last created unit) to damage Arrow_Unit[(Integer A)], dealing Arrow_Damage[Arrow_Level[(Integer A)]] damage of attack type Magic and damage type Magic
                                  • Unit - Order Arrow_Unit[(Integer A)] to Stop
                                • Else - Actions
                            • Else - Actions
                              • -------- //ORGANIC UNITS --------
                              • Unit - Order Arrow_Unit[(Integer A)] to Hold Position
                              • Unit - Order Arrow_Dummy_Unit[(Integer A)] to Human Mountain King - Storm Bolt Arrow_Unit[(Integer A)]
                              • Unit - Cause (Last created unit) to damage Arrow_Unit[(Integer A)], dealing Arrow_Damage[Arrow_Level[(Integer A)]] damage of attack type Magic and damage type Magic
                              • Unit - Order Arrow_Unit[(Integer A)] to Stop
                    • Else - Actions
                  • -------- /////////////////// --------
                  • Unit - Kill Arrow[(Integer A)]
                  • Custom script: set udg_Arrow[GetForLoopIndexA()] = null
                  • Custom script: set udg_Arrow_Unit[GetForLoopIndexA()] = null
                • Else - Actions
              • -------- /////////////////// --------
          • -------- /////////////////// --------
      • Set Temp_Group = (Units owned by (Player(1)) matching ((((Matching unit) is alive) Equal to True) and ((Unit-type of (Matching unit)) Equal to Arrow_Unit_Projectile)))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in Temp_Group) Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
          • Set Arrow_MUI = False
          • For each (Integer A) from 1 to Arrow_MUI_2, do (Actions)
            • Loop - Actions
              • Unit - Remove Arrow[(Integer A)] from the game
              • Custom script: set udg_Arrow_CastingUnit[GetForLoopIndexA()] = null
              • Custom script: call RemoveLocation(udg_Arrow_Point[GetForLoopIndexA()])
              • Custom script: call RemoveLocation(udg_Arrow_Default_Point[GetForLoopIndexA()])
          • Set Arrow_MUI_2 = 0
        • Else - Actions
      • Custom script: call DestroyGroup(udg_Temp_Group)


what is wrong with Elune's arrow ? when i used the spell there dont come any arrow or effects from it.
 
Last edited:
this...

[hidden=whateveryouwantthebuttonstosay] Then put the trigger tags here [/hidden]

checking the map... right now all I can say is that the structure of that elune's arrow is not so good... especially the indexing... it might be causing the errors... I think you could add debug messages maybe every after some actions to check which actions run and at which part it stops working... I cannot really much help with a full trigger review coz I really don't like looking at GUI that much...
 
Status
Not open for further replies.
Back
Top