In multiplayer problem of desnyc is bit different than in singleplayer i think. In mp it desync because of value is changed in my game and its different in opponent's game. In SP the problem is i can change value and it doesnt desnyc in game. Game has a replay option, so you can save the replay of it at the end of the battle, but when you change value its not seen on the replay cuz, replay file has coded the positions of players where they went and what units they had so it stored as normal unit that has 50 accuracy not for ex 150. This means that given a certain input, an exact output will always occur. The advantage of this is that this way, when the game stores or sends data about the game state, it only has to store inputs. Given a certain click of the mouse, or a certain key press, the same things will always happen, and that means that when you play a multiplayer game, or watch a replay, the game is going based off of inputs that happened, not some events that happened. When you edit the memory of the game, you change the output of the input series, so the result changes in a way which doesn?t properly work for your opponent, or a spectator. I have a screenshot of whole function in CheatEngine assembler and i can send you it if you unlock my pm.
Regards