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

Server Splits ? What can causes them ?

Status
Not open for further replies.
Level 18
Joined
Jan 21, 2006
Messages
2,552
JASS:
if GetLocalPlayer()==Player(0) then
    call CreateUnit( Player(0), 'hfoo', 0, 0, 0 )
endif

There are tons of situations that cause server splits, its not like its just a function call that disconnects half the game. Why would blizzard include a function that does that? Its the combination of many functions that can disconnect the game.
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
Oh, well if you do:

JASS:
TriggerRegisterPlayerUnitEvent( yourTrig, somePlayer, EVENT_PLAYER_WHATEVER, null )

The boolean expression being null I believe will crash the game for macs. I'm not sure. I really don't know many of them.
 
There are certain functions which disconnect Macs only, I don't remember which they are...

I think also UnitDamagePoint().
JASS:
globals
    group UDAgroupx = CreateGroup()
endglobals
function UnitDamageArea takes unit u, real x, real y, real radius, real damage, attacktype at, damagetype dt, weapontype wt, boolexpr boo returns nothing
    local unit dum    
    call GroupEnumUnitsInRange(UDAgroupx,x,y,radius,boo)    
    loop
        set dum = FirstOfGroup(UDAgroupx)
        exitwhen dum == null
        call UnitDamageTarget(u,dum,damage,true,false,at,dt,wt)
        call GroupRemoveUnit(UDAgroupx,dum)
    endloop
    call GroupClear(UDAgroupx)
endfunction 
function UnitDamageAreaLoc takes unit u, location l, real radius, real damage, attacktype at, damagetype dt, weapontype wt, boolexpr boo returns nothing
    call UnitDamageArea(u,GetLocationX(l),GetLocationY(l),radius,damage,at,dt,wt,boo)
endfunction

Is basically the work around. (Just an example, too lazy to assign all the globals for a proper ForGroup())

Anyway, more to the point, there are many things that cause desyncs. Most of them are assosciated with GetLocalPlayer(). For more info, you can visit:
http://www.thehelper.net/forums/showthread.php?t=89207
http://wiki.thehelper.net/wc3/jass/common.j/GetLocalPlayer
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
You're right, it makes no sense. It is in fact the spell that splits the server. That means that when a player first plays online and randoms the Human race and gets an Arch Mage all mac users are disconnected from the game.

WOWWARS said:
i remeber bilzz used to sever split alot

What he means is that there used to be a lot of Blizzard-made things that would cause server splits.
 
I guess that's sarcasm. Whatever. Maybe the spell Blizzard did cause server splits in certain situations, but they patched and fixed it.

What he means is that there used to be a lot of Blizzard-made things that would cause server splits.
Everything in wc3 is Blizzard-made, so does that mean a lot of things in wc3 cause server splits?

Anyway, let's get back on topic here...
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
Well Mac users used to disconnect when certain functions were used "improperly", which would be included in the category of "blizzard-made" --and yes they occur in enough scenarios that it could more or less be called common.

The thread is actually subjected to discussion such as this, since it involves things that cause server splits in multiplayer games. If you are asking these questions, chances are someone else may as well.
 
Level 12
Joined
Apr 15, 2008
Messages
1,063
If you are using GUI, there are two, so far I know, actions that cause server split: "Pan camera as necessary" and (Target of current camera view)"
Try narrowing down which part of the script causes split and post it here, or post the map, otherwise you can't get much help :grin:
If you are using GetLocalPlayer(), don't forget about string tables, they can cause splits too.
EDIT: Also changing random seed will cause split (seed basically changes every time you generate random number)
 
Level 6
Joined
Mar 22, 2009
Messages
276
I believe that GetLocalPlayer() causes game desync or server split when not used in the right way. check you triggers containing GetLocalPlayer() :)
If you dont have GetLocalPlayer() thingy then you may post some of your functions that you think causes the server split.
 
Status
Not open for further replies.
Top