07.07.2014, 01:07
pawn Код:
stock Float:GetDistanceBetweenPoints(Float:rx1,Float:ry1,Float:rz1,Float:rx2,Float:ry2,Float:rz2)
{
return floatadd(floatadd(floatsqroot(floatpower(floatsub(rx1, rx2), 2)), floatsqroot(floatpower(floatsub(ry1, ry2), 2))), floatsqroot(floatpower(floatsub(rz1, rz2), 2)));
}
stock GetClosestPlayer(playerid, Float:limit)
{
new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2, Float:Dist, id = INVALID_PLAYER_ID;
GetPlayerPos(playerid,x1,y1,z1);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(i == playerid) continue;
GetPlayerPos(i, x2, y2, z2);
Dist = GetDistanceBetweenPoints(x1, y1, z1, x2, y2, z2);
if(Dist < limit || id == INVALID_PLAYER_ID)
{
limit = Dist;
id = i;
}
}
return id;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if((newkeys & KEY_LOOK_BEHIND) && !(oldkeys & KEY_LOOK_BEHIND))
{
if(IsCop[playerid])
{
new target = GetClosestPlayer(playerid,5.0); //The wanted player must be in range of 5.0 from the cop
if(target != INVALID_PLAYER_ID)
{
if(IsWanted[target])
{
//Rest of code...
}
}
}
}
return 1;
}