Esempio n. 1
0
        public void Enter(Character character, Command replyCommand)
        {
            Logger.Info("[Zone Enter] start request. character:" + character.Id + " reply:" + replyCommand);

            try
            {
                if (this.TryGetPlayer(character, out Player player))
                {
                    Logger.Info("[Zone Enter] player on zone. player: " + player.Eid + " character:" + character.Id + " reply:" + replyCommand);
                    EnterQueueService.SendReplyCommand(character, player, replyCommand);
                    return;
                }

                if (replyCommand == Commands.TeleportUse)
                {
                    EnterQueueService.LoadPlayerAndSendReply(character, replyCommand);
                    return;
                }

                EnterQueueService.EnqueuePlayer(character, replyCommand);
            }
            finally
            {
                Logger.Info("[Zone Enter] end request. character:" + character.Id + " reply:" + replyCommand);
            }
        }
Esempio n. 2
0
        private void OnCharacterDeselected(ISession session, Character character)
        {
            EnterQueueService.RemovePlayer(character);

            var zoneSession = GetSessionByCharacter(character);

            zoneSession?.Disconnect();
        }