diff --git a/data/sql/updates/db_world/2024_02_19_00.sql b/data/sql/updates/db_world/2024_02_19_00.sql new file mode 100644 index 000000000..ec963fdd8 --- /dev/null +++ b/data/sql/updates/db_world/2024_02_19_00.sql @@ -0,0 +1,93 @@ +-- DB update 2024_02_18_08 -> 2024_02_19_00 +-- Update gameobject 'Subway Bench' with sniffed values +DELETE FROM `gameobject` WHERE (`id` IN (176099, 176101, 176005, 176035, 176102, 176079, 176065, 176037, 176038, 176039, 176041, 176042, 176043, 176044, 176047, 176048, 176049, 176050, 176051, 176052, 176059, 176060, 176061, 176062, 176063, 176064, 176066, 176067, 176068, 176069, 176070, 176072, 176073, 176074, 176075, 176076, 176054, 176055, 176056, 176057, 176058, 176004, 176006, 176007, 176008, 176010, 176029, 176030, 176031, 176011, 176012, 176014, 176015, 176016, 176018, 176019, 176020, 176034, 176071, 176023, 176021, 176024, 176026, 176027, 176028, 176098, 176033, 176103, 176104, 176105, 176107, 176108, 176109, 176106, 176053, 176013, 176032, 176100, 176036, 176045, 176017, 176025, 176077, 176078, 176022, 176040, 176046, 176009)) +AND (`guid` IN (18714, 18715, 18716, 18717, 18718, 18719, 18720, 18721, 18722, 18723, 18724, 18725, 18726, 18727, 18728, 18729, 18730, 18731, 18732, 18733, 18734, 18735, 18736, 18737, 18738, 18739, 18740, 18741, 18742, 18743, 18744, 18745, 18746, 18747, 18748, 18749, 18750, 18751, 18752, 18753, 18754, 18755, 18756, 18757, 18758, 18759, 18760, 18761, 18762, 18763, 18764, 18765, 18766, 18767, 18768, 18769, 18770, 18771, 18772, 18773, 18774, 18775, 18776, 18777, 18778, 18779, 18780, 18781, 18782, 18783, 18784, 18785, 18786, 18787, 18788, 18789, 18790, 18791, 18792, 18793, 18794, 18795, 18796, 18797, 18798, 18799, 18800, 18801)); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`, `Comment`) VALUES +(18714, 176099, 369, 0, 0, 1, 1, -20.0785636901855468, 2507.38671875, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18715, 176101, 369, 0, 0, 1, 1, -20.6658859252929687, 2474.819091796875, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18716, 176005, 369, 0, 0, 1, 1, 23.34437751770019531, 2507.95458984375, -4.29467678070068359, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18717, 176035, 369, 0, 0, 1, 1, -80.7746658325195312, 2467.784423828125, -4.2946782112121582, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18718, 176102, 369, 0, 0, 1, 1, -20.5701122283935546, 2480.457275390625, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 50063, NULL), +(18719, 176079, 369, 0, 0, 1, 1, -19.9825801849365234, 31.24375534057617187, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18720, 176065, 369, 0, 0, 1, 1, 39.74332809448242187, 20.39353370666503906, -4.29485082626342773, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18721, 176037, 369, 0, 0, 1, 1, -64.24798583984375, -7.22164678573608398, -4.29484987258911132, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18722, 176038, 369, 0, 0, 1, 1, -64.3970184326171875, -3.87008070945739746, -4.29485082626342773, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18723, 176039, 369, 0, 0, 1, 1, -64.24798583984375, 25.16312217712402343, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18724, 176041, 369, 0, 0, 1, 1, -64.5701828002929687, 21.82544898986816406, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18725, 176042, 369, 0, 0, 1, 1, -61.4574661254882812, -0.54629933834075927, -4.29484987258911132, 6.073748111724853515, 0, 0, -0.10452747344970703, 0.994521975517272949, 7200, 255, 1, "", 48632, NULL), +(18726, 176043, 369, 0, 0, 1, 1, -61.6541748046875, -13.847513198852539, -4.29485082626342773, 0.078540004789829254, 0, 0, 0.039259910583496093, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18727, 176044, 369, 0, 0, 1, 1, -61.6541824340820312, 19.00144386291503906, -4.29485082626342773, 0.078540004789829254, 0, 0, 0.039259910583496093, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18728, 176047, 369, 0, 0, 1, 1, -80.7328872680664062, -13.5812406539916992, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18729, 176048, 369, 0, 0, 1, 1, -80.6051559448242187, -1.02612006664276123, -4.29485082626342773, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18730, 176049, 369, 0, 0, 1, 1, -80.6051559448242187, 31.44610595703125, -4.29485082626342773, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18731, 176050, 369, 0, 0, 1, 1, -80.6371231079101562, 24.5290069580078125, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18732, 176051, 369, 0, 0, 1, 1, -80.7328948974609375, 18.89097785949707031, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18733, 176052, 369, 0, 0, 1, 1, 23.58512687683105468, -3.82999277114868164, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18734, 176059, 369, 0, 0, 1, 1, 20.66911888122558593, -0.54201221466064453, -4.29484987258911132, 3.220161199569702148, 0, 0, -0.99922847747802734, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18735, 176060, 369, 0, 0, 1, 1, 20.23476791381835937, 31.25052070617675781, -4.29485082626342773, 3.220161199569702148, 0, 0, -0.99922847747802734, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18736, 176061, 369, 0, 0, 1, 1, 20.03804969787597656, 17.94952011108398437, -4.29485082626342773, 2.932138919830322265, 0, 0, 0.994521141052246093, 0.104535527527332305, 7200, 255, 1, "", 48632, NULL), +(18737, 176062, 369, 0, 0, 1, 1, 39.66382598876953125, -6.26683759689331054, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18738, 176063, 369, 0, 0, 1, 1, 39.7595977783203125, -0.62903255224227905, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18739, 176064, 369, 0, 0, 1, 1, 39.63185501098632812, -13.1841583251953125, -4.29485082626342773, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18740, 176066, 369, 0, 0, 1, 1, 39.77528762817382812, 27.31063461303710937, -4.29484987258911132, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18741, 176067, 369, 0, 0, 1, 1, 39.87105941772460937, 32.9486541748046875, -4.29485177993774414, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18742, 176068, 369, 0, 0, 1, 1, -17.0512046813964843, 24.52901268005371093, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18743, 176069, 369, 0, 0, 1, 1, -17.1469802856445312, 18.89098358154296875, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18744, 176070, 369, 0, 0, 1, 1, -17.0192394256591796, 31.44611167907714843, -4.29485082626342773, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18745, 176072, 369, 0, 0, 1, 1, -20.569894790649414, -1.32353782653808593, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18746, 176073, 369, 0, 0, 1, 1, -20.6976299285888671, -13.8786678314208984, -4.29485082626342773, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18747, 176074, 369, 0, 0, 1, 1, -17.6736469268798828, -1.0261164903640747, -4.29485082626342773, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18748, 176075, 369, 0, 0, 1, 1, -17.7056179046630859, -7.94343137741088867, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18749, 176076, 369, 0, 0, 1, 1, -17.8013839721679687, -13.5812368392944335, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18750, 176054, 369, 0, 0, 1, 1, 23.41197013854980468, -10.5194435119628906, -4.29485082626342773, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18751, 176055, 369, 0, 0, 1, 1, 22.82857131958007812, 25.08884620666503906, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18752, 176056, 369, 0, 0, 1, 1, 22.97760581970214843, 21.73728561401367187, -4.29484987258911132, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18753, 176057, 369, 0, 0, 1, 1, 23.15076255798339843, 28.42651939392089843, -4.29484987258911132, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18754, 176058, 369, 0, 0, 1, 1, 20.47241783142089843, -13.8432302474975585, -4.29484987258911132, 2.932138919830322265, 0, 0, 0.994521141052246093, 0.104535527527332305, 7200, 255, 1, "", 48632, NULL), +(18755, 176004, 369, 0, 0, 1, 1, 23.66657257080078125, 2511.29248046875, -4.29467678070068359, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18756, 176006, 369, 0, 0, 1, 1, 23.49341583251953125, 2504.60302734375, -4.29467678070068359, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 50063, NULL), +(18757, 176007, 369, 0, 0, 1, 1, 23.34438133239746093, 2475.56982421875, -4.29467678070068359, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18758, 176008, 369, 0, 0, 1, 1, 23.49341964721679687, 2472.21826171875, -4.29467678070068359, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18759, 176010, 369, 0, 0, 1, 1, 20.553863525390625, 2501.279296875, -4.29467678070068359, 2.932138919830322265, 0, 0, 0.994521141052246093, 0.104535527527332305, 7200, 255, 1, "", 50063, NULL), +(18760, 176029, 369, 0, 0, 1, 1, -60.9416580200195312, 2482.783447265625, -4.29467678070068359, 6.073748111724853515, 0, 0, -0.10452747344970703, 0.994521975517272949, 7200, 255, 1, "", 48632, NULL), +(18761, 176030, 369, 0, 0, 1, 1, -80.5674285888671875, 2506.999755859375, -4.2946782112121582, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18762, 176031, 369, 0, 0, 1, 1, -80.6632003784179687, 2501.362060546875, -4.2946782112121582, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18763, 176011, 369, 0, 0, 1, 1, 20.75057029724121093, 2514.58056640625, -4.29467678070068359, 3.220161199569702148, 0, 0, -0.99922847747802734, 0.039274025708436965, 7200, 255, 1, "", 50063, NULL), +(18764, 176012, 369, 0, 0, 1, 1, 20.75057411193847656, 2481.731689453125, -4.29467678070068359, 3.220161199569702148, 0, 0, -0.99922847747802734, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18765, 176014, 369, 0, 0, 1, 1, 39.73351669311523437, 2508.676513671875, -4.29467678070068359, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 50063, NULL), +(18766, 176015, 369, 0, 0, 1, 1, 39.82928848266601562, 2514.314208984375, -4.2946782112121582, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 50063, NULL), +(18767, 176016, 369, 0, 0, 1, 1, 39.7015533447265625, 2501.759033203125, -4.29467678070068359, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18768, 176018, 369, 0, 0, 1, 1, 39.73351669311523437, 2476.2041015625, -4.29467678070068359, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 50063, NULL), +(18769, 176019, 369, 0, 0, 1, 1, 39.82928848266601562, 2481.842041015625, -4.2946782112121582, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 50063, NULL), +(18770, 176020, 369, 0, 0, 1, 1, -64.4887313842773437, 2504.56298828125, -4.29467678070068359, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18771, 176034, 369, 0, 0, 1, 1, -80.6789016723632812, 2473.42236328125, -4.29467678070068359, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18772, 176071, 369, 0, 0, 1, 1, -20.6656684875488281, -6.96156692504882812, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18773, 176023, 369, 0, 0, 1, 1, -63.732177734375, 2475.64404296875, -4.29467678070068359, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18774, 176021, 369, 0, 0, 1, 1, -64.166534423828125, 2507.90087890625, -4.29467582702636718, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18775, 176024, 369, 0, 0, 1, 1, -63.8812141418457031, 2478.99560546875, -4.29467678070068359, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18776, 176026, 369, 0, 0, 1, 1, -61.3760223388671875, 2514.576171875, -4.29467582702636718, 6.073748111724853515, 0, 0, -0.10452747344970703, 0.994521975517272949, 7200, 255, 1, "", 48632, NULL), +(18777, 176027, 369, 0, 0, 1, 1, -61.5727272033691406, 2501.27490234375, -4.29467582702636718, 0.078540004789829254, 0, 0, 0.039259910583496093, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18778, 176028, 369, 0, 0, 1, 1, -61.1383819580078125, 2469.482421875, -4.29467678070068359, 0.078540004789829254, 0, 0, 0.039259910583496093, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18779, 176098, 369, 0, 0, 1, 1, -19.9827995300292968, 2513.024658203125, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 50063, NULL), +(18780, 176033, 369, 0, 0, 1, 1, -80.6469268798828125, 2480.33935546875, -4.29467678070068359, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18781, 176103, 369, 0, 0, 1, 1, -20.6978473663330078, 2467.90185546875, -4.29485082626342773, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18782, 176104, 369, 0, 0, 1, 1, -17.7058334350585937, 2473.83740234375, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18783, 176105, 369, 0, 0, 1, 1, -17.8016014099121093, 2468.19970703125, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18784, 176107, 369, 0, 0, 1, 1, -17.1471996307373046, 2500.671630859375, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18785, 176108, 369, 0, 0, 1, 1, -17.0514240264892578, 2506.3095703125, -4.29484987258911132, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18786, 176109, 369, 0, 0, 1, 1, -17.6738643646240234, 2480.75439453125, -4.29485082626342773, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18787, 176106, 369, 0, 0, 1, 1, -17.0194587707519531, 2513.22705078125, -4.29485082626342773, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 50063, NULL), +(18788, 176053, 369, 0, 0, 1, 1, 23.26293182373046875, -7.16788291931152343, -4.29484987258911132, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18789, 176013, 369, 0, 0, 1, 1, 20.55386543273925781, 2468.4306640625, -4.29467678070068359, 2.932138919830322265, 0, 0, 0.994521141052246093, 0.104535527527332305, 7200, 255, 1, "", 48632, NULL), +(18790, 176032, 369, 0, 0, 1, 1, -80.53546142578125, 2513.917236328125, -4.29467678070068359, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18791, 176100, 369, 0, 0, 1, 1, -20.11053466796875, 2500.469482421875, -4.29485082626342773, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18792, 176036, 369, 0, 0, 1, 1, -64.5701751708984375, -10.5595359802246093, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18793, 176045, 369, 0, 0, 1, 1, -61.4574775695800781, 32.3024444580078125, -4.29485082626342773, 6.073748111724853515, 0, 0, -0.10452747344970703, 0.994521975517272949, 7200, 255, 1, "", 48632, NULL), +(18794, 176017, 369, 0, 0, 1, 1, 39.70154953002929687, 2469.286865234375, -4.29467678070068359, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18795, 176025, 369, 0, 0, 1, 1, -64.0543670654296875, 2472.306396484375, -4.29467678070068359, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18796, 176077, 369, 0, 0, 1, 1, -20.1103172302246093, 18.688629150390625, -4.29485082626342773, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 7200, 255, 1, "", 48632, NULL), +(18797, 176078, 369, 0, 0, 1, 1, -20.0783462524414062, 25.60594749450683593, -4.29485082626342773, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL), +(18798, 176022, 369, 0, 0, 1, 1, -64.315582275390625, 2511.25244140625, -4.29467678070068359, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18799, 176040, 369, 0, 0, 1, 1, -64.3970260620117187, 28.51468658447265625, -4.29484987258911132, 6.204645633697509765, 0, 0, -0.03925991058349609, 0.999229073524475097, 7200, 255, 1, "", 48632, NULL), +(18800, 176046, 369, 0, 0, 1, 1, -80.6371231079101562, -7.9434361457824707, -4.29485082626342773, 0, 0, 0, 0, 1, 7200, 255, 1, "", 48632, NULL), +(18801, 176009, 369, 0, 0, 1, 1, 23.66657638549804687, 2478.907470703125, -4.29467678070068359, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, "", 48632, NULL); diff --git a/data/sql/updates/db_world/2024_02_20_00.sql b/data/sql/updates/db_world/2024_02_20_00.sql new file mode 100644 index 000000000..1f0de8c6f --- /dev/null +++ b/data/sql/updates/db_world/2024_02_20_00.sql @@ -0,0 +1,7 @@ +-- DB update 2024_02_19_00 -> 2024_02_20_00 +-- remove faulty cages with unsniffed posis +DELETE FROM `gameobject` WHERE `id` = 185952 AND `guid` IN (265632, 265651, 265656, 265661, 265685, 265896, 266592, 266807, 267674, 267748, 268069, 268937); +-- add new correct cage from sniff +DELETE FROM `gameobject` WHERE `id` = 185474 AND `guid` = 265632; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`, `Comment`) VALUES +(265632, 185474, 548, 0, 0, 1, 1, 451.26233, -544.8354, -7.546607, 4.8345633, 0, 0, 0.7, -0.7, 300, 0, 1, '', 50791, NULL); diff --git a/data/sql/updates/db_world/2024_02_20_01.sql b/data/sql/updates/db_world/2024_02_20_01.sql new file mode 100644 index 000000000..9b0d5aa0d --- /dev/null +++ b/data/sql/updates/db_world/2024_02_20_01.sql @@ -0,0 +1,36 @@ +-- DB update 2024_02_20_00 -> 2024_02_20_01 +-- +DELETE FROM `waypoints` WHERE `entry` = 774400; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(774400, 1, 399.62225, -2118.7478, 131.91774, NULL, 0), +(774400, 2, 398.37225, -2113.7478, 131.91774, NULL, 0), +(774400, 3, 398.12225, -2112.4978, 131.91774, NULL, 0), +(774400, 4, 396.62225, -2104.7478, 131.91774, NULL, 0), +(774400, 5, 396.1905, -2103.1377, 131.79202, NULL, 0), +(774400, 6, 395.4405, -2100.6377, 131.79202, NULL, 0), +(774400, 7, 394.1905, -2094.1377, 131.79202, NULL, 0), +(774400, 8, 393.6905, -2092.3877, 131.79202, NULL, 0), +(774400, 9, 393.22336, -2090.4102, 131.73431, NULL, 0), +(774400, 10, 392.72336, -2089.1602, 131.73431, NULL, 0), +(774400, 11, 392.47336, -2087.9102, 131.73431, NULL, 0), +(774400, 12, 392.22336, -2086.9102, 131.73431, NULL, 0), +(774400, 13, 390.91733, -2081.4263, 131.80086, NULL, 0), +(774400, 14, 391.84827, -2085.3342, 131.70673, NULL, 0), +(774400, 15, 392.43378, -2087.0466, 131.93723, NULL, 0), +(774400, 16, 393.18378, -2089.5466, 131.93723, NULL, 0), +(774400, 17, 393.43378, -2090.7966, 131.93723, NULL, 0), +(774400, 18, 393.68378, -2092.2966, 131.93723, NULL, 0), +(774400, 19, 393.93378, -2093.7966, 131.93723, NULL, 0), +(774400, 20, 394.68378, -2097.0466, 131.93723, NULL, 0), +(774400, 21, 395.69, -2100.9307, 131.91774, NULL, 0), +(774400, 22, 396.44, -2103.4307, 131.91774, NULL, 0), +(774400, 23, 396.69, -2104.4307, 131.91774, NULL, 0), +(774400, 24, 398.19, -2112.4307, 131.91774, NULL, 0), +(774400, 25, 398.19, -2113.1807, 131.91774, NULL, 0), +(774400, 26, 398.44, -2113.9307, 131.91774, NULL, 0), +(774400, 27, 399.44, -2118.6807, 131.91774, NULL, 0), +(774400, 28, 399.72522, -2119.7366, 131.66774, NULL, 0); + +DELETE FROM `smart_scripts` WHERE `entryorguid` = 7744 AND `id` = 2 AND `source_type` = 0; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(7744, 0, 2, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 0, 53, 0, 774400, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Innkeeper Thulfram - On Respawn - Start waypoint'); diff --git a/data/sql/updates/db_world/2024_02_20_02.sql b/data/sql/updates/db_world/2024_02_20_02.sql new file mode 100644 index 000000000..b562d4517 --- /dev/null +++ b/data/sql/updates/db_world/2024_02_20_02.sql @@ -0,0 +1,31 @@ +-- DB update 2024_02_20_01 -> 2024_02_20_02 +-- +DELETE FROM `smart_scripts` WHERE `entryorguid` = 16977 AND `source_type` = 0; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(16977, 0, 0, 0, 0, 0, 100, 0, 0, 0, 2400, 3800, 0, 0, 11, 20823, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Arch Mage Xintor - In Combat - Cast \'Fireball\''), +(16977, 0, 1, 0, 0, 0, 100, 0, 6000, 8000, 9000, 12000, 0, 0, 11, 15735, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Arch Mage Xintor - In Combat - Cast \'Arcane Missiles\''), +(16977, 0, 2, 0, 2, 0, 100, 1, 0, 50, 0, 0, 0, 0, 11, 33245, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Arch Mage Xintor - Between 0-50% Health - Cast \'Ice Barrier\' (No Repeat)'), +(16977, 0, 3, 0, 2, 0, 100, 1, 0, 15, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Arch Mage Xintor - Between 0-15% Health - Flee For Assist (No Repeat)'), +(16977, 0, 4, 0, 1, 0, 100, 0, 300000, 300000, 300000, 300000, 0, 0, 66, 0, 0, 0, 0, 0, 0, 10, 86053, 0, 0, 0, 0, 0, 0, 0, 'Arch Mage Xintor - OOC - Face target dummy'), +(16977, 0, 5, 0, 1, 0, 100, 0, 302000, 302000, 300000, 300000, 0, 0, 11, 29458, 0, 0, 0, 0, 0, 10, 86053, 0, 0, 0, 0, 0, 0, 0, 'Arch Mage Xintor - OOC - Cast \'Blizzard\''), +(16977, 0, 7, 0, 1, 0, 100, 0, 316000, 316000, 300000, 300000, 0, 0, 66, 0, 0, 0, 0, 0, 0, 10, 86056, 0, 0, 0, 0, 0, 0, 0, 'Arch Mage Xintor - OOC - Face target dummy'), +(16977, 0, 8, 0, 1, 0, 100, 0, 317000, 317000, 300000, 300000, 0, 0, 11, 29459, 0, 0, 0, 0, 0, 10, 86056, 0, 0, 0, 0, 0, 0, 0, 'Arch Mage Xintor - OOC - Cast \'Pyroblast\''), +(16977, 0, 9, 0, 1, 0, 100, 0, 324000, 324000, 300000, 300000, 0, 0, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Arch Mage Xintor - OOC - Face self'); +-- override existing creatures +-- xintor +DELETE FROM `creature` WHERE `guid` = 86049 AND `id1` = 16977; +INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES +(86049, 16977, 0, 0, 530, 0, 0, 1, 1, 1, -1311.5757, 2767.7476, -27.080133, 4.590215682983398437, 60, 0, 0, 5158, 2486, 0, 0, 0, 0, '', 0, 0, NULL); +-- dummies +DELETE FROM `creature` WHERE `guid` IN (86050, 86051, 86052) AND `id1` = 17060; +INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES +(86050, 17060, 0, 0, 530, 0, 0, 1, 1, 0, -1310.3284, 2773.9905, -26.935608, 4.78220224380493164, 120, 0, 0, 1524, 0, 0, 0, 0, 0, '', 52237, 0, NULL), +(86051, 17060, 0, 0, 530, 0, 0, 1, 1, 0, -1309.691, 2772.9463, -26.96556, 4.502949237823486328, 120, 0, 0, 1524, 0, 0, 0, 0, 0, '', 52237, 0, NULL), +(86052, 17060, 0, 0, 530, 0, 0, 1, 1, 0, -1308.7676, 2773.6067, -26.975742, 4.188790321350097656, 120, 0, 0, 1524, 0, 0, 0, 0, 0, '', 52237, 0, NULL); +-- new creatures +DELETE FROM `creature` WHERE `guid` IN (86053, 86054, 86055, 86056) AND `id1` = 17059; +INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES +(86053, 17059, 0, 0, 530, 0, 0, 1, 1, 0, -1315.7537, 2774.218, -26.852127, 5.009094715118408203, 120, 0, 0, 1524, 0, 0, 0, 0, 0, '', 52237, 0, NULL), +(86054, 17059, 0, 0, 530, 0, 0, 1, 1, 0, -1304.5875, 2771.2754, -27.027822, 3.996803998947143554, 120, 0, 0, 1524, 0, 0, 0, 0, 0, '', 52237, 0, NULL), +(86055, 17059, 0, 0, 530, 0, 0, 1, 1, 0, -1321.1343, 2771.1653, -26.577145, 5.654866695404052734, 120, 0, 0, 1524, 0, 0, 0, 0, 0, '', 52237, 0, NULL), +(86056, 17059, 0, 0, 530, 0, 0, 1, 1, 0, -1309.4927, 2774.1555, -26.953941, 4.363323211669921875, 120, 0, 0, 1524, 0, 0, 0, 0, 0, '', 52237, 0, NULL); diff --git a/data/sql/updates/db_world/2024_02_20_03.sql b/data/sql/updates/db_world/2024_02_20_03.sql new file mode 100644 index 000000000..df94c63db --- /dev/null +++ b/data/sql/updates/db_world/2024_02_20_03.sql @@ -0,0 +1,3 @@ +-- DB update 2024_02_20_02 -> 2024_02_20_03 +-- +UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask` |33554432 WHERE `entry` = 20041; diff --git a/data/sql/updates/db_world/2024_02_20_04.sql b/data/sql/updates/db_world/2024_02_20_04.sql new file mode 100644 index 000000000..31bd766e0 --- /dev/null +++ b/data/sql/updates/db_world/2024_02_20_04.sql @@ -0,0 +1,3 @@ +-- DB update 2024_02_20_03 -> 2024_02_20_04 +-- Remove link to non-existing entry from SAI 17671 +UPDATE `smart_scripts` SET `link` = 0 WHERE `entryorguid` = 17671 AND `source_type` = 0 AND `id` = 0; diff --git a/data/sql/updates/db_world/2024_02_20_05.sql b/data/sql/updates/db_world/2024_02_20_05.sql new file mode 100644 index 000000000..185df7cd3 --- /dev/null +++ b/data/sql/updates/db_world/2024_02_20_05.sql @@ -0,0 +1,4 @@ +-- DB update 2024_02_20_04 -> 2024_02_20_05 +-- Wand of Holiday Cheer +DELETE FROM `spell_custom_attr` WHERE `spell_id`=26074; +INSERT INTO `spell_custom_attr` (`spell_id`, `attributes`) VALUES (26074, 128); diff --git a/data/sql/updates/db_world/2024_02_21_00.sql b/data/sql/updates/db_world/2024_02_21_00.sql new file mode 100644 index 000000000..19e3cda6f --- /dev/null +++ b/data/sql/updates/db_world/2024_02_21_00.sql @@ -0,0 +1,10 @@ +-- DB update 2024_02_20_05 -> 2024_02_21_00 +-- +UPDATE `gameobject` SET `spawntimesecs` = 300 WHERE `id` = 185913 AND `guid` IN (14146, 14147, 14217, 14227, 14694, 14731, 14989); +UPDATE `gameobject` SET `spawntimesecs` = 900 WHERE `id` = 185928 AND `guid` = 14141; + +DELETE FROM `smart_scripts` WHERE `entryorguid` = 185928 AND `source_type` = 1; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(185928, 1, 0, 1, 62, 0, 100, 0, 8687, 1, 0, 0, 0, 0, 134, 41004, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Terokk summon'), +(185928, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Terokk summon - linked close gossip'), +(185928, 1, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 900, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Terokk summon - despawn'); diff --git a/src/server/database/Database/Implementation/CharacterDatabase.cpp b/src/server/database/Database/Implementation/CharacterDatabase.cpp index 405cf8178..b77fdb2ce 100644 --- a/src/server/database/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/database/Database/Implementation/CharacterDatabase.cpp @@ -532,7 +532,7 @@ void CharacterDatabaseConnection::DoPrepareStatements() PrepareStatement(CHAR_DEL_CHAR_ACTION_EXCEPT_SPEC, "DELETE FROM character_action WHERE spec<>? AND guid = ?", CONNECTION_ASYNC); // Items that hold loot or money - PrepareStatement(CHAR_SEL_ITEMCONTAINER_ITEMS, "SELECT containerGUID, itemid, count, item_index, randomPropertyId, randomSuffix, follow_loot_rules, freeforall, is_blocked, is_counted, is_underthreshold, needs_quest, conditionLootId FROM item_loot_storage", CONNECTION_SYNCH); + PrepareStatement(CHAR_SEL_ITEMCONTAINER_ITEMS, "SELECT containerGUID, itemid, item_index, count, randomPropertyId, randomSuffix, follow_loot_rules, freeforall, is_blocked, is_counted, is_underthreshold, needs_quest, conditionLootId FROM item_loot_storage", CONNECTION_SYNCH); PrepareStatement(CHAR_DEL_ITEMCONTAINER_SINGLE_ITEM, "DELETE FROM item_loot_storage WHERE containerGUID = ? AND itemid = ? AND count = ? AND item_index = ? LIMIT 1", CONNECTION_ASYNC); PrepareStatement(CHAR_INS_ITEMCONTAINER_SINGLE_ITEM, "INSERT INTO item_loot_storage (containerGUID, itemid, item_index, count, randomPropertyId, randomSuffix, follow_loot_rules, freeforall, is_blocked, is_counted, is_underthreshold, needs_quest, conditionLootId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_ITEMCONTAINER_CONTAINER, "DELETE FROM item_loot_storage WHERE containerGUID = ?", CONNECTION_ASYNC); diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index bf9b58068..9e4e81470 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -990,6 +990,10 @@ InventoryResult Guild::BankMoveItemData::CanStore(Item* pItem, bool swap) if (pItem->IsSoulBound()) return EQUIP_ERR_CANT_DROP_SOULBOUND; + // Prevent swapping limited duration items into guild bank + if (pItem->GetTemplate()->Duration > 0) + return EQUIP_ERR_ITEMS_CANT_BE_SWAPPED; + // Make sure destination bank tab exists if (m_container >= m_pGuild->_GetPurchasedTabsSize()) return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG; diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp index 655418b48..7307b6e8f 100644 --- a/src/server/game/Handlers/ItemHandler.cpp +++ b/src/server/game/Handlers/ItemHandler.cpp @@ -1346,6 +1346,12 @@ void WorldSession::HandleWrapItemOpcode(WorldPacket& recvData) return; } + if (item->GetTemplate()->Duration > 0) + { + _player->SendEquipError(EQUIP_ERR_UNIQUE_CANT_BE_WRAPPED, item, nullptr); + return; + } + CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction(); CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_GIFT); diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp index 1becfea56..65b1872c6 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp @@ -66,20 +66,14 @@ enum Spells enum Misc { - MAX_ADVISORS = 2, - NPC_SEER_OLUM = 22820, - GO_CAGE = 185952, + GO_CAGE = 185474 }; -const Position advisorsPosition[MAX_ADVISORS] = -{ - { 448.37f, -544.71f, -7.54f, 0.00f }, - { 457.37f, -544.71f, -7.54f, 0.00f } -}; +const Position olumWalk = { 456.17194f, -544.31866f, -7.5470476f, 0.00f }; struct boss_fathomlord_karathress : public BossAI { - boss_fathomlord_karathress(Creature* creature) : BossAI(creature, DATA_FATHOM_LORD_KARATHRESS) { } + boss_fathomlord_karathress(Creature* creature) : BossAI(creature, DATA_FATHOM_LORD_KARATHRESS){ } void Reset() override { @@ -103,16 +97,8 @@ struct boss_fathomlord_karathress : public BossAI void JustSummoned(Creature* summon) override { summons.Summon(summon); - if (summon->GetEntry() == NPC_SEER_OLUM) - { - summon->SetWalk(true); - summon->GetMotionMaster()->MovePoint(0, advisorsPosition[MAX_ADVISORS - 1], false); - } - else - { - summon->Attack(me->GetVictim(), false); - summon->SetInCombatWithZone(); - } + summon->Attack(me->GetVictim(), false); + summon->SetInCombatWithZone(); } void KilledUnit(Unit* /*victim*/) override @@ -132,10 +118,16 @@ struct boss_fathomlord_karathress : public BossAI { Talk(SAY_DEATH); BossAI::JustDied(killer); - me->SummonCreature(NPC_SEER_OLUM, advisorsPosition[MAX_ADVISORS-2], TEMPSUMMON_TIMED_DESPAWN, 3600000); - if (GameObject* gobject = me->FindNearestGameObject(GO_CAGE, 100.0f)) + if (GameObject* cage = me->FindNearestGameObject(GO_CAGE, 100.0f)) { - gobject->SetGoState(GO_STATE_ACTIVE); + cage->SetGoState(GO_STATE_ACTIVE); + } + if (Creature* olum = instance->GetCreature(DATA_SEER_OLUM)) + { + olum->SetWalk(true); + olum->GetMotionMaster()->MovePoint(0, olumWalk, false); + olum->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); + olum->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); } } diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp index 2216201be..53103f73f 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp @@ -37,6 +37,7 @@ ObjectData const creatureData[] = { NPC_LEOTHERAS_THE_BLIND, DATA_LEOTHERAS_THE_BLIND }, { NPC_FATHOM_LORD_KARATHRESS, DATA_FATHOM_LORD_KARATHRESS }, { NPC_LADY_VASHJ, DATA_LADY_VASHJ }, + { NPC_SEER_OLUM, DATA_SEER_OLUM }, { 0, 0 } }; @@ -129,6 +130,10 @@ public: if (Creature* vashj = GetCreature(DATA_LADY_VASHJ)) vashj->AI()->JustSummoned(creature); break; + case NPC_SEER_OLUM: + creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); + creature->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); + break; default: break; } diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h index e9cb570c6..8453d8e37 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h @@ -45,7 +45,8 @@ enum DataTypes DATA_ALIVE_KEEPERS = 22, DATA_BRIDGE_ACTIVATED = 23, DATA_ACTIVATE_SHIELD = 24, - DATA_STRANGE_POOL = 25 + DATA_STRANGE_POOL = 25, + DATA_SEER_OLUM = 26 }; enum SSNPCs @@ -61,6 +62,8 @@ enum SSNPCs NPC_FATHOM_GUARD_TIDALVESS = 21965, NPC_FATHOM_GUARD_CARIBDIS = 21964, + NPC_SEER_OLUM = 22820, + NPC_COILFANG_SHATTERER = 21301, NPC_COILFANG_PRIESTESS = 21220, diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp index 4fa9f1a27..c822eafc9 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -824,6 +824,18 @@ struct npc_capernian : public ScriptedAI me->SetReactState(REACT_PASSIVE); } + void AttackStart(Unit* who) override + { + if (who && who->isTargetableForAttack() && me->GetReactState() != REACT_PASSIVE) + { + if (me->Attack(who, false)) + { + me->GetMotionMaster()->MoveChase(who, 45.0f, 0); + me->AddThreat(who, 0.0f); + } + } + } + void JustEngagedWith(Unit* /*who*/) override { if (!_hasDied) @@ -831,7 +843,17 @@ struct npc_capernian : public ScriptedAI Talk(SAY_CAPERNIAN_AGGRO); } ScheduleTimedEvent(0ms, [&]{ - DoCastVictim(SPELL_CAPERNIAN_FIREBALL); + + if (!me->CanCastSpell(SPELL_CAPERNIAN_FIREBALL)) + { + me->ResumeChasingVictim(); + } + else + { + me->GetMotionMaster()->MoveChase(me->GetVictim(), 45.0f); + DoCastVictim(SPELL_CAPERNIAN_FIREBALL); + } + }, 2500ms); ScheduleTimedEvent(7000ms, 10000ms, [&]{ DoCastRandomTarget(SPELL_CONFLAGRATION, 0, 30.0f); @@ -961,7 +983,7 @@ struct npc_thaladred : public ScriptedAI ScheduleTimedEvent(100ms, [&] { DoResetThreatList(); - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true)) { me->AddThreat(target, 10000000.0f); Talk(EMOTE_THALADRED_FIXATE, target); diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp index b9a183576..b24b227e8 100644 --- a/src/server/scripts/Outland/zone_terokkar_forest.cpp +++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp @@ -632,24 +632,33 @@ public: return true; } - void SendActionMenu(Player* player, GameObject* /*go*/, uint32 action) + void SendActionMenu(Player* player, GameObject* go, uint32 action) { switch (action) { case GOSSIP_ACTION_INFO_DEF + 1: - player->CastSpell(player, SPELL_SUMMON_GEZZARAK_THE_HUNTRESS, false); + _result = player->CastSpell(player, SPELL_SUMMON_GEZZARAK_THE_HUNTRESS, false); break; case GOSSIP_ACTION_INFO_DEF + 2: - player->CastSpell(player, SPELL_SUMMON_DARKSCREECHER_AKKARAI, false); + _result = player->CastSpell(player, SPELL_SUMMON_DARKSCREECHER_AKKARAI, false); break; case GOSSIP_ACTION_INFO_DEF + 3: - player->CastSpell(player, SPELL_SUMMON_KARROG, false); + _result = player->CastSpell(player, SPELL_SUMMON_KARROG, false); break; case GOSSIP_ACTION_INFO_DEF + 4: - player->CastSpell(player, SPELL_SUMMON_VAKKIZ_THE_WINDRAGER, false); + _result = player->CastSpell(player, SPELL_SUMMON_VAKKIZ_THE_WINDRAGER, false); + break; + default: + _result = SPELL_CAST_OK; break; } + if (_result == SPELL_CAST_OK) + { + go->DespawnOrUnsummon(); + } } +private: + SpellCastResult _result; }; /*######