Quote:
Originally Posted by T0pAz
Simplified version
pawn Код:
stock GetClosestDynamicObject(playerid) { new px, py, pz, currentobject = -1, Float:distance = -1; GetPlayerPos( playerid, px, py, pz ); for( new index = 0; index < CountDynamicObjects(); index++ ) { if ( !IsValidDynamicObject( index ) ) continue;
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; }
Edit: It will return the closest object id.
|
Thanks, +repped.
GetPlayerPos(playerid, px, py, pz);
warning 213: tag mismatch