refactor(Core/Scripts): restyle scripts lib with astyle (#3467)

This commit is contained in:
Kargatum
2020-10-11 15:35:34 +07:00
committed by GitHub
parent 4cca286a4d
commit 5e20b46812
538 changed files with 92888 additions and 91297 deletions

View File

@@ -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;
}

View File

@@ -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()

View File

@@ -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()

View File

@@ -108,7 +108,8 @@ public:
break;
}
++phase;
} else FlyBackTimer-=diff;
}
else FlyBackTimer -= diff;
}
};