aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Kalimdor
diff options
context:
space:
mode:
authorModoX <moardox@gmail.com>2023-04-10 04:04:33 +0200
committerGitHub <noreply@github.com>2023-04-10 04:04:33 +0200
commit89e09dc44ed15567f77f862d1936e8e0d9019456 (patch)
treef5664f4a2798acd965e8b589bd6ed7ff596ff780 /src/server/scripts/Kalimdor
parent083b8d6c846cfdf75abb1fae481a3eeb25c13c56 (diff)
Core/AI: Drop script_waypoints and move data to waypoint_data (#28879)
Diffstat (limited to 'src/server/scripts/Kalimdor')
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp5
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp13
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp13
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp13
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp13
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp5
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp224
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp31
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp7
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp6
-rw-r--r--src/server/scripts/Kalimdor/zone_ashenvale.cpp13
-rw-r--r--src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp9
-rw-r--r--src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp5
-rw-r--r--src/server/scripts/Kalimdor/zone_the_barrens.cpp102
-rw-r--r--src/server/scripts/Kalimdor/zone_winterspring.cpp5
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);
}
}