All pastes #956429 Raw Edit

Unbenannt

public text v1 · immutable
#956429 ·published 2008-03-25 08:56 UTC
rendered paste body
new Float:someArray[8][3] = {
{1172.8717,-1323.2656,15.3995},
{2036.4738,-1411.0497,17.1641},
{1607.0693,1819.1843,10.8280},
{-322.1866,1050.9784,20.3403},
{-1515.0483,2521.4893,55.8556},
{-2658.1541,631.2337,14.4531},
{-2201.3555,-2307.5193,30.6250},
{1241.8477,327.6182,19.7555}
};

Float:GetDistanceBetweenPoints(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2)
{
return floatsqroot(floatpower(x1 - x2, 2) + floatpower(y1 - y2, 2) + floatpower(z1 - z2, 2));
}

stock Float:GetClosestPoint( Float:pointsArray[][], sizeofArray, &Float:x, &Float:y, &Float:z )
{
new Float:pdist;
new Float:dist;
new cellP;
pdist = GetDistanceBetweenPoints( pointsArray[0][0], pointsArray[0][1], pointsArray[0][2], x, y, z );
cellP = 0;
for( new i = 1; i < sizeofArray; i++ )
{
dist = GetDistanceBetweenPoints( pointsArray[i][0], pointsArray[i][1], pointsArray[i][2], x, y, z );

if( dist < pdist )
{
pdist = dist;
cellP = i;
}

}

x = pointsArray[cellP][0];
y = pointsArray[cellP][1];
z = pointsArray[cellP][2];

return pdist;
}

public OnPlayerDeath(playerid, killerid, reason)
{
new Float:x, Float:y, Float:z, Float:ang;
GetPlayerPos( playerid, x, y, z );
GetClosestPoint( someArray, 3, x, y, z );
SetSpawnInfo(playerid,GetPlayerTeam(playerid),GetPlayerSkin(playerid),x,y,z,GetPlayerFacingAngle(playerid,Float:ang),0,0,0,0,0,0);
return 1;
}