mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 10:37:02 +00:00
[6891] small performance fix for previous commit
This commit is contained in:
parent
69e9ab315f
commit
9f8e51ff41
3 changed files with 12 additions and 7 deletions
|
|
@ -291,12 +291,13 @@ void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data )
|
||||||
if (recv_data.GetOpcode() == MSG_MOVE_FALL_LAND && !GetPlayer()->isInFlight())
|
if (recv_data.GetOpcode() == MSG_MOVE_FALL_LAND && !GetPlayer()->isInFlight())
|
||||||
{
|
{
|
||||||
// calculate total z distance of the fall
|
// calculate total z distance of the fall
|
||||||
float z_diff = GetPlayer()->m_fallMovementInfo.z - movementInfo.z;
|
float z_diff = GetPlayer()->m_lastFallZ - movementInfo.z;
|
||||||
sLog.outDebug("zDiff = %f", z_diff);
|
sLog.outDebug("zDiff = %f", z_diff);
|
||||||
Player *target = GetPlayer();
|
Player *target = GetPlayer();
|
||||||
|
|
||||||
//Players with Feather Fall or physical immunity (charges used) are ignored
|
//Players with low fall distance, Feather Fall or physical immunity (charges used) are ignored
|
||||||
if (!target->isDead() && !target->isGameMaster() &&
|
// 14.57 can be calculated by resolving damageperc formular below to 0
|
||||||
|
if (z_diff >= 14.57f && !target->isDead() && !target->isGameMaster() &&
|
||||||
!target->HasAuraType(SPELL_AURA_HOVER) && !target->HasAuraType(SPELL_AURA_FEATHER_FALL) &&
|
!target->HasAuraType(SPELL_AURA_HOVER) && !target->HasAuraType(SPELL_AURA_FEATHER_FALL) &&
|
||||||
!target->HasAuraType(SPELL_AURA_FLY) && !target->IsImmunedToDamage(SPELL_SCHOOL_MASK_NORMAL,true) )
|
!target->HasAuraType(SPELL_AURA_FLY) && !target->IsImmunedToDamage(SPELL_SCHOOL_MASK_NORMAL,true) )
|
||||||
{
|
{
|
||||||
|
|
@ -361,8 +362,11 @@ void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data )
|
||||||
|
|
||||||
GetPlayer()->SetPosition(movementInfo.x, movementInfo.y, movementInfo.z, movementInfo.o);
|
GetPlayer()->SetPosition(movementInfo.x, movementInfo.y, movementInfo.z, movementInfo.o);
|
||||||
GetPlayer()->m_movementInfo = movementInfo;
|
GetPlayer()->m_movementInfo = movementInfo;
|
||||||
if (GetPlayer()->m_fallMovementInfo.fallTime >= movementInfo.fallTime || GetPlayer()->m_fallMovementInfo.z <=movementInfo.z)
|
if (GetPlayer()->m_lastFallTime >= movementInfo.fallTime || GetPlayer()->m_lastFallZ <=movementInfo.z)
|
||||||
GetPlayer()->m_fallMovementInfo = movementInfo;
|
{
|
||||||
|
GetPlayer()->m_lastFallTime = movementInfo.fallTime;
|
||||||
|
GetPlayer()->m_lastFallZ= movementInfo.z;
|
||||||
|
}
|
||||||
|
|
||||||
if(GetPlayer()->isMovingOrTurning())
|
if(GetPlayer()->isMovingOrTurning())
|
||||||
GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH);
|
GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH);
|
||||||
|
|
|
||||||
|
|
@ -1910,7 +1910,8 @@ class MANGOS_DLL_SPEC Player : public Unit
|
||||||
/*** VARIOUS SYSTEMS ***/
|
/*** VARIOUS SYSTEMS ***/
|
||||||
/*********************************************************/
|
/*********************************************************/
|
||||||
MovementInfo m_movementInfo;
|
MovementInfo m_movementInfo;
|
||||||
MovementInfo m_fallMovementInfo;
|
uint32 m_lastFallTime;
|
||||||
|
float m_lastFallZ;
|
||||||
bool isMoving() const { return HasUnitMovementFlag(movementFlagsMask); }
|
bool isMoving() const { return HasUnitMovementFlag(movementFlagsMask); }
|
||||||
bool isMovingOrTurning() const { return HasUnitMovementFlag(movementOrTurningFlagsMask); }
|
bool isMovingOrTurning() const { return HasUnitMovementFlag(movementOrTurningFlagsMask); }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "6890"
|
#define REVISION_NR "6891"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue