Exemple #1
0
        /// <summary>
        /// Envia todos os dados do usuário para o world server que foi selecionado pelo cliente.
        /// </summary>
        /// <param name="pData"></param>
        /// <param name="worldID"></param>
        public static void PlayerLogin(PlayerData pData, int worldID)
        {
            var buffer = NetworServer.CreateMessage();

            buffer.Write((short)PacketList.LS_WS_PlayerLogin);
            buffer.Write(pData.HexID);
            buffer.Write(pData.Account);
            buffer.Write(pData.AccountID);
            buffer.Write(pData.LanguageID);
            buffer.Write(pData.AccessLevel);
            buffer.Write(pData.Cash);
            buffer.Write(pData.Pin);
            buffer.Write(pData.PinAttempt);

            //escreve a quantidade de serviços
            int[] servicesID = pData.Service.GetServicesID();
            buffer.Write(pData.Service.Count());

            //escreve cada serviço no buffer
            foreach (var id in servicesID)
            {
                buffer.Write(pData.Service.GetService(id));
            }

            var sData = Authentication.FindByID(worldID);

            if (sData == null)
            {
                return;
            }

            NetworServer.SendDataTo(sData.Connection, buffer, NetDeliveryMethod.ReliableOrdered);

            Log.Write($"{sData.Name} {sData.ID} login lttempt: {pData.Account}", Color.Black);
        }
Exemple #2
0
        /// <summary>
        /// Indica que o usuário se conectou ao game server.
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="accountID"></param>
        public static void UpdatePlayerStatus(NetConnection connection, int accountID)
        {
            var buffer = NetworServer.CreateMessage(6);

            buffer.Write((short)PacketList.GS_WS_UpdateUserStatus);
            buffer.Write(accountID);

            NetworServer.SendDataTo(connection, buffer, NetDeliveryMethod.ReliableOrdered);
        }
Exemple #3
0
        /// <summary>
        /// Envia a resposta para o login server se o usuario foi encontrado.
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="value"></param>
        /// <param name="username"></param>
        public static void ConnectedResult(NetConnection connection, bool value, string username)
        {
            var buffer = NetworServer.CreateMessage();

            buffer.Write((short)PacketList.LS_WS_IsPlayerConnected);
            buffer.Write(value);
            buffer.Write(username);

            NetworServer.SendDataTo(connection, buffer, NetDeliveryMethod.ReliableOrdered);
        }
Exemple #4
0
        /// <summary>
        /// Envia os dados do game server para o usuário.
        /// </summary>
        /// <param name="accountID"></param>
        /// <param name="ip"></param>
        /// <param name="port"></param>
        public static void SelectedPlayerRegion(NetConnection connection, int accountID, string ip, int port)
        {
            var buffer = NetworServer.CreateMessage();

            buffer.Write((short)PacketList.CS_SelectServer);
            buffer.Write(accountID);
            buffer.Write(ip);
            buffer.Write(port);

            NetworServer.SendDataTo(connection, buffer, NetDeliveryMethod.ReliableOrdered);
        }
Exemple #5
0
        /// <summary>
        /// Envia a mensagem, confirmar a conexão do usuário.
        /// </summary>
        /// <param name="accountID"></param>
        public static void UpdateUserConnected(int accountID)
        {
            var server = Authentication.FindByName("Login Server");

            if (server == null)
            {
                return;
            }

            var buffer = NetworServer.CreateMessage(6);

            buffer.Write((short)PacketList.WS_LS_UpdateUserStatus);
            buffer.Write(accountID);
            NetworServer.SendDataTo(server.Connection, buffer, NetDeliveryMethod.ReliableOrdered);
        }
Exemple #6
0
        /// <summary>
        /// Adiciona um novo serviço à conta de usuário.
        /// </summary>
        /// <param name="accountID"></param>
        /// <param name="serviceID"></param>
        /// <param name="days"></param>
        public static void InsertUserService(int accountID, int serviceID, int days)
        {
            var server = Authentication.FindByName("Login Server");

            if (server == null)
            {
                return;
            }

            var buffer = NetworServer.CreateMessage(14);

            buffer.Write((short)PacketList.WS_LS_InsertService);
            buffer.Write(accountID);
            buffer.Write(serviceID);
            buffer.Write(days);
            NetworServer.SendDataTo(server.Connection, buffer, NetDeliveryMethod.ReliableOrdered);
        }
Exemple #7
0
        /// <summary>
        /// Bloqueia um usuário.
        /// </summary>
        /// <param name="accountID"></param>
        /// <param name="minutes"></param>
        /// <param name="reason"></param>
        public static void UpdateBanAccount(int accountID, short minutes, string reason)
        {
            var server = Authentication.FindByName("Login Server");

            if (server == null)
            {
                return;
            }

            var buffer = NetworServer.CreateMessage(8);

            buffer.Write((short)PacketList.WS_LS_UpdateBan);
            buffer.Write(accountID);
            buffer.Write(minutes);
            buffer.Write(reason);
            NetworServer.SendDataTo(server.Connection, buffer, NetDeliveryMethod.ReliableOrdered);
        }
        public static void Login(PlayerData pData)
        {
            var buffer = NetworServer.CreateMessage();

            buffer.Write((short)PacketList.WS_GS_UserLogin);
            buffer.Write(pData.HexID);
            buffer.Write(pData.Account);
            buffer.Write(pData.AccountID);
            buffer.Write(pData.LanguageID);
            buffer.Write(pData.AccessLevel);
            buffer.Write(pData.CharacterID);
            buffer.Write(pData.CharSlot);

            //pega a quantidade de serviços
            var servicesID = pData.Service.GetServicesID();

            buffer.Write(servicesID.Length);

            //escreve cada um no buffer
            foreach (var id in servicesID)
            {
                buffer.Write(pData.Service.GetService(id));
            }

            var channel = AutoBalance.FindChannelByRegionID(pData.RegionID);

            if (channel == null)
            {
                Log.Write($"Failed to find channel region {pData.RegionID}", Color.Red);
                return;
            }

            var sData = Authentication.FindByID(channel.ServerID);

            if (sData == null)
            {
                Log.Write($"Failed to find server id {channel.ServerID}", Color.Red);
                return;
            }

            NetworServer.SendDataTo(sData.Connection, buffer, NetDeliveryMethod.ReliableOrdered);

            Log.Write($"{sData.Name} {sData.ID} login attempt: {pData.Account}", Color.Black);
        }