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); }
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)); }
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); }
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); } }