mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[10529] Water level in movement use fixes.
* Move selection allowed upper and lower heights for target point into near point core function used for contact/close point selection. Selection base at possibility target point searcher fly/swim(or walk by water bottom). * Use vamp water level data so have proper water level in instances in movements. * Use increased ground search distance for water level case.
This commit is contained in:
parent
f92518ee14
commit
2170c9c919
13 changed files with 171 additions and 41 deletions
|
|
@ -2330,8 +2330,7 @@ GameObject* Player::GetGameObjectIfCanInteractWith(ObjectGuid guid, uint32 gameo
|
|||
|
||||
bool Player::IsUnderWater() const
|
||||
{
|
||||
return IsInWater() &&
|
||||
GetPositionZ() < (GetBaseMap()->GetWaterLevel(GetPositionX(),GetPositionY())-2);
|
||||
return GetBaseMap()->IsUnderWater(GetPositionX(), GetPositionY(), GetPositionZ()+2);
|
||||
}
|
||||
|
||||
void Player::SetInWater(bool apply)
|
||||
|
|
@ -21323,7 +21322,7 @@ void Player::HandleFall(MovementInfo const& movementInfo)
|
|||
uint32 damage = (uint32)(damageperc * GetMaxHealth()*sWorld.getConfig(CONFIG_FLOAT_RATE_DAMAGE_FALL));
|
||||
|
||||
float height = movementInfo.GetPos()->z;
|
||||
UpdateGroundPositionZ(movementInfo.GetPos()->x, movementInfo.GetPos()->y, height);
|
||||
UpdateAllowedPositionZ(movementInfo.GetPos()->x, movementInfo.GetPos()->y, height);
|
||||
|
||||
if (damage > 0)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue