Guten Tag,
ich hätte gerne eine Abfrage in meinem Script, die abfragt welche der 3 gegeben Cordinaten die näherste ist.
Kann man sowas abfragen? Wenn ja wie?
MfG.
Guten Tag,
ich hätte gerne eine Abfrage in meinem Script, die abfragt welche der 3 gegeben Cordinaten die näherste ist.
Kann man sowas abfragen? Wenn ja wie?
MfG.
Schau dir das mal an.
http://wiki.sa-mp.com/wiki/GetPlayerDistanceFromPoint
Hab ich schon.
Ich definiere die drei Cordinaten damit, nur wie frage ich nun ab welche die näherste ist?
Bei zwei wäre es ja einfach. Dann würde ich einfach abfragen Cord1 < Cord 2 oder so aber mit dreien verstehe ich es nicht.
MfG.
if( cord 1 < cord2)
{
if(cord 1 < cord3)
{
// 1 ist am nächsten.
}
}
oder halt einfach:
if( cord 1 < cord2 && cord1 < cord3)
{
// 1 ist am nächsten
}
Und so weiter
Gruß,
Neo.
new Float:pos[][3] =
{
{1.0, 1.0, 1.0}, //Position 1
{5.0,5.0,5.0}, //2
{3.0,3.0,3.0} //3
//...
};
new next, Float:dist = Float:0x7F800000, Float:temp;
for(new i;i<sizeof(pos);i++)
{
if( (temp = GetPlayerDistanceFromPoint(playerid, pos[i][0], pos[i][1], pos[i][2])) < dist)
{
dist = temp;
next = i;
}
}
Damit könntest du beliebig viele Punkte verwenden, und den nächsten herrausfinden. Next ist in diesem Fall der Index der nächsten Koordinaten.
printf("%f - %f - %f",pos[next][0], pos[next][1], pos[next][2]);
Das ganze ist ungetestet, aber vom Prinzip her kannst du das so machen.