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

[Trigger] some complex damage detection

Status
Not open for further replies.
Level 8
Joined
Mar 3, 2009
Messages
327
Heyo. Firstly, heres the trigger im working with
  • DD crit gore pillage and sappers
    • Events
    • Conditions
    • Actions
  • [Important part]
    • Set Temppoint[0] = (Position of (Damage source))
    • Set Temppoint[1] = (Position of (Triggering unit))
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • (Damage taken) Not equal to 0.00
      • Then - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • ((Triggering unit) has buff Attacked ) Equal to True
            • ((Damage source) is A Hero) Equal to True
            • ((Facing of (Triggering unit)) - (Angle from Temppoint[1] to Temppoint[0])) Less than AngleStart[0]
            • ((Facing of (Triggering unit)) - (Angle from Temppoint[1] to Temppoint[0])) Greater than AngleEnd[0]
            • ((Triggering unit) is A structure) Equal to False
          • Then - Actions
            • Unit - Cause (Damage source) to damage (Triggering unit), dealing (Damage taken) damage of attack type Chaos and damage type Universal
            • Floating Text - Create floating text that reads (String((Integer(((Damage taken) x 2.00))))) at Temppoint[1] with Z offset 0.00, using font size 9.00, color (80.00%, 0.00%, 0.00%), and 25.00% transparency
            • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards (Angle from Temppoint[0] to Temppoint[1]) degrees
            • Floating Text - Change (Last created floating text): Disable permanence
            • Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
            • Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
            • Floating Text - Create floating text that reads Backstabtext[(Random integer number between 0 and 3)] at Temppoint[0] with Z offset 0.00, using font size 8.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
            • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
            • Floating Text - Change (Last created floating text): Disable permanence
            • Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
            • Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
            • Special Effect - Create a special effect attached to the origin of (Triggering unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
            • Special Effect - Destroy (Last created special effect)
          • Else - Actions
            • Floating Text - Create floating text that reads (String((Integer((Damage taken))))) at Temppoint[1] with Z offset 0.00, using font size 7.50, color (80.00%, 0.00%, 0.00%), and 25.00% transparency
            • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards (Angle from Temppoint[0] to Temppoint[1]) degrees
            • Floating Text - Change (Last created floating text): Disable permanence
            • Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
            • Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Random integer number between 1 and 5) Equal to 1
              • Then - Actions
                • Special Effect - Create a special effect attached to the origin of (Triggering unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
                • Special Effect - Destroy (Last created special effect)
              • Else - Actions
      • Else - Actions
    • Custom script: call RemoveLocation(udg_Temppoint[0])
    • Custom script: call RemoveLocation(udg_Temppoint[1])
  • [/Important part]
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • ((Triggering unit) has buff Attacked ) Equal to True
        • ((Damage source) has buff Pillage ) Equal to True
      • Then - Actions
        • Player - Add (Level of Pillage for (Damage source)) to (Owner of (Damage source)) Current gold
        • Set Temppoint[0] = (Position of (Damage source))
        • Floating Text - Create floating text that reads (+ + (String((Level of Pillage for (Damage source))))) at Temppoint[0] with Z offset 0.00, using font size 9.00, color (80.00%, 80.00%, 0.00%), and 25.00% transparency
        • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
        • Floating Text - Change (Last created floating text): Disable permanence
        • Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
        • Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
        • Custom script: call RemoveLocation(udg_Temppoint[0])
      • Else - Actions
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • (Unit-type of (Triggering unit)) Equal to Kobold Sapper
      • Then - Actions
        • Wait 0.01 seconds
        • Set Temppoint[0] = (Position of (Triggering unit))
        • Special Effect - Create a special effect at Temppoint[0] using war3mapImported\ExplosionBIG.mdx
        • Special Effect - Destroy (Last created special effect)
        • Unit - Cause (Damage source) to damage circular area after 0.00 seconds of radius 300.00 at Temppoint[0], dealing 200.00 damage of attack type Chaos and damage type Normal
        • Custom script: call RemoveLocation(udg_Temppoint[0])
        • Unit - Remove (Triggering unit) from the game
      • Else - Actions
The problem is when something/someone uses a critical, bash or the integrated crit up there is the game recording multiple damage instances at the exact same time, and the floating text characters end up looking like they came from the matrix >_>

Im wondering if there are any non-wait functions that can be used to delay the order of operation, and let me save all of the instances of damage from a specific time and a specific unit, so that I can present them properly.

Wondering, (Please dont rant about waits) would a 0 second wait actually wait 0 seconds or would it go to the .20 second minimum? Because im thinking that could be perfect..
EDIT: 0 second wait doesn't work ><
 
Status
Not open for further replies.
Top