Hello,
i did read much Threads about Desync and W3MMD and know, there can be some problems.
My Problem is after game start, some ppl get dc.
i have 4 triggers for check win and if all players from one team left:
1 Trigger:
2 Trigger:
Other 2 Triggers looks like this too only with other player numbers.
I did pub only w3mmd library in the map and use only win/lose, nothing more.
Can someone help me?
Thx you
(sorry for my bad english)
i did read much Threads about Desync and W3MMD and know, there can be some problems.
My Problem is after game start, some ppl get dc.
Code:
(00:00 / All) justGG.: Shortest load by player [achjakomdochher] was 48.71 seconds.
(00:00 / All) justGG.: Longest load by player [diVision] was 237.64 seconds.
(00:00 / All) justGG.: This game is hosted by GhostPlay.
(00:00 / All) justGG.: Good Luck and Have Fun
(00:01 / All) justGG.: Warning! Desync detected!
(00:01 / All) justGG.: Players in game state #1: x-Heisenberg-x
(00:01 / All) justGG.: Players in game state #2: justGG., achjakomdochher, forby51, OiMeL, VIDIOT, diVision
(00:01 / All) justGG.: Players in game state #3: fuunky, guillemarc
(00:01 / All) justGG.: x-Heisenberg-x was dropped due to desync.
(00:01 / All) justGG.: guillemarc was dropped due to desync.
(00:01 / All) justGG.: fuunky was dropped due to desync.
i have 4 triggers for check win and if all players from one team left:
1 Trigger:
JASS:
function Team_1_Win_Local takes nothing returns nothing
if ( GetPlayerSlotState(Player(0)) != PLAYER_SLOT_STATE_PLAYING ) then
call DoNothing( )
else
call MMD_FlagPlayer(Player(0), MMD_FLAG_WINNER)
endif
if ( GetPlayerSlotState(Player(1)) != PLAYER_SLOT_STATE_PLAYING ) then
call DoNothing( )
else
call MMD_FlagPlayer(Player(1), MMD_FLAG_WINNER)
endif
if ( GetPlayerSlotState(Player(2)) != PLAYER_SLOT_STATE_PLAYING ) then
call DoNothing( )
else
call MMD_FlagPlayer(Player(2), MMD_FLAG_WINNER)
endif
if ( GetPlayerSlotState(Player(3)) != PLAYER_SLOT_STATE_PLAYING ) then
call DoNothing( )
else
call MMD_FlagPlayer(Player(3), MMD_FLAG_WINNER)
endif
if ( GetPlayerSlotState(Player(4)) != PLAYER_SLOT_STATE_PLAYING ) then
call DoNothing( )
else
call MMD_FlagPlayer(Player(4), MMD_FLAG_WINNER)
endif
call MMD_FlagPlayer(Player(5), MMD_FLAG_LOSER)
call MMD_FlagPlayer(Player(6), MMD_FLAG_LOSER)
call MMD_FlagPlayer(Player(7), MMD_FLAG_LOSER)
call MMD_FlagPlayer(Player(8), MMD_FLAG_LOSER)
call MMD_FlagPlayer(Player(9), MMD_FLAG_LOSER)
endfunction
//===========================================================================
function InitTrig_Team_1_Win_Local takes nothing returns nothing
local trigger t = CreateTrigger( )
call TriggerRegisterUnitEvent( t, gg_unit_ofrt_0020, EVENT_UNIT_DEATH )
call TriggerAddAction( t, function Team_1_Win_Local )
endfunction
2 Trigger:
JASS:
function Team_1_Leave_Local_Conditions takes nothing returns boolean
if ( not GetBooleanOr( GetPlayerSlotState(Player(0)) == PLAYER_SLOT_STATE_EMPTY, GetPlayerSlotState(Player(0)) == PLAYER_SLOT_STATE_LEFT ) ) then
return false
endif
if ( not GetBooleanOr( GetPlayerSlotState(Player(1)) == PLAYER_SLOT_STATE_EMPTY, GetPlayerSlotState(Player(1)) == PLAYER_SLOT_STATE_LEFT ) ) then
return false
endif
if ( not GetBooleanOr( GetPlayerSlotState(Player(2)) == PLAYER_SLOT_STATE_EMPTY, GetPlayerSlotState(Player(2)) == PLAYER_SLOT_STATE_LEFT ) ) then
return false
endif
if ( not GetBooleanOr( GetPlayerSlotState(Player(3)) == PLAYER_SLOT_STATE_EMPTY, GetPlayerSlotState(Player(3)) == PLAYER_SLOT_STATE_LEFT ) ) then
return false
endif
if ( not GetBooleanOr( GetPlayerSlotState(Player(4)) == PLAYER_SLOT_STATE_EMPTY, GetPlayerSlotState(Player(4)) == PLAYER_SLOT_STATE_LEFT ) ) then
return false
endif
return true
endfunction
function Team_1_Leave_Local_Actions takes nothing returns nothing
if ( GetPlayerSlotState(Player(5)) != PLAYER_SLOT_STATE_PLAYING) then
call DoNothing( )
else
call MMD_FlagPlayer(Player(5), MMD_FLAG_WINNER)
endif
if ( GetPlayerSlotState(Player(6)) != PLAYER_SLOT_STATE_PLAYING ) then
call DoNothing( )
else
call MMD_FlagPlayer(Player(6), MMD_FLAG_WINNER)
endif
if ( GetPlayerSlotState(Player(7)) != PLAYER_SLOT_STATE_PLAYING ) then
call DoNothing( )
else
call MMD_FlagPlayer(Player(7), MMD_FLAG_WINNER)
endif
if ( GetPlayerSlotState(Player(8)) != PLAYER_SLOT_STATE_PLAYING ) then
call DoNothing( )
else
call MMD_FlagPlayer(Player(8), MMD_FLAG_WINNER)
endif
if ( GetPlayerSlotState(Player(9)) != PLAYER_SLOT_STATE_PLAYING ) then
call DoNothing( )
else
call MMD_FlagPlayer(Player(9), MMD_FLAG_WINNER)
endif
call MMD_FlagPlayer(Player(0), MMD_FLAG_LOSER)
call MMD_FlagPlayer(Player(1), MMD_FLAG_LOSER)
call MMD_FlagPlayer(Player(2), MMD_FLAG_LOSER)
call MMD_FlagPlayer(Player(3), MMD_FLAG_LOSER)
call MMD_FlagPlayer(Player(4), MMD_FLAG_LOSER)
endfunction
//===========================================================================
function InitTrig_team_1_leave_Local takes nothing returns nothing
local trigger t = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( t, 15.00 )
call TriggerAddCondition( t, Condition( function Team_1_Leave_Local_Conditions ) )
call TriggerAddAction( t, function Team_1_Leave_Local_Actions )
endfunction
I did pub only w3mmd library in the map and use only win/lose, nothing more.
Can someone help me?
Thx you
(sorry for my bad english)