Fragen zum Skripten (gelöst)

  • Hallöchen,


    bin blutigster Anfänger im Skripten, hoffe ihr könnt mir schon mal vergeben ^^° Hätte da aber eine Frage, die ich über die letzten 3 Tage nicht lösen konnte. Wie und wann wird am Ende einer Zeile ein „ ; “ und wann nicht. Auch warum manchmal mit „begin“ und „end“ geskriptet wird und manchmal nicht begonnen wird, Hier Beispiel aus dem Minimalskript:


    procedure OnButton(id: string; value: boolean; cockpitIndex: byte);

    begin

    if (id = 'Brake') then

    begin

    _brake := value; <——- hier ist eines

    end

    else if (id = 'Throttle') then

    begin

    _throttle := value <——- warum hier keines?

    end

    else if (id = 'MaxBrake') then

    (HIER KEIN BEGIN???) <——-

    _maxbrake := value; <—- hier schon

    end;


    Wäre da echt um Hilfe dankbar, hab schon Kopfschmerzen vv° Bei meinen Skriptversuchen bis jetzt war auch die pobulärste fehlermeldung, dass was mit den „ ; “ nicht stimmt...

  • begin + end: Kommen bei If-Klammern nur dann vor, wenn mehr als ein Befehl darin steht. Beispiel:

    If Test = 0 then Test2 := 1; <- ohne begin/end

    If Test = 0 then

    begin

    Test2 := 1;

    Test3 := 1;

    end; <- mit begin/end


    Bei den ; scheint dein Beispielscript sehr inkonsistent zu sein. Da ist viel Freiraum. Vorkommen müssen tun die meines Wissens nur an Enden von Prozeduren und an Enden von If-Klammern (wenn danach kein else if oder weiteres if folgt).


    Bin selbst kein Experte, aber vielleicht hilft das ja ^^°

  • <——- warum hier keines?

    Weil ich es vergessen habe. Ich habe das begin und end nachträglich drumherum gesetzt und da vorm "else" kein Semikolon kommt, war vorher keins da. Mit begin und end gehört in die Zeile mit der Anweisung natürlich ein ; .


    (HIER KEIN BEGIN???) <——-

    Einzeilige Anweisungen brauchen kein begin und end. Das end ganz am Ende - sieht man an der Formatierung im Original - schließt die OnButton-Prozedur ab, nicht den Else-Block.


    _maxbrake := value; <—- hier schon

    Da gehört es auch hin.

  • Generell sollte immer ein ; am Ende der Zeile stehen, mit eben einigen Ausnahmen. Nur so ne Frage, funktioniert das Script? Weil mich wunderts jetzt auch erstmal, warum beim zweiten Kommando keines steht.

    Wegen dem BEGIN & END, dieses ist nicht notwendig wenn nach dem if/else is/else nur eine Zeile mit einem Kommando steht. Es wäre hier also bei den ersten zwei code-teilen auch nicht notwendig.

    Ich hoffe, dass ist jetzt nicht zu kompliziert und falsch erklärt^^°

  • BELLA CIAO

    Hat den Titel des Themas von „Frage zu den „ ; ““ zu „Fragen zum Skripten“ geändert.
  • Hätte dann noch ne weitere Frage:

    Hier spuckt mir das Contenttool einen Fehler aus:"198:9 unknown identifier id". (198:9 is id = 'ParkBrakeOff') Obwohl ich's eigentlich ja deklariert habe. Bei den vorherigen "Throttle" und "Brake" hats auch funktioniert... Wat hab ich hier übersehen?

  • Das Ganze sollte eher so aussehen:

    Zusammengefasst:

    - Zeile 22 und 24 kannst du dir sparen, weil sonst der Teil mit 'ParkBrakeOff' und 'ParkBrakeOn' nicht mehr in der OnButton-Prozedur liegen

    - Zeile 21 und 25 kannst du bei Bedarf zu einem else if zusammenlegen


    Edit: Freaki_N war schneller :D

  • Aaaaa loogisch, im Nachhinein kommt man sich immer so blöd vor ^^° Danke aufjedenfall. Ich verspreche schon mal: Ich bin gut im lernen, also im Zukunft sollten solche rookie mistakes nicht so oft vorkommen (:

  • BELLA CIAO

    Hat den Titel des Themas von „Fragen zum Skripten“ zu „Fragen zum Skripten (gelöst)“ geändert.
  • Neu erstellte Beiträge unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

    Die letzte Antwort auf dieses Thema liegt mehr als 60 Tage zurück. Das Thema ist womöglich bereits veraltet. Bitte erstellen Sie ggf. ein neues Thema.

    Maximale Anzahl an Dateianhängen: 5
    Maximale Dateigröße: 500 kB
    Erlaubte Dateiendungen: bmp, cfg, ini, jpeg, jpg, lct, ldl, llg, lob, log, lpmtl, lptmt, ltx, pas, pdf, png, railtrack, rar, txt, veh, wav