コード例 #1
0
        /// <summary>
        /// When a new player joins we need to inform all the other clients as to
        /// which entity they control.
        /// </summary>
        private void AnnounceClientEntityControlSituationToClients(RemotePlayer player, Entity entity)
        {
            var msg = new ServerClientEntityControlMessage
            {
                EntityId = entity.EntityId,
                ClientId = player.ClientId
            };

            Engine.SendMessage(msg);
        }
コード例 #2
0
        /// <summary>
        /// Server - Inform a client who controls which entities.
        /// </summary>
        /// <param name="msg"></param>
        private void AnnounceClientEntitiesControlSituationToClient(Message msg)
        {
            var message = (ClientRequestEntityControlMessage)msg;
            var player  = message.Sender;

            foreach (var playerControlledEntity in Engine.Entities.Where(item => item.GetPlayerId() != null))
            {
                var playerId = playerControlledEntity.GetPlayerId();
                if (playerId == null)
                {
                    continue;
                }

                var outMsg = new ServerClientEntityControlMessage
                {
                    EntityId = playerControlledEntity.EntityId,
                    ClientId = playerId.Value
                };

                Engine.SendMessageToClient(outMsg, player);
            }
        }