diff --git a/sql/updates/world/4.3.4/2020_09_02_00_world.sql b/sql/updates/world/4.3.4/2020_09_02_00_world.sql new file mode 100644 index 00000000000..20787f6a544 --- /dev/null +++ b/sql/updates/world/4.3.4/2020_09_02_00_world.sql @@ -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 diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index 48415976fbe..18fdf330389 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -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: diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index 707ed216161..232295160f1 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -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; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h index c71c986e0ef..1b9e4c913ca 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h @@ -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