mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 10:26:28 +01:00
Scripts/Events/Achievement: fix 'Out With It'
Credits to @darkman1983 Closes #8211 Closes #8126 Signed-off-by: Nay <dnpd.dd@gmail.com>
This commit is contained in:
15
sql/updates/world/2012_12_14_02_world_misc.sql
Normal file
15
sql/updates/world/2012_12_14_02_world_misc.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` IN (24750, 24751, 44436);
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(24750, 'spell_trick'),
|
||||
(24751, 'spell_trick_or_treat'),
|
||||
(44436, 'spell_gen_tricky_treat');
|
||||
|
||||
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (42965,42966);
|
||||
INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
|
||||
(42965,42919,0, 'Hallows End - Tricky Treat'),
|
||||
(42966,-42965,0, 'Hallows End - Upset Tummy removes Tricky Treat'),
|
||||
(42966,-42919,0, 'Hallows End - Upset Tummy removes Tricky Treat');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceEntry`=44436 AND `SourceTypeOrReferenceId`=17;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
|
||||
(17, 0, 44436, 0, 0, 1, 0, 42966, 0, 0, 1, 0, '','Tricky Treat casted only if Upset Tummy aura is missing');
|
||||
@@ -561,7 +561,7 @@ bool PetAI::CanAttack(Unit* target)
|
||||
|
||||
// Follow
|
||||
if (me->GetCharmInfo()->HasCommandState(COMMAND_FOLLOW))
|
||||
return !me->GetCharmInfo()->IsReturning();
|
||||
return !me->GetCharmInfo()->IsReturning();
|
||||
|
||||
// default, though we shouldn't ever get here
|
||||
return false;
|
||||
|
||||
@@ -2524,7 +2524,7 @@ float Creature::GetAggroRange(Unit const* target) const
|
||||
if (target && this->isPet())
|
||||
{
|
||||
uint32 targetLevel = 0;
|
||||
|
||||
|
||||
if (target->GetTypeId() == TYPEID_PLAYER)
|
||||
targetLevel = target->getLevelForTarget(this);
|
||||
else if (target->GetTypeId() == TYPEID_UNIT)
|
||||
@@ -2532,7 +2532,7 @@ float Creature::GetAggroRange(Unit const* target) const
|
||||
|
||||
uint32 myLevel = getLevelForTarget(target);
|
||||
int32 levelDiff = int32(targetLevel) - int32(myLevel);
|
||||
|
||||
|
||||
// The maximum Aggro Radius is capped at 45 yards (25 level difference)
|
||||
if (levelDiff < -25)
|
||||
levelDiff = -25;
|
||||
|
||||
@@ -43,7 +43,7 @@ enum Says
|
||||
SAY_PHASE201 = 10,
|
||||
SAY_PHASE203 = 11,
|
||||
SAY_PHASE205 = 12,
|
||||
SAY_PHASE208 = 13,
|
||||
SAY_PHASE208 = 13,
|
||||
SAY_PHASE209 = 14,
|
||||
SAY_PHASE210 = 15,
|
||||
|
||||
@@ -96,7 +96,7 @@ enum Says
|
||||
SAY_PHASE117 = 1,
|
||||
|
||||
//Cityman
|
||||
SAY_PHASE202 = 0,
|
||||
SAY_PHASE202 = 0,
|
||||
|
||||
//Crazyman
|
||||
SAY_PHASE204 = 0,
|
||||
|
||||
@@ -59,7 +59,7 @@ enum MedivhBm
|
||||
|
||||
SPELL_CORRUPT = 31326,
|
||||
SPELL_CORRUPT_AEONUS = 37853,
|
||||
|
||||
|
||||
C_COUNCIL_ENFORCER = 17023
|
||||
};
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ enum Skeram
|
||||
SAY_SLAY = 1,
|
||||
SAY_SPLIT = 2,
|
||||
SAY_DEATH = 3,
|
||||
|
||||
|
||||
SPELL_ARCANE_EXPLOSION = 25679,
|
||||
SPELL_EARTH_SHOCK = 26194,
|
||||
SPELL_TRUE_FULFILLMENT = 785,
|
||||
|
||||
@@ -491,23 +491,23 @@ public:
|
||||
Spark->SetInFront(me);
|
||||
me->SetInFront(Spark);
|
||||
return 5000;
|
||||
case 3:
|
||||
Spark->AI()->Talk(SPARK_SAY_2);
|
||||
case 3:
|
||||
Spark->AI()->Talk(SPARK_SAY_2);
|
||||
return 7000;
|
||||
case 4:
|
||||
case 4:
|
||||
Spark->AI()->Talk(SPARK_SAY_3);
|
||||
return 8000;
|
||||
case 5:
|
||||
case 5:
|
||||
Talk(GEEZLE_SAY_4, SparkGUID);
|
||||
return 8000;
|
||||
case 6:
|
||||
case 6:
|
||||
Spark->AI()->Talk(SPARK_SAY_5);
|
||||
return 9000;
|
||||
case 7:
|
||||
Spark->AI()->Talk(SPARK_SAY_6);
|
||||
case 7:
|
||||
Spark->AI()->Talk(SPARK_SAY_6);
|
||||
return 8000;
|
||||
case 8:
|
||||
Talk(GEEZLE_SAY_7, SparkGUID);
|
||||
case 8:
|
||||
Talk(GEEZLE_SAY_7, SparkGUID);
|
||||
return 2000;
|
||||
case 9:
|
||||
me->GetMotionMaster()->MoveTargetedHome();
|
||||
|
||||
@@ -29,7 +29,7 @@ enum Yells
|
||||
SAY_GORKUN_INTRO_2 = 0,
|
||||
SAY_GORKUN_OUTRO_1 = 1,
|
||||
SAY_GORKUN_OUTRO_2 = 2,
|
||||
|
||||
|
||||
//Tyrannus
|
||||
SAY_AMBUSH_1 = 3,
|
||||
SAY_AMBUSH_2 = 4,
|
||||
@@ -43,7 +43,7 @@ enum Yells
|
||||
SAY_MARK_RIMEFANG_2 = 12,
|
||||
SAY_DARK_MIGHT_1 = 13,
|
||||
SAY_DARK_MIGHT_2 = 14,
|
||||
|
||||
|
||||
//Jaina
|
||||
SAY_JAYNA_OUTRO_3 = 3,
|
||||
SAY_JAYNA_OUTRO_4 = 4,
|
||||
|
||||
@@ -931,7 +931,7 @@ enum eThassarian
|
||||
SAY_LICH_1 = 0,
|
||||
SAY_LICH_2 = 1,
|
||||
SAY_LICH_3 = 2,
|
||||
|
||||
|
||||
SAY_ARLOS_1 = 0,
|
||||
SAY_ARLOS_2 = 1,
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ enum IllidariCouncil
|
||||
SAY_GATH_SLAY = 4,
|
||||
SAY_GATH_COMNT = 5,
|
||||
SAY_GATH_DEATH = 6,
|
||||
|
||||
|
||||
SAY_MALA_SPECIAL1 = 2,
|
||||
SAY_MALA_SPECIAL2 = 3,
|
||||
SAY_MALA_SLAY = 4,
|
||||
|
||||
@@ -387,7 +387,7 @@ public:
|
||||
{
|
||||
if (victim->GetTypeId() != TYPEID_PLAYER)
|
||||
return;
|
||||
|
||||
|
||||
Talk(DemonForm ? SAY_DEMON_SLAY : SAY_NIGHTELF_SLAY);
|
||||
}
|
||||
|
||||
|
||||
@@ -247,7 +247,7 @@ public:
|
||||
if (someplayer)
|
||||
{
|
||||
Unit* u = Unit::GetUnit(*me, someplayer);
|
||||
if (u && u->GetTypeId() == TYPEID_PLAYER)
|
||||
if (u && u->GetTypeId() == TYPEID_PLAYER)
|
||||
Talk(EMOTE_START, u->GetGUID());
|
||||
}
|
||||
Event_Timer = 60000;
|
||||
@@ -375,7 +375,7 @@ enum eCommanderDawnforgeData
|
||||
SAY_PATHALEON_CULATOR_IMAGE_2 = 1,
|
||||
SAY_PATHALEON_CULATOR_IMAGE_2_1 = 2,
|
||||
SAY_PATHALEON_CULATOR_IMAGE_2_2 = 3,
|
||||
|
||||
|
||||
QUEST_INFO_GATHERING = 10198,
|
||||
SPELL_SUNFURY_DISGUISE = 34603,
|
||||
};
|
||||
@@ -683,7 +683,7 @@ class npc_professor_dabiri : public CreatureScript
|
||||
public:
|
||||
npc_professor_dabiri() : CreatureScript("npc_professor_dabiri") { }
|
||||
|
||||
//OnQuestAccept:
|
||||
//OnQuestAccept:
|
||||
//if (quest->GetQuestId() == QUEST_DIMENSIUS)
|
||||
//creature->AI()->Talk(WHISPER_DABIRI, player->GetGUID());
|
||||
|
||||
|
||||
@@ -1495,8 +1495,8 @@ public:
|
||||
if (!Announced && AnnounceTimer <= diff)
|
||||
{
|
||||
Announced = true;
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
AnnounceTimer -= diff;
|
||||
|
||||
if (WaveTimer <= diff)
|
||||
|
||||
@@ -483,128 +483,6 @@ class spell_gen_elune_candle : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
// 24750 Trick
|
||||
enum TrickSpells
|
||||
{
|
||||
SPELL_PIRATE_COSTUME_MALE = 24708,
|
||||
SPELL_PIRATE_COSTUME_FEMALE = 24709,
|
||||
SPELL_NINJA_COSTUME_MALE = 24710,
|
||||
SPELL_NINJA_COSTUME_FEMALE = 24711,
|
||||
SPELL_LEPER_GNOME_COSTUME_MALE = 24712,
|
||||
SPELL_LEPER_GNOME_COSTUME_FEMALE = 24713,
|
||||
SPELL_SKELETON_COSTUME = 24723,
|
||||
SPELL_GHOST_COSTUME_MALE = 24735,
|
||||
SPELL_GHOST_COSTUME_FEMALE = 24736,
|
||||
SPELL_TRICK_BUFF = 24753,
|
||||
};
|
||||
|
||||
class spell_gen_trick : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_gen_trick() : SpellScriptLoader("spell_gen_trick") {}
|
||||
|
||||
class spell_gen_trick_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_trick_SpellScript);
|
||||
bool Validate(SpellInfo const* /*spellEntry*/)
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_MALE)
|
||||
|| !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_FEMALE)
|
||||
|| !sSpellMgr->GetSpellInfo(SPELL_SKELETON_COSTUME) || !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_TRICK_BUFF))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
if (Player* target = GetHitPlayer())
|
||||
{
|
||||
uint8 gender = target->getGender();
|
||||
uint32 spellId = SPELL_TRICK_BUFF;
|
||||
switch (urand(0, 5))
|
||||
{
|
||||
case 1:
|
||||
spellId = gender ? SPELL_LEPER_GNOME_COSTUME_FEMALE : SPELL_LEPER_GNOME_COSTUME_MALE;
|
||||
break;
|
||||
case 2:
|
||||
spellId = gender ? SPELL_PIRATE_COSTUME_FEMALE : SPELL_PIRATE_COSTUME_MALE;
|
||||
break;
|
||||
case 3:
|
||||
spellId = gender ? SPELL_GHOST_COSTUME_FEMALE : SPELL_GHOST_COSTUME_MALE;
|
||||
break;
|
||||
case 4:
|
||||
spellId = gender ? SPELL_NINJA_COSTUME_FEMALE : SPELL_NINJA_COSTUME_MALE;
|
||||
break;
|
||||
case 5:
|
||||
spellId = SPELL_SKELETON_COSTUME;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
caster->CastSpell(target, spellId, true, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_gen_trick_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_gen_trick_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 24751 Trick or Treat
|
||||
enum TrickOrTreatSpells
|
||||
{
|
||||
SPELL_TRICK = 24714,
|
||||
SPELL_TREAT = 24715,
|
||||
SPELL_TRICKED_OR_TREATED = 24755
|
||||
};
|
||||
|
||||
class spell_gen_trick_or_treat : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_gen_trick_or_treat() : SpellScriptLoader("spell_gen_trick_or_treat") {}
|
||||
|
||||
class spell_gen_trick_or_treat_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_trick_or_treat_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/)
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_TRICK) || !sSpellMgr->GetSpellInfo(SPELL_TREAT) || !sSpellMgr->GetSpellInfo(SPELL_TRICKED_OR_TREATED))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
if (Player* target = GetHitPlayer())
|
||||
{
|
||||
caster->CastSpell(target, roll_chance_i(50) ? SPELL_TRICK : SPELL_TREAT, true, NULL);
|
||||
caster->CastSpell(target, SPELL_TRICKED_OR_TREATED, true, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_gen_trick_or_treat_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_gen_trick_or_treat_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
class spell_creature_permanent_feign_death : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
@@ -3371,8 +3249,6 @@ void AddSC_generic_spell_scripts()
|
||||
new spell_gen_parachute();
|
||||
new spell_gen_pet_summoned();
|
||||
new spell_gen_remove_flight_auras();
|
||||
new spell_gen_trick();
|
||||
new spell_gen_trick_or_treat();
|
||||
new spell_creature_permanent_feign_death();
|
||||
new spell_pvp_trinket_wotf_shared_cd();
|
||||
new spell_gen_animal_blood();
|
||||
|
||||
@@ -110,7 +110,174 @@ class spell_love_is_in_the_air_romantic_picnic : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
// 24750 Trick
|
||||
enum TrickSpells
|
||||
{
|
||||
SPELL_PIRATE_COSTUME_MALE = 24708,
|
||||
SPELL_PIRATE_COSTUME_FEMALE = 24709,
|
||||
SPELL_NINJA_COSTUME_MALE = 24710,
|
||||
SPELL_NINJA_COSTUME_FEMALE = 24711,
|
||||
SPELL_LEPER_GNOME_COSTUME_MALE = 24712,
|
||||
SPELL_LEPER_GNOME_COSTUME_FEMALE = 24713,
|
||||
SPELL_SKELETON_COSTUME = 24723,
|
||||
SPELL_GHOST_COSTUME_MALE = 24735,
|
||||
SPELL_GHOST_COSTUME_FEMALE = 24736,
|
||||
SPELL_TRICK_BUFF = 24753,
|
||||
};
|
||||
|
||||
class spell_trick : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_trick() : SpellScriptLoader("spell_trick") {}
|
||||
|
||||
class spell_trick_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_trick_SpellScript);
|
||||
bool Validate(SpellInfo const* /*spellEntry*/)
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_MALE)
|
||||
|| !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_FEMALE)
|
||||
|| !sSpellMgr->GetSpellInfo(SPELL_SKELETON_COSTUME) || !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_TRICK_BUFF))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
if (Player* target = GetHitPlayer())
|
||||
{
|
||||
uint8 gender = target->getGender();
|
||||
uint32 spellId = SPELL_TRICK_BUFF;
|
||||
switch (urand(0, 5))
|
||||
{
|
||||
case 1:
|
||||
spellId = gender ? SPELL_LEPER_GNOME_COSTUME_FEMALE : SPELL_LEPER_GNOME_COSTUME_MALE;
|
||||
break;
|
||||
case 2:
|
||||
spellId = gender ? SPELL_PIRATE_COSTUME_FEMALE : SPELL_PIRATE_COSTUME_MALE;
|
||||
break;
|
||||
case 3:
|
||||
spellId = gender ? SPELL_GHOST_COSTUME_FEMALE : SPELL_GHOST_COSTUME_MALE;
|
||||
break;
|
||||
case 4:
|
||||
spellId = gender ? SPELL_NINJA_COSTUME_FEMALE : SPELL_NINJA_COSTUME_MALE;
|
||||
break;
|
||||
case 5:
|
||||
spellId = SPELL_SKELETON_COSTUME;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
caster->CastSpell(target, spellId, true, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_trick_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_trick_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 24751 Trick or Treat
|
||||
enum TrickOrTreatSpells
|
||||
{
|
||||
SPELL_TRICK = 24714,
|
||||
SPELL_TREAT = 24715,
|
||||
SPELL_TRICKED_OR_TREATED = 24755,
|
||||
SPELL_TRICKY_TREAT_SPEED = 42919,
|
||||
SPELL_TRICKY_TREAT_TRIGGER = 42965,
|
||||
SPELL_UPSET_TUMMY = 42966
|
||||
};
|
||||
|
||||
class spell_trick_or_treat : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_trick_or_treat() : SpellScriptLoader("spell_trick_or_treat") {}
|
||||
|
||||
class spell_trick_or_treat_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_trick_or_treat_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/)
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_TRICK) || !sSpellMgr->GetSpellInfo(SPELL_TREAT) || !sSpellMgr->GetSpellInfo(SPELL_TRICKED_OR_TREATED))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
if (Player* target = GetHitPlayer())
|
||||
{
|
||||
caster->CastSpell(target, roll_chance_i(50) ? SPELL_TRICK : SPELL_TREAT, true, NULL);
|
||||
caster->CastSpell(target, SPELL_TRICKED_OR_TREATED, true, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_trick_or_treat_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_trick_or_treat_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
class spell_tricky_treat : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_tricky_treat() : SpellScriptLoader("spell_tricky_treat") {}
|
||||
|
||||
class spell_tricky_treat_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_tricky_treat_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/)
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_TRICKY_TREAT_SPEED))
|
||||
return false;
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_TRICKY_TREAT_TRIGGER))
|
||||
return false;
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_UPSET_TUMMY))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
if (caster->HasAura(SPELL_TRICKY_TREAT_TRIGGER) && caster->GetAuraCount(SPELL_TRICKY_TREAT_SPEED) > 3 && roll_chance_i(33))
|
||||
caster->CastSpell(caster, SPELL_UPSET_TUMMY, true);
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_tricky_treat_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_tricky_treat_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_holiday_spell_scripts()
|
||||
{
|
||||
new spell_trick();
|
||||
new spell_trick_or_treat();
|
||||
new spell_tricky_treat();
|
||||
new spell_love_is_in_the_air_romantic_picnic();
|
||||
}
|
||||
|
||||
@@ -913,7 +913,7 @@ public:
|
||||
|
||||
struct npc_garments_of_questsAI : public npc_escortAI
|
||||
{
|
||||
npc_garments_of_questsAI(Creature* creature) : npc_escortAI(creature)
|
||||
npc_garments_of_questsAI(Creature* creature) : npc_escortAI(creature)
|
||||
{
|
||||
Reset();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user