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:
killerwife
2025-10-24 08:43:18 +02:00
committed by GitHub
parent 0779ece252
commit a8d07b669d
49 changed files with 120 additions and 75 deletions

View File

@@ -424,7 +424,7 @@ public:
{
Talk(SAY_PHASE201);
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2, 12s);
SetRun(false);
me->SetWalk(true);
eventInRun = true;
me->SummonCreature(NPC_CITY_MAN, EventPos[EVENT_SRC_TOWN_CITYMAN1]);
@@ -434,14 +434,14 @@ public:
{
waveGroupId = 10;
eventInRun = true;
SetRun(true);
me->SetWalk(false);
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2 + 9, 10s);
}
else if (param == ACTION_START_TOWN_HALL)
{
Talk(SAY_PHASE301);
SetEscortPaused(false);
SetRun(false);
me->SetWalk(true);
if (Creature* cr = me->SummonCreature(NPC_CITY_MAN3, EventPos[EVENT_SRC_HALL_CITYMAN1]))
{
@@ -460,13 +460,13 @@ public:
{
Talk(SAY_PHASE401);
SetEscortPaused(false);
SetRun(false);
me->SetWalk(true);
}
else if (param == ACTION_START_LAST_CITY)
{
Talk(SAY_PHASE404);
SetEscortPaused(false);
SetRun(true);
me->SetWalk(false);
}
else if (param == ACTION_START_MALGANIS)
{
@@ -480,7 +480,7 @@ public:
}
Talk(SAY_PHASE501);
SetEscortPaused(false);
SetRun(true);
me->SetWalk(false);
}
else if (param == ACTION_KILLED_MALGANIS)
{
@@ -533,7 +533,7 @@ public:
break;
// After intro, in front of bridge
case 3:
SetRun(true);
me->SetWalk(false);
Talk(SAY_PHASE118);
summons.DespawnAll(); // uther, jaina and horses
break;
@@ -574,7 +574,7 @@ public:
if (pInstance)
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_REACHED_TOWN_HALL);
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
SetRun(false);
me->SetWalk(true);
SetEscortPaused(true);
break;
// Inside Town Hall first scene pos
@@ -600,7 +600,7 @@ public:
break;
// Town Hall, upper floor third fight
case 31:
SetRun(false);
me->SetWalk(true);
SpawnTimeRift();
SpawnTimeRift();
Talk(SAY_PHASE312);
@@ -616,14 +616,14 @@ public:
break;
// Reached book shelf
case 36:
SetRun(true);
me->SetWalk(false);
if (pInstance)
if (GameObject* pGate = pInstance->instance->GetGameObject(pInstance->GetGuidData(DATA_SHKAF_GATE)))
pGate->SetGoState(GO_STATE_ACTIVE);
break;
// Behind secred passage
case 45:
SetRun(true);
me->SetWalk(false);
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
SetEscortPaused(true);
if (pInstance)
@@ -631,11 +631,11 @@ public:
break;
// Some walk talk
case 47:
SetRun(false);
me->SetWalk(true);
Talk(SAY_PHASE405);
break;
case 48:
SetRun(true);
me->SetWalk(false);
Talk(SAY_PHASE406);
break;
case 53:
@@ -674,7 +674,7 @@ public:
switch (uint32 currentEvent = actionEvents.ExecuteEvent())
{
case EVENT_ACTION_PHASE1:
SetRun(false);
me->SetWalk(true);
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))
{
@@ -690,6 +690,7 @@ public:
break;
case EVENT_ACTION_PHASE1+1:
// Start Event
me->SetWalk(true);
Start(true);
SetDespawnAtEnd(false);
SetDespawnAtFar(false);
@@ -958,7 +959,7 @@ public:
break;
// After waypoint 23
case EVENT_ACTION_PHASE3+3:
SetRun(true);
me->SetWalk(false);
if (Creature* cr = GetEventNpc(NPC_CITY_MAN3))
me->CastSpell(cr, SPELL_ARTHAS_CRUSADER_STRIKE, true);
ScheduleNextEvent(currentEvent, 2s);

View File

@@ -316,12 +316,12 @@ public:
events.ScheduleEvent(EVENT_THRALL_EMOTE, 1300ms);
break;
case 9:
SetRun(false);
me->SetWalk(true);
events.ScheduleEvent(EVENT_KILL_ARMORER, 500ms);
events.ScheduleEvent(EVENT_TALK_KILL_ARMORER, 3s);
break;
case 10:
SetRun(true);
me->SetWalk(false);
events.ScheduleEvent(EVENT_DRESSING_KNEEL, 500ms);
events.ScheduleEvent(EVENT_DRESSING_ARMOR, 3s);
events.ScheduleEvent(EVENT_DRESSING_STAND, 4s);
@@ -374,7 +374,7 @@ public:
}
UnMountSelf();
_mounted = false;
SetRun(false);
me->SetWalk(true);
me->SetFacingTo(6.0388f);
break;
case 60:
@@ -386,12 +386,12 @@ public:
}
Talk(SAY_EMOTE_HORSE);
SetEscortPaused(true);
SetRun(true);
me->SetWalk(false);
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetFacingTo(4.1364f);
break;
case 64:
SetRun(false);
me->SetWalk(true);
break;
case 67:
events.ScheduleEvent(EVENT_LOOK_1, 1200ms);
@@ -418,12 +418,12 @@ public:
summon->AI()->Talk(SAY_LOOKOUT_INN);
break;
case 92:
SetRun(false);
me->SetWalk(true);
break;
case 94:
summons.DespawnAll();
SetEscortPaused(true);
SetRun(true);
me->SetWalk(false);
instance->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_TARETHA_MEET);
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TARETHA_GUID)))
{
@@ -664,7 +664,7 @@ public:
me->SetFacingTo(2.0071f);
break;
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_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))
@@ -1018,7 +1018,7 @@ public:
{
if (waypointId == 7)
{
SetRun(false);
me->SetWalk(true);
Talk(SAY_TARETHA_FREE);
me->HandleEmoteCommand(EMOTE_ONESHOT_CHEER);
if (Creature* thrall = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL_GUID)))