예제 #1
0
        public static void F_AUCTION_SEARCH_QUERY(BaseClient client, PacketIn packet)
        {
            GameClient cclient = (GameClient)client;

            if (!cclient.IsPlaying() || !cclient.Plr.IsInWorld())
            {
                return;
            }

            Player plr = cclient.Plr;

            packet.Skip(3);
            byte NumOfSearches = packet.GetUint8(); // Why?

            packet.Skip(12);
            // Item Level
            byte MinLevel = packet.GetUint8();
            byte MaxLevel = packet.GetUint8();
            byte Rarity   = packet.GetUint8();
            byte career   = packet.GetUint8();

            packet.Skip(6);

            byte        NumTypes = packet.GetUint8();
            List <byte> Types    = new List <byte>();

            for (byte i = 0; i < NumTypes; i++)
            {
                Types.Add(packet.GetUint8());
            }

            byte        NumSlots = packet.GetUint8();
            List <byte> Slots    = new List <byte>();

            for (byte i = 0; i < NumSlots; i++)
            {
                Slots.Add(packet.GetUint8());
            }

            bool IsStatistic = packet.GetUint8() == 1;
            byte Stat        = 0;

            if (IsStatistic)
            {
                Stat = packet.GetUint8();
            }

            string SearchTerm = packet.GetPascalString();
            string Character  = packet.GetPascalString().Replace("^M", string.Empty).Replace("^F", string.Empty);

            AuctionHouse.SendAuctions(plr, SearchTerm, Character, MinLevel, MaxLevel, Rarity, career, Types, Slots, Stat);

            cclient.IsPlaying();
        }