Try with a gamelogic:
private["_soldier", "_HLimit", "_iDis", "_asl_log", "_center", "_idir","_FLand"];
_soldier = _this Select 0;
_HLimit = _this select 1;
_iDis = _this select 2;
_asl_log = "logic" createVehicleLocal [0,0,0];
while{alive _soldier}do
{
_FLand = 0;
_center = getPos (vehicle _soldier);
for [{_idir=0}, {_idir<359}, {_idir=_idir+20}] do
{
_asl_log setPos [(_center select 0)+sin(_idir)*_iDis, (_center select 1)+cos(_idir)*_iDis, 0];
if ((getposASL _asl_log select 2) >= _HLimit) then
{
_FLand = 1
};
};
if (_FLand == 1) then
{
hint format["At Shore: %1", _FLand]
};
Sleep 1.046233;
};
deleteVehicle _asl_log;