aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGacko <gacko28@gmx.de>2012-11-11 18:43:04 +0100
committerGacko <gacko28@gmx.de>2012-11-11 18:43:04 +0100
commit5126c0ad8ba2ba18866226ad7829f4301c90d4b6 (patch)
tree428f816c57762a96fde18e0d621e4d1b0d765305
parenta2748fde4b6b4ddb042264cd50f1f522a148daec (diff)
Core/DB: Utgarde Keep - Proto Drake
-rw-r--r--sql/updates/world/2012_11_10_00_world_utgarde.sql2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp11
2 files changed, 12 insertions, 1 deletions
diff --git a/sql/updates/world/2012_11_10_00_world_utgarde.sql b/sql/updates/world/2012_11_10_00_world_utgarde.sql
index 3ff985cb50b..90c9cd80b83 100644
--- a/sql/updates/world/2012_11_10_00_world_utgarde.sql
+++ b/sql/updates/world/2012_11_10_00_world_utgarde.sql
@@ -9,7 +9,7 @@ INSERT INTO `smart_scripts`(`entryorguid`,`source_type`,`event_type`,`event_para
-- Template updates for proto drake and rider
UPDATE `creature_template` SET `AIName`='',`ScriptName`='npc_enslaved_proto_drake' WHERE `entry`=24083; -- Proto drake non heroic
-UPDATE `creature_template` SET `InhabitType`=3 WHERE `entry` IN (24849,31676); -- Proto drake rider
+UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry` IN (24849,31676); -- Proto drake rider
-- Waypoints for core script
DELETE FROM `waypoint_data` WHERE `id`=125946;
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
index 885cf410032..a982032e0ee 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
@@ -246,6 +246,8 @@ enum EnslavedProtoDrake
SPELL_REND = 43931,
SPELL_FLAME_BREATH = 50653,
SPELL_KNOCK_AWAY = 49722,
+
+ POINT_LAST = 5,
};
const Position protodrakeCheckPos = { 206.24f, -190.28f, 200.11f };
@@ -270,11 +272,20 @@ public:
_events.ScheduleEvent(EVENT_KNOCKAWAY, urand(3500, 6000));
}
+ void MovementInform(uint32 type, uint32 id)
+ {
+ if (type == WAYPOINT_MOTION_TYPE && id == POINT_LAST)
+ {
+ me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
+ }
+ }
+
void SetData(uint32 type, uint32 data)
{
if (type == TYPE_PROTODRAKE_AT && data == DATA_PROTODRAKE_MOVE && !_setData && me->GetDistance(protodrakeCheckPos) < 5.0f)
{
_setData = true;
+ me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->GetMotionMaster()->MovePath(PATH_PROTODRAKE, false);
}
}