Fahrzeug löschen

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 habe mein Fahrschulsystem mal umgeschrieben und habe dazu noch eine Frage.


    Ich möchte, wenn der Spieler das Fahrzeug verlässt oder das Fahrzeug kaputt geht das dieses gelöscht wird.


    Ich leite die Fahrstunde folgendermaßen im Dialog ein



    if(dialogid == DIALOG_FAHRSCHULE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(PlayerInfo[playerid][pMoney]< 2000) return SendClientMessage(playerid,COLOR_RED, "Du besitzt nicht genug Geld!");
    {
    if(PlayerInfo[playerid][pScheine]==1) return SendClientMessage(playerid,COLOR_GREEN,"Du bist bereits schon im Besitz eines Führerscheines.");
    {
    new Float:a, vehicle;
    vehicle = CreateVehicle(415, 1379.0913, -1648.8781, 13.3828, a, 1, 1, 0);
    PutPlayerInVehicle(playerid, vehicle, 0);
    LinkVehicleToInterior(vehicle, GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(vehicle, GetPlayerVirtualWorld(playerid));



    new Vehicle = GetPlayerVehicleID(playerid),lights,alarm,doors,bonnet,boot,objective;
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    SetPlayerCheckpoint(playerid, 1379.0913, -1648.8781, 13.3828, 3.0);
    L1Checkpoint[playerid]=1;

    }
    }
    }
    }
    }


    // Edit code war falsch

  • Du musst das Fahrzeug erstmal global und - wenn mehrere Spieler gleichzeitig die Fahrprüfung machen können - spielerbezogen definieren.


    Ob der Spieler das Fahrzeug verlässt, fragst du mit [wiki]OnPlayerExitVehicle[/wiki] und
    ob das Fahrzeug zerstört wurde, mit [wiki]OnVehicleDeath[/wiki] ab.


    Dann musst du das Fahrzeug einfach mit [wiki]DestroyVehicle[/wiki] löschen.

  • Wie soll dein Code denn so Funktionieren?



    so sollte das schonmal korrekt sein



    So und jetzt zum eigentliche Problem.
    Um das Fahrzeug zu löschen wenn der Spieler aussteigt musst du bei "OnPlayerExitVehicle" oder "OnPlayerStateChange" (Was immer dir besser gefällt) prüfen ob der jenige in einer Fahrstunde ist.
    Für diese Überprüfung solltest du die Variable "L1Checkpoint[playerid]" Abfragen können ob sie größer 0 ist. Nur musst du sie dann beim verlassen des Fahrzeuges oder bei Ende der Fahrstunde auf 0 setzen.
    Wenn du "OnPlayerExitVehicle" nutzt kannst du als VehicleIdD zum löschen einfach den Übergabeparameter "vehicleid" nutzen.



    Gruß
    FinishedHim

  • Du musst das Fahrzeug erstmal global und - wenn mehrere Spieler gleichzeitig die Fahrprüfung machen können - spielerbezogen definieren.


    Ob der Spieler das Fahrzeug verlässt, fragst du mit [wiki]OnPlayerExitVehicle[/wiki] und
    ob das Fahrzeug zerstört wurde, mit [wiki]OnVehicleDeath[/wiki] ab.


    Dann musst du das Fahrzeug einfach mit [wiki]DestroyVehicle[/wiki] löschen.

    Die Funktinonen sind mir dafür bekannt nur wie setze ich Sie am besten ein.


    Das verlassen habe ich nun gemacht. Allerdings bei dem zerstören wie lese ich das richtig aus ? Denn ich kann die playerid in dem Fall z.b ja nicht verwenden

  • @robbi2304 Wie wäre es mal meinen Beitrag zu lesen?


    "Wenn du "OnPlayerExitVehicle" nutzt kannst du als VehicleIdD zum löschen einfach den Übergabeparameter "vehicleid" nutzen."


    bedeutet DestroyVehicle(vehicleid);



    Edit: Falls du mit "Zerstören" OnVehicleDeath meintest...
    dann solltest du ein Array über alle Spieler erstellen, deren CarId ins Array Schreiben und mit ner Forschleife durchs Array laufen und prüfen ob die zerstörte CarId einem der Fahrschüler gehört

    Einmal editiert, zuletzt von FinishedHim ()

  • @robbi2304 Wie wäre es mal meinen Beitrag zu lesen?


    "Wenn du "OnPlayerExitVehicle" nutzt kannst du als VehicleIdD zum löschen einfach den Übergabeparameter "vehicleid" nutzen."


    bedeutet DestroyVehicle(vehicleid);

    Wie wäre es wenn du meinen Beitrag nochmal liest.




    Das verlassen habe ich nun gemacht. [Erledigt somit]...................




    Allerdings bei dem zerstören wie lese ich das richtig aus ? Denn ich kann die playerid in dem Fall z.b ja nicht verwenden [nicht erledigt]

  • Sorry falsch verstanden xD Bin davon ausgegeangen du wusstest die vehicleid zum löschen beim Aussteigen nicht :D


    Beim Dialog solltest du die CarId in nen PlayerArray schreiben und wie im Post eben schon erwähnt bei onVehicleDeath dieses Array prüfen auf die zerstörte CarId
    musst nur dran denken den Wert zu nullen beim beenden der Fahrstunde bzw jedes mal wenn du das Fahrzeug löschst.

  • Hier eignet es sich gut PVars zu verwenden:


    ast2ufdyxkb1.png


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