static void OnPlayerIdentityChanged(ref PlayerIdentityChangedMsg msg, MyNetworkClient sender) { Debug.Assert(!Sync.IsServer); var playerId = new PlayerId(msg.ClientSteamId, msg.PlayerSerialId); var player = Sync.Players.TryGetPlayerById(playerId); Debug.Assert(player != null, "Changing identity of an unknown or unconnected player!"); if (player == null) return; MyIdentity identity = null; Sync.Players.m_allIdentities.TryGetValue(msg.IdentityId, out identity); Debug.Assert(identity != null, "Changing player's identity to an unknown identity!"); if (identity == null) return; player.ChangeIdentity(identity); }
private void player_IdentityChanged(MyPlayer player, MyIdentity identity) { Debug.Assert(m_playerIdentityIds[player.Id] != identity.IdentityId, "Setting player identity to the same value. Is that what you want?"); m_playerIdentityIds[player.Id] = identity.IdentityId; if (Sync.IsServer) { var msg = new PlayerIdentityChangedMsg(); msg.ClientSteamId = player.Id.SteamId; msg.PlayerSerialId = player.Id.SerialId; msg.IdentityId = identity.IdentityId; Sync.Layer.SendMessageToAll(ref msg); } }