mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 19:37:03 +00:00
[10431] Correcting issues with flying creatures falling to ground at death.
Simplified the way FallGround works and death states are set in a more logical way when a mob is in fact DEAD_FALLING. Visual will in some cases not be correct. Notes in code for details. Thanks to Lynx fixing Map::GetHeight It now return mapHeight as last resort, making FallGround work as expected. This fix reveal one (known) bug, and therefore a temp hack is added in TargetedMovegen, to be sure Z is not the ground Z for a creature that are able to fly. Other creatures will follow by the ground level Z (in other words, they will no longer follow in the air).
This commit is contained in:
parent
7df3f06d87
commit
32e3e252fb
6 changed files with 57 additions and 28 deletions
|
|
@ -8217,7 +8217,18 @@ void Unit::setDeathState(DeathState s)
|
|||
|
||||
// after removing a Fearaura (in RemoveAllAurasOnDeath)
|
||||
// Unit::SetFeared is called and makes that creatures attack player again
|
||||
StopMoving();
|
||||
if (GetTypeId() == TYPEID_UNIT)
|
||||
{
|
||||
clearUnitState(UNIT_STAT_MOVING);
|
||||
|
||||
GetMap()->CreatureRelocation((Creature*)this, GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation());
|
||||
SendMonsterMove(GetPositionX(), GetPositionY(), GetPositionZ(), SPLINETYPE_NORMAL, SPLINEFLAG_WALKMODE, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!IsStopped())
|
||||
StopMoving();
|
||||
}
|
||||
|
||||
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, false);
|
||||
ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue