/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }