public static void BC_COMMANDER_CREATE(LoginConnection conn, Character character) { var packet = new Packet(Op.BC_COMMANDER_CREATE); packet.AddCharacter(character); conn.Send(packet); }
public static void BC_COMMANDER_LIST(LoginConnection conn) { var characters = conn.Account.GetCharacters(); var packet = new Packet(Op.BC_COMMANDER_LIST); packet.PutLong(conn.Account.Id); packet.PutByte(0); packet.PutByte((byte)characters.Length); packet.PutString(conn.Account.TeamName, 64); packet.AddAccountProperties(conn.Account); foreach (var character in characters) { packet.AddCharacter(character); // Equip properties, short->length for (int i = 0; i < Items.EquipSlotCount; ++i) { packet.PutShort(0); } // Some of these variables have to do with Lodge LAYER probably. (just a guess) packet.PutByte(1); packet.PutByte(1); packet.PutByte(1); // Job history? // While this short existed in iCBT1, it might not have // been used, couldn't find a log. // Example: A Mage that switched to Pyromancer has two // elements in this list, 2001 and 2002. packet.PutShort(0); // count // loop // short jobId // [i11025 (2016-02-26)] ? { packet.PutInt(0); } } // Null terminated list of some kind? // Example of != 0: 02 00 | 0B 00 00 00 01 00, 0C 00 00 00 00 00 packet.PutShort(0); // count? packet.PutShort(0); // unk packet.PutInt(conn.Account.GetCharacters().Count()); // unk packet.PutShort(conn.Account.GetCharacters().Count()); // unk conn.Send(packet); }