Wie kann ich das umscripten ?

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
  • Moin,
    ich bin noch relativ neu beim Scripten und habe mir von der MrMonat Seite ein Tutorial angeguckt wie man einen Führerschein macht..


    stock Register
    dini_IntSet(Spielerdatei,"Fuererschein",0;


    stock LoadAccount
    SetPVarInt(playerid,"Fuererschein",dini_Int(Spielerdatei,"Fuehrerschein"));


    stock SpielerSpeichern
    dini_IntSet(Spielerdatei,"Fuehrerschein",GetPVarInt(playerid,"Fuehrerschein"));


    Dannach oben
    new Fuehrerschein[MAX_PLAYERS];


    Dann der Befehl für den Fahrlehrer...
    Und jetzt bei OnPlayerStateChange
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(GetPVarInt(playerid,"Fuehrerschein") == 0)
    {
    SendClientMessage(playerid, COLOR_RED, " Du hast keinen Führerschein, ");
    SendClientMessage(playerid, COLOR_RED, " Solltest du erwischt werden, ");
    SendClientMessage(playerid, COLOR_RED, " musst du mit Konsequenzen rechnen. !");
    RemovePlayerFromVehicle(playerid);
    }
    }


    So ich möchte jetzt gerne wissen wie ich das hier:
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(GetPVarInt(playerid,"Fuehrerschein") == 0)
    {
    SendClientMessage(playerid, COLOR_RED, " Du hast keinen Führerschein, ");
    SendClientMessage(playerid, COLOR_RED, " Solltest du erwischt werden, ");
    SendClientMessage(playerid, COLOR_RED, " musst du mit Konsequenzen rechnen. !");
    RemovePlayerFromVehicle(playerid);
    }
    }
    auch für meinen Boot,Flug und Motorradschein machen kann.


    Hoffe mir kann jemand helfen :D



    Mit freundlichen Grüßen,
    Jaystar

    Einmal editiert, zuletzt von Jaystar ()

  • Nun du musst bei der Abfrage natürlich zuerst abfragen lassen, was für ein Fahrzeug das überhaupt ist, also ob es ein Boot, PKW, LKW oder was auch immer du haben willst. (Hilfe: GetVehicleModel)


    Nebenbei auch dann für jeden spezielle Fahrzeugart nen speziellen Schein einfügen ^^ Also für Boot einen Bootsschein und Co. ...


    Solltest du jedoch weitere Hilfe benötigen, dann kann ich dir ruhig näheres erklären ^^, aber mal schaun ob du so alleine draufkommst.

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {


    DieseZeile in OnPlayerState musst du entsprechend ändern. Du kannst nach

    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == Model Des(Boot/FLug etc..)


    Ich würde dir empfehlen stocks für Flugzeug und Boot Models zu schreiben, die überprüfen pb das übergebene Model ein solches Model ist:)

  • Danke erstmal das ihr geantwortet habt :D


    Also ahhm die anderen 3 Scheine (Boot Flug und Motorrad) habe ich schon


    nur wie scripte ich es das es erkennt das ein boot, Flugzeig/Helikopter oder ein Motorrad ist ?


    //edit:
    Es soll ja für ALLE Fahrzeugarten ein schein geben also das man für alle motorräder ein motorradschein bruacht usw.

    Einmal editiert, zuletzt von Jaystar ()

  • Eine eher leichtere Möglichkeit wäre, dass du dir Funktionen erstellst, die definieren ob das Fahrzeug ein Boot ist oder nicht usw.


    Beispiel:


    IsABoat(carid)
    {
    if(GetVehicleModel(carid)==472||GetVehicleModel(carid)==473||GetVehicleModel(carid)==493||GetVehicleModel(carid)==595||GetVehicleModel(carid)==484||GetVehicleModel(carid)==430||GetVehicleModel(carid)==453||GetVehicleModel(carid)==452||GetVehicleModel(carid)==446||GetVehicleModel(carid)==454) return true;
    return false;
    }


    zwar ist das nicht die beste Variante, aber zum verstehen ist es gut ^^, andernfalls kannst du den obigen Code umwandeln, indem du folgendes machst:


    new BoatDef[]={472.473,493,595,484,430,453,452,446,454};
    IsABoat(vehicleid)
    {
    for(new boat;boat!=sizeof(BoatDef);boat++) if(GetVehicleModel(vehicleid)==BoatDef[boat]) return true
    return false;
    }


    und das könnte man noch umfassender machen, aber mehr Möglichkeiten poste ich jetzt nichtmehr xD

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!