Nächsten Point ermitteln

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten tag,


    ich habe wohl leider einen kleinen Denkfehler oder so ähnlich, auf jeden fall komme ich nicht weiter :D Ich hoffe mir kann jemand kurz helfen.


    Ich will aus 4 verschiedenen Koordinaten den nächsten ermitteln, mein Code sieht so aus:



    sfdistanz = GetVehicleDistanceFromPoint(vid, -1455.8683,36.5781,14.1484);
    lvdistanz = GetVehicleDistanceFromPoint(vid, 1433.1556,1462.8600,10.8203);
    lsdistanz = GetVehicleDistanceFromPoint(vid, 1756.8927,-2543.6868,13.5469);
    vwdistanz = GetVehicleDistanceFromPoint(vid, 105.6276,2487.5879,24.1000);
    if(floatround(sfdistanz) < floatround(lsdistanz) && floatround(lvdistanz) && floatround(vwdistanz)) format(gesstring, sizeof(gesstring), "~w~San Fierro~n~%d Meter", floatround(sfdistanz));
    else if(floatround(lvdistanz) < floatround(lsdistanz) && floatround(sfdistanz) && floatround(vwdistanz)) format(gesstring, sizeof(gesstring), "~w~Las Venturas~n~%d Meter", floatround(lvdistanz));
    else if(floatround(lsdistanz) < floatround(sfdistanz) && floatround(lvdistanz) && floatround(vwdistanz)) format(gesstring, sizeof(gesstring), "~w~Los Santos~n~%d Meter", floatround(lsdistanz));
    else if(floatround(vwdistanz) < floatround(lsdistanz) && floatround(lvdistanz) && floatround(sfdistanz)) format(gesstring, sizeof(gesstring), "~w~Verdant Meadows~n~%d Meter", floatround(vwdistanz));




    Und ja, ich habe sie mit "new Float:lvdistanz" erstellt ;)


    Vllt. hat jemand noch ne bessere Lösung mit ner Schleife oder ähnlichem? Danke im Vorraus!


    Mit freundlichen Grüßen,
    Shanon.

  • hier bitte



    enum Enum{
    Float: X,
    Float: Y,
    Float: Z,
    string[30],
    }
    new array[4][Enum] = {
    {-1455.8683,36.5781,14.1484,"~w~San Fierro~n~%d Meter"},
    {1433.1556,1462.8600,10.8203,"~w~Las Venturas~n~%d Meter"},
    {1756.8927,-2543.6868,13.5469,"~w~Los Santos~n~%d Meter"},
    {105.6276,2487.5879,24.1000,"~w~Verdant Meadows~n~%d Meter"}
    };


    stock beispiel(playerid)
    {
    new i, distance[3],string2[60], vid = GetPlayerVehicleID(playerid);
    for(; i< sizeof(array); ++i){
    distance[0] = floatround(GetVehicleDistanceFromPoint(vid, array[i][X],array[i][Y],array[i][Z]));
    if(distance[1] == 0 || distance[0] < distance[1]){
    distance[1] = distance[0];
    distance[2] = i;


    }


    }
    format(string2,60,array[distance[2]][string],distance[1]);
    return string2;
    }