Scripts/ZA:

* improved Vol'jin's intro script
* added some waypoints for some trash npcs
This commit is contained in:
Ovahlord
2020-09-02 18:19:26 +02:00
parent c46ae64384
commit 82a1374fa9
4 changed files with 191 additions and 85 deletions

View File

@@ -0,0 +1,108 @@
UPDATE `creature` SET `modelid`= 31736 WHERE `id`= 52924;
SET @PATH := 52924 * 100;
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(@PATH, 1, 117.73489, 1662.7703, 42.021564, 0, 0, 1, 0, 100, 0),
(@PATH, 2, 132.13078, 1645.1361, 42.021576, 0, 0, 1, 0, 100, 0);
SET @PATH := 52924 * 100 + 1;
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(@PATH, 1, 122.48868, 1639.4692, 42.1047, 0, 0, 1, 0, 100, 0);
SET @PATH := 52924 * 100 + 2;
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(@PATH, 1, 121.03993, 1672.1962, 42.02157, 0, 0, 1, 0, 100, 0);
DELETE FROM `creature_text` WHERE `CreatureID`= 24363;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `comment`) VALUES
(24363, 0, 0, 'Da spirits gonna feast today! Begin da ceremonies, sacrifice da prisoners... make room for our new guests!', 14, 0, 100, 0, 0, 12053, 23253, 'Hex Lord Malacrass'),
(24363, 1, 0, 'Don\'t be shy. Thousands have come before you. Ya not be alone in your service.', 14, 0, 100, 0, 0, 12055, 23317, 'Hex Lord Malacrass'),
(24363, 2, 0, 'Ya gonna fail, strangers. Many try before you, but dey only make us stronger!', 14, 0, 100, 0, 0, 12056, 23318, 'Hex Lord Malacrass');
UPDATE `creature_text` SET `TextRange`= 3 WHERE `CreatureID`= 24363;
-- Pathing for Entry: 23774 'TDB FORMAT'
SET @NPC := 339492;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `spawndist`= 0, `MovementType`= 2, `position_x`= -180.443, `position_y`= 1242.61, `position_z`= 2.1280074 WHERE `guid`= @NPC;
DELETE FROM `creature_addon` WHERE `guid`= @NPC;
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES (@NPC, @PATH, 0, 0, 1, 0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(@PATH, 1, -180.443, 1242.61, 2.1280074, 4.729842185974121093, 3672, 1, 0, 100, 0),
(@PATH, 2, -204.02148, 1247.1338, 1.448443, 0, 217, 1, 0, 100, 0),
(@PATH, 3, -204.02148, 1247.1338, 1.4484429, 5.672319889068603515, 4484, 1, 0, 100, 0),
(@PATH, 4, -200.48438, 1242.8473, 1.0690485, 0, 411, 1, 0, 100, 0),
(@PATH, 5, -200.48438, 1242.8473, 1.0690485, 0.593411922454833984, 422, 1, 0, 100, 0),
(@PATH, 6, -200.48438, 1242.8473, 1.0690485, 0.209439516067504882, 3437, 1, 0, 100, 0),
(@PATH, 7, -190.551, 1236.19, 0.49617147, 0, 3863, 1, 0, 100, 0),
(@PATH, 8, -180.443, 1242.61, 2.1280074, 0, 0, 1, 0, 100, 0);
-- 0x2041004700173780001C8700007ECDE7 .go xyz -180.443 1242.61 2.1280074
-- Pathing for Entry: 23774 'TDB FORMAT'
SET @NPC := 329126;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `spawndist`= 0, `MovementType`= 2, `position_x`= -222.16797, `position_y`= 1131.9479, `position_z`= -1.6283163 WHERE `guid`= @NPC;
DELETE FROM `creature_addon` WHERE `guid`= @NPC;
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES (@NPC, @PATH, 0, 0, 1, 0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(@PATH, 1, -222.16797, 1131.9479, -1.6283163, 0, 0, 0, 0, 100, 0),
(@PATH, 2, -211.82857, 1136.8333, -1.9116962, 0, 0, 0, 0, 100, 0),
(@PATH, 3, -210.5931, 1146.4077, -1.9181659, 0, 0, 0, 0, 100, 0),
(@PATH, 4, -225.59148, 1148.1578, -1.8781269, 0, 0, 0, 0, 100, 0);
-- 0x2041004700173780001C8700007ECDE8 .go xyz -222.16797 1131.9479 -1.6283163
-- Pathing for Entry: 23774 'TDB FORMAT'
SET @NPC := 339142;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `spawndist`= 0, `MovementType`= 2, `position_x`= -165.23297, `position_y`= 1113.8899, `position_z`= 0.12499935 WHERE `guid`= @NPC;
DELETE FROM `creature_addon` WHERE `guid`= @NPC;
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES (@NPC, @PATH, 0, 0, 1, 0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(@PATH, 1, -165.23297, 1113.8899, 0.12499935, 0, 367, 0, 0, 100, 0),
(@PATH, 2, -171.59407, 1116.7018, 0.124147296, 0, 0, 0, 0, 100, 0),
(@PATH, 3, -181.63933, 1117.8892, 0.124147296, 0, 0, 0, 0, 100, 0),
(@PATH, 4, -196.2499, 1109.3352, 0.2491473, 0, 0, 0, 0, 100, 0),
(@PATH, 5, -217.72395, 1108.2024, -0.14772546, 0, 0, 0, 0, 100, 0),
(@PATH, 6, -213.77246, 1131.3308, -1.8509725, 0, 0, 0, 0, 100, 0),
(@PATH, 7, -216.44846, 1156.3108, -1.9116962, 0, 0, 0, 0, 100, 0),
(@PATH, 8, -206.4719, 1176.8019, -0.5678997, 0, 10263, 0, 0, 100, 0),
(@PATH, 9, -203.00826, 1155.8253, -0.9969013, 0, 0, 0, 0, 100, 0),
(@PATH, 10, -197.7297, 1135.4039, -0.9588605, 0, 0, 0, 0, 100, 0),
(@PATH, 11, -184.39062, 1120.7157, 0.124147296, 0, 0, 0, 0, 100, 0);
-- 0x2041004700173780001C8700007ECDE9 .go xyz -165.23297 1113.8899 0.12499935
-- Pathing for Entry: 23774 'TDB FORMAT'
SET @NPC := 339082;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `spawndist`= 0, `MovementType`= 2, `position_x`= -217.07715, `position_y`= 1126.6138, `position_z`= -1.8509725 WHERE `guid`= @NPC;
DELETE FROM `creature_addon` WHERE `guid`= @NPC;
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES (@NPC, @PATH, 0, 0, 1, 0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(@PATH, 1, -217.07715, 1126.6138, -1.8509725, 0, 0, 0, 0, 100, 0),
(@PATH, 2, -208.20735, 1130.927, -1.7259725, 0, 0, 0, 0, 100, 0),
(@PATH, 3, -208.23557, 1120.8994, -1.5033163, 0, 0, 0, 0, 100, 0);
-- 0x2041004700173780001C870000FECDE7 .go xyz -217.07715 1126.6138 -1.8509725
-- Pathing for Entry: 23774 'TDB FORMAT'
SET @NPC := 339132;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `spawndist`= 0, `MovementType`= 2, `position_x`= -198.46822, `position_y`= 1154.9237, `position_z`= -0.3548566 WHERE `guid`= @NPC;
DELETE FROM `creature_addon` WHERE `guid`= @NPC;
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES (@NPC, @PATH, 0, 0, 1, 0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(@PATH, 1, -198.46822, 1154.9237, -0.3548566, 0, 0, 0, 0, 100, 0),
(@PATH, 2, -208.29861, 1163.7311, -1.2200458, 0, 0, 0, 0, 100, 0),
(@PATH, 3, -226.81152, 1160.5486, -1.9116962, 0, 0, 0, 0, 100, 0),
(@PATH, 4, -233.97852, 1148.4395, -0.98271775, 0, 0, 0, 0, 100, 0),
(@PATH, 5, -226.84235, 1119.8912, -0.37563074, 0, 0, 0, 0, 100, 0),
(@PATH, 6, -209.14638, 1109.8043, -0.62514246, 0, 0, 0, 0, 100, 0),
(@PATH, 7, -187.0677, 1114.8241, 0.124147296, 0, 0, 0, 0, 100, 0),
(@PATH, 8, -197.60515, 1131.2767, -0.8668195, 0, 0, 0, 0, 100, 0);
-- 0x2041004700173780001C870000FECDE8 .go xyz -198.46822 1154.9237 -0.3548566

View File

@@ -50,6 +50,11 @@ DoorData const doorData[] =
{ 0, 0, DOOR_TYPE_ROOM } // END
};
enum HexlordMalacrassTriggerTexts
{
SAY_SPEEDRUN_STARTED = 0
};
Position const AmanishiGuardianDistanceCheckPos = { 120.223f, 1585.766f, 43.43f };
Position const AmanishiSavageDistanceCheckPos = { 122.176f, 1528.203f, 21.233f };
@@ -77,6 +82,13 @@ public:
packet.Worldstates.emplace_back(uint32(WORLD_STATE_ZULAMAN_TIMER), uint32(_remainingSpeedRunTime));
}
void Load(char const* /*data*/) override
{
// If players enter the instance after a soft-reset, the speedrun is failed
if (_speedRunState == IN_PROGRESS)
_speedRunState = FAIL;
}
void OnCreatureCreate(Creature* creature) override
{
InstanceScript::OnCreatureCreate(creature);
@@ -120,6 +132,11 @@ public:
{
_remainingSpeedRunTime = 15;
_speedRunState = IN_PROGRESS;
if (Creature* trigger = GetCreature(DATA_HEXLORD_MALACRASS_TRIGGER))
if (trigger->IsAIEnabled)
trigger->AI()->Talk(SAY_SPEEDRUN_STARTED);
DoUpdateWorldState(WORLD_STATE_ZULAMAN_TIMER_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_ZULAMAN_TIMER, _remainingSpeedRunTime);
events.ScheduleEvent(EVENT_UPDATE_SPEED_RUN_TIMER, 1min);
@@ -227,13 +244,6 @@ public:
{
data >> _speedRunState;
data >> _remainingSpeedRunTime;
if (_speedRunState == IN_PROGRESS && _remainingSpeedRunTime)
{
events.ScheduleEvent(EVENT_UPDATE_SPEED_RUN_TIMER, 1min);
DoUpdateWorldState(WORLD_STATE_ZULAMAN_TIMER_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_ZULAMAN_TIMER, _remainingSpeedRunTime);
}
}
protected:

View File

@@ -52,31 +52,26 @@ enum VoljinEvents
EVENT_DISMOUNT_VOLJIN = 1,
EVENT_REMOVE_GOSSIP_FLAG,
EVENT_SAY_FOLLOW_ME,
EVENT_MOVE_TO_GONG_1,
EVENT_MOVE_TO_GONG_2,
EVENT_MOVE_TO_GONG,
EVENT_FACE_TO_GONG,
EVENT_SAY_GONG_INSTRUCTIONS,
EVENT_BANGING_THE_GONG,
EVENT_MAKE_GONG_SELECTABLE,
EVENT_FAIL_GONG_EVENT,
EVENT_MOVE_TO_ROOM_CENTER,
EVENT_MOVE_HOME,
EVENT_FACE_HOME,
EVENT_RESET_NPC_FLAGS,
EVENT_MOVE_TO_CENTER,
EVENT_MAKE_GONG_UNSELECTABLE,
EVENT_TALK_TO_AMANI,
EVENT_OPEN_MASSIVE_GATE,
EVENT_TALK_WARN_PLAYERS,
EVENT_START_SPEED_RUN
};
enum VoljinMovePoints
enum VoljinWaypointData
{
POINT_HOME = 1,
POINT_INTRO_1 = 2,
POINT_INTRO_2 = 3,
POINT_INTRO_3 = 4
PATH_ID_VOLJIN_INTRO_1 = NPC_VOLJIN * 100,
PATH_ID_VOLJIN_INTRO_2 = NPC_VOLJIN * 100 + 1,
PATH_ID_VOLJIN_INTRO_3 = NPC_VOLJIN * 100 + 2,
};
enum VoljinMisc
@@ -85,37 +80,41 @@ enum VoljinMisc
MOUNT_DISPLAY_ID_RAPTOR = 29261
};
Position const VoljinIntroWaypoint[4] =
enum VoljinGossip
{
{ 117.7349f, 1662.77f, 42.02156f, 0.0f },
{ 132.14f, 1645.143f, 42.02158f, 0.0f },
{ 121.8901f, 1639.118f, 42.23253f, 0.0f },
{ 122.618f, 1639.546f, 42.11659f, 0.0f }
GOSSIP_MENU_ID_ZANDALARI_MUST_BE_STOPPED = 12797,
GOSSIP_NPC_TEXT_ZANDALARI_MUST_BE_STOPPED = 17988,
GOSSIP_MENU_OPTION_OPEN_GATES = 0
};
Position const VoljinIntroPosition1 = { 117.7349f, 1662.77f, 42.02156f };
Position const VoljinIntroPosition2 = { 132.14f, 1645.143f, 42.02158f };
Position const VoljinIntroPosition3 = { 122.6202f, 1639.547f, 42.16251f };
Position const VoljinHomePosition = { 121.0399f, 1672.196f, 42.02157f };
struct npc_zulaman_voljin : public ScriptedAI
{
npc_zulaman_voljin(Creature* creature) : ScriptedAI(creature), _instance(me->GetInstanceScript())
{
Initialize();
}
npc_zulaman_voljin(Creature* creature) : ScriptedAI(creature),
_instance(me->GetInstanceScript()), _restarted(false), _started(false), _actionTriggered(false) { }
void Initialize()
void JustAppeared() override
{
_restarted = false;
_started = false;
_actionTriggered = false;
me->SetDisplayId(me->GetCreatureTemplate()->Modelid1);
if (_instance->GetData(DATA_ZULAMAN_SPEEDRUN_STATE) != NOT_STARTED)
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
}
bool GossipHello(Player* player) override
{
// Vol'jin stops for 4 seconds when talking to him during his intro.
me->PauseMovement(4 * IN_MILLISECONDS, MOTION_SLOT_IDLE);
if (me->IsQuestGiver())
player->PrepareQuestMenu(me->GetGUID());
if (_instance->GetData(DATA_ZULAMAN_SPEEDRUN_STATE) == NOT_STARTED && !_started)
AddGossipItemFor(player, GOSSIP_MENU_ID_ZANDALARI_MUST_BE_STOPPED, GOSSIP_MENU_OPTION_OPEN_GATES, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 0);
SendGossipMenuFor(player, GOSSIP_NPC_TEXT_ZANDALARI_MUST_BE_STOPPED, me->GetGUID());
return true;
}
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 /*gossipListId*/) override
{
if (_started)
@@ -130,7 +129,6 @@ struct npc_zulaman_voljin : public ScriptedAI
_events.ScheduleEvent(EVENT_DISMOUNT_VOLJIN, 1s);
_events.ScheduleEvent(EVENT_REMOVE_GOSSIP_FLAG, 3s);
_events.ScheduleEvent(EVENT_SAY_FOLLOW_ME, 4s);
}
else
{
@@ -152,7 +150,14 @@ struct npc_zulaman_voljin : public ScriptedAI
if (!_actionTriggered)
{
_events.CancelEvent(EVENT_FAIL_GONG_EVENT);
_events.ScheduleEvent(EVENT_MOVE_TO_CENTER, 1s);
_instance->SetData(DATA_TRIGGER_AMANISHI_GUARDIANS, IN_PROGRESS);
me->RemoveAurasDueToSpell(SPELL_BANGING_THE_GONG);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, 0);
me->GetMotionMaster()->MovePath(PATH_ID_VOLJIN_INTRO_2, false);
if (GameObject* gong = _instance->GetGameObject(DATA_STRANGE_GONG))
gong->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
_actionTriggered = true;
}
break;
@@ -161,6 +166,28 @@ struct npc_zulaman_voljin : public ScriptedAI
}
}
void WaypointReached(uint32 pointId, uint32 pathId) override
{
switch (pathId)
{
// The points Ids are based on Vol'jin's waypoint_data waypoints. Do not touch!
case PATH_ID_VOLJIN_INTRO_1:
if (pointId == 2)
_events.ScheduleEvent(EVENT_FACE_TO_GONG, 400ms);
break;
case PATH_ID_VOLJIN_INTRO_2:
if (pointId == 1)
_events.ScheduleEvent(EVENT_TALK_TO_AMANI, 1ms);
break;
case PATH_ID_VOLJIN_INTRO_3:
if (pointId == 1)
_events.ScheduleEvent(EVENT_FACE_HOME, 1ms);
break;
default:
break;
}
}
void UpdateAI(uint32 diff) override
{
_events.Update(diff);
@@ -170,6 +197,7 @@ struct npc_zulaman_voljin : public ScriptedAI
switch (eventId)
{
case EVENT_DISMOUNT_VOLJIN:
me->SetSpeed(MOVE_RUN, 8.f); // Yes, this really happens in sniffs.
me->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0);
break;
case EVENT_REMOVE_GOSSIP_FLAG:
@@ -178,13 +206,11 @@ struct npc_zulaman_voljin : public ScriptedAI
case EVENT_SAY_FOLLOW_ME:
if (Player* player = ObjectAccessor::GetPlayer(*me, _playerGUID))
Talk(SAY_INTRO_1, player);
_events.ScheduleEvent(EVENT_MOVE_TO_GONG_1, 1s);
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
_events.ScheduleEvent(EVENT_MOVE_TO_GONG, 1s);
break;
case EVENT_MOVE_TO_GONG_1:
me->GetMotionMaster()->MovePoint(POINT_INTRO_1, VoljinIntroPosition1);
break;
case EVENT_MOVE_TO_GONG_2:
me->GetMotionMaster()->MovePoint(POINT_INTRO_2, VoljinIntroPosition2);
case EVENT_MOVE_TO_GONG:
me->GetMotionMaster()->MovePath(PATH_ID_VOLJIN_INTRO_1, false);
break;
case EVENT_FACE_TO_GONG:
if (GameObject* gong = _instance->GetGameObject(DATA_STRANGE_GONG))
@@ -198,12 +224,9 @@ struct npc_zulaman_voljin : public ScriptedAI
case EVENT_BANGING_THE_GONG:
DoCastSelf(SPELL_BANGING_THE_GONG);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, ITEM_DISPLAY_ID_MACE);
_events.ScheduleEvent(EVENT_MAKE_GONG_SELECTABLE, 400ms);
_events.ScheduleEvent(EVENT_FAIL_GONG_EVENT, 1min + 3s);
break;
case EVENT_MAKE_GONG_SELECTABLE:
if (GameObject* gong = _instance->GetGameObject(DATA_STRANGE_GONG))
gong->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
_events.ScheduleEvent(EVENT_FAIL_GONG_EVENT, 1min + 3s);
break;
case EVENT_FAIL_GONG_EVENT:
if (GameObject* gong = _instance->GetGameObject(DATA_STRANGE_GONG))
@@ -215,7 +238,7 @@ struct npc_zulaman_voljin : public ScriptedAI
_events.ScheduleEvent(EVENT_MOVE_HOME, 2s + 200ms);
break;
case EVENT_MOVE_HOME:
me->GetMotionMaster()->MovePoint(POINT_HOME, VoljinHomePosition);
me->GetMotionMaster()->MovePath(PATH_ID_VOLJIN_INTRO_3, false);
break;
case EVENT_FACE_HOME:
me->SetFacingTo(4.782202f);
@@ -229,18 +252,7 @@ struct npc_zulaman_voljin : public ScriptedAI
me->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, MOUNT_DISPLAY_ID_RAPTOR);
break;
case EVENT_RESET_NPC_FLAGS:
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
break;
case EVENT_MOVE_TO_CENTER:
_instance->SetData(DATA_TRIGGER_AMANISHI_GUARDIANS, IN_PROGRESS);
me->RemoveAurasDueToSpell(SPELL_BANGING_THE_GONG);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, 0);
me->GetMotionMaster()->MovePoint(POINT_INTRO_3, VoljinIntroPosition3);
_events.ScheduleEvent(EVENT_MAKE_GONG_UNSELECTABLE, 400ms);
break;
case EVENT_MAKE_GONG_UNSELECTABLE:
if (GameObject* gong = _instance->GetGameObject(DATA_STRANGE_GONG))
gong->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
break;
case EVENT_TALK_TO_AMANI:
me->SetFacingTo(4.747295f);
@@ -266,30 +278,6 @@ struct npc_zulaman_voljin : public ScriptedAI
}
}
void MovementInform(uint32 movementType, uint32 pointId) override
{
if (movementType != POINT_MOTION_TYPE)
return;
switch (pointId)
{
case POINT_HOME:
_events.ScheduleEvent(EVENT_FACE_HOME, 1ms);
break;
case POINT_INTRO_1:
_events.ScheduleEvent(EVENT_MOVE_TO_GONG_2, 1ms);
break;
case POINT_INTRO_2:
_events.ScheduleEvent(EVENT_FACE_TO_GONG, 800ms);
break;
case POINT_INTRO_3:
_events.ScheduleEvent(EVENT_TALK_TO_AMANI, 1ms);
break;
default:
break;
}
}
private:
InstanceScript* _instance;
EventMap _events;

View File

@@ -41,7 +41,7 @@ enum ZADataTypes
DATA_MASSIVE_GATE,
DATA_ZULAMAN_SPEEDRUN_STATE,
DATA_TRIGGER_AMANISHI_GUARDIANS,
DATA_TRIGGER_AMANISHI_SAVAGES,
DATA_TRIGGER_AMANISHI_SAVAGES
};
enum ZACreatureIds