Führerschein System problem

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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 scripte aktuell an einem Führerschein system an sich bin ich auch schon relativ weit eigentlich fehlt mir nur noch das wenn jemand in ein Fahrzeug einsteigt, dass er abfragt ob es ein Auto, Motorrad, etc ist und dementsprechend noch abfragt ob er den schein dazu hat. Nun da ist auch schon mein Problem wie frage ich ab ob es ein Auto oder iwas anderes ist? Ich habe gedacht bei OnPlayerStateChange aber ich bin mir nicht ganz sicher. es wäre cool wenn mir dabei jemand helfen könnte.


    mfg

  • Was hast du denn bereits zusammen gecoded? Poste den Code doch hier damit dir auch geholfen werden kann


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • Hier hast du eine Liste von allen modelids: https://sampwiki.blast.hk/wiki/Vehicles:All


    Hier z.B. nur von Bikes: https://sampwiki.blast.hk/wiki/Vehicles:Bikes


    Kannst OnPlayerStateChange nutzen :)


    Gibt auch schon Includes, die das auflisten: https://sampforum.blast.hk/showthread.php?tid=243814 (GetVehicleType)

    ast2ufdyxkb1.png


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

  • Ich habe jetzt folgendes:

    der Befehl zum scheine geben

    und hier das speichern:

    Ich habe auch gedacht das dass bei OnPlayerStateChange rein kommt da hab ich bis jetzt das:

    mir ist bewusst dass da noch die abfrage fehlt welches Fahrzeug es ist aber ich versteh noch nicht so ganz wie ich das schreibe.

  • Ich habe jetzt folgendes:

    der Befehl zum scheine geben

    und hier das speichern:

    Ich habe auch gedacht das dass bei OnPlayerStateChange rein kommt da hab ich bis jetzt das:

    mir ist bewusst dass da noch die abfrage fehlt welches Fahrzeug es ist aber ich versteh noch nicht so ganz wie ich das schreibe.



    Guck mal hier.

    Da hast du genau, das richtige schon bekommen.





    So kannst du genau, die Arten der Fahrzeuge im Script Abfragen :)

  • Ich hab leider noch nicht so ganz verstanden wie ich das in mein Script mit einfügen kann.


    Ich füge quasi das ins Script ein aber was genau is dann die Abfrage bei OnPlayerStateChange?

  • C++
    new vehID = GetPlayerVehicleID(playerid);
    new model = GetVehicleModel(vehID);
    
    if(IsBike(model) && PlayerInfo[playerid][pBike] == 0)
    {
        RemovePlayerFromVehicle(playerid);
        SendClientMessage(playerid,Grau,"Du hast keinen Motorradführerschein!");
        return 1;
    }

    Einfach der if-Abfrage hinzufügen :)

    ast2ufdyxkb1.png


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

  • so sollte es zb aussehen

  • Ich habe jetzt folgendes gemacht:


    ganz oben im Script

    Code
    new vehID = GetPlayerVehicleID(playerid);
    new model = GetVehicleModel(vehID);

    dann bei OnPlayerStateChange

    und ganz unten im Script den stock

    Code
    stock bool:IsBike(model)
    {
        switch(model)
        {
            case 448, 461, 462, 463: return true; // etc
        }
        return false;
    }

    Jetzt habe ich das problem wenn ich den PAWN compiler öffne steht da garnichts.

    Wenn ich das new etc was ich ganz oben stehen hab in OnPlayerStateChange einfüge, bekomm ich folgendes warning

    Code
    warning 208: function with tag result used before definition, forcing reparse

    die Zeile mit dem warning ist

    Code
    stock bool:IsBike(model)



    //EDIT: Wenn ich das ganze jetzt inGame probiere passiert garnichts. Wenn ich den schein hab kann ich fahren genauso wenn ich keinen Schein hab.



  • setze denn stock

    Code
    stock bool:IsBike(model)

    über

    Code
    public OnPlayerStateChange(playerid, newstate, oldstate)

    dann sollte der warning weg sein

  • setze denn stock

    Code
    stock bool:IsBike(model)

    über

    Code
    public OnPlayerStateChange(playerid, newstate, oldstate)

    dann sollte der warning weg sein

    Dankeschön der warning ist jetzt weg. Ich habe jetzt auch alle ID's eingegeben und alles passt im Script allerdings wenn ich keine scheine hab, kann ich nach wie vor noch fahren. Weist du an was das liegen kann?

  • Dankeschön der warning ist jetzt weg. Ich habe jetzt auch alle ID's eingegeben und alles passt im Script allerdings wenn ich keine scheine hab, kann ich nach wie vor noch fahren. Weist du an was das liegen kann?

    Du rufst auch immer wieder

    Code
    if(newstate == PLAYER_STATE_DRIVER)

    auf, dass kann auch so nix werden.


    Mache es mal so

  • Achso okay ich dachte das man dass einzeln abfragen muss. Ich werde es später mal so versuchen. Ich hab nur noch gemerkt das ich bei dem /giveschein Befehl den wir oben schon überarbeitet haben immer den Fehler ingame bekomm „das Level des Spielers ist zu niedrig“ das Level stimmt aber überein an was kann das den liegen?

  • Achso okay ich dachte das man dass einzeln abfragen muss. Ich werde es später mal so versuchen. Ich hab nur noch gemerkt das ich bei dem /giveschein Befehl den wir oben schon überarbeitet haben immer den Fehler ingame bekomm „das Level des Spielers ist zu niedrig“ das Level stimmt aber überein an was kann das den liegen?

    Vermutlich an deiner Implementierung, hast du denn im Vorfeld, von dem Spieler, den du den Schein geben möchtest, die Variable: PlayerInfo[playerid][pLevel] angepasst?

  • Achso okay ich dachte das man dass einzeln abfragen muss. Ich werde es später mal so versuchen. Ich hab nur noch gemerkt das ich bei dem /giveschein Befehl den wir oben schon überarbeitet haben immer den Fehler ingame bekomm „das Level des Spielers ist zu niedrig“ das Level stimmt aber überein an was kann das den liegen?

    Mit level wird da nix abgefragt

    es wird nur geprüft ob er den schein hat oder nicht


    1 = ja hat ein 0 = hat kein führe ereigniss aus