public static void HandleNpcGossipSelectOption(Packet packet) { PacketGossipSelect packetGossip = packet.Holder.GossipSelect = new(); var guid = new byte[8]; var menuEntry = packetGossip.MenuId = packet.ReadUInt32("Menu Id"); var gossipId = packetGossip.OptionId = packet.ReadUInt32("GossipMenu Id"); packet.StartBitStream(guid, 2, 0, 6, 4, 1, 5, 3, 7); var bits8 = packet.ReadBits(8); packet.ReadXORByte(guid, 0); packet.ReadWoWString("Box Text", bits8); packet.ReadXORBytes(guid, 6, 5, 7, 4, 3, 2, 1); Storage.GossipSelects.Add(Tuple.Create(menuEntry, gossipId), null, packet.TimeSpan); packetGossip.GossipUnit = packet.WriteGuid("GUID", guid); var lastGossipOption = CoreParsers.NpcHandler.LastGossipOption; var tempGossipOptionPOI = CoreParsers.NpcHandler.TempGossipOptionPOI; lastGossipOption.MenuId = menuEntry; lastGossipOption.OptionIndex = gossipId; lastGossipOption.ActionMenuId = null; lastGossipOption.ActionPoiId = null; lastGossipOption.TimeSpan = packet.TimeSpan; tempGossipOptionPOI.Guid = lastGossipOption.Guid; tempGossipOptionPOI.MenuId = menuEntry; tempGossipOptionPOI.OptionIndex = gossipId; tempGossipOptionPOI.ActionMenuId = null; tempGossipOptionPOI.ActionPoiId = null; tempGossipOptionPOI.TimeSpan = packet.TimeSpan; }
public static void HandleNpcGossipSelectOption(Packet packet) { PacketGossipSelect packetGossip = packet.Holder.GossipSelect = new(); var guid = new byte[8]; var menuEntry = packetGossip.MenuId = packet.ReadUInt32("Menu Id"); var gossipId = packetGossip.OptionId = packet.ReadUInt32("GossipMenu Id"); guid[2] = packet.ReadBit(); guid[4] = packet.ReadBit(); guid[7] = packet.ReadBit(); guid[1] = packet.ReadBit(); guid[5] = packet.ReadBit(); guid[6] = packet.ReadBit(); guid[0] = packet.ReadBit(); guid[3] = packet.ReadBit(); var bits8 = packet.ReadBits(8); packet.ReadXORByte(guid, 5); packet.ReadXORByte(guid, 6); packet.ReadXORByte(guid, 7); packet.ReadXORByte(guid, 3); packet.ReadWoWString("Box Text", bits8); packet.ReadXORByte(guid, 0); packet.ReadXORByte(guid, 2); packet.ReadXORByte(guid, 1); packet.ReadXORByte(guid, 4); Storage.GossipSelects.Add(Tuple.Create(menuEntry, gossipId), null, packet.TimeSpan); packetGossip.GossipUnit = packet.WriteGuid("GUID", guid); }
public static void HandleNpcGossipSelectOption(Packet packet) { PacketGossipSelect packetGossip = packet.Holder.GossipSelect = new(); packetGossip.GossipUnit = packet.ReadGuid("GUID"); var menuEntry = packetGossip.MenuId = packet.ReadUInt32("Menu Id"); var gossipId = packetGossip.OptionId = packet.ReadUInt32("GossipMenu Id"); if (packet.CanRead()) // if ( byte_F3777C[v3] & 1 ) { packet.ReadCString("Box Text"); } Storage.GossipSelects.Add(Tuple.Create(menuEntry, gossipId), null, packet.TimeSpan); LastGossipOption.MenuId = menuEntry; LastGossipOption.OptionIndex = gossipId; LastGossipOption.ActionMenuId = null; LastGossipOption.ActionPoiId = null; LastGossipOption.TimeSpan = packet.TimeSpan; TempGossipOptionPOI.Guid = LastGossipOption.Guid; TempGossipOptionPOI.MenuId = menuEntry; TempGossipOptionPOI.OptionIndex = gossipId; TempGossipOptionPOI.ActionMenuId = null; TempGossipOptionPOI.ActionPoiId = null; TempGossipOptionPOI.TimeSpan = packet.TimeSpan; }
public static void HandleNpcGossipSelectOption(Packet packet) { PacketGossipSelect packetGossip = packet.Holder.GossipSelect = new(); packetGossip.GossipUnit = packet.ReadPackedGuid128("GossipUnit"); var menuEntry = packetGossip.MenuId = packet.ReadUInt32("GossipID"); var gossipIdx = packetGossip.OptionId = packet.ReadUInt32("GossipIndex"); var bits8 = packet.ReadBits(8); packet.ResetBitReader(); packet.ReadWoWString("PromotionCode", bits8); CoreParsers.NpcHandler.LastGossipOption.MenuId = menuEntry; CoreParsers.NpcHandler.LastGossipOption.OptionIndex = gossipIdx; CoreParsers.NpcHandler.LastGossipOption.ActionMenuId = null; CoreParsers.NpcHandler.LastGossipOption.ActionPoiId = null; CoreParsers.NpcHandler.LastGossipOption.TimeSpan = packet.TimeSpan; CoreParsers.NpcHandler.TempGossipOptionPOI.MenuId = menuEntry; CoreParsers.NpcHandler.TempGossipOptionPOI.OptionIndex = gossipIdx; CoreParsers.NpcHandler.TempGossipOptionPOI.ActionMenuId = null; CoreParsers.NpcHandler.TempGossipOptionPOI.ActionPoiId = null; CoreParsers.NpcHandler.TempGossipOptionPOI.TimeSpan = packet.TimeSpan; }
public static void HandleNpcGossipSelectOption(Packet packet) { PacketGossipSelect packetGossip = packet.Holder.GossipSelect = new(); var guid = new byte[8]; var optionID = packetGossip.OptionId = packet.ReadUInt32("OptionID"); var menuID = packetGossip.MenuId = packet.ReadUInt32("MenuID"); guid[7] = packet.ReadBit(); guid[6] = packet.ReadBit(); guid[1] = packet.ReadBit(); var bits8 = packet.ReadBits(8); guid[5] = packet.ReadBit(); guid[2] = packet.ReadBit(); guid[4] = packet.ReadBit(); guid[3] = packet.ReadBit(); guid[0] = packet.ReadBit(); packet.ReadXORBytes(guid, 1, 0, 6, 3, 7, 5, 2); packet.ReadWoWString("Box Text", bits8); packet.ReadXORByte(guid, 4); Storage.GossipSelects.Add(Tuple.Create(menuID, optionID), null, packet.TimeSpan); packetGossip.GossipUnit = packet.WriteGuid("GUID", guid); CoreParsers.NpcHandler.LastGossipOption.GossipSelectOption(menuID, optionID, packet.TimeSpan); CoreParsers.NpcHandler.TempGossipOptionPOI.GossipSelectOption(menuID, optionID, packet.TimeSpan); CoreParsers.NpcHandler.TempGossipOptionPOI.Guid = CoreParsers.NpcHandler.LastGossipOption.Guid; }
public static void HandleNpcGossipSelectOption(Packet packet) { PacketGossipSelect packetGossip = packet.Holder.GossipSelect = new(); packetGossip.GossipUnit = packet.ReadPackedGuid128("GossipUnit"); var menuID = packetGossip.MenuId = packet.ReadUInt32("MenuID"); var optionID = packetGossip.OptionId = packet.ReadUInt32("OptionID"); var bits8 = packet.ReadBits(8); packet.ResetBitReader(); packet.ReadWoWString("PromotionCode", bits8); CoreParsers.NpcHandler.LastGossipOption.GossipSelectOption(menuID, optionID, packet.TimeSpan); CoreParsers.NpcHandler.TempGossipOptionPOI.GossipSelectOption(menuID, optionID, packet.TimeSpan); }
protected virtual T?Process(PacketBase basePacket, PacketGossipSelect packet) => default;
protected override UniversalGuid?Process(PacketBase packetBaseData, PacketGossipSelect packet) { return(packet.GossipUnit); }