Нашел баг дессинхронизации при триггерном изменении высоты рельефа.
При использовании TerrainDeformCrater высота корректно меняется у всех игроков, однако значения GetLocationZ будут разные пока игрок не посмотрит на измененное место.
Тестирую в два окна на одном пк, возможно проблема связана с этим.
раскрыть

globals
 real Test_Z = 0
 endglobals

function Trig_Test_Actions takes nothing returns nothing
 //Запоминаем высоту рельефа
 Test_Z = LocZ(-13536, 11360)  
 //Создаем деформацию рельефа
 TerrainDeformCrater(-13536, 11360 , 1000, -170, 1, true)
 //Зажержка, что бы успели произойти изменения
 TriggerSleepAction(0.4)
 //Проверяем высоту с предыдущим значением 
 //Получаем разную высоту и десинк, если камера у игрока не отрендерила изменения!
 //Если оба играка отрендерели изменения то десинка не происходит! 
 // - Перемещение камеры в нужную точку не помогает если окно не развернуто. (тестировалось на одном пк)
 Msg("Timeout: Desync!!")
 if LocZ(-13536, 11360) != Test_Z { CreateUnit( Player(2),'ewsp', -13536, 11360, 0) }
 if LocZ(-13536, 11360) != Test_Z { CreateUnit( Player(1),'ewsp', -13536, 11360, 0) }
 
 Test_Z = LocZ(-13536, 11360)
 
endfunction

//===========================================================================
function InitTrig_Test takes nothing returns nothing
    set gg_trg_Test = CreateTrigger(  )
    call TriggerRegisterPlayerChatEvent( gg_trg_Test, Player(0), "", true )
    call TriggerRegisterPlayerChatEvent( gg_trg_Test, Player(1), "", true )
    call TriggerAddAction( gg_trg_Test, function Trig_Test_Actions )
endfunction

Решено: Я использовал пререндер карты после деформаций, триггерно гоняя камеру по карте. Но это не срабатывало при запуске с одного пк, поскольку окно второго игрока было не в фокусе.

Что бы можно было тестить с одного пк, нужно прописать -windowed к ярлыку запуска игры.
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Известная проблема. Тут десинк может быть даже если у игроков разное качество графики стоит. По причинам десинков в карте советую пройтись по статье.
От себя ещё добавлю, что бывает десинк результатов функции GetLocationZ от мостов и подъемов. Тем более в рефордже, когда игроки сидят на разных типах графики.
26
Решено: Я использовал пререндер карты после деформаций, триггерно гоняя камеру по карте. Но это не срабатывало при запуске с одного пк, поскольку окно второго игрока было не в фокусе.

Что бы можно было тестить с одного пк, нужно прописать -windowed к ярлыку запуска игры.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.