Autos drumherum ansprechen

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
  • Hey,


    ich wollt mal einfach fragen wie ich wenn ein Spieler zB eine Taste drückt einfach abfragen kann ob ein Auto neben ihm steht und dieses dann direkt ansprechen.
    Das Problem ist ich weiß vorher ja nicht welches Auto angesprochen wird, daher kann ich vom Script her nicht schon eins festlegen


    - Tom

  • einfach abfragen kann ob ein Auto neben ihm steht und dieses dann direkt ansprechen.


    Hier, mit der Funktion kannst du das nähste Fahrzeug von einem Spieler ermitteln:


    stock GetClosestVehicle(playerid, Float:range) {
    new Float:p[5],veh;
    GetPlayerPos(playerid, p[0], p[1], p[2]),p[4] = range+1;
    for(new v=1; v < MAX_VEHICLES; v++) {
    p[3] = GetVehicleDistanceFromPoint(v, p[0], p[1], p[2]);
    if(p[3] <= range && p[3] <= p[4]) veh = v,p[4] = p[3];
    }
    return veh;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Wie kann ich direkt das Fahrzeug was in dem stock angesprochen wird dann weiter benutzen, also das veh zB für GetVehicleModel?


    - Tom

    GetVehicleModel(GetClosestVehicle(playerid,3.0));
    PutPlayerInVehicle(GetClosestVehicle(playerid,3.0),0);
    Sowas meinste ?


    Oder speicherst es in ne Variable ->
    new variable = GetClosestVehicle(playerid,3.0); //lokal
    variable[playerid] = GetClosestVehicle(playerid,3.0); //global (oben im Skript -> new variable[MAX_PALYERS];)

  • Hier ein Beispiel (habe einen Befehl dafür genommen)



    ocmd:editcar(playerid, params[]) {
    new vID = GetClosestVehicle(playerid, 3.0), str[64];
    if(!GetClosestVehicle(playerid, 3.0)) return SendClientMessage(playerid, -1, "Es befindet sich kein Fahrzeug in der nähe.");
    format(str, sizeof(str), "Fahrzeug %d ist in deiner nähe", vID);
    SendClientMessage(playerid, -1, str);
    return 1;
    }



    stock GetClosestVehicle(playerid, Float:range) {
    new Float:p[5],veh;
    GetPlayerPos(playerid, p[0], p[1], p[2]),p[4] = range+1;
    for(new v=1; v < MAX_VEHICLES; v++) {
    p[3] = GetVehicleDistanceFromPoint(v, p[0], p[1], p[2]);
    if(p[3] <= range && p[3] <= p[4]) veh = v,p[4] = p[3];
    }
    return veh;
    }


    Lg