public boolean canSee(L2Object cha, L2Skill skill, boolean checkGeo)
{
if (cha == null)
return false;
if (equals(cha))
return true;
if (getInstanceId() != cha.getInstanceId())
return false;
if (cha.isPlayer()) {
if (cha.getPlayer().inObserverMode())
return false;
if (cha.getPlayer().getAppearance().isInvisible() && !this.getPlayer().isGM())
return false;
}
if(cha instanceof L2Decoy)
return true;
if (GeoData.getInstance().isEnabled() && checkGeo)
{
return GeoData.getInstance().canSeeTarget(this, cha);
}
return true;
}