Funktion nimmt immer die erste Fahrzeug ID

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


    ich hab ein Abschleppsystem für das OAmt gemacht, nun wen ich /tow mache (und dabei z.b. bei VehicleID 5) bin hängt aufeinmal das Fahrzeug mit der ID 1 an meinem haken?...
    Code:
    if(strcmp("/tow", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 525)
    {
    if(IsTrailerAttachedToVehicle(VehID))
    {
    DetachTrailerFromVehicle(VehID);
    } else {
    if(IsPlayerInRangeOfVehicle(playerid))
    {
    AttachTrailerToVehicle(IsPlayerInRangeOfVehicle(playerid), VehID);
    }
    }
    }
    }
    return 1;
    }
    stock IsPlayerInRangeOfVehicle(playerid)
    {
    for(new v; v < MAX_VEHICLES; v++)
    {
    GetVehiclePos(v, vPosX, vPosY, vPosZ);
    if(IsPlayerInRangeOfPoint(playerid, 3.0, vPosX, vPosY, vPosZ)) continue;
    }
    return 1;
    }


    Danke für jede Hilfe ^^

  • Ist doch kein Wunder wo lässt du die Variable die Fahrzeug ID vom Fahrzeug das in der nähe steht zuweißen ?
    Machs so:



    stock IsPlayerInRangeOfVehicle(playerid)
    {
    for(new v; v < MAX_VEHICLES; v++)
    {
    GetVehiclePos(v, vPosX, vPosY, vPosZ);
    if(IsPlayerInRangeOfPoint(playerid, 3.0, vPosX, vPosY, vPosZ))
    {
    return v;
    }
    }
    return -1;
    }


    Befehl:



    if(strcmp("/tow", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 525)
    {
    if(IsTrailerAttachedToVehicle(VehID))
    {
    DetachTrailerFromVehicle(VehID);
    } else {
    VehID = IsPlayerInRangeOfVehicle(playerid);
    if(VehID != -1)
    {
    AttachTrailerToVehicle(IsPlayerInRangeOfVehicle(playerid), VehID);
    }
    else{//befindet sich bei keinem Fahrzeug
    }
    }
    }
    }
    return 1;
    }

    RFT

  • Jetzt funktionierts garnicht mehr ^^


    if(strcmp("/tow", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 525)
    {
    if(IsTrailerAttachedToVehicle(VehID))
    {
    DetachTrailerFromVehicle(VehID);
    } else {
    new NearCar = IsPlayerInRangeOfVehicle(playerid);
    if(NearCar != -1)
    {
    AttachTrailerToVehicle(IsPlayerInRangeOfVehicle(playerid), VehID);
    }
    }
    }
    }
    return 1;
    }
    (stock ist der selbe wie deiner)

  • Erhöh mal den Radius von 3.0 auf 10.0.



    if(IsPlayerInRangeOfPoint(playerid, 3.0, vPosX, vPosY, vPosZ))


    Und mach ne kleine Debug Funktion im Script.



    new NearCar = IsPlayerInRangeOfVehicle(playerid);
    printf("Carid: %d", NearCar);

    RFT

  • stock IsPlayerInRangeOfVehicle(playerid)
    {
    for(new v; v < MAX_VEHICLES; v++)
    {
    GetVehiclePos(v, vPosX, vPosY, vPosZ);
    if(IsPlayerInRangeOfPoint(playerid, 10.0, vPosX, vPosY, vPosZ)) return v;
    }
    return INVALID_VEHICLE_ID;
    }



    Edit: Radius vergrößert

    Hyper Code

    Wir entwickeln professionelle Ressourcen für FiveM, die auf verschiedenste Bedürfnisse zugeschnitten sind

    und stellen dabei stets die Kundenzufriedenheit in den Mittelpunkt.

    Mit einer Vielzahl von Ressourcen hast du zahlreiche Anpassungsmöglichkeiten, um sie zu deinem eigenen Projekt zu machen. Jede Ressource ist etwas Besonderes, da wir viel Liebe und Sorgfalt in alles stecken, was wir erschaffen.


    Besucht uns unter

    https://hyper-code.eu oder im Discord unter discord.gg/hypercode

  • Zeig nochmal Befehl und Stock wie du es jetzt als letztes hattest.

    Hyper Code

    Wir entwickeln professionelle Ressourcen für FiveM, die auf verschiedenste Bedürfnisse zugeschnitten sind

    und stellen dabei stets die Kundenzufriedenheit in den Mittelpunkt.

    Mit einer Vielzahl von Ressourcen hast du zahlreiche Anpassungsmöglichkeiten, um sie zu deinem eigenen Projekt zu machen. Jede Ressource ist etwas Besonderes, da wir viel Liebe und Sorgfalt in alles stecken, was wir erschaffen.


    Besucht uns unter

    https://hyper-code.eu oder im Discord unter discord.gg/hypercode

  • Stock
    stock IsPlayerInRangeOfVehicle(playerid)
    {
    for(new v; v < MAX_VEHICLES; v++)
    {
    GetVehiclePos(v, vPosX, vPosY, vPosZ);
    if(IsPlayerInRangeOfPoint(playerid, 10.0, vPosX, vPosY, vPosZ))
    {
    printf("Gefundene ID: %i", v);
    return v;
    }
    }
    return -1;
    }

    CMD
    if(strcmp("/tow", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 525)
    {
    if(IsTrailerAttachedToVehicle(VehID))
    {
    DetachTrailerFromVehicle(VehID);
    } else {
    new NearCar = IsPlayerInRangeOfVehicle(playerid);
    printf("Du befindest dich bei FahrzeugID: %i", NearCar);
    if(NearCar != -1)
    {
    AttachTrailerToVehicle(IsPlayerInRangeOfVehicle(playerid), VehID);
    }
    }
    }
    }
    return 1;
    }

  • Probiere es doch mal so:


    if(strcmp("/tow", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new vid = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(vid) != 525) return 1;
    if(IsTrailerAttachedToVehicle(vid)) DetachTrailerFromVehicle(VehID);
    else
    {
    new Float: X, Float: Y, Float: Z;
    for(new v; v<MAX_VEHICLES; v++)
    {
    GetVehiclePos(v, X, Y, Z);
    if(!IsPlayerInRangeOfPoint(playerid, 10.0, X, Y, Z)) continue;
    AttachTrailerToVehicle(v, vid);
    break;
    }
    }
    }
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen