fix(Core/Scripts): Fix the wrong run in npc_escortAI (#23293)
Co-authored-by: 天鹭 <18535853+PkllonG@users.noreply.github.com>
This commit is contained in:
@@ -552,11 +552,6 @@ void ScriptedAI::SetEquipmentSlots(bool loadDefault, int32 mainHand /*= EQUIP_NO
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptedAI::SetRun(bool run)
|
|
||||||
{
|
|
||||||
me->SetWalk(!run);
|
|
||||||
}
|
|
||||||
|
|
||||||
enum eNPCs
|
enum eNPCs
|
||||||
{
|
{
|
||||||
NPC_BROODLORD = 12017,
|
NPC_BROODLORD = 12017,
|
||||||
|
|||||||
@@ -227,8 +227,6 @@ struct ScriptedAI : public CreatureAI
|
|||||||
// Called when AI is temporarily replaced or put back when possess is applied or removed
|
// Called when AI is temporarily replaced or put back when possess is applied or removed
|
||||||
void OnPossess(bool /*apply*/) {}
|
void OnPossess(bool /*apply*/) {}
|
||||||
|
|
||||||
void SetRun(bool run);
|
|
||||||
|
|
||||||
enum class Axis
|
enum class Axis
|
||||||
{
|
{
|
||||||
AXIS_X,
|
AXIS_X,
|
||||||
|
|||||||
@@ -49,6 +49,8 @@ SmartAI::SmartAI(Creature* c) : CreatureAI(c)
|
|||||||
|
|
||||||
mForcedPaused = false;
|
mForcedPaused = false;
|
||||||
|
|
||||||
|
mForcedMovement = FORCED_MOVEMENT_NONE;
|
||||||
|
|
||||||
mEscortQuestID = 0;
|
mEscortQuestID = 0;
|
||||||
|
|
||||||
mDespawnTime = 0;
|
mDespawnTime = 0;
|
||||||
@@ -205,6 +207,7 @@ void SmartAI::StartPath(ForcedMovement forcedMovement, uint32 path, bool repeat,
|
|||||||
{
|
{
|
||||||
AddEscortState(SMART_ESCORT_ESCORTING);
|
AddEscortState(SMART_ESCORT_ESCORTING);
|
||||||
mCanRepeatPath = repeat;
|
mCanRepeatPath = repeat;
|
||||||
|
mForcedMovement = forcedMovement;
|
||||||
|
|
||||||
if (invoker && invoker->IsPlayer())
|
if (invoker && invoker->IsPlayer())
|
||||||
{
|
{
|
||||||
@@ -215,7 +218,7 @@ void SmartAI::StartPath(ForcedMovement forcedMovement, uint32 path, bool repeat,
|
|||||||
Movement::PointsArray pathPoints;
|
Movement::PointsArray pathPoints;
|
||||||
GenerateWayPointArray(&pathPoints);
|
GenerateWayPointArray(&pathPoints);
|
||||||
|
|
||||||
me->GetMotionMaster()->MoveSplinePath(&pathPoints, forcedMovement);
|
me->GetMotionMaster()->MoveSplinePath(&pathPoints, mForcedMovement);
|
||||||
GetScript()->ProcessEventsFor(SMART_EVENT_WAYPOINT_START, nullptr, wp->id, GetScript()->GetPathId());
|
GetScript()->ProcessEventsFor(SMART_EVENT_WAYPOINT_START, nullptr, wp->id, GetScript()->GetPathId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -373,7 +376,7 @@ void SmartAI::ResumePath()
|
|||||||
Movement::PointsArray pathPoints;
|
Movement::PointsArray pathPoints;
|
||||||
GenerateWayPointArray(&pathPoints);
|
GenerateWayPointArray(&pathPoints);
|
||||||
|
|
||||||
me->GetMotionMaster()->MoveSplinePath(&pathPoints);
|
me->GetMotionMaster()->MoveSplinePath(&pathPoints, mForcedMovement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -241,6 +241,7 @@ private:
|
|||||||
bool mCanAutoAttack;
|
bool mCanAutoAttack;
|
||||||
bool mForcedPaused;
|
bool mForcedPaused;
|
||||||
uint32 mInvincibilityHpLevel;
|
uint32 mInvincibilityHpLevel;
|
||||||
|
ForcedMovement mForcedMovement;
|
||||||
|
|
||||||
bool AssistPlayerInCombatAgainst(Unit* who);
|
bool AssistPlayerInCombatAgainst(Unit* who);
|
||||||
|
|
||||||
|
|||||||
+4
@@ -359,6 +359,7 @@ public:
|
|||||||
case 0:
|
case 0:
|
||||||
Talk(SAY_TEXT5);
|
Talk(SAY_TEXT5);
|
||||||
HandleGameObject(DATA_ARENA4, false);
|
HandleGameObject(DATA_ARENA4, false);
|
||||||
|
me->SetWalk(true);
|
||||||
Start(false);
|
Start(false);
|
||||||
eventTimer = 0;
|
eventTimer = 0;
|
||||||
break;
|
break;
|
||||||
@@ -604,7 +605,10 @@ public:
|
|||||||
creature->CastSpell(creature, SPELL_DRUNKEN_RAGE, false);
|
creature->CastSpell(creature, SPELL_DRUNKEN_RAGE, false);
|
||||||
|
|
||||||
if (npc_escortAI* escortAI = CAST_AI(npc_rocknot::npc_rocknotAI, creature->AI()))
|
if (npc_escortAI* escortAI = CAST_AI(npc_rocknot::npc_rocknotAI, creature->AI()))
|
||||||
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
escortAI->Start(false);
|
escortAI->Start(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -170,6 +170,7 @@ public:
|
|||||||
if (m_uiEventId == EVENT_OZ)
|
if (m_uiEventId == EVENT_OZ)
|
||||||
instance->SetData(DATA_OPERA_OZ_DEATHCOUNT, IN_PROGRESS);
|
instance->SetData(DATA_OPERA_OZ_DEATHCOUNT, IN_PROGRESS);
|
||||||
|
|
||||||
|
me->SetWalk(true);
|
||||||
Start(false);
|
Start(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -980,6 +980,7 @@ public:
|
|||||||
{
|
{
|
||||||
carGUID = who->GetVehicleBase()->GetGUID();
|
carGUID = who->GetVehicleBase()->GetGUID();
|
||||||
InitWaypoint();
|
InitWaypoint();
|
||||||
|
me->SetWalk(true);
|
||||||
Start(false, who->GetGUID());
|
Start(false, who->GetGUID());
|
||||||
SetDespawnAtFar(false);
|
SetDespawnAtFar(false);
|
||||||
}
|
}
|
||||||
@@ -998,7 +999,7 @@ public:
|
|||||||
car->SetFaction(FACTION_FRIENDLY);
|
car->SetFaction(FACTION_FRIENDLY);
|
||||||
}
|
}
|
||||||
Talk(SAY_SCARLET_MINER_0);
|
Talk(SAY_SCARLET_MINER_0);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
IntroTimer = 4000;
|
IntroTimer = 4000;
|
||||||
IntroPhase = 1;
|
IntroPhase = 1;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
Talk(SAY_PROGRESS_6, player);
|
Talk(SAY_PROGRESS_6, player);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
break;
|
break;
|
||||||
case 19:
|
case 19:
|
||||||
Talk(SAY_PROGRESS_7, player);
|
Talk(SAY_PROGRESS_7, player);
|
||||||
@@ -106,7 +106,8 @@ public:
|
|||||||
if (quest->GetQuestId() == QUEST_SUNKEN_TREASURE)
|
if (quest->GetQuestId() == QUEST_SUNKEN_TREASURE)
|
||||||
{
|
{
|
||||||
Talk(SAY_PROGRESS_1, player);
|
Talk(SAY_PROGRESS_1, player);
|
||||||
npc_escortAI::Start(false, player->GetGUID(), quest);
|
me->SetWalk(true);
|
||||||
|
Start(false, player->GetGUID(), quest);
|
||||||
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,7 +113,8 @@ struct npc_ranger_lilatha : public npc_escortAI
|
|||||||
if (quest->GetQuestId() == QUEST_ESCAPE_FROM_THE_CATACOMBS)
|
if (quest->GetQuestId() == QUEST_ESCAPE_FROM_THE_CATACOMBS)
|
||||||
{
|
{
|
||||||
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
||||||
npc_escortAI::Start(true, player->GetGUID());
|
me->SetWalk(true);
|
||||||
|
Start(true, player->GetGUID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -132,7 +132,8 @@ public:
|
|||||||
if (GameObject* go = me->FindNearestGameObject(GO_RINJI_CAGE, INTERACTION_DISTANCE))
|
if (GameObject* go = me->FindNearestGameObject(GO_RINJI_CAGE, INTERACTION_DISTANCE))
|
||||||
go->UseDoorOrButton();
|
go->UseDoorOrButton();
|
||||||
|
|
||||||
npc_escortAI::Start(false, player->GetGUID(), quest);
|
me->SetWalk(true);
|
||||||
|
Start(false, player->GetGUID(), quest);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,7 +157,7 @@ public:
|
|||||||
case 17:
|
case 17:
|
||||||
Talk(SAY_RIN_COMPLETE, player);
|
Talk(SAY_RIN_COMPLETE, player);
|
||||||
player->GroupEventHappens(QUEST_RINJI_TRAPPED, me);
|
player->GroupEventHappens(QUEST_RINJI_TRAPPED, me);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
postEventCount = 1;
|
postEventCount = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,8 @@ public:
|
|||||||
if (quest->GetQuestId() == QUEST_MISSING_IN_ACTION)
|
if (quest->GetQuestId() == QUEST_MISSING_IN_ACTION)
|
||||||
{
|
{
|
||||||
Talk(SAY_CORPORAL_1, player);
|
Talk(SAY_CORPORAL_1, player);
|
||||||
npc_escortAI::Start(true, player->GetGUID(), quest);
|
me->SetWalk(true);
|
||||||
|
Start(true, player->GetGUID(), quest);
|
||||||
me->SetImmuneToNPC(false);
|
me->SetImmuneToNPC(false);
|
||||||
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_ACTIVE);
|
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_ACTIVE);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,7 +111,10 @@ public:
|
|||||||
creature->AI()->Talk(SAY_QUESTACCEPT, player);
|
creature->AI()->Talk(SAY_QUESTACCEPT, player);
|
||||||
|
|
||||||
if (npc_escortAI* pEscortAI = CAST_AI(npc_deathstalker_erland::npc_deathstalker_erlandAI, creature->AI()))
|
if (npc_escortAI* pEscortAI = CAST_AI(npc_deathstalker_erland::npc_deathstalker_erlandAI, creature->AI()))
|
||||||
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
pEscortAI->Start(true, player->GetGUID());
|
pEscortAI->Start(true, player->GetGUID());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -406,6 +406,7 @@ public:
|
|||||||
{
|
{
|
||||||
if (Player* player = GetPlayerForEscort())
|
if (Player* player = GetPlayerForEscort())
|
||||||
{
|
{
|
||||||
|
pLescovar->SetWalk(true);
|
||||||
CAST_AI(npc_lord_gregor_lescovar::npc_lord_gregor_lescovarAI, pLescovar->AI())->Start(false, player->GetGUID());
|
CAST_AI(npc_lord_gregor_lescovar::npc_lord_gregor_lescovarAI, pLescovar->AI())->Start(false, player->GetGUID());
|
||||||
CAST_AI(npc_lord_gregor_lescovar::npc_lord_gregor_lescovarAI, pLescovar->AI())->SetMaxPlayerDistance(200.0f);
|
CAST_AI(npc_lord_gregor_lescovar::npc_lord_gregor_lescovarAI, pLescovar->AI())->SetMaxPlayerDistance(200.0f);
|
||||||
}
|
}
|
||||||
@@ -448,6 +449,7 @@ public:
|
|||||||
{
|
{
|
||||||
if (Creature* pSpybot = creature->FindNearestCreature(NPC_TYRION_SPYBOT, 5.0f, true))
|
if (Creature* pSpybot = creature->FindNearestCreature(NPC_TYRION_SPYBOT, 5.0f, true))
|
||||||
{
|
{
|
||||||
|
pSpybot->SetWalk(true);
|
||||||
CAST_AI(npc_tyrion_spybot::npc_tyrion_spybotAI, pSpybot->AI())->Start(false, player->GetGUID());
|
CAST_AI(npc_tyrion_spybot::npc_tyrion_spybotAI, pSpybot->AI())->Start(false, player->GetGUID());
|
||||||
CAST_AI(npc_tyrion_spybot::npc_tyrion_spybotAI, pSpybot->AI())->SetMaxPlayerDistance(200.0f);
|
CAST_AI(npc_tyrion_spybot::npc_tyrion_spybotAI, pSpybot->AI())->SetMaxPlayerDistance(200.0f);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -916,7 +916,6 @@ public:
|
|||||||
|
|
||||||
if (auto ai = CAST_AI(npc_varian_wrynn::npc_varian_wrynnAI, creature->AI()))
|
if (auto ai = CAST_AI(npc_varian_wrynn::npc_varian_wrynnAI, creature->AI()))
|
||||||
{
|
{
|
||||||
creature->SetWalk(false);
|
|
||||||
ai->Start(true, player->GetGUID());
|
ai->Start(true, player->GetGUID());
|
||||||
if (Creature* jaina = GetClosestCreatureWithEntry(creature, NPC_JAINA, 50.0f))
|
if (Creature* jaina = GetClosestCreatureWithEntry(creature, NPC_JAINA, 50.0f))
|
||||||
ai->jainaGUID = jaina->GetGUID();
|
ai->jainaGUID = jaina->GetGUID();
|
||||||
|
|||||||
@@ -56,7 +56,6 @@ public:
|
|||||||
if (quest->GetQuestId() == QUEST_TOME_VALOR)
|
if (quest->GetQuestId() == QUEST_TOME_VALOR)
|
||||||
{
|
{
|
||||||
creature->AI()->Talk(SAY_DS_START);
|
creature->AI()->Talk(SAY_DS_START);
|
||||||
creature->SetWalk(false);
|
|
||||||
if (npc_escortAI* pEscortAI = CAST_AI(npc_daphne_stilwell::npc_daphne_stilwellAI, creature->AI()))
|
if (npc_escortAI* pEscortAI = CAST_AI(npc_daphne_stilwell::npc_daphne_stilwellAI, creature->AI()))
|
||||||
pEscortAI->Start(true, player->GetGUID());
|
pEscortAI->Start(true, player->GetGUID());
|
||||||
}
|
}
|
||||||
@@ -117,7 +116,7 @@ public:
|
|||||||
me->SummonCreature(NPC_DEFIAS_RAIDER, -11438.14f, 1607.6f, 70.94f, 4.38f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
|
me->SummonCreature(NPC_DEFIAS_RAIDER, -11438.14f, 1607.6f, 70.94f, 4.38f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
Talk(SAY_DS_PROLOGUE);
|
Talk(SAY_DS_PROLOGUE);
|
||||||
|
|||||||
@@ -138,7 +138,10 @@ public:
|
|||||||
pSlim->CastSpell(pSlim, SPELL_STEALTH, true);
|
pSlim->CastSpell(pSlim, SPELL_STEALTH, true);
|
||||||
|
|
||||||
if (npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI* pEscortAI = CAST_AI(npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI, pSlim->AI()))
|
if (npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI* pEscortAI = CAST_AI(npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI, pSlim->AI()))
|
||||||
|
{
|
||||||
|
pSlim->SetWalk(true);
|
||||||
pEscortAI->Start(false, player->GetGUID(), quest);
|
pEscortAI->Start(false, player->GetGUID(), quest);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-15
@@ -424,7 +424,7 @@ public:
|
|||||||
{
|
{
|
||||||
Talk(SAY_PHASE201);
|
Talk(SAY_PHASE201);
|
||||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2, 12s);
|
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2, 12s);
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
eventInRun = true;
|
eventInRun = true;
|
||||||
|
|
||||||
me->SummonCreature(NPC_CITY_MAN, EventPos[EVENT_SRC_TOWN_CITYMAN1]);
|
me->SummonCreature(NPC_CITY_MAN, EventPos[EVENT_SRC_TOWN_CITYMAN1]);
|
||||||
@@ -434,14 +434,14 @@ public:
|
|||||||
{
|
{
|
||||||
waveGroupId = 10;
|
waveGroupId = 10;
|
||||||
eventInRun = true;
|
eventInRun = true;
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2 + 9, 10s);
|
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2 + 9, 10s);
|
||||||
}
|
}
|
||||||
else if (param == ACTION_START_TOWN_HALL)
|
else if (param == ACTION_START_TOWN_HALL)
|
||||||
{
|
{
|
||||||
Talk(SAY_PHASE301);
|
Talk(SAY_PHASE301);
|
||||||
SetEscortPaused(false);
|
SetEscortPaused(false);
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
|
|
||||||
if (Creature* cr = me->SummonCreature(NPC_CITY_MAN3, EventPos[EVENT_SRC_HALL_CITYMAN1]))
|
if (Creature* cr = me->SummonCreature(NPC_CITY_MAN3, EventPos[EVENT_SRC_HALL_CITYMAN1]))
|
||||||
{
|
{
|
||||||
@@ -460,13 +460,13 @@ public:
|
|||||||
{
|
{
|
||||||
Talk(SAY_PHASE401);
|
Talk(SAY_PHASE401);
|
||||||
SetEscortPaused(false);
|
SetEscortPaused(false);
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
}
|
}
|
||||||
else if (param == ACTION_START_LAST_CITY)
|
else if (param == ACTION_START_LAST_CITY)
|
||||||
{
|
{
|
||||||
Talk(SAY_PHASE404);
|
Talk(SAY_PHASE404);
|
||||||
SetEscortPaused(false);
|
SetEscortPaused(false);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
}
|
}
|
||||||
else if (param == ACTION_START_MALGANIS)
|
else if (param == ACTION_START_MALGANIS)
|
||||||
{
|
{
|
||||||
@@ -480,7 +480,7 @@ public:
|
|||||||
}
|
}
|
||||||
Talk(SAY_PHASE501);
|
Talk(SAY_PHASE501);
|
||||||
SetEscortPaused(false);
|
SetEscortPaused(false);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
}
|
}
|
||||||
else if (param == ACTION_KILLED_MALGANIS)
|
else if (param == ACTION_KILLED_MALGANIS)
|
||||||
{
|
{
|
||||||
@@ -533,7 +533,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
// After intro, in front of bridge
|
// After intro, in front of bridge
|
||||||
case 3:
|
case 3:
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
Talk(SAY_PHASE118);
|
Talk(SAY_PHASE118);
|
||||||
summons.DespawnAll(); // uther, jaina and horses
|
summons.DespawnAll(); // uther, jaina and horses
|
||||||
break;
|
break;
|
||||||
@@ -574,7 +574,7 @@ public:
|
|||||||
if (pInstance)
|
if (pInstance)
|
||||||
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_REACHED_TOWN_HALL);
|
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_REACHED_TOWN_HALL);
|
||||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
SetEscortPaused(true);
|
SetEscortPaused(true);
|
||||||
break;
|
break;
|
||||||
// Inside Town Hall first scene pos
|
// Inside Town Hall first scene pos
|
||||||
@@ -600,7 +600,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
// Town Hall, upper floor third fight
|
// Town Hall, upper floor third fight
|
||||||
case 31:
|
case 31:
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
SpawnTimeRift();
|
SpawnTimeRift();
|
||||||
SpawnTimeRift();
|
SpawnTimeRift();
|
||||||
Talk(SAY_PHASE312);
|
Talk(SAY_PHASE312);
|
||||||
@@ -616,14 +616,14 @@ public:
|
|||||||
break;
|
break;
|
||||||
// Reached book shelf
|
// Reached book shelf
|
||||||
case 36:
|
case 36:
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
if (pInstance)
|
if (pInstance)
|
||||||
if (GameObject* pGate = pInstance->instance->GetGameObject(pInstance->GetGuidData(DATA_SHKAF_GATE)))
|
if (GameObject* pGate = pInstance->instance->GetGameObject(pInstance->GetGuidData(DATA_SHKAF_GATE)))
|
||||||
pGate->SetGoState(GO_STATE_ACTIVE);
|
pGate->SetGoState(GO_STATE_ACTIVE);
|
||||||
break;
|
break;
|
||||||
// Behind secred passage
|
// Behind secred passage
|
||||||
case 45:
|
case 45:
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||||
SetEscortPaused(true);
|
SetEscortPaused(true);
|
||||||
if (pInstance)
|
if (pInstance)
|
||||||
@@ -631,11 +631,11 @@ public:
|
|||||||
break;
|
break;
|
||||||
// Some walk talk
|
// Some walk talk
|
||||||
case 47:
|
case 47:
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
Talk(SAY_PHASE405);
|
Talk(SAY_PHASE405);
|
||||||
break;
|
break;
|
||||||
case 48:
|
case 48:
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
Talk(SAY_PHASE406);
|
Talk(SAY_PHASE406);
|
||||||
break;
|
break;
|
||||||
case 53:
|
case 53:
|
||||||
@@ -674,7 +674,7 @@ public:
|
|||||||
switch (uint32 currentEvent = actionEvents.ExecuteEvent())
|
switch (uint32 currentEvent = actionEvents.ExecuteEvent())
|
||||||
{
|
{
|
||||||
case EVENT_ACTION_PHASE1:
|
case EVENT_ACTION_PHASE1:
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
me->SummonCreature(NPC_JAINA, EventPos[EVENT_SRC_JAINA], TEMPSUMMON_DEAD_DESPAWN, 180000);
|
me->SummonCreature(NPC_JAINA, EventPos[EVENT_SRC_JAINA], TEMPSUMMON_DEAD_DESPAWN, 180000);
|
||||||
if (Creature* uther = me->SummonCreature(NPC_UTHER, EventPos[EVENT_SRC_UTHER], TEMPSUMMON_DEAD_DESPAWN, 180000))
|
if (Creature* uther = me->SummonCreature(NPC_UTHER, EventPos[EVENT_SRC_UTHER], TEMPSUMMON_DEAD_DESPAWN, 180000))
|
||||||
{
|
{
|
||||||
@@ -690,6 +690,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case EVENT_ACTION_PHASE1+1:
|
case EVENT_ACTION_PHASE1+1:
|
||||||
// Start Event
|
// Start Event
|
||||||
|
me->SetWalk(true);
|
||||||
Start(true);
|
Start(true);
|
||||||
SetDespawnAtEnd(false);
|
SetDespawnAtEnd(false);
|
||||||
SetDespawnAtFar(false);
|
SetDespawnAtFar(false);
|
||||||
@@ -958,7 +959,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
// After waypoint 23
|
// After waypoint 23
|
||||||
case EVENT_ACTION_PHASE3+3:
|
case EVENT_ACTION_PHASE3+3:
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
if (Creature* cr = GetEventNpc(NPC_CITY_MAN3))
|
if (Creature* cr = GetEventNpc(NPC_CITY_MAN3))
|
||||||
me->CastSpell(cr, SPELL_ARTHAS_CRUSADER_STRIKE, true);
|
me->CastSpell(cr, SPELL_ARTHAS_CRUSADER_STRIKE, true);
|
||||||
ScheduleNextEvent(currentEvent, 2s);
|
ScheduleNextEvent(currentEvent, 2s);
|
||||||
|
|||||||
@@ -316,12 +316,12 @@ public:
|
|||||||
events.ScheduleEvent(EVENT_THRALL_EMOTE, 1300ms);
|
events.ScheduleEvent(EVENT_THRALL_EMOTE, 1300ms);
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
events.ScheduleEvent(EVENT_KILL_ARMORER, 500ms);
|
events.ScheduleEvent(EVENT_KILL_ARMORER, 500ms);
|
||||||
events.ScheduleEvent(EVENT_TALK_KILL_ARMORER, 3s);
|
events.ScheduleEvent(EVENT_TALK_KILL_ARMORER, 3s);
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
events.ScheduleEvent(EVENT_DRESSING_KNEEL, 500ms);
|
events.ScheduleEvent(EVENT_DRESSING_KNEEL, 500ms);
|
||||||
events.ScheduleEvent(EVENT_DRESSING_ARMOR, 3s);
|
events.ScheduleEvent(EVENT_DRESSING_ARMOR, 3s);
|
||||||
events.ScheduleEvent(EVENT_DRESSING_STAND, 4s);
|
events.ScheduleEvent(EVENT_DRESSING_STAND, 4s);
|
||||||
@@ -374,7 +374,7 @@ public:
|
|||||||
}
|
}
|
||||||
UnMountSelf();
|
UnMountSelf();
|
||||||
_mounted = false;
|
_mounted = false;
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
me->SetFacingTo(6.0388f);
|
me->SetFacingTo(6.0388f);
|
||||||
break;
|
break;
|
||||||
case 60:
|
case 60:
|
||||||
@@ -386,12 +386,12 @@ public:
|
|||||||
}
|
}
|
||||||
Talk(SAY_EMOTE_HORSE);
|
Talk(SAY_EMOTE_HORSE);
|
||||||
SetEscortPaused(true);
|
SetEscortPaused(true);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||||
me->SetFacingTo(4.1364f);
|
me->SetFacingTo(4.1364f);
|
||||||
break;
|
break;
|
||||||
case 64:
|
case 64:
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
break;
|
break;
|
||||||
case 67:
|
case 67:
|
||||||
events.ScheduleEvent(EVENT_LOOK_1, 1200ms);
|
events.ScheduleEvent(EVENT_LOOK_1, 1200ms);
|
||||||
@@ -418,12 +418,12 @@ public:
|
|||||||
summon->AI()->Talk(SAY_LOOKOUT_INN);
|
summon->AI()->Talk(SAY_LOOKOUT_INN);
|
||||||
break;
|
break;
|
||||||
case 92:
|
case 92:
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
break;
|
break;
|
||||||
case 94:
|
case 94:
|
||||||
summons.DespawnAll();
|
summons.DespawnAll();
|
||||||
SetEscortPaused(true);
|
SetEscortPaused(true);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
instance->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_TARETHA_MEET);
|
instance->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_TARETHA_MEET);
|
||||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TARETHA_GUID)))
|
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TARETHA_GUID)))
|
||||||
{
|
{
|
||||||
@@ -664,7 +664,7 @@ public:
|
|||||||
me->SetFacingTo(2.0071f);
|
me->SetFacingTo(2.0071f);
|
||||||
break;
|
break;
|
||||||
case EVENT_SUMMON_GUARDS:
|
case EVENT_SUMMON_GUARDS:
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
me->SummonCreature(NPC_TM_PROTECTOR, 2501.5708f, 699.38086f, 55.64138f, 3.8571f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30 * IN_MILLISECONDS);
|
me->SummonCreature(NPC_TM_PROTECTOR, 2501.5708f, 699.38086f, 55.64138f, 3.8571f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30 * IN_MILLISECONDS);
|
||||||
me->SummonCreature(NPC_TM_LOOKOUT, 2500.7002f, 698.26746f, 55.618248f, 3.7350f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30 * IN_MILLISECONDS);
|
me->SummonCreature(NPC_TM_LOOKOUT, 2500.7002f, 698.26746f, 55.618248f, 3.7350f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30 * IN_MILLISECONDS);
|
||||||
if (Creature* guardsman = me->SummonCreature(NPC_TM_GUARDSMAN, 2500.0908f, 699.9389f, 55.629555f, 4.2935f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30 * IN_MILLISECONDS))
|
if (Creature* guardsman = me->SummonCreature(NPC_TM_GUARDSMAN, 2500.0908f, 699.9389f, 55.629555f, 4.2935f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30 * IN_MILLISECONDS))
|
||||||
@@ -1018,7 +1018,7 @@ public:
|
|||||||
{
|
{
|
||||||
if (waypointId == 7)
|
if (waypointId == 7)
|
||||||
{
|
{
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
Talk(SAY_TARETHA_FREE);
|
Talk(SAY_TARETHA_FREE);
|
||||||
me->HandleEmoteCommand(EMOTE_ONESHOT_CHEER);
|
me->HandleEmoteCommand(EMOTE_ONESHOT_CHEER);
|
||||||
if (Creature* thrall = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL_GUID)))
|
if (Creature* thrall = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL_GUID)))
|
||||||
|
|||||||
@@ -209,7 +209,6 @@ struct npc_general_andorov : public npc_escortAI
|
|||||||
_initialAttackTimer = 5 * IN_MILLISECONDS;
|
_initialAttackTimer = 5 * IN_MILLISECONDS;
|
||||||
_paused = false;
|
_paused = false;
|
||||||
|
|
||||||
me->SetWalk(false);
|
|
||||||
Start(false);
|
Start(false);
|
||||||
|
|
||||||
me->SetImmuneToNPC(true);
|
me->SetImmuneToNPC(true);
|
||||||
|
|||||||
@@ -121,7 +121,8 @@ public:
|
|||||||
{
|
{
|
||||||
Talk(SAY_MUG_START1);
|
Talk(SAY_MUG_START1);
|
||||||
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
||||||
npc_escortAI::Start(true, player->GetGUID());
|
me->SetWalk(true);
|
||||||
|
Start(true, player->GetGUID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ public:
|
|||||||
case 28:
|
case 28:
|
||||||
player->GroupEventHappens(QUEST_A_CRY_FOR_HELP, me);
|
player->GroupEventHappens(QUEST_A_CRY_FOR_HELP, me);
|
||||||
_events.ScheduleEvent(EVENT_TALK_END, 2s);
|
_events.ScheduleEvent(EVENT_TALK_END, 2s);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
break;
|
break;
|
||||||
case 29:
|
case 29:
|
||||||
if (Creature* cowlen = me->FindNearestCreature(NPC_COWLEN, 50.0f, true))
|
if (Creature* cowlen = me->FindNearestCreature(NPC_COWLEN, 50.0f, true))
|
||||||
@@ -289,7 +289,8 @@ public:
|
|||||||
case EVENT_START_ESCORT:
|
case EVENT_START_ESCORT:
|
||||||
if (Player* player = ObjectAccessor::GetPlayer(*me, _player))
|
if (Player* player = ObjectAccessor::GetPlayer(*me, _player))
|
||||||
{
|
{
|
||||||
npc_escortAI::Start(true, player->GetGUID());
|
me->SetWalk(true);
|
||||||
|
Start(true, player->GetGUID());
|
||||||
}
|
}
|
||||||
_events.ScheduleEvent(EVENT_STAND, 2s);
|
_events.ScheduleEvent(EVENT_STAND, 2s);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -397,7 +397,10 @@ public:
|
|||||||
if (quest->GetQuestId() == QUEST_ABSENT_MINDED_PT2)
|
if (quest->GetQuestId() == QUEST_ABSENT_MINDED_PT2)
|
||||||
{
|
{
|
||||||
if (npc_escortAI* pEscortAI = CAST_AI(npc_prospector_remtravel::npc_prospector_remtravelAI, creature->AI()))
|
if (npc_escortAI* pEscortAI = CAST_AI(npc_prospector_remtravel::npc_prospector_remtravelAI, creature->AI()))
|
||||||
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
pEscortAI->Start(false, player->GetGUID());
|
pEscortAI->Start(false, player->GetGUID());
|
||||||
|
}
|
||||||
|
|
||||||
creature->SetFaction(FACTION_ESCORTEE_A_NEUTRAL_PASSIVE);
|
creature->SetFaction(FACTION_ESCORTEE_A_NEUTRAL_PASSIVE);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -396,7 +396,6 @@ public:
|
|||||||
case EVENT_RESTART_ESCORT:
|
case EVENT_RESTART_ESCORT:
|
||||||
CheckCaravan();
|
CheckCaravan();
|
||||||
SetDespawnAtEnd(false);
|
SetDespawnAtEnd(false);
|
||||||
SetRun(true);
|
|
||||||
Start(true, ObjectGuid::Empty, 0, false, false, true);
|
Start(true, ObjectGuid::Empty, 0, false, false, true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -384,6 +384,7 @@ public:
|
|||||||
AddWaypoint(i, Clintar_spirit_WP[i][0], Clintar_spirit_WP[i][1], Clintar_spirit_WP[i][2], (uint32)Clintar_spirit_WP[i][4]);
|
AddWaypoint(i, Clintar_spirit_WP[i][0], Clintar_spirit_WP[i][1], Clintar_spirit_WP[i][2], (uint32)Clintar_spirit_WP[i][4]);
|
||||||
}
|
}
|
||||||
PlayerGUID = player->GetGUID();
|
PlayerGUID = player->GetGUID();
|
||||||
|
me->SetWalk(true);
|
||||||
Start(true, PlayerGUID);
|
Start(true, PlayerGUID);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -137,7 +137,10 @@ public:
|
|||||||
if (quest->GetQuestId() == QUEST_PROTECT_KAYA)
|
if (quest->GetQuestId() == QUEST_PROTECT_KAYA)
|
||||||
{
|
{
|
||||||
if (npc_escortAI* pEscortAI = CAST_AI(npc_kaya_flathoof::npc_kaya_flathoofAI, creature->AI()))
|
if (npc_escortAI* pEscortAI = CAST_AI(npc_kaya_flathoof::npc_kaya_flathoofAI, creature->AI()))
|
||||||
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
pEscortAI->Start(true, player->GetGUID());
|
pEscortAI->Start(true, player->GetGUID());
|
||||||
|
}
|
||||||
|
|
||||||
creature->AI()->Talk(SAY_START);
|
creature->AI()->Talk(SAY_START);
|
||||||
creature->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
creature->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
||||||
|
|||||||
@@ -260,6 +260,7 @@ public:
|
|||||||
float Radius = 10.0f;
|
float Radius = 10.0f;
|
||||||
if (me->IsWithinDistInMap(who, Radius))
|
if (me->IsWithinDistInMap(who, Radius))
|
||||||
{
|
{
|
||||||
|
me->SetWalk(true);
|
||||||
Start(false, who->GetGUID());
|
Start(false, who->GetGUID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,10 @@ public:
|
|||||||
creature->AI()->Talk(SAY_GIL_START, player);
|
creature->AI()->Talk(SAY_GIL_START, player);
|
||||||
|
|
||||||
if (npc_giltharesAI* pEscortAI = CAST_AI(npc_gilthares::npc_giltharesAI, creature->AI()))
|
if (npc_giltharesAI* pEscortAI = CAST_AI(npc_gilthares::npc_giltharesAI, creature->AI()))
|
||||||
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
pEscortAI->Start(false, player->GetGUID(), quest);
|
pEscortAI->Start(false, player->GetGUID(), quest);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -499,7 +502,7 @@ public:
|
|||||||
Talk(SAY_STARTUP1);
|
Talk(SAY_STARTUP1);
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
if (Creature* temp = me->SummonCreature(NPC_MERCENARY, 1128.489f, -3037.611f, 92.701f, 1.472f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000))
|
if (Creature* temp = me->SummonCreature(NPC_MERCENARY, 1128.489f, -3037.611f, 92.701f, 1.472f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000))
|
||||||
@@ -528,7 +531,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case 18:
|
case 18:
|
||||||
Talk(SAY_PROGRESS_1, player);
|
Talk(SAY_PROGRESS_1, player);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -594,7 +597,10 @@ public:
|
|||||||
creature->SetFaction(FACTION_RATCHET);
|
creature->SetFaction(FACTION_RATCHET);
|
||||||
creature->AI()->Talk(SAY_START);
|
creature->AI()->Talk(SAY_START);
|
||||||
if (npc_escortAI* pEscortAI = CAST_AI(npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI, creature->AI()))
|
if (npc_escortAI* pEscortAI = CAST_AI(npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI, creature->AI()))
|
||||||
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
pEscortAI->Start(true, player->GetGUID());
|
pEscortAI->Start(true, player->GetGUID());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,10 @@ public:
|
|||||||
creature->SetFaction(FACTION_ESCORTEE_H_NEUTRAL_ACTIVE); //guessed
|
creature->SetFaction(FACTION_ESCORTEE_H_NEUTRAL_ACTIVE); //guessed
|
||||||
|
|
||||||
if (npc_lakota_windsongAI* pEscortAI = CAST_AI(npc_lakota_windsong::npc_lakota_windsongAI, creature->AI()))
|
if (npc_lakota_windsongAI* pEscortAI = CAST_AI(npc_lakota_windsong::npc_lakota_windsongAI, creature->AI()))
|
||||||
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
pEscortAI->Start(false, player->GetGUID(), quest);
|
pEscortAI->Start(false, player->GetGUID(), quest);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -148,7 +151,10 @@ public:
|
|||||||
creature->SetFaction(FACTION_ESCORTEE_H_NEUTRAL_ACTIVE); // guessed
|
creature->SetFaction(FACTION_ESCORTEE_H_NEUTRAL_ACTIVE); // guessed
|
||||||
|
|
||||||
if (npc_paoka_swiftmountainAI* pEscortAI = CAST_AI(npc_paoka_swiftmountain::npc_paoka_swiftmountainAI, creature->AI()))
|
if (npc_paoka_swiftmountainAI* pEscortAI = CAST_AI(npc_paoka_swiftmountain::npc_paoka_swiftmountainAI, creature->AI()))
|
||||||
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
pEscortAI->Start(false, player->GetGUID(), quest);
|
pEscortAI->Start(false, player->GetGUID(), quest);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ public:
|
|||||||
{
|
{
|
||||||
if (quest->GetQuestId() == QUEST_CHASING_AME)
|
if (quest->GetQuestId() == QUEST_CHASING_AME)
|
||||||
{
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
CAST_AI(npc_escortAI, (creature->AI()))->Start(false, player->GetGUID());
|
CAST_AI(npc_escortAI, (creature->AI()))->Start(false, player->GetGUID());
|
||||||
creature->AI()->Talk(SAY_READY, player);
|
creature->AI()->Talk(SAY_READY, player);
|
||||||
creature->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
|
creature->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
|
||||||
|
|||||||
@@ -286,7 +286,10 @@ public:
|
|||||||
creature->SetFaction(FACTION_ESCORT_A_NEUTRAL_PASSIVE);
|
creature->SetFaction(FACTION_ESCORT_A_NEUTRAL_PASSIVE);
|
||||||
|
|
||||||
if (npc_ranshallaAI* escortAI = dynamic_cast<npc_ranshallaAI*>(creature->AI()))
|
if (npc_ranshallaAI* escortAI = dynamic_cast<npc_ranshallaAI*>(creature->AI()))
|
||||||
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
escortAI->Start(false, player->GetGUID(), quest);
|
escortAI->Start(false, player->GetGUID(), quest);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -339,7 +339,6 @@ public:
|
|||||||
|
|
||||||
void Reset() override
|
void Reset() override
|
||||||
{
|
{
|
||||||
me->SetWalk(false);
|
|
||||||
Start(false, ObjectGuid::Empty, nullptr);
|
Start(false, ObjectGuid::Empty, nullptr);
|
||||||
SetDespawnAtEnd(true);
|
SetDespawnAtEnd(true);
|
||||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||||
|
|||||||
-1
@@ -549,7 +549,6 @@ public:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
me->SetWalk(false);
|
|
||||||
Start(false);
|
Start(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -934,7 +934,6 @@ public:
|
|||||||
case EVENT_START_PATHING:
|
case EVENT_START_PATHING:
|
||||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||||
me->SetImmuneToAll(false);
|
me->SetImmuneToAll(false);
|
||||||
me->SetWalk(false);
|
|
||||||
Start(true);
|
Start(true);
|
||||||
break;
|
break;
|
||||||
case EVENT_SCOURGE_STRIKE:
|
case EVENT_SCOURGE_STRIKE:
|
||||||
|
|||||||
@@ -128,6 +128,7 @@ struct boss_bjarngrim : public npc_escortAI
|
|||||||
AddWaypoint(13, 1281.2f, -26.8f, 33.5f, 0);
|
AddWaypoint(13, 1281.2f, -26.8f, 33.5f, 0);
|
||||||
AddWaypoint(14, 1262, -26.9f, 33.5f, 0);
|
AddWaypoint(14, 1262, -26.9f, 33.5f, 0);
|
||||||
|
|
||||||
|
me->SetWalk(true);
|
||||||
Start(true, ObjectGuid::Empty, nullptr, false, true);
|
Start(true, ObjectGuid::Empty, nullptr, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -391,7 +391,6 @@ public:
|
|||||||
switch (action)
|
switch (action)
|
||||||
{
|
{
|
||||||
case ACTION_START_ESCORT_EVENT:
|
case ACTION_START_ESCORT_EVENT:
|
||||||
me->SetWalk(false);
|
|
||||||
Start(false, ObjectGuid::Empty, 0, true, false);
|
Start(false, ObjectGuid::Empty, 0, true, false);
|
||||||
Talk(SAY_BRANN_ESCORT_START);
|
Talk(SAY_BRANN_ESCORT_START);
|
||||||
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
||||||
@@ -457,7 +456,6 @@ public:
|
|||||||
door->SetGoState(GO_STATE_READY);
|
door->SetGoState(GO_STATE_READY);
|
||||||
break;
|
break;
|
||||||
case ACTION_OPEN_DOOR:
|
case ACTION_OPEN_DOOR:
|
||||||
me->SetWalk(false);
|
|
||||||
Start(false, ObjectGuid::Empty, 0, true, false);
|
Start(false, ObjectGuid::Empty, 0, true, false);
|
||||||
SetNextWaypoint(34, false);
|
SetNextWaypoint(34, false);
|
||||||
SetEscortPaused(false);
|
SetEscortPaused(false);
|
||||||
|
|||||||
@@ -1089,6 +1089,7 @@ public:
|
|||||||
{
|
{
|
||||||
summons.DespawnAll();
|
summons.DespawnAll();
|
||||||
_spellTimer = 0;
|
_spellTimer = 0;
|
||||||
|
me->SetWalk(true);
|
||||||
Start(false, ObjectGuid::Empty, nullptr, false, true);
|
Start(false, ObjectGuid::Empty, nullptr, false, true);
|
||||||
if (Aura* aur = me->AddAura(SPELL_FREYA_DUMMY_YELLOW, me))
|
if (Aura* aur = me->AddAura(SPELL_FREYA_DUMMY_YELLOW, me))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -934,7 +934,6 @@ public:
|
|||||||
{
|
{
|
||||||
InitWaypoint();
|
InitWaypoint();
|
||||||
Reset();
|
Reset();
|
||||||
me->SetWalk(false);
|
|
||||||
Start(false);
|
Start(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1021,7 +1020,6 @@ public:
|
|||||||
{
|
{
|
||||||
InitWaypoint();
|
InitWaypoint();
|
||||||
Reset();
|
Reset();
|
||||||
me->SetWalk(false);
|
|
||||||
Start(false);
|
Start(false);
|
||||||
SetDespawnAtEnd(false);
|
SetDespawnAtEnd(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -937,7 +937,6 @@ public:
|
|||||||
{
|
{
|
||||||
InitWaypoint();
|
InitWaypoint();
|
||||||
Reset();
|
Reset();
|
||||||
me->SetWalk(false);
|
|
||||||
Start(false, ObjectGuid::Empty, nullptr, false, true);
|
Start(false, ObjectGuid::Empty, nullptr, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -372,7 +372,6 @@ struct violet_hold_trashAI : public npc_escortAI
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
SetDespawnAtEnd(false);
|
SetDespawnAtEnd(false);
|
||||||
me->SetWalk(false);
|
|
||||||
Start(true);
|
Start(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1112,7 +1111,6 @@ public:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
SetDespawnAtEnd(false);
|
SetDespawnAtEnd(false);
|
||||||
me->SetWalk(false);
|
|
||||||
Start(true);
|
Start(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -464,7 +464,10 @@ public:
|
|||||||
go->UseDoorOrButton();
|
go->UseDoorOrButton();
|
||||||
|
|
||||||
if (npc_escortAI* pEscortAI = CAST_AI(npc_lurgglbr::npc_lurgglbrAI, creature->AI()))
|
if (npc_escortAI* pEscortAI = CAST_AI(npc_lurgglbr::npc_lurgglbrAI, creature->AI()))
|
||||||
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
pEscortAI->Start(true, player->GetGUID());
|
pEscortAI->Start(true, player->GetGUID());
|
||||||
|
}
|
||||||
|
|
||||||
creature->SetFaction(player->GetTeamId() == TEAM_ALLIANCE ? FACTION_ESCORTEE_A_PASSIVE : FACTION_ESCORTEE_H_PASSIVE);
|
creature->SetFaction(player->GetTeamId() == TEAM_ALLIANCE ? FACTION_ESCORTEE_A_PASSIVE : FACTION_ESCORTEE_H_PASSIVE);
|
||||||
return true;
|
return true;
|
||||||
@@ -914,6 +917,7 @@ public:
|
|||||||
creature->SetFaction(player->GetTeamId() == TEAM_ALLIANCE ? FACTION_ESCORTEE_A_PASSIVE : FACTION_ESCORTEE_H_PASSIVE);
|
creature->SetFaction(player->GetTeamId() == TEAM_ALLIANCE ? FACTION_ESCORTEE_A_PASSIVE : FACTION_ESCORTEE_H_PASSIVE);
|
||||||
creature->SetStandState(UNIT_STAND_STATE_STAND);
|
creature->SetStandState(UNIT_STAND_STATE_STAND);
|
||||||
creature->AI()->Talk(SAY_1, player);
|
creature->AI()->Talk(SAY_1, player);
|
||||||
|
creature->SetWalk(true);
|
||||||
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, player->GetGUID());
|
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, player->GetGUID());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -959,7 +963,7 @@ public:
|
|||||||
Talk(SAY_5);
|
Talk(SAY_5);
|
||||||
me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
|
me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
|
||||||
player->GroupEventHappens(QUEST_ESCAPING_THE_MIST, me);
|
player->GroupEventHappens(QUEST_ESCAPING_THE_MIST, me);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -995,7 +999,6 @@ public:
|
|||||||
{
|
{
|
||||||
creature->SetStandState(UNIT_STAND_STATE_STAND);
|
creature->SetStandState(UNIT_STAND_STATE_STAND);
|
||||||
creature->AI()->Talk(SAY_BONKER_2, player);
|
creature->AI()->Talk(SAY_BONKER_2, player);
|
||||||
creature->SetWalk(false);
|
|
||||||
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, player->GetGUID());
|
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, player->GetGUID());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -191,6 +191,7 @@ public:
|
|||||||
if (quest->GetQuestId() == QUEST_TRAIL_OF_FIRE)
|
if (quest->GetQuestId() == QUEST_TRAIL_OF_FIRE)
|
||||||
{
|
{
|
||||||
creature->SetFaction(player->GetTeamId() == TEAM_ALLIANCE ? FACTION_ESCORTEE_A_PASSIVE : FACTION_ESCORTEE_H_PASSIVE);
|
creature->SetFaction(player->GetTeamId() == TEAM_ALLIANCE ? FACTION_ESCORTEE_A_PASSIVE : FACTION_ESCORTEE_H_PASSIVE);
|
||||||
|
creature->SetWalk(true);
|
||||||
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, player->GetGUID());
|
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, player->GetGUID());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -238,7 +239,7 @@ public:
|
|||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
me->SetReactState(REACT_AGGRESSIVE);
|
me->SetReactState(REACT_AGGRESSIVE);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
break;
|
break;
|
||||||
case 23:
|
case 23:
|
||||||
player->GroupEventHappens(QUEST_TRAIL_OF_FIRE, me);
|
player->GroupEventHappens(QUEST_TRAIL_OF_FIRE, me);
|
||||||
@@ -247,32 +248,32 @@ public:
|
|||||||
case 5:
|
case 5:
|
||||||
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER, 10.0f))
|
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER, 10.0f))
|
||||||
Trigger->CastSpell(Trigger, SPELL_COSMETIC_LOW_POLY_FIRE, false);
|
Trigger->CastSpell(Trigger, SPELL_COSMETIC_LOW_POLY_FIRE, false);
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER, 10.0f))
|
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER, 10.0f))
|
||||||
Trigger->CastSpell(Trigger, SPELL_COSMETIC_LOW_POLY_FIRE, false);
|
Trigger->CastSpell(Trigger, SPELL_COSMETIC_LOW_POLY_FIRE, false);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER, 10.0f))
|
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER, 10.0f))
|
||||||
Trigger->CastSpell(Trigger, SPELL_COSMETIC_LOW_POLY_FIRE, false);
|
Trigger->CastSpell(Trigger, SPELL_COSMETIC_LOW_POLY_FIRE, false);
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER, 10.0f))
|
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER, 10.0f))
|
||||||
Trigger->CastSpell(Trigger, SPELL_COSMETIC_LOW_POLY_FIRE, false);
|
Trigger->CastSpell(Trigger, SPELL_COSMETIC_LOW_POLY_FIRE, false);
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
SetRun(false);
|
me->SetWalk(true);
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER, 10.0f))
|
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER, 10.0f))
|
||||||
Trigger->CastSpell(Trigger, SPELL_COSMETIC_LOW_POLY_FIRE, false);
|
Trigger->CastSpell(Trigger, SPELL_COSMETIC_LOW_POLY_FIRE, false);
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -715,6 +715,7 @@ public:
|
|||||||
Talk(0);
|
Talk(0);
|
||||||
events.Reset();
|
events.Reset();
|
||||||
summons.DespawnAll();
|
summons.DespawnAll();
|
||||||
|
me->SetWalk(true);
|
||||||
Start(false);
|
Start(false);
|
||||||
|
|
||||||
int8 i = -1;
|
int8 i = -1;
|
||||||
|
|||||||
@@ -605,6 +605,7 @@ public:
|
|||||||
creature->GetMotionMaster()->MoveJumpTo(0, 0.4f, 0.4f);
|
creature->GetMotionMaster()->MoveJumpTo(0, 0.4f, 0.4f);
|
||||||
creature->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
creature->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
||||||
|
|
||||||
|
creature->SetWalk(true);
|
||||||
pEscortAI->Start(false, player->GetGUID());
|
pEscortAI->Start(false, player->GetGUID());
|
||||||
creature->AI()->Talk(SAY_WP_1);
|
creature->AI()->Talk(SAY_WP_1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,6 @@ struct npc_frosthound : public npc_escortAI
|
|||||||
{
|
{
|
||||||
me->SetFaction(who->GetFaction());
|
me->SetFaction(who->GetFaction());
|
||||||
me->CastSpell(me, SPELL_SUMMON_PURSUERS_PERIODIC, true);
|
me->CastSpell(me, SPELL_SUMMON_PURSUERS_PERIODIC, true);
|
||||||
me->SetWalk(false);
|
|
||||||
Start(false, who->GetGUID());
|
Start(false, who->GetGUID());
|
||||||
Talk(TALK_EMOTE_FROSTHOUND_SNIFF, me);
|
Talk(TALK_EMOTE_FROSTHOUND_SNIFF, me);
|
||||||
}
|
}
|
||||||
@@ -247,7 +246,6 @@ public:
|
|||||||
void RollPath()
|
void RollPath()
|
||||||
{
|
{
|
||||||
me->SetEntry(NPC_TIME_LOST_PROTO_DRAKE);
|
me->SetEntry(NPC_TIME_LOST_PROTO_DRAKE);
|
||||||
me->SetWalk(false);
|
|
||||||
Start(true, ObjectGuid::Empty, 0, false, true, true);
|
Start(true, ObjectGuid::Empty, 0, false, true, true);
|
||||||
SetNextWaypoint(urand(0, 250), true);
|
SetNextWaypoint(urand(0, 250), true);
|
||||||
me->UpdateEntry(roll_chance_i(25) ? NPC_TIME_LOST_PROTO_DRAKE : NPC_VYRAGOSA, 0, false);
|
me->UpdateEntry(roll_chance_i(25) ? NPC_TIME_LOST_PROTO_DRAKE : NPC_VYRAGOSA, 0, false);
|
||||||
|
|||||||
@@ -171,7 +171,10 @@ public:
|
|||||||
npc_ancestral_wolfAI(Creature* creature) : npc_escortAI(creature)
|
npc_ancestral_wolfAI(Creature* creature) : npc_escortAI(creature)
|
||||||
{
|
{
|
||||||
if (creature->GetOwner() && creature->GetOwner()->IsPlayer())
|
if (creature->GetOwner() && creature->GetOwner()->IsPlayer())
|
||||||
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
Start(false, creature->GetOwner()->GetGUID());
|
Start(false, creature->GetOwner()->GetGUID());
|
||||||
|
}
|
||||||
creature->SetSpeed(MOVE_WALK, 1.5f);
|
creature->SetSpeed(MOVE_WALK, 1.5f);
|
||||||
DoCast(SPELL_GUIDED_BY_THE_SPIRITS);
|
DoCast(SPELL_GUIDED_BY_THE_SPIRITS);
|
||||||
Reset();
|
Reset();
|
||||||
@@ -312,7 +315,8 @@ public:
|
|||||||
{
|
{
|
||||||
me->SetReactState(REACT_AGGRESSIVE);
|
me->SetReactState(REACT_AGGRESSIVE);
|
||||||
me->SetFaction(FACTION_ESCORTEE_H_PASSIVE);
|
me->SetFaction(FACTION_ESCORTEE_H_PASSIVE);
|
||||||
npc_escortAI::Start(true, player->GetGUID());
|
me->SetWalk(true);
|
||||||
|
Start(true, player->GetGUID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ public:
|
|||||||
{
|
{
|
||||||
creature->SetStandState(UNIT_STAND_STATE_STAND);
|
creature->SetStandState(UNIT_STAND_STATE_STAND);
|
||||||
creature->SetFaction(FACTION_ESCORTEE_H_NEUTRAL_ACTIVE);
|
creature->SetFaction(FACTION_ESCORTEE_H_NEUTRAL_ACTIVE);
|
||||||
|
creature->SetWalk(true);
|
||||||
EscortAI->Start(true, player->GetGUID(), quest);
|
EscortAI->Start(true, player->GetGUID(), quest);
|
||||||
creature->AI()->Talk(SAY_MAG_START);
|
creature->AI()->Talk(SAY_MAG_START);
|
||||||
|
|
||||||
@@ -133,7 +134,7 @@ public:
|
|||||||
if (Player* player = GetPlayerForEscort())
|
if (Player* player = GetPlayerForEscort())
|
||||||
player->GroupEventHappens(QUEST_TOTEM_KARDASH_H, me);
|
player->GroupEventHappens(QUEST_TOTEM_KARDASH_H, me);
|
||||||
|
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -306,6 +307,7 @@ public:
|
|||||||
void SetGUID(ObjectGuid const& guid, int32 /*questId*/) override
|
void SetGUID(ObjectGuid const& guid, int32 /*questId*/) override
|
||||||
{
|
{
|
||||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||||
|
me->SetWalk(true);
|
||||||
Start(true, guid);
|
Start(true, guid);
|
||||||
Talk(SAY_KUR_START);
|
Talk(SAY_KUR_START);
|
||||||
|
|
||||||
@@ -361,7 +363,7 @@ public:
|
|||||||
if (Player* player = GetPlayerForEscort())
|
if (Player* player = GetPlayerForEscort())
|
||||||
player->GroupEventHappens(QUEST_TOTEM_KARDASH_A, me);
|
player->GroupEventHappens(QUEST_TOTEM_KARDASH_A, me);
|
||||||
|
|
||||||
SetRun(true);
|
me->SetWalk(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,7 +103,6 @@ public:
|
|||||||
{
|
{
|
||||||
if (type == DATA_START_ENCOUNTER)
|
if (type == DATA_START_ENCOUNTER)
|
||||||
{
|
{
|
||||||
me->SetWalk(false);
|
|
||||||
Start(true, playerGUID);
|
Start(true, playerGUID);
|
||||||
SetEscortPaused(true);
|
SetEscortPaused(true);
|
||||||
started = true;
|
started = true;
|
||||||
@@ -606,6 +605,7 @@ public:
|
|||||||
creature->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
creature->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
||||||
creature->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
creature->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||||
creature->AI()->Talk(SAY_BESSY_0);
|
creature->AI()->Talk(SAY_BESSY_0);
|
||||||
|
creature->SetWalk(true);
|
||||||
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, player->GetGUID());
|
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, player->GetGUID());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -772,6 +772,7 @@ public:
|
|||||||
if (npc_maxx_a_million_escortAI* pEscortAI = CAST_AI(npc_maxx_a_million_escort::npc_maxx_a_million_escortAI, creature->AI()))
|
if (npc_maxx_a_million_escortAI* pEscortAI = CAST_AI(npc_maxx_a_million_escort::npc_maxx_a_million_escortAI, creature->AI()))
|
||||||
{
|
{
|
||||||
creature->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
creature->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
||||||
|
creature->SetWalk(true);
|
||||||
pEscortAI->Start(false, player->GetGUID());
|
pEscortAI->Start(false, player->GetGUID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -246,7 +246,10 @@ public:
|
|||||||
|
|
||||||
Player* player = summoner->ToPlayer();
|
Player* player = summoner->ToPlayer();
|
||||||
if (player && player->GetQuestStatus(10211) == QUEST_STATUS_INCOMPLETE)
|
if (player && player->GetQuestStatus(10211) == QUEST_STATUS_INCOMPLETE)
|
||||||
|
{
|
||||||
|
me->SetWalk(true);
|
||||||
Start(false, summoner->GetGUID());
|
Start(false, summoner->GetGUID());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reset() override { }
|
void Reset() override { }
|
||||||
|
|||||||
@@ -473,6 +473,7 @@ public:
|
|||||||
{
|
{
|
||||||
if (quest->GetQuestId() == QUEST_EFTW_H || quest->GetQuestId() == QUEST_EFTW_A)
|
if (quest->GetQuestId() == QUEST_EFTW_H || quest->GetQuestId() == QUEST_EFTW_A)
|
||||||
{
|
{
|
||||||
|
creature->SetWalk(true);
|
||||||
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, player->GetGUID());
|
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, player->GetGUID());
|
||||||
creature->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_ACTIVE);
|
creature->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_ACTIVE);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user