• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

Are GUI Waits Prone to Player Desyncs or is That a Myth?

Level 18
Joined
Mar 16, 2008
Messages
722
I understand this trigger is kind of crude but it basically works. Just would like a definitive answer if these Waits, or Waits in general, can cause desyncs. Thanks for any input.

  • Creep Respawn Initial Start
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set VariableSet Creeps = (Units owned by Neutral Hostile.)
      • Unit Group - Remove Fire Golem (Elemental Boss) 0687 <gen> from Creeps.
      • Unit Group - Remove Penguin King (Elemental Boss) 0693 <gen> from Creeps.
      • Unit Group - Remove Storm (Elemental Boss) 0802 <gen> from Creeps.
      • Unit Group - Remove Leviathan (Elemental Boss) 0803 <gen> from Creeps.
      • Unit Group - Remove Skull Reaver (Standard) 0232 <gen> from Creeps.
      • Unit Group - Remove Queen of Suffering 0775 <gen> from Creeps.
      • Unit Group - Remove Queen of Suffering 0774 <gen> from Creeps.
      • Unit Group - Remove Infernal Machine 0772 <gen> from Creeps.
      • Unit Group - Remove Infernal Machine 0385 <gen> from Creeps.
      • Unit Group - Remove Skull Reaver (Standard) 0579 <gen> from Creeps.
      • Unit Group - Remove Faceless Priest 0516 <gen> from Creeps.
      • Unit Group - Remove Genie 1507 <gen> from Creeps.
      • Unit Group - Pick every unit in (Units in Hell Region <gen>) and do (Actions)
        • Loop - Actions
          • Unit Group - Remove (Picked unit) from Creeps.
      • Unit Group - Pick every unit in Creeps and do (Actions)
        • Loop - Actions
          • Set VariableSet I = (I + 1)
          • Unit - Set the custom value of (Picked unit) to I
          • Set VariableSet Angle[I] = (Facing of (Picked unit))
          • Set VariableSet Position = (Position of (Picked unit))
          • Set VariableSet X[I] = (X of Position)
          • Set VariableSet Y[I] = (Y of Position)
          • Custom script: call RemoveLocation(udg_Position)
      • Set VariableSet I = 0
      • Set VariableSet Position = (Center of (Entire map))
  • Creep Respawn Loop
    • Events
      • Unit - A unit owned by Neutral Hostile Dies
    • Conditions
      • (Unit-type of (Dying unit)) Not equal to Fire Golem (Elemental Boss)
      • (Unit-type of (Dying unit)) Not equal to Leviathan (Elemental Boss)
      • (Unit-type of (Dying unit)) Not equal to Storm (Elemental Boss)
      • (Unit-type of (Dying unit)) Not equal to Penguin King (Elemental Boss)
      • (Unit-type of (Dying unit)) Not equal to Queen of Suffering
      • (Unit-type of (Dying unit)) Not equal to Skull Reaver (Standard)
      • (Unit-type of (Dying unit)) Not equal to Infernal Machine
      • (Unit-type of (Dying unit)) Not equal to Genie
      • (Unit-type of (Dying unit)) Not equal to Satan Incarnate
    • Actions
      • Set VariableSet I = (I + 1)
      • Set VariableSet Creep[I] = (Dying unit)
      • Wait 595.00 seconds
      • Set VariableSet J = (J + 1)
      • Unit - Create 1 (Unit-type of Creep[J]) for Neutral Hostile at (Position offset by (X[(Custom value of Creep[J])], Y[(Custom value of Creep[J])])) facing Angle[(Custom value of Creep[J])] degrees
      • Unit - Set the custom value of (Last created unit) to (Custom value of Creep[J])
      • Unit - Set (Last created unit) acquisition range to 100.00
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Map Center <gen> contains (Last created unit)) Equal to True
        • Then - Actions
          • Unit - Remove (Last created unit) from the game
        • Else - Actions
 
Level 12
Joined
Jan 10, 2023
Messages
199
I never used waits even when I did use GUI, that being said, I see nothing wrong here.

As far as I know, you can lose event response data such as 'Target of Ability being Cast', but this is not true for all of them, such as Triggering Unit (I've heard).

As far as desyncs go, I've never heard that. I think they are inaccurate timing, but as long as everyone's computer agrees on that inaccurate timing, no desync.

You aren't doing anything local so you should be good.
 
Wait and PolledWait do not cause desync, they just may cause more network traffic to keep all clients synchronized, and may cause lags due to lack of time accuracy.

My map is full of waits and it doesn't cause desync. But it's a hasle to handle local variables so that their value is still ok after the wait^^

Here's a compiled list of desync causes if you're interested in it: Known causes of desync
 
Top