@@ -1950,6 +1950,7 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
( 52408, 'spell_gen_seaforium_blast'),
|
||||
( 25281, 'spell_gen_turkey_marker'),
|
||||
(-55428, 'spell_gen_lifeblood'),
|
||||
( 65917, 'spell_gen_magic_rooster'),
|
||||
-- instances
|
||||
-- Black Temple
|
||||
( 41475, 'spell_boss_lady_malande_shield'),
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_gen_magic_rooster';
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(65917, 'spell_gen_magic_rooster');
|
||||
@@ -1105,6 +1105,61 @@ class spell_gen_lifeblood : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
enum MagicRoosterSpells
|
||||
{
|
||||
SPELL_MAGIC_ROOSTER_NORMAL = 66122,
|
||||
SPELL_MAGIC_ROOSTER_DRAENEI_MALE = 66123,
|
||||
SPELL_MAGIC_ROOSTER_TAUREN_MALE = 66124,
|
||||
};
|
||||
|
||||
class spell_gen_magic_rooster : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_gen_magic_rooster() : SpellScriptLoader("spell_gen_magic_rooster") { }
|
||||
|
||||
class spell_gen_magic_rooster_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_magic_rooster_SpellScript);
|
||||
|
||||
void HandleScript(SpellEffIndex effIndex)
|
||||
{
|
||||
PreventHitDefaultEffect(effIndex);
|
||||
Player* target = GetHitPlayer();
|
||||
if (!target)
|
||||
return;
|
||||
|
||||
// prevent client crashes from stacking mounts
|
||||
target->RemoveAurasByType(SPELL_AURA_MOUNTED);
|
||||
|
||||
uint32 spellId = SPELL_MAGIC_ROOSTER_NORMAL;
|
||||
switch (target->getRace())
|
||||
{
|
||||
case RACE_DRAENEI:
|
||||
if (target->getGender() == GENDER_MALE)
|
||||
spellId = SPELL_MAGIC_ROOSTER_DRAENEI_MALE;
|
||||
break;
|
||||
case RACE_TAUREN:
|
||||
if (target->getGender() == GENDER_MALE)
|
||||
spellId = SPELL_MAGIC_ROOSTER_TAUREN_MALE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
target->CastSpell(target, spellId, true);
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnEffect += SpellEffectFn(spell_gen_magic_rooster_SpellScript::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_gen_magic_rooster_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_generic_spell_scripts()
|
||||
{
|
||||
@@ -1132,4 +1187,5 @@ void AddSC_generic_spell_scripts()
|
||||
new spell_gen_seaforium_blast();
|
||||
new spell_gen_turkey_marker();
|
||||
new spell_gen_lifeblood();
|
||||
new spell_gen_magic_rooster();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user