17.02.2013, 22:20
Quote:
Hm try your original code but change it get you the furthest object, it might return you correct one
|
EDIT: I tried doing it anyways, since there's nothing I can do until this is resolved. It DOES return the FARTHEST object with the function below:
pawn Код:
stock GetNearestDynObject(playerid)
{
new
Float: px, Float: py, Float: pz,
currentobject = -1,
Float:distance = -1
;
GetPlayerPos( playerid, px, py, pz );
for( new index = 0; index < CountDynamicObjects(); index++ )
{
if ( !IsValidDynamicObject( index ) ) continue;
new
Float:ox,
Float:oy,
Float:oz
;
GetDynamicObjectPos( index, ox, oy, oz );
new Float:odist = floatsqroot(
floatpower( floatabs( floatsub( ox, px ) ), 2.0 ) -
floatpower( floatabs( floatsub( oy, py ) ), 2.0 ) -
floatpower( floatabs( floatsub( oz, pz ) ), 2.0 )
);
if ( currentobject == -1 )
{
currentobject = index;
distance = odist;
}
else if ( odist > distance )
{
currentobject = index;
distance = odist;
}
}
return currentobject;
}