/// <summary>
        /// [Server] 클라이언트에서 AddCharacterMessage 를 받았을 때 호출
        /// </summary>
        /// <param name="player"></param>
        /// <param name="msg"></param>
        void OnServerAddPlayerInternal(INetworkPlayer player, AddCharacterMessage msg)
        {
            if (player.Identity != null)
            {
                throw new InvalidOperationException("There is already a player for this connection.");
            }

            OnServerAddPlayer(player);
        }
示例#2
0
        /// <summary>
        /// [Server] Handle <see cref="AddCharacterMessage"/> on server
        /// </summary>
        /// <param name="player"></param>
        /// <param name="msg"></param>
        void OnServerAddPlayerInternal(INetworkPlayer player, AddCharacterMessage msg)
        {
            if (player.Identity != null)
            {
                throw new InvalidOperationException("There is already a player for this connection.");
            }

            logger.Log($"[Server][OnServerAddPlayerInternal] recv {msg} from {player}");

            OnServerAddPlayer(player);
        }
示例#3
0
        private void OnServerAddPlayerInternal(INetworkPlayer player, AddCharacterMessage msg)
        {
            logger.Log("CharacterSpawner.OnServerAddPlayer");

            if (player.HasCharacter)
            {
                // player already has character on server, but client asked for it
                // so we respawn it here so that client recieves it again
                // this can happen when client loads normally, but server addititively
                ServerObjectManager.Spawn(player.Identity);
            }
            else
            {
                OnServerAddPlayer(player);
            }
        }
示例#4
0
        private void Handle(AddCharacterMessage message)
        {
            var account = AccountManager.FindAccountById(message.AccountId);

            if (account == null)
            {
                Client.SendError(string.Format("Account {0} not found", message.AccountId), message);
                return;
            }

            if (AccountManager.AddAccountCharacter(account, WorldServer, message.CharacterId))
            {
                Client.ReplyRequest(new CommonOKMessage(), message);
            }
            else
            {
                Client.SendError(string.Format("Cannot add {0} character to {1} account", message.CharacterId, message.AccountId), message);
            }
        }