mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-25 22:56:24 +00:00
Merge branch 'azerothcore:master' into Playerbot
This commit is contained in:
@@ -1102,12 +1102,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),
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user