public override Item DecodeItemPacket(byte[] PacketBuffer) { ByteStream Buffer = new ByteStream(PacketBuffer); Item NewItem = new Item(); Buffer.SetPosition(30); NewItem.MerchantSlot = Buffer.ReadByte(); // 13 NewItem.Price = Buffer.ReadUInt32(); // 14 Buffer.SkipBytes(5); NewItem.Quantity = Buffer.ReadInt32(); // 23 Buffer.SetPosition(97); NewItem.Name = Buffer.ReadString(true); NewItem.Lore = Buffer.ReadString(true); NewItem.IDFile = Buffer.ReadString(true); Buffer.SkipBytes(1); NewItem.ID = Buffer.ReadUInt32(); return NewItem; }
public void ExploreItemPacket(StreamWriter OutputStream, ByteStream Buffer, PacketDirection Direction) { UInt32 StackSize = Buffer.ReadUInt32(); Buffer.SkipBytes(4); UInt32 Slot = Buffer.ReadUInt32(); UInt32 MerchantSlot = Buffer.ReadUInt32(); UInt32 Price = Buffer.ReadUInt32(); Int32 Quantity = Buffer.ReadInt32(); Buffer.SetPosition(68); string Name = Buffer.ReadString(true); OutputStream.WriteLine("Item: {0} at Slot: {1}", Name, Slot); }
public override Item DecodeItemPacket(byte[] PacketBuffer) { ByteStream Buffer = new ByteStream(PacketBuffer); Item NewItem = new Item(); NewItem.StackSize = Buffer.ReadUInt32(); Buffer.SkipBytes(4); NewItem.Slot = Buffer.ReadUInt32(); NewItem.MerchantSlot = Buffer.ReadUInt32(); NewItem.Price = Buffer.ReadUInt32(); NewItem.Quantity = Buffer.ReadInt32(); Buffer.SetPosition(68); NewItem.Name = Buffer.ReadString(true); NewItem.Lore = Buffer.ReadString(true); NewItem.IDFile = Buffer.ReadString(true); NewItem.ID = Buffer.ReadUInt32(); return NewItem; }
public override MerchantManager GetMerchantData(NPCSpawnList NPCSL) { List<EQApplicationPacket> PacketList = Packets.PacketList; UInt32 OP_ShopRequest = OpManager.OpCodeNameToNumber("OP_ShopRequest"); UInt32 OP_ShopEnd = OpManager.OpCodeNameToNumber("OP_ShopEnd"); UInt32 OP_ItemPacket = OpManager.OpCodeNameToNumber("OP_ItemPacket"); MerchantManager mm = new MerchantManager(); for (int i = 0; i < PacketList.Count; ++i) { EQApplicationPacket p = PacketList[i]; if ((p.Direction == PacketDirection.ServerToClient) && (p.OpCode == OP_ShopRequest)) { ByteStream Buffer = new ByteStream(p.Buffer); UInt32 MerchantSpawnID = Buffer.ReadUInt32(); NPCSpawn npc = NPCSL.GetNPC(MerchantSpawnID); UInt32 NPCTypeID; if (npc != null) NPCTypeID = npc.NPCTypeID; else NPCTypeID = 0; mm.AddMerchant(MerchantSpawnID); for (int j = i + 1; j < PacketList.Count; ++j) { p = PacketList[j]; if (p.OpCode == OP_ShopEnd) break; if (p.OpCode == OP_ItemPacket) { Buffer = new ByteStream(p.Buffer); UInt32 StackSize = Buffer.ReadUInt32(); Buffer.SkipBytes(4); UInt32 Slot = Buffer.ReadUInt32(); UInt32 MerchantSlot = Buffer.ReadUInt32(); UInt32 Price = Buffer.ReadUInt32(); Int32 Quantity = Buffer.ReadInt32(); Buffer.SetPosition(68); // Point to item name string ItemName = Buffer.ReadString(true); string Lore = Buffer.ReadString(true); string IDFile = Buffer.ReadString(true); UInt32 ItemID = Buffer.ReadUInt32(); //if (Quantity == -1) mm.AddMerchantItem(MerchantSpawnID, ItemID, ItemName, MerchantSlot, Quantity); } } } } return mm; }
public void ExplorePlayerProfile(StreamWriter OutputStream, ByteStream Buffer, PacketDirection Direction) { OutputStream.WriteLine("{0, -5}: Checksum = {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: ChecksumSize = {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine(""); OutputStream.WriteLine("{0, -5}: Gender = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Race = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Class = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Level = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Level1 = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine(""); UInt32 BindCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: BindCount = {1}", Buffer.GetPosition() - 4, BindCount); for (int i = 0; i < BindCount; ++i) { OutputStream.WriteLine("{0, -5}: Bind: {1} Zone: {2} XYZ: {3},{4},{5} Heading: {6}", Buffer.GetPosition(), i, Buffer.ReadUInt32(), Buffer.ReadSingle(), Buffer.ReadSingle(), Buffer.ReadSingle(), Buffer.ReadSingle()); } OutputStream.WriteLine(""); OutputStream.WriteLine("{0, -5}: Deity = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Intoxication = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine(""); //Buffer.SkipBytes(8); // Deity, intoxication UInt32 UnknownCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Unknown Count = {1}", Buffer.GetPosition() - 4, UnknownCount); for (int i = 0; i < UnknownCount; ++i) { OutputStream.WriteLine("{0, -5}: Unknown : {1}, Value = {2}", Buffer.GetPosition(), i, Buffer.ReadUInt32()); //Buffer.SkipBytes(4); } UInt32 EquipmentCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: EquipmentCount = {1}", Buffer.GetPosition() - 4, EquipmentCount); for (int i = 0; i < EquipmentCount; ++i) { OutputStream.Write("{0, -5}: Equip: {1} Values: ", Buffer.GetPosition(), i); for (int j = 0; j < 5; ++j) OutputStream.Write("{0} ", Buffer.ReadUInt32()); OutputStream.WriteLine(""); //Buffer.SkipBytes(20); } UInt32 EquipmentCount2 = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: EquipmentCount2 = {1}", Buffer.GetPosition() - 4, EquipmentCount2); for (int i = 0; i < EquipmentCount2; ++i) { OutputStream.Write("{0, -5}: Equip2: {1} Values: ", Buffer.GetPosition(), i); for (int j = 0; j < 5; ++j) OutputStream.Write("{0} ", Buffer.ReadUInt32()); OutputStream.WriteLine(""); //Buffer.SkipBytes(20); } UInt32 TintCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: TintCount = {1}", Buffer.GetPosition() - 4, TintCount); for (int i = 0; i < TintCount; ++i) { OutputStream.WriteLine("{0, -5}: TintCount : {1}, Value = {2}", Buffer.GetPosition(), i, Buffer.ReadUInt32()); //Buffer.SkipBytes(4); } UInt32 TintCount2 = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: TintCount2 = {1}", Buffer.GetPosition() - 4, TintCount2); for (int i = 0; i < TintCount; ++i) { OutputStream.WriteLine("{0, -5}: TintCount2 : {1}, Value = {2}", Buffer.GetPosition(), i, Buffer.ReadUInt32()); //Buffer.SkipBytes(4); } OutputStream.WriteLine("{0, -5}: Hair Color = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Beard Color = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Eye1 Color = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Eye2 Color = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Hairstyle = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Beard = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Face = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Drakkin Heritage = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Drakkin Tattoo = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Drakkin Details = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Height = {1}", Buffer.GetPosition(), Buffer.ReadSingle()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadSingle()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadSingle()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadSingle()); OutputStream.WriteLine("{0, -5}: Primary = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Secondary = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); //Buffer.SkipBytes(52); // Per SEQ, this looks like face, haircolor, beardcolor etc. OutputStream.WriteLine("{0, -5}: Unspent Skill Points = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Mana = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Current HP = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); //UInt32 Points = Buffer.ReadUInt32(); //UInt32 Mana = Buffer.ReadUInt32(); //UInt32 CurHP = Buffer.ReadUInt32(); //OutputStream.WriteLine("Points, Mana, CurHP = {0}, {1}, {2}", Points, Mana, CurHP); OutputStream.WriteLine("{0, -5}: STR = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: STA = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: CHA = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: DEX = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: INT = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: AGI = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: WIS = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); //Buffer.SkipBytes(28); //Buffer.SkipBytes(28); UInt32 AACount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: AA Count = {1}", Buffer.GetPosition() - 4, AACount); for (int i = 0; i < AACount; ++i) { OutputStream.WriteLine(" AA: {0}, Value: {1}, Unknown08: {2}", Buffer.ReadUInt32(), Buffer.ReadUInt32(), Buffer.ReadUInt32()); //Buffer.SkipBytes(12); } UInt32 SkillCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Skill Count = {1}", Buffer.GetPosition() - 4, SkillCount); for (int i = 0; i < SkillCount; ++i) { Buffer.SkipBytes(4); } UInt32 SomethingCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Something Count = {1}", Buffer.GetPosition() - 4, SomethingCount); for (int i = 0; i < SomethingCount; ++i) { //Buffer.SkipBytes(4); OutputStream.WriteLine("Something {0} : {1}", i, Buffer.ReadUInt32()); } UInt32 DisciplineCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Discipline Count = {1}", Buffer.GetPosition() - 4, DisciplineCount); for (int i = 0; i < DisciplineCount; ++i) { Buffer.SkipBytes(4); } UInt32 TimeStampCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: TimeStamp Count = {1}", Buffer.GetPosition() - 4, TimeStampCount); for (int i = 0; i < TimeStampCount; ++i) { //Buffer.SkipBytes(4); OutputStream.WriteLine("Timestamp {0} : {1}", i, Buffer.ReadUInt32()); } System.DateTime dateTime; UInt32 RecastCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Recast Count = {1}", Buffer.GetPosition() - 4, RecastCount); for (int i = 0; i < RecastCount; ++i) { //Buffer.SkipBytes(4); UInt32 TimeStamp = Buffer.ReadUInt32(); dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0); dateTime = dateTime.AddSeconds(TimeStamp); OutputStream.WriteLine("Recast {0} : {1} {2}", i, TimeStamp, dateTime.ToString()); } UInt32 TimeStamp2Count = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: TimeStamp2 Count = {1}", Buffer.GetPosition() - 4, TimeStamp2Count); for (int i = 0; i < TimeStamp2Count; ++i) { //Buffer.SkipBytes(4); UInt32 TimeStamp = Buffer.ReadUInt32(); dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0); dateTime = dateTime.AddSeconds(TimeStamp); OutputStream.WriteLine("Timestamp {0} : {1} {2}", i, TimeStamp, dateTime.ToString()); } UInt32 SpellBookSlots = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: SpellBookSlot Count = {1}", Buffer.GetPosition() - 4, SpellBookSlots); for (int i = 0; i < SpellBookSlots; ++i) { Buffer.SkipBytes(4); } UInt32 SpellMemSlots = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Spell Mem Count = {1}", Buffer.GetPosition() - 4, SpellMemSlots); for (int i = 0; i < SpellMemSlots; ++i) { Buffer.SkipBytes(4); } SomethingCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Unknown Count = {1}", Buffer.GetPosition() - 4, SomethingCount); for (int i = 0; i < SomethingCount; ++i) { //Buffer.SkipBytes(4); OutputStream.WriteLine("Unknown {0} : {1}", i, Buffer.ReadUInt32()); } OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadByte()); UInt32 BuffCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Buff Count = {1}", Buffer.GetPosition() - 4, BuffCount); for (int i = 0; i < BuffCount; ++i) { Buffer.ReadByte(); float UnkFloat = Buffer.ReadSingle(); UInt32 PlayerID = Buffer.ReadUInt32(); Byte UnkByte = Buffer.ReadByte(); UInt32 Counters1 = Buffer.ReadUInt32(); UInt32 Duration = Buffer.ReadUInt32(); Byte Level = Buffer.ReadByte(); UInt32 SpellID = Buffer.ReadUInt32(); UInt32 SlotID = Buffer.ReadUInt32(); Buffer.SkipBytes(5); UInt32 Counters2 = Buffer.ReadUInt32(); OutputStream.WriteLine("Sl: {0}, UF: {1}, PID: {2}, UByte: {3}, Cnt1: {4}, Dur: {5}, Lvl: {6} SpellID: {7}, SlotID: {8}, Cnt2: {9}", i, UnkFloat, PlayerID, UnkByte, Counters1, Duration, Level, SpellID, SlotID, Counters2); Buffer.SkipBytes(44); } OutputStream.WriteLine("{0, -5}: Plat = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Gold = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Silver = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Copper = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Plat Cursor = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Gold Cursor = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Silver Cursor = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Copper Cursor = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Toxicity? = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Thirst? = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Hunger? = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); //Buffer.SkipBytes(20); OutputStream.WriteLine("{0, -5}: AA Spent = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: AA Point Count? = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: AA Assigned = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: AA Spent General = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: AA Spent Archetype = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: AA Spent Class = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: AA Spent Special = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: AA Unspent = {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown", Buffer.GetPosition(), Buffer.ReadUInt16()); //Buffer.SkipBytes(30); UInt32 BandolierCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Bandolier Count = {1}", Buffer.GetPosition() - 4, BandolierCount); for (int i = 0; i < BandolierCount; ++i) { Buffer.ReadString(false); Buffer.ReadString(false); Buffer.SkipBytes(8); Buffer.ReadString(false); Buffer.SkipBytes(8); Buffer.ReadString(false); Buffer.SkipBytes(8); Buffer.ReadString(false); Buffer.SkipBytes(8); } UInt32 PotionCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Potion Count = {1}", Buffer.GetPosition() - 4, PotionCount); for (int i = 0; i < PotionCount; ++i) { Buffer.ReadString(false); Buffer.SkipBytes(8); } OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadInt32()); OutputStream.WriteLine("{0, -5}: Item HP Total? {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Endurance Total? {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Mana Total? {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Expansion Count {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); UInt32 NameLength = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Name Length: {1}", Buffer.GetPosition() - 4, NameLength); int CurrentPosition = Buffer.GetPosition(); OutputStream.WriteLine("{0, -5}: Name: {1}", Buffer.GetPosition(), Buffer.ReadString(false)); Buffer.SetPosition(CurrentPosition + (int)NameLength); UInt32 LastNameLength = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: LastName Length: {1}", Buffer.GetPosition() - 4, LastNameLength); CurrentPosition = Buffer.GetPosition(); OutputStream.WriteLine("{0, -5}: Last Name: {1}", Buffer.GetPosition(), Buffer.ReadString(false)); Buffer.SetPosition(CurrentPosition + (int)LastNameLength); OutputStream.WriteLine("{0, -5}: Birthday {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Account Start Date {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Last Login Date {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Time Played Minutes {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Time Entitled On Account {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Expansions {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); UInt32 LanguageCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Language Count = {1}", Buffer.GetPosition() - 4, LanguageCount); for (int i = 0; i < LanguageCount; ++i) { Buffer.SkipBytes(1); } OutputStream.WriteLine("{0, -5}: Zone ID {1}", Buffer.GetPosition(), Buffer.ReadUInt16()); OutputStream.WriteLine("{0, -5}: Zone Instance {1}", Buffer.GetPosition(), Buffer.ReadUInt16()); OutputStream.WriteLine("{0, -5}: Y,X,Z {1},{2},{3} Heading: {4}", Buffer.GetPosition(), Buffer.ReadSingle(), Buffer.ReadSingle(), Buffer.ReadSingle(), Buffer.ReadSingle()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: GuildID? {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Experience {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Bank Plat {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Bank Gold {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Bank Silver {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Bank Copper {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); UInt32 Unknown42 = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Unknown, value 42? {1}", Buffer.GetPosition() - 4, Unknown42); Buffer.SkipBytes((int)(Unknown42 * 8)); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Career Tribute Favour {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Current Tribute Favour {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); UInt32 PersonalTributeCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Personal Tribute Count {1}", Buffer.GetPosition() - 4, PersonalTributeCount); Buffer.SkipBytes((int)(PersonalTributeCount * 8)); UInt32 GuildTributeCount = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Guild Tribute Count {1}", Buffer.GetPosition() - 4, GuildTributeCount); Buffer.SkipBytes((int)(GuildTributeCount * 8)); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("Skipping 121 bytes starting at offset {0}", Buffer.GetPosition()); Buffer.SkipBytes(121); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("Position now {0}", Buffer.GetPosition()); UInt32 Unknown64 = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Unknown64 {1}", Buffer.GetPosition() - 4, Unknown64); Buffer.SkipBytes((int)Unknown64); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); Unknown64 = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Unknown64 {1}", Buffer.GetPosition() - 4, Unknown64); Buffer.SkipBytes((int)Unknown64); Unknown64 = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Unknown64 {1}", Buffer.GetPosition() - 4, Unknown64); Buffer.SkipBytes((int)Unknown64); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("Skipping 320 bytes starting at offset {0}", Buffer.GetPosition()); Buffer.SkipBytes(320); OutputStream.WriteLine("Skipping 343 bytes starting at offset {0}", Buffer.GetPosition()); Buffer.SkipBytes(343); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); UInt32 Unknown6 = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Unknown6 {1} LDON Stuff ?", Buffer.GetPosition() - 4, Unknown6); for (int i = 0; i < Unknown6; ++i) OutputStream.WriteLine("{0, -5}: Unknown LDON? {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); Unknown64 = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Unknown64 {1}", Buffer.GetPosition() - 4, Unknown64); Buffer.SkipBytes((int)Unknown64 * 4); // Air remaining ? OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); // Next 7 could be PVP stats, OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); // PVP LastKill struct ? OutputStream.WriteLine("Skipping string + 24 bytes starting at offset {0}", Buffer.GetPosition()); //Buffer.SkipBytes(25); Byte b; do { b = Buffer.ReadByte(); } while (b != 0); Buffer.SkipBytes(24); // PVP LastDeath struct ? OutputStream.WriteLine("Skipping string + 24 bytes starting at offset {0}", Buffer.GetPosition()); //Buffer.SkipBytes(25); do { b = Buffer.ReadByte(); } while (b != 0); Buffer.SkipBytes(24); // PVP Number of Kills in Last 24 hours ? OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); UInt32 Unknown50 = Buffer.ReadUInt32(); OutputStream.WriteLine("{0, -5}: Unknown50 {1}", Buffer.GetPosition() - 4, Unknown50); // PVP Recent Kills ? OutputStream.WriteLine("Skipping 50 x (String + 24 bytes) starting at offset {0}", Buffer.GetPosition()); //Buffer.SkipBytes(1338); for (int i = 0; i < 50; ++i) { do { b = Buffer.ReadByte(); } while (b != 0); Buffer.SkipBytes(24); } // OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Group autoconsent? {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Raid autoconsent? {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Guild autoconsent? {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: Level3? {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Showhelm? {1}", Buffer.GetPosition(), Buffer.ReadByte()); OutputStream.WriteLine("{0, -5}: RestTimer? {1}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("Skipping 1028 bytes starting at offset {0}", Buffer.GetPosition()); Buffer.SkipBytes(1028); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("{0, -5}: Unknown {1:X}", Buffer.GetPosition(), Buffer.ReadUInt32()); OutputStream.WriteLine("Pointer is {0} bytes from end.", Buffer.Length() - Buffer.GetPosition()); }
public override UInt16 GetZoneNumber() { // A return value of zero from this method should be intepreted as 'Unable to identify patch version'. // Thanks to ShowEQ team for details on how to parse the variable length PP List<byte[]> PlayerProfilePacket = GetPacketsOfType("OP_PlayerProfile", PacketDirection.ServerToClient); if (PlayerProfilePacket.Count == 0) { return 0; } ByteStream Buffer = new ByteStream(PlayerProfilePacket[0]); Buffer.SkipBytes(24); UInt32 BindCount = Buffer.ReadUInt32(); for (int i = 0; i < BindCount; ++i) { Buffer.SkipBytes(20); // sizeof(Bind Struct) } Buffer.SkipBytes(8); // Deity, intoxication UInt32 SpellRefreshCount = Buffer.ReadUInt32(); for (int i = 0; i < SpellRefreshCount; ++i) { Buffer.SkipBytes(4); } UInt32 EquipmentCount = Buffer.ReadUInt32(); for (int i = 0; i < EquipmentCount; ++i) { Buffer.SkipBytes(20); } UInt32 SomethingCount = Buffer.ReadUInt32(); for (int i = 0; i < SomethingCount; ++i) { Buffer.SkipBytes(20); } SomethingCount = Buffer.ReadUInt32(); for (int i = 0; i < SomethingCount; ++i) { Buffer.SkipBytes(4); } SomethingCount = Buffer.ReadUInt32(); for (int i = 0; i < SomethingCount; ++i) { Buffer.SkipBytes(4); } Buffer.SkipBytes(52); // Per SEQ, this looks like face, haircolor, beardcolor etc. UInt32 Points = Buffer.ReadUInt32(); UInt32 Mana = Buffer.ReadUInt32(); UInt32 CurHP = Buffer.ReadUInt32(); Buffer.SkipBytes(28); Buffer.SkipBytes(28); UInt32 AACount = Buffer.ReadUInt32(); for (int i = 0; i < AACount; ++i) { Buffer.SkipBytes(12); } SomethingCount = Buffer.ReadUInt32(); for (int i = 0; i < SomethingCount; ++i) { Buffer.SkipBytes(4); } SomethingCount = Buffer.ReadUInt32(); for (int i = 0; i < SomethingCount; ++i) { Buffer.SkipBytes(4); } SomethingCount = Buffer.ReadUInt32(); for (int i = 0; i < SomethingCount; ++i) { Buffer.SkipBytes(4); } SomethingCount = Buffer.ReadUInt32(); for (int i = 0; i < SomethingCount; ++i) { Buffer.SkipBytes(4); } SomethingCount = Buffer.ReadUInt32(); for (int i = 0; i < SomethingCount; ++i) { Buffer.SkipBytes(4); } SomethingCount = Buffer.ReadUInt32(); for (int i = 0; i < SomethingCount; ++i) { Buffer.SkipBytes(4); } UInt32 SpellBookSlots = Buffer.ReadUInt32(); for (int i = 0; i < SpellBookSlots; ++i) { Buffer.SkipBytes(4); } UInt32 SpellMemSlots = Buffer.ReadUInt32(); for (int i = 0; i < SpellMemSlots; ++i) { Buffer.SkipBytes(4); } SomethingCount = Buffer.ReadUInt32(); for (int i = 0; i < SomethingCount; ++i) { Buffer.SkipBytes(4); } Buffer.SkipBytes(1); UInt32 BuffCount = Buffer.ReadUInt32(); for (int i = 0; i < BuffCount; ++i) { Buffer.SkipBytes(80); } UInt32 Plat = Buffer.ReadUInt32(); UInt32 Gold = Buffer.ReadUInt32(); UInt32 Silver = Buffer.ReadUInt32(); UInt32 Copper = Buffer.ReadUInt32(); Buffer.SkipBytes(16); // Money on cursor Buffer.SkipBytes(20); UInt32 AASpent = Buffer.ReadUInt32(); Buffer.SkipBytes(30); UInt32 BandolierCount = Buffer.ReadUInt32(); for (int i = 0; i < BandolierCount; ++i) { Buffer.ReadString(false); Buffer.ReadString(false); Buffer.SkipBytes(8); Buffer.ReadString(false); Buffer.SkipBytes(8); Buffer.ReadString(false); Buffer.SkipBytes(8); Buffer.ReadString(false); Buffer.SkipBytes(8); } UInt32 PotionCount = Buffer.ReadUInt32(); for (int i = 0; i < PotionCount; ++i) { Buffer.ReadString(false); Buffer.SkipBytes(8); } Buffer.SkipBytes(100); int CurrentPosition = Buffer.GetPosition(); String PlayerName = Buffer.ReadString(false); Buffer.SetPosition(CurrentPosition + 64); Buffer.SkipBytes(96); // This is what I am after ... UInt16 ZoneID = Buffer.ReadUInt16(); return ZoneID; }
public void ExplorePlayerProfile(StreamWriter OutputStream, ByteStream Buffer, PacketDirection Direction) { Buffer.SetPosition(12); UInt32 PlayerClass = Buffer.ReadUInt32(); Buffer.SetPosition(56); byte PlayerLevel = Buffer.ReadByte(); Buffer.SetPosition(18100); OutputStream.WriteLine("Name: {0} Class: {1} Level: {2}\r\n", Buffer.ReadString(false), PlayerClass, PlayerLevel); }
public void ExploreNewZonePacket(StreamWriter OutputStream, ByteStream Buffer, PacketDirection Direction) { Buffer.SetPosition(704); OutputStream.WriteLine("Zone name is {0}\r\n", Buffer.ReadString(false)); }