diff options
| -rw-r--r-- | sql/updates/world/3.3.5/2025_10_22_00_world.sql | 2 | ||||
| -rw-r--r-- | src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp | 24 |
2 files changed, 18 insertions, 8 deletions
diff --git a/sql/updates/world/3.3.5/2025_10_22_00_world.sql b/sql/updates/world/3.3.5/2025_10_22_00_world.sql new file mode 100644 index 00000000000..cafcf1123ad --- /dev/null +++ b/sql/updates/world/3.3.5/2025_10_22_00_world.sql @@ -0,0 +1,2 @@ +-- +UPDATE `creature_template` SET `speed_run` = '5', `flags_extra` = '512' WHERE (`entry` = '28511'); diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index de53991fef5..32f4d8a0890 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -438,12 +438,15 @@ struct npc_eye_of_acherus : public ScriptedAI { creature->SetDisplayId(creature->GetCreatureTemplate()->Modelid1); creature->SetReactState(REACT_PASSIVE); + creature->SetDisableGravity(true); + creature->SetCanFly(true); + creature->SetSpeed(MOVE_FLIGHT, 35.f); } - void InitializeAI() override + void Reset() override { - DoCastSelf(SPELL_ROOT_SELF); DoCastSelf(SPELL_EYE_OF_ACHERUS_VISUAL); + DoCastSelf(SPELL_ROOT_SELF); _events.ScheduleEvent(EVENT_ANNOUNCE_LAUNCH_TO_DESTINATION, 7s); } @@ -456,6 +459,11 @@ struct npc_eye_of_acherus : public ScriptedAI } } + void EnterEvadeMode(EvadeReason why) override + { + _EnterEvadeMode(why); + } + void UpdateAI(uint32 diff) override { _events.Update(diff); @@ -465,14 +473,14 @@ struct npc_eye_of_acherus : public ScriptedAI switch (eventId) { case EVENT_ANNOUNCE_LAUNCH_TO_DESTINATION: + //DoCastSelf(SPELL_EYE_OF_ACHERUS_FLIGHT_BOOST); if (Unit* owner = me->GetCharmerOrOwner()) Talk(SAY_LAUNCH_TOWARDS_DESTINATION, owner); _events.ScheduleEvent(EVENT_UNROOT, 1s + 200ms); break; case EVENT_UNROOT: me->RemoveAurasDueToSpell(SPELL_ROOT_SELF); - DoCastSelf(SPELL_EYE_OF_ACHERUS_FLIGHT_BOOST); - _events.ScheduleEvent(EVENT_LAUNCH_TOWARDS_DESTINATION, 1s + 200ms); + _events.ScheduleEvent(EVENT_LAUNCH_TOWARDS_DESTINATION, 1ms); break; case EVENT_LAUNCH_TOWARDS_DESTINATION: { @@ -481,17 +489,17 @@ struct npc_eye_of_acherus : public ScriptedAI Movement::PointsArray path(EyeOfAcherusPath, EyeOfAcherusPath + EyeOfAcherusPathSize); init.MovebyPath(path); init.SetFly(); - if (Unit* owner = me->GetCharmerOrOwner()) - init.SetVelocity(owner->GetSpeed(MOVE_RUN)); + init.SetSwim(); + init.SetVelocity(35.f); }; me->GetMotionMaster()->LaunchMoveSpline(std::move(initializer), POINT_NEW_AVALON, MOTION_PRIORITY_NORMAL, POINT_MOTION_TYPE); break; } case EVENT_GRANT_CONTROL: + //me->RemoveAurasDueToSpell(SPELL_EYE_OF_ACHERUS_FLIGHT_BOOST); + //DoCastSelf(SPELL_EYE_OF_ACHERUS_FLIGHT); me->RemoveAurasDueToSpell(SPELL_ROOT_SELF); - DoCastSelf(SPELL_EYE_OF_ACHERUS_FLIGHT); - me->RemoveAurasDueToSpell(SPELL_EYE_OF_ACHERUS_FLIGHT_BOOST); if (Unit* owner = me->GetCharmerOrOwner()) Talk(SAY_EYE_UNDER_CONTROL, owner); break; |
