• 🏆 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!

Why is this triggered ability sometimes bugging the hero?

Status
Not open for further replies.
Level 14
Joined
Jul 19, 2007
Messages
770
I have an ability named "Shield Bash" in my map that sometimes seems to be bugging the hero to remove it's model and only become a shadow so that no one can click it. Why is this happening sometimes!? I can't find the problem...
  • first Copy
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Shield Bash
    • Actions
      • Set VariableSet TempLoc = (Position of Boromir 0230 <gen>)
      • Set VariableSet targecikjumpa_Copy = (Position of (Target unit of ability being cast))
      • Set VariableSet LeapDistance_Copy = (Distance between TempLoc and targecikjumpa_Copy)
      • Custom script: if (IsPointWalkable(GetLocationX(udg_targecikjumpa_Copy),GetLocationY(udg_targecikjumpa_Copy))) then
      • Custom script: else
      • Unit - Order Boromir 0230 <gen> to Stop.
      • Game - Display to (Player group((Owner of Boromir 0230 <gen>))) the text: |cffffcc00Target un...
      • Custom script: endif
      • Custom script: call RemoveLocation (udg_TempLoc)
      • Custom script: call RemoveLocation(udg_targecikjumpa_Copy)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • LeapDistance_Copy Less than 150.00
        • Then - Actions
          • Unit - Order Boromir 0230 <gen> to Stop.
          • Game - Display to (Player group((Owner of Boromir 0230 <gen>))) the text: |cffffcc00Target is...
        • Else - Actions
  • second Copy
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Shield Bash
    • Actions
      • Set VariableSet TempLoc = (Position of Boromir 0230 <gen>)
      • Set VariableSet targecikjumpa_Copy = (Position of (Target unit of ability being cast))
      • Set VariableSet LeapDistance_Copy = (Distance between TempLoc and targecikjumpa_Copy)
      • Set VariableSet skok_Copy = (TempLoc offset by 20.00 towards LeapDistance_Copy degrees.)
      • Custom script: call RemoveLocation (udg_TempLoc)
      • Unit - Turn collision for Boromir 0230 <gen> Off.
      • Unit - Add Crow Form to Boromir 0230 <gen>
      • Unit - Remove Crow Form from Boromir 0230 <gen>
      • Trigger - Turn on third Copy <gen>
      • Unit - Add Shockwave (Shield Bash) to Boromir 0230 <gen>
      • Animation - Add the defend animation tag to Boromir 0230 <gen>
      • Animation - Play Boromir 0230 <gen>'s defend animation
      • Unit - Make Boromir 0230 <gen> Invulnerable
      • Unit - Pause Boromir 0230 <gen>
  • third Copy
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Set VariableSet TempLoc = (Position of Boromir 0230 <gen>)
      • Set VariableSet LeapDistance_Copy = (Distance between TempLoc and targecikjumpa_Copy)
      • Set VariableSet skok_Copy = (TempLoc offset by 20.00 towards (Angle from TempLoc to targecikjumpa_Copy) degrees.)
      • Custom script: if (IsPointWalkable(GetLocationX(udg_skok_Copy),GetLocationY(udg_skok_Copy))) then
      • Unit - Move Boromir 0230 <gen> instantly to skok_Copy
      • Set VariableSet newLoc_Copy = (Position of Boromir 0230 <gen>)
      • Custom script: endif
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • LeapDistance_Copy Less than or equal to 15.00
              • (Distance between newLoc_Copy and TempLoc) Less than 15.00
        • Then - Actions
          • Set VariableSet skok_Copy = targecikjumpa_Copy
          • Trigger - Turn off (This trigger)
          • Unit - Unpause Boromir 0230 <gen>
          • Unit - Make Boromir 0230 <gen> Vulnerable
          • Set VariableSet TempLoc = (Position of Boromir 0230 <gen>)
          • Unit - Create 1 Dummy for (Owner of Boromir 0230 <gen>) at TempLoc facing Default building facing degrees
          • Unit - Add Shield Bash (AOE Damage & Stun) to (Last created unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Shield Bash for Boromir 0230 <gen>) Equal to 2
            • Then - Actions
              • Unit - Set level of Shield Bash (AOE Damage & Stun) for (Last created unit) to 2
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Shield Bash for Boromir 0230 <gen>) Equal to 3
            • Then - Actions
              • Unit - Set level of Shield Bash (AOE Damage & Stun) for (Last created unit) to 3
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Shield Bash for Boromir 0230 <gen>) Equal to 4
            • Then - Actions
              • Unit - Set level of Shield Bash (AOE Damage & Stun) for (Last created unit) to 4
            • Else - Actions
          • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
          • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp.
          • Custom script: call RemoveLocation (udg_TempLoc)
          • Unit - Turn collision for Boromir 0230 <gen> On.
          • Custom script: call RemoveLocation(udg_targecikjumpa_Copy)
          • Custom script: call RemoveLocation(udg_newLoc_Copy)
          • Custom script: call RemoveLocation (udg_skok_Copy)
          • Unit - Remove Shockwave (Shield Bash) from Boromir 0230 <gen>
          • Animation - Remove the defend animation tag to Boromir 0230 <gen>
        • Else - Actions
      • Custom script: call RemoveLocation (udg_TempLoc)
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,496
Probably has something to do with the Model and the Animations.

Test it out on a different Model or remove the Animations to see if the problem still happens.

Other causes of this:
- Flying Height being set to a very high value so you can no longer see the unit.
- Moving units with SetUnitXY using the incorrect method.


Some unrelated fixes:

You don't need the Else here:
  • Custom script: if (IsPointWalkable(GetLocationX(udg_targecikjumpa_Copy),GetLocationY(udg_targecikjumpa_Copy))) then
  • Custom script: else
  • Unit - Order Boromir 0230 <gen> to Stop.
You can just check if it's False:
  • Custom script: if (IsPointWalkable(GetLocationX(udg_targecikjumpa_Copy),GetLocationY(udg_targecikjumpa_Copy)) == false) then
  • Unit - Order Boromir 0230 <gen> to Stop.
To simplify the level of the Dummy ability:
  • Unit - Set level of Shield Bash (AOE Damage & Stun) for (Last created unit) to (Level of Shield Bash for Boromir 0230)
And you don't need to Add/Remove Storm Crow Form as far as I can see. There is no Flying Height change in the triggers.
 
Last edited:
Level 14
Joined
Jul 19, 2007
Messages
770
Probably has something to do with the Model and the Animations.

Test it out on a different Model or remove the Animations to see if the problem still happens.

Other causes of this:
- Flying Height being set to a very high value so you can no longer see the unit.
- Moving units with SetUnitXY using the incorrect method.


Some unrelated fixes:

You don't need the Else here:
  • Custom script: if (IsPointWalkable(GetLocationX(udg_targecikjumpa_Copy),GetLocationY(udg_targecikjumpa_Copy))) then
  • Custom script: else
  • Unit - Order Boromir 0230 <gen> to Stop.
You can just check if it's False:
  • Custom script: if (IsPointWalkable(GetLocationX(udg_targecikjumpa_Copy),GetLocationY(udg_targecikjumpa_Copy)) == false) then
  • Unit - Order Boromir 0230 <gen> to Stop.
To simplify the level of the Dummy ability:
  • Unit - Set level of Shield Bash (AOE Damage & Stun) for (Last created unit) to (Level of Shield Bash for Boromir 0230)
And you don't need to Add/Remove Storm Crow Form as far as I can see. There is no Flying Height change in the triggers.
I found out the cause of it! I removed
Animation - Add the defend animation tag to Boromir 0230 <gen>
Animation - Play Boromir 0230 <gen>'s defend animation [20:01]
Animation - Remove the defend animation tag to Boromir 0230 <gen>
and now the bug doesn't seems to be happening anymore :D
 
Level 14
Joined
Jul 19, 2007
Messages
770
I found out the cause of it! I removed
Animation - Add the defend animation tag to Boromir 0230 <gen>
Animation - Play Boromir 0230 <gen>'s defend animation [20:01]
Animation - Remove the defend animation tag to Boromir 0230 <gen>
and now the bug doesn't seems to be happening anymore :D
Damn it still causes the permanent invisible bug sometimes! Pls try help me someone...
 
Status
Not open for further replies.
Top