diff options
| author | Shauren <shauren.trinity@gmail.com> | 2013-06-19 11:58:08 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2013-06-19 11:58:08 +0200 |
| commit | 71386a5b2c7d85044794b038fd270e56152e32df (patch) | |
| tree | 15af675e049716ee97aadbbfd1cea668e6b50f54 | |
| parent | e211d1bfe12cbae41204810fd30d47c7ddd6c3f0 (diff) | |
Core/Players: Fixed players getting stuck on loading screen when jumping through a portal
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 3 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 10 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index bc326d7c232..c748fd02c0e 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2151,6 +2151,9 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati // reset movement flags at teleport, because player will continue move with these flags after teleport SetUnitMovementFlags(0); + m_movementInfo.ResetJump(); + m_movementInfo.bits.hasPitch = false; + m_movementInfo.bits.hasSplineElevation = false; DisableSpline(); if (m_transport) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 9ca21adb157..faaf331fe1c 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -16910,15 +16910,19 @@ void Unit::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target) return; ByteBuffer fieldBuffer; - UpdateMask updateMask; - updateMask.SetCount(m_valuesCount); + + uint32 valCount = m_valuesCount; uint32* flags = UnitUpdateFieldFlags; uint32 visibleFlag = UF_FLAG_PUBLIC; if (target == this) visibleFlag |= UF_FLAG_PRIVATE; + else if (GetTypeId() == TYPEID_PLAYER) + valCount = PLAYER_END_NOT_SELF; + + updateMask.SetCount(valCount); Player* plr = GetCharmerOrOwnerPlayerOrPlayerItself(); if (GetOwnerGUID() == target->GetGUID()) @@ -16932,7 +16936,7 @@ void Unit::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target) visibleFlag |= UF_FLAG_PARTY_MEMBER; Creature const* creature = ToCreature(); - for (uint16 index = 0; index < m_valuesCount; ++index) + for (uint16 index = 0; index < valCount; ++index) { if (_fieldNotifyFlags & flags[index] || ((flags[index] & visibleFlag) & UF_FLAG_SPECIAL_INFO) || |
