Scripts/Spells: Get rid of several DB spell scripts (#28048)

(cherry picked from commit 3808e614d9)
This commit is contained in:
offl
2022-06-22 22:37:52 +03:00
committed by Shauren
parent c8d56b8c67
commit 6fb332d935
7 changed files with 331 additions and 10 deletions

View File

@@ -0,0 +1,37 @@
--
DELETE FROM `spell_scripts` WHERE `id` IN (23645,23725,24194,24195,38358,45185,47097,47958,57082,47703,47724,50252);
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
'spell_item_hourglass_sand',
'spell_item_lifegiving_gem',
'spell_quest_uther_grom_tribute',
'spell_fathomlord_karathress_tidal_surge',
'spell_brutallus_stomp',
'spell_dragonblight_surge_needle_teleporter',
'spell_ormorok_summon_crystal_spikes',
'spell_dragonblight_fill_blood_unholy_frost_gem');
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(23645,'spell_item_hourglass_sand'),
(23725,'spell_item_lifegiving_gem'),
(24194,'spell_quest_uther_grom_tribute'),
(24195,'spell_quest_uther_grom_tribute'),
(38358,'spell_fathomlord_karathress_tidal_surge'),
(45185,'spell_brutallus_stomp'),
(47097,'spell_dragonblight_surge_needle_teleporter'),
(47958,'spell_ormorok_summon_crystal_spikes'),
(57082,'spell_ormorok_summon_crystal_spikes'),
(47703,'spell_dragonblight_fill_blood_unholy_frost_gem'),
(47724,'spell_dragonblight_fill_blood_unholy_frost_gem'),
(50252,'spell_dragonblight_fill_blood_unholy_frost_gem');
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 17 AND `SourceEntry` IN
(24101,24102,24103,24104,69530,24105,24106,24107,24108,69533,47324,47325);
-- DELETE FROM `spelldifficulty_dbc` WHERE `id` IN (47954,47955,47956,47957);
-- INSERT INTO `spelldifficulty_dbc` (`id`, `spellid0`, `spellid1`, `spellid2`, `spellid3`) VALUES
-- (47954,47954,57077,0,0),
-- (47955,47955,57078,0,0),
-- (47956,47956,57080,0,0),
-- (47957,47957,57081,0,0);
UPDATE `spell_script_names` SET `ScriptName` = 'spell_ormorok_crystal_spike' WHERE `ScriptName` = 'spell_crystal_spike';

View File

@@ -362,8 +362,30 @@ class spell_brutallus_burn : public AuraScript
}
};
// 45185 - Stomp
class spell_brutallus_stomp : public SpellScript
{
PrepareSpellScript(spell_brutallus_stomp);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_BURN });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->RemoveAurasDueToSpell(SPELL_BURN);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_brutallus_stomp::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_boss_brutallus()
{
new boss_brutallus();
RegisterSpellScript(spell_brutallus_burn);
RegisterSpellScript(spell_brutallus_stomp);
}

View File

@@ -17,6 +17,7 @@
#include "ScriptMgr.h"
#include "GameObject.h"
#include "Map.h"
#include "nexus.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
@@ -28,7 +29,18 @@ enum Spells
SPELL_FRENZY = 48017,
SPELL_SUMMON_CRYSTALLINE_TANGLER = 61564,
SPELL_CRYSTAL_SPIKES = 47958,
SPELL_SUMMON_CRYSTAL_SPIKE_1 = 47954,
SPELL_SUMMON_CRYSTAL_SPIKE_2 = 47955,
SPELL_SUMMON_CRYSTAL_SPIKE_3 = 47956,
SPELL_SUMMON_CRYSTAL_SPIKE_4 = 47957,
SPELL_SUMMON_CRYSTAL_SPIKE_1_H = 57077,
SPELL_SUMMON_CRYSTAL_SPIKE_2_H = 57078,
SPELL_SUMMON_CRYSTAL_SPIKE_3_H = 57080,
SPELL_SUMMON_CRYSTAL_SPIKE_4_H = 57081
};
enum Yells
{
SAY_AGGRO = 1,
@@ -243,10 +255,43 @@ private:
};
// 47941 - Crystal Spike
class spell_crystal_spike : public AuraScript
std::array<uint32, 4> const SummonSpells =
{
PrepareAuraScript(spell_crystal_spike);
SPELL_SUMMON_CRYSTAL_SPIKE_1, SPELL_SUMMON_CRYSTAL_SPIKE_2, SPELL_SUMMON_CRYSTAL_SPIKE_3, SPELL_SUMMON_CRYSTAL_SPIKE_4
};
std::array<uint32, 4> const SummonSpellsHeroic =
{
SPELL_SUMMON_CRYSTAL_SPIKE_1_H, SPELL_SUMMON_CRYSTAL_SPIKE_2_H, SPELL_SUMMON_CRYSTAL_SPIKE_3_H, SPELL_SUMMON_CRYSTAL_SPIKE_4_H
};
// 47958, 57082 - Crystal Spikes
class spell_ormorok_summon_crystal_spikes : public SpellScript
{
PrepareSpellScript(spell_ormorok_summon_crystal_spikes);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo(SummonSpells) && ValidateSpellInfo(SummonSpellsHeroic);
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
for (uint32 spells : (caster->GetMap()->IsHeroic() ? SummonSpellsHeroic : SummonSpells))
caster->CastSpell(caster, spells);
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_ormorok_summon_crystal_spikes::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
// 47941 - Crystal Spike
class spell_ormorok_crystal_spike : public AuraScript
{
PrepareAuraScript(spell_ormorok_crystal_spike);
void HandlePeriodic(AuraEffect const* /*aurEff*/)
{
@@ -262,7 +307,7 @@ class spell_crystal_spike : public AuraScript
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_crystal_spike::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_ormorok_crystal_spike::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
@@ -270,5 +315,6 @@ void AddSC_boss_ormorok()
{
RegisterNexusCreatureAI(boss_ormorok);
RegisterNexusCreatureAI(npc_crystal_spike_trigger);
RegisterSpellScript(spell_crystal_spike);
RegisterSpellScript(spell_ormorok_summon_crystal_spikes);
RegisterSpellScript(spell_ormorok_crystal_spike);
}

View File

@@ -879,6 +879,78 @@ class spell_dragonblight_bombard_the_ballistae_fx_master : public SpellScript
}
};
/*######
## Quest 12060, 12061: Projections and Plans
######*/
enum ProjectionsAndPlans
{
SPELL_TELE_MOONREST_GARDENS = 47324,
SPELL_TELE_SURGE_NEEDLE = 47325,
AREA_SURGE_NEEDLE = 4156,
AREA_MOONREST_GARDENS = 4157
};
// 47097 - Surge Needle Teleporter
class spell_dragonblight_surge_needle_teleporter : public SpellScript
{
PrepareSpellScript(spell_dragonblight_surge_needle_teleporter);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_TELE_MOONREST_GARDENS, SPELL_TELE_SURGE_NEEDLE });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
switch (caster->GetAreaId())
{
case AREA_SURGE_NEEDLE:
caster->CastSpell(caster, SPELL_TELE_MOONREST_GARDENS);
break;
case AREA_MOONREST_GARDENS:
caster->CastSpell(caster, SPELL_TELE_SURGE_NEEDLE);
break;
default:
break;
}
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_dragonblight_surge_needle_teleporter::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
/*######
## Quest 12125, 12126, 12127: In Service of Blood & In Service of the Unholy & In Service of Frost
######*/
// 47703 - Unholy Union
// 47724 - Frost Draw
// 50252 - Blood Draw
class spell_dragonblight_fill_blood_unholy_frost_gem : public SpellScript
{
PrepareSpellScript(spell_dragonblight_fill_blood_unholy_frost_gem);
bool Validate(SpellInfo const* spellInfo) override
{
return ValidateSpellInfo({ uint32(spellInfo->GetEffect(EFFECT_0).CalcValue()) });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetCaster()->CastSpell(GetCaster(), uint32(GetEffectValue()));
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_dragonblight_fill_blood_unholy_frost_gem::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_dragonblight()
{
RegisterCreatureAI(npc_commander_eligor_dawnbringer);
@@ -894,4 +966,6 @@ void AddSC_dragonblight()
RegisterSpellScript(spell_dragonblight_scarlet_raven_priest_image_master);
RegisterSpellScript(spell_dragonblight_cancel_scarlet_raven_priest_image);
RegisterSpellScript(spell_dragonblight_bombard_the_ballistae_fx_master);
RegisterSpellScript(spell_dragonblight_surge_needle_teleporter);
RegisterSpellScript(spell_dragonblight_fill_blood_unholy_frost_gem);
}

View File

@@ -27,6 +27,7 @@ EndScriptData */
#include "MotionMaster.h"
#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "serpent_shrine.h"
#include "TemporarySummon.h"
@@ -69,7 +70,7 @@ enum FathomlordKarathress
//Caribdis Spells
SPELL_WATER_BOLT_VOLLEY = 38335,
SPELL_TIDAL_SURGE = 38358,
SPELL_TIDAL_SURGE_FREEZE = 38357,
SPELL_TIDAL_SURGE_EFFECT = 38353,
SPELL_HEAL = 38330,
SPELL_SUMMON_CYCLONE = 38337,
SPELL_CYCLONE_CYCLONE = 29538,
@@ -648,10 +649,7 @@ public:
//TidalSurge_Timer
if (TidalSurge_Timer <= diff)
{
DoCastVictim(SPELL_TIDAL_SURGE);
// Hacky way to do it - won't trigger elseways
if (me->GetVictim())
me->EnsureVictim()->CastSpell(me->GetVictim(), SPELL_TIDAL_SURGE_FREEZE, true);
DoCastSelf(SPELL_TIDAL_SURGE);
TidalSurge_Timer = 15000 + rand32() % 5000;
} else TidalSurge_Timer -= diff;
@@ -714,10 +712,32 @@ public:
};
};
// 38358 - Tidal Surge
class spell_fathomlord_karathress_tidal_surge : public SpellScript
{
PrepareSpellScript(spell_fathomlord_karathress_tidal_surge);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_TIDAL_SURGE_EFFECT });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_TIDAL_SURGE_EFFECT, true);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_fathomlord_karathress_tidal_surge::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_boss_fathomlord_karathress()
{
new boss_fathomlord_karathress();
new boss_fathomguard_sharkkis();
new boss_fathomguard_tidalvess();
new boss_fathomguard_caribdis();
RegisterSpellScript(spell_fathomlord_karathress_tidal_surge);
}

View File

@@ -1314,6 +1314,32 @@ class spell_item_heartpierce : public SpellScriptLoader
}
};
enum HourglassSand
{
SPELL_BROOD_AFFLICTION_BRONZE = 23170
};
// 23645 - Hourglass Sand
class spell_item_hourglass_sand : public SpellScript
{
PrepareSpellScript(spell_item_hourglass_sand);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_BROOD_AFFLICTION_BRONZE });
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
GetCaster()->RemoveAurasDueToSpell(SPELL_BROOD_AFFLICTION_BRONZE);
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_item_hourglass_sand::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
// 40971 - Bonus Healing (Crystal Spire of Karabor)
class spell_item_crystal_spire_of_karabor : public AuraScript
{
@@ -3016,6 +3042,35 @@ class spell_item_impale_leviroth : public SpellScript
}
};
enum LifegivingGem
{
SPELL_GIFT_OF_LIFE_1 = 23782,
SPELL_GIFT_OF_LIFE_2 = 23783
};
// 23725 - Gift of Life
class spell_item_lifegiving_gem : public SpellScript
{
PrepareSpellScript(spell_item_lifegiving_gem);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_GIFT_OF_LIFE_1, SPELL_GIFT_OF_LIFE_2 });
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
caster->CastSpell(caster, SPELL_GIFT_OF_LIFE_1, true);
caster->CastSpell(caster, SPELL_GIFT_OF_LIFE_2, true);
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_item_lifegiving_gem::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
enum NitroBoosts
{
SPELL_NITRO_BOOSTS_SUCCESS = 54861,
@@ -4419,6 +4474,7 @@ void AddSC_item_spell_scripts()
RegisterSpellScript(spell_item_harm_prevention_belt);
new spell_item_heartpierce<SPELL_INVIGORATION_ENERGY, SPELL_INVIGORATION_MANA, SPELL_INVIGORATION_RAGE, SPELL_INVIGORATION_RP>("spell_item_heartpierce");
new spell_item_heartpierce<SPELL_INVIGORATION_ENERGY_HERO, SPELL_INVIGORATION_MANA_HERO, SPELL_INVIGORATION_RAGE_HERO, SPELL_INVIGORATION_RP_HERO>("spell_item_heartpierce_hero");
RegisterSpellScript(spell_item_hourglass_sand);
RegisterSpellScript(spell_item_crystal_spire_of_karabor);
RegisterSpellScript(spell_item_make_a_wish);
RegisterSpellScript(spell_item_mark_of_conquest);
@@ -4463,6 +4519,7 @@ void AddSC_item_spell_scripts()
RegisterSpellScript(spell_item_demon_broiled_surprise);
RegisterSpellScript(spell_item_complete_raptor_capture);
RegisterSpellScript(spell_item_impale_leviroth);
RegisterSpellScript(spell_item_lifegiving_gem);
RegisterSpellScript(spell_item_nitro_boosts);
RegisterSpellScript(spell_item_nitro_boosts_backfire);
RegisterSpellScript(spell_item_rocket_boots);

View File

@@ -1911,6 +1911,70 @@ class spell_quest_portal_with_condition : public SpellScript
}
};
enum TributeSpells
{
SPELL_GROMS_TROLL_TRIBUTE = 24101,
SPELL_GROMS_TAUREN_TRIBUTE = 24102,
SPELL_GROMS_UNDEAD_TRIBUTE = 24103,
SPELL_GROMS_ORC_TRIBUTE = 24104,
SPELL_GROMS_BLOODELF_TRIBUTE = 69530,
SPELL_UTHERS_HUMAN_TRIBUTE = 24105,
SPELL_UTHERS_GNOME_TRIBUTE = 24106,
SPELL_UTHERS_DWARF_TRIBUTE = 24107,
SPELL_UTHERS_NIGHTELF_TRIBUTE = 24108,
SPELL_UTHERS_DRAENEI_TRIBUTE = 69533
};
// 24194 - Uther's Tribute
// 24195 - Grom's Tribute
class spell_quest_uther_grom_tribute : public SpellScript
{
PrepareSpellScript(spell_quest_uther_grom_tribute);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo(
{
SPELL_GROMS_TROLL_TRIBUTE, SPELL_UTHERS_HUMAN_TRIBUTE,
SPELL_GROMS_TAUREN_TRIBUTE, SPELL_UTHERS_GNOME_TRIBUTE,
SPELL_GROMS_UNDEAD_TRIBUTE, SPELL_UTHERS_DWARF_TRIBUTE,
SPELL_GROMS_ORC_TRIBUTE, SPELL_UTHERS_NIGHTELF_TRIBUTE,
SPELL_GROMS_BLOODELF_TRIBUTE, SPELL_UTHERS_DRAENEI_TRIBUTE
});
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
Player* caster = GetCaster()->ToPlayer();
if (!caster)
return;
uint32 spell = 0;
switch (caster->GetRace())
{
case RACE_TROLL: spell = SPELL_GROMS_TROLL_TRIBUTE; break;
case RACE_TAUREN: spell = SPELL_GROMS_TAUREN_TRIBUTE; break;
case RACE_UNDEAD_PLAYER: spell = SPELL_GROMS_UNDEAD_TRIBUTE; break;
case RACE_ORC: spell = SPELL_GROMS_ORC_TRIBUTE; break;
case RACE_BLOODELF: spell = SPELL_GROMS_BLOODELF_TRIBUTE; break;
case RACE_HUMAN: spell = SPELL_UTHERS_HUMAN_TRIBUTE; break;
case RACE_GNOME: spell = SPELL_UTHERS_GNOME_TRIBUTE; break;
case RACE_DWARF: spell = SPELL_UTHERS_DWARF_TRIBUTE; break;
case RACE_NIGHTELF: spell = SPELL_UTHERS_NIGHTELF_TRIBUTE; break;
case RACE_DRAENEI: spell = SPELL_UTHERS_DRAENEI_TRIBUTE; break;
default: break;
}
if (spell)
caster->CastSpell(caster, spell);
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_quest_uther_grom_tribute::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
/*######
## Quest 14386 Leader of the Pack
######*/
@@ -2005,5 +2069,6 @@ void AddSC_quest_spell_scripts()
RegisterSpellScript(spell_q11306_failed_mix_43378);
RegisterSpellScript(spell_quest_taming_the_beast);
RegisterSpellScript(spell_quest_portal_with_condition);
RegisterSpellScript(spell_quest_uther_grom_tribute);
RegisterSpellScript(spell_q14386_call_attack_mastiffs);
}