I found a desynchronization problem in reforged, which is reproduced in 100% of cases. It can be reproduced on one computer in a local network, completely in SD graphics.
The problem with the GetLocationZ() has been known for a long time, but it was previously believed that desync was caused by the difference between SD and HD graphics in different players.
I believe that this is not true and desync will occur even if all players in one session have only SD or only HD graphics.
If you use the GetLocationZ() or GetTerrainCliffLevel() functions at the point where destructible objects such as Elevator ('DTrf', 'DTrx') or FootSwitch ('DTfp', 'DTfx') are placed. And based on this data you perform various actions, then this will lead to desynchronization.
Disabling the "Pathing - Is Walkable" property solves the problem, but the destructible loses its key properties.
I have attached the map (ElevatorDesyncRef.w3x). Here is a simple code for testing. You don't need other players for testing. Just run two instances of wc3r offline and create a LAN game. In the game, use the ability with a projectile via Elevator or FootSwitch (both bottom), the second player will be desynchronized. The top Elevator and FootSwitch are safe.
You may need to use the ability several times at different angles.
However, I have not been able to reproduce this issue with any other destructible objects that have the "Pathing - Is Walkable" property. It is possible that the Elevator and FootSwitch have unique animations.
The problem with the GetLocationZ() has been known for a long time, but it was previously believed that desync was caused by the difference between SD and HD graphics in different players.
I believe that this is not true and desync will occur even if all players in one session have only SD or only HD graphics.
If you use the GetLocationZ() or GetTerrainCliffLevel() functions at the point where destructible objects such as Elevator ('DTrf', 'DTrx') or FootSwitch ('DTfp', 'DTfx') are placed. And based on this data you perform various actions, then this will lead to desynchronization.
Disabling the "Pathing - Is Walkable" property solves the problem, but the destructible loses its key properties.
I have attached the map (ElevatorDesyncRef.w3x). Here is a simple code for testing. You don't need other players for testing. Just run two instances of wc3r offline and create a LAN game. In the game, use the ability with a projectile via Elevator or FootSwitch (both bottom), the second player will be desynchronized. The top Elevator and FootSwitch are safe.
You may need to use the ability several times at different angles.
However, I have not been able to reproduce this issue with any other destructible objects that have the "Pathing - Is Walkable" property. It is possible that the Elevator and FootSwitch have unique animations.