aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/3.3.5/2025_10_22_00_world.sql2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp24
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;