コード例 #1
0
        static void OnIdentityRemoved(ref IdentityRemovedMsg msg, MyNetworkClient sender)
        {
            if (Sync.IsServer)
            {
                Debug.Assert(msg.SteamId == sender.SteamUserId, "A client was requesting identity removal for a different client!");
                if (msg.SteamId != sender.SteamUserId) return;

                if (Sync.Players.RemoveIdentityInternal(msg.IdentityId, new PlayerId(msg.SteamId, msg.SerialId)))
                {
                    Sync.Layer.SendMessageToAll(ref msg, MyTransportMessageEnum.Success);
                }
            }
            else
            {
                Sync.Players.RemoveIdentityInternal(msg.IdentityId, new PlayerId(msg.SteamId, msg.SerialId));
            }
        }
コード例 #2
0
        public void RemoveIdentity(long identityId, PlayerId playerId = new PlayerId())
        {
            if (Sync.IsServer)
            {
                if (!RemoveIdentityInternal(identityId, playerId)) return;
            }

            var msg = new IdentityRemovedMsg();
            msg.IdentityId = identityId;
            msg.SteamId = playerId.SteamId;
            msg.SerialId = playerId.SerialId;

            if (Sync.IsServer)
            {
                Sync.Layer.SendMessageToAll(ref msg, MyTransportMessageEnum.Success);
            }
            else
            {
                Sync.Layer.SendMessageToServer(ref msg, MyTransportMessageEnum.Request);
            }
        }