mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-24 22:26:22 +00:00
Merge branch 'master' into Playerbot
This commit is contained in:
@@ -152,11 +152,12 @@ public:
|
||||
GameEventMgr::ActiveEvents const& activeEvents = sGameEventMgr->GetActiveEventList();
|
||||
if (activeEvents.find(eventId) != activeEvents.end())
|
||||
{
|
||||
handler->PSendSysMessage(LANG_EVENT_ALREADY_ACTIVE, uint16(eventId));
|
||||
handler->PSendSysMessage(LANG_EVENT_ALREADY_ACTIVE, uint16(eventId), eventData.description.c_str());
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
handler->PSendSysMessage(LANG_EVENT_STARTED, uint16(eventId), eventData.description.c_str());
|
||||
sGameEventMgr->StartEvent(eventId, true);
|
||||
return true;
|
||||
}
|
||||
@@ -184,11 +185,12 @@ public:
|
||||
|
||||
if (activeEvents.find(eventId) == activeEvents.end())
|
||||
{
|
||||
handler->PSendSysMessage(LANG_EVENT_NOT_ACTIVE, uint16(eventId));
|
||||
handler->PSendSysMessage(LANG_EVENT_NOT_ACTIVE, uint16(eventId), eventData.description.c_str());
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
handler->PSendSysMessage(LANG_EVENT_STOPPED, uint16(eventId), eventData.description.c_str());
|
||||
sGameEventMgr->StopEvent(eventId, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -31,8 +31,8 @@ uint32 const DragonspireMobs[3] = { NPC_BLACKHAND_DREADWEAVER, NPC_BLACKHAND_SUM
|
||||
|
||||
enum EventIds
|
||||
{
|
||||
EVENT_DARGONSPIRE_ROOM_STORE = 1,
|
||||
EVENT_DARGONSPIRE_ROOM_CHECK = 2,
|
||||
EVENT_DRAGONSPIRE_ROOM_STORE = 1,
|
||||
EVENT_DRAGONSPIRE_ROOM_CHECK = 2,
|
||||
|
||||
EVENT_SOLAKAR_WAVE = 3
|
||||
};
|
||||
@@ -352,7 +352,7 @@ public:
|
||||
if (data == AREATRIGGER_DRAGONSPIRE_HALL)
|
||||
{
|
||||
if (GetBossState(DATA_DRAGONSPIRE_ROOM) != DONE)
|
||||
Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_STORE, 1s);
|
||||
Events.ScheduleEvent(EVENT_DRAGONSPIRE_ROOM_STORE, 1s);
|
||||
}
|
||||
break;
|
||||
case DATA_SOLAKAR_FLAMEWREATH:
|
||||
@@ -555,14 +555,14 @@ public:
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_DARGONSPIRE_ROOM_STORE:
|
||||
case EVENT_DRAGONSPIRE_ROOM_STORE:
|
||||
Dragonspireroomstore();
|
||||
Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_CHECK, 3s);
|
||||
Events.ScheduleEvent(EVENT_DRAGONSPIRE_ROOM_CHECK, 3s);
|
||||
break;
|
||||
case EVENT_DARGONSPIRE_ROOM_CHECK:
|
||||
case EVENT_DRAGONSPIRE_ROOM_CHECK:
|
||||
Dragonspireroomcheck();
|
||||
if ((GetBossState(DATA_DRAGONSPIRE_ROOM) != DONE))
|
||||
Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_CHECK, 3s);
|
||||
Events.ScheduleEvent(EVENT_DRAGONSPIRE_ROOM_CHECK, 3s);
|
||||
break;
|
||||
case EVENT_SOLAKAR_WAVE:
|
||||
SummonSolakarWave(CurrentSolakarWave);
|
||||
|
||||
@@ -38,11 +38,12 @@ enum Spells
|
||||
|
||||
struct boss_maiden_of_virtue : public BossAI
|
||||
{
|
||||
boss_maiden_of_virtue(Creature* creature) : BossAI(creature, DATA_MAIDEN) { }
|
||||
|
||||
void Reset() override
|
||||
boss_maiden_of_virtue(Creature* creature) : BossAI(creature, DATA_MAIDEN)
|
||||
{
|
||||
BossAI::Reset();
|
||||
scheduler.SetValidator([this]
|
||||
{
|
||||
return !me->HasUnitState(UNIT_STATE_CASTING);
|
||||
});
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* who) override
|
||||
@@ -82,18 +83,6 @@ struct boss_maiden_of_virtue : public BossAI
|
||||
BossAI::JustDied(killer);
|
||||
Talk(SAY_DEATH);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
scheduler.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_maiden_of_virtue()
|
||||
|
||||
@@ -40,30 +40,11 @@ struct boss_servant_quarters : public BossAI
|
||||
void Reset() override
|
||||
{
|
||||
_scheduler.CancelAll();
|
||||
me->SetVisible(false);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
_scheduler.Schedule(5s, [this](TaskContext context)
|
||||
{
|
||||
if (instance->GetBossState(DATA_SERVANT_QUARTERS) == DONE)
|
||||
{
|
||||
me->SetVisible(true);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->RestoreFaction();
|
||||
}
|
||||
else
|
||||
{
|
||||
context.Repeat(5s);
|
||||
}
|
||||
});
|
||||
|
||||
if (me->GetEntry() == NPC_HYAKISS_THE_LURKER)
|
||||
{
|
||||
DoCastSelf(SPELL_SNEAK, true);
|
||||
}
|
||||
if (instance->GetData(DATA_SELECTED_RARE) != me->GetEntry())
|
||||
{
|
||||
me->DespawnOrUnsummon(1);
|
||||
}
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -35,7 +35,14 @@ const Position OptionalSpawn[] =
|
||||
ObjectData const creatureData[] =
|
||||
{
|
||||
{ NPC_ATTUMEN_THE_HUNTSMAN, DATA_ATTUMEN },
|
||||
{ NPC_MIDNIGHT, DATA_MIDNIGHT }
|
||||
{ NPC_MIDNIGHT, DATA_MIDNIGHT },
|
||||
{ NPC_DOROTHEE, DATA_DOROTHEE },
|
||||
{ NPC_TITO, DATA_TITO },
|
||||
{ NPC_ROAR, DATA_ROAR },
|
||||
{ NPC_STRAWMAN, DATA_STRAWMAN },
|
||||
{ NPC_TINHEAD, DATA_TINHEAD },
|
||||
{ NPC_ROMULO, DATA_ROMULO },
|
||||
{ NPC_JULIANNE, DATA_JULIANNE },
|
||||
};
|
||||
|
||||
class instance_karazhan : public InstanceMapScript
|
||||
|
||||
@@ -40,11 +40,10 @@ enum KZDataTypes
|
||||
DATA_MALCHEZZAR = 10,
|
||||
DATA_NIGHTBANE = 11,
|
||||
DATA_SERVANT_QUARTERS = 12,
|
||||
DATA_SELECTED_RARE = 13,
|
||||
DATA_OPERA_OZ_DEATHCOUNT = 14,
|
||||
DATA_KILREK = 15,
|
||||
DATA_OPERA_OZ_DEATHCOUNT = 13,
|
||||
DATA_KILREK = 14,
|
||||
|
||||
MAX_ENCOUNTERS = 16,
|
||||
MAX_ENCOUNTERS = 15,
|
||||
|
||||
DATA_GO_CURTAINS = 18,
|
||||
DATA_GO_STAGEDOORLEFT = 19,
|
||||
@@ -67,7 +66,17 @@ enum KZDataTypes
|
||||
DATA_CHESS_REINIT_PIECES = 34,
|
||||
DATA_CHESS_GAME_PHASE = 35,
|
||||
DATA_ECHO_OF_MEDIVH = 36,
|
||||
DATA_DUST_COVERED_CHEST = 37
|
||||
DATA_DUST_COVERED_CHEST = 37,
|
||||
|
||||
// Specific Opera Data
|
||||
DATA_DOROTHEE = 38,
|
||||
DATA_ROMULO = 39,
|
||||
DATA_JULIANNE = 40,
|
||||
|
||||
DATA_ROAR = 41,
|
||||
DATA_STRAWMAN = 42,
|
||||
DATA_TINHEAD = 43,
|
||||
DATA_TITO = 44
|
||||
};
|
||||
|
||||
enum KZOperaEvents
|
||||
@@ -101,6 +110,13 @@ enum KZCreatures
|
||||
NPC_KILREK = 17229,
|
||||
NPC_RELAY = 17645,
|
||||
NPC_BARNES = 16812,
|
||||
NPC_DOROTHEE = 17535,
|
||||
NPC_TITO = 17548,
|
||||
NPC_ROMULO = 17533,
|
||||
NPC_JULIANNE = 17534,
|
||||
NPC_ROAR = 17546,
|
||||
NPC_STRAWMAN = 17543,
|
||||
NPC_TINHEAD = 17547,
|
||||
|
||||
// Chess Event
|
||||
NPC_ECHO_OF_MEDIVH = 16816,
|
||||
|
||||
@@ -112,10 +112,6 @@ struct boss_lieutenant_drake : public BossAI
|
||||
{
|
||||
_JustDied();
|
||||
Talk(SAY_DEATH);
|
||||
if (InstanceScript* instance = me->GetInstanceScript())
|
||||
{
|
||||
instance->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_DRAKE_KILLED);
|
||||
}
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 point) override
|
||||
|
||||
@@ -257,7 +257,7 @@ public:
|
||||
{
|
||||
switch (param)
|
||||
{
|
||||
case ENCOUNTER_PROGRESS_DRAKE_KILLED:
|
||||
case ENCOUNTER_PROGRESS_BARRELS:
|
||||
events.ScheduleEvent(EVENT_OPEN_DOORS, 0);
|
||||
events.ScheduleEvent(EVENT_START_WP, 3000);
|
||||
break;
|
||||
|
||||
@@ -74,7 +74,7 @@ enum MiscIds
|
||||
|
||||
ENCOUNTER_PROGRESS_NONE = 0,
|
||||
ENCOUNTER_PROGRESS_BARRELS = 1,
|
||||
ENCOUNTER_PROGRESS_DRAKE_KILLED = 2,
|
||||
//ENCOUNTER_PROGRESS_DRAKE_KILLED = 2, No longer used. Kept as reference as DB might rely on the existing order.
|
||||
ENCOUNTER_PROGRESS_THRALL_ARMORED = 3,
|
||||
ENCOUNTER_PROGRESS_AMBUSHES_1 = 4,
|
||||
ENCOUNTER_PROGRESS_SKARLOC_KILLED = 5,
|
||||
|
||||
@@ -39,6 +39,8 @@ EndContentData */
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptedEscortAI.h"
|
||||
#include "ScriptedGossip.h"
|
||||
#include "SpellAuras.h"
|
||||
#include "SpellScript.h"
|
||||
|
||||
/*######
|
||||
## npc_draenei_survivor
|
||||
@@ -522,6 +524,55 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
enum NestlewoodOwlkin
|
||||
{
|
||||
NPC_NESTLEWOOD_OWLKIN_ENTRY = 16518,
|
||||
NPC_INOCULATED_OWLKIN_ENTRY = 16534,
|
||||
|
||||
TALK_OWLKIN = 0
|
||||
};
|
||||
|
||||
class spell_inoculate_nestlewood_owlkin : public AuraScript
|
||||
{
|
||||
public:
|
||||
PrepareAuraScript(spell_inoculate_nestlewood_owlkin)
|
||||
|
||||
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (Creature* owlkin = GetTarget()->ToCreature())
|
||||
if (owlkin->GetEntry() == NPC_NESTLEWOOD_OWLKIN_ENTRY)
|
||||
owlkin->SetFacingToObject(GetCaster());
|
||||
}
|
||||
|
||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
|
||||
return;
|
||||
|
||||
if (Creature* owlkin = GetTarget()->ToCreature())
|
||||
{
|
||||
if (owlkin->GetEntry() == NPC_NESTLEWOOD_OWLKIN_ENTRY)
|
||||
{
|
||||
Player* caster = GetCaster()->ToPlayer();
|
||||
if (owlkin->UpdateEntry(NPC_INOCULATED_OWLKIN_ENTRY))
|
||||
{
|
||||
owlkin->AI()->Talk(TALK_OWLKIN);
|
||||
owlkin->GetMotionMaster()->MoveRandom(15.0f);
|
||||
owlkin->SetUnitFlag(UnitFlags(UNIT_FLAG_IMMUNE_TO_PC));
|
||||
owlkin->DespawnOrUnsummon(15s, 0s);
|
||||
caster->RewardPlayerAndGroupAtEvent(NPC_INOCULATED_OWLKIN_ENTRY, caster);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectApply += AuraEffectApplyFn(spell_inoculate_nestlewood_owlkin::HandleEffectApply, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
|
||||
AfterEffectRemove += AuraEffectRemoveFn(spell_inoculate_nestlewood_owlkin::HandleEffectRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_azuremyst_isle()
|
||||
{
|
||||
new npc_draenei_survivor();
|
||||
@@ -531,4 +582,5 @@ void AddSC_azuremyst_isle()
|
||||
new go_ravager_cage();
|
||||
new npc_stillpine_capitive();
|
||||
new go_bristlelimb_cage();
|
||||
RegisterSpellScript(spell_inoculate_nestlewood_owlkin);
|
||||
}
|
||||
|
||||
@@ -702,7 +702,6 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
me->RemoveVehicleKit(); // not Crash (;
|
||||
events.ScheduleEvent(EVENT_TAKE_OFF, 2s);
|
||||
me->CastSpell(passenger, VEHICLE_SPELL_PARACHUTE, true);
|
||||
}
|
||||
|
||||
@@ -73,6 +73,13 @@ struct boss_harbinger_skyriss : public BossAI
|
||||
});
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
{
|
||||
BossAI::EnterEvadeMode(why);
|
||||
instance->DoRespawnCreature(DATA_WARDEN_MELLICHAR, true);
|
||||
me->DespawnOrUnsummon();
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
@@ -4917,6 +4917,87 @@ class spell_gen_curse_of_pain : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
enum SpiritofCompetition
|
||||
{
|
||||
// Spells
|
||||
SPELL_SPIRIT_OF_COMPETITION_PARTICIPANT_EFFECT = 48056,
|
||||
SPELL_SPIRIT_OF_COMPETITION_WINNER_EFFECT = 48057,
|
||||
// Mail
|
||||
MAIL_THE_COMPETITIORS_TABARD = 195,
|
||||
MAIL_A_GOLD_MEDALLION = 196,
|
||||
// NPC
|
||||
NPC_SPIRIT_OF_COMPETITION = 27217,
|
||||
// Items
|
||||
ITEM_COMPETITORS_TABARD = 36941,
|
||||
ITEM_GOLD_MEDALLION = 37297,
|
||||
};
|
||||
|
||||
class spell_gen_spirit_of_competition_participant : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_spirit_of_competition_participant);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_SPIRIT_OF_COMPETITION_PARTICIPANT_EFFECT });
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Player* player = GetHitPlayer())
|
||||
{
|
||||
player->CastSpell(player, SPELL_SPIRIT_OF_COMPETITION_PARTICIPANT_EFFECT, true);
|
||||
|
||||
Item* item = Item::CreateItem(ITEM_COMPETITORS_TABARD, 1);
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
|
||||
MailDraft(MAIL_THE_COMPETITIORS_TABARD)
|
||||
.AddItem(item)
|
||||
.SendMailTo(trans, player, MailSender(NPC_SPIRIT_OF_COMPETITION), MAIL_CHECK_MASK_HAS_BODY);
|
||||
CharacterDatabase.CommitTransaction(trans);
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_gen_spirit_of_competition_participant::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
class spell_gen_spirit_of_competition_winner : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_spirit_of_competition_winner);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_SPIRIT_OF_COMPETITION_WINNER_EFFECT });
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Player* player = GetHitPlayer())
|
||||
{
|
||||
player->CastSpell(player, SPELL_SPIRIT_OF_COMPETITION_WINNER_EFFECT, true);
|
||||
|
||||
Item* item = Item::CreateItem(ITEM_GOLD_MEDALLION, 1);
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
|
||||
MailDraft(MAIL_A_GOLD_MEDALLION)
|
||||
.AddItem(item)
|
||||
.SendMailTo(trans, player, MailSender(NPC_SPIRIT_OF_COMPETITION), MAIL_CHECK_MASK_HAS_BODY);
|
||||
CharacterDatabase.CommitTransaction(trans);
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_gen_spirit_of_competition_winner::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_generic_spell_scripts()
|
||||
{
|
||||
RegisterSpellScript(spell_silithyst);
|
||||
@@ -5063,4 +5144,6 @@ void AddSC_generic_spell_scripts()
|
||||
RegisterSpellScript(spell_gen_threshalisk_charge);
|
||||
RegisterSpellScript(spell_gen_shriveling_gaze);
|
||||
RegisterSpellScript(spell_gen_curse_of_pain);
|
||||
RegisterSpellScript(spell_gen_spirit_of_competition_participant);
|
||||
RegisterSpellScript(spell_gen_spirit_of_competition_winner);
|
||||
}
|
||||
|
||||
@@ -2975,8 +2975,9 @@ class spell_item_nigh_invulnerability : public SpellScript
|
||||
|
||||
enum Poultryzer
|
||||
{
|
||||
SPELL_POULTRYIZER_SUCCESS = 30501,
|
||||
SPELL_POULTRYIZER_BACKFIRE = 30504,
|
||||
SPELL_POULTRYIZER_SUCCESS_1 = 30501,
|
||||
SPELL_POULTRYIZER_SUCCESS_2 = 30504, // malfunction
|
||||
SPELL_POULTRYIZER_BACKFIRE = 30506, // Not removed on damage
|
||||
};
|
||||
|
||||
class spell_item_poultryizer : public SpellScript
|
||||
@@ -2985,13 +2986,22 @@ class spell_item_poultryizer : public SpellScript
|
||||
|
||||
bool Validate(SpellInfo const* /*spell*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_POULTRYIZER_SUCCESS, SPELL_POULTRYIZER_BACKFIRE });
|
||||
return ValidateSpellInfo({ SPELL_POULTRYIZER_SUCCESS_1, SPELL_POULTRYIZER_SUCCESS_2, SPELL_POULTRYIZER_BACKFIRE });
|
||||
}
|
||||
|
||||
void HandleDummy(SpellEffIndex /* effIndex */)
|
||||
{
|
||||
if (GetCastItem() && GetHitUnit())
|
||||
GetCaster()->CastSpell(GetHitUnit(), roll_chance_i(80) ? SPELL_POULTRYIZER_SUCCESS : SPELL_POULTRYIZER_BACKFIRE, true, GetCastItem());
|
||||
{
|
||||
if (roll_chance_i(80))
|
||||
{
|
||||
GetCaster()->CastSpell(GetHitUnit(), roll_chance_i(80) ? SPELL_POULTRYIZER_SUCCESS_1 : SPELL_POULTRYIZER_SUCCESS_2, true, GetCastItem());
|
||||
}
|
||||
else
|
||||
{
|
||||
GetCaster()->CastSpell(GetCaster(), SPELL_POULTRYIZER_BACKFIRE, true, GetCastItem());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
@@ -2451,6 +2451,27 @@ class spell_q4735_collect_rookery_egg : public SpellScript
|
||||
}
|
||||
};
|
||||
|
||||
enum BookOfFelNames
|
||||
{
|
||||
SPELL_METAMORPHOSIS = 36298
|
||||
};
|
||||
|
||||
class spell_q10651_q10692_book_of_fel_names : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_q10651_q10692_book_of_fel_names);
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (GetHitUnit()->HasAura(SPELL_METAMORPHOSIS))
|
||||
GetHitUnit()->RemoveAurasDueToSpell(SPELL_METAMORPHOSIS);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_q10651_q10692_book_of_fel_names::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_quest_spell_scripts()
|
||||
{
|
||||
RegisterSpellAndAuraScriptPair(spell_q11065_wrangle_some_aether_rays, spell_q11065_wrangle_some_aether_rays_aura);
|
||||
@@ -2522,4 +2543,5 @@ void AddSC_quest_spell_scripts()
|
||||
RegisterSpellScript(spell_q12919_gymers_throw);
|
||||
RegisterSpellScript(spell_q5056_summon_shy_rotam);
|
||||
RegisterSpellScript(spell_q4735_collect_rookery_egg);
|
||||
RegisterSpellScript(spell_q10651_q10692_book_of_fel_names);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user