diff --git a/sql/updates/world/master/2024_08_30_00_world.sql b/sql/updates/world/master/2024_08_30_00_world.sql new file mode 100644 index 0000000000000..607eb1c6d43b5 --- /dev/null +++ b/sql/updates/world/master/2024_08_30_00_world.sql @@ -0,0 +1,1121 @@ +DROP TABLE IF EXISTS `ui_map_quest_line`; +CREATE TABLE `ui_map_quest_line` ( + `UiMapId` INT UNSIGNED NOT NULL, + `QuestLineId` INT UNSIGNED NOT NULL, + `VerifiedBuild` INT NOT NULL DEFAULT '0', + PRIMARY KEY (`UiMapId`, `QuestLineId`) +) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +DROP TABLE IF EXISTS `ui_map_quest`; +CREATE TABLE `ui_map_quest` ( + `UiMapId` INT UNSIGNED NOT NULL, + `QuestId` INT UNSIGNED NOT NULL, + `VerifiedBuild` INT NOT NULL DEFAULT '0', + PRIMARY KEY (`UiMapId`, `QuestId`) +) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +DELETE FROM `ui_map_quest_line` WHERE (`UIMapId`=371 AND `QuestLineId` IN (5557,5502,5500,5499,5496,5495,5491,5490,5489,560,559,558,555,554,553,290)) OR (`UIMapId`=379 AND `QuestLineId` IN (5502,5500,5499,5496,5492,5491,561,560,554,553,290)) OR (`UIMapId`=390 AND `QuestLineId` IN (5557,5502,5500,5499,5496,5493,5492,5491,5489,562,561,560,558,290)) OR (`UIMapId`=422 AND `QuestLineId` IN (5499,5495,5493,5492,5490,5489,562,561,559,558,290)) OR (`UIMapId`=116 AND `QuestLineId` IN (537,536,529,528)) OR (`UIMapId`=554 AND `QuestLineId`=5557) OR (`UIMapId`=504 AND `QuestLineId`=5500) OR (`UIMapId`=121 AND `QuestLineId` IN (537,536,535)) OR (`UIMapId`=102 AND `QuestLineId` IN (486,474,463,448)) OR (`UIMapId`=127 AND `QuestLineId` IN (5389,538,535,529)) OR (`UIMapId`=125 AND `QuestLineId`=5389) OR (`UIMapId`=207 AND `QuestLineId` IN (546,543)) OR (`UIMapId`=100 AND `QuestLineId` IN (538,486,473,463,448)) OR (`UIMapId`=418 AND `QuestLineId` IN (5499,5495,5493,5490,5489,562,559,558)) OR (`UIMapId`=105 AND `QuestLineId` IN (488,474,463)) OR (`UIMapId`=118 AND `QuestLineId` IN (5389,538,535,534,290)) OR (`UIMapId`=111 AND `QuestLineId` IN (538,493,488,486,473)) OR (`UIMapId`=170 AND `QuestLineId` IN (538,535,290)) OR (`UIMapId`=104 AND `QuestLineId` IN (493,473,290)) OR (`UIMapId`=120 AND `QuestLineId` IN (5389,538,536,535,290)) OR (`UIMapId`=109 AND `QuestLineId` IN (493,488,474)) OR (`UIMapId`=107 AND `QuestLineId` IN (538,493,488,486,473,463)) OR (`UIMapId`=114 AND `QuestLineId` IN (530,529)) OR (`UIMapId`=388 AND `QuestLineId` IN (5502,5500,5499,5496,5493,5492,5491,562,561,560)) OR (`UIMapId`=117 AND `QuestLineId`=528) OR (`UIMapId`=115 AND `QuestLineId` IN (538,537,536,530,529)) OR (`UIMapId`=174 AND `QuestLineId` IN (546,543)) OR (`UIMapId`=123 AND `QuestLineId` IN (534,530,529)) OR (`UIMapId`=108 AND `QuestLineId` IN (538,493,488,486,473,448,290)) OR (`UIMapId`=119 AND `QuestLineId` IN (538,534,530)) OR (`UIMapId`=376 AND `QuestLineId` IN (5495,5493,5490,5489,562,559,558,555,290)); +DELETE FROM `ui_map_quest_line` WHERE (`UIMapId`=127 AND `QuestLineId`=5372) OR (`UIMapId`=118 AND `QuestLineId`=5372) OR (`UIMapId`=371 AND `QuestLineId` IN (5503,5501,5497)) OR (`UIMapId`=418 AND `QuestLineId`=5497) OR (`UIMapId`=376 AND `QuestLineId` IN (5501,5497)) OR (`UIMapId`=379 AND `QuestLineId` IN (5501,5497)) OR (`UIMapId`=390 AND `QuestLineId` IN (5503,5501,5497)) OR (`UIMapId`=388 AND `QuestLineId` IN (5501,5497)) OR (`UIMapId`=120 AND `QuestLineId`=5372) OR (`UIMapId`=554 AND `QuestLineId`=5503) OR (`UIMapId`=504 AND `QuestLineId`=5501); +DELETE FROM `ui_map_quest_line` WHERE (`UIMapId`=895 AND `QuestLineId` IN (5449,5448,5447,5446,5443,5441,5440,5437,5436,5435,5434,5433,5432,5431,5379,5376,5375,5373,5372,5371,1000,940,939,851,797,785,742,628,592,591,586)) OR (`UIMapId`=1462 AND `QuestLineId` IN (5376,1000,940)) OR (`UIMapId`=942 AND `QuestLineId` IN (5452,5451,5450,5436,5435,5371,851,794,740,738,591,582,577)) OR (`UIMapId`=680 AND `QuestLineId` IN (5375,342,280,206,191,184,152,82)) OR (`UIMapId`=646 AND `QuestLineId` IN (347,295,294,280,275,206,171,152,144,131)) OR (`UIMapId`=862 AND `QuestLineId` IN (5423,5411,5410,5409,5379,939,851,785,628)) OR (`UIMapId`=641 AND `QuestLineId` IN (5375,342,206,191,184,171,152,144)) OR (`UIMapId`=650 AND `QuestLineId` IN (5375,342,294,280,206,191,184,171,144,131)) OR (`UIMapId`=863 AND `QuestLineId` IN (5414,5413,5411)) OR (`UIMapId`=790 AND `QuestLineId`=82) OR (`UIMapId`=125 AND `QuestLineId`=5372) OR (`UIMapId`=630 AND `QuestLineId` IN (347,295,294,280,275,227,226,206,171,152,144,131,82)) OR (`UIMapId`=885 AND `QuestLineId`=365) OR (`UIMapId`=896 AND `QuestLineId` IN (5449,5448,5447,5446,5443,5441,5440,5437,5435,5433,5432,5376,5373,5372,5371,1000,940,851,592,591)) OR (`UIMapId`=535 AND `QuestLineId` IN (140,105,59,39,34,29,27)) OR (`UIMapId`=542 AND `QuestLineId` IN (59,50,34)) OR (`UIMapId`=539 AND `QuestLineId` IN (140,105,59,50,39,34)) OR (`UIMapId`=525 AND `QuestLineId`=105) OR (`UIMapId`=627 AND `QuestLineId` IN (295,294,280,275,206,171,152,144,131)) OR (`UIMapId`=882 AND `QuestLineId`=365) OR (`UIMapId`=534 AND `QuestLineId`=60) OR (`UIMapId`=864 AND `QuestLineId` IN (5423,5414,5413,5411,851,628)) OR (`UIMapId`=543 AND `QuestLineId` IN (140,52)) OR (`UIMapId`=550 AND `QuestLineId` IN (105,29,27)) OR (`UIMapId`=1355 AND `QuestLineId` IN (5375,5366,1070,926)) OR (`UIMapId`=634 AND `QuestLineId` IN (5375,342,294,280,206,152,144,131)) OR (`UIMapId`=830 AND `QuestLineId`=365); +DELETE FROM `ui_map_quest_line` WHERE (`UIMapId`=1169 AND `QuestLineId`=5372) OR (`UIMapId`=1462 AND `QuestLineId` IN (5384,941)) OR (`UIMapId`=895 AND `QuestLineId` IN (5384,941,625)) OR (`UIMapId`=863 AND `QuestLineId` IN (5429,5419,5418,5416,5391,5390,5389,320)) OR (`UIMapId`=862 AND `QuestLineId` IN (5427,5424,5421,5402,5401,5400,5391,5390,5389,5384,941,856,747,625,320)) OR (`UIMapId`=627 AND `QuestLineId`=130) OR (`UIMapId`=646 AND `QuestLineId`=130) OR (`UIMapId`=896 AND `QuestLineId` IN (5384,941,625)) OR (`UIMapId`=680 AND `QuestLineId`=5385) OR (`UIMapId`=634 AND `QuestLineId` IN (5385,307,130)) OR (`UIMapId`=641 AND `QuestLineId` IN (5385,307)) OR (`UIMapId`=630 AND `QuestLineId`=130) OR (`UIMapId`=864 AND `QuestLineId` IN (5429,5427,5426,5425,5424,5422,5421,5419,5418,5416,5391,5390,5389,320)) OR (`UIMapId`=1355 AND `QuestLineId` IN (5385,5369,1107)) OR (`UIMapId`=535 AND `QuestLineId` IN (32,30,28)) OR (`UIMapId`=550 AND `QuestLineId` IN (30,28)) OR (`UIMapId`=525 AND `QuestLineId` IN (139,58,57,1)) OR (`UIMapId`=543 AND `QuestLineId` IN (139,58,57,1)) OR (`UIMapId`=650 AND `QuestLineId` IN (5385,307,130)); +DELETE FROM `ui_map_quest_line` WHERE (`UIMapId`=371 AND `QuestLineId` IN (289,5494,550)) OR (`UIMapId`=422 AND `QuestLineId`=289) OR (`UIMapId`=379 AND `QuestLineId` IN (289,5494,550)) OR (`UIMapId`=630 AND `QuestLineId`=238) OR (`UIMapId`=646 AND `QuestLineId`=238) OR (`UIMapId`=862 AND `QuestLineId`=612) OR (`UIMapId`=376 AND `QuestLineId`=289) OR (`UIMapId`=120 AND `QuestLineId` IN (589,289,612)) OR (`UIMapId`=125 AND `QuestLineId` IN (589,612)) OR (`UIMapId`=650 AND `QuestLineId`=238) OR (`UIMapId`=680 AND `QuestLineId`=238) OR (`UIMapId`=117 AND `QuestLineId`=1108) OR (`UIMapId`=108 AND `QuestLineId`=289) OR (`UIMapId`=634 AND `QuestLineId`=238) OR (`UIMapId`=127 AND `QuestLineId` IN (589,612)) OR (`UIMapId`=118 AND `QuestLineId` IN (1108,589,289,612)) OR (`UIMapId`=1169 AND `QuestLineId`=589) OR (`UIMapId`=104 AND `QuestLineId`=289) OR (`UIMapId`=390 AND `QuestLineId`=289) OR (`UIMapId`=895 AND `QuestLineId`=589); +DELETE FROM `ui_map_quest_line` WHERE (`QuestLineId`=5369 AND `UIMapId` IN (1409,1727)) OR (`QuestLineId`=5366 AND `UIMapId`=1409) OR (`QuestLineId`=1107 AND `UIMapId` IN (1409,1727)) OR (`QuestLineId`=1070 AND `UIMapId`=1409) OR (`QuestLineId`=926 AND `UIMapId`=1409) OR (`QuestLineId`=1035 AND `UIMapId` IN (118,1602)) OR (`QuestLineId`=5453 AND `UIMapId` IN (23,124)) OR (`QuestLineId`=572 AND `UIMapId` IN (179,202)) OR (`QuestLineId`=5439 AND `UIMapId`=194) OR (`QuestLineId`=571 AND `UIMapId` IN (174,207)) OR (`QuestLineId`=573 AND `UIMapId`=378) OR (`QuestLineId`=150 AND `UIMapId` IN (630,634)) OR (`QuestLineId`=90 AND `UIMapId` IN (634,672,680)) OR (`QuestLineId`=206 AND `UIMapId`=672); +DELETE FROM `ui_map_quest_line` WHERE (`UIMapId`=1525 AND `QuestLineId` IN (1257,1223)) OR (`UIMapId`=1161 AND `QuestLineId` IN (5372,589)) OR (`UIMapId`=1670 AND `QuestLineId`=1257) OR (`UIMapId`=1165 AND `QuestLineId` IN (5391,5390,5389)); +DELETE FROM `ui_map_quest_line` WHERE (`UIMapId`=1165 AND `QuestLineId` IN (5379,856,851,785,5384,941,747)) OR (`UIMapId`=1525 AND `QuestLineId` IN (1235,1137,1010)) OR (`UIMapId`=862 AND `QuestLineId` IN (5388,617)) OR (`UIMapId`=1533 AND `QuestLineId`=1235) OR (`UIMapId`=2025 AND `QuestLineId`=1325) OR (`UIMapId`=2022 AND `QuestLineId`=1325) OR (`UIMapId`=1670 AND `QuestLineId` IN (1235,1137,1010,1295)) OR (`UIMapId`=2133 AND `QuestLineId`=1325) OR (`UIMapId`=1161 AND `QuestLineId` IN (5379,5376,5375,5371,1000,940,939,851,797,785,628)) OR (`UIMapId`=1536 AND `QuestLineId`=1295) OR (`UIMapId`=895 AND `QuestLineId`=5388); +DELETE FROM `ui_map_quest_line` WHERE (`QuestLineId`=5396 AND `UIMapId` IN (460,57)) OR (`QuestLineId`=5389 AND `UIMapId` IN (62,18,7,199,90,85,1,88,66,21,10,22,94,110)) OR (`QuestLineId`=856 AND `UIMapId`=62) OR (`QuestLineId`=612 AND `UIMapId` IN (62,249,18,81,7,199,90,85,1,327,88,66,21,10,22,94,110)) OR (`QuestLineId`=542 AND `UIMapId` IN (62,63,76,83,77,198)) OR (`QuestLineId`=538 AND `UIMapId` IN (62,83,80)) OR (`QuestLineId`=508 AND `UIMapId` IN (62,83,77,198)) OR (`QuestLineId`=507 AND `UIMapId` IN (62,63,83,77,198)) OR (`QuestLineId`=5379 AND `UIMapId` IN (249,81,327)) OR (`QuestLineId`=785 AND `UIMapId` IN (249,81,327)) OR (`QuestLineId`=545 AND `UIMapId` IN (249,81,327,71,78)) OR (`QuestLineId`=511 AND `UIMapId` IN (249,71)) OR (`QuestLineId`=290 AND `UIMapId` IN (249,7,199,63,76,85,1,83,77,198,65,71,66,10)) OR (`QuestLineId`=5406 AND `UIMapId` IN (18,465)) OR (`QuestLineId`=565 AND `UIMapId` IN (18,22)) OR (`QuestLineId`=432 AND `UIMapId` IN (18,244,217,21,25,245)) OR (`QuestLineId`=418 AND `UIMapId` IN (18,25,22,26)) OR (`QuestLineId`=199 AND `UIMapId` IN (18,90,21,25,22)) OR (`QuestLineId`=576 AND `UIMapId` IN (81,69,37,78,84)) OR (`QuestLineId`=512 AND `UIMapId` IN (81,69,71,78)) OR (`QuestLineId`=506 AND `UIMapId` IN (81,69,78)) OR (`QuestLineId`=5407 AND `UIMapId` IN (7,199,462,69)) OR (`QuestLineId`=564 AND `UIMapId` IN (7,199,69,88,66,10)) OR (`QuestLineId`=526 AND `UIMapId` IN (7,199,70,64,88,37,66,10,84)) OR (`QuestLineId`=525 AND `UIMapId` IN (7,199,69)) OR (`QuestLineId`=520 AND `UIMapId` IN (7,199,69,65,66)) OR (`QuestLineId`=519 AND `UIMapId` IN (7,199,70,64,65,10)) OR (`QuestLineId`=518 AND `UIMapId` IN (7,199,63,65,10)) OR (`QuestLineId`=509 AND `UIMapId` IN (7,199,63,1,65,461,10)) OR (`QuestLineId`=5499 AND `UIMapId` IN (199,1,57,463,461,10,89,94,110)) OR (`QuestLineId`=5430 AND `UIMapId` IN (199,1,463,10)) OR (`QuestLineId`=1227 AND `UIMapId` IN (199,1,461,10)) OR (`QuestLineId`=563 AND `UIMapId` IN (199,1,463,461,10)) OR (`QuestLineId`=521 AND `UIMapId` IN (199,70,64,69,71)) OR (`QuestLineId`=434 AND `UIMapId` IN (14,25,26)) OR (`QuestLineId`=409 AND `UIMapId` IN (14,244,217,21,25)) OR (`QuestLineId`=390 AND `UIMapId` IN (14,25,26)) OR (`QuestLineId`=516 AND `UIMapId` IN (63,76,85,1,77,65,10)) OR (`QuestLineId`=500 AND `UIMapId` IN (63,76,83,198)) OR (`QuestLineId`=1107 AND `UIMapId` IN (76,85,1,10)) OR (`QuestLineId`=546 AND `UIMapId` IN (76,85,241,1,37,48,10,56,84)) OR (`QuestLineId`=263 AND `UIMapId` IN (76,85,1,10)) OR (`QuestLineId`=260 AND `UIMapId` IN (76,85,1,10)) OR (`QuestLineId`=539 AND `UIMapId` IN (85,1,37,203,10,201,204,205,84)) OR (`QuestLineId`=414 AND `UIMapId` IN (224,50,52,47)) OR (`QuestLineId`=403 AND `UIMapId` IN (224,210,50)) OR (`QuestLineId`=398 AND `UIMapId` IN (224,17,51,42)) OR (`QuestLineId`=294 AND `UIMapId` IN (224,17,42)) OR (`QuestLineId`=60 AND `UIMapId` IN (224,17)) OR (`QuestLineId`=426 AND `UIMapId` IN (49,51,42)) OR (`QuestLineId`=376 AND `UIMapId` IN (1,10)) OR (`QuestLineId`=130 AND `UIMapId` IN (1,10)) OR (`QuestLineId`=206 AND `UIMapId` IN (97,103,23)) OR (`QuestLineId`=396 AND `UIMapId` IN (27,32,36,15,21,25)) OR (`QuestLineId`=386 AND `UIMapId` IN (27,32,36)) OR (`QuestLineId`=1199 AND `UIMapId` IN (467,94,110)) OR (`QuestLineId`=534 AND `UIMapId` IN (64,69,71,78)) OR (`QuestLineId`=926 AND `UIMapId` IN (37,84)) OR (`QuestLineId`=402 AND `UIMapId` IN (37,32,36,15)) OR (`QuestLineId`=262 AND `UIMapId` IN (37,84)) OR (`QuestLineId`=541 AND `UIMapId` IN (203,204,205)) OR (`QuestLineId`=406 AND `UIMapId` IN (22,26,23)) OR (`QuestLineId`=569 AND `UIMapId` IN (95,94,110)) OR (`QuestLineId`=444 AND `UIMapId` IN (95,94)) OR (`QuestLineId`=1325 AND `UIMapId`=2112); +DELETE FROM `ui_map_quest_line` WHERE (`QuestLineId`=566 AND `UIMapId` IN (47,52,37)) OR (`QuestLineId`=425 AND `UIMapId` IN (47,52,37,17,42)) OR (`QuestLineId`=421 AND `UIMapId` IN (47,84,224,52,37)) OR (`QuestLineId`=5497 AND `UIMapId` IN (84,21,57,89)) OR (`QuestLineId`=5372 AND `UIMapId` IN (84,97,37,103,27,57,89,87)) OR (`QuestLineId`=1000 AND `UIMapId` IN (84,37)) OR (`QuestLineId`=797 AND `UIMapId` IN (84,62,37,63,77)) OR (`QuestLineId`=347 AND `UIMapId` IN (84,37)) OR (`QuestLineId`=240 AND `UIMapId` IN (84,37)) OR (`QuestLineId`=198 AND `UIMapId` IN (84,37)) OR (`QuestLineId`=131 AND `UIMapId` IN (84,37)) OR (`QuestLineId`=1226 AND `UIMapId` IN (18,22,32,21,37,425,25)) OR (`QuestLineId`=5375 AND `UIMapId` IN (81,327,249)) OR (`QuestLineId`=743 AND `UIMapId` IN (81,327,249)) OR (`QuestLineId`=433 AND `UIMapId` IN (51,49,36)) OR (`QuestLineId`=5395 AND `UIMapId` IN (427,27)) OR (`QuestLineId`=517 AND `UIMapId` IN (199,65,63,10)) OR (`QuestLineId`=441 AND `UIMapId` IN (48,241,56,15,27)) OR (`QuestLineId`=514 AND `UIMapId` IN (65,63,1,10,77)) OR (`QuestLineId`=443 AND `UIMapId` IN (241,56)) OR (`QuestLineId`=567 AND `UIMapId` IN (56,27,87)) OR (`QuestLineId`=510 AND `UIMapId` IN (83,62,63,77,80)) OR (`QuestLineId`=171 AND `UIMapId` IN (83,62,80)) OR (`QuestLineId`=5404 AND `UIMapId` IN (97,468)) OR (`QuestLineId`=570 AND `UIMapId`=97) OR (`QuestLineId`=504 AND `UIMapId` IN (97,103,106)) OR (`QuestLineId`=568 AND `UIMapId` IN (57,89)) OR (`QuestLineId`=1295 AND `UIMapId` IN (90,18)) OR (`QuestLineId`=747 AND `UIMapId`=14) OR (`QuestLineId`=5385 AND `UIMapId`=81); +DELETE FROM `ui_map_quest_line` WHERE (`QuestLineId`=589 AND `UIMapId` IN (87,97,84,57,27,37)) OR (`QuestLineId`=289 AND `UIMapId` IN (52,84,37,224,50,49,17,47,42)) OR (`QuestLineId`=579 AND `UIMapId` IN (84,971)) OR (`QuestLineId`=308 AND `UIMapId` IN (650,641)); +DELETE FROM `ui_map_quest_line` WHERE (`UIMapId`=535 AND `QuestLineId` IN (114,103,41,40)) OR (`UIMapId`=89 AND `QuestLineId`=589) OR (`UIMapId`=550 AND `QuestLineId` IN (114,103)) OR (`UIMapId`=2024 AND `QuestLineId` IN (5464,5381,1398,1362,1331,1308)) OR (`UIMapId`=542 AND `QuestLineId`=40) OR (`UIMapId`=534 AND `QuestLineId`=57) OR (`UIMapId`=2200 AND `QuestLineId` IN (5381,1331,1308)) OR (`UIMapId`=543 AND `QuestLineId` IN (114,103)) OR (`UIMapId`=2025 AND `QuestLineId` IN (5538,5511,5464,5462,5381,1416,1413,1398,1362,1333,1331,1308)) OR (`UIMapId`=2022 AND `QuestLineId` IN (5538,5511,5464,5462,5381,1416,1413,1398,1362,1333,1331,1308)) OR (`UIMapId`=2112 AND `QuestLineId` IN (5538,5511,5464,5381,1416,1413,1398,1362,1333,1331,1308)) OR (`UIMapId`=2239 AND `QuestLineId` IN (5381,1308)) OR (`UIMapId`=103 AND `QuestLineId`=589) OR (`UIMapId`=2133 AND `QuestLineId` IN (5538,5511,5464,5462,5381,1416,1413,1398,1362,1333,1331,1308)) OR (`UIMapId`=2151 AND `QuestLineId`=1413) OR (`UIMapId`=525 AND `QuestLineId` IN (114,103)) OR (`UIMapId`=539 AND `QuestLineId` IN (41,40)) OR (`UIMapId`=2023 AND `QuestLineId` IN (5464,5381,1331,1308)); +DELETE FROM `ui_map_quest_line` WHERE (`QuestLineId`=1261 AND `UIMapId` IN (2118,2109)) OR (`QuestLineId`=5536 AND `UIMapId` IN (371,554)) OR (`QuestLineId`=1289 AND `UIMapId` IN (2025,2022,84)) OR (`QuestLineId`=1379 AND `UIMapId`=84); +DELETE FROM `ui_map_quest_line` WHERE (`UIMapId`=830 AND `QuestLineId`=369) OR (`UIMapId`=882 AND `QuestLineId`=369) OR (`UIMapId`=680 AND `QuestLineId` IN (343,341,340,339,154,153)) OR (`UIMapId`=2022 AND `QuestLineId`=1367) OR (`UIMapId`=1543 AND `QuestLineId`=1065) OR (`UIMapId`=2025 AND `QuestLineId`=1367) OR (`UIMapId`=1525 AND `QuestLineId`=1065) OR (`UIMapId`=831 AND `QuestLineId`=369) OR (`UIMapId`=1536 AND `QuestLineId`=1294) OR (`UIMapId`=1670 AND `QuestLineId` IN (1294,1065)) OR (`UIMapId`=1672 AND `QuestLineId`=1235) OR (`UIMapId`=84 AND `QuestLineId` IN (5511,5399,547)); +DELETE FROM `ui_map_quest_line` WHERE (`QuestLineId`=1289 AND `UIMapId` IN (85,1,76)) OR (`QuestLineId`=860 AND `UIMapId` IN (85,1)) OR (`QuestLineId`=1368 AND `UIMapId` IN (2133,2022,2024,2025)) OR (`QuestLineId`=1367 AND `UIMapId`=2133) OR (`QuestLineId`=1314 AND `UIMapId` IN (2133,2024,2239,2023)) OR (`QuestLineId`=1310 AND `UIMapId` IN (2133,2022,2024,2025,2023)) OR (`QuestLineId`=1303 AND `UIMapId` IN (2133,2022,2025,2023)) OR (`QuestLineId`=5388 AND `UIMapId` IN (942,896)); +INSERT INTO `ui_map_quest_line` (`UIMapId`, `QuestLineId`, `VerifiedBuild`) VALUES +(371, 5557, 54988), +(371, 5502, 54988), +(371, 5500, 54988), +(371, 5499, 54988), +(371, 5496, 54988), +(371, 5495, 54988), +(371, 5491, 54988), +(371, 5490, 54988), +(371, 5489, 54988), +(371, 560, 54988), +(371, 559, 54988), +(371, 558, 54988), +(371, 555, 54988), +(371, 554, 54988), +(371, 553, 54988), +(371, 290, 54988), +(379, 5502, 54988), +(379, 5500, 54988), +(379, 5499, 54988), +(379, 5496, 54988), +(379, 5492, 54988), +(379, 5491, 54988), +(379, 561, 54988), +(379, 560, 54988), +(379, 554, 54988), +(379, 553, 54988), +(379, 290, 54988), +(390, 5557, 54988), +(390, 5502, 54988), +(390, 5500, 54988), +(390, 5499, 54988), +(390, 5496, 54988), +(390, 5493, 54988), +(390, 5492, 54988), +(390, 5491, 54988), +(390, 5489, 54988), +(390, 562, 54988), +(390, 561, 54988), +(390, 560, 54988), +(390, 558, 54988), +(390, 290, 54988), +(422, 5499, 54988), +(422, 5495, 54988), +(422, 5493, 54988), +(422, 5492, 54988), +(422, 5490, 54988), +(422, 5489, 54988), +(422, 562, 54988), +(422, 561, 54988), +(422, 559, 54988), +(422, 558, 54988), +(422, 290, 54988), +(116, 537, 54988), +(116, 536, 54988), +(116, 529, 54988), +(116, 528, 54988), +(554, 5557, 54988), +(504, 5500, 54988), +(121, 537, 54988), +(121, 536, 54988), +(121, 535, 54988), +(102, 486, 54988), +(102, 474, 54988), +(102, 463, 54988), +(102, 448, 54988), +(127, 5389, 54988), +(127, 538, 54988), +(127, 535, 54988), +(127, 529, 54988), +(125, 5389, 54988), +(207, 546, 54988), +(207, 543, 54988), +(100, 538, 54988), +(100, 486, 54988), +(100, 473, 54988), +(100, 463, 54988), +(100, 448, 54988), +(418, 5499, 54988), +(418, 5495, 54988), +(418, 5493, 54988), +(418, 5490, 54988), +(418, 5489, 54988), +(418, 562, 54988), +(418, 559, 54988), +(418, 558, 54988), +(105, 488, 54988), +(105, 474, 54988), +(105, 463, 54988), +(118, 5389, 54988), +(118, 538, 54988), +(118, 535, 54988), +(118, 534, 54988), +(118, 290, 54988), +(111, 538, 54988), +(111, 493, 54988), +(111, 488, 54988), +(111, 486, 54988), +(111, 473, 54988), +(170, 538, 54988), +(170, 535, 54988), +(170, 290, 54988), +(104, 493, 54988), +(104, 473, 54988), +(104, 290, 54988), +(120, 5389, 54988), +(120, 538, 54988), +(120, 536, 54988), +(120, 535, 54988), +(120, 290, 54988), +(109, 493, 54988), +(109, 488, 54988), +(109, 474, 54988), +(107, 538, 54988), +(107, 493, 54988), +(107, 488, 54988), +(107, 486, 54988), +(107, 473, 54988), +(107, 463, 54988), +(114, 530, 54988), +(114, 529, 54988), +(388, 5502, 54988), +(388, 5500, 54988), +(388, 5499, 54988), +(388, 5496, 54988), +(388, 5493, 54988), +(388, 5492, 54988), +(388, 5491, 54988), +(388, 562, 54988), +(388, 561, 54988), +(388, 560, 54988), +(117, 528, 54988), +(115, 538, 54988), +(115, 537, 54988), +(115, 536, 54988), +(115, 530, 54988), +(115, 529, 54988), +(174, 546, 54988), +(174, 543, 54988), +(123, 534, 54988), +(123, 530, 54988), +(123, 529, 54988), +(108, 538, 54988), +(108, 493, 54988), +(108, 488, 54988), +(108, 486, 54988), +(108, 473, 54988), +(108, 448, 54988), +(108, 290, 54988), +(119, 538, 54988), +(119, 534, 54988), +(119, 530, 54988), +(376, 5495, 54988), +(376, 5493, 54988), +(376, 5490, 54988), +(376, 5489, 54988), +(376, 562, 54988), +(376, 559, 54988), +(376, 558, 54988), +(376, 555, 54988), +(376, 290, 54988), +(127, 5372, 54988), +(118, 5372, 54988), +(371, 5503, 54988), +(371, 5501, 54988), +(371, 5497, 54988), +(418, 5497, 54988), +(376, 5501, 54988), +(376, 5497, 54988), +(379, 5501, 54988), +(379, 5497, 54988), +(390, 5503, 54988), +(390, 5501, 54988), +(390, 5497, 54988), +(388, 5501, 54988), +(388, 5497, 54988), +(120, 5372, 54988), +(554, 5503, 54988), +(504, 5501, 54988), +(895, 5449, 54988), +(895, 5448, 54988), +(895, 5447, 54988), +(895, 5446, 54988), +(895, 5443, 54988), +(895, 5441, 54988), +(895, 5440, 54988), +(895, 5437, 54988), +(895, 5436, 54988), +(895, 5435, 54988), +(895, 5434, 54988), +(895, 5433, 54988), +(895, 5432, 54988), +(895, 5431, 54988), +(895, 5379, 54988), +(895, 5376, 54988), +(895, 5375, 54988), +(895, 5373, 54988), +(895, 5372, 54988), +(895, 5371, 54988), +(895, 1000, 54988), +(895, 940, 54988), +(895, 939, 54988), +(895, 851, 54988), +(895, 797, 54988), +(895, 785, 54988), +(895, 742, 54988), +(895, 628, 54988), +(895, 592, 54988), +(895, 591, 54988), +(895, 586, 54988), +(1462, 5376, 54988), +(1462, 1000, 54988), +(1462, 940, 54988), +(942, 5452, 54988), +(942, 5451, 54988), +(942, 5450, 54988), +(942, 5436, 54988), +(942, 5435, 54988), +(942, 5371, 54988), +(942, 851, 54988), +(942, 794, 54988), +(942, 740, 54988), +(942, 738, 54988), +(942, 591, 54988), +(942, 582, 54988), +(942, 577, 54988), +(680, 5375, 54988), +(680, 342, 54988), +(680, 280, 54988), +(680, 206, 54988), +(680, 191, 54988), +(680, 184, 54988), +(680, 152, 54988), +(680, 82, 54988), +(646, 347, 54988), +(646, 295, 54988), +(646, 294, 54988), +(646, 280, 54988), +(646, 275, 54988), +(646, 206, 54988), +(646, 171, 54988), +(646, 152, 54988), +(646, 144, 54988), +(646, 131, 54988), +(862, 5423, 54988), +(862, 5411, 54988), +(862, 5410, 54988), +(862, 5409, 54988), +(862, 5379, 54988), +(862, 939, 54988), +(862, 851, 54988); + +INSERT INTO `ui_map_quest_line` (`UIMapId`, `QuestLineId`, `VerifiedBuild`) VALUES +(862, 785, 54988), +(862, 628, 54988), +(641, 5375, 54988), +(641, 342, 54988), +(641, 206, 54988), +(641, 191, 54988), +(641, 184, 54988), +(641, 171, 54988), +(641, 152, 54988), +(641, 144, 54988), +(650, 5375, 54988), +(650, 342, 54988), +(650, 294, 54988), +(650, 280, 54988), +(650, 206, 54988), +(650, 191, 54988), +(650, 184, 54988), +(650, 171, 54988), +(650, 144, 54988), +(650, 131, 54988), +(863, 5414, 54988), +(863, 5413, 54988), +(863, 5411, 54988), +(790, 82, 54988), +(125, 5372, 54988), +(630, 347, 54988), +(630, 295, 54988), +(630, 294, 54988), +(630, 280, 54988), +(630, 275, 54988), +(630, 227, 54988), +(630, 226, 54988), +(630, 206, 54988), +(630, 171, 54988), +(630, 152, 54988), +(630, 144, 54988), +(630, 131, 54988), +(630, 82, 54988), +(885, 365, 54988), +(896, 5449, 54988), +(896, 5448, 54988), +(896, 5447, 54988), +(896, 5446, 54988), +(896, 5443, 54988), +(896, 5441, 54988), +(896, 5440, 54988), +(896, 5437, 54988), +(896, 5435, 54988), +(896, 5433, 54988), +(896, 5432, 54988), +(896, 5376, 54988), +(896, 5373, 54988), +(896, 5372, 54988), +(896, 5371, 54988), +(896, 1000, 54988), +(896, 940, 54988), +(896, 851, 54988), +(896, 592, 54988), +(896, 591, 54988), +(535, 140, 54988), +(535, 105, 54988), +(535, 59, 54988), +(535, 39, 54988), +(535, 34, 54988), +(535, 29, 54988), +(535, 27, 54988), +(542, 59, 54988), +(542, 50, 54988), +(542, 34, 54988), +(539, 140, 54988), +(539, 105, 54988), +(539, 59, 54988), +(539, 50, 54988), +(539, 39, 54988), +(539, 34, 54988), +(525, 105, 54988), +(627, 295, 54988), +(627, 294, 54988), +(627, 280, 54988), +(627, 275, 54988), +(627, 206, 54988), +(627, 171, 54988), +(627, 152, 54988), +(627, 144, 54988), +(627, 131, 54988), +(882, 365, 54988), +(534, 60, 54988), +(864, 5423, 54988), +(864, 5414, 54988), +(864, 5413, 54988), +(864, 5411, 54988), +(864, 851, 54988), +(864, 628, 54988), +(543, 140, 54988), +(543, 52, 54988), +(550, 105, 54988), +(550, 29, 54988), +(550, 27, 54988), +(1355, 5375, 54988), +(1355, 5366, 54988), +(1355, 1070, 54988), +(1355, 926, 54988), +(634, 5375, 54988), +(634, 342, 54988), +(634, 294, 54988), +(634, 280, 54988), +(634, 206, 54988), +(634, 152, 54988), +(634, 144, 54988), +(634, 131, 54988), +(830, 365, 54988), +(1169, 5372, 54988), +(1462, 5384, 54988), +(1462, 941, 54988), +(895, 5384, 54988), +(895, 941, 54988), +(895, 625, 54988), +(863, 5429, 54988), +(863, 5419, 54988), +(863, 5418, 54988), +(863, 5416, 54988), +(863, 5391, 54988), +(863, 5390, 54988), +(863, 5389, 54988), +(863, 320, 54988), +(862, 5427, 54988), +(862, 5424, 54988), +(862, 5421, 54988), +(862, 5402, 54988), +(862, 5401, 54988), +(862, 5400, 54988), +(862, 5391, 54988), +(862, 5390, 54988), +(862, 5389, 54988), +(862, 5384, 54988), +(862, 941, 54988), +(862, 856, 54988), +(862, 747, 54988), +(862, 625, 54988), +(862, 320, 54988), +(627, 130, 54988), +(646, 130, 54988), +(896, 5384, 54988), +(896, 941, 54988), +(896, 625, 54988), +(680, 5385, 54988), +(634, 5385, 54988), +(634, 307, 54988), +(634, 130, 54988), +(641, 5385, 54988), +(641, 307, 54988), +(630, 130, 54988), +(864, 5429, 54988), +(864, 5427, 54988), +(864, 5426, 54988), +(864, 5425, 54988), +(864, 5424, 54988), +(864, 5422, 54988), +(864, 5421, 54988), +(864, 5419, 54988), +(864, 5418, 54988), +(864, 5416, 54988), +(864, 5391, 54988), +(864, 5390, 54988), +(864, 5389, 54988), +(864, 320, 54988), +(1355, 5385, 54988), +(1355, 5369, 54988), +(1355, 1107, 54988), +(535, 32, 54988), +(535, 30, 54988), +(535, 28, 54988), +(550, 30, 54988), +(550, 28, 54988), +(525, 139, 54988), +(525, 58, 54988), +(525, 57, 54988), +(525, 1, 54988), +(543, 139, 54988), +(543, 58, 54988), +(543, 57, 54988), +(543, 1, 54988), +(650, 5385, 54988), +(650, 307, 54988), +(650, 130, 54988), +(371, 289, 54988), +(422, 289, 54988), +(379, 289, 54988), +(630, 238, 54988), +(646, 238, 54988), +(862, 612, 54988), +(376, 289, 54988), +(120, 589, 54988), +(120, 289, 54988), +(125, 589, 54988), +(650, 238, 54988), +(680, 238, 54988), +(117, 1108, 54988), +(108, 289, 54988), +(634, 238, 54988), +(371, 5494, 54988), +(371, 550, 54988), +(127, 589, 54988), +(120, 612, 54988), +(125, 612, 54988), +(118, 1108, 54988), +(118, 589, 54988), +(118, 289, 54988), +(127, 612, 54988), +(1169, 589, 54988), +(379, 5494, 54988), +(379, 550, 54988), +(118, 612, 54988), +(104, 289, 54988), +(390, 289, 54988), +(895, 589, 54988), +(1409, 5369, 54988), +(1409, 5366, 54988), +(1409, 1107, 54988), +(1409, 1070, 54988), +(1409, 926, 54988), +(1727, 5369, 54988), +(1727, 1107, 54988), +(118, 1035, 54988), +(23, 5453, 54988), +(124, 5453, 54988), +(179, 572, 54988), +(194, 5439, 54988), +(1602, 1035, 54988), +(174, 571, 54988), +(207, 571, 54988), +(202, 572, 54988), +(378, 573, 54988), +(630, 150, 54988), +(634, 150, 54988), +(634, 90, 54988), +(672, 206, 54988), +(672, 90, 54988), +(680, 90, 54988), +(1525, 1257, 54988), +(1525, 1223, 54988), +(1161, 5372, 54988), +(1161, 589, 54988), +(1670, 1257, 54988), +(1165, 5391, 54988), +(1165, 5390, 54988), +(1165, 5389, 54988), +(1165, 5379, 54988), +(1165, 856, 54988), +(1165, 851, 54988); + +INSERT INTO `ui_map_quest_line` (`UIMapId`, `QuestLineId`, `VerifiedBuild`) VALUES +(1165, 785, 54988), +(1525, 1235, 54988), +(1525, 1137, 54988), +(1525, 1010, 54988), +(862, 5388, 54988), +(862, 617, 54988), +(1533, 1235, 54988), +(2025, 1325, 54988), +(2022, 1325, 54988), +(1670, 1235, 54988), +(1670, 1137, 54988), +(1670, 1010, 54988), +(2133, 1325, 54988), +(1161, 5379, 54988), +(1161, 5376, 54988), +(1161, 5375, 54988), +(1161, 5371, 54988), +(1161, 1000, 54988), +(1161, 940, 54988), +(1161, 939, 54988), +(1161, 851, 54988), +(1161, 797, 54988), +(1161, 785, 54988), +(1161, 628, 54988), +(1670, 1295, 54988), +(1536, 1295, 54988), +(1165, 5384, 54988), +(1165, 941, 54988), +(1165, 747, 54988), +(895, 5388, 54988), +(460, 5396, 54988), +(62, 5389, 54988), +(62, 856, 54988), +(62, 612, 54988), +(62, 542, 54988), +(62, 538, 54988), +(62, 508, 54988), +(62, 507, 54988), +(249, 5379, 54988), +(249, 785, 54988), +(249, 612, 54988), +(249, 545, 54988), +(249, 511, 54988), +(249, 290, 54988), +(18, 5406, 54988), +(18, 5389, 54988), +(18, 612, 54988), +(18, 565, 54988), +(18, 432, 54988), +(18, 418, 54988), +(18, 199, 54988), +(81, 5379, 54988), +(81, 785, 54988), +(81, 612, 54988), +(81, 576, 54988), +(81, 545, 54988), +(81, 512, 54988), +(81, 506, 54988), +(7, 5407, 54988), +(7, 5389, 54988), +(7, 612, 54988), +(7, 564, 54988), +(7, 526, 54988), +(7, 525, 54988), +(7, 520, 54988), +(7, 519, 54988), +(7, 518, 54988), +(7, 509, 54988), +(7, 290, 54988), +(199, 5499, 54988), +(199, 5430, 54988), +(199, 5407, 54988), +(199, 5389, 54988), +(199, 1227, 54988), +(199, 612, 54988), +(199, 564, 54988), +(199, 563, 54988), +(199, 526, 54988), +(199, 525, 54988), +(199, 521, 54988), +(199, 520, 54988), +(199, 519, 54988), +(199, 518, 54988), +(199, 509, 54988), +(199, 290, 54988), +(14, 434, 54988), +(14, 409, 54988), +(14, 390, 54988), +(63, 542, 54988), +(63, 518, 54988), +(63, 516, 54988), +(63, 509, 54988), +(63, 507, 54988), +(63, 500, 54988), +(63, 290, 54988), +(76, 1107, 54988), +(76, 546, 54988), +(76, 542, 54988), +(76, 516, 54988), +(76, 500, 54988), +(76, 290, 54988), +(76, 263, 54988), +(76, 260, 54988), +(90, 5389, 54988), +(90, 612, 54988), +(90, 199, 54988), +(85, 5389, 54988), +(85, 1107, 54988), +(85, 612, 54988), +(85, 546, 54988), +(85, 539, 54988), +(85, 516, 54988), +(85, 290, 54988), +(85, 263, 54988), +(85, 260, 54988), +(241, 546, 54988), +(70, 526, 54988), +(70, 521, 54988), +(70, 519, 54988), +(462, 5407, 54988), +(224, 414, 54988), +(224, 403, 54988), +(224, 398, 54988), +(224, 294, 54988), +(224, 60, 54988), +(17, 398, 54988), +(17, 294, 54988), +(17, 60, 54988), +(49, 426, 54988), +(1, 5499, 54988), +(1, 5430, 54988), +(1, 5389, 54988), +(1, 1227, 54988), +(1, 1107, 54988), +(1, 612, 54988), +(1, 563, 54988), +(1, 546, 54988), +(1, 539, 54988), +(1, 516, 54988), +(1, 509, 54988), +(1, 376, 54988), +(1, 290, 54988), +(1, 263, 54988), +(1, 260, 54988), +(1, 130, 54988), +(97, 206, 54988), +(27, 396, 54988), +(27, 386, 54988), +(327, 5379, 54988), +(327, 785, 54988), +(327, 612, 54988), +(327, 545, 54988), +(83, 542, 54988), +(83, 538, 54988), +(83, 508, 54988), +(83, 507, 54988), +(83, 500, 54988), +(83, 290, 54988), +(467, 1199, 54988), +(77, 542, 54988), +(77, 516, 54988), +(77, 508, 54988), +(77, 507, 54988), +(77, 290, 54988), +(64, 534, 54988), +(64, 526, 54988), +(64, 521, 54988), +(64, 519, 54988), +(69, 5407, 54988), +(69, 576, 54988), +(69, 564, 54988), +(69, 534, 54988), +(69, 525, 54988), +(69, 521, 54988), +(69, 520, 54988), +(69, 512, 54988), +(69, 506, 54988), +(88, 5389, 54988), +(88, 612, 54988), +(88, 564, 54988), +(88, 526, 54988), +(198, 542, 54988), +(198, 508, 54988), +(198, 507, 54988), +(198, 500, 54988), +(198, 290, 54988), +(51, 426, 54988), +(51, 398, 54988), +(37, 926, 54988), +(37, 576, 54988), +(37, 546, 54988), +(37, 539, 54988), +(37, 526, 54988), +(37, 402, 54988), +(37, 262, 54988), +(48, 546, 54988), +(32, 402, 54988), +(32, 396, 54988), +(32, 386, 54988), +(65, 520, 54988), +(65, 519, 54988), +(65, 518, 54988), +(65, 516, 54988), +(65, 509, 54988), +(65, 290, 54988), +(36, 402, 54988), +(36, 396, 54988), +(36, 386, 54988), +(244, 432, 54988), +(244, 409, 54988), +(57, 5499, 54988), +(57, 5396, 54988), +(103, 206, 54988), +(217, 432, 54988), +(217, 409, 54988), +(71, 545, 54988), +(71, 534, 54988), +(71, 521, 54988), +(71, 512, 54988), +(71, 511, 54988), +(71, 290, 54988), +(463, 5499, 54988), +(463, 5430, 54988), +(463, 563, 54988), +(210, 403, 54988), +(465, 5406, 54988), +(66, 5389, 54988), +(66, 612, 54988), +(66, 564, 54988), +(66, 526, 54988), +(66, 520, 54988), +(66, 290, 54988), +(461, 5499, 54988), +(461, 1227, 54988), +(461, 563, 54988), +(461, 509, 54988), +(15, 402, 54988), +(15, 396, 54988), +(203, 541, 54988), +(203, 539, 54988), +(21, 5389, 54988), +(21, 612, 54988), +(21, 432, 54988), +(21, 409, 54988), +(21, 396, 54988), +(21, 199, 54988), +(10, 5499, 54988), +(10, 5430, 54988), +(10, 5389, 54988), +(10, 1227, 54988); + +INSERT INTO `ui_map_quest_line` (`UIMapId`, `QuestLineId`, `VerifiedBuild`) VALUES +(10, 1107, 54988), +(10, 612, 54988), +(10, 564, 54988), +(10, 563, 54988), +(10, 546, 54988), +(10, 539, 54988), +(10, 526, 54988), +(10, 519, 54988), +(10, 518, 54988), +(10, 516, 54988), +(10, 509, 54988), +(10, 376, 54988), +(10, 290, 54988), +(10, 263, 54988), +(10, 260, 54988), +(10, 130, 54988), +(42, 426, 54988), +(42, 398, 54988), +(42, 294, 54988), +(50, 414, 54988), +(50, 403, 54988), +(25, 434, 54988), +(25, 432, 54988), +(25, 418, 54988), +(25, 409, 54988), +(25, 396, 54988), +(25, 390, 54988), +(25, 199, 54988), +(22, 5389, 54988), +(22, 612, 54988), +(22, 565, 54988), +(22, 418, 54988), +(22, 406, 54988), +(22, 199, 54988), +(201, 539, 54988), +(26, 434, 54988), +(26, 418, 54988), +(26, 406, 54988), +(26, 390, 54988), +(23, 406, 54988), +(23, 206, 54988), +(89, 5499, 54988), +(80, 538, 54988), +(52, 414, 54988), +(95, 569, 54988), +(95, 444, 54988), +(47, 414, 54988), +(94, 5499, 54988), +(94, 5389, 54988), +(94, 1199, 54988), +(94, 612, 54988), +(94, 569, 54988), +(94, 444, 54988), +(56, 546, 54988), +(110, 5499, 54988), +(110, 5389, 54988), +(110, 1199, 54988), +(110, 612, 54988), +(110, 569, 54988), +(2112, 1325, 54988), +(204, 541, 54988), +(204, 539, 54988), +(78, 576, 54988), +(78, 545, 54988), +(78, 534, 54988), +(78, 512, 54988), +(78, 506, 54988), +(205, 541, 54988), +(205, 539, 54988), +(245, 432, 54988), +(84, 926, 54988), +(84, 576, 54988), +(84, 546, 54988), +(84, 539, 54988), +(84, 526, 54988), +(84, 262, 54988), +(47, 566, 54988), +(47, 425, 54988), +(47, 421, 54988), +(84, 5497, 54988), +(84, 5372, 54988), +(84, 1000, 54988), +(84, 797, 54988), +(84, 421, 54988), +(84, 347, 54988), +(84, 240, 54988), +(84, 198, 54988), +(84, 131, 54988), +(18, 1226, 54988), +(81, 5375, 54988), +(81, 743, 54988), +(51, 433, 54988), +(427, 5395, 54988), +(199, 517, 54988), +(224, 421, 54988), +(22, 1226, 54988), +(52, 566, 54988), +(52, 425, 54988), +(52, 421, 54988), +(32, 1226, 54988), +(21, 5497, 54988), +(21, 1226, 54988), +(48, 441, 54988), +(327, 5375, 54988), +(327, 743, 54988), +(65, 517, 54988), +(65, 514, 54988), +(241, 443, 54988), +(241, 441, 54988), +(56, 567, 54988), +(56, 443, 54988), +(56, 441, 54988), +(83, 510, 54988), +(83, 171, 54988), +(62, 797, 54988), +(62, 510, 54988), +(62, 171, 54988), +(97, 5404, 54988), +(97, 5372, 54988), +(97, 570, 54988), +(97, 504, 54988), +(37, 5372, 54988), +(37, 1226, 54988), +(37, 1000, 54988), +(37, 797, 54988), +(37, 566, 54988), +(37, 425, 54988), +(37, 421, 54988), +(37, 347, 54988), +(37, 240, 54988), +(37, 198, 54988), +(37, 131, 54988), +(425, 1226, 54988), +(63, 797, 54988), +(63, 517, 54988), +(63, 514, 54988), +(63, 510, 54988), +(103, 5372, 54988), +(103, 504, 54988), +(106, 504, 54988), +(15, 441, 54988), +(27, 5395, 54988), +(27, 5372, 54988), +(27, 567, 54988), +(27, 441, 54988), +(25, 1226, 54988), +(1, 514, 54988), +(17, 425, 54988), +(57, 5497, 54988), +(57, 5372, 54988), +(57, 568, 54988), +(249, 5375, 54988), +(249, 743, 54988), +(468, 5404, 54988), +(89, 5497, 54988), +(89, 5372, 54988), +(89, 568, 54988), +(42, 425, 54988), +(49, 433, 54988), +(90, 1295, 54988), +(10, 517, 54988), +(10, 514, 54988), +(18, 1295, 54988), +(36, 433, 54988), +(14, 747, 54988), +(81, 5385, 54988), +(87, 5372, 54988), +(87, 567, 54988), +(77, 797, 54988), +(77, 514, 54988), +(77, 510, 54988), +(80, 510, 54988), +(80, 171, 54988), +(87, 589, 54988), +(97, 589, 54988), +(52, 289, 54988), +(84, 589, 54988), +(84, 289, 54988), +(57, 589, 54988), +(84, 579, 54988), +(650, 308, 54988), +(27, 589, 54988), +(641, 308, 54988), +(37, 589, 54988), +(37, 289, 54988), +(224, 289, 54988), +(50, 289, 54988), +(49, 289, 54988), +(17, 289, 54988), +(47, 289, 54988), +(42, 289, 54988), +(971, 579, 54988), +(535, 114, 54988), +(535, 103, 54988), +(535, 41, 54988), +(535, 40, 54988), +(89, 589, 54988), +(550, 114, 54988), +(550, 103, 54988), +(2024, 5464, 54988), +(2024, 5381, 54988), +(2024, 1398, 54988), +(2024, 1362, 54988), +(2024, 1331, 54988), +(2024, 1308, 54988), +(542, 40, 54988), +(534, 57, 54988), +(2200, 5381, 54988), +(2200, 1331, 54988), +(2200, 1308, 54988), +(543, 114, 54988), +(543, 103, 54988), +(2025, 5538, 54988), +(2025, 5511, 54988), +(2025, 5464, 54988), +(2025, 5462, 54988), +(2025, 5381, 54988), +(2025, 1416, 54988), +(2025, 1413, 54988), +(2025, 1398, 54988), +(2025, 1362, 54988), +(2025, 1333, 54988), +(2025, 1331, 54988), +(2025, 1308, 54988), +(2022, 5538, 54988), +(2022, 5511, 54988), +(2022, 5464, 54988), +(2022, 5462, 54988), +(2022, 5381, 54988), +(2022, 1416, 54988), +(2022, 1413, 54988), +(2022, 1398, 54988), +(2022, 1362, 54988), +(2022, 1333, 54988), +(2022, 1331, 54988), +(2022, 1308, 54988), +(2112, 5538, 54988), +(2112, 5511, 54988), +(2112, 5464, 54988), +(2112, 5381, 54988), +(2112, 1416, 54988), +(2112, 1413, 54988), +(2112, 1398, 54988), +(2112, 1362, 54988), +(2112, 1333, 54988), +(2112, 1331, 54988), +(2112, 1308, 54988), +(2239, 5381, 54988), +(2239, 1308, 54988), +(103, 589, 54988); + +INSERT INTO `ui_map_quest_line` (`UIMapId`, `QuestLineId`, `VerifiedBuild`) VALUES +(2133, 5538, 54988), +(2133, 5511, 54988), +(2133, 5464, 54988), +(2133, 5462, 54988), +(2133, 5381, 54988), +(2133, 1416, 54988), +(2133, 1413, 54988), +(2133, 1398, 54988), +(2133, 1362, 54988), +(2133, 1333, 54988), +(2133, 1331, 54988), +(2133, 1308, 54988), +(2151, 1413, 54988), +(525, 114, 54988), +(525, 103, 54988), +(539, 41, 54988), +(539, 40, 54988), +(2023, 5464, 54988), +(2023, 5381, 54988), +(2023, 1331, 54988), +(2023, 1308, 54988), +(2118, 1261, 54988), +(371, 5536, 54988), +(554, 5536, 54988), +(2025, 1289, 54988), +(2022, 1289, 54988), +(2109, 1261, 54988), +(84, 1379, 54988), +(84, 1289, 54988), +(830, 369, 54988), +(882, 369, 54988), +(680, 343, 54988), +(680, 341, 54988), +(680, 340, 54988), +(680, 339, 54988), +(680, 154, 54988), +(680, 153, 54988), +(2022, 1367, 54988), +(1543, 1065, 54988), +(2025, 1367, 54988), +(1525, 1065, 54988), +(831, 369, 54988), +(1536, 1294, 54988), +(1670, 1294, 54988), +(1670, 1065, 54988), +(1672, 1235, 54988), +(84, 5511, 54988), +(84, 5399, 54988), +(84, 547, 54988), +(85, 1289, 54988), +(85, 860, 54988), +(2133, 1368, 54988), +(2133, 1367, 54988), +(2133, 1314, 54988), +(2133, 1310, 54988), +(2133, 1303, 54988), +(2022, 1368, 54988), +(2022, 1310, 54988), +(2022, 1303, 54988), +(2024, 1368, 54988), +(2024, 1314, 54988), +(2024, 1310, 54988), +(1, 1289, 54988), +(1, 860, 54988), +(2239, 1314, 54988), +(76, 1289, 54988), +(2025, 1368, 54988), +(2025, 1310, 54988), +(2025, 1303, 54988), +(2023, 1314, 54988), +(2023, 1310, 54988), +(2023, 1303, 54988), +(942, 5388, 54988), +(896, 5388, 54988); + +DELETE FROM `ui_map_quest` WHERE (`UIMapId`=371 AND `QuestId`=30134); +DELETE FROM `ui_map_quest` WHERE (`UIMapId`=1536 AND `QuestId` IN (59867,57301)); +INSERT INTO `ui_map_quest` (`UIMapId`, `QuestId`, `VerifiedBuild`) VALUES +(371, 30134, 54988), -- Wild Things +(1536, 59867, 54988), -- WANTED: Appraiser Vix +(1536, 57301, 54988); -- Callous Concoctions diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp index f3552765c4317..22e4fd2496dd1 100644 --- a/src/server/game/DataStores/DB2Stores.cpp +++ b/src/server/game/DataStores/DB2Stores.cpp @@ -1467,8 +1467,13 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul } } - for (QuestLineXQuestEntry const* questLineQuest : sQuestLineXQuestStore) - _questsByQuestLine[questLineQuest->QuestLineID].push_back(questLineQuest); + { + for (QuestLineXQuestEntry const* questLineQuest : sQuestLineXQuestStore) + _questsByQuestLine[questLineQuest->QuestLineID].push_back(questLineQuest); + + for (auto& [questLineId, questLineQuests] : _questsByQuestLine) + std::ranges::sort(questLineQuests, std::ranges::less(), &QuestLineXQuestEntry::OrderIndex); + } for (QuestPackageItemEntry const* questPackageItem : sQuestPackageItemStore) { diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index a684806b88c03..fca4e4ff71b28 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -3518,7 +3518,7 @@ void ObjectMgr::LoadVehicleAccessories() if (!result) { - TC_LOG_INFO("server.loading", ">> Loaded 0 Vehicle Accessories in {} ms", GetMSTimeDiffToNow(oldMSTime)); + TC_LOG_INFO("server.loading", ">> Loaded 0 vehicle accessories. DB table `vehicle_accessory` is empty."); return; } @@ -11060,8 +11060,6 @@ void ObjectMgr::LoadSceneTemplates() return; } - uint32 count = 0; - do { Field* fields = templates->Fetch(); @@ -11076,7 +11074,7 @@ void ObjectMgr::LoadSceneTemplates() } while (templates->NextRow()); - TC_LOG_INFO("server.loading", ">> Loaded {} scene templates in {} ms.", count, GetMSTimeDiffToNow(oldMSTime)); + TC_LOG_INFO("server.loading", ">> Loaded {} scene templates in {} ms.", _sceneTemplateStore.size(), GetMSTimeDiffToNow(oldMSTime)); } void ObjectMgr::LoadPlayerChoices() @@ -11544,6 +11542,106 @@ void ObjectMgr::LoadPlayerChoicesLocale() } } +void ObjectMgr::LoadUiMapQuestLines() +{ + uint32 oldMSTime = getMSTime(); + + // need for reload case + _uiMapQuestLinesStore.clear(); + + // 0 1 + QueryResult result = WorldDatabase.Query("SELECT UiMapId, QuestLineId FROM ui_map_quest_line"); + + if (!result) + { + TC_LOG_INFO("server.loading", ">> Loaded 0 questlines for UIMaps. DB table `ui_map_quest_line` is empty!"); + return; + } + + uint32 count = 0; + + do + { + Field* fields = result->Fetch(); + + uint32 uiMapId = fields[0].GetUInt32(); + uint32 questLineId = fields[1].GetUInt32(); + + if (!sUiMapStore.HasRecord(uiMapId)) + { + TC_LOG_ERROR("sql.sql", "Table `ui_map_quest_line` references non-existing UIMap {}, skipped", uiMapId); + continue; + } + + if (!sDB2Manager.GetQuestsForQuestLine(questLineId)) + { + TC_LOG_ERROR("sql.sql", "Table `ui_map_quest_line` references empty or non-existing questline {}, skipped", questLineId); + continue; + } + + _uiMapQuestLinesStore[uiMapId].push_back(questLineId); + ++count; + + } while (result->NextRow()); + + TC_LOG_INFO("server.loading", ">> Loaded {} UiMap questlines definitions in {} ms", count, GetMSTimeDiffToNow(oldMSTime)); +} + +std::vector const* ObjectMgr::GetUiMapQuestLinesList(uint32 uiMapId) const +{ + return Trinity::Containers::MapGetValuePtr(_uiMapQuestLinesStore, uiMapId); +} + +void ObjectMgr::LoadUiMapQuests() +{ + uint32 oldMSTime = getMSTime(); + + // need for reload case + _uiMapQuestsStore.clear(); + + // 0 1 + QueryResult result = WorldDatabase.Query("SELECT UiMapId, QuestId FROM ui_map_quest"); + + if (!result) + { + TC_LOG_INFO("server.loading", ">> Loaded 0 quests for UIMaps. DB table `ui_map_quest` is empty!"); + return; + } + + uint32 count = 0; + + do + { + Field* fields = result->Fetch(); + + uint32 uiMapId = fields[0].GetUInt32(); + uint32 questId = fields[1].GetUInt32(); + + if (!sUiMapStore.HasRecord(uiMapId)) + { + TC_LOG_ERROR("sql.sql", "Table `ui_map_quest` references non-existing UIMap {}, skipped", uiMapId); + continue; + } + + if (!GetQuestTemplate(questId)) + { + TC_LOG_ERROR("sql.sql", "Table `ui_map_quest` references non-existing quest {}, skipped", questId); + continue; + } + + _uiMapQuestsStore[uiMapId].push_back(questId); + ++count; + + } while (result->NextRow()); + + TC_LOG_INFO("server.loading", ">> Loaded {} UiMap quests definitions in {} ms", count, GetMSTimeDiffToNow(oldMSTime)); +} + +std::vector const* ObjectMgr::GetUiMapQuestsList(uint32 uiMapId) const +{ + return Trinity::Containers::MapGetValuePtr(_uiMapQuestsStore, uiMapId); +} + void ObjectMgr::LoadJumpChargeParams() { uint32 oldMSTime = getMSTime(); diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 9a0423daa8caa..32318209a39e7 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -530,6 +530,8 @@ typedef std::unordered_map QuestObjectivesLocaleC typedef std::unordered_map QuestOfferRewardLocaleContainer; typedef std::unordered_map QuestRequestItemsLocaleContainer; typedef std::unordered_map PageTextLocaleContainer; +typedef std::unordered_map> UiMapQuestLinesMap; +typedef std::unordered_map> UiMapQuestsMap; typedef std::unordered_map VehicleSeatAddonContainer; struct GossipMenuItemsLocale @@ -1283,6 +1285,9 @@ class TC_GAME_API ObjectMgr QuestPOIData const* GetQuestPOIData(int32 questId); + std::vector const* GetUiMapQuestLinesList(uint32 uiMapId) const; + std::vector const* GetUiMapQuestsList(uint32 uiMapId) const; + VehicleTemplate const* GetVehicleTemplate(Vehicle* veh) const; VehicleAccessoryList const* GetVehicleAccessoryList(Vehicle* veh) const; @@ -1420,6 +1425,9 @@ class TC_GAME_API ObjectMgr void LoadPlayerChoices(); void LoadPlayerChoicesLocale(); + void LoadUiMapQuestLines(); + void LoadUiMapQuests(); + void LoadJumpChargeParams(); void LoadPhaseNames(); @@ -1957,6 +1965,9 @@ class TC_GAME_API ObjectMgr SceneTemplateContainer _sceneTemplateStore; + UiMapQuestLinesMap _uiMapQuestLinesStore; + UiMapQuestsMap _uiMapQuestsStore; + std::unordered_map _jumpChargeParams; PhaseNameContainer _phaseNameStore; diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index 9a95bd79374db..b6636b1e2461d 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -826,3 +826,38 @@ void WorldSession::HandlePlayerChoiceResponse(WorldPackets::Quest::ChoiceRespons _player->GetReputationMgr().ModifyReputation(sFactionStore.AssertEntry(faction.Id), faction.Quantity); } } + +void WorldSession::HandleUiMapQuestLinesRequest(WorldPackets::Quest::UiMapQuestLinesRequest& uiMapQuestLinesRequest) +{ + UiMapEntry const* uiMap = sUiMapStore.LookupEntry(uiMapQuestLinesRequest.UiMapID); + if (!uiMap) + return; + + WorldPackets::Quest::UiMapQuestLinesResponse response; + response.UiMapID = uiMap->ID; + + if (std::vector const* questLines = sObjectMgr->GetUiMapQuestLinesList(uiMap->ID)) + { + for (uint32 questLineId : *questLines) + { + std::vector const* questLineQuests = sDB2Manager.GetQuestsForQuestLine(questLineId); + if (!questLineQuests) + continue; + + for (QuestLineXQuestEntry const* questLineQuest : *questLineQuests) + if (Quest const* quest = sObjectMgr->GetQuestTemplate(questLineQuest->QuestID)) + if (_player->CanTakeQuest(quest, false)) + response.QuestLineXQuestIDs.push_back(questLineQuest->ID); + } + } + + if (std::vector const* quests = sObjectMgr->GetUiMapQuestsList(uiMap->ID)) + { + for (uint32 questId : *quests) + if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId)) + if (_player->CanTakeQuest(quest, false)) + response.QuestIDs.push_back(questId); + } + + SendPacket(response.Write()); +} diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp index 3b63196b7d17a..6c8b9517a7882 100644 --- a/src/server/game/Server/Packets/QuestPackets.cpp +++ b/src/server/game/Server/Packets/QuestPackets.cpp @@ -858,4 +858,24 @@ void ChoiceResponse::Read() _worldPacket >> ResponseIdentifier; IsReroll = _worldPacket.ReadBit(); } + +WorldPacket const* UiMapQuestLinesResponse::Write() +{ + _worldPacket << int32(UiMapID); + _worldPacket << uint32(QuestLineXQuestIDs.size()); + _worldPacket << uint32(QuestIDs.size()); + + for (uint32 const& questLineQuestID : QuestLineXQuestIDs) + _worldPacket << uint32(questLineQuestID); + + for (uint32 const& questID : QuestIDs) + _worldPacket << uint32(questID); + + return &_worldPacket; +} + +void UiMapQuestLinesRequest::Read() +{ + _worldPacket >> UiMapID; +} } diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h index 2e295a44b9bcb..2fb56be4c3f72 100644 --- a/src/server/game/Server/Packets/QuestPackets.h +++ b/src/server/game/Server/Packets/QuestPackets.h @@ -788,6 +788,28 @@ namespace WorldPackets int32 ResponseIdentifier = 0; bool IsReroll = false; }; + + class UiMapQuestLinesResponse final : public ServerPacket + { + public: + UiMapQuestLinesResponse() : ServerPacket(SMSG_UI_MAP_QUEST_LINES_RESPONSE, 4) { } + + WorldPacket const* Write() override; + + int32 UiMapID = 0; + std::vector QuestLineXQuestIDs; + std::vector QuestIDs; + }; + + class UiMapQuestLinesRequest final : public ClientPacket + { + public: + UiMapQuestLinesRequest(WorldPacket&& packet) : ClientPacket(CMSG_UI_MAP_QUEST_LINES_REQUEST, std::move(packet)) { } + + void Read() override; + + int32 UiMapID = 0; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 82e261ff5bfe4..29bc0765015ab 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -981,7 +981,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_TRANSMOGRIFY_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTransmogrifyItems); DEFINE_HANDLER(CMSG_TURN_IN_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTurnInPetition); DEFINE_HANDLER(CMSG_TUTORIAL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTutorialFlag); - DEFINE_HANDLER(CMSG_UI_MAP_QUEST_LINES_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_UI_MAP_QUEST_LINES_REQUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleUiMapQuestLinesRequest); DEFINE_HANDLER(CMSG_UNACCEPT_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUnacceptTradeOpcode); DEFINE_HANDLER(CMSG_UNDELETE_CHARACTER, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharUndeleteOpcode); DEFINE_HANDLER(CMSG_UNLEARN_SKILL, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleUnlearnSkillOpcode); @@ -2161,7 +2161,7 @@ void OpcodeTable::InitializeServerOpcodes() DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRIGGER_MOVIE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_TURN_IN_PETITION_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_TUTORIAL_FLAGS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UI_MAP_QUEST_LINES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UI_MAP_QUEST_LINES_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNDELETE_CHARACTER_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNLEARNED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 1b61d60b027b9..1c3052a3f8a2f 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -674,6 +674,7 @@ namespace WorldPackets class PushQuestToParty; class RequestWorldQuestUpdate; class ChoiceResponse; + class UiMapQuestLinesRequest; } namespace RaF @@ -1566,6 +1567,7 @@ class TC_GAME_API WorldSession void HandleQuestPushResult(WorldPackets::Quest::QuestPushResult& packet); void HandleRequestWorldQuestUpdate(WorldPackets::Quest::RequestWorldQuestUpdate& packet); void HandlePlayerChoiceResponse(WorldPackets::Quest::ChoiceResponse& choiceResponse); + void HandleUiMapQuestLinesRequest(WorldPackets::Quest::UiMapQuestLinesRequest& uiMapQuestLinesRequest); void HandleChatMessageOpcode(WorldPackets::Chat::ChatMessage& chatMessage); void HandleChatMessageWhisperOpcode(WorldPackets::Chat::ChatMessageWhisper& chatMessageWhisper); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 5321f6c476b3a..2ec553204c7f5 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2197,6 +2197,13 @@ bool World::SetInitialWorldSettings() TC_LOG_INFO("server.loading", "Loading Player Choices Locales..."); sObjectMgr->LoadPlayerChoicesLocale(); } + + TC_LOG_INFO("server.loading", "Loading UIMap questlines..."); + sObjectMgr->LoadUiMapQuestLines(); + + TC_LOG_INFO("server.loading", "Loading UIMap quests..."); + sObjectMgr->LoadUiMapQuests(); + TC_LOG_INFO("server.loading", "Loading Jump Charge Params..."); sObjectMgr->LoadJumpChargeParams();