aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/1073_world_scripts.sql1
-rw-r--r--src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp120
2 files changed, 120 insertions, 1 deletions
diff --git a/sql/updates/1073_world_scripts.sql b/sql/updates/1073_world_scripts.sql
new file mode 100644
index 00000000000..040fe88ea8e
--- /dev/null
+++ b/sql/updates/1073_world_scripts.sql
@@ -0,0 +1 @@
+update creature_template set scriptname = 'npc_plains_vision' where entry = 2983; \ No newline at end of file
diff --git a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
index 51bdf5c3af0..cde34fb11a0 100644
--- a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
+++ b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
@@ -17,16 +17,18 @@
/* ScriptData
SDName: Mulgore
SD%Complete: 100
-SDComment: Support for quest: 11129
+SDComment: Support for quest: 11129, 772
SDCategory: Mulgore
EndScriptData */
/* ContentData
npc_skorn_whitecloud
npc_kyle_frenzied
+npc_plains_vision
EndContentData */
#include "precompiled.h"
+#include "../../npc/npc_escortAI.h"
/*######
# npc_skorn_whitecloud
@@ -158,6 +160,117 @@ CreatureAI* GetAI_npc_kyle_frenzied(Creature *_Creature)
return new npc_kyle_frenziedAI (_Creature);
}
+/*#####
+# npc_plains_vision
+######*/
+
+float wp_plain_vision[50][3] =
+{
+ {-2226.32, -408.095, -9.36235},
+ {-2203.04, -437.212, -5.72498},
+ {-2163.91, -457.851, -7.09049},
+ {-2123.87, -448.137, -9.29591},
+ {-2104.66, -427.166, -6.49513},
+ {-2101.48, -422.826, -5.3567},
+ {-2097.56, -417.083, -7.16716},
+ {-2084.87, -398.626, -9.88973},
+ {-2072.71, -382.324, -10.2488},
+ {-2054.05, -356.728, -6.22468},
+ {-2051.8, -353.645, -5.35791},
+ {-2049.08, -349.912, -6.15723},
+ {-2030.6, -310.724, -9.59302},
+ {-2002.15, -249.308, -10.8124},
+ {-1972.85, -195.811, -10.6316},
+ {-1940.93, -147.652, -11.7055},
+ {-1888.06, -81.943, -11.4404},
+ {-1837.05, -34.0109, -12.258},
+ {-1796.12, -14.6462, -10.3581},
+ {-1732.61, -4.27746, -10.0213},
+ {-1688.94, -0.829945, -11.7103},
+ {-1681.32, 13.0313, -9.48056},
+ {-1677.04, 36.8349, -7.10318},
+ {-1675.2, 68.559, -8.95384},
+ {-1676.57, 89.023, -9.65104},
+ {-1678.16, 110.939, -10.1782},
+ {-1677.86, 128.681, -5.73869},
+ {-1675.27, 144.324, -3.47916},
+ {-1671.7, 163.169, -1.23098},
+ {-1666.61, 181.584, 5.26145},
+ {-1661.51, 196.154, 8.95252},
+ {-1655.47, 210.811, 8.38727},
+ {-1647.07, 226.947, 5.27755},
+ {-1621.65, 232.91, 2.69579},
+ {-1600.23, 237.641, 2.98539},
+ {-1576.07, 242.546, 4.66541},
+ {-1554.57, 248.494, 6.60377},
+ {-1547.53, 259.302, 10.6741},
+ {-1541.7, 269.847, 16.4418},
+ {-1539.83, 278.989, 21.0597},
+ {-1540.16, 290.219, 27.8247},
+ {-1538.99, 298.983, 34.0032},
+ {-1540.38, 307.337, 41.3557},
+ {-1536.61, 314.884, 48.0179},
+ {-1532.42, 323.277, 55.6667},
+ {-1528.77, 329.774, 61.1525},
+ {-1525.65, 333.18, 63.2161},
+ {-1517.01, 350.713, 62.4286},
+ {-1511.39, 362.537, 62.4539},
+ {-1508.68, 366.822, 62.733}
+};
+
+struct TRINITY_DLL_DECL npc_plains_visionAI : public ScriptedAI
+{
+ npc_plains_visionAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ bool newWaypoint;
+ uint8 WayPointId;
+ uint8 amountWP;
+
+ void Reset()
+ {
+ WayPointId = 0;
+ newWaypoint = true;
+ amountWP = 49;
+ }
+
+ void Aggro(Unit* who){}
+
+ void MovementInform(uint32 type, uint32 id)
+ {
+ if(type != POINT_MOTION_TYPE)
+ return;
+
+ if (id < amountWP)
+ {
+ ++WayPointId;
+ newWaypoint = true;
+ }
+ else
+ {
+ m_creature->setDeathState(JUST_DIED);
+ m_creature->RemoveCorpse();
+ }
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (newWaypoint)
+ {
+ m_creature->GetMotionMaster()->MovePoint(WayPointId, wp_plain_vision[WayPointId][0], wp_plain_vision[WayPointId][1], wp_plain_vision[WayPointId][2]);
+ newWaypoint = false;
+ }
+ }
+};
+
+CreatureAI* GetAI_npc_plains_vision(Creature *_Creature)
+{
+ return new npc_plains_visionAI (_Creature);
+}
+
+/*#####
+#
+######*/
+
void AddSC_mulgore()
{
Script *newscript;
@@ -172,4 +285,9 @@ void AddSC_mulgore()
newscript->Name="npc_kyle_frenzied";
newscript->GetAI = &GetAI_npc_kyle_frenzied;
newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name = "npc_plains_vision";
+ newscript->GetAI = &GetAI_npc_plains_vision;
+ newscript->RegisterSelf();
}