• 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 faction for Warcraft 3 and enter Hive's 19th Techtree Contest: Co-Op Commanders! Click here to enter!
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 21st Texturing Contest: Upgrade is now concluded, time to vote for your favourite set of icons! Click here to vote!

Why is this triggered ability sometimes bugging the hero?

Status
Not open for further replies.
Level 15
Joined
Jul 19, 2007
Messages
857
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 74
Joined
Aug 10, 2018
Messages
7,951
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 15
Joined
Jul 19, 2007
Messages
857
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 15
Joined
Jul 19, 2007
Messages
857
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