diff options
author | Killyana <morphone1@gmail.com> | 2019-01-12 00:11:59 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-11-21 14:38:17 +0100 |
commit | d8b76a6e6d03b731ad89ea2e91ea93852a44162f (patch) | |
tree | 0ff04be747e31689a1d3c3d639668c61c61c57b1 | |
parent | c2eff8fabcc348d20bcbde19b5db0f76c3d7738e (diff) |
DB/Creature: Wrath Corruptor
Thanks to Keader for the spell_script
Original sql by Tobschinski https://github.com/cmangos/tbc-db/commit/c8f1753834ba3dba4c6263346afe29cd363c2431
(cherry picked from commit fb28083b3b2966952b1227f6585b48fcc70dbe7a)
-rw-r--r-- | sql/updates/world/master/2021_11_21_08_world_2019_01_11_02_world.sql | 185 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_generic.cpp | 61 |
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); |