コード例 #1
0
        public static void HandleQuestGiverRequestItems(Packet packet)
        {
            packet.ReadPackedGuid128("QuestGiverGUID");
            packet.ReadInt32("QuestGiverCreatureID");

            int id = packet.ReadInt32("QuestID");
            QuestRequestItems questRequestItems = new QuestRequestItems
            {
                ID = (uint)id
            };

            questRequestItems.EmoteOnCompleteDelay = (uint)packet.ReadInt32("CompEmoteDelay");
            questRequestItems.EmoteOnComplete      = (uint)packet.ReadInt32("CompEmoteType");

            for (int i = 0; i < 2; i++)
            {
                packet.ReadInt32("QuestFlags", i);
            }

            packet.ReadInt32("SuggestPartyMembers");
            packet.ReadInt32("MoneyToGet");
            int collectCount  = packet.ReadInt32("CollectCount");
            int currencyCount = packet.ReadInt32("CurrencyCount");

            packet.ReadInt32("StatusFlags");

            for (int i = 0; i < collectCount; i++)
            {
                packet.ReadInt32("ObjectID", i);
                packet.ReadInt32("Amount", i);
                packet.ReadUInt32("Flags", i);
            }

            for (int i = 0; i < currencyCount; i++)
            {
                packet.ReadInt32("CurrencyID", i);
                packet.ReadInt32("Amount", i);
            }

            packet.ResetBitReader();

            packet.ReadBit("AutoLaunched");

            if (ClientVersion.AddedInVersion(ClientVersionBuild.V7_2_0_23826))
            {
                packet.ReadBit("CanIgnoreQuest");
                packet.ReadBit("IsQuestIgnored");
            }

            packet.ResetBitReader();

            uint questTitleLen     = packet.ReadBits(9);
            uint completionTextLen = packet.ReadBits(12);

            packet.ReadWoWString("QuestTitle", questTitleLen);
            questRequestItems.CompletionText = packet.ReadWoWString("CompletionText", completionTextLen);

            Storage.QuestRequestItems.Add(questRequestItems, packet.TimeSpan);
        }
コード例 #2
0
        public static string QuestRequestItems()
        {
            if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.quest_template))
            {
                return(string.Empty);
            }

            foreach (var requestItemEmote in Parsing.Parsers.QuestHandler.RequestItemEmoteStore)
            {
                QuestRequestItems requestItems = new QuestRequestItems
                {
                    ID             = requestItemEmote.Value.ID,
                    CompletionText = requestItemEmote.Value.CompletionText
                };

                requestItems.VerifiedBuild = 0;

                if (requestItemEmote.Value.EmoteOnCompleteDelay >= 0)
                {
                    requestItems.EmoteOnCompleteDelay = (uint)requestItemEmote.Value.EmoteOnCompleteDelay;
                }

                if (requestItemEmote.Value.EmoteOnComplete >= 0)
                {
                    requestItems.EmoteOnComplete = (uint)requestItemEmote.Value.EmoteOnComplete;
                }

                if (requestItemEmote.Value.EmoteOnIncompleteDelay >= 0)
                {
                    requestItems.EmoteOnIncompleteDelay = (uint)requestItemEmote.Value.EmoteOnIncompleteDelay;
                }

                if (requestItemEmote.Value.EmoteOnIncomplete >= 0)
                {
                    requestItems.EmoteOnIncomplete = (uint)requestItemEmote.Value.EmoteOnIncomplete;
                }

                if (requestItemEmote.Value.EmoteOnCompleteDelay >= 0 && requestItemEmote.Value.EmoteOnComplete >= 0 && requestItemEmote.Value.EmoteOnIncompleteDelay >= 0 && requestItemEmote.Value.EmoteOnIncomplete >= 0)
                {
                    requestItems.VerifiedBuild = ClientVersion.BuildInt;
                }

                Storage.QuestRequestItems.Add(requestItems);
            }

            if (Storage.QuestRequestItems.IsEmpty())
            {
                return(string.Empty);
            }

            var templatesDb = SQLDatabase.Get(Storage.QuestRequestItems);

            return(SQLUtil.Compare(Storage.QuestRequestItems, templatesDb, StoreNameType.Quest));
        }
コード例 #3
0
        public static void HandleQuestRequestItems(Packet packet)
        {
            packet.ReadPackedGuid128("QuestGiverGUID");
            packet.ReadInt32("QuestGiverCreatureID");

            int id = packet.ReadInt32("QuestID");
            QuestRequestItems questRequestItems = new QuestRequestItems
            {
                ID = (uint)id
            };

            questRequestItems.EmoteOnCompleteDelay = (uint)packet.ReadInt32("CompEmoteDelay");
            questRequestItems.EmoteOnComplete      = (uint)packet.ReadInt32("CompEmoteType");

            for (int i = 0; i < 2; i++)
            {
                packet.ReadInt32("QuestFlags", i);
            }

            packet.ReadInt32("SuggestPartyMembers");
            packet.ReadInt32("MoneyToGet");
            int int44 = packet.ReadInt32("QuestObjectiveCollectCount");
            int int60 = packet.ReadInt32("QuestCurrencyCount");

            packet.ReadInt32("StatusFlags");

            for (int i = 0; i < int44; i++)
            {
                packet.ReadInt32("ObjectID", i);
                packet.ReadInt32("Amount", i);
            }

            for (int i = 0; i < int60; i++)
            {
                packet.ReadInt32("CurrencyID", i);
                packet.ReadInt32("Amount", i);
            }

            packet.ResetBitReader();

            packet.ReadBit("AutoLaunched");

            packet.ResetBitReader();

            uint bits3016 = packet.ReadBits(9);
            uint bits16   = packet.ReadBits(12);

            packet.ReadWoWString("QuestTitle", bits3016);
            questRequestItems.CompletionText = packet.ReadWoWString("CompletionText", bits16);

            Storage.QuestRequestItems.Add(questRequestItems, packet.TimeSpan);
        }
コード例 #4
0
        public static void HandleQuestGiverRequestItems(Packet packet)
        {
            packet.ReadPackedGuid128("QuestGiverGUID");
            packet.ReadInt32("QuestGiverCreatureID");

            int id = packet.ReadInt32("QuestID");
            QuestRequestItems questRequestItems = new QuestRequestItems
            {
                ID = (uint)id
            };

            questRequestItems.EmoteOnCompleteDelay = (uint)packet.ReadInt32("CompEmoteDelay");
            questRequestItems.EmoteOnComplete      = (uint)packet.ReadInt32("CompEmoteType");

            for (int i = 0; i < 2; i++)
            {
                packet.ReadInt32("QuestFlags", i);
            }

            packet.ReadInt32("SuggestPartyMembers");
            packet.ReadInt32("MoneyToGet");
            uint collectCount  = packet.ReadUInt32("CollectCount");
            uint currencyCount = packet.ReadUInt32("CurrencyCount");

            packet.ReadInt32("StatusFlags");

            for (int i = 0; i < collectCount; i++)
            {
                packet.ReadInt32("ObjectID", i);
                packet.ReadInt32("Amount", i);
                packet.ReadUInt32("Flags", i);
            }

            for (int i = 0; i < currencyCount; i++)
            {
                packet.ReadInt32("CurrencyID", i);
                packet.ReadInt32("Amount", i);
            }

            packet.ResetBitReader();

            packet.ReadBit("AutoLaunched");

            packet.ResetBitReader();

            uint questTitleLen     = 0;
            uint completionTextLen = 0;

            if (ClientVersion.RemovedInVersion(ClientVersionBuild.V8_1_5_29683))
            {
                questTitleLen = packet.ReadBits(10);
            }
            else
            {
                questTitleLen = packet.ReadBits(9);
            }
            completionTextLen = packet.ReadBits(12);

            packet.ReadWoWString("QuestTitle", questTitleLen);
            questRequestItems.CompletionText = packet.ReadWoWString("CompletionText", completionTextLen);

            Storage.QuestRequestItems.Add(questRequestItems, packet.TimeSpan);

            if (ClientLocale.PacketLocale != LocaleConstant.enUS && questRequestItems.CompletionText != string.Empty)
            {
                QuestRequestItemsLocale localesQuestRequestItems = new QuestRequestItemsLocale
                {
                    ID             = (uint)id,
                    CompletionText = questRequestItems.CompletionText
                };
                Storage.LocalesQuestRequestItems.Add(localesQuestRequestItems, packet.TimeSpan);
            }
        }