public static void HandleDestroyObject(Packet packet) { if (packet.Direction == Direction.ServerToClient) { var guid = new byte[8]; guid[3] = packet.ReadBit(); guid[2] = packet.ReadBit(); guid[4] = packet.ReadBit(); guid[1] = packet.ReadBit(); packet.ReadBit("Despawn Animation"); guid[7] = packet.ReadBit(); guid[0] = packet.ReadBit(); guid[6] = packet.ReadBit(); guid[5] = packet.ReadBit(); packet.ParseBitStream(guid, 0, 4, 7, 2, 6, 3, 1, 5); packet.WriteGuid("Object Guid", guid); } else { packet.WriteLine(" : CMSG_PVP_LOG_DATA"); } }
public static void HandleGuildAchievementData(Packet packet) { var count = packet.ReadBits("Criteria count", 20); var guid = new byte[count][]; for (var i = 0; i < count; ++i) { guid[i] = new byte[8]; packet.StartBitStream(guid[i], 3, 5, 4, 7, 2, 1, 0, 6); } for (var i = 0; i < count; ++i) { packet.ReadXORByte(guid[i], 2); packet.ReadXORByte(guid[i], 7); packet.ReadInt32("Unk 1", i); packet.ReadXORByte(guid[i], 5); packet.ReadXORByte(guid[i], 3); packet.ReadXORByte(guid[i], 1); packet.ReadInt32<AchievementId>("Achievement Id", i); packet.ReadXORByte(guid[i], 6); packet.ReadInt32("Unk 2", i); packet.ReadXORByte(guid[i], 4); packet.ReadXORByte(guid[i], 0); packet.ReadPackedTime("Time", i); packet.WriteGuid("Guid", guid[i], i); } }
public static void HandleVoidItemSwapResponse(Packet packet) { packet.ReadBit("Has Src Item id (Inv)"); byte[] itemId2 = packet.StartBitStream(4, 1, 6, 0, 3, 7, 2, 5); packet.ReadBit("Has Dest Item id (Inv)"); byte[] itemId1 = itemId1 = packet.StartBitStream(6, 0, 3, 2, 1, 5, 7, 4); var usedSrcSlot = !packet.ReadBit("Used Src Slot (Inv)"); // always set? var usedDestSlot = !packet.ReadBit("Used Dest Slot (Inv)"); packet.ParseBitStream(itemId1, 3, 7, 2, 5, 0, 1, 4, 6); packet.WriteGuid("Dest Item Id", itemId1); packet.ParseBitStream(itemId2, 0, 2, 7, 5, 6, 4, 3, 1); packet.WriteGuid("Src Item Id", itemId2); if (usedSrcSlot) packet.ReadInt32("New Slot for Src Item"); if (usedDestSlot) packet.ReadInt32("New Slot for Dest Item"); }
public static void HandleItemEnchantTimeUpdate(Packet packet) { var itemGuid = new byte[8]; var playerGuid = new byte[8]; packet.StartBitStream(itemGuid, 2, 4); playerGuid[4] = packet.ReadBit(); itemGuid[5] = packet.ReadBit(); packet.StartBitStream(playerGuid, 3, 5); packet.StartBitStream(itemGuid, 7, 0, 6); packet.StartBitStream(playerGuid, 6, 2, 0, 1); itemGuid[1] = packet.ReadBit(); playerGuid[7] = packet.ReadBit(); itemGuid[3] = packet.ReadBit(); packet.ResetBitReader(); packet.ReadXORBytes(playerGuid, 1, 7); packet.ReadXORBytes(itemGuid, 4, 7); packet.ReadXORByte(playerGuid, 5); packet.ReadXORBytes(itemGuid, 1, 2); packet.ReadXORBytes(playerGuid, 4, 2, 0); packet.ReadXORBytes(itemGuid, 0, 5); packet.ReadUInt32("Duration"); packet.ReadUInt32("Slot"); packet.ReadXORByte(playerGuid, 3); packet.ReadXORBytes(itemGuid, 3, 6); packet.ReadXORByte(playerGuid, 6); packet.WriteGuid("Player GUID", playerGuid); packet.WriteGuid("Item GUID", itemGuid); }
public static void HandleLootList(Packet packet) { var guid48 = new byte[8]; guid48[5] = packet.ReadBit(); var unk24 = packet.ReadBit("unk24"); // 24 var guid16 = new byte[8]; if (unk24) guid16 = packet.StartBitStream(4, 6, 0, 7, 5, 2, 3, 1); guid48[1] = packet.ReadBit(); var unk40 = packet.ReadBit("unk40"); // 40 guid48[4] = packet.ReadBit(); guid48[3] = packet.ReadBit(); guid48[2] = packet.ReadBit(); var guid32 = new byte[8]; if (unk40) guid32 = packet.StartBitStream(2, 3, 4, 5, 6, 0, 1, 7); guid48[7] = packet.ReadBit(); guid48[0] = packet.ReadBit(); guid48[6] = packet.ReadBit(); if (unk40) { packet.ParseBitStream(guid32, 7, 1, 0, 6, 5, 3, 4, 2); packet.WriteGuid("guid32", guid32); } if (unk24) { packet.ParseBitStream(guid16, 4, 5, 6, 3, 2, 7, 0, 1); packet.WriteGuid("guid16", guid16); } packet.ParseBitStream(guid48, 5, 1, 6, 2, 3, 0, 7, 4); packet.WriteGuid("guid48", guid48); }
public static void HandleEquipmentSetList(Packet packet) { var count = packet.ReadBits(19); var guid1 = new byte[count][][]; var guid2 = new byte[count][]; var bits0 = new uint[count]; var bits4 = new uint[count]; for (var i = 0; i < count; i++) { guid1[i] = new byte[NumSlots][]; guid2[i] = new byte[8]; guid2[i][7] = packet.ReadBit(); for (var j = 0; j < NumSlots; j++) { guid1[i][j] = new byte[8]; packet.StartBitStream(guid1[i][j], 6, 7, 5, 1, 0, 4, 2, 3); } guid2[i][3] = packet.ReadBit(); guid2[i][1] = packet.ReadBit(); guid2[i][5] = packet.ReadBit(); guid2[i][6] = packet.ReadBit(); bits0[i] = packet.ReadBits(8); bits4[i] = packet.ReadBits(9); guid2[i][0] = packet.ReadBit(); guid2[i][2] = packet.ReadBit(); guid2[i][4] = packet.ReadBit(); } for (var i = 0; i < count; i++) { for (var j = 0; j < NumSlots; j++) { packet.ParseBitStream(guid1[i][j], 7, 4, 5, 3, 0, 6, 2, 1); packet.WriteGuid("Item GUID", guid1[i][j], i, j); } packet.ReadXORByte(guid2[i], 7); packet.ReadXORByte(guid2[i], 3); packet.ReadXORByte(guid2[i], 0); packet.ReadXORByte(guid2[i], 5); packet.ReadWoWString("Set Name", bits0[i], i); packet.ReadXORByte(guid2[i], 4); packet.ReadXORByte(guid2[i], 6); packet.ReadXORByte(guid2[i], 2); packet.ReadXORByte(guid2[i], 1); packet.ReadInt32("Index", i); packet.ReadWoWString("Set Icon", bits4[i], i); packet.WriteGuid("GUID", guid2[i], i); } }
public static void HandleLfgJoinResult(Packet packet) { var guid = new byte[8]; guid[7] = packet.ReadBit(); guid[6] = packet.ReadBit(); guid[3] = packet.ReadBit(); guid[0] = packet.ReadBit(); var count40 = packet.ReadBits("count40", 22); var guids = new byte[count40][]; var unk52 = new uint[count40]; for (var i = 0; i < count40; i++) { guids[i] = new byte[8]; guids[i][3] = packet.ReadBit(); unk52[i] = packet.ReadBits("unk52", 20, i); guids[i][6] = packet.ReadBit(); guids[i][1] = packet.ReadBit(); guids[i][4] = packet.ReadBit(); guids[i][7] = packet.ReadBit(); guids[i][2] = packet.ReadBit(); guids[i][0] = packet.ReadBit(); guids[i][5] = packet.ReadBit(); } guid[5] = packet.ReadBit(); guid[1] = packet.ReadBit(); guid[4] = packet.ReadBit(); guid[2] = packet.ReadBit(); packet.ReadByte("unk56"); // 56 for (var i = 0; i < count40; i++) { packet.ParseBitStream(guids[i], 4); for (var j = 0; j < unk52[i]; j++) { packet.ReadInt32("unk68", i); // 68 packet.ReadInt32("unk64", i); // 64 packet.ReadInt32("unk60", i); // 60 packet.ReadInt32("unk56", i); // 56 } packet.ParseBitStream(guids[i], 1, 0, 5, 7, 3, 6, 2); packet.WriteGuid("Guids", guids[i], i); } packet.ReadByte("unk57"); // 57 packet.ParseBitStream(guid, 2); packet.ReadInt32("unk32"); // 32 packet.ReadInt32("unk24"); // 24 packet.ReadInt32("unk28"); // 28 packet.ParseBitStream(guid, 6, 4, 1, 0, 5, 7, 3); packet.WriteGuid("Guid", guid); }
public static void HandlePetNameQuery(Packet packet) { var number = new byte[8]; var guid = new byte[8]; guid[6] = packet.ReadBit(); number[4] = packet.ReadBit(); number[6] = packet.ReadBit(); number[5] = packet.ReadBit(); guid[4] = packet.ReadBit(); number[7] = packet.ReadBit(); guid[5] = packet.ReadBit(); guid[3] = packet.ReadBit(); guid[2] = packet.ReadBit(); guid[7] = packet.ReadBit(); number[1] = packet.ReadBit(); number[0] = packet.ReadBit(); number[2] = packet.ReadBit(); number[3] = packet.ReadBit(); guid[1] = packet.ReadBit(); guid[0] = packet.ReadBit(); packet.ReadXORByte(guid, 7); packet.ReadXORByte(number, 2); packet.ReadXORByte(guid, 4); packet.ReadXORByte(guid, 6); packet.ReadXORByte(guid, 5); packet.ReadXORByte(number, 5); packet.ReadXORByte(guid, 3); packet.ReadXORByte(number, 0); packet.ReadXORByte(number, 6); packet.ReadXORByte(guid, 1); packet.ReadXORByte(number, 4); packet.ReadXORByte(guid, 0); packet.ReadXORByte(number, 7); packet.ReadXORByte(number, 1); packet.ReadXORByte(guid, 2); packet.ReadXORByte(number, 3); packet.WriteGuid("Guid2", number); packet.WriteGuid("Guid3", guid); var GUID = new WowGuid(BitConverter.ToUInt64(guid, 0)); var Number = BitConverter.ToUInt64(number, 0); packet.WriteGuid("Guid", guid); packet.AddValue("Pet Number", Number); // Store temporary name (will be replaced in SMSG_PET_NAME_QUERY_RESPONSE) StoreGetters.AddName(GUID, Number.ToString(CultureInfo.InvariantCulture)); }
public static void HandlePetNameQuery(Packet packet) { var guid1 = new byte[8]; var guid2 = new byte[8]; guid2[1] = packet.ReadBit(); guid1[5] = packet.ReadBit(); guid2[3] = packet.ReadBit(); guid1[0] = packet.ReadBit(); guid1[3] = packet.ReadBit(); guid2[4] = packet.ReadBit(); guid1[1] = packet.ReadBit(); guid1[4] = packet.ReadBit(); guid2[0] = packet.ReadBit(); guid2[7] = packet.ReadBit(); guid1[6] = packet.ReadBit(); guid1[7] = packet.ReadBit(); guid1[2] = packet.ReadBit(); guid2[5] = packet.ReadBit(); guid2[2] = packet.ReadBit(); guid2[6] = packet.ReadBit(); packet.ReadXORByte(guid1, 1); packet.ReadXORByte(guid2, 5); packet.ReadXORByte(guid1, 5); packet.ReadXORByte(guid1, 4); packet.ReadXORByte(guid2, 1); packet.ReadXORByte(guid2, 7); packet.ReadXORByte(guid1, 7); packet.ReadXORByte(guid2, 4); packet.ReadXORByte(guid2, 2); packet.ReadXORByte(guid2, 0); packet.ReadXORByte(guid2, 6); packet.ReadXORByte(guid1, 6); packet.ReadXORByte(guid1, 0); packet.ReadXORByte(guid1, 3); packet.ReadXORByte(guid1, 2); packet.ReadXORByte(guid2, 3); packet.WriteGuid("Pet Guid", guid1); packet.WriteGuid("Pet Number", guid2); var PetGuid = new Guid(BitConverter.ToUInt64(guid1, 0)); var PetNumberGuid = new Guid(BitConverter.ToUInt64(guid2, 0)); var PetNumber = PetNumberGuid.GetEntry().ToString(CultureInfo.InvariantCulture); // Not sure about this. // Store temporary name from Pet Number GUID (will be retrieved as uint64 in SMSG_PET_NAME_QUERY_RESPONSE) StoreGetters.AddName(PetGuid, PetNumber); }
public static void HandleObjectUpdateFailed(Packet packet) { var guid = packet.StartBitStream(3, 5, 6, 0, 1, 2, 7, 4); packet.ParseBitStream(guid, 0, 6, 5, 7, 2, 1, 3, 4); packet.WriteGuid("Guid", guid); }
public static void HandleBattlePetDeletePet(Packet packet) { var guid = packet.StartBitStream(3, 5, 6, 2, 4, 0, 7, 1); packet.ResetBitReader(); packet.ParseBitStream(guid, 4, 1, 5, 0, 7, 2, 3, 6); packet.WriteGuid("Guid", guid); }
public static void HandleGroupInvite(Packet packet) { var crossRealmGuid = new byte[8]; packet.ReadInt32("Int114"); packet.ReadByte("Byte118"); packet.ReadInt32("Int128"); crossRealmGuid[7] = packet.ReadBit(); var realmNameLen = packet.ReadBits(9); crossRealmGuid[3] = packet.ReadBit(); var nameLen = packet.ReadBits(9); crossRealmGuid[2] = packet.ReadBit(); crossRealmGuid[5] = packet.ReadBit(); crossRealmGuid[4] = packet.ReadBit(); crossRealmGuid[0] = packet.ReadBit(); crossRealmGuid[1] = packet.ReadBit(); crossRealmGuid[6] = packet.ReadBit(); packet.ReadXORByte(crossRealmGuid, 7); packet.ReadXORByte(crossRealmGuid, 6); packet.ReadXORByte(crossRealmGuid, 0); packet.ReadXORByte(crossRealmGuid, 4); packet.ReadWoWString("Name", nameLen); packet.ReadXORByte(crossRealmGuid, 1); packet.ReadXORByte(crossRealmGuid, 2); packet.ReadXORByte(crossRealmGuid, 3); packet.ReadWoWString("Realm Name", realmNameLen); packet.ReadXORByte(crossRealmGuid, 5); packet.WriteGuid("crossRealmGuid", crossRealmGuid); }
public static void HandleGOReportUse(Packet packet) { var guid = packet.StartBitStream(7, 0, 3, 2, 1, 6, 5, 4); packet.ParseBitStream(guid, 1, 3, 5, 4, 6, 7, 2, 0); packet.WriteGuid("GameObject Guid", guid); }
public static void HandleGuildPlayerSetNote(Packet packet) { var playerGUID = new byte[8]; playerGUID[1] = packet.ReadBit(); var noteLength = packet.ReadBits("note length", 8); playerGUID[4] = packet.ReadBit(); playerGUID[2] = packet.ReadBit(); var ispublic = packet.ReadBit("IsPublic"); playerGUID[3] = packet.ReadBit(); playerGUID[5] = packet.ReadBit(); playerGUID[0] = packet.ReadBit(); playerGUID[6] = packet.ReadBit(); playerGUID[7] = packet.ReadBit(); packet.ReadXORByte(playerGUID, 5); packet.ReadXORByte(playerGUID, 1); packet.ReadXORByte(playerGUID, 6); packet.ReadWoWString("note", noteLength); packet.ReadXORByte(playerGUID, 0); packet.ReadXORByte(playerGUID, 7); packet.ReadXORByte(playerGUID, 4); packet.ReadXORByte(playerGUID, 3); packet.ReadXORByte(playerGUID, 2); packet.WriteGuid("Player GUID", playerGUID); }
public static void HandleQuestgiverStatusQuery(Packet packet) { var guid = packet.StartBitStream(4, 3, 2, 1, 0, 5, 7, 6); packet.ParseBitStream(guid, 5, 7, 4, 0, 2, 1, 6, 3); packet.WriteGuid("NPC Guid", guid); }
public static void HandleInitiateTrade(Packet packet) { var guid = packet.StartBitStream(5, 1, 4, 2, 3, 7, 0, 6); packet.ParseBitStream(guid, 4, 6, 2, 0, 3, 7, 5, 1); packet.WriteGuid("Guid", guid); }
public static void HandleRespecWipeConfirm(Packet packet) { packet.ReadByte("Spec Group"); var guid = packet.StartBitStream(5, 3, 2, 7, 0, 6, 1, 4); packet.ParseBitStream(guid, 0, 1, 2, 3, 5, 6, 7, 4); packet.WriteGuid("GUID", guid); }
public static void HandleObjectUpdateFailed510(Packet packet) { var guid = packet.StartBitStream(5, 3, 0, 6, 1, 4, 2, 7); packet.ParseBitStream(guid, 2, 3, 7, 4, 5, 1, 0, 6); packet.WriteGuid("Guid", guid); }
public static void HandleAutoStoreLootItem510(Packet packet) { var counter = packet.ReadBits("Count", 23); var guid = new byte[counter][]; for (var i = 0; i < counter; ++i) { guid[i] = new byte[8]; packet.StartBitStream(guid[i], 2, 1, 5, 7, 4, 3, 0, 6); } packet.ResetBitReader(); for (var i = 0; i < counter; ++i) { packet.ReadXORByte(guid[i], 0); packet.ReadXORByte(guid[i], 3); packet.ReadByte("Slot", i); packet.ReadXORByte(guid[i], 7); packet.ReadXORByte(guid[i], 2); packet.ReadXORByte(guid[i], 4); packet.ReadXORByte(guid[i], 1); packet.ReadXORByte(guid[i], 6); packet.ReadXORByte(guid[i], 5); packet.WriteGuid("Looter GUID", guid[i], i); } }
public static void HandleObjectUpdateFailed(Packet packet) { var guid = packet.StartBitStream(6, 7, 4, 0, 1, 5, 3, 2); packet.ParseBitStream(guid, 6, 7, 2, 3, 1, 4, 0, 5); packet.WriteGuid("Guid", guid); }
public static void HandleCorpseQueryResponse(Packet packet) { var pos = new Vector3(); var guid = new byte[8]; guid[4] = packet.ReadBit(); guid[2] = packet.ReadBit(); guid[5] = packet.ReadBit(); guid[3] = packet.ReadBit(); guid[1] = packet.ReadBit(); guid[6] = packet.ReadBit(); guid[0] = packet.ReadBit(); packet.ReadBit("Corpse Found"); guid[7] = packet.ReadBit(); packet.ReadXORByte(guid, 3); packet.ReadXORByte(guid, 1); packet.ReadXORByte(guid, 2); packet.ReadInt32<MapId>("Map ID"); pos.X = packet.ReadSingle(); packet.ReadXORByte(guid, 6); packet.ReadXORByte(guid, 4); packet.ReadXORByte(guid, 5); packet.ReadInt32<MapId>("Corpse Map ID"); packet.ReadXORByte(guid, 7); pos.Z = packet.ReadSingle(); packet.ReadXORByte(guid, 0); pos.Y = packet.ReadSingle(); packet.AddValue("Position", pos); packet.WriteGuid("Corpse Low GUID", guid); }
public static void HandleQuestgiverHello(Packet packet) { var guid = new byte[8]; packet.StartBitStream(guid, 5, 6, 7, 3, 4, 2, 1, 0); packet.ParseBitStream(guid, 4, 1, 7, 3, 6, 0, 5, 2); packet.WriteGuid("Guid", guid); }
public static void HandleServerUpdateAccountData(Packet packet) { var guid = new byte[8]; packet.ReadBitsE<AccountDataType>("Data Type", 3); packet.StartBitStream(guid, 5, 1, 3, 7, 0, 4, 2, 6); packet.ReadXORBytes(guid, 3, 1, 5); var decompCount = packet.ReadInt32(); var compCount = packet.ReadInt32(); var pkt = packet.Inflate(compCount, decompCount, false); var data = pkt.ReadWoWString(decompCount); pkt.ClosePacket(false); packet.AddValue("Account Data", data); packet.ReadXORBytes(guid, 7, 4, 0, 6, 2); packet.ReadTime("Login Time"); packet.WriteGuid("GUID", guid); }
public static void HandleBattlePetDeleted(Packet packet) { var guid = new byte[8]; packet.StartBitStream(guid, 2, 3, 4, 7, 1, 0, 5, 6); packet.ParseBitStream(guid, 7, 3, 0, 4, 2, 5, 1, 6); packet.WriteGuid("GUID", guid); }
public static void HandleObjectUpdateFailed(Packet packet) { var guid = packet.StartBitStream(4, 6, 3, 0, 7, 5, 1, 2); packet.ParseBitStream(guid, 4, 7, 0, 6, 5, 2, 1, 3); packet.WriteGuid("Guid", guid); }
public static void HandlePlaySound(Packet packet) { var guid = new byte[8]; guid[5] = packet.ReadBit(); guid[6] = packet.ReadBit(); guid[0] = packet.ReadBit(); guid[1] = packet.ReadBit(); guid[7] = packet.ReadBit(); guid[2] = packet.ReadBit(); guid[4] = packet.ReadBit(); guid[3] = packet.ReadBit(); packet.ReadXORByte(guid, 5); packet.ReadXORByte(guid, 1); var sound = packet.ReadUInt32("Sound Id"); packet.ReadXORByte(guid, 6); packet.ReadXORByte(guid, 2); packet.ReadXORByte(guid, 4); packet.ReadXORByte(guid, 7); packet.ReadXORByte(guid, 3); packet.ReadXORByte(guid, 0); packet.WriteGuid("Guid", guid); Storage.Sounds.Add(sound, packet.TimeSpan); }
public static void HandleGossipHello(Packet packet) { var guid = new byte[8]; packet.StartBitStream(guid, 2, 0, 1, 5, 7, 6, 4, 3); packet.ParseBitStream(guid, 6, 3, 2, 0, 5, 1, 7, 4); packet.WriteGuid("GUID", guid); }
public static void HandleInitiateTrade(Packet packet) { var guid = packet.StartBitStream(1, 2, 4, 5, 3, 0, 7, 6); packet.ParseBitStream(guid, 4, 1, 5, 7, 3, 2, 0, 6); packet.WriteGuid("Guid", guid); }
public static void HandleGameObjectActivateAnimKit(Packet packet) { var guid = packet.StartBitStream(5, 1, 0, 4, 7, 2, 3, 6); packet.ParseBitStream(guid, 5, 1, 0, 3, 4, 6, 2, 7); packet.WriteGuid("Guid", guid); packet.ReadInt32("Anim"); }
public static void HandleBankerActivate(Packet packet) { var guid = packet.StartBitStream(0, 1, 5, 2, 4, 3, 7, 6); packet.ParseBitStream(guid, 3, 6, 2, 0, 7, 4, 5, 1); packet.WriteGuid("Guid", guid); }