fix(Core/Session): Inform the client when we can no longer fly (flyin… (#15363)
This commit is contained in:
parent
b5a655c8b7
commit
cbaa63eb64
1 changed files with 7 additions and 0 deletions
|
|
@ -1084,6 +1084,13 @@ void WorldSession::ReadMovementInfo(WorldPacket& data, MovementInfo* mi)
|
|||
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);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
//! Cannot fly and fall at the same time
|
||||
REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_DISABLE_GRAVITY) && mi->HasMovementFlag(MOVEMENTFLAG_FALLING),
|
||||
MOVEMENTFLAG_FALLING);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue