mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-07 04:47:45 +00:00
refactor(Core/Scripts): restyle scripts lib with astyle (#3467)
This commit is contained in:
@@ -72,7 +72,7 @@ public:
|
||||
|
||||
void SetControl(Player* player, bool on)
|
||||
{
|
||||
WorldPacket data(SMSG_CLIENT_CONTROL_UPDATE, me->GetPackGUID().size()+1);
|
||||
WorldPacket data(SMSG_CLIENT_CONTROL_UPDATE, me->GetPackGUID().size() + 1);
|
||||
data.append(me->GetPackGUID());
|
||||
data << uint8(on ? 1 : 0);
|
||||
player->GetSession()->SendPacket(&data);
|
||||
@@ -100,16 +100,16 @@ public:
|
||||
Talk(EYE_TEXT_LAUNCH, me->GetCharmerOrOwnerPlayerOrPlayerItself());
|
||||
break;
|
||||
case EVENT_LAUNCH:
|
||||
{
|
||||
me->SetSpeed(MOVE_FLIGHT, 5.0f, true);
|
||||
{
|
||||
me->SetSpeed(MOVE_FLIGHT, 5.0f, true);
|
||||
|
||||
const Position EYE_DESTINATION_1 = { me->GetPositionX()-40.0f, me->GetPositionY(), me->GetPositionZ()+10.0f, 0.0f };
|
||||
const Position EYE_DESTINATION_2 = { 1768.0f, -5876.0f, 153.0f, 0.0f };
|
||||
const Position EYE_DESTINATION_1 = { me->GetPositionX() - 40.0f, me->GetPositionY(), me->GetPositionZ() + 10.0f, 0.0f };
|
||||
const Position EYE_DESTINATION_2 = { 1768.0f, -5876.0f, 153.0f, 0.0f };
|
||||
|
||||
me->GetMotionMaster()->MovePoint(EYE_POINT_DESTINATION_1, EYE_DESTINATION_1);
|
||||
me->GetMotionMaster()->MovePoint(EYE_POINT_DESTINATION_2, EYE_DESTINATION_2);
|
||||
break;
|
||||
}
|
||||
me->GetMotionMaster()->MovePoint(EYE_POINT_DESTINATION_1, EYE_DESTINATION_1);
|
||||
me->GetMotionMaster()->MovePoint(EYE_POINT_DESTINATION_2, EYE_DESTINATION_2);
|
||||
break;
|
||||
}
|
||||
case EVENT_REGAIN_CONTROL:
|
||||
if (Player* player = me->GetCharmerOrOwnerPlayerOrPlayerItself())
|
||||
{
|
||||
@@ -127,30 +127,30 @@ public:
|
||||
|
||||
class spell_q12641_death_comes_from_on_high_summon_ghouls : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_q12641_death_comes_from_on_high_summon_ghouls() : SpellScriptLoader("spell_q12641_death_comes_from_on_high_summon_ghouls") { }
|
||||
public:
|
||||
spell_q12641_death_comes_from_on_high_summon_ghouls() : SpellScriptLoader("spell_q12641_death_comes_from_on_high_summon_ghouls") { }
|
||||
|
||||
class spell_q12641_death_comes_from_on_high_summon_ghouls_SpellScript : public SpellScript
|
||||
class spell_q12641_death_comes_from_on_high_summon_ghouls_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_q12641_death_comes_from_on_high_summon_ghouls_SpellScript);
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex effIndex)
|
||||
{
|
||||
PrepareSpellScript(spell_q12641_death_comes_from_on_high_summon_ghouls_SpellScript);
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex effIndex)
|
||||
{
|
||||
PreventHitEffect(effIndex);
|
||||
if (Unit* target = GetHitUnit())
|
||||
GetCaster()->CastSpell(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 54522, true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_q12641_death_comes_from_on_high_summon_ghouls_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_q12641_death_comes_from_on_high_summon_ghouls_SpellScript();
|
||||
PreventHitEffect(effIndex);
|
||||
if (Unit* target = GetHitUnit())
|
||||
GetCaster()->CastSpell(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 54522, true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_q12641_death_comes_from_on_high_summon_ghouls_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_q12641_death_comes_from_on_high_summon_ghouls_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
enum deathsChallenge
|
||||
@@ -261,11 +261,11 @@ public:
|
||||
me->GetMotionMaster()->MoveFollow(caster, 2.0f, 0.0f);
|
||||
|
||||
events.ScheduleEvent(EVENT_SPEAK, 3000);
|
||||
events.ScheduleEvent(EVENT_SPEAK+1, 7000);
|
||||
events.ScheduleEvent(EVENT_SPEAK+2, 8000);
|
||||
events.ScheduleEvent(EVENT_SPEAK+3, 9000);
|
||||
events.ScheduleEvent(EVENT_SPEAK+4, 10000);
|
||||
events.ScheduleEvent(EVENT_SPEAK+5, 11000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 1, 7000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 2, 8000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 3, 9000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 4, 10000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 5, 11000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ public:
|
||||
{
|
||||
damage = 0;
|
||||
events.ScheduleEvent(EVENT_DUEL_LOST, 2000);
|
||||
events.ScheduleEvent(EVENT_DUEL_LOST+1, 6000);
|
||||
events.ScheduleEvent(EVENT_DUEL_LOST + 1, 6000);
|
||||
_duelGUID = 0;
|
||||
_duelInProgress = 0;
|
||||
|
||||
@@ -315,16 +315,16 @@ public:
|
||||
Talk(SAY_DUEL, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
break;
|
||||
case EVENT_SPEAK+1:
|
||||
Talk(SAY_DUEL+1, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
Talk(SAY_DUEL + 1, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
break;
|
||||
case EVENT_SPEAK+2:
|
||||
Talk(SAY_DUEL+2, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
Talk(SAY_DUEL + 2, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
break;
|
||||
case EVENT_SPEAK+3:
|
||||
Talk(SAY_DUEL+3, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
Talk(SAY_DUEL + 3, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
break;
|
||||
case EVENT_SPEAK+4:
|
||||
Talk(SAY_DUEL+4, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
Talk(SAY_DUEL + 4, ObjectAccessor::GetPlayer(*me, _duelGUID));
|
||||
break;
|
||||
case EVENT_SPEAK+5:
|
||||
me->setFaction(FACTION_HOSTILE);
|
||||
@@ -377,63 +377,63 @@ enum GiftOfTheHarvester
|
||||
|
||||
class spell_item_gift_of_the_harvester : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_item_gift_of_the_harvester() : SpellScriptLoader("spell_item_gift_of_the_harvester") { }
|
||||
public:
|
||||
spell_item_gift_of_the_harvester() : SpellScriptLoader("spell_item_gift_of_the_harvester") { }
|
||||
|
||||
class spell_item_gift_of_the_harvester_SpellScript : public SpellScript
|
||||
class spell_item_gift_of_the_harvester_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_item_gift_of_the_harvester_SpellScript);
|
||||
|
||||
SpellCastResult CheckRequirement()
|
||||
{
|
||||
PrepareSpellScript(spell_item_gift_of_the_harvester_SpellScript);
|
||||
|
||||
SpellCastResult CheckRequirement()
|
||||
std::list<Creature*> ghouls;
|
||||
GetCaster()->GetAllMinionsByEntry(ghouls, NPC_GHOUL);
|
||||
if (ghouls.size() >= MAX_GHOULS)
|
||||
{
|
||||
std::list<Creature*> ghouls;
|
||||
GetCaster()->GetAllMinionsByEntry(ghouls, NPC_GHOUL);
|
||||
if (ghouls.size() >= MAX_GHOULS)
|
||||
{
|
||||
SetCustomCastResultMessage(SPELL_CUSTOM_ERROR_TOO_MANY_GHOULS);
|
||||
return SPELL_FAILED_CUSTOM_ERROR;
|
||||
}
|
||||
|
||||
return SPELL_CAST_OK;
|
||||
SetCustomCastResultMessage(SPELL_CUSTOM_ERROR_TOO_MANY_GHOULS);
|
||||
return SPELL_FAILED_CUSTOM_ERROR;
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnCheckCast += SpellCheckCastFn(spell_item_gift_of_the_harvester_SpellScript::CheckRequirement);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_item_gift_of_the_harvester_SpellScript();
|
||||
return SPELL_CAST_OK;
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnCheckCast += SpellCheckCastFn(spell_item_gift_of_the_harvester_SpellScript::CheckRequirement);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_item_gift_of_the_harvester_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
class spell_q12698_the_gift_that_keeps_on_giving : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_q12698_the_gift_that_keeps_on_giving() : SpellScriptLoader("spell_q12698_the_gift_that_keeps_on_giving") { }
|
||||
public:
|
||||
spell_q12698_the_gift_that_keeps_on_giving() : SpellScriptLoader("spell_q12698_the_gift_that_keeps_on_giving") { }
|
||||
|
||||
class spell_q12698_the_gift_that_keeps_on_giving_SpellScript : public SpellScript
|
||||
class spell_q12698_the_gift_that_keeps_on_giving_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_q12698_the_gift_that_keeps_on_giving_SpellScript);
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
PrepareSpellScript(spell_q12698_the_gift_that_keeps_on_giving_SpellScript);
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (GetOriginalCaster() && GetHitUnit())
|
||||
GetOriginalCaster()->CastSpell(GetHitUnit(), urand(0, 1) ? GetEffectValue() : SPELL_SUMMON_SCARLET_GHOST, true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_q12698_the_gift_that_keeps_on_giving_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_q12698_the_gift_that_keeps_on_giving_SpellScript();
|
||||
if (GetOriginalCaster() && GetHitUnit())
|
||||
GetOriginalCaster()->CastSpell(GetHitUnit(), urand(0, 1) ? GetEffectValue() : SPELL_SUMMON_SCARLET_GHOST, true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_q12698_the_gift_that_keeps_on_giving_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_q12698_the_gift_that_keeps_on_giving_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
class npc_scarlet_ghoul : public CreatureScript
|
||||
@@ -507,7 +507,7 @@ public:
|
||||
me->SetReactState(REACT_DEFENSIVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
if (Player* owner = me->GetCharmerOrOwnerPlayerOrPlayerItself())
|
||||
me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, frand(0.0f, 2*M_PI));
|
||||
me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, frand(0.0f, 2 * M_PI));
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_GHOUL_CHECK_COMBAT, 1000);
|
||||
return;
|
||||
@@ -567,7 +567,7 @@ public:
|
||||
creature->CastSpell(owner, 52517, true);
|
||||
|
||||
creature->AI()->SetGUID(me->GetGUID());
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -611,7 +611,7 @@ public:
|
||||
if (summonAttackers >= 15000)
|
||||
{
|
||||
for (uint8 i = 0; i < 15; ++i)
|
||||
if (Creature* summon = me->SummonCreature(28834 /*NPC_SCARLET_FLEET_DEFENDER*/, 2192.56f+irand(-10, 10), -6147.90f+irand(-10, 10), 5.2f, 4.7f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 45000))
|
||||
if (Creature* summon = me->SummonCreature(28834 /*NPC_SCARLET_FLEET_DEFENDER*/, 2192.56f + irand(-10, 10), -6147.90f + irand(-10, 10), 5.2f, 4.7f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 45000))
|
||||
{
|
||||
summon->SetHomePosition(me->GetHomePosition());
|
||||
summon->AI()->AttackStart(me);
|
||||
@@ -770,103 +770,103 @@ public:
|
||||
{
|
||||
switch (phase)
|
||||
{
|
||||
case PHASE_CHAINED:
|
||||
if (!anchorGUID)
|
||||
{
|
||||
if (Creature* anchor = me->FindNearestCreature(29521, 30))
|
||||
case PHASE_CHAINED:
|
||||
if (!anchorGUID)
|
||||
{
|
||||
anchor->AI()->SetGUID(me->GetGUID());
|
||||
anchor->CastSpell(me, SPELL_SOUL_PRISON_CHAIN, true);
|
||||
anchorGUID = anchor->GetGUID();
|
||||
}
|
||||
|
||||
float dist = 99.0f;
|
||||
GameObject* prison = nullptr;
|
||||
|
||||
for (uint8 i = 0; i < 12; ++i)
|
||||
{
|
||||
if (GameObject* temp_prison = me->FindNearestGameObject(acherus_soul_prison[i], 100))
|
||||
if (Creature* anchor = me->FindNearestCreature(29521, 30))
|
||||
{
|
||||
if (temp_prison && me->IsWithinDist(temp_prison, dist, false))
|
||||
anchor->AI()->SetGUID(me->GetGUID());
|
||||
anchor->CastSpell(me, SPELL_SOUL_PRISON_CHAIN, true);
|
||||
anchorGUID = anchor->GetGUID();
|
||||
}
|
||||
|
||||
float dist = 99.0f;
|
||||
GameObject* prison = nullptr;
|
||||
|
||||
for (uint8 i = 0; i < 12; ++i)
|
||||
{
|
||||
if (GameObject* temp_prison = me->FindNearestGameObject(acherus_soul_prison[i], 100))
|
||||
{
|
||||
dist = me->GetDistance2d(temp_prison);
|
||||
prison = temp_prison;
|
||||
if (temp_prison && me->IsWithinDist(temp_prison, dist, false))
|
||||
{
|
||||
dist = me->GetDistance2d(temp_prison);
|
||||
prison = temp_prison;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (prison)
|
||||
prison->ResetDoorOrButton();
|
||||
}
|
||||
break;
|
||||
case PHASE_TO_EQUIP:
|
||||
if (wait_timer)
|
||||
{
|
||||
if (wait_timer > diff)
|
||||
wait_timer -= diff;
|
||||
else
|
||||
{
|
||||
me->GetMotionMaster()->MovePoint(1, anchorX, anchorY, me->GetPositionZ());
|
||||
//sLog->outDebug(LOG_FILTER_TSCR, "npc_unworthy_initiateAI: move to %f %f %f", anchorX, anchorY, me->GetPositionZ());
|
||||
phase = PHASE_EQUIPING;
|
||||
wait_timer = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PHASE_TO_ATTACK:
|
||||
if (wait_timer)
|
||||
{
|
||||
if (wait_timer > diff)
|
||||
wait_timer -= diff;
|
||||
else
|
||||
{
|
||||
me->setFaction(14);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
phase = PHASE_ATTACKING;
|
||||
|
||||
if (Player* target = ObjectAccessor::GetPlayer(*me, playerGUID))
|
||||
AttackStart(target);
|
||||
wait_timer = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PHASE_ATTACKING:
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_ICY_TOUCH:
|
||||
DoCastVictim(SPELL_ICY_TOUCH);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_ICY_TOUCH, 5000, GCD_CAST);
|
||||
break;
|
||||
case EVENT_PLAGUE_STRIKE:
|
||||
DoCastVictim(SPELL_PLAGUE_STRIKE);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_PLAGUE_STRIKE, 5000, GCD_CAST);
|
||||
break;
|
||||
case EVENT_BLOOD_STRIKE:
|
||||
DoCastVictim(SPELL_BLOOD_STRIKE);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_BLOOD_STRIKE, 5000, GCD_CAST);
|
||||
break;
|
||||
case EVENT_DEATH_COIL:
|
||||
DoCastVictim(SPELL_DEATH_COIL);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_DEATH_COIL, 5000, GCD_CAST);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (prison)
|
||||
prison->ResetDoorOrButton();
|
||||
}
|
||||
break;
|
||||
case PHASE_TO_EQUIP:
|
||||
if (wait_timer)
|
||||
{
|
||||
if (wait_timer > diff)
|
||||
wait_timer -= diff;
|
||||
else
|
||||
{
|
||||
me->GetMotionMaster()->MovePoint(1, anchorX, anchorY, me->GetPositionZ());
|
||||
//sLog->outDebug(LOG_FILTER_TSCR, "npc_unworthy_initiateAI: move to %f %f %f", anchorX, anchorY, me->GetPositionZ());
|
||||
phase = PHASE_EQUIPING;
|
||||
wait_timer = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PHASE_TO_ATTACK:
|
||||
if (wait_timer)
|
||||
{
|
||||
if (wait_timer > diff)
|
||||
wait_timer -= diff;
|
||||
else
|
||||
{
|
||||
me->setFaction(14);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
phase = PHASE_ATTACKING;
|
||||
|
||||
if (Player* target = ObjectAccessor::GetPlayer(*me, playerGUID))
|
||||
AttackStart(target);
|
||||
wait_timer = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PHASE_ATTACKING:
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_ICY_TOUCH:
|
||||
DoCastVictim(SPELL_ICY_TOUCH);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_ICY_TOUCH, 5000, GCD_CAST);
|
||||
break;
|
||||
case EVENT_PLAGUE_STRIKE:
|
||||
DoCastVictim(SPELL_PLAGUE_STRIKE);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_PLAGUE_STRIKE, 5000, GCD_CAST);
|
||||
break;
|
||||
case EVENT_BLOOD_STRIKE:
|
||||
DoCastVictim(SPELL_BLOOD_STRIKE);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_BLOOD_STRIKE, 5000, GCD_CAST);
|
||||
break;
|
||||
case EVENT_DEATH_COIL:
|
||||
DoCastVictim(SPELL_DEATH_COIL);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_DEATH_COIL, 5000, GCD_CAST);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
DoMeleeAttackIfReady();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -942,7 +942,7 @@ public:
|
||||
{
|
||||
npc_scarlet_miner_cartAI(Creature* creature) : PassiveAI(creature), minerGUID(0)
|
||||
{
|
||||
me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->setFaction(35);
|
||||
me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); // Modelid2 is a horse.
|
||||
}
|
||||
@@ -965,7 +965,7 @@ public:
|
||||
me->SetSpeed(MOVE_RUN, 1.25f);
|
||||
|
||||
me->GetMotionMaster()->MoveFollow(miner, 1.0f, 0);
|
||||
me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->setFaction(35);
|
||||
}
|
||||
}
|
||||
@@ -1076,7 +1076,7 @@ public:
|
||||
{
|
||||
me->SetFacingToObject(car);
|
||||
// xinef: add some flags
|
||||
car->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
car->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
car->setFaction(35);
|
||||
}
|
||||
Talk(SAY_SCARLET_MINER_0);
|
||||
@@ -1118,7 +1118,8 @@ public:
|
||||
car->AI()->DoAction(0);
|
||||
IntroPhase = 0;
|
||||
}
|
||||
} else IntroTimer-=diff;
|
||||
}
|
||||
else IntroTimer -= diff;
|
||||
}
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
}
|
||||
@@ -1158,7 +1159,7 @@ public:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -139,7 +139,8 @@ public:
|
||||
++speechCounter;
|
||||
DoCastAOE(SPELL_THREAT_PULSE, true);
|
||||
|
||||
} else
|
||||
}
|
||||
else
|
||||
speechTimer -= diff;
|
||||
|
||||
return;
|
||||
@@ -347,29 +348,29 @@ public:
|
||||
m_uiWave_Timer = 1000;
|
||||
break;
|
||||
case 4:
|
||||
{
|
||||
Creature* temp = ObjectAccessor::GetCreature(*me, m_uiValrothGUID);
|
||||
{
|
||||
Creature* temp = ObjectAccessor::GetCreature(*me, m_uiValrothGUID);
|
||||
|
||||
if (!temp || !temp->IsAlive())
|
||||
{
|
||||
Talk(SAY_BREAKOUT8);
|
||||
m_uiWave_Timer = 5000;
|
||||
}
|
||||
else
|
||||
{
|
||||
// xinef: despawn check
|
||||
Player* player = GetPlayerForEscort();
|
||||
if (!player || me->GetDistance(player) > 60.0f)
|
||||
if (!temp || !temp->IsAlive())
|
||||
{
|
||||
me->DespawnOrUnsummon();
|
||||
return;
|
||||
Talk(SAY_BREAKOUT8);
|
||||
m_uiWave_Timer = 5000;
|
||||
}
|
||||
else
|
||||
{
|
||||
// xinef: despawn check
|
||||
Player* player = GetPlayerForEscort();
|
||||
if (!player || me->GetDistance(player) > 60.0f)
|
||||
{
|
||||
me->DespawnOrUnsummon();
|
||||
return;
|
||||
}
|
||||
|
||||
m_uiWave_Timer = 2500;
|
||||
return; //return, we don't want m_uiWave to increment now
|
||||
m_uiWave_Timer = 2500;
|
||||
return; //return, we don't want m_uiWave to increment now
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
Talk(SAY_BREAKOUT9);
|
||||
me->RemoveAurasDueToSpell(SPELL_ANTI_MAGIC_ZONE);
|
||||
@@ -450,25 +451,26 @@ public:
|
||||
{
|
||||
switch (uiStage)
|
||||
{
|
||||
case 1:
|
||||
me->SetWalk(true);
|
||||
if (GameObject* tree = me->FindNearestGameObject(GO_INCONSPICUOUS_TREE, 40.0f))
|
||||
{
|
||||
Talk(SAY_TREE1);
|
||||
float x, y, z;
|
||||
tree->GetContactPoint(me, x, y, z);
|
||||
me->GetMotionMaster()->MovePoint(1, x, y, z);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (GameObject* tree = me->FindNearestGameObject(GO_INCONSPICUOUS_TREE, 40.0f))
|
||||
if (Unit* unit = tree->GetOwner())
|
||||
AttackStart(unit);
|
||||
break;
|
||||
case 1:
|
||||
me->SetWalk(true);
|
||||
if (GameObject* tree = me->FindNearestGameObject(GO_INCONSPICUOUS_TREE, 40.0f))
|
||||
{
|
||||
Talk(SAY_TREE1);
|
||||
float x, y, z;
|
||||
tree->GetContactPoint(me, x, y, z);
|
||||
me->GetMotionMaster()->MovePoint(1, x, y, z);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (GameObject* tree = me->FindNearestGameObject(GO_INCONSPICUOUS_TREE, 40.0f))
|
||||
if (Unit* unit = tree->GetOwner())
|
||||
AttackStart(unit);
|
||||
break;
|
||||
}
|
||||
uiStage_timer = 3000;
|
||||
uiStage = 0;
|
||||
} else uiStage_timer -= diff;
|
||||
}
|
||||
else uiStage_timer -= diff;
|
||||
}
|
||||
|
||||
if (!UpdateVictim())
|
||||
@@ -484,7 +486,7 @@ public:
|
||||
|
||||
enum valroth
|
||||
{
|
||||
//SAY_VALROTH1 = 0, Unused
|
||||
//SAY_VALROTH1 = 0, Unused
|
||||
SAY_VALROTH_AGGRO = 1,
|
||||
SAY_VALROTH_RAND = 2,
|
||||
SAY_VALROTH_DEATH = 3,
|
||||
@@ -532,28 +534,31 @@ public:
|
||||
Shout();
|
||||
DoCast(me, SPELL_RENEW);
|
||||
uiRenew_timer = urand(1000, 6000);
|
||||
} else uiRenew_timer -= diff;
|
||||
}
|
||||
else uiRenew_timer -= diff;
|
||||
|
||||
if (uiInquisitor_Penance_timer <= diff)
|
||||
{
|
||||
Shout();
|
||||
DoCastVictim(SPELL_INQUISITOR_PENANCE);
|
||||
uiInquisitor_Penance_timer = urand(2000, 7000);
|
||||
} else uiInquisitor_Penance_timer -= diff;
|
||||
}
|
||||
else uiInquisitor_Penance_timer -= diff;
|
||||
|
||||
if (uiValroth_Smite_timer <= diff)
|
||||
{
|
||||
Shout();
|
||||
DoCastVictim(SPELL_VALROTH_SMITE);
|
||||
uiValroth_Smite_timer = urand(1000, 6000);
|
||||
} else uiValroth_Smite_timer -= diff;
|
||||
}
|
||||
else uiValroth_Smite_timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void Shout()
|
||||
{
|
||||
if (rand()%100 < 15)
|
||||
if (rand() % 100 < 15)
|
||||
Talk(SAY_VALROTH_RAND);
|
||||
}
|
||||
|
||||
@@ -737,14 +742,30 @@ public:
|
||||
case RACE_HUMAN:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_5, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_1, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_5, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_7, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_5, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_1, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_5, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_7, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -767,14 +788,30 @@ public:
|
||||
case RACE_ORC:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_6, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_1, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_7, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_8, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_6, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_1, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_7, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_8, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -797,14 +834,30 @@ public:
|
||||
case RACE_DWARF:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_2, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_2, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_3, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_2, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_5, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_2, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_2, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_2, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_3, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_2, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_5, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_2, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -827,14 +880,30 @@ public:
|
||||
case RACE_NIGHTELF:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_5, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_1, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_6, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_2, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_5, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_1, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_6, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_2, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -857,14 +926,30 @@ public:
|
||||
case RACE_UNDEAD_PLAYER:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_3, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_4, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_3, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_1, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_3, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_3, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_4, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_3, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_1, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_3, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -887,14 +972,30 @@ public:
|
||||
case RACE_TAUREN:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_1, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_5, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_8, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_9, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_1, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_5, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_8, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_9, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -917,14 +1018,30 @@ public:
|
||||
case RACE_GNOME:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_4, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_1, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_4, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_6, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_4, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_1, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_4, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_6, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -947,14 +1064,30 @@ public:
|
||||
case RACE_TROLL:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_3, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_7, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_2, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_6, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_9, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_10, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_4, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_3, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_7, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_2, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_6, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_9, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_10, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_4, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -977,14 +1110,28 @@ public:
|
||||
case RACE_BLOODELF:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_1, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_1, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_1, player);
|
||||
break;
|
||||
//case 5: //unknown
|
||||
case 6: Talk(SAY_EXEC_THINK_3, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_3, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -1007,14 +1154,30 @@ public:
|
||||
case RACE_DRAENEI:
|
||||
switch (ExecuteSpeech_Counter)
|
||||
{
|
||||
case 0: Talk(SAY_EXEC_START_1, player); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
|
||||
case 2: Talk(SAY_EXEC_PROG_1, player); break;
|
||||
case 3: Talk(SAY_EXEC_NAME_1, player); break;
|
||||
case 4: Talk(SAY_EXEC_RECOG_2, player); break;
|
||||
case 5: Talk(SAY_EXEC_NOREM_1, player); break;
|
||||
case 6: Talk(SAY_EXEC_THINK_4, player); break;
|
||||
case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
|
||||
case 0:
|
||||
Talk(SAY_EXEC_START_1, player);
|
||||
break;
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EXEC_PROG_1, player);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_EXEC_NAME_1, player);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_EXEC_RECOG_2, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_EXEC_NOREM_1, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_EXEC_THINK_4, player);
|
||||
break;
|
||||
case 7:
|
||||
Talk(SAY_EXEC_LISTEN_1, player);
|
||||
break;
|
||||
case 8:
|
||||
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
|
||||
Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
|
||||
@@ -1052,29 +1215,29 @@ public:
|
||||
|
||||
class spell_q12779_an_end_to_all_things : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_q12779_an_end_to_all_things() : SpellScriptLoader("spell_q12779_an_end_to_all_things") { }
|
||||
public:
|
||||
spell_q12779_an_end_to_all_things() : SpellScriptLoader("spell_q12779_an_end_to_all_things") { }
|
||||
|
||||
class spell_q12779_an_end_to_all_things_SpellScript : public SpellScript
|
||||
class spell_q12779_an_end_to_all_things_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_q12779_an_end_to_all_things_SpellScript);
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
PrepareSpellScript(spell_q12779_an_end_to_all_things_SpellScript);
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (GetHitUnit())
|
||||
GetHitUnit()->CastSpell(GetCaster(), GetEffectValue(), true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_q12779_an_end_to_all_things_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_q12779_an_end_to_all_things_SpellScript();
|
||||
if (GetHitUnit())
|
||||
GetHitUnit()->CastSpell(GetCaster(), GetEffectValue(), true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_q12779_an_end_to_all_things_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_q12779_an_end_to_all_things_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_the_scarlet_enclave_c2()
|
||||
|
||||
@@ -302,19 +302,19 @@ const Position LightOfDawnFightPos[] =
|
||||
|
||||
class DelayedSummonEvent : public BasicEvent
|
||||
{
|
||||
public:
|
||||
DelayedSummonEvent(Unit* owner, uint32 entry, Position pos) : _owner(owner), _entry(entry), _pos(pos) { }
|
||||
public:
|
||||
DelayedSummonEvent(Unit* owner, uint32 entry, Position pos) : _owner(owner), _entry(entry), _pos(pos) { }
|
||||
|
||||
bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/)
|
||||
{
|
||||
_owner->SummonCreature(_entry, _pos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3000);
|
||||
return true;
|
||||
}
|
||||
bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/)
|
||||
{
|
||||
_owner->SummonCreature(_entry, _pos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3000);
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
Unit* _owner;
|
||||
uint32 _entry;
|
||||
Position _pos;
|
||||
private:
|
||||
Unit* _owner;
|
||||
uint32 _entry;
|
||||
Position _pos;
|
||||
};
|
||||
|
||||
class npc_highlord_darion_mograine : public CreatureScript
|
||||
@@ -334,7 +334,7 @@ public:
|
||||
|
||||
if (player->GetQuestStatus(12801) == QUEST_STATUS_INCOMPLETE && !creature->AI()->GetData(WORLD_STATE_SOLDIERS_ENABLE))
|
||||
AddGossipItemFor(player, 9795, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
@@ -342,7 +342,7 @@ public:
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
ClearGossipMenuFor(player);
|
||||
CloseGossipMenuFor(player);
|
||||
@@ -356,8 +356,8 @@ public:
|
||||
npc_highlord_darion_mograineAI(Creature* creature) : ScriptedAI(creature), summons(me)
|
||||
{
|
||||
battleStarted = ENCOUNTER_STATE_NONE;
|
||||
me->SetCorpseDelay(3*60);
|
||||
me->SetRespawnTime(3*60);
|
||||
me->SetCorpseDelay(3 * 60);
|
||||
me->SetRespawnTime(3 * 60);
|
||||
resetExecuted = false;
|
||||
}
|
||||
|
||||
@@ -403,12 +403,18 @@ public:
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case WORLD_STATE_DEFENDERS_COUNT: return defendersRemaining;
|
||||
case WORLD_STATE_SCOURGE_COUNT: return scourgeRemaining;
|
||||
case WORLD_STATE_SOLDIERS_ENABLE: return me->IsAlive() && (startTimeRemaining || battleStarted);
|
||||
case WORLD_STATE_COUNTDOWN_ENABLE: return me->IsAlive() && startTimeRemaining;
|
||||
case WORLD_STATE_COUNTDOWN_TIME: return startTimeRemaining;
|
||||
case WORLD_STATE_EVENT_BEGIN_ENABLE: return me->IsAlive() && !startTimeRemaining && battleStarted;
|
||||
case WORLD_STATE_DEFENDERS_COUNT:
|
||||
return defendersRemaining;
|
||||
case WORLD_STATE_SCOURGE_COUNT:
|
||||
return scourgeRemaining;
|
||||
case WORLD_STATE_SOLDIERS_ENABLE:
|
||||
return me->IsAlive() && (startTimeRemaining || battleStarted);
|
||||
case WORLD_STATE_COUNTDOWN_ENABLE:
|
||||
return me->IsAlive() && startTimeRemaining;
|
||||
case WORLD_STATE_COUNTDOWN_TIME:
|
||||
return startTimeRemaining;
|
||||
case WORLD_STATE_EVENT_BEGIN_ENABLE:
|
||||
return me->IsAlive() && !startTimeRemaining && battleStarted;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -449,7 +455,7 @@ public:
|
||||
if (battleStarted == ENCOUNTER_STATE_OUTRO && cr->GetEntry() == NPC_DEFENDER_OF_THE_LIGHT)
|
||||
{
|
||||
cr->SetReactState(REACT_PASSIVE);
|
||||
cr->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
cr->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
cr->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY1H);
|
||||
cr->HandleEmoteCommand(EMOTE_STATE_READY1H);
|
||||
}
|
||||
@@ -480,8 +486,8 @@ public:
|
||||
void JustDied(Unit*) override
|
||||
{
|
||||
summons.DespawnAll();
|
||||
me->SetCorpseDelay(3*60);
|
||||
me->SetRespawnTime(3*60);
|
||||
me->SetCorpseDelay(3 * 60);
|
||||
me->SetRespawnTime(3 * 60);
|
||||
}
|
||||
|
||||
void FinishFight()
|
||||
@@ -530,8 +536,8 @@ public:
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
me->SetVisible(true);
|
||||
me->setActive(true);
|
||||
@@ -634,27 +640,27 @@ public:
|
||||
summons.DoAction(ACTION_PLAY_EMOTE);
|
||||
break;
|
||||
case EVENT_START_COUNTDOWN_13:
|
||||
{
|
||||
uint8 first = 1;
|
||||
for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
{
|
||||
if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
|
||||
uint8 first = 1;
|
||||
for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
{
|
||||
Position pos = LightOfDawnPos[first];
|
||||
summon->SetHomePosition(pos);
|
||||
summon->GetMotionMaster()->MovePoint(1, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), true, false);
|
||||
if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
|
||||
{
|
||||
Position pos = LightOfDawnPos[first];
|
||||
summon->SetHomePosition(pos);
|
||||
summon->GetMotionMaster()->MovePoint(1, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), true, false);
|
||||
}
|
||||
first = first == 0 ? 1 : 0;
|
||||
}
|
||||
first = first == 0 ? 1 : 0;
|
||||
Position pos = LightOfDawnPos[first];
|
||||
me->SetHomePosition(pos);
|
||||
me->SetWalk(false);
|
||||
me->GetMotionMaster()->MovePoint(1, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), true, true);
|
||||
me->CastSpell(me, SPELL_THE_MIGHT_OF_MOGRAINE, true);
|
||||
break;
|
||||
}
|
||||
Position pos = LightOfDawnPos[first];
|
||||
me->SetHomePosition(pos);
|
||||
me->SetWalk(false);
|
||||
me->GetMotionMaster()->MovePoint(1, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), true, true);
|
||||
me->CastSpell(me, SPELL_THE_MIGHT_OF_MOGRAINE, true);
|
||||
break;
|
||||
}
|
||||
case EVENT_START_COUNTDOWN_14:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SummonCreatureGroup(5);
|
||||
return;
|
||||
case EVENT_FINISH_FIGHT_1:
|
||||
@@ -662,45 +668,45 @@ public:
|
||||
battleStarted = ENCOUNTER_STATE_OUTRO;
|
||||
break;
|
||||
case EVENT_FINISH_FIGHT_2:
|
||||
{
|
||||
summons.DespawnEntry(NPC_RAMPAGING_ABOMINATION);
|
||||
summons.DespawnEntry(NPC_ACHERUS_GHOUL);
|
||||
summons.DespawnEntry(NPC_WARRIOR_OF_THE_FROZEN_WASTES);
|
||||
summons.DespawnEntry(NPC_FLESH_BEHEMOTH);
|
||||
summons.DespawnEntry(NPC_DEFENDER_OF_THE_LIGHT);
|
||||
|
||||
if (Creature* orbaz = GetEntryFromSummons(NPC_ORBAZ_BLOODBANE))
|
||||
{
|
||||
orbaz->SetReactState(REACT_PASSIVE);
|
||||
orbaz->AI()->Talk(EMOTE_LIGHT_OF_DAWN04);
|
||||
orbaz->GetMotionMaster()->MovePoint(2, LightOfDawnPos[2], true, true);
|
||||
orbaz->DespawnOrUnsummon(7000);
|
||||
}
|
||||
summons.DespawnEntry(NPC_RAMPAGING_ABOMINATION);
|
||||
summons.DespawnEntry(NPC_ACHERUS_GHOUL);
|
||||
summons.DespawnEntry(NPC_WARRIOR_OF_THE_FROZEN_WASTES);
|
||||
summons.DespawnEntry(NPC_FLESH_BEHEMOTH);
|
||||
summons.DespawnEntry(NPC_DEFENDER_OF_THE_LIGHT);
|
||||
|
||||
for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
|
||||
if (Creature* orbaz = GetEntryFromSummons(NPC_ORBAZ_BLOODBANE))
|
||||
{
|
||||
summon->CombatStop(true);
|
||||
summon->DeleteThreatList();
|
||||
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
summon->SetReactState(REACT_PASSIVE);
|
||||
summon->GetMotionMaster()->Clear(false);
|
||||
orbaz->SetReactState(REACT_PASSIVE);
|
||||
orbaz->AI()->Talk(EMOTE_LIGHT_OF_DAWN04);
|
||||
orbaz->GetMotionMaster()->MovePoint(2, LightOfDawnPos[2], true, true);
|
||||
orbaz->DespawnOrUnsummon(7000);
|
||||
}
|
||||
me->CombatStop(true);
|
||||
me->DeleteThreatList();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->GetMotionMaster()->Clear(false);
|
||||
|
||||
// Position main stars
|
||||
summons.DoAction(ACTION_POSITION_NPCS);
|
||||
for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
|
||||
{
|
||||
summon->CombatStop(true);
|
||||
summon->DeleteThreatList();
|
||||
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
summon->SetReactState(REACT_PASSIVE);
|
||||
summon->GetMotionMaster()->Clear(false);
|
||||
}
|
||||
me->CombatStop(true);
|
||||
me->DeleteThreatList();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->GetMotionMaster()->Clear(false);
|
||||
|
||||
me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2276.66f, -5273.60f, 81.86f, 5.14f, TEMPSUMMON_CORPSE_DESPAWN);
|
||||
me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2272.11f, -5279.08f, 82.01f, 5.69f, TEMPSUMMON_CORPSE_DESPAWN);
|
||||
me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2285.11f, -5276.73f, 82.08f, 4.23f, TEMPSUMMON_CORPSE_DESPAWN);
|
||||
me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2290.06f, -5286.41f, 82.51f, 3.16f, TEMPSUMMON_CORPSE_DESPAWN);
|
||||
break;
|
||||
}
|
||||
// Position main stars
|
||||
summons.DoAction(ACTION_POSITION_NPCS);
|
||||
|
||||
me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2276.66f, -5273.60f, 81.86f, 5.14f, TEMPSUMMON_CORPSE_DESPAWN);
|
||||
me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2272.11f, -5279.08f, 82.01f, 5.69f, TEMPSUMMON_CORPSE_DESPAWN);
|
||||
me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2285.11f, -5276.73f, 82.08f, 4.23f, TEMPSUMMON_CORPSE_DESPAWN);
|
||||
me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2290.06f, -5286.41f, 82.51f, 3.16f, TEMPSUMMON_CORPSE_DESPAWN);
|
||||
break;
|
||||
}
|
||||
case EVENT_FINISH_FIGHT_3:
|
||||
if (Creature* koltira = GetEntryFromSummons(NPC_KOLTIRA_DEATHWEAVER))
|
||||
{
|
||||
@@ -927,7 +933,7 @@ public:
|
||||
if (summon->GetEntry() <= NPC_RIMBLAT_EARTHSHATTER && summon->GetEntry() != NPC_HIGHLORD_TIRION_FORDRING)
|
||||
{
|
||||
float o = lk->GetAngle(summon);
|
||||
summon->GetMotionMaster()->MovePoint(3, lk->GetPositionX() + 2.0f*cos(o), lk->GetPositionY() + 2.0f*sin(o), lk->GetPositionZ());
|
||||
summon->GetMotionMaster()->MovePoint(3, lk->GetPositionX() + 2.0f * cos(o), lk->GetPositionY() + 2.0f * sin(o), lk->GetPositionZ());
|
||||
summon->ToTempSummon()->SetTempSummonType(TEMPSUMMON_MANUAL_DESPAWN);
|
||||
}
|
||||
}
|
||||
@@ -1011,7 +1017,7 @@ public:
|
||||
{
|
||||
tirion->CastSpell(tirion, SPELL_TIRION_CHARGE, true);
|
||||
tirion->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
|
||||
tirion->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
tirion->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
}
|
||||
break;
|
||||
case EVENT_OUTRO_SCENE_44:
|
||||
@@ -1036,7 +1042,7 @@ public:
|
||||
if (Creature* tirion = GetEntryFromSummons(NPC_HIGHLORD_TIRION_FORDRING))
|
||||
{
|
||||
float o = me->GetAngle(tirion);
|
||||
tirion->GetMotionMaster()->MovePoint(4, me->GetPositionX() + 2.0f*cos(o), me->GetPositionY() + 2.0f*sin(o), me->GetPositionZ(), false);
|
||||
tirion->GetMotionMaster()->MovePoint(4, me->GetPositionX() + 2.0f * cos(o), me->GetPositionY() + 2.0f * sin(o), me->GetPositionZ(), false);
|
||||
tirion->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
tirion->setFaction(35);
|
||||
}
|
||||
@@ -1107,17 +1113,17 @@ public:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case EVENT_OUTRO_SCENE_60:
|
||||
{
|
||||
Map::PlayerList const &PlayerList = me->GetMap()->GetPlayers();
|
||||
if (!PlayerList.isEmpty())
|
||||
{
|
||||
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
|
||||
if (i->GetSource()->IsAlive() && me->IsWithinDistInMap(i->GetSource(), 100))
|
||||
i->GetSource()->CastSpell(i->GetSource(), SPELL_THE_LIGHT_OF_DAWN_Q, false);
|
||||
Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers();
|
||||
if (!PlayerList.isEmpty())
|
||||
{
|
||||
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
|
||||
if (i->GetSource()->IsAlive() && me->IsWithinDistInMap(i->GetSource(), 100))
|
||||
i->GetSource()->CastSpell(i->GetSource(), SPELL_THE_LIGHT_OF_DAWN_Q, false);
|
||||
}
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
break;
|
||||
}
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
|
||||
break;
|
||||
}
|
||||
case EVENT_OUTRO_SCENE_61:
|
||||
summons.DespawnAll();
|
||||
me->DespawnOrUnsummon(1);
|
||||
@@ -1162,68 +1168,68 @@ public:
|
||||
|
||||
class spell_chapter5_light_of_dawn_aura : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_chapter5_light_of_dawn_aura() : SpellScriptLoader("spell_chapter5_light_of_dawn_aura") { }
|
||||
public:
|
||||
spell_chapter5_light_of_dawn_aura() : SpellScriptLoader("spell_chapter5_light_of_dawn_aura") { }
|
||||
|
||||
class spell_chapter5_light_of_dawn_aura_AuraScript : public AuraScript
|
||||
class spell_chapter5_light_of_dawn_aura_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_chapter5_light_of_dawn_aura_AuraScript);
|
||||
|
||||
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
PrepareAuraScript(spell_chapter5_light_of_dawn_aura_AuraScript);
|
||||
|
||||
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
GetUnitOwner()->Dismount();
|
||||
GetUnitOwner()->SetCanFly(true);
|
||||
GetUnitOwner()->SetDisableGravity(true);
|
||||
GetUnitOwner()->AddUnitMovementFlag(MOVEMENTFLAG_FLYING);
|
||||
}
|
||||
|
||||
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
GetUnitOwner()->SetCanFly(false);
|
||||
GetUnitOwner()->SetDisableGravity(false);
|
||||
GetUnitOwner()->RemoveUnitMovementFlag(MOVEMENTFLAG_FLYING);
|
||||
GetUnitOwner()->GetMotionMaster()->MoveFall();
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectApply += AuraEffectApplyFn(spell_chapter5_light_of_dawn_aura_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||
OnEffectRemove += AuraEffectRemoveFn(spell_chapter5_light_of_dawn_aura_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const override
|
||||
{
|
||||
return new spell_chapter5_light_of_dawn_aura_AuraScript();
|
||||
GetUnitOwner()->Dismount();
|
||||
GetUnitOwner()->SetCanFly(true);
|
||||
GetUnitOwner()->SetDisableGravity(true);
|
||||
GetUnitOwner()->AddUnitMovementFlag(MOVEMENTFLAG_FLYING);
|
||||
}
|
||||
|
||||
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
GetUnitOwner()->SetCanFly(false);
|
||||
GetUnitOwner()->SetDisableGravity(false);
|
||||
GetUnitOwner()->RemoveUnitMovementFlag(MOVEMENTFLAG_FLYING);
|
||||
GetUnitOwner()->GetMotionMaster()->MoveFall();
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectApply += AuraEffectApplyFn(spell_chapter5_light_of_dawn_aura_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||
OnEffectRemove += AuraEffectRemoveFn(spell_chapter5_light_of_dawn_aura_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const override
|
||||
{
|
||||
return new spell_chapter5_light_of_dawn_aura_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
class spell_chapter5_rebuke : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_chapter5_rebuke() : SpellScriptLoader("spell_chapter5_rebuke") { }
|
||||
public:
|
||||
spell_chapter5_rebuke() : SpellScriptLoader("spell_chapter5_rebuke") { }
|
||||
|
||||
class spell_chapter5_rebuke_SpellScript : public SpellScript
|
||||
class spell_chapter5_rebuke_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_chapter5_rebuke_SpellScript);
|
||||
|
||||
void HandleLeapBack(SpellEffIndex effIndex)
|
||||
{
|
||||
PrepareSpellScript(spell_chapter5_rebuke_SpellScript);
|
||||
|
||||
void HandleLeapBack(SpellEffIndex effIndex)
|
||||
{
|
||||
PreventHitEffect(effIndex);
|
||||
if (Unit* unitTarget = GetHitUnit())
|
||||
unitTarget->KnockbackFrom(2282.86f, -5263.45f, 40.0f, 8.0f);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectLaunchTarget += SpellEffectFn(spell_chapter5_rebuke_SpellScript::HandleLeapBack, EFFECT_0, SPELL_EFFECT_LEAP_BACK);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_chapter5_rebuke_SpellScript();
|
||||
PreventHitEffect(effIndex);
|
||||
if (Unit* unitTarget = GetHitUnit())
|
||||
unitTarget->KnockbackFrom(2282.86f, -5263.45f, 40.0f, 8.0f);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectLaunchTarget += SpellEffectFn(spell_chapter5_rebuke_SpellScript::HandleLeapBack, EFFECT_0, SPELL_EFFECT_LEAP_BACK);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_chapter5_rebuke_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_the_scarlet_enclave_c5()
|
||||
|
||||
@@ -108,7 +108,8 @@ public:
|
||||
break;
|
||||
}
|
||||
++phase;
|
||||
} else FlyBackTimer-=diff;
|
||||
}
|
||||
else FlyBackTimer -= diff;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user