From c8c042d326fca94dda656a8ff8910e15c6117800 Mon Sep 17 00:00:00 2001 From: qwe900 Date: Thu, 30 Mar 2023 00:54:46 +0200 Subject: [PATCH 1/2] fix(Scripts/IcecrownCitadel): Fixing last issue on Nerubs in ICC (#15651) now they fight after landing --- .../IcecrownCitadel/icecrown_citadel.cpp | 21 ++++--------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index 0029019b2..01f4611c4 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -3372,7 +3372,7 @@ public: float nz = me->GetFloorZ(); DoCastSelf(SPELL_WEB_BEAM); me->SetHomePosition(nx, ny, nz, me->GetOrientation()); - me->GetMotionMaster()->MoveLand(1, nx, ny, nz, false); + me->GetMotionMaster()->MoveLand(POINT_LAND, nx, ny, nz, false); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); return; } @@ -3388,25 +3388,12 @@ public: me->CallForHelp(15.0f); } - void JustReachedHome() override + void MovementInform(uint32 type, uint32 id) override { - if (me->IsLevitating()) + if (type == EFFECT_MOTION_TYPE && id == POINT_LAND) { - me->SetDisableGravity(false); me->SetImmuneToAll(false); - me->NearTeleportTo(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); - } - } - - void MovementInform(uint32 /*type*/, uint32 id) override - { - if (id == 1) - { - if (me->IsLevitating()) - { - me->SetDisableGravity(false); - me->SetOrientation(0.0f); - } + me->SetDisableGravity(false); } } From f10928fa5cd845278b75f5c93c972a4b71216045 Mon Sep 17 00:00:00 2001 From: M'Dic Date: Thu, 30 Mar 2023 05:24:23 -0400 Subject: [PATCH 2/2] fix (core) : Violating Flag correction (#15648) --- src/server/game/Server/WorldSession.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index e8a7a3a37..3aa618656 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -1081,12 +1081,8 @@ void WorldSession::ReadMovementInfo(WorldPacket& data, MovementInfo* mi) e.g. aerial combat. */ - if (mi->HasMovementFlag(MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY) && GetSecurity() == SEC_PLAYER && !GetPlayer()->m_mover->HasAuraType(SPELL_AURA_FLY) && !GetPlayer()->m_mover->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED)) - { - // Inform the client we can no longer fly, which is required if data mismatches for some reason - // Like flight auras being removed but the client still sends flight movement packets. - GetPlayer()->SetCanFly(false); - } + REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY) && GetSecurity() == SEC_PLAYER && !GetPlayer()->m_mover->HasAuraType(SPELL_AURA_FLY) && !GetPlayer()->m_mover->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED), + MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY); //! Cannot fly and fall at the same time REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_DISABLE_GRAVITY) && mi->HasMovementFlag(MOVEMENTFLAG_FALLING),