• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

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...
 
Level 6
Joined
Oct 4, 2011
Messages
226
Your LOOP trigger, that gets turned on doesnt have any events. is it supposed to be periodic? every .03 seconds or so.
 
Status
Not open for further replies.
Top