mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 13:37:05 +00:00
fixed problems with isInvisbleForAlive
removed redundant check at MoveInLos this check is already done in istargetableForAttack thx to NoFantasy fixed in isVisibleForOrDetect that isInvisbleForAlive wasn't checked.. and therefore all spiritserviceprovider got visible thx to NetSky
This commit is contained in:
parent
ffc2f97d3b
commit
97c94cff56
5 changed files with 9 additions and 8 deletions
|
|
@ -9613,7 +9613,7 @@ bool Unit::isTargetableForAttack(bool inverseAlive /*=false*/) const
|
|||
if ((isAlive() && !isInvisibleForAlive()) == inverseAlive)
|
||||
return false;
|
||||
|
||||
return IsInWorld() && !hasUnitState(UNIT_STAT_DIED)&& !isInFlight() /*&& !isStealth()*/;
|
||||
return IsInWorld() && !hasUnitState(UNIT_STAT_DIED) && !isInFlight();
|
||||
}
|
||||
|
||||
int32 Unit::ModifyHealth(int32 dVal)
|
||||
|
|
@ -9772,6 +9772,10 @@ bool Unit::isVisibleForOrDetect(Unit const* u, WorldObject const* viewPoint, boo
|
|||
return false;
|
||||
}
|
||||
|
||||
if (u->isAlive() && isInvisibleForAlive())
|
||||
if (u->GetTypeId() == TYPEID_PLAYER && !((Player *)u)->isGameMaster())
|
||||
return false;
|
||||
|
||||
// Visible units, always are visible for all units, except for units under invisibility and phases
|
||||
if (m_Visibility == VISIBILITY_ON && u->m_invisibilityMask==0 && InSamePhase(u))
|
||||
return true;
|
||||
|
|
@ -9785,9 +9789,6 @@ bool Unit::isVisibleForOrDetect(Unit const* u, WorldObject const* viewPoint, boo
|
|||
return true;
|
||||
}
|
||||
|
||||
if (u->isAlive() && isInvisibleForAlive())
|
||||
return false;
|
||||
|
||||
// non faction visibility non-breakable for non-GMs
|
||||
if (m_Visibility == VISIBILITY_OFF)
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue