public static void HandleCharactersListRequestMessage(WorldClient client, CharactersListRequestMessage message)
        {
            if (client.Account != null && client.Account.Login != "")
            {
                CharacterRecord characterRecord = CharacterHandler.FindCharacterFightReconnection(client);
                if (characterRecord != null)
                {
                    var fight = Singleton <FightManager> .Instance.GetFight(characterRecord.LeftFightId.Value);

                    CharacterHandler.SendCharacterSelectedForceMessage(client, characterRecord);
                    CharacterHandler.CommonCharacterForceSelection(client, characterRecord, fight);
                }
                else
                {
                    CharacterHandler.SendCharactersListMessage(client);
                    if (client.WorldAccount != null && client.StartupActions.Count > 0)
                    {
                        StartupHandler.SendStartupActionsListMessage(client, client.StartupActions);
                    }
                }
            }
            else
            {
                client.Send(new IdentificationFailedMessage((sbyte)IdentificationFailureReasonEnum.UNKNOWN_AUTH_ERROR));
                client.DisconnectLater(1000);
            }
        }
예제 #2
0
        public static void HandleCharacterListRequest(WorldClient client, CharactersListRequestMessage message)
        {
            if (client.Account != null && client.Account.Login != "")
            {
                var characterInFight = FindCharacterFightReconnection(client);
                if (characterInFight != null)
                {
                    client.ForceCharacterSelection = characterInFight;
                    SendCharacterSelectedForceMessage(client, characterInFight.Id);
                }
                else
                {
                    SendCharactersListWithRemodelingMessage(client);
                }

                if (client.WorldAccount != null && client.StartupActions.Count > 0)
                {
                    StartupHandler.SendStartupActionsListMessage(client, client.StartupActions);
                }
            }
            else
            {
                client.Send(new IdentificationFailedMessage((int)IdentificationFailureReasonEnum.KICKED));
                client.DisconnectLater(1000);
            }
        }