Possible cause for desyncs when buying units

Zwiebelchen

You can change this now in User CP.
Reaction score
60
This thread is not about hostbots nor a discussion about modifications for warcraft III! Please do not post links here or give unwanted information or advice on people who want to use 3rd party tools, etc. ... all posts related to such things will get reported. The topic is about JASS and which situations might cause desyncs in combination with common 3rd party tools.

Well, many people playing Gaias Retaliation ORPG reported desyncs when interacting with npcs in the map. It all boils down to one possible reason:
The process of buying units from a shop-unit.


The process itself works fine 100% of the time. The problem is: It seems to cause desyncs randomly in combination with 3rd party tools like hostbots, etc. (but also on Garena) and I want to find out why.
This is a serious matter, as LOTS of people were reporting it. I, personally, never experienced this issue and could never reproduce it, as I do not use 3rd party programs and always host my games on bnet, not garena or something. The problem still matters, as hostbots ARE frequently used in hosting.


I always code my npc interactions in the following way:
- I dummy the interaction buttons with a locust unit that is "bought" at the npc using the ordinary object data way of doing it.
- After buying, the unit instantly gets removed and some code is run (determining the triggering player by getting the owner of the sold unit). Most of the code is global, but there are parts of local code in it (like displaying text messages, etc.). However, those parts have proven working 100% of the time in my ordinary B.net hosted games.
The problems seem to arise only with altered clients or 3rd party tools and then, this is also totally random.

Someone has suggestions why this could happen? Remember: It works fine with "ordinary" Battlenet hosting (or, at least, it doesn't cause desyncs there)!
 

Narks

Vastly intelligent whale-like being from the stars
Reaction score
90
If you find out exactly what causes it, tell us.

I hate ghost bots.
 

Lyerae

I keep popping up on this site from time to time.
Reaction score
105
> I hate ghost bots.

What did they ever do to you?
 

sLsIDK

New Member
Reaction score
13
GHost bots are one of the things keeping Warcraft 3 hosting alive. Putting that aside, I think that no desyncs were noted by Bsw_Hunter in Parasite Resurrection until I started hosting it with my bot, in which I would get a desync every other game (until he fixed it).
 

Jesus4Lyf

Good Idea™
Reaction score
397
Report it to the GHost developers, it is not your bug if it is a fault in the 3rd party software.
On the other hand, if you are displaying strings locally, that may be allocating a stringid which is different on different computers. Generate the strings outside of the local block, and display them inside the local block.
 

Zwiebelchen

You can change this now in User CP.
Reaction score
60
Report it to the GHost developers, it is not your bug if it is a fault in the 3rd party software.
On the other hand, if you are displaying strings locally, that may be allocating a stringid which is different on different computers. Generate the strings outside of the local block, and display them inside the local block.
Hmm ... interesting thought. I'll try that ... though I don't see why this should only cause desyncs in combination with hostbots, but not when hosting on the bnet.
 

Rushhour

New Member
Reaction score
46
I think something similar happens at Legion TD, sometimes a desync happens and about half of the people leave at the same second. I only saw this when I joined other games, but I'm not completly sure if these games were hosted by bots :/
To the strings:
Do they really desync immediately ?
I mean how often do you something like
JASS:

if GetLocalPlayer() == GetOwningPlayer(GetTriggerUnit()) then
    call DisplayTextToPlayer(GetLocalPlayer(),0,0,"You gain "+I2S(somevalue) +gold")
endif

The string is displayed locally, initialized locally (and not only once but many times),.. , should we worry about this too? By now I didn't realize any problems with this.
 

SayNoToWar

Member
Reaction score
3
ghost is not the one to blame

As far as I know if a ghost displays the message "desync detected" its basically the same as if one or more players get a disconnect with "connection to host interrupted" or s.th. like that.

I also have a desync problem in Battleships Crossfire (bs cf) but at last I could get it back to about 10-40% of the games and mostly its only one player who is desynced...
All combinings or ships you buy in BS-CF are triggerd over "sells a unit"...

But the ghost does -according to its developers- only display that it's a desync. Without a ghost a desync would look as if one player has left the game or as if more players have left the game at once. Before the ghosts I think this was called "disconnect" or "gamesplit" because without the ghost (in current version) the games could continue seperated if more then one player got desynced at once (e.g. 2 players, one from team 1 and one from team 2 get desynced and placed in their own game where they both are sync with each other and can continue to play).
Eventually any jass-pro could make a system which gives mapmakers any hinds which scritps maybe caused such a desync in general? Or maybe someone could help with bs cf... At last in about 1/3 if the players of the 15 000 monthly games of bs cf would be very happy if someone would help fixing the desync problem...

bs cf seeks for a jass coder or anyone who can help to fix the desync problem... :banghead:
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top