public void HandleNpcGossip(Parser packet) { var guid = packet.ReadGuid(); WriteLine("GUID: " + guid); var entry = packet.ReadUInt32(); WriteLine("Menu id: " + entry); var textid = packet.ReadUInt32(); WriteLine("Text id: " + textid); var count = packet.ReadUInt32(); WriteLine("- Amount of Options: " + count); for (var i = 0; i < count; i++) { if (i != 0) WriteLine("\t--"); var index = packet.ReadUInt32(); WriteLine("\tIndex: " + index); var icon = packet.ReadByte(); WriteLine("\tIcon: " + icon); var box = packet.ReadBoolean(); WriteLine("\tBox: " + box); var boxMoney = packet.ReadUInt32(); if (box) // Only print if there's a box. avaliable. WriteLine("\tRequired money: " + boxMoney); var text = packet.ReadCString(); WriteLine("\tText: " + text); var boxText = packet.ReadCString(); if (box) // Only print if there's a box avaliable. WriteLine("\tBox text: " + boxText); } var questgossips = packet.ReadUInt32(); WriteLine("- Amount of Quest gossips: " + questgossips); for (var i = 0; i < questgossips; i++) { if (i != 0) WriteLine("\t--"); var questID = packet.ReadUInt32(); WriteLine("\tQuest ID: " + questID); var questicon = packet.ReadUInt32(); WriteLine("\tIcon: " + questicon); var questlevel = packet.ReadInt32(); WriteLine("\tLevel: " + questlevel); var flags = (QuestFlag)(packet.ReadUInt32() | 0xFFFF); WriteLine("\tFlags: " + flags); var unk1 = packet.ReadBoolean(); WriteLine("\tUnknown bool: " + unk1); var title = packet.ReadCString(); WriteLine("\tTitle: " + title); } }
public void HandleThreatlistUpdate(Parser packet) { var guid = packet.ReadPackedGuid(); WriteLine("GUID: " + guid); if (Packet.Code == OpCodes.SMSG_HIGHEST_THREAT_UPDATE) { var newhigh = packet.ReadPackedGuid(); WriteLine("New Highest: " + newhigh); } var count = packet.ReadUInt32(); WriteLine("Size: " + count); for (int i = 0; i < count; i++) { var unit = packet.ReadPackedGuid(); WriteLine("Hostile: " + unit); var threat = packet.ReadUInt32(); // No idea why, but this is in core. /*if (packet.GetOpcode() == Opcode.SMSG_THREAT_UPDATE) threat *= 100;*/ WriteLine("Threat: " + threat); } }