mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-14 09:39:11 +00:00
fix(Core/SpellMgr): Add cooldown to some vehicle spells (#4300)
* fix(Core/SpellMgr): Add cooldown to some spells * author and spellscript Co-Authored-By: Wyrserth <43747507+Wyrserth@users.noreply.github.com>
This commit is contained in:
@@ -5043,6 +5043,39 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// Used for some spells cast by vehicles or charmed creatures that do not send a cooldown event on their own
|
||||
class spell_gen_charmed_unit_spell_cooldown : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_gen_charmed_unit_spell_cooldown() : SpellScriptLoader("spell_gen_charmed_unit_spell_cooldown") { }
|
||||
|
||||
class spell_gen_charmed_unit_spell_cooldown_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_charmed_unit_spell_cooldown_SpellScript);
|
||||
|
||||
void HandleCast()
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
if (Player* owner = caster->GetCharmerOrOwnerPlayerOrPlayerItself())
|
||||
{
|
||||
WorldPacket data;
|
||||
caster->BuildCooldownPacket(data, SPELL_COOLDOWN_FLAG_NONE, GetSpellInfo()->Id, GetSpellInfo()->RecoveryTime);
|
||||
owner->SendDirectMessage(&data);
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnCast += SpellCastFn(spell_gen_charmed_unit_spell_cooldown_SpellScript::HandleCast);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_gen_charmed_unit_spell_cooldown_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_generic_spell_scripts()
|
||||
{
|
||||
// ours:
|
||||
@@ -5171,4 +5204,5 @@ void AddSC_generic_spell_scripts()
|
||||
new spell_gen_whisper_gulch_yogg_saron_whisper();
|
||||
new spell_gen_eject_all_passengers();
|
||||
new spell_gen_eject_passenger();
|
||||
new spell_gen_charmed_unit_spell_cooldown();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user