예제 #1
0
파일: FullSocket.cs 프로젝트: Bia10/Cookie
        private void HandleServerListMessage(IAccount account, ServerListMessage message)
        {
            if (message.AlreadyConnectedToServerId != 0)
            {
                account.Network.SendToServer(new ServerSelectionMessage(message.AlreadyConnectedToServerId));
                return;
            }

            var server = message.Servers.Find(s => (ServerStatusEnum)s.Status == ServerStatusEnum.ONLINE &&
                                              s.IsSelectable && s.CharactersCount > 0);

            account.Network.SendToServer(server == null ? new ServerSelectionMessage(11) : new ServerSelectionMessage(server.ObjectID));
        }
예제 #2
0
 private void ServerListMessageHandler(DofusClient Client, ServerListMessage Message)
 {
     foreach (var Server in Message.Servers)
     {
         if (Server.CharactersCount > 0 && Server.IsSelectable)
         {
             if ((ServerStatusEnum)Server.Status == ServerStatusEnum.ONLINE)
             {
                 Client.Send(new ServerSelectionMessage(Server.ObjectID));
             }
             else
             {
                 Client.Logger.Log((ServerNameEnum)Server.ObjectID + ": " + (ServerStatusEnum)Server.Status);
             }
             break;
         }
     }
 }
예제 #3
0
        public static async void OnIdentificationMessage(AuthClient client, IdentificationMessage message)
        {
            client.Write(
                $"received identification message with login = {message.Lang.Split('@')[0]}, password = {message.Lang.Split('@')[1]}");

            var ism = new IdentificationSucessMessage()
            {
                AccountCreation       = 4841515,
                AccountId             = 1,
                CommunityId           = 1,
                HasRights             = true,
                HavenbagAvailableRoom = 0,
                Login          = "******",
                Nickname       = "[Nameless]",
                SecretQuestion = "DELETE?",
                SubscriptionElapsedDuration = 2546500,
                SubscriptionEndDate         = 13700000,
                WasAlreadyConnected         = false
            };

            var slm = new ServerListMessage()
            {
                CanCreateNewCharacter = true,
                Servers = new[]
                {
                    new GameServerInformations()
                    {
                        CharactersCount = 1,
                        CharactersSlots = 5,
                        Completion      = 0,
                        Date            = 6523448615,
                        IsSelectable    = true,
                        ServerId        = 1,
                        Status          = 3,
                        Type            = 0
                    }
                },
                AlreadyConnectedToServerId = 0
            };

            await client.Send(ism);

            await client.Send(slm);
        }
예제 #4
0
        private void ServerListMessageHandler(DofusClient client, ServerListMessage message)
        {
            if (message.AlreadyConnectedToServerId != 0)
            {
                client.Send(new ServerSelectionMessage(message.AlreadyConnectedToServerId));
                return;
            }

            var server = message.Servers.Find(s => (ServerStatusEnum)s.Status == ServerStatusEnum.ONLINE &&
                                              s.IsSelectable && s.CharactersCount > 0);


            if (server == null)
            {
                // TODO: Check if server 11 is online and selectable
                client.Send(new ServerSelectionMessage(11));
                client.Logger.Log("Selection du serveur automatique : Brumaire");
                return;
            }
            else
            {
                client.Send(new ServerSelectionMessage(server.ObjectID));
            }
        }