HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

How to actually fix the wait bug!

05-25-2003, 03:32 PM#1
Dead-Inside
This tutorial belongs to warcraft3gathering.com and is therefor linked and not posted here anymore:
http://www.warcraft3gathering.com/ya...ay;threadid=97

Regards
05-25-2003, 03:36 PM#2
dataangel
This has been known for quite some time. Unless you plan to sticky it?
05-25-2003, 04:01 PM#3
Dead-Inside
I see these stupid people typing "Just use Eatch integer a 1 to 8 (when the players are 8) and do wait", this doesn't explain jack.
It also, even if you figure it out, requiers that all 8 players are in the map, and noone is allowed to leave. If there are under 8 players, it will cause MASSIVE desync in the timer.

So, this is the bulletproof way to fix this bug. It will work and instead of putting in a number, you put in the Wait Integer. (Oh geez, did I forget to mention that? That's self explenatory anyhow).
Good enough for you all?

Regards
05-28-2003, 02:31 AM#4
Guest
"For each integer A from 1 to *numbers of player on map* and do wait X seconds"

When I see this solution, I see a solution that makes me wait (num players * X) seconds.

Obviously this is not what happens, because that would be idiotic.

Can someone explain why this fixes the wait bug and does not just make it wait longer?
05-28-2003, 06:27 AM#5
Dead-Inside
Well... I don't know exactly how it works, I mean, why you have to loop. But I'm guessing it sends a command to all players to wait. That came out wrong, someone else explain.
05-28-2003, 11:54 AM#6
rwxr-xr-x
The problem with TriggerSleepAction when used more than once in a trigger is that it divides the time up amongst all of the players that are currently playing. There is a problem, however, even when using the for loop, because you still lose some time, and it is nowhere near to being perfect. The for loop method is great for general timing, but when you need more exact timing, it fails miserably (i.e. for timing cinematics).

Tthe best method is to use timers when you need more granular control.
05-28-2003, 12:06 PM#7
Dead-Inside
It only fails with a fraction of a second, maybe 0.05 of a second. Which isn't noticeble other then for cinematics. And this does not effect any other things then cinematics, either.
05-28-2003, 12:35 PM#8
rwxr-xr-x
It's much higher than that, depending on the number of players. The less players you have, the more accurate it is. You have to consider the cost of executing the for loop with a wait action that is innacurately divided based on the number of players, and it ends up being a lot more than 0.05 seconds (speaking in terms of tenths of a second). In fact, I have shown through testing that 10 players in a game using the for loop method causes an increase in wait time to an average of 1.5 seconds. This simply is not acceptable for multiplayer cinematic work. Even trying to adjust the wait time to compensate does not produce results needed 100% of the time. This is why I use timers.
05-28-2003, 01:15 PM#9
Dead-Inside
Yes, the outcome is, if you are making a cinematic, don't use wait-loops (or the regular, bugged, wait command), use timer windows.
05-28-2003, 02:51 PM#10
MrDoomMaster
Hopefully blizzard is smart enough to fix this damn problem in the expansion. I haven't been keeping up with the news on the developmental improvements on terms of the expansion, but i have a feeling it will be fixed. If it isn't fixed, well... let's just try to keep our feet on the ground :)