Merge branch 'master' into Playerbot

This commit is contained in:
Yunfan Li
2024-09-07 14:27:11 +08:00
12 changed files with 1266 additions and 864 deletions

View File

@@ -3481,7 +3481,7 @@ void Creature::UpdateMovementFlags()
float Creature::GetNativeObjectScale() const
{
return GetCreatureTemplate()->scale;
return ObjectMgr::ChooseDisplayId(GetCreatureTemplate())->DisplayScale;
}
void Creature::SetObjectScale(float scale)

View File

@@ -265,7 +265,7 @@ void Player::Update(uint32 p_time)
if (!IsPositionValid()) // pussywizard: will crash below at eg. GetZoneAndAreaId
{
LOG_INFO("misc", "Player::Update - invalid position ({0:.1f}, {0:.1f}, {0:.1f})! Map: {}, MapId: {}, {}",
LOG_INFO("misc", "Player::Update - invalid position ({:0.1f}, {:0.1f}, {:0.1f})! Map: {}, MapId: {}, {}",
GetPositionX(), GetPositionY(), GetPositionZ(), (FindMap() ? FindMap()->GetId() : 0), GetMapId(), GetGUID().ToString());
GetSession()->KickPlayer("Invalid position");
return;

View File

@@ -1041,6 +1041,10 @@ uint32 Unit::DealDamage(Unit* attacker, Unit* victim, uint32 damage, CleanDamage
if (!victim->IsPlayer())
{
/// @fix: Hack to avoid premature leashing
if (damagetype != DOT && damage > 0 && !victim->GetOwnerGUID().IsPlayer() && (!spellProto || !spellProto->HasAura(SPELL_AURA_DAMAGE_SHIELD)))
victim->ToCreature()->UpdateLeashExtensionTime();
if (attacker)
{
if (spellProto && victim->CanHaveThreatList() && !victim->HasUnitState(UNIT_STATE_EVADE) && !victim->IsInCombatWith(attacker))
@@ -13554,8 +13558,6 @@ void Unit::SetInCombatWith(Unit* enemy, uint32 duration)
return;
}
}
if (Creature* pCreature = ToCreature())
pCreature->UpdateLeashExtensionTime();
SetInCombatState(false, enemy, duration);
}
@@ -13714,6 +13716,8 @@ void Unit::SetInCombatState(bool PvP, Unit* enemy, uint32 duration)
if (enemy)
{
creature->UpdateLeashExtensionTime();
if (IsAIEnabled)
creature->AI()->JustEngagedWith(enemy);

View File

@@ -627,7 +627,7 @@ public:
if (object->GetTransport())
{
handler->PSendSysMessage("Transport offset: %.2f, %.2f, %.2f, %.2f", object->m_movementInfo.transport.pos.GetPositionX(), object->m_movementInfo.transport.pos.GetPositionY(), object->m_movementInfo.transport.pos.GetPositionZ(), object->m_movementInfo.transport.pos.GetOrientation());
handler->PSendSysMessage("Transport offset: {:0.2f}, {:0.2f}, {:0.2f}, {:0.2f}", object->m_movementInfo.transport.pos.GetPositionX(), object->m_movementInfo.transport.pos.GetPositionY(), object->m_movementInfo.transport.pos.GetPositionZ(), object->m_movementInfo.transport.pos.GetOrientation());
}
return true;

View File

@@ -1130,7 +1130,7 @@ public:
me->LoadCreaturesAddon(true);
me->SetLootRecipient(nullptr);
me->ResetPlayerDamageReq();
me->UpdateLeashExtensionTime();
me->ClearLastLeashExtensionTimePtr();
}
};

File diff suppressed because it is too large Load Diff