Reasons why Server splitting occurs?

PhoenixICE

New Member
Reaction score
0
Well i've looked around a couple of forums - and i've found out if u use pan camera as neccessary, units loaded already in the water can stuff up ur map and cause it to split - with the units already loaded in water does that count shallow water? and is there other reasons cause my map splits within the first 2-4 seconds (<--- plz note that, alot of ppl suggest memory leak but in the first 2-4 secs i really doubt it and various other things that cannot happen in 2-4 seconds), map link is: http://www.epicwar.com/maps/11094
 

PhoenixICE

New Member
Reaction score
0
hmmm good guide but doesn't help me - the server splitting issue in my map - i've tried all of what was said in the guide
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
How many triggers have you got? Would you like to post some? or post the entire map?
 

PhoenixICE

New Member
Reaction score
0
well i got the map link i'll post some triggers for u too see:

function Trig_item_store_Shield_Actions takes nothing returns nothing
set bj_forLoopAIndex = 199
set bj_forLoopAIndexEnd = 200
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I01B'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 196
set bj_forLoopAIndexEnd = 198
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I01A'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 190
set bj_forLoopAIndexEnd = 195
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I019'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 183
set bj_forLoopAIndexEnd = 189
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I018'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 176
set bj_forLoopAIndexEnd = 182
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I017'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 171
set bj_forLoopAIndexEnd = 175
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I016'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 161
set bj_forLoopAIndexEnd = 170
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I015'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 141
set bj_forLoopAIndexEnd = 160
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I014'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 101
set bj_forLoopAIndexEnd = 140
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I013'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
endfunction

//===========================================================================
function InitTrig_item_store_Shield takes nothing returns nothing
set gg_trg_item_store_Shield = CreateTrigger( )
call TriggerRegisterTimerEventSingle( gg_trg_item_store_Shield, 6.00 )
call TriggerAddAction( gg_trg_item_store_Shield, function Trig_item_store_Shield_Actions )
endfunction

---------------------------------------------------------------------------------------------------
function Trig_item_store_Sword_Actions takes nothing returns nothing
set bj_forLoopAIndex = 99
set bj_forLoopAIndexEnd = 100
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I001'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 96
set bj_forLoopAIndexEnd = 98
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I009'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 90
set bj_forLoopAIndexEnd = 95
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I007'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 83
set bj_forLoopAIndexEnd = 89
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I005'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 76
set bj_forLoopAIndexEnd = 82
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I004'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 71
set bj_forLoopAIndexEnd = 75
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I003'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 61
set bj_forLoopAIndexEnd = 70
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I002'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 41
set bj_forLoopAIndexEnd = 60
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I008'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 40
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set udg_Item_list_Town_1[GetForLoopIndexA()] = 'I006'
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
endfunction

//===========================================================================
function InitTrig_item_store_Sword takes nothing returns nothing
set gg_trg_item_store_Sword = CreateTrigger( )
call TriggerRegisterTimerEventSingle( gg_trg_item_store_Sword, 5.00 )
call TriggerAddAction( gg_trg_item_store_Sword, function Trig_item_store_Sword_Actions )
endfunction

-----------------------------------------------------------------------------------
function Trig_Set_Invunerable_For_Computer_Allied_Func001Func001C takes nothing returns boolean
if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_HERO) == true ) ) then
return false
endif
return true
endfunction

function Trig_Set_Invunerable_For_Computer_Allied_Func001A takes nothing returns nothing
if ( Trig_Set_Invunerable_For_Computer_Allied_Func001Func001C() ) then
call SuspendHeroXPBJ( false, GetEnumUnit() )
else
call DoNothing( )
endif
call SetUnitInvulnerable( GetEnumUnit(), true )
call IssueImmediateOrderBJ( GetEnumUnit(), "holdposition" )
endfunction

function Trig_Set_Invunerable_For_Computer_Allied_Actions takes nothing returns nothing
call ForGroupBJ( GetUnitsOfPlayerAll(Player(10)), function Trig_Set_Invunerable_For_Computer_Allied_Func001A )
call TriggerSleepAction( 2 )
call SetUnitInvulnerable( gg_unit_h00D_0397, false )
endfunction

//===========================================================================
function InitTrig_Set_Invunerable_For_Computer_Allied takes nothing returns nothing
set gg_trg_Set_Invunerable_For_Computer_Allied = CreateTrigger( )
call TriggerRegisterTimerEventSingle( gg_trg_Set_Invunerable_For_Computer_Allied, 0.50 )
call TriggerAddAction( gg_trg_Set_Invunerable_For_Computer_Allied, function Trig_Set_Invunerable_For_Computer_Allied_Actions )
endfunction
 
M

Mythic Fr0st

Guest
hmm

WHY are you converting these triggers to jass? I dont think your writing them in jass (I dont know, just a guess)

And please put the # code around it, its next to quote!

it looks like
Code:
THIS
 

Exide

I am amazingly focused right now!
Reaction score
448
No, no. :p
The # is the button that you press to get the CODE tags (instead of writing them.)

You have to write CODE (like a Html tag.) If you know what I mean.

But instead of the html tag's < *text* > you use [ *text* ]

I'm probably confusing you right now. :p
But it should look like this:

[ CODE ] [ /CODE ] (But without the spaces)
 

Exide

I am amazingly focused right now!
Reaction score
448
Oh.
Um.. Testing? :p

[NOPARSE]
Code:
[/NOPARSE]

EDIT: Cool, it works! ^^ But it made my CODE non-capitalized. :(
 

phyrex1an

Staff Member and irregular helper
Reaction score
447
A suggestion is to disable triggers until you don't have a desync, if it isn't obvious what action that causes the desync then start to disable actions in that trigger until you don't have a desync.

If it's just a single action or a group of actions that causes this then you will find the error using this method.
If it's more than one thing that causes this (like lots of leaks (I don't think this is the problem)) then it requires a bit more thinking but using this will atleast get rid of the error, spotting it's harder.
If the error isn't a trigger error (can be something else) or not caused indirectly by triggers then the error will be there after disabling all triggers. If so then you know where to not look :p
 

PhoenixICE

New Member
Reaction score
0
yea i was afraid i had to do that....well i need alot of dedicated beta testers then...

Edit: okay i've narrowed it down its not trigger problem. What terrain problems are associated with server split?

Edit 2: okay i've found out : if u have structures or any units in ANY water including shallow and deep then it splits for no reason thnxs everyone for trying bb.
 

SerraAvenger

Cuz I can
Reaction score
234
Just as a FYI: You can use the [noparse][noparse][/noparse][/noparse] tag to display the code without spaces.
Like: [noparse]
Code:
some code
[/noparse]

I normally used [noparse]
Code:
[code]
[/code][/noparse]^^
But here it does not work :(
vB =! BB :'(
 
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