Hey,
ich hätte eine Frage,
wie erstelle ich einen CMD, und frage gleichzeitig ab, wer der näheste Spieler ist, und ob die Distanz kleiner als 15 ist.
Danke fürs Lesen.
Hey,
ich hätte eine Frage,
wie erstelle ich einen CMD, und frage gleichzeitig ab, wer der näheste Spieler ist, und ob die Distanz kleiner als 15 ist.
Danke fürs Lesen.
Mit einer Schleife + IsPlayerInRangeOfPoint
stock GetNearestP(playerid,Float:d){ new Float:px,Float:py,Float:pz; GetPlayerPos(playerid,px,py,pz); for(new i=0;i<MAX_PLAYERS;i++) { if(IsPlayerInRangeOfPoint(i,d,px,py,pz)) { if(i != playerid) { return i; } } }}
ja, in den Gedanken liegt nicht das Problem, doch bei der Ausführung.
Wenn du so nett wärst. :x
forward GetClosestPlayerToPlayer(playerid);
public GetClosestPlayerToPlayer(playerid)
{
new Float:dist = 1000.0;
new targetid = INVALID_PLAYER_ID;
new Float:x1,Float:y1,Float:z1;
new Float:x2,Float:y2,Float:z2;
new Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z1);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(i == playerid) continue;
GetPlayerPos(i,x2,y2,z2);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
if(tmpdis < dist)
{
dist = tmpdis;
targetid = i;
}
}
return targetid;
}