Leeres Auto in der Nähe

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
  • kann ich mit einem Stock oder so abfragen ob ein leeres Auto bei dir in der Nähe ist?


    Ich habe hier was gefunden aber ich weis nicht wie ich es nutze


    Der Stock
    stock GetClosestVehicle(playerid, &Float:dis = (Float:0x7F800000))
    {
    dis = (Float:0x7F800000);
    new Float:X, Float:Y, Float:Z;
    if(GetPlayerPos(playerid, X, Y, Z)) {
    new vehicleid = INVALID_VEHICLE_ID;
    for(new v, Float:temp, Float:VX, Float:VY, Float:VZ; v != MAX_VEHICLES; v++) {
    if(GetVehiclePos(v, VX, VY, VZ)) {
    VX -= X, VY -= Y, VZ -= Z;
    temp = VX * VX + VY * VY + VZ * VZ;
    if(temp < dis) dis = temp, vehicleid = v;
    }
    }
    dis = floatpower(dis, 0.5);
    return vehicleid;
    }
    return INVALID_VEHICLE_ID;
    }



    Und so denke ich währe die abfrage aber es geht nicht
    if(GetClosestVehicle(playerid, 5))//5 für die Entfernung

  • Ja sollte gehen es wäre auch noch einfacher möglich mit
    GetVehicleDistanceFromPoint zu arbeiten
    hab kurz eine fünktion dazu geschrieben hier wird dir die distanz noch zurück gegeben




    native IsValidVehicle(vehicleid);
    oben im skript
    stock GetClosestVehicle2(playerid){
    new i,Float:Pos[5],cveh;
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    for(; i < MAX_VEHICLES; ++i){
    if(!IsValidVehicle(i))continue;
    Pos[3] = GetVehicleDistanceFromPoint(i, Pos[0],Pos[1],Pos[2]);
    if(Pos[4] > Pos[3] || Pos[4] == 0){
    Pos[4] = Pos[3];
    cveh = i;
    }
    }
    return cveh;
    }


    Hab mich gestern ihrgend wie verlesen du bekommst nur raus welches auto am nächsten zu einem spieler ist nicht ob es leer ist
    dazu müsste man noch eine schleife machen sollte so perfekt gehen

    stock GetClosestVehicle(playerid){
    new p,v,Float:Pos[5],cveh=-1,bool:no;
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    for(; v < MAX_VEHICLES; ++v){
    if(!IsValidVehicle(v))continue;
    for(p=0; p < MAX_PLAYERS; ++p){
    if(!IsPlayerInVehicle(p, v))continue;
    no=true;
    break;
    }
    if(!no){
    Pos[3] = GetVehicleDistanceFromPoint(v, Pos[0],Pos[1],Pos[2]);
    if(Pos[4] > Pos[3] || Pos[4] == 0){
    Pos[4] = Pos[3];
    cveh = v;
    no=false;
    }
    }
    }
    return cveh;
    }