Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
 protected virtual T?Process(PacketBase basePacket, PacketGossipSelect packet) => default;
Esempio n. 8
0
 protected override UniversalGuid?Process(PacketBase packetBaseData, PacketGossipSelect packet)
 {
     return(packet.GossipUnit);
 }