diff --git a/sql/updates/world/master/2026_09_26_00_world.sql b/sql/updates/world/master/2026_09_26_00_world.sql index acac8de5c..6aba227a5 100644 --- a/sql/updates/world/master/2026_09_26_00_world.sql +++ b/sql/updates/world/master/2026_09_26_00_world.sql @@ -83,3 +83,178 @@ INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficult DELETE FROM `quest_objectives` WHERE `ID`=464299; INSERT INTO `quest_objectives` (`ID`, `QuestID`, `Type`, `Order`, `StorageIndex`, `ObjectID`, `Amount`, `ConditionalAmount`, `Flags`, `Flags2`, `ProgressBarWeight`, `ParentObjectiveID`, `Visible`, `Description`, `VerifiedBuild`) VALUES (464299, 92141, 0, 1, 1, 249959, 10, 0, 0, 0, 0, 0, 1, 'Arcane Wyrm slain', 69875); + +-- ----------------------------------------------------------------------------- +-- World Quest reward spells, extracted from retail sniff wolrdquest.pkt (V12_1_0_69933). +-- Source: SMSG_QUERY_QUEST_INFO_RESPONSE for quests present in world_quest_template. +-- +-- RewardSpell is the only reward field that maps 1:1 from the packet to the DB +-- column (QuestDef.cpp: _rewardSpell(questRecord.RewardSpell()), sent back at +-- QuestDef.cpp:736, cast on completion at Player.cpp:15632). Only it is written here. +-- +-- Deliberately NOT written, verified against the sniff: +-- RewardCurrencyID1..4 / Qty, RewardItem1..4, RewardChoiceItemID1..6 and +-- quest_reward_display_spell: retail sent ZERO for all of these quests, so the +-- values are client-side DB2 data and are not recoverable from this packet. +-- RewardMoney: the packet sends copper, but quest_template.RewardMoneyDifficulty is an +-- INDEX into QuestMoneyReward.Difficulty[] keyed by quest level (QuestDef.cpp:482), +-- so the sniffed copper value cannot be written into it directly. +-- Flags/FlagsEx: left untouched; FlagsEx of these responses never carries +-- QUEST_FLAGS_EX_IS_WORLD_QUEST (0x01000000). + +UPDATE `quest_template` SET RewardSpell = 243990 WHERE ID = 47456; +UPDATE `quest_template` SET RewardSpell = 247052 WHERE ID = 47542; +UPDATE `quest_template` SET RewardSpell = 245043 WHERE ID = 47551; +UPDATE `quest_template` SET RewardSpell = 249941 WHERE ID = 47705; +UPDATE `quest_template` SET RewardSpell = 251300 WHERE ID = 47724; +UPDATE `quest_template` SET RewardSpell = 247036 WHERE ID = 47828; +UPDATE `quest_template` SET RewardSpell = 253442 WHERE ID = 47833; +UPDATE `quest_template` SET RewardSpell = 252223 WHERE ID = 47953; +UPDATE `quest_template` SET RewardSpell = 252227 WHERE ID = 48282; +UPDATE `quest_template` SET RewardSpell = 250564 WHERE ID = 48467; +UPDATE `quest_template` SET RewardSpell = 252229 WHERE ID = 48502; +UPDATE `quest_template` SET RewardSpell = 251099 WHERE ID = 48514; +UPDATE `quest_template` SET RewardSpell = 253445 WHERE ID = 48694; +UPDATE `quest_template` SET RewardSpell = 253483 WHERE ID = 48737; +UPDATE `quest_template` SET RewardSpell = 253487 WHERE ID = 48739; +UPDATE `quest_template` SET RewardSpell = 252492 WHERE ID = 48780; +UPDATE `quest_template` SET RewardSpell = 252818 WHERE ID = 48832; +UPDATE `quest_template` SET RewardSpell = 253389 WHERE ID = 48833; +UPDATE `quest_template` SET RewardSpell = 252808 WHERE ID = 48834; +UPDATE `quest_template` SET RewardSpell = 252820 WHERE ID = 48837; +UPDATE `quest_template` SET RewardSpell = 286880 WHERE ID = 51982; +UPDATE `quest_template` SET RewardSpell = 285170 WHERE ID = 53715; +UPDATE `quest_template` SET RewardSpell = 285170 WHERE ID = 54647; +UPDATE `quest_template` SET RewardSpell = 344573 WHERE ID = 59703; +UPDATE `quest_template` SET RewardSpell = 367302 WHERE ID = 64768; +UPDATE `quest_template` SET RewardSpell = 395344 WHERE ID = 67005; +UPDATE `quest_template` SET RewardSpell = 386580 WHERE ID = 69938; +UPDATE `quest_template` SET RewardSpell = 388327 WHERE ID = 70011; +UPDATE `quest_template` SET RewardSpell = 403605 WHERE ID = 70066; +UPDATE `quest_template` SET RewardSpell = 403605 WHERE ID = 70068; +UPDATE `quest_template` SET RewardSpell = 406068 WHERE ID = 70073; +UPDATE `quest_template` SET RewardSpell = 406068 WHERE ID = 70112; +UPDATE `quest_template` SET RewardSpell = 387421 WHERE ID = 70646; +UPDATE `quest_template` SET RewardSpell = 367302 WHERE ID = 70654; +UPDATE `quest_template` SET RewardSpell = 367302 WHERE ID = 70655; +UPDATE `quest_template` SET RewardSpell = 367302 WHERE ID = 70656; +UPDATE `quest_template` SET RewardSpell = 367302 WHERE ID = 70658; +UPDATE `quest_template` SET RewardSpell = 406068 WHERE ID = 70780; +UPDATE `quest_template` SET RewardSpell = 386580 WHERE ID = 72030; +UPDATE `quest_template` SET RewardSpell = 400088 WHERE ID = 74292; +UPDATE `quest_template` SET RewardSpell = 400704 WHERE ID = 74378; +UPDATE `quest_template` SET RewardSpell = 404948 WHERE ID = 74990; +UPDATE `quest_template` SET RewardSpell = 404923 WHERE ID = 75125; +UPDATE `quest_template` SET RewardSpell = 406068 WHERE ID = 75126; +UPDATE `quest_template` SET RewardSpell = 412615 WHERE ID = 75162; +UPDATE `quest_template` SET RewardSpell = 408943 WHERE ID = 75346; +UPDATE `quest_template` SET RewardSpell = 417036 WHERE ID = 76549; +UPDATE `quest_template` SET RewardSpell = 421185 WHERE ID = 76550; +UPDATE `quest_template` SET RewardSpell = 431892 WHERE ID = 76599; +UPDATE `quest_template` SET RewardSpell = 420515 WHERE ID = 77715; +UPDATE `quest_template` SET RewardSpell = 419425 WHERE ID = 77756; +UPDATE `quest_template` SET RewardSpell = 428662 WHERE ID = 77982; +UPDATE `quest_template` SET RewardSpell = 431892 WHERE ID = 78452; +UPDATE `quest_template` SET RewardSpell = 431892 WHERE ID = 78458; +UPDATE `quest_template` SET RewardSpell = 431892 WHERE ID = 78466; +UPDATE `quest_template` SET RewardSpell = 431892 WHERE ID = 78472; +UPDATE `quest_template` SET RewardSpell = 423524 WHERE ID = 78890; +UPDATE `quest_template` SET RewardSpell = 431892 WHERE ID = 79295; +UPDATE `quest_template` SET RewardSpell = 431892 WHERE ID = 79383; +UPDATE `quest_template` SET RewardSpell = 431892 WHERE ID = 80005; +UPDATE `quest_template` SET RewardSpell = 471762 WHERE ID = 81624; +UPDATE `quest_template` SET RewardSpell = 406068 WHERE ID = 82133; +UPDATE `quest_template` SET RewardSpell = 454041 WHERE ID = 82156; +UPDATE `quest_template` SET RewardSpell = 454041 WHERE ID = 82157; +UPDATE `quest_template` SET RewardSpell = 367302 WHERE ID = 82237; +UPDATE `quest_template` SET RewardSpell = 467214 WHERE ID = 83753; +UPDATE `quest_template` SET RewardSpell = 467214 WHERE ID = 83827; +UPDATE `quest_template` SET RewardSpell = 467214 WHERE ID = 84001; +UPDATE `quest_template` SET RewardSpell = 467214 WHERE ID = 84299; +UPDATE `quest_template` SET RewardSpell = 467214 WHERE ID = 84619; +UPDATE `quest_template` SET RewardSpell = 1215301 WHERE ID = 84851; +UPDATE `quest_template` SET RewardSpell = 1239449 WHERE ID = 85863; +UPDATE `quest_template` SET RewardSpell = 454041 WHERE ID = 86174; +UPDATE `quest_template` SET RewardSpell = 1239449 WHERE ID = 86429; +UPDATE `quest_template` SET RewardSpell = 1239449 WHERE ID = 86821; +UPDATE `quest_template` SET RewardSpell = 1224103 WHERE ID = 88818; +UPDATE `quest_template` SET RewardSpell = 1239449 WHERE ID = 88904; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 88992; +UPDATE `quest_template` SET RewardSpell = 1227993 WHERE ID = 89274; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 89347; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 89377; +UPDATE `quest_template` SET RewardSpell = 1240182 WHERE ID = 91193; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 91798; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 91800; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 91801; +UPDATE `quest_template` SET RewardSpell = 1272144 WHERE ID = 91808; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 91927; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 92062; +UPDATE `quest_template` SET RewardSpell = 1250749 WHERE ID = 92122; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 92138; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 92150; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 92152; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 92549; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 92582; +UPDATE `quest_template` SET RewardSpell = 417036 WHERE ID = 92731; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 93071; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 93904; +UPDATE `quest_template` SET RewardSpell = 1277255 WHERE ID = 94795; +UPDATE `quest_template` SET RewardSpell = 1298164 WHERE ID = 95392; +UPDATE `quest_template` SET RewardSpell = 1298164 WHERE ID = 95393; +UPDATE `quest_template` SET RewardSpell = 1298214 WHERE ID = 95399; +UPDATE `quest_template` SET RewardSpell = 1298164 WHERE ID = 95400; +UPDATE `quest_template` SET RewardSpell = 1258416 WHERE ID = 95435; +UPDATE `quest_template` SET RewardSpell = 1292075 WHERE ID = 95575; +UPDATE `quest_template` SET RewardSpell = 1298164 WHERE ID = 96547; +UPDATE `quest_template` SET RewardSpell = 1295394 WHERE ID = 96548; +UPDATE `quest_template` SET RewardSpell = 1241124 WHERE ID = 96591; +UPDATE `quest_template` SET RewardSpell = 1298164 WHERE ID = 96600; +UPDATE `quest_template` SET RewardSpell = 1298544 WHERE ID = 96618; +UPDATE `quest_template` SET RewardSpell = 1299083 WHERE ID = 96651; +UPDATE `quest_template` SET RewardSpell = 1298166 WHERE ID = 96660; + +-- 111 world quests updated with their retail RewardSpell. The remaining 146 of 257 queried +-- world quests received no reward data at all in the sniff and still need reward +-- values imported from a retail Quest/QuestV2 DB2 dump. + +-- ----------------------------------------------------------------------------- +-- World quests that are ACTIVE on retail in the sniff but are missing from +-- world_quest_template, plus the reward data retail transmitted for them. +-- Source: SMSG_WORLD_QUEST_UPDATE_RESPONSE (328 active quests) and +-- SMSG_QUERY_QUEST_INFO_RESPONSE, retail V12_1_0_69933. +-- +-- 71 missing quests: 71 are gated on a world state variable, 0 have VariableID 0 +-- (always active once inserted). Durations are the retail Timer values. + +DELETE FROM `world_quest_template` WHERE `QuestID` IN (53219, 53229, 53265, 53706, 53717, 54266, 55901, 56173, 67605, 69931, 70210, 70701, 71241, 72686, 73078, 73148, 76266, 76588, 78933, 81622, 82452, 82453, 82482, 82483, 82485, 82486, 82487, 82488, 82489, 82490, 82491, 82492, 82493, 82494, 82495, 82496, 82497, 82498, 82499, 82500, 82501, 82502, 82503, 82504, 82505, 82506, 82507, 82508, 82509, 82510, 82511, 82512, 82516, 82659, 82706, 82962, 83529, 87417, 87422, 87423, 87424, 89514, 91052, 91855, 93502, 93504, 93704, 93905, 96640, 96808, 98172); +INSERT INTO `world_quest_template` (`QuestID`, `Duration`, `VariableID`, `Value`) VALUES +(53219, 86400, 16721, 1),(53229, 86400, 16728, 1),(53265, 86400, 16717, 1),(53706, 25200, 16289, 1),(53717, 25200, 16289, 1),(54266, 25200, 16289, 1),(55901, 86400, 17639, 2),(56173, 86400, 17734, 3),(67605, 270000, 21623, 2),(69931, 302400, 22194, 1),(70210, 270000, 22309, 1),(70701, 270000, 22312, 1),(71241, 270000, 22313, 1),(72686, 604800, 22150, 1),(73078, 302400, 23015, 1),(73148, 86400, 23024, 1),(76266, 86400, 24097, 1),(76588, 604800, 23011, 1),(78933, 604800, 20119, 2),(81622, 86400, 25937, 1),(82452, 1814400, 27357, 1),(82453, 1814400, 27357, 1),(82482, 1814400, 27357, 1),(82483, 1814400, 27357, 1),(82485, 1814400, 27357, 1),(82486, 1814400, 27357, 1),(82487, 1814400, 27357, 1),(82488, 1814400, 27357, 1),(82489, 1814400, 27357, 1),(82490, 1814400, 27357, 1),(82491, 1814400, 27357, 1),(82492, 1814400, 27357, 1),(82493, 1814400, 27357, 1),(82494, 1814400, 27357, 1),(82495, 1814400, 27357, 1),(82496, 1814400, 27357, 1),(82497, 1814400, 27357, 1),(82498, 1814400, 27357, 1),(82499, 1814400, 27357, 1),(82500, 1814400, 27357, 1),(82501, 1814400, 27357, 1),(82502, 1814400, 27357, 1),(82503, 1814400, 27357, 1),(82504, 1814400, 27357, 1),(82505, 1814400, 27357, 1),(82506, 1814400, 27357, 1),(82507, 1814400, 27357, 1),(82508, 1814400, 27357, 1),(82509, 1814400, 27357, 1),(82510, 1814400, 27357, 1),(82511, 1814400, 27357, 1),(82512, 1814400, 27357, 1),(82516, 1814400, 27357, 1),(82659, 1814400, 27357, 1),(82706, 1814400, 26660, 1),(82962, 604800, 26464, 3),(83529, 604800, 26597, 2),(87417, 1814400, 27357, 1),(87422, 1814400, 27357, 1),(87423, 1814400, 27357, 1),(87424, 1814400, 27357, 1),(89514, 1814400, 27357, 1),(91052, 1814400, 27357, 1),(91855, 1814400, 27357, 1),(93502, 604800, 30131, 3),(93504, 604800, 30132, 3),(93704, 604800, 30194, 5),(93905, 302400, 29850, 1),(96640, 86400, 31553, 1),(96808, 604800, 30117, 5),(98172, 1209600, 32231, 1); + +-- reward data for 18 of the inserted quests (currency / fixed items / choice items): +UPDATE `quest_template` SET RewardItem1 = 168832, RewardAmount1 = 1 WHERE ID = 55901; +UPDATE `quest_template` SET RewardItem1 = 168222, RewardAmount1 = 20 WHERE ID = 56173; +UPDATE `quest_template` SET RewardCurrencyID1 = 2003, RewardCurrencyQty1 = 35 WHERE ID = 67605; +UPDATE `quest_template` SET RewardCurrencyID1 = 2003, RewardCurrencyQty1 = 25 WHERE ID = 70210; +UPDATE `quest_template` SET RewardCurrencyID1 = 2003, RewardCurrencyQty1 = 25 WHERE ID = 70701; +UPDATE `quest_template` SET RewardCurrencyID1 = 2003, RewardCurrencyQty1 = 25 WHERE ID = 71241; +UPDATE `quest_template` SET RewardCurrencyID1 = 2122, RewardCurrencyQty1 = 1 WHERE ID = 72686; +UPDATE `quest_template` SET RewardCurrencyID1 = 2118, RewardCurrencyQty1 = 150 WHERE ID = 73078; +UPDATE `quest_template` SET RewardCurrencyID1 = 2118, RewardCurrencyQty1 = 150 WHERE ID = 73148; +UPDATE `quest_template` SET RewardCurrencyID1 = 2645, RewardCurrencyQty1 = 3000, RewardCurrencyID2 = 2594, RewardCurrencyQty2 = 70 WHERE ID = 76266; +UPDATE `quest_template` SET RewardItem1 = 228741, RewardAmount1 = 1 WHERE ID = 76588; +UPDATE `quest_template` SET RewardItem1 = 212491, RewardAmount1 = 5 WHERE ID = 78933; +UPDATE `quest_template` SET RewardItem1 = 224817, RewardAmount1 = 1 WHERE ID = 82962; +UPDATE `quest_template` SET RewardCurrencyID1 = 3055, RewardCurrencyQty1 = 10, RewardChoiceItemID1 = 224752, RewardChoiceItemQuantity1 = 2, RewardChoiceItemID2 = 225771, RewardChoiceItemQuantity2 = 2, RewardChoiceItemID3 = 225770, RewardChoiceItemQuantity3 = 2 WHERE ID = 83529; +UPDATE `quest_template` SET RewardCurrencyID1 = 1792, RewardCurrencyQty1 = 500, RewardCurrencyID2 = 1602, RewardCurrencyQty2 = 17500 WHERE ID = 93502; +UPDATE `quest_template` SET RewardCurrencyID1 = 1792, RewardCurrencyQty1 = 350, RewardCurrencyID2 = 1602, RewardCurrencyQty2 = 12500 WHERE ID = 93504; +UPDATE `quest_template` SET RewardItem1 = 263462, RewardAmount1 = 1, RewardItem2 = 245345, RewardAmount2 = 1 WHERE ID = 93704; +UPDATE `quest_template` SET RewardCurrencyID1 = 2123, RewardCurrencyQty1 = 100000, RewardCurrencyID2 = 1792, RewardCurrencyQty2 = 500, RewardCurrencyID3 = 1602, RewardCurrencyQty3 = 5000 WHERE ID = 96808; + +-- reward display spells (Idx is the insertion order expected by the loader): +DELETE FROM `quest_reward_display_spell` WHERE `QuestID` IN (82452, 82453, 82482, 82483, 82485, 82486, 82487, 82488, 82489, 82490, 82491, 82492, 82493, 82494, 82495, 82496, 82497, 82498, 82499, 82500, 82501, 82502, 82503, 82504, 82505, 82506, 82507, 82508, 82509, 82510, 82511, 82512, 82516, 82659, 82706, 87417, 87422, 87423, 87424, 89514, 91052, 91855, 93502, 93504, 96808, 98172); +INSERT INTO `quest_reward_display_spell` (`QuestID`, `SpellID`, `PlayerConditionID`, `Type`, `Idx`) VALUES +(82452, 1239744, 0, 0, 0),(82453, 1239744, 0, 0, 0),(82482, 1239744, 0, 0, 0),(82483, 1239744, 0, 0, 0),(82485, 1239744, 0, 0, 0),(82486, 1239744, 0, 0, 0),(82487, 1239744, 0, 0, 0),(82488, 1239744, 0, 0, 0),(82489, 1239744, 0, 0, 0),(82490, 1239744, 0, 0, 0),(82491, 1239744, 0, 0, 0),(82492, 1239744, 0, 0, 0),(82493, 1239744, 0, 0, 0),(82494, 1239744, 0, 0, 0),(82495, 1239744, 0, 0, 0),(82496, 1239744, 0, 0, 0),(82497, 1239744, 0, 0, 0),(82498, 1239744, 0, 0, 0),(82499, 1239744, 0, 0, 0),(82500, 1239744, 0, 0, 0),(82501, 1239744, 0, 0, 0),(82502, 1239744, 0, 0, 0),(82503, 1239744, 0, 0, 0),(82504, 1239744, 0, 0, 0),(82505, 1239744, 0, 0, 0),(82506, 1239744, 0, 0, 0),(82507, 1239744, 0, 0, 0),(82508, 1239744, 0, 0, 0),(82509, 1239744, 0, 0, 0),(82510, 1239744, 0, 0, 0),(82511, 1239744, 0, 0, 0),(82512, 1239744, 0, 0, 0),(82516, 1239744, 0, 0, 0),(82659, 1239744, 0, 0, 0),(82706, 1239744, 0, 0, 0),(87417, 1239744, 0, 0, 0),(87422, 1239744, 0, 0, 0),(87423, 1239744, 0, 0, 0),(87424, 1239744, 0, 0, 0),(89514, 1239744, 0, 0, 0),(91052, 1239744, 0, 0, 0),(91855, 1239744, 0, 0, 0),(93502, 1305974, 0, 0, 0),(93504, 1305974, 0, 0, 0),(96808, 1305974, 0, 0, 0),(98172, 1305974, 0, 0, 0); + +-- NOTE: the server still needs quest_objectives rows for these quests before they can +-- be completed; this patch only makes them visible on the map with retail rewards.