mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 08:28:32 +01:00
Scripts/Spells: implement some eject passenger spells
(cherry picked from commit 766eb599ea)
This commit is contained in:
13
sql/updates/world/2015_03_25_02_world.sql
Normal file
13
sql/updates/world/2015_03_25_02_world.sql
Normal file
@@ -0,0 +1,13 @@
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` IN (62539,64614,64629,64630,64631,64632,64633,64634,64635,64636,67393);
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(62539,'spell_gen_eject_passenger'),
|
||||
(64614,'spell_gen_eject_passenger'),
|
||||
(64629,'spell_gen_eject_passenger'),
|
||||
(64630,'spell_gen_eject_passenger'),
|
||||
(64631,'spell_gen_eject_passenger'),
|
||||
(64632,'spell_gen_eject_passenger'),
|
||||
(64633,'spell_gen_eject_passenger'),
|
||||
(64634,'spell_gen_eject_passenger'),
|
||||
(64635,'spell_gen_eject_passenger'),
|
||||
(64636,'spell_gen_eject_passenger'),
|
||||
(67393,'spell_gen_eject_passenger');
|
||||
@@ -3629,6 +3629,43 @@ class spell_gen_eject_all_passengers : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
class spell_gen_eject_passenger : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_gen_eject_passenger() : SpellScriptLoader("spell_gen_eject_passenger") { }
|
||||
|
||||
class spell_gen_eject_passenger_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_eject_passenger_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* spellInfo) override
|
||||
{
|
||||
if (spellInfo->Effects[EFFECT_0].CalcValue() < 1)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void EjectPassenger(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Vehicle* vehicle = GetHitUnit()->GetVehicleKit())
|
||||
{
|
||||
if (Unit* passenger = vehicle->GetPassenger(GetEffectValue() - 1))
|
||||
passenger->ExitVehicle();
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_gen_eject_passenger_SpellScript::EjectPassenger, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_gen_eject_passenger_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
enum GMFreeze
|
||||
{
|
||||
SPELL_GM_FREEZE = 9454
|
||||
@@ -4121,6 +4158,7 @@ void AddSC_generic_spell_scripts()
|
||||
new spell_gen_wg_water();
|
||||
new spell_gen_whisper_gulch_yogg_saron_whisper();
|
||||
new spell_gen_eject_all_passengers();
|
||||
new spell_gen_eject_passenger();
|
||||
new spell_gen_gm_freeze();
|
||||
new spell_gen_stand();
|
||||
new spell_gen_mixology_bonus();
|
||||
|
||||
Reference in New Issue
Block a user