static public void Send(LobbyClient client, int code) { PacketOut packet = new PacketOut((UInt32)Opcodes.ANS_LOGIN_FAILED); packet.WriteInt32R(code); client.SendTCP(packet); }
static public void Send(LobbyClient client) { Program.CharMgr.LoadCharacters(client.Account.Id); CharacterInfo[] _Chars = Program.CharMgr.GetInfos(client.Account.Id); WorldInfo Info = Program.CharMgr.GetWorldInfo(client.Account.WorldId); PacketOut Out = new PacketOut((UInt32)Opcodes.CHARACTER_LIST); Out.WriteByte((byte)_Chars.Length); foreach (CharacterInfo Char in _Chars) { Out.WriteByte(Char.Character.SlotId); Out.WriteByte(Char.Character.Faction); Out.WriteByte((byte)(Info.RpcID == 0 ? 0 : 1)); Out.WriteUInt32R((UInt32)Info._Info.Id); Out.WriteUnicodeString(Info._Info.Name, 32); Out.WriteUnicodeString(Char.Character.Name, 32); } client.SendTCP(Out); if (_Chars.Length <= 0) { WORLD_LIST.Send(client); } }
static public void HandlePacket(BaseClient client, PacketIn packet) { LobbyClient cclient = (LobbyClient)client; byte sloid = packet.GetUint8(); Program.CharMgr.SetEnter(cclient.Account.Id, sloid); WorldInfo Info = Program.CharMgr.GetWorldInfo(cclient.Account.WorldId); PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_WORLD_ENTER); if (Info == null) { Out.WriteUInt32R(1); } else { Out.WriteUInt32R(0); Out.WriteInt32R(Info.Ip); // WorldServerIp Out.WriteUInt16R((UInt16)Info.Port); // Port Out.WriteInt64R(TCPManager.GetTimeStamp()); } cclient.SendTCP(Out); }
static public void HandlePacket(BaseClient client, PacketIn packet) { LobbyClient cclient = (LobbyClient)client; UInt32 WorldUid = packet.GetUint32R(); string Name = packet.GetUnicodeString(); PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_CHARACTER_NAME_CHECK); if (CheckName(Name) == 0) { cclient.CreateChar = new DBCharacter(); cclient.CreateChar.AcctId = cclient.Account.Id; cclient.CreateChar.Name = Name; if (cclient.Account.WorldId != WorldUid) { Program.CharMgr.SetAccountWorld(cclient.Account.Id, (int)WorldUid); } Out.WriteUInt32(0); } else { cclient.CreateChar = null; Out.WriteUInt32(1); } cclient.SendTCP(Out); }
static public void Send(LobbyClient client) { PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_LOGIN_SUCCESS); Out.WriteUnicodeString(client.Account.RealTag, 48); Out.WriteUInt32R(21); // Account Type Out.WriteInt64R(TCPManager.GetTimeStamp()); // Temps avant expiration du compte Out.WriteByte(0x13); // ms Out.WriteByte(0x29); // sec Out.WriteUInt16R(0x12); // Hour // Date de création Out.WriteByte(0x0E); // day Out.WriteByte(0x07); // month Out.WriteUInt16R(2010); // Year Out.WriteInt32R(1450); // Temps de jeu (secondes) Out.WriteInt32R(client.Account.Points); // Points APB for (int i = 1; i < 6; ++i) { Out.WriteInt32R( Program.FileMgr.GetFileVersion(client.Account.Id, i, true, "", "")); // Config file, Server Version } Out.WriteInt32R(0); Out.WriteUInt16(0x957D); Out.WriteUInt16(0x0400); Out.WriteUInt16(0x5052); Out.WriteUInt16(0x4F45); Out.WriteUInt16(0x552E); Out.WriteUInt16(0x3232); Out.WriteUInt16(0x3738); Out.WriteUInt16(0x3031); Out.WriteUInt16(0); Out.WriteUInt16(0x0067); Out.WriteUInt64(0x526C624331313256); Out.WriteUInt64(0x486E314100000000); Out.WriteUInt16(0); Out.WriteStringBytes(""); Out.WriteByte(0); client.SendTCP(Out); ANS_CHARACTER_INFO.Send(client); }
public static void Send(LobbyClient client) { PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_CHARACTER_CREATE); if (client.CreateChar == null) Out.WriteInt32R(1); else { Out.WriteInt32R(0); Out.WriteInt32R(client.CreateChar.SlotId); } client.CreateChar = null; client.SendTCP(Out); }
public static void Send(LobbyClient client) { Log.Debug("LOGIN_SALT", "Send to " + client.Account.Email); MakeSalt(client); PacketOut Out = new PacketOut((UInt32)Opcodes.LOGIN_SALT); Out.WriteInt32R(client.Account.Id); Out.Write(client.B, 0, 64); Out.WriteByte(0x40); Out.WriteByte(0); Out.Write(client.Salt, 0, 10); client.SendTCP(Out); }
public static void Send(LobbyClient client) { PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_LOGIN_SUCCESS); Out.WriteUnicodeString(client.Account.RealTag,48); Out.WriteUInt32R(21); // Account Type Out.WriteInt64R(TCPManager.GetTimeStamp()); // Temps avant expiration du compte Out.WriteByte(0x13); // ms Out.WriteByte(0x29); // sec Out.WriteUInt16R(0x12); // Hour // Date de création Out.WriteByte(0x0E); // day Out.WriteByte(0x07); // month Out.WriteUInt16R(2010); // Year Out.WriteInt32R(1450); // Temps de jeu (secondes) Out.WriteInt32R(client.Account.Points); // Points APB for(int i=1;i<6;++i) Out.WriteInt32R( Program.FileMgr.GetFileVersion(client.Account.Id, i, true, "", "")); // Config file, Server Version Out.WriteInt32R(0); Out.WriteUInt16(0x957D); Out.WriteUInt16(0x0400); Out.WriteUInt16(0x5052); Out.WriteUInt16(0x4F45); Out.WriteUInt16(0x552E); Out.WriteUInt16(0x3232); Out.WriteUInt16(0x3738); Out.WriteUInt16(0x3031); Out.WriteUInt16(0); Out.WriteUInt16(0x0067); Out.WriteUInt64(0x526C624331313256); Out.WriteUInt64(0x486E314100000000); Out.WriteUInt16(0); Out.WriteStringBytes(""); Out.WriteByte(0); client.SendTCP(Out); ANS_CHARACTER_INFO.Send(client); }
static public void Send(LobbyClient client) { Log.Debug("LOGIN_SALT", "Send to " + client.Account.Email); MakeSalt(client); PacketOut Out = new PacketOut((UInt32)Opcodes.LOGIN_SALT); Out.WriteInt32R(client.Account.Id); Out.Write(client.B, 0, 64); Out.WriteByte(0x40); Out.WriteByte(0); Out.Write(client.Salt, 0, 10); client.SendTCP(Out); }
static public void Send(LobbyClient client) { PacketOut Out = new PacketOut((UInt32)Opcodes.LOGIN_PUZZLE); Out.WriteInt32Reverse(Program.Version[0]); Out.WriteInt32Reverse(Program.Version[1]); Out.WriteInt32Reverse(Program.Version[2]); Out.WriteInt32Reverse(Program.Build); Out.WriteByte(0x05); for (int i = 0; i < client.ECrypt.Key.Length; i++) Out.WriteByte(client.ECrypt.Key[i]); Out.WriteUInt32Reverse(0); Out.WriteUInt32Reverse(0); Out.WriteUInt32Reverse(0); client.SendTCP(Out); }
static public void Send(LobbyClient client) { PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_CHARACTER_CREATE); if (client.CreateChar == null) { Out.WriteInt32R(1); } else { Out.WriteInt32R(0); Out.WriteInt32R(client.CreateChar.SlotId); } client.CreateChar = null; client.SendTCP(Out); }
static public void HandlePacket(BaseClient client, PacketIn packet) { LobbyClient cclient = (LobbyClient)client; byte FileId = packet.GetUint8(); PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_CONFIGFILE_LOAD); Out.WriteInt32R(0); Out.WriteByte(FileId); byte[] Result = ZlibMgr.Compress( Program.FileMgr.GetFileByte(cclient.Account.Id, FileId, true, "", ""), zlibConst.Z_DEFAULT_COMPRESSION, 0); cclient.SendTCP(Out); }
public static void Send(LobbyClient client) { PacketOut Out = new PacketOut((UInt32)Opcodes.LOGIN_PUZZLE); Out.WriteInt32R(Program.Version[0]); Out.WriteInt32R(Program.Version[1]); Out.WriteInt32R(Program.Version[2]); Out.WriteInt32R(Program.Build); Out.WriteByte(0x05); Out.WriteInt64R(-313054979819954861); Out.WriteUInt32R(0); Out.WriteUInt32R(0); Out.WriteUInt32R(0); client.SendTCP(Out); }
public static void Send(LobbyClient client) { PacketOut Out = new PacketOut((UInt32)Opcodes.LOGIN_PUZZLE); if(Program.version == GameVersion.RTW_CB) { Out.WriteInt32Reverse(0); Out.WriteInt32Reverse(6); Out.WriteInt32Reverse(0); Out.WriteInt32Reverse(509927); } else if(Program.version == GameVersion.RTW_DVD) { Out.WriteInt32Reverse(1); Out.WriteInt32Reverse(1); Out.WriteInt32Reverse(0); Out.WriteInt32Reverse(534979); } else if (Program.version == GameVersion.RTW_LAST) { Out.WriteInt32Reverse(1); Out.WriteInt32Reverse(4); Out.WriteInt32Reverse(1); Out.WriteInt32Reverse(555239); } else if (Program.version == GameVersion.G1_LATEST) { Out.WriteInt32Reverse(1); Out.WriteInt32Reverse(19); Out.WriteInt32Reverse(4); Out.WriteInt32Reverse(766569); } else if (Program.version == GameVersion.G1_ENGUPD) { Out.WriteInt32Reverse(2); Out.WriteInt32Reverse(0); Out.WriteInt32Reverse(0); Out.WriteInt32Reverse(750394); } Out.WriteByte(0x05); for (int i = 0; i < client.ECrypt.Key.Length; i++) Out.WriteByte(client.ECrypt.Key[i]); Out.WriteUInt32Reverse(0); Out.WriteUInt32Reverse(0); Out.WriteUInt32Reverse(0); client.SendTCP(Out); }
static public void Send(LobbyClient client) { PacketOut Out = new PacketOut((UInt32)Opcodes.LOGIN_PUZZLE); Out.WriteInt32R(Program.Version[0]); Out.WriteInt32R(Program.Version[1]); Out.WriteInt32R(Program.Version[2]); Out.WriteInt32R(Program.Build); Out.WriteByte(0x05); Out.WriteInt64R(-313054979819954861); Out.WriteUInt32R(0); Out.WriteUInt32R(0); Out.WriteUInt32R(0); client.SendTCP(Out); }
public static void Send(LobbyClient client) { List<WorldInfo> _Worlds = Program.CharMgr.GetWorlds(); PacketOut Out = new PacketOut((UInt32)Opcodes.WORLD_LIST); Out.WriteInt32R(0); // Returned Code Out.WriteUInt16R((UInt16)_Worlds.Count); // World Count foreach (WorldInfo Info in _Worlds) { Out.WriteUInt32R((UInt32)Info._Info.Id); // WorldUid Out.WriteUnicodeString(Info._Info.Name, 32); // WorldName Out.WriteByte((byte)(Info.RpcID == 0 ? 0 : 1)); // Status Out.WriteByte(Info._Info.Population); // Pop 0:Low 1:Medium 2:High Out.WriteByte(Info._Info.Enf); // enf recommended , true or false Out.WriteByte(Info._Info.Crim); // crim recommended , true or false } client.SendTCP(Out); }
static public void HandlePacket(BaseClient client, PacketIn packet) { LobbyClient cclient = (LobbyClient)client; byte FileId = packet.GetUint8(); UInt32 Version = packet.GetUint32R(); byte[] File = new byte[packet.Length - packet.Position]; packet.Read(File, 0, File.Length); File = ZlibMgr.Decompress(File); Log.Debug("ConfigSave", "Config saved : fileid=" + FileId + ", Version=" + Version + ",Size=" + File.Length); Program.FileMgr.SaveInfo(cclient.Account.Id, FileId, File); PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_CONFIGFILE_SAVE); Out.WriteUInt32R(0); Out.WriteByte(FileId); Out.Write(File, 0, File.Length); cclient.SendTCP(Out); }
static public void HandlePacket(BaseClient client, PacketIn packet) { LobbyClient cclient = client as LobbyClient; byte slotid = packet.GetUint8(); CharacterInfo Info = Program.CharMgr.GetInfoBySlotId(cclient.Account.Id, slotid); PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_CHARACTER_INFO); if (Info == null || (Info != null & Info.Character == null)) { Out.WriteUInt32R(1); } else { DBCharacter Char = Info.Character; Out.WriteUInt32R(0); // Return code Out.WriteByte(Char.SlotId); // Slot Out.WriteByte(Char.Gender); // Gender Out.WriteUInt32R(1); // PlayTime Out.WriteUInt32R((UInt32)Char.Rank); // Ranking Out.WriteByte(Char.Threat); // Threat Out.WriteUInt32R((UInt32)(40000)); Out.WriteUnicodeString("APB-EMU", 60); // Clan Name byte[] Custom = Char.GetaCustom(); Out.Write(Custom, 0, Custom.Length); } cclient.SendTCP(Out); }
static public void Send(LobbyClient client) { List <WorldInfo> _Worlds = Program.CharMgr.GetWorlds(); PacketOut Out = new PacketOut((UInt32)Opcodes.WORLD_LIST); Out.WriteInt32R(0); // Returned Code Out.WriteUInt16R((UInt16)_Worlds.Count); // World Count foreach (WorldInfo Info in _Worlds) { Out.WriteUInt32R((UInt32)Info._Info.Id); // WorldUid Out.WriteUnicodeString(Info._Info.Name, 32); // WorldName Out.WriteByte((byte)(Info.RpcID == 0 ? 0 : 1)); // Status Out.WriteByte(Info._Info.Population); // Pop 0:Low 1:Medium 2:High Out.WriteByte(Info._Info.Enf); // enf recommended , true or false Out.WriteByte(Info._Info.Crim); // crim recommended , true or false } client.SendTCP(Out); }
public static void Send(LobbyClient client,int code) { PacketOut packet = new PacketOut((UInt32)Opcodes.ANS_LOGIN_FAILED); packet.WriteInt32R(code); client.SendTCP(packet); }