Desyncs happen when you manipulate data in multiplayer that is different for 2 different players. For example:
GetUnitLifeBJ(...) will always return the same hit points for a unit, because the unit always has the same amount of hit points for player 1 AND player 2. This data is synchronised (it is the same for both players).
GetCameraTargetX() will always return different X coordinates, because the camera position of player 1 is not the same as the camera position of player 2. This data is desynchronised.
When using desynchronised data as if it's synchronised will cause a desync disconnect of either players. For example: creating a new unit at the current camera position causes a desync because it creates "synchronised" data ( a unit ) at a desynchronised position, causing the new unit to be created at different positions for both players, which obviously should not be allowed, because it essentially breaks the game.
Changing the camera position for a specific player isn't possible with natives, because camera positions are desynchronised data, i.e. you only have data on YOUR camera position, and not on player 2's camera position. Changing the position will only change *your* camera position, but because it's desynchronised data, it changes the camera positions of all players to a certain position.
GetLocalPlayer returns the local player, i.e. "you". It's desynchronised data, because for player 1 it returns a different player than for player 2. So if you need to change the camera position for only 1 player, you can use GetLocalPlayer() to be able to run a part of a trigger for only 1 specific player.
The thing is: in online gaming, every player plays his own game as if it's single player.
Net traffic will make it so each player's game will constantly be updated with the actions of the other players, so it *looks* like you're playing against other players.
If a new unit is created through triggers, every player will create the unit in his own game.
If a new unit is only created in ONE of the games, the other games will NOT have this unit. However, when updating the other player's games (so it looks like you're playing against other players), warcraft detects that your game contains a unit that all other players don't have, and you'll be disconnected because your game is not synchronised with the other games.