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.
|
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))
|
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);
|
||||||
// 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
|
//! Cannot fly and fall at the same time
|
||||||
REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_DISABLE_GRAVITY) && mi->HasMovementFlag(MOVEMENTFLAG_FALLING),
|
REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_DISABLE_GRAVITY) && mi->HasMovementFlag(MOVEMENTFLAG_FALLING),
|
||||||
|
|||||||
@@ -3372,7 +3372,7 @@ public:
|
|||||||
float nz = me->GetFloorZ();
|
float nz = me->GetFloorZ();
|
||||||
DoCastSelf(SPELL_WEB_BEAM);
|
DoCastSelf(SPELL_WEB_BEAM);
|
||||||
me->SetHomePosition(nx, ny, nz, me->GetOrientation());
|
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);
|
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -3388,25 +3388,12 @@ public:
|
|||||||
me->CallForHelp(15.0f);
|
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->SetImmuneToAll(false);
|
||||||
me->NearTeleportTo(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
|
me->SetDisableGravity(false);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MovementInform(uint32 /*type*/, uint32 id) override
|
|
||||||
{
|
|
||||||
if (id == 1)
|
|
||||||
{
|
|
||||||
if (me->IsLevitating())
|
|
||||||
{
|
|
||||||
me->SetDisableGravity(false);
|
|
||||||
me->SetOrientation(0.0f);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user