Core/Entities: Some changes to LoS z checking & MotionMaster.MoveJumpTo
Port From (https://github.com/TrinityCore/TrinityCore/commit/fe362cf2c9d5c71db4698480ce26cb35dbc58f28)
This commit is contained in:
@@ -1323,7 +1323,7 @@ namespace Game.Entities
|
||||
if (charm.GetTypeId() == TypeId.Unit)
|
||||
charm.AddUnitFlag(UnitFlags.Stunned);
|
||||
|
||||
player.SendMovementSetCollisionHeight(player.GetCollisionHeight(true), UpdateCollisionHeightReason.Mount);
|
||||
player.SendMovementSetCollisionHeight(player.GetCollisionHeight(), UpdateCollisionHeightReason.Mount);
|
||||
}
|
||||
|
||||
RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags.Mount);
|
||||
@@ -1339,7 +1339,7 @@ namespace Game.Entities
|
||||
|
||||
Player thisPlayer = ToPlayer();
|
||||
if (thisPlayer != null)
|
||||
thisPlayer.SendMovementSetCollisionHeight(thisPlayer.GetCollisionHeight(false), UpdateCollisionHeightReason.Mount);
|
||||
thisPlayer.SendMovementSetCollisionHeight(thisPlayer.GetCollisionHeight(), UpdateCollisionHeightReason.Mount);
|
||||
|
||||
// dismount as a vehicle
|
||||
if (IsTypeId(TypeId.Player) && GetVehicleKit() != null)
|
||||
|
||||
@@ -782,6 +782,32 @@ namespace Game.Entities
|
||||
|
||||
public void SetHoverHeight(float hoverHeight) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.HoverHeight), hoverHeight); }
|
||||
|
||||
public override float GetCollisionHeight()
|
||||
{
|
||||
float scaleMod = GetObjectScale(); // 99% sure about this
|
||||
|
||||
if (IsMounted())
|
||||
{
|
||||
var mountDisplayInfo = CliDB.CreatureDisplayInfoStorage.LookupByKey(GetMountDisplayId());
|
||||
if (mountDisplayInfo != null)
|
||||
{
|
||||
var mountModelData = CliDB.CreatureModelDataStorage.LookupByKey(mountDisplayInfo.ModelID);
|
||||
if (mountModelData != null)
|
||||
{
|
||||
var displayInfo = CliDB.CreatureDisplayInfoStorage.LookupByKey(GetNativeDisplayId());
|
||||
var modelData = CliDB.CreatureModelDataStorage.LookupByKey(displayInfo.ModelID);
|
||||
return scaleMod * (mountModelData.MountHeight + modelData.CollisionHeight * 0.5f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//! Dismounting case - use basic default model data
|
||||
var defaultDisplayInfo = CliDB.CreatureDisplayInfoStorage.LookupByKey(GetNativeDisplayId());
|
||||
var defaultModelData = CliDB.CreatureModelDataStorage.LookupByKey(defaultDisplayInfo.ModelID);
|
||||
|
||||
return scaleMod * defaultModelData.CollisionHeight;
|
||||
}
|
||||
|
||||
public Guardian GetGuardianPet()
|
||||
{
|
||||
ObjectGuid pet_guid = GetPetGUID();
|
||||
|
||||
Reference in New Issue
Block a user