aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp11
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp14
2 files changed, 18 insertions, 7 deletions
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index 1a4579b1bae..6f50dbc427a 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -19,13 +19,10 @@
SDName: Boss Malygos
Script Data End */
-/* Main problems needing most attention:
- 1) Add support for using Exit Portal while on drake which means to
- find seat flag that allows casting on passenger or something that
- will prevent valid target filtering.
- 2) Find what cause client not sending release now availability
- if player dies after far falling. For now player needs to logout to get body after
- if release button remain unavailable after box popping.*/
+/* Main problem needing most attention:
+ Add support for using Exit Portal while on drake which means to
+ find seat flag that allows casting on passenger or something that
+ will prevent valid target filtering. */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
index 52ce259117f..9099f03c6f0 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
@@ -152,6 +152,20 @@ public:
}
}
+ void OnUnitDeath(Unit* unit)
+ {
+ if (unit->GetTypeId() != TYPEID_PLAYER)
+ return;
+
+ // For some reason player continues sometimes to be moving after death on this map,
+ // perhaps only client side issue am not entirtly sure.
+ // This fix not being able to press release button.
+ // Variation of this with some check needs to be implemented somewhere within core code.
+ // It'll stay here until someone find where and why the leak happens.
+ if (Player* dyingPlayer = unit->ToPlayer())
+ dyingPlayer->StopMoving();
+ }
+
void ProcessEvent(WorldObject* /*obj*/, uint32 eventId)
{
if (eventId == EVENT_FOCUSING_IRIS)