You can also do an is_visible() <engine> check. Though, I don't think there is a 100% accurate way of determining whether a player is visible or not. The problem happens when a portion of a players model (arms\hands\feet) is visible but is_visible() will return as not being visible.