diff options
| author | ModoX <moardox@gmail.com> | 2023-04-10 04:04:33 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-10 04:04:33 +0200 |
| commit | 89e09dc44ed15567f77f862d1936e8e0d9019456 (patch) | |
| tree | f5664f4a2798acd965e8b589bd6ed7ff596ff780 /src/server/scripts/Kalimdor | |
| parent | 083b8d6c846cfdf75abb1fae481a3eeb25c13c56 (diff) | |
Core/AI: Drop script_waypoints and move data to waypoint_data (#28879)
Diffstat (limited to 'src/server/scripts/Kalimdor')
15 files changed, 183 insertions, 281 deletions
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp index ee1c4214c55..4161a3a8ce1 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp @@ -164,7 +164,9 @@ private: enum Morridune { SAY_MORRIDUNE_1 = 0, - SAY_MORRIDUNE_2 = 1 + SAY_MORRIDUNE_2 = 1, + + PATH_ESCORT_MORRIDUNE = 53834, }; struct npc_morridune : public EscortAI @@ -175,6 +177,7 @@ struct npc_morridune : public EscortAI { Talk(SAY_MORRIDUNE_1); me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); + LoadPath(PATH_ESCORT_MORRIDUNE); Start(false); } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp index b6632e89391..d42358717ac 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp @@ -43,6 +43,8 @@ enum Texts SAY_ONAGGRO = 5, }; +static constexpr uint32 PATH_ESCORT_ANETHERON = 142466; + class boss_anetheron : public CreatureScript { public: @@ -126,15 +128,8 @@ public: if (!go) { go = true; - AddWaypoint(0, 4896.08f, -1576.35f, 1333.65f); - AddWaypoint(1, 4898.68f, -1615.02f, 1329.48f); - AddWaypoint(2, 4907.12f, -1667.08f, 1321.00f); - AddWaypoint(3, 4963.18f, -1699.35f, 1340.51f); - AddWaypoint(4, 4989.16f, -1716.67f, 1335.74f); - AddWaypoint(5, 5026.27f, -1736.89f, 1323.02f); - AddWaypoint(6, 5037.77f, -1770.56f, 1324.36f); - AddWaypoint(7, 5067.23f, -1789.95f, 1321.17f); - Start(false, true); + LoadPath(PATH_ESCORT_ANETHERON); + Start(false); SetDespawnAtEnd(false); } } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp index bd7ef61a80a..a08cf11f500 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp @@ -42,6 +42,8 @@ enum Texts SAY_ONAGGRO = 3, }; +static constexpr uint32 PATH_ESCORT_AZGALOR = 142738; + class boss_azgalor : public CreatureScript { public: @@ -129,15 +131,8 @@ public: if (!go) { go = true; - AddWaypoint(0, 5492.91f, -2404.61f, 1462.63f); - AddWaypoint(1, 5531.76f, -2460.87f, 1469.55f); - AddWaypoint(2, 5554.58f, -2514.66f, 1476.12f); - AddWaypoint(3, 5554.16f, -2567.23f, 1479.90f); - AddWaypoint(4, 5540.67f, -2625.99f, 1480.89f); - AddWaypoint(5, 5508.16f, -2659.2f, 1480.15f); - AddWaypoint(6, 5489.62f, -2704.05f, 1482.18f); - AddWaypoint(7, 5457.04f, -2726.26f, 1485.10f); - Start(false, true); + LoadPath(PATH_ESCORT_AZGALOR); + Start(false); SetDespawnAtEnd(false); } } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp index ff1c108d4a2..7cdc1f54b48 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp @@ -43,6 +43,8 @@ enum Sounds SOUND_ONDEATH = 11018, }; +static constexpr uint32 PATH_ESCORT_KAZROGAL = 143106; + class boss_kazrogal : public CreatureScript { public: @@ -124,15 +126,8 @@ public: if (!go) { go = true; - AddWaypoint(0, 5492.91f, -2404.61f, 1462.63f); - AddWaypoint(1, 5531.76f, -2460.87f, 1469.55f); - AddWaypoint(2, 5554.58f, -2514.66f, 1476.12f); - AddWaypoint(3, 5554.16f, -2567.23f, 1479.90f); - AddWaypoint(4, 5540.67f, -2625.99f, 1480.89f); - AddWaypoint(5, 5508.16f, -2659.2f, 1480.15f); - AddWaypoint(6, 5489.62f, -2704.05f, 1482.18f); - AddWaypoint(7, 5457.04f, -2726.26f, 1485.10f); - Start(false, true); + LoadPath(PATH_ESCORT_KAZROGAL); + Start(false); SetDespawnAtEnd(false); } } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp index 05c520cd470..a3e17f8c997 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp @@ -38,6 +38,8 @@ enum Texts SAY_ONAGGRO = 4 }; +static constexpr uint32 PATH_ESCORT_RAGE_WINTERCHILL = 142138; + class boss_rage_winterchill : public CreatureScript { public: @@ -119,15 +121,8 @@ public: if (!go) { go = true; - AddWaypoint(0, 4896.08f, -1576.35f, 1333.65f); - AddWaypoint(1, 4898.68f, -1615.02f, 1329.48f); - AddWaypoint(2, 4907.12f, -1667.08f, 1321.00f); - AddWaypoint(3, 4963.18f, -1699.35f, 1340.51f); - AddWaypoint(4, 4989.16f, -1716.67f, 1335.74f); - AddWaypoint(5, 5026.27f, -1736.89f, 1323.02f); - AddWaypoint(6, 5037.77f, -1770.56f, 1324.36f); - AddWaypoint(7, 5067.23f, -1789.95f, 1321.17f); - Start(false, true); + LoadPath(PATH_ESCORT_RAGE_WINTERCHILL); + Start(false); SetDespawnAtEnd(false); } } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp index 6247dbf990b..76ee8e86efc 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp @@ -507,7 +507,6 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3]) ++EnemyCount; creature->SetWalk(false); - ENSURE_AI(hyjal_trashAI, creature->AI())->SetRun(); creature->setActive(true); creature->SetFarVisible(true); switch (entry) @@ -627,7 +626,7 @@ void hyjalAI::Retreat() instance->SetData(DATA_ALLIANCE_RETREAT, 1); AddWaypoint(0, JainaWPs[0][0], JainaWPs[0][1], JainaWPs[0][2]); AddWaypoint(1, JainaWPs[1][0], JainaWPs[1][1], JainaWPs[1][2]); - Start(false, false); + Start(false); SetDespawnAtEnd(false);//move to center of alliance base } if (Faction == 1) @@ -641,7 +640,7 @@ void hyjalAI::Retreat() DummyGuid = JainaDummy->GetGUID(); } AddWaypoint(0, JainaDummySpawn[1][0], JainaDummySpawn[1][1], JainaDummySpawn[1][2]); - Start(false, false); + Start(false); SetDespawnAtEnd(false);//move to center of alliance base } SpawnVeins(); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp index 0298b8952db..3263af0cd5e 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp @@ -226,56 +226,56 @@ void hyjal_trashAI::UpdateAI(uint32 /*diff*/) switch (OverrunType) { case 0: - AddWaypoint(4, AllianceOverrunWP[22][0]+irand(-3, 3), AllianceOverrunWP[22][1]+irand(-3, 3), AllianceOverrunWP[22][2]); - AddWaypoint(5, AllianceOverrunWP[23][0]+irand(-3, 3), AllianceOverrunWP[23][1]+irand(-3, 3), AllianceOverrunWP[23][2]); - AddWaypoint(6, AllianceOverrunWP[24][0]+irand(-3, 3), AllianceOverrunWP[24][1]+irand(-3, 3), AllianceOverrunWP[24][2]); - AddWaypoint(7, AllianceOverrunWP[25][0]+irand(-3, 3), AllianceOverrunWP[25][1]+irand(-3, 3), AllianceOverrunWP[25][2]); - AddWaypoint(8, AllianceOverrunWP[26][0]+irand(-3, 3), AllianceOverrunWP[26][1]+irand(-3, 3), AllianceOverrunWP[26][2]); - AddWaypoint(9, AllianceOverrunWP[27][0]+irand(-3, 3), AllianceOverrunWP[27][1]+irand(-3, 3), AllianceOverrunWP[27][2]); - AddWaypoint(10, AllianceOverrunWP[28][0]+irand(-3, 3), AllianceOverrunWP[28][1]+irand(-3, 3), AllianceOverrunWP[28][2]); - - AddWaypoint(11, AllianceOverrunWP[36][0]+irand(-3, 3), AllianceOverrunWP[36][1]+irand(-3, 3), AllianceOverrunWP[36][2]); - AddWaypoint(12, AllianceOverrunWP[37][0]+irand(-3, 3), AllianceOverrunWP[37][1]+irand(-3, 3), AllianceOverrunWP[37][2]); - AddWaypoint(13, AllianceOverrunWP[38][0]+irand(-3, 3), AllianceOverrunWP[38][1]+irand(-3, 3), AllianceOverrunWP[38][2]); - AddWaypoint(14, AllianceOverrunWP[39][0]+irand(-3, 3), AllianceOverrunWP[39][1]+irand(-3, 3), AllianceOverrunWP[39][2]); - AddWaypoint(15, AllianceOverrunWP[40][0]+irand(-3, 3), AllianceOverrunWP[40][1]+irand(-3, 3), AllianceOverrunWP[40][2]); - AddWaypoint(16, AllianceOverrunWP[41][0]+irand(-3, 3), AllianceOverrunWP[41][1]+irand(-3, 3), AllianceOverrunWP[41][2]); - AddWaypoint(17, AllianceOverrunWP[42][0]+irand(-3, 3), AllianceOverrunWP[42][1]+irand(-3, 3), AllianceOverrunWP[42][2]); - AddWaypoint(18, AllianceOverrunWP[43][0]+irand(-3, 3), AllianceOverrunWP[43][1]+irand(-3, 3), AllianceOverrunWP[43][2]); + AddWaypoint(4, AllianceOverrunWP[22][0]+irand(-3, 3), AllianceOverrunWP[22][1]+irand(-3, 3), AllianceOverrunWP[22][2], true); + AddWaypoint(5, AllianceOverrunWP[23][0]+irand(-3, 3), AllianceOverrunWP[23][1]+irand(-3, 3), AllianceOverrunWP[23][2], true); + AddWaypoint(6, AllianceOverrunWP[24][0]+irand(-3, 3), AllianceOverrunWP[24][1]+irand(-3, 3), AllianceOverrunWP[24][2], true); + AddWaypoint(7, AllianceOverrunWP[25][0]+irand(-3, 3), AllianceOverrunWP[25][1]+irand(-3, 3), AllianceOverrunWP[25][2], true); + AddWaypoint(8, AllianceOverrunWP[26][0]+irand(-3, 3), AllianceOverrunWP[26][1]+irand(-3, 3), AllianceOverrunWP[26][2], true); + AddWaypoint(9, AllianceOverrunWP[27][0]+irand(-3, 3), AllianceOverrunWP[27][1]+irand(-3, 3), AllianceOverrunWP[27][2], true); + AddWaypoint(10, AllianceOverrunWP[28][0]+irand(-3, 3), AllianceOverrunWP[28][1]+irand(-3, 3), AllianceOverrunWP[28][2], true); + + AddWaypoint(11, AllianceOverrunWP[36][0]+irand(-3, 3), AllianceOverrunWP[36][1]+irand(-3, 3), AllianceOverrunWP[36][2], true); + AddWaypoint(12, AllianceOverrunWP[37][0]+irand(-3, 3), AllianceOverrunWP[37][1]+irand(-3, 3), AllianceOverrunWP[37][2], true); + AddWaypoint(13, AllianceOverrunWP[38][0]+irand(-3, 3), AllianceOverrunWP[38][1]+irand(-3, 3), AllianceOverrunWP[38][2], true); + AddWaypoint(14, AllianceOverrunWP[39][0]+irand(-3, 3), AllianceOverrunWP[39][1]+irand(-3, 3), AllianceOverrunWP[39][2], true); + AddWaypoint(15, AllianceOverrunWP[40][0]+irand(-3, 3), AllianceOverrunWP[40][1]+irand(-3, 3), AllianceOverrunWP[40][2], true); + AddWaypoint(16, AllianceOverrunWP[41][0]+irand(-3, 3), AllianceOverrunWP[41][1]+irand(-3, 3), AllianceOverrunWP[41][2], true); + AddWaypoint(17, AllianceOverrunWP[42][0]+irand(-3, 3), AllianceOverrunWP[42][1]+irand(-3, 3), AllianceOverrunWP[42][2], true); + AddWaypoint(18, AllianceOverrunWP[43][0]+irand(-3, 3), AllianceOverrunWP[43][1]+irand(-3, 3), AllianceOverrunWP[43][2], true); me->SetHomePosition(AllianceOverrunWP[43][0]+irand(-3, 3), AllianceOverrunWP[43][1]+irand(-3, 3), AllianceOverrunWP[43][2], 0); SetDespawnAtEnd(false); LastOverronPos = 18; - Start(true, true); + Start(true); break; case 1: - AddWaypoint(4, AllianceOverrunWP[22][0]+irand(-3, 3), AllianceOverrunWP[22][1]+irand(-3, 3), AllianceOverrunWP[22][2]); - AddWaypoint(5, AllianceOverrunWP[23][0]+irand(-3, 3), AllianceOverrunWP[23][1]+irand(-3, 3), AllianceOverrunWP[23][2]); - AddWaypoint(6, AllianceOverrunWP[24][0]+irand(-3, 3), AllianceOverrunWP[24][1]+irand(-3, 3), AllianceOverrunWP[24][2]); - AddWaypoint(7, AllianceOverrunWP[25][0]+irand(-3, 3), AllianceOverrunWP[25][1]+irand(-3, 3), AllianceOverrunWP[25][2]); - AddWaypoint(8, AllianceOverrunWP[26][0]+irand(-3, 3), AllianceOverrunWP[26][1]+irand(-3, 3), AllianceOverrunWP[26][2]); - AddWaypoint(9, AllianceOverrunWP[27][0]+irand(-3, 3), AllianceOverrunWP[27][1]+irand(-3, 3), AllianceOverrunWP[27][2]); - AddWaypoint(10, AllianceOverrunWP[28][0]+irand(-3, 3), AllianceOverrunWP[28][1]+irand(-3, 3), AllianceOverrunWP[28][2]); - - AddWaypoint(11, AllianceOverrunWP[36][0]+irand(-3, 3), AllianceOverrunWP[36][1]+irand(-3, 3), AllianceOverrunWP[36][2]); - AddWaypoint(12, AllianceOverrunWP[37][0]+irand(-3, 3), AllianceOverrunWP[37][1]+irand(-3, 3), AllianceOverrunWP[37][2]); - AddWaypoint(13, AllianceOverrunWP[38][0]+irand(-3, 3), AllianceOverrunWP[38][1]+irand(-3, 3), AllianceOverrunWP[38][2]); - AddWaypoint(14, AllianceOverrunWP[39][0]+irand(-3, 3), AllianceOverrunWP[39][1]+irand(-3, 3), AllianceOverrunWP[39][2]); - AddWaypoint(15, AllianceOverrunWP[40][0]+irand(-3, 3), AllianceOverrunWP[40][1]+irand(-3, 3), AllianceOverrunWP[40][2]); - AddWaypoint(16, AllianceOverrunWP[41][0]+irand(-3, 3), AllianceOverrunWP[41][1]+irand(-3, 3), AllianceOverrunWP[41][2]); - AddWaypoint(17, AllianceOverrunWP[42][0]+irand(-3, 3), AllianceOverrunWP[42][1]+irand(-3, 3), AllianceOverrunWP[42][2]); - AddWaypoint(18, AllianceOverrunWP[44][0]+irand(-3, 3), AllianceOverrunWP[44][1]+irand(-3, 3), AllianceOverrunWP[44][2]); + AddWaypoint(4, AllianceOverrunWP[22][0]+irand(-3, 3), AllianceOverrunWP[22][1]+irand(-3, 3), AllianceOverrunWP[22][2], true); + AddWaypoint(5, AllianceOverrunWP[23][0]+irand(-3, 3), AllianceOverrunWP[23][1]+irand(-3, 3), AllianceOverrunWP[23][2], true); + AddWaypoint(6, AllianceOverrunWP[24][0]+irand(-3, 3), AllianceOverrunWP[24][1]+irand(-3, 3), AllianceOverrunWP[24][2], true); + AddWaypoint(7, AllianceOverrunWP[25][0]+irand(-3, 3), AllianceOverrunWP[25][1]+irand(-3, 3), AllianceOverrunWP[25][2], true); + AddWaypoint(8, AllianceOverrunWP[26][0]+irand(-3, 3), AllianceOverrunWP[26][1]+irand(-3, 3), AllianceOverrunWP[26][2], true); + AddWaypoint(9, AllianceOverrunWP[27][0]+irand(-3, 3), AllianceOverrunWP[27][1]+irand(-3, 3), AllianceOverrunWP[27][2], true); + AddWaypoint(10, AllianceOverrunWP[28][0]+irand(-3, 3), AllianceOverrunWP[28][1]+irand(-3, 3), AllianceOverrunWP[28][2], true); + + AddWaypoint(11, AllianceOverrunWP[36][0]+irand(-3, 3), AllianceOverrunWP[36][1]+irand(-3, 3), AllianceOverrunWP[36][2], true); + AddWaypoint(12, AllianceOverrunWP[37][0]+irand(-3, 3), AllianceOverrunWP[37][1]+irand(-3, 3), AllianceOverrunWP[37][2], true); + AddWaypoint(13, AllianceOverrunWP[38][0]+irand(-3, 3), AllianceOverrunWP[38][1]+irand(-3, 3), AllianceOverrunWP[38][2], true); + AddWaypoint(14, AllianceOverrunWP[39][0]+irand(-3, 3), AllianceOverrunWP[39][1]+irand(-3, 3), AllianceOverrunWP[39][2], true); + AddWaypoint(15, AllianceOverrunWP[40][0]+irand(-3, 3), AllianceOverrunWP[40][1]+irand(-3, 3), AllianceOverrunWP[40][2], true); + AddWaypoint(16, AllianceOverrunWP[41][0]+irand(-3, 3), AllianceOverrunWP[41][1]+irand(-3, 3), AllianceOverrunWP[41][2], true); + AddWaypoint(17, AllianceOverrunWP[42][0]+irand(-3, 3), AllianceOverrunWP[42][1]+irand(-3, 3), AllianceOverrunWP[42][2], true); + AddWaypoint(18, AllianceOverrunWP[44][0]+irand(-3, 3), AllianceOverrunWP[44][1]+irand(-3, 3), AllianceOverrunWP[44][2], true); me->SetHomePosition(AllianceOverrunWP[44][0]+irand(-3, 3), AllianceOverrunWP[44][1]+irand(-3, 3), AllianceOverrunWP[44][2], 0); SetDespawnAtEnd(false); LastOverronPos = 18; - Start(true, true); + Start(true); break; default: for (uint8 i = 22; i < 36; ++i) - AddWaypoint(i-18, AllianceOverrunWP[i][0]+irand(-3, 3), AllianceOverrunWP[i][1]+irand(-3, 3), AllianceOverrunWP[i][2]); + AddWaypoint(i-18, AllianceOverrunWP[i][0]+irand(-3, 3), AllianceOverrunWP[i][1]+irand(-3, 3), AllianceOverrunWP[i][2], true); SetDespawnAtEnd(true); LastOverronPos = 17; - Start(true, true); + Start(true); break; } } @@ -286,68 +286,68 @@ void hyjal_trashAI::UpdateAI(uint32 /*diff*/) switch (OverrunType) { case 0: - AddWaypoint(4, AllianceOverrunWP[1][0]+irand(-3, 3), AllianceOverrunWP[1][1]+irand(-3, 3), AllianceOverrunWP[1][2]); - AddWaypoint(5, AllianceOverrunWP[2][0]+irand(-3, 3), AllianceOverrunWP[2][1]+irand(-3, 3), AllianceOverrunWP[2][2]); + AddWaypoint(4, AllianceOverrunWP[1][0]+irand(-3, 3), AllianceOverrunWP[1][1]+irand(-3, 3), AllianceOverrunWP[1][2], true); + AddWaypoint(5, AllianceOverrunWP[2][0]+irand(-3, 3), AllianceOverrunWP[2][1]+irand(-3, 3), AllianceOverrunWP[2][2], true); me->SetHomePosition(AllianceOverrunWP[2][0]+irand(-3, 3), AllianceOverrunWP[2][1]+irand(-3, 3), AllianceOverrunWP[2][2], 0); SetDespawnAtEnd(false); LastOverronPos = 5; - Start(true, true); + Start(true); break; case 1: - AddWaypoint(4, AllianceOverrunWP[3][0]+irand(-3, 3), AllianceOverrunWP[3][1]+irand(-3, 3), AllianceOverrunWP[3][2]); - AddWaypoint(5, AllianceOverrunWP[4][0]+irand(-3, 3), AllianceOverrunWP[4][1]+irand(-3, 3), AllianceOverrunWP[4][2]); - AddWaypoint(6, AllianceOverrunWP[5][0]+irand(-3, 3), AllianceOverrunWP[5][1]+irand(-3, 3), AllianceOverrunWP[5][2]); + AddWaypoint(4, AllianceOverrunWP[3][0]+irand(-3, 3), AllianceOverrunWP[3][1]+irand(-3, 3), AllianceOverrunWP[3][2], true); + AddWaypoint(5, AllianceOverrunWP[4][0]+irand(-3, 3), AllianceOverrunWP[4][1]+irand(-3, 3), AllianceOverrunWP[4][2], true); + AddWaypoint(6, AllianceOverrunWP[5][0]+irand(-3, 3), AllianceOverrunWP[5][1]+irand(-3, 3), AllianceOverrunWP[5][2], true); me->SetHomePosition(AllianceOverrunWP[5][0]+irand(-3, 3), AllianceOverrunWP[5][1]+irand(-3, 3), AllianceOverrunWP[5][2], 0); SetDespawnAtEnd(false); LastOverronPos = 6; - Start(true, true); + Start(true); break; case 2: - AddWaypoint(4, AllianceOverrunWP[6][0]+irand(-3, 3), AllianceOverrunWP[6][1]+irand(-3, 3), AllianceOverrunWP[6][2]); - AddWaypoint(5, AllianceOverrunWP[7][0]+irand(-3, 3), AllianceOverrunWP[7][1]+irand(-3, 3), AllianceOverrunWP[7][2]); - AddWaypoint(6, AllianceOverrunWP[8][0]+irand(-3, 3), AllianceOverrunWP[8][1]+irand(-3, 3), AllianceOverrunWP[8][2]); - AddWaypoint(7, AllianceOverrunWP[9][0]+irand(-3, 3), AllianceOverrunWP[9][1]+irand(-3, 3), AllianceOverrunWP[9][2]); + AddWaypoint(4, AllianceOverrunWP[6][0]+irand(-3, 3), AllianceOverrunWP[6][1]+irand(-3, 3), AllianceOverrunWP[6][2], true); + AddWaypoint(5, AllianceOverrunWP[7][0]+irand(-3, 3), AllianceOverrunWP[7][1]+irand(-3, 3), AllianceOverrunWP[7][2], true); + AddWaypoint(6, AllianceOverrunWP[8][0]+irand(-3, 3), AllianceOverrunWP[8][1]+irand(-3, 3), AllianceOverrunWP[8][2], true); + AddWaypoint(7, AllianceOverrunWP[9][0]+irand(-3, 3), AllianceOverrunWP[9][1]+irand(-3, 3), AllianceOverrunWP[9][2], true); me->SetHomePosition(AllianceOverrunWP[9][0]+irand(-3, 3), AllianceOverrunWP[9][1]+irand(-3, 3), AllianceOverrunWP[9][2], 0); SetDespawnAtEnd(false); LastOverronPos = 7; - Start(true, true); + Start(true); break; case 3: - AddWaypoint(4, AllianceOverrunWP[10][0]+irand(-3, 3), AllianceOverrunWP[10][1]+irand(-3, 3), AllianceOverrunWP[10][2]); - AddWaypoint(5, AllianceOverrunWP[11][0]+irand(-3, 3), AllianceOverrunWP[11][1]+irand(-3, 3), AllianceOverrunWP[11][2]); - AddWaypoint(6, AllianceOverrunWP[12][0]+irand(-3, 3), AllianceOverrunWP[12][1]+irand(-3, 3), AllianceOverrunWP[12][2]); + AddWaypoint(4, AllianceOverrunWP[10][0]+irand(-3, 3), AllianceOverrunWP[10][1]+irand(-3, 3), AllianceOverrunWP[10][2], true); + AddWaypoint(5, AllianceOverrunWP[11][0]+irand(-3, 3), AllianceOverrunWP[11][1]+irand(-3, 3), AllianceOverrunWP[11][2], true); + AddWaypoint(6, AllianceOverrunWP[12][0]+irand(-3, 3), AllianceOverrunWP[12][1]+irand(-3, 3), AllianceOverrunWP[12][2], true); me->SetHomePosition(AllianceOverrunWP[12][0]+irand(-3, 3), AllianceOverrunWP[12][1]+irand(-3, 3), AllianceOverrunWP[12][2], 0); SetDespawnAtEnd(false); LastOverronPos = 6; - Start(true, true); + Start(true); break; case 4: - AddWaypoint(4, AllianceOverrunWP[13][0]+irand(-3, 3), AllianceOverrunWP[13][1]+irand(-3, 3), AllianceOverrunWP[13][2]); - AddWaypoint(5, AllianceOverrunWP[14][0]+irand(-3, 3), AllianceOverrunWP[14][1]+irand(-3, 3), AllianceOverrunWP[14][2]); - AddWaypoint(6, AllianceOverrunWP[15][0]+irand(-3, 3), AllianceOverrunWP[15][1]+irand(-3, 3), AllianceOverrunWP[15][2]); + AddWaypoint(4, AllianceOverrunWP[13][0]+irand(-3, 3), AllianceOverrunWP[13][1]+irand(-3, 3), AllianceOverrunWP[13][2], true); + AddWaypoint(5, AllianceOverrunWP[14][0]+irand(-3, 3), AllianceOverrunWP[14][1]+irand(-3, 3), AllianceOverrunWP[14][2], true); + AddWaypoint(6, AllianceOverrunWP[15][0]+irand(-3, 3), AllianceOverrunWP[15][1]+irand(-3, 3), AllianceOverrunWP[15][2], true); me->SetHomePosition(AllianceOverrunWP[15][0]+irand(-3, 3), AllianceOverrunWP[15][1]+irand(-3, 3), AllianceOverrunWP[15][2], 0); SetDespawnAtEnd(false); LastOverronPos = 6; - Start(true, true); + Start(true); break; case 5: - AddWaypoint(4, AllianceOverrunWP[16][0]+irand(-3, 3), AllianceOverrunWP[16][1]+irand(-3, 3), AllianceOverrunWP[16][2]); - AddWaypoint(5, AllianceOverrunWP[17][0]+irand(-3, 3), AllianceOverrunWP[17][1]+irand(-3, 3), AllianceOverrunWP[17][2]); - AddWaypoint(6, AllianceOverrunWP[18][0]+irand(-3, 3), AllianceOverrunWP[18][1]+irand(-3, 3), AllianceOverrunWP[18][2]); - AddWaypoint(7, AllianceOverrunWP[19][0]+irand(-3, 3), AllianceOverrunWP[19][1]+irand(-3, 3), AllianceOverrunWP[19][2]); - AddWaypoint(8, AllianceOverrunWP[20][0]+irand(-3, 3), AllianceOverrunWP[20][1]+irand(-3, 3), AllianceOverrunWP[20][2]); - AddWaypoint(9, AllianceOverrunWP[21][0]+irand(-3, 3), AllianceOverrunWP[21][1]+irand(-3, 3), AllianceOverrunWP[21][2]); + AddWaypoint(4, AllianceOverrunWP[16][0]+irand(-3, 3), AllianceOverrunWP[16][1]+irand(-3, 3), AllianceOverrunWP[16][2], true); + AddWaypoint(5, AllianceOverrunWP[17][0]+irand(-3, 3), AllianceOverrunWP[17][1]+irand(-3, 3), AllianceOverrunWP[17][2], true); + AddWaypoint(6, AllianceOverrunWP[18][0]+irand(-3, 3), AllianceOverrunWP[18][1]+irand(-3, 3), AllianceOverrunWP[18][2], true); + AddWaypoint(7, AllianceOverrunWP[19][0]+irand(-3, 3), AllianceOverrunWP[19][1]+irand(-3, 3), AllianceOverrunWP[19][2], true); + AddWaypoint(8, AllianceOverrunWP[20][0]+irand(-3, 3), AllianceOverrunWP[20][1]+irand(-3, 3), AllianceOverrunWP[20][2], true); + AddWaypoint(9, AllianceOverrunWP[21][0]+irand(-3, 3), AllianceOverrunWP[21][1]+irand(-3, 3), AllianceOverrunWP[21][2], true); me->SetHomePosition(AllianceOverrunWP[21][0]+irand(-3, 3), AllianceOverrunWP[21][1]+irand(-3, 3), AllianceOverrunWP[21][2], 0); SetDespawnAtEnd(false); LastOverronPos = 9; - Start(true, true); + Start(true); break; default: for (uint8 i = 22; i < 36; ++i) - AddWaypoint(i-18, AllianceOverrunWP[i][0]+irand(-3, 3), AllianceOverrunWP[i][1]+irand(-3, 3), AllianceOverrunWP[i][2]); + AddWaypoint(i-18, AllianceOverrunWP[i][0]+irand(-3, 3), AllianceOverrunWP[i][1]+irand(-3, 3), AllianceOverrunWP[i][2], true); SetDespawnAtEnd(true); LastOverronPos = 17; - Start(true, true); + Start(true); break; } } @@ -361,43 +361,43 @@ void hyjal_trashAI::UpdateAI(uint32 /*diff*/) switch (OverrunType) { case 0: - AddWaypoint(5, HordeOverrunWP[16][0]+irand(-10, 10), HordeOverrunWP[16][1]+irand(-10, 10), HordeOverrunWP[16][2]); - AddWaypoint(6, HordeOverrunWP[17][0]+irand(-10, 10), HordeOverrunWP[17][1]+irand(-10, 10), HordeOverrunWP[17][2]); - AddWaypoint(7, HordeOverrunWP[18][0], HordeOverrunWP[18][1], HordeOverrunWP[18][2]); - AddWaypoint(8, HordeOverrunWP[19][0], HordeOverrunWP[19][1], HordeOverrunWP[19][2]); + AddWaypoint(5, HordeOverrunWP[16][0]+irand(-10, 10), HordeOverrunWP[16][1]+irand(-10, 10), HordeOverrunWP[16][2], true); + AddWaypoint(6, HordeOverrunWP[17][0]+irand(-10, 10), HordeOverrunWP[17][1]+irand(-10, 10), HordeOverrunWP[17][2], true); + AddWaypoint(7, HordeOverrunWP[18][0], HordeOverrunWP[18][1], HordeOverrunWP[18][2], true); + AddWaypoint(8, HordeOverrunWP[19][0], HordeOverrunWP[19][1], HordeOverrunWP[19][2], true); me->SetHomePosition(HordeOverrunWP[19][0], HordeOverrunWP[19][1], HordeOverrunWP[19][2], 0); SetDespawnAtEnd(false); LastOverronPos = 8; - Start(true, true); + Start(true); break; case 1: - AddWaypoint(5, HordeOverrunWP[16][0]+irand(-10, 10), HordeOverrunWP[16][1]+irand(-10, 10), HordeOverrunWP[16][2]); - AddWaypoint(6, HordeOverrunWP[17][0]+irand(-10, 10), HordeOverrunWP[17][1]+irand(-10, 10), HordeOverrunWP[17][2]); - AddWaypoint(7, HordeOverrunWP[18][0], HordeOverrunWP[18][1], HordeOverrunWP[18][2]); - AddWaypoint(8, HordeOverrunWP[20][0], HordeOverrunWP[20][1], HordeOverrunWP[20][2]); + AddWaypoint(5, HordeOverrunWP[16][0]+irand(-10, 10), HordeOverrunWP[16][1]+irand(-10, 10), HordeOverrunWP[16][2], true); + AddWaypoint(6, HordeOverrunWP[17][0]+irand(-10, 10), HordeOverrunWP[17][1]+irand(-10, 10), HordeOverrunWP[17][2], true); + AddWaypoint(7, HordeOverrunWP[18][0], HordeOverrunWP[18][1], HordeOverrunWP[18][2], true); + AddWaypoint(8, HordeOverrunWP[20][0], HordeOverrunWP[20][1], HordeOverrunWP[20][2], true); me->SetHomePosition(HordeOverrunWP[20][0], HordeOverrunWP[20][1], HordeOverrunWP[20][2], 0); SetDespawnAtEnd(false); LastOverronPos = 8; - Start(true, true); + Start(true); break; default: for (uint8 i = 0; i < 16; ++i) - AddWaypoint(i+6, HordeOverrunWP[i][0]+irand(-10, 10), HordeOverrunWP[i][1]+irand(-10, 10), HordeOverrunWP[i][2]); + AddWaypoint(i+6, HordeOverrunWP[i][0]+irand(-10, 10), HordeOverrunWP[i][1]+irand(-10, 10), HordeOverrunWP[i][2], true); SetDespawnAtEnd(true); LastOverronPos = 21; - Start(true, true); + Start(true); break; } } if (me->GetEntry() == ABOMINATION) { for (uint8 i = 0; i < 6; ++i) - AddWaypoint(i, HordeWPs[i][0]+irand(-10, 10), HordeWPs[i][1]+irand(-10, 10), HordeWPs[i][2]); + AddWaypoint(i, HordeWPs[i][0]+irand(-10, 10), HordeWPs[i][1]+irand(-10, 10), HordeWPs[i][2], true); for (uint8 i = 0; i < 16; ++i) - AddWaypoint(i+6, HordeOverrunWP[i][0]+irand(-10, 10), HordeOverrunWP[i][1]+irand(-10, 10), HordeOverrunWP[i][2]); + AddWaypoint(i+6, HordeOverrunWP[i][0]+irand(-10, 10), HordeOverrunWP[i][1]+irand(-10, 10), HordeOverrunWP[i][2], true); SetDespawnAtEnd(true); LastOverronPos = 21; - Start(true, true); + Start(true); } } } @@ -512,8 +512,8 @@ public: if (!go) { go = true; - AddWaypoint(0, HordeWPs[7][0]+irand(-3, 3), HordeWPs[7][1]+irand(-3, 3), HordeWPs[7][2]);//HordeWPs[7] infront of thrall - Start(true, true); + AddWaypoint(0, HordeWPs[7][0]+irand(-3, 3), HordeWPs[7][1]+irand(-3, 3), HordeWPs[7][2], true);//HordeWPs[7] infront of thrall + Start(true); SetDespawnAtEnd(false); } } @@ -612,14 +612,14 @@ public: if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2]); - Start(false, true); + AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2], true); + Start(false); SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2]); - Start(false, true); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2], true); + Start(false); SetDespawnAtEnd(false); } } @@ -716,14 +716,14 @@ public: if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2]); - Start(false, true); + AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2], true); + Start(false); SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2]); - Start(false, true); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2], true); + Start(false); SetDespawnAtEnd(false); } } @@ -850,14 +850,14 @@ public: if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2]); - Start(true, true); + AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2], true); + Start(true); SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2]); - Start(true, true); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2], true); + Start(true); SetDespawnAtEnd(false); } } @@ -959,14 +959,14 @@ public: if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2]); - Start(false, true); + AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2], true); + Start(false); SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2]); - Start(false, true); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2], true); + Start(false); SetDespawnAtEnd(false); } } @@ -1060,14 +1060,14 @@ public: if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2]); - Start(false, true); + AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2], true); + Start(false); SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2]); - Start(false, true); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2], true); + Start(false); SetDespawnAtEnd(false); } } @@ -1151,14 +1151,14 @@ public: if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2]); - Start(false, true); + AddWaypoint(i, HordeWPs[i][0]+irand(-3, 3), HordeWPs[i][1]+irand(-3, 3), HordeWPs[i][2], true); + Start(false); SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2]); - Start(false, true); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3, 3), AllianceWPs[i][1]+irand(-3, 3), AllianceWPs[i][2], true); + Start(false); SetDespawnAtEnd(false); } } @@ -1255,15 +1255,15 @@ public: if (!useFlyPath) { for (uint8 i = 0; i < 3; ++i) - AddWaypoint(i, FrostWyrmWPs[i][0], FrostWyrmWPs[i][1], FrostWyrmWPs[i][2]); + AddWaypoint(i, FrostWyrmWPs[i][0], FrostWyrmWPs[i][1], FrostWyrmWPs[i][2], true); } else {//fly path FlyPathWPs for (uint8 i = 0; i < 3; ++i) - AddWaypoint(i, FlyPathWPs[i][0]+irand(-10, 10), FlyPathWPs[i][1]+irand(-10, 10), FlyPathWPs[i][2]); + AddWaypoint(i, FlyPathWPs[i][0]+irand(-10, 10), FlyPathWPs[i][1]+irand(-10, 10), FlyPathWPs[i][2], true); } go = true; - Start(false, true); + Start(false); SetDespawnAtEnd(false); } } @@ -1378,13 +1378,13 @@ public: if (!useFlyPath) { for (uint8 i = 0; i < 3; ++i) - AddWaypoint(i, GargoyleWPs[i][0]+irand(-10, 10), GargoyleWPs[i][1]+irand(-10, 10), GargoyleWPs[i][2]); + AddWaypoint(i, GargoyleWPs[i][0]+irand(-10, 10), GargoyleWPs[i][1]+irand(-10, 10), GargoyleWPs[i][2], true); }else{//fly path FlyPathWPs for (uint8 i = 0; i < 3; ++i) - AddWaypoint(i, FlyPathWPs[i][0]+irand(-10, 10), FlyPathWPs[i][1]+irand(-10, 10), FlyPathWPs[i][2]); + AddWaypoint(i, FlyPathWPs[i][0]+irand(-10, 10), FlyPathWPs[i][1]+irand(-10, 10), FlyPathWPs[i][2], true); } go = true; - Start(false, true); + Start(false); SetDespawnAtEnd(false); } } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp index f6a33f0c303..86225fce859 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp @@ -185,6 +185,9 @@ enum ThrallOldHillsbrad #define SPEED_RUN (1.0f) #define SPEED_MOUNT (1.6f) +static constexpr uint32 PATH_ESCORT_THRALL_OLD_HILLSBRAD = 143010; +static constexpr uint32 PATH_ESCORT_TARETHA = 151098; + struct npc_thrall_old_hillsbrad : public EscortAI { npc_thrall_old_hillsbrad(Creature* creature) : EscortAI(creature) @@ -204,7 +207,7 @@ struct npc_thrall_old_hillsbrad : public EscortAI void InitializeAI() override { /* correct respawn positions after wipe cannot be used because of how waypoints are set up for this creature - * it would require splitting the path into 4 segments, moving it out of script_waypoint table and changing + * it would require splitting the path into 4 segments, moving it out of waypoint_data table and changing * all waypoint ids in WaypointReached function switch (instance->GetData(TYPE_THRALL_EVENT)) { @@ -243,7 +246,6 @@ struct npc_thrall_old_hillsbrad : public EscortAI switch (waypointId) { case 8: - SetRun(false); me->SummonCreature(18764, 2181.87f, 112.46f, 89.45f, 0.26f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5s); break; case 9: @@ -255,7 +257,6 @@ struct npc_thrall_old_hillsbrad : public EscortAI me->SetDisplayId(THRALL_MODEL_EQUIPPED); break; case 11: - SetRun(); break; case 15: me->SummonCreature(NPC_RIFLE, 2200.28f, 137.37f, 87.93f, 5.07f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5s); @@ -288,13 +289,11 @@ struct npc_thrall_old_hillsbrad : public EscortAI //temporary, skarloc should rather be triggered to walk up to thrall break; case 30: - SetRun(false); break; case 31: Talk(SAY_TH_MOUNTS_UP); HadMount = true; DoMount(); - SetRun(); break; case 37: //possibly regular patrollers? If so, remove this and let database handle them @@ -306,17 +305,14 @@ struct npc_thrall_old_hillsbrad : public EscortAI me->SummonCreature(SKARLOC_MOUNT, 2488.64f, 625.77f, 58.26f, 4.71f, TEMPSUMMON_TIMED_DESPAWN, 10s); DoUnmount(); HadMount = false; - SetRun(false); break; case 60: me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION); //make horsie run off SetEscortPaused(true); instance->SetData(TYPE_THRALL_EVENT, OH_ESCORT_BARN_TO_TARETHA); - SetRun(); break; case 64: - SetRun(false); break; case 68: me->SummonCreature(NPC_BARN_PROTECTOR, 2500.22f, 692.60f, 55.50f, 2.84f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5s); @@ -325,10 +321,8 @@ struct npc_thrall_old_hillsbrad : public EscortAI me->SummonCreature(NPC_BARN_GUARDSMAN, 2500.94f, 695.81f, 55.50f, 3.14f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5s); break; case 71: - SetRun(); break; case 81: - SetRun(false); break; case 83: me->SummonCreature(NPC_CHURCH_PROTECTOR, 2627.33f, 646.82f, 56.03f, 4.28f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5s); @@ -338,11 +332,6 @@ struct npc_thrall_old_hillsbrad : public EscortAI break; case 84: Talk(SAY_TH_CHURCH_END); - SetRun(); - break; - case 91: - me->SetWalk(true); - SetRun(false); break; case 93: me->SummonCreature(NPC_INN_PROTECTOR, 2652.71f, 660.31f, 61.93f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5s); @@ -364,7 +353,6 @@ struct npc_thrall_old_hillsbrad : public EscortAI break; case 97: Talk(SAY_TH_EPOCH_KILL_TARETHA); - SetRun(); break; case 98: //trigger epoch Yell("Thrall! Come outside and face your fate! ....") @@ -376,7 +364,13 @@ struct npc_thrall_old_hillsbrad : public EscortAI if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TARETHA))) { if (Player* player = GetPlayerForEscort()) - ENSURE_AI(EscortAI, (Taretha->AI()))->Start(false, true, player->GetGUID()); + { + if (EscortAI* ai = CAST_AI(EscortAI, Taretha->AI())) + { + ai->LoadPath(PATH_ESCORT_TARETHA); + ai->Start(false, player->GetGUID()); + } + } } //kill credit Creature for quest @@ -505,7 +499,8 @@ struct npc_thrall_old_hillsbrad : public EscortAI Talk(SAY_TH_START_EVENT_PART1); - Start(true, true, player->GetGUID()); + LoadPath(PATH_ESCORT_THRALL_OLD_HILLSBRAD); + Start(true, player->GetGUID()); SetMaxPlayerDistance(100.0f);//not really needed, because it will not despawn if player is too far SetDespawnAtEnd(false); diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp index 7dbf703705e..9a4e8f41ce5 100644 --- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp +++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp @@ -40,7 +40,9 @@ enum Willix SAY_END = 10, QUEST_WILLIX_THE_IMPORTER = 1144, - ENTRY_BOAR = 4514 + ENTRY_BOAR = 4514, + + PATH_ESCORT_WILLIX = 36066 }; class npc_willix : public CreatureScript @@ -56,7 +58,8 @@ public: { if (quest->GetQuestId() == QUEST_WILLIX_THE_IMPORTER) { - Start(true, false, player->GetGUID()); + LoadPath(PATH_ESCORT_WILLIX); + Start(true, player->GetGUID()); Talk(SAY_READY, player); me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE); } diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp index 6355a9a2133..3e683d4e9f6 100644 --- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp +++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp @@ -74,6 +74,8 @@ enum Enums NPC_DEVIATE_MOCCASIN = 5762, NPC_NIGHTMARE_ECTOPLASM = 5763, NPC_MUTANUS_THE_DEVOURER = 3654, + + PATH_ESCORT_NARALEX_DISCIPLE = 29426, }; class npc_disciple_of_naralex : public CreatureScript @@ -281,7 +283,6 @@ public: naralex->AI()->Talk(SAY_FAREWELL); naralex->AddAura(SPELL_FLIGHT_FORM, naralex); } - SetRun(); me->SetStandState(UNIT_STAND_STATE_STAND); me->AddAura(SPELL_FLIGHT_FORM, me); } @@ -335,7 +336,8 @@ public: me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_ACTIVE); me->SetImmuneToPC(false); - Start(false, false, player->GetGUID()); + LoadPath(PATH_ESCORT_NARALEX_DISCIPLE); + Start(false, player->GetGUID()); SetDespawnAtFar(false); SetDespawnAtEnd(false); } diff --git a/src/server/scripts/Kalimdor/zone_ashenvale.cpp b/src/server/scripts/Kalimdor/zone_ashenvale.cpp index 285db50448b..c1c627a2453 100644 --- a/src/server/scripts/Kalimdor/zone_ashenvale.cpp +++ b/src/server/scripts/Kalimdor/zone_ashenvale.cpp @@ -46,7 +46,8 @@ enum RuulSnowhoof QUEST_FREEDOM_TO_RUUL = 6482, GO_CAGE = 178147, RUUL_SHAPECHANGE = 20514, - SAY_FINISH = 0 + SAY_FINISH = 0, + PATH_ESCORT_RUUL_SNOWHOOF = 102546, }; Position const RuulSnowhoofSummonsCoord[6] = @@ -86,7 +87,8 @@ public: if (quest->GetQuestId() == QUEST_FREEDOM_TO_RUUL) { me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE); - EscortAI::Start(true, false, player->GetGUID()); + LoadPath(PATH_ESCORT_RUUL_SNOWHOOF); + EscortAI::Start(true, player->GetGUID()); } } @@ -167,7 +169,9 @@ enum Muglash NPC_WRATH_SEAWITCH = 3715, NPC_VORSHA = 12940, - NPC_MUGLASH = 12717 + NPC_MUGLASH = 12717, + + PATH_ESCORT_MUGLASH = 101738, }; Position const FirstNagaCoord[3] = @@ -239,7 +243,8 @@ public: { Talk(SAY_MUG_START1); me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE); - EscortAI::Start(true, false, player->GetGUID()); + LoadPath(PATH_ESCORT_MUGLASH); + EscortAI::Start(true, player->GetGUID()); } } diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp index 18ddd8a2a38..76aa6af3c7f 100644 --- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp @@ -336,7 +336,8 @@ enum Magwin EVENT_STAND = 3, EVENT_TALK_END = 4, EVENT_COWLEN_TALK = 5, - QUEST_A_CRY_FOR_HELP = 9528 + QUEST_A_CRY_FOR_HELP = 9528, + PATH_ESCORT_MAGWIN = 138498, }; class npc_magwin : public CreatureScript @@ -379,7 +380,6 @@ public: case 28: player->GroupEventHappens(QUEST_A_CRY_FOR_HELP, me); _events.ScheduleEvent(EVENT_TALK_END, 2s); - SetRun(true); break; case 29: if (Creature* cowlen = me->FindNearestCreature(NPC_COWLEN, 50.0f, true)) @@ -406,7 +406,10 @@ public: break; case EVENT_START_ESCORT: if (Player* player = ObjectAccessor::GetPlayer(*me, _player)) - EscortAI::Start(true, false, player->GetGUID()); + { + LoadPath(PATH_ESCORT_MAGWIN); + EscortAI::Start(true, player->GetGUID()); + } _events.ScheduleEvent(EVENT_STAND, 2s); break; case EVENT_STAND: // Remove kneel standstate. Using a separate delayed event because it causes unwanted delay before starting waypoint movement. diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp index d23895ed1a8..bf2ea648bc2 100644 --- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp @@ -284,6 +284,8 @@ public: ## npc_demolitionist_legoso ######*/ +static constexpr uint32 PATH_ESCORT_LEGOSO = 143858; + class npc_demolitionist_legoso : public CreatureScript { public: @@ -307,7 +309,8 @@ public: if (quest->GetQuestId() == QUEST_ENDING_THEIR_WORLD) { SetGUID(player->GetGUID(), DATA_EVENT_STARTER_GUID); - Start(true, true, player->GetGUID(), quest); + LoadPath(PATH_ESCORT_LEGOSO); + Start(true, player->GetGUID(), quest); } } diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp index 0f594165860..9c09e0d8cb6 100644 --- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp +++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp @@ -35,99 +35,6 @@ EndContentData */ #include "TemporarySummon.h" /*###### -# npc_gilthares -######*/ - -enum Gilthares -{ - SAY_GIL_START = 0, - SAY_GIL_AT_LAST = 1, - SAY_GIL_PROCEED = 2, - SAY_GIL_FREEBOOTERS = 3, - SAY_GIL_AGGRO = 4, - SAY_GIL_ALMOST = 5, - SAY_GIL_SWEET = 6, - SAY_GIL_FREED = 7, - - QUEST_FREE_FROM_HOLD = 898, - AREA_MERCHANT_COAST = 391 -}; - -class npc_gilthares : public CreatureScript -{ -public: - npc_gilthares() : CreatureScript("npc_gilthares") { } - - struct npc_giltharesAI : public EscortAI - { - npc_giltharesAI(Creature* creature) : EscortAI(creature) { } - - void Reset() override { } - - void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override - { - Player* player = GetPlayerForEscort(); - if (!player) - return; - - switch (waypointId) - { - case 16: - Talk(SAY_GIL_AT_LAST, player); - break; - case 17: - Talk(SAY_GIL_PROCEED, player); - break; - case 18: - Talk(SAY_GIL_FREEBOOTERS, player); - break; - case 37: - Talk(SAY_GIL_ALMOST, player); - break; - case 47: - Talk(SAY_GIL_SWEET, player); - break; - case 53: - Talk(SAY_GIL_FREED, player); - player->GroupEventHappens(QUEST_FREE_FROM_HOLD, me); - break; - } - } - - void JustEngagedWith(Unit* who) override - { - //not always use - if (rand32() % 4) - return; - - //only aggro text if not player and only in this area - if (who->GetTypeId() != TYPEID_PLAYER && me->GetAreaId() == AREA_MERCHANT_COAST) - { - //appears to be pretty much random (possible only if escorter not in combat with who yet?) - Talk(SAY_GIL_AGGRO, who); - } - } - - void OnQuestAccept(Player* player, Quest const* quest) override - { - if (quest->GetQuestId() == QUEST_FREE_FROM_HOLD) - { - me->SetFaction(FACTION_ESCORTEE_H_NEUTRAL_ACTIVE); - me->SetStandState(UNIT_STAND_STATE_STAND); - - Talk(SAY_GIL_START, player); - Start(false, false, player->GetGUID(), quest); - } - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_giltharesAI(creature); - } -}; - -/*###### ## npc_taskmaster_fizzule ######*/ @@ -478,6 +385,8 @@ enum Wizzlecrank QUEST_ESCAPE = 863, NPC_PILOT_WIZZ = 3451, NPC_MERCENARY = 3282, + + PATH_ESCORT_WIZZLECRANK = 27514, }; class npc_wizzlecrank_shredder : public CreatureScript @@ -506,9 +415,6 @@ public: case 0: Talk(SAY_STARTUP1); break; - case 9: - SetRun(false); - break; case 17: if (Creature* temp = me->SummonCreature(NPC_MERCENARY, 1128.489f, -3037.611f, 92.701f, 1.472f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 2min)) { @@ -536,7 +442,6 @@ public: break; case 18: Talk(SAY_PROGRESS_1, player); - SetRun(); break; } } @@ -599,7 +504,8 @@ public: me->SetFaction(FACTION_RATCHET); Talk(SAY_START); SetDespawnAtEnd(false); - Start(true, false, player->GetGUID()); + LoadPath(PATH_ESCORT_WIZZLECRANK), + Start(true, player->GetGUID()); } } }; diff --git a/src/server/scripts/Kalimdor/zone_winterspring.cpp b/src/server/scripts/Kalimdor/zone_winterspring.cpp index eba6aa87899..ce9ef758f5d 100644 --- a/src/server/scripts/Kalimdor/zone_winterspring.cpp +++ b/src/server/scripts/Kalimdor/zone_winterspring.cpp @@ -256,6 +256,8 @@ static Position wingThicketLocations[] = # npc_ranshalla #####*/ +static constexpr uint32 PATH_ESCORT_RANSHALLA = 82402; + class npc_ranshalla : public CreatureScript { public: @@ -544,7 +546,8 @@ public: Talk(SAY_QUEST_START); me->SetFaction(FACTION_ESCORTEE_A_NEUTRAL_PASSIVE); - Start(false, false, player->GetGUID(), quest); + LoadPath(PATH_ESCORT_RANSHALLA); + Start(false, player->GetGUID(), quest); } } |
