aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2021_11_21_08_world_2019_01_11_02_world.sql185
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp61
2 files changed, 246 insertions, 0 deletions
diff --git a/sql/updates/world/master/2021_11_21_08_world_2019_01_11_02_world.sql b/sql/updates/world/master/2021_11_21_08_world_2019_01_11_02_world.sql
new file mode 100644
index 00000000000..0b07697c1d1
--- /dev/null
+++ b/sql/updates/world/master/2021_11_21_08_world_2019_01_11_02_world.sql
@@ -0,0 +1,185 @@
+--
+DELETE FROM `creature` WHERE `guid` IN (78189, 78190, 78191, 78192, 78193, 78194, 78195, 78196, 78197, 78198, 78199, 78200, 78201, 78202, 78203, 78204, 78205, 78206) AND `id` = 22254;
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnDifficulties`, `phaseId`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`) VALUES
+(78189, 22254, 530, '0', 0, 0, 1, 2983.507, 6824.114, 369.2811, 2.8405350, 300, 0, 0, 5903, 3309, 2),
+(78190, 22254, 530, '0', 0, 0, 1, 2981.978, 6822.621, 369.3859, 1.3268870, 300, 0, 0, 5903, 3309, 0),
+(78191, 22254, 530, '0', 0, 0, 1, 2990.593, 7066.013, 369.9622, 1.7575140, 300, 0, 0, 5903, 3309, 2),
+(78192, 22254, 530, '0', 0, 0, 1, 2987.222, 7066.950, 370.6992, 6.0254560, 300, 0, 0, 5903, 3309, 0),
+(78193, 22254, 530, '0', 0, 0, 1, 2531.223, 7227.482, 365.3047, 0.4196028, 300, 0, 0, 5903, 3309, 2),
+(78194, 22254, 530, '0', 0, 0, 1, 2529.155, 7230.796, 365.0515, 5.4708870, 300, 0, 0, 5903, 3309, 0),
+(78195, 22254, 530, '0', 0, 0, 1, 2978.465, 6836.519, 374.5891, 0.9250245, 300, 0, 0, 5903, 3309, 0),
+(78196, 22254, 530, '0', 0, 0, 1, 2977.197, 6857.269, 374.7943, 5.6374140, 300, 0, 0, 5903, 3309, 0),
+(78197, 22254, 530, '0', 0, 0, 1, 2997.831, 6857.983, 374.1696, 3.8746310, 300, 0, 0, 5903, 3309, 0),
+(78198, 22254, 530, '0', 0, 0, 1, 2999.865, 6838.990, 374.6720, 2.4260080, 300, 0, 0, 5903, 3309, 0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID` IN (78189,78191,78193);
+INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
+(78189, 78189,0,0,515,0,0),
+(78189, 78190,4,90,515,0,0),
+(78191, 78191,0,0,515,0,0),
+(78191, 78192,4,90,515,0,0),
+(78193, 78193,0,0,515,0,0),
+(78193, 78194,4,90,515,0,0);
+
+UPDATE `creature_template_addon` SET `auras`="40349" WHERE `entry` = 22254;
+DELETE FROM `creature_addon` WHERE guid IN (78195,78196,78197,78198, 78189,78191,78193);
+INSERT INTO `creature_addon` (`guid`, `path_id`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(78195, 0, 8, 16, 0, "40349"),
+(78196, 0, 8, 16, 0, "40349"),
+(78197, 0, 8, 16, 0, "40349"),
+(78198, 0, 8, 16, 0, "40349"),
+(78189, 781890, 0, 4097, 0, "40349"),
+(78191, 781910, 0, 4097, 0, "40349"),
+(78193, 781930, 0, 4097, 0, "40349");
+
+DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_corrupting_plague_aura');
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(40349,'spell_corrupting_plague_aura');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (13) AND `SourceEntry` IN (40350);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,40350,0,0,31,0,3,22175,0,0,0,0,'',''),
+(13,1,40350,0,0,1,0,40350,0,0,1,0,0,'',''),
+(13,1,40350,0,1,31,0,3,22180,0,0,0,0,'',''),
+(13,1,40350,0,1,1,0,40350,0,0,1,0,0,'',''),
+(13,1,40350,0,2,31,0,3,22181,0,0,0,0,'',''),
+(13,1,40350,0,2,1,0,40350,0,0,1,0,0,'','');
+
+UPDATE `creature_addon` SET `auras`="" WHERE `auras`="36274";
+
+DELETE FROM `waypoint_data` WHERE `id` IN (781890,781910,781930);
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`action`, `action_chance`) VALUES
+(781890, 1, 2963.150, 6830.435, 369.3087, 0, 0, 100),
+(781890, 2, 2953.963, 6852.830, 370.1349, 0, 0, 100),
+(781890, 3, 2929.518, 6866.475, 364.4159, 0, 0, 100),
+(781890, 4, 2922.781, 6895.402, 363.9766, 0, 0, 100),
+(781890, 5, 2909.803, 6933.845, 364.6512, 0, 0, 100),
+(781890, 6, 2909.183, 6966.321, 366.3395, 0, 0, 100),
+(781890, 7, 2890.743, 6995.777, 364.9575, 0, 0, 100),
+(781890, 8, 2883.787, 7019.513, 363.9031, 0, 0, 100),
+(781890, 9, 2873.593, 7052.575, 364.5892, 0, 0, 100),
+(781890, 10, 2841.949, 7078.371, 365.9940, 0, 0, 100),
+(781890, 11, 2832.980, 7083.752, 365.7486, 0, 0, 100),
+(781890, 12, 2799.281, 7070.557, 364.5858, 0, 0, 100),
+(781890, 13, 2766.768, 7043.603, 364.6199, 0, 0, 100),
+(781890, 14, 2732.575, 7032.596, 364.8039, 0, 0, 100),
+(781890, 15, 2690.031, 7039.660, 365.4325, 0, 0, 100),
+(781890, 16, 2651.026, 7027.421, 366.9853, 0, 0, 100),
+(781890, 17, 2615.132, 7024.608, 366.9565, 0, 0, 100),
+(781890, 18, 2585.892, 7045.931, 363.1883, 0, 0, 100),
+(781890, 19, 2557.309, 7086.285, 365.9778, 0, 0, 100),
+(781890, 20, 2515.624, 7113.438, 365.0044, 0, 0, 100),
+(781890, 21, 2557.309, 7086.285, 365.9778, 0, 0, 100),
+(781890, 22, 2585.892, 7045.931, 363.1883, 0, 0, 100),
+(781890, 23, 2614.931, 7024.662, 366.9565, 0, 0, 100),
+(781890, 24, 2651.026, 7027.421, 366.9853, 0, 0, 100),
+(781890, 25, 2690.031, 7039.660, 365.4325, 0, 0, 100),
+(781890, 26, 2732.443, 7032.605, 364.7753, 0, 0, 100),
+(781890, 27, 2766.768, 7043.603, 364.6199, 0, 0, 100),
+(781890, 28, 2799.281, 7070.557, 364.5858, 0, 0, 100),
+(781890, 29, 2832.980, 7083.752, 365.7486, 0, 0, 100),
+(781890, 30, 2841.949, 7078.371, 365.9940, 0, 0, 100),
+(781890, 31, 2873.593, 7052.575, 364.5892, 0, 0, 100),
+(781890, 32, 2883.787, 7019.513, 363.9031, 0, 0, 100),
+(781890, 33, 2890.743, 6995.777, 364.9575, 0, 0, 100),
+(781890, 34, 2909.183, 6966.321, 366.3395, 0, 0, 100),
+(781890, 35, 2909.803, 6933.845, 364.6512, 0, 0, 100),
+(781890, 36, 2922.781, 6895.402, 363.9766, 0, 0, 100),
+(781890, 37, 2929.265, 6866.625, 364.3651, 0, 0, 100),
+(781890, 38, 2953.710, 6852.980, 370.0587, 0, 0, 100),
+(781890, 39, 2963.150, 6830.435, 369.3087, 0, 0, 100),
+(781890, 40, 2985.457, 6809.223, 369.9144, 0, 0, 100),
+(781910, 1, 2985.815, 7091.293, 364.5135, 0, 0, 100),
+(781910, 2, 2973.732, 7122.678, 364.5023, 0, 0, 100),
+(781910, 3, 2955.025, 7158.275, 365.1906, 0, 0, 100),
+(781910, 4, 2930.228, 7183.777, 365.9407, 0, 0, 100),
+(781910, 5, 2899.416, 7200.719, 365.5310, 0, 0, 100),
+(781910, 6, 2854.457, 7221.858, 365.7168, 0, 0, 100),
+(781910, 7, 2816.835, 7215.760, 364.7676, 0, 0, 100),
+(781910, 8, 2774.666, 7210.746, 364.7010, 0, 0, 100),
+(781910, 9, 2750.288, 7205.353, 366.4631, 0, 0, 100),
+(781910, 10, 2717.749, 7208.184, 366.8920, 0, 0, 100),
+(781910, 11, 2686.218, 7221.362, 365.6332, 0, 0, 100),
+(781910, 12, 2654.142, 7247.975, 364.3701, 0, 0, 100),
+(781910, 13, 2638.510, 7274.054, 365.9920, 0, 0, 100),
+(781910, 14, 2615.733, 7282.465, 366.1052, 0, 0, 100),
+(781910, 15, 2592.192, 7276.831, 364.5811, 0, 0, 100),
+(781910, 16, 2561.649, 7251.987, 365.4376, 0, 0, 100),
+(781910, 17, 2540.061, 7221.737, 364.3556, 0, 0, 100),
+(781910, 18, 2523.986, 7182.577, 366.0188, 0, 0, 100),
+(781910, 19, 2521.091, 7153.860, 366.3603, 0, 0, 100),
+(781910, 20, 2499.516, 7118.607, 364.6090, 0, 0, 100),
+(781910, 21, 2471.216, 7099.712, 366.6841, 0, 0, 100),
+(781910, 22, 2440.282, 7097.773, 365.6713, 0, 0, 100),
+(781910, 23, 2405.179, 7108.188, 365.3792, 0, 0, 100),
+(781910, 24, 2377.440, 7121.208, 365.7415, 0, 0, 100),
+(781910, 25, 2338.094, 7119.541, 366.8724, 0, 0, 100),
+(781910, 26, 2303.734, 7118.038, 367.3164, 0, 0, 100),
+(781910, 27, 2257.890, 7121.696, 365.9841, 0, 0, 100),
+(781910, 28, 2303.734, 7118.038, 367.3164, 0, 0, 100),
+(781910, 29, 2338.094, 7119.541, 366.8724, 0, 0, 100),
+(781910, 30, 2377.440, 7121.208, 365.7415, 0, 0, 100),
+(781910, 31, 2405.179, 7108.188, 365.3792, 0, 0, 100),
+(781910, 32, 2440.282, 7097.773, 365.6713, 0, 0, 100),
+(781910, 33, 2471.216, 7099.712, 366.6841, 0, 0, 100),
+(781910, 34, 2499.516, 7118.607, 364.6090, 0, 0, 100),
+(781910, 35, 2521.091, 7153.860, 366.3603, 0, 0, 100),
+(781910, 36, 2523.986, 7182.577, 366.0188, 0, 0, 100),
+(781910, 37, 2540.061, 7221.737, 364.3556, 0, 0, 100),
+(781910, 38, 2561.560, 7251.871, 365.3753, 0, 0, 100),
+(781910, 39, 2592.192, 7276.831, 364.5811, 0, 0, 100),
+(781910, 40, 2615.733, 7282.465, 366.1052, 0, 0, 100),
+(781910, 41, 2638.510, 7274.054, 365.9920, 0, 0, 100),
+(781910, 42, 2654.142, 7247.975, 364.3701, 0, 0, 100),
+(781910, 43, 2686.218, 7221.362, 365.6332, 0, 0, 100),
+(781910, 44, 2717.749, 7208.184, 366.8920, 0, 0, 100),
+(781910, 45, 2750.288, 7205.353, 366.4631, 0, 0, 100),
+(781910, 46, 2774.666, 7210.746, 364.7010, 0, 0, 100),
+(781910, 47, 2816.835, 7215.760, 364.7676, 0, 0, 100),
+(781910, 48, 2854.457, 7221.858, 365.7168, 0, 0, 100),
+(781910, 49, 2899.416, 7200.719, 365.5310, 0, 0, 100),
+(781910, 50, 2930.228, 7183.777, 365.9407, 0, 0, 100),
+(781910, 51, 2955.025, 7158.275, 365.1906, 0, 0, 100),
+(781910, 52, 2973.732, 7122.678, 364.5023, 0, 0, 100),
+(781910, 53, 2985.815, 7091.293, 364.5135, 0, 0, 100),
+(781910, 54, 2988.009, 7067.975, 370.1714, 0, 0, 100),
+(781930, 1, 2551.950, 7236.730, 365.2060, 0, 0, 100),
+(781930, 2, 2582.511, 7238.973, 364.5285, 0, 0, 100),
+(781930, 3, 2620.844, 7240.963, 365.8404, 0, 0, 100),
+(781930, 4, 2662.356, 7224.830, 365.3051, 0, 0, 100),
+(781930, 5, 2680.453, 7217.741, 365.7260, 0, 0, 100),
+(781930, 6, 2714.159, 7206.555, 366.9237, 0, 0, 100),
+(781930, 7, 2754.975, 7199.355, 365.9347, 0, 0, 100),
+(781930, 8, 2784.556, 7191.539, 366.0374, 0, 0, 100),
+(781930, 9, 2822.937, 7184.592, 367.8196, 0, 0, 100),
+(781930, 10, 2850.751, 7149.822, 365.3051, 0, 0, 100),
+(781930, 11, 2886.284, 7120.578, 364.8075, 0, 0, 100),
+(781930, 12, 2903.895, 7088.472, 365.5616, 0, 0, 100),
+(781930, 13, 2936.490, 7054.680, 369.7681, 0, 0, 100),
+(781930, 14, 2966.528, 7018.436, 365.3738, 0, 0, 100),
+(781930, 15, 2987.958, 6988.604, 364.5453, 0, 0, 100),
+(781930, 16, 3009.749, 6950.587, 364.4463, 0, 0, 100),
+(781930, 17, 2995.554, 6924.010, 366.0017, 0, 0, 100),
+(781930, 18, 2998.594, 6879.295, 370.1325, 0, 0, 100),
+(781930, 19, 3013.016, 6849.270, 369.1555, 0, 0, 100),
+(781930, 20, 3002.351, 6817.592, 372.1701, 0, 0, 100),
+(781930, 21, 3013.016, 6849.270, 369.1555, 0, 0, 100),
+(781930, 22, 2998.739, 6879.015, 370.1257, 0, 0, 100),
+(781930, 23, 2995.554, 6924.010, 366.0017, 0, 0, 100),
+(781930, 24, 3009.749, 6950.587, 364.4463, 0, 0, 100),
+(781930, 25, 2987.958, 6988.604, 364.5453, 0, 0, 100),
+(781930, 26, 2966.528, 7018.436, 365.3738, 0, 0, 100),
+(781930, 27, 2936.490, 7054.680, 369.7681, 0, 0, 100),
+(781930, 28, 2903.895, 7088.472, 365.5616, 0, 0, 100),
+(781930, 29, 2886.306, 7120.557, 364.8368, 0, 0, 100),
+(781930, 30, 2850.751, 7149.822, 365.3051, 0, 0, 100),
+(781930, 31, 2822.937, 7184.592, 367.8196, 0, 0, 100),
+(781930, 32, 2784.556, 7191.539, 366.0374, 0, 0, 100),
+(781930, 33, 2754.975, 7199.355, 365.9347, 0, 0, 100),
+(781930, 34, 2714.159, 7206.555, 366.9237, 0, 0, 100),
+(781930, 35, 2680.453, 7217.741, 365.7260, 0, 0, 100),
+(781930, 36, 2662.356, 7224.830, 365.3051, 0, 0, 100),
+(781930, 37, 2620.844, 7240.963, 365.8404, 0, 0, 100),
+(781930, 38, 2582.511, 7238.973, 364.5285, 0, 0, 100),
+(781930, 39, 2551.950, 7236.730, 365.2060, 0, 0, 100),
+(781930, 40, 2526.504, 7228.834, 365.5722, 0, 0, 100);
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 724eda0a266..d7b86b77253 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -4000,6 +4000,66 @@ class spell_gen_pony_mount_check : public AuraScript
}
};
+enum CorruptinPlagueEntrys
+{
+ NPC_APEXIS_FLAYER = 22175,
+ NPC_SHARD_HIDE_BOAR = 22180,
+ NPC_AETHER_RAY = 22181,
+ SPELL_CORRUPTING_PLAGUE = 40350
+};
+
+// 40350 - Corrupting Plague
+class CorruptingPlagueSearcher
+{
+public:
+ CorruptingPlagueSearcher(Unit* obj, float distance) : _unit(obj), _distance(distance) { }
+
+ bool operator()(Unit* u) const
+ {
+ if (_unit->GetDistance2d(u) < _distance &&
+ (u->GetEntry() == NPC_APEXIS_FLAYER || u->GetEntry() == NPC_SHARD_HIDE_BOAR || u->GetEntry() == NPC_AETHER_RAY) &&
+ !u->HasAura(SPELL_CORRUPTING_PLAGUE))
+ return true;
+
+ return false;
+ }
+
+private:
+ Unit* _unit;
+ float _distance;
+};
+
+// 40349 - Corrupting Plague
+class spell_corrupting_plague_aura : public AuraScript
+{
+ PrepareAuraScript(spell_corrupting_plague_aura);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_CORRUPTING_PLAGUE });
+ }
+
+ void OnPeriodic(AuraEffect const* /*aurEff*/)
+ {
+ Unit* owner = GetTarget();
+
+ std::list<Creature*> targets;
+ CorruptingPlagueSearcher creature_check(owner, 15.0f);
+ Trinity::CreatureListSearcher<CorruptingPlagueSearcher> creature_searcher(owner, targets, creature_check);
+ Cell::VisitGridObjects(owner, creature_searcher, 15.0f);
+
+ if (!targets.empty())
+ return;
+
+ PreventDefaultAction();
+ }
+
+ void Register() override
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_corrupting_plague_aura::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
+ }
+};
+
// 169869 - Transformation Sickness
class spell_gen_decimatus_transformation_sickness : public SpellScript
{
@@ -4363,6 +4423,7 @@ void AddSC_generic_spell_scripts()
RegisterSpellScript(spell_gen_landmine_knockback_achievement);
RegisterSpellScript(spell_gen_clear_debuffs);
RegisterAuraScript(spell_gen_pony_mount_check);
+ RegisterAuraScript(spell_corrupting_plague_aura);
RegisterSpellScript(spell_gen_decimatus_transformation_sickness);
RegisterSpellScript(spell_gen_anetheron_summon_towering_infernal);
RegisterSpellAndAuraScriptPair(spell_gen_mark_of_kazrogal_hellfire, spell_gen_mark_of_kazrogal_hellfire_aura);