Kleine Lernfortschrittskontrolle SQF Scripting

  • Tach zusammen


    Ich habe jetzt mal damit begonnen, mich intensiver und auch mal grundlegend mit dem sqf-scripten zu beschäftigen. Mir wurde dazu die folgende Videoreihe ans Herz gelegt:
    https://www.youtube.com/playli…6jgrNBgHTQ-ueaXSIP2HkX42K


    Falls jemand ebenfalls gerade mit dem SQF Scripten angefangen hat aber keinen Nerv hat alleine zu lernen kann er sich sehr gerne bei mir melden. Man tut sich bei sowas immer leichter wenn man nicht alleine ist.


    Die ersten 2 Videos habe ich durchgearbeitet und mir einige Textdateien als Eselsbrücken erstellt. Mehr mache ich da heute auch nicht sondern will mir das bisherige erstmal abspeichern in der Rübe. Jetzt wollte ich aber mal sehen, weil es ja Basics sind, inwieweit ich diese verstanden habe und vielleicht kann mir der ein oder andere noch was dazu erzählen.


    Ich hab von Raven/Joko mal ein kleines simples Earplugsscript bekommen und will das mal aufschlüsseln. Mal sehen inwieweit ich da schon richtig liege.



    Zeile 1: JK_earplugsIn = false; //ist ein boolean. also eine boolesche Variable welche nur zwei Werte einnehmen kann. Laut Wikip in der Programmierung ausschließlich wahr oder falsch, true/false.
    Das bedeutet in dem Fall, das bei Start des Scripts die Ohrenstöpsel nicht aktiv sind.


    Zeile 2: player addAction ["Use earplugs", //player addAction wäre hier der handle, welcher dem Programm sagt was er tun soll. In dem Fall füge dem Spieler im Actionmenü die Option "Use earplugs" hinzu. Bis hierhin würde zwar der Punkt im Menü stehen aber ohne Wirkung. "Use earplugs" ist also der String auf den der handle wartet.


    Zeile 3: Kommentar für eine Zeile


    Zeile 4: 0.5 fade Sound 0.3; //fade Sound ist wieder ein handle, also was er tun soll und 0.3 der Faktor mit dem er das tun soll. Frage hier wäre, wozu steht die erste number am Anfang der Zeile ?


    Zeile 5: JK_earplugsIn = true //Wieder eine boolesche Variable die besagt, das die Ohrenstöpsel jetzt aktiv sind.


    Zeile 6: Diese Zeile verstehe ich bisher noch garnicht !!!


    Zeile 7: player addAction ["Remove Earplugs" fügt dem Spieler, vorrausgesetzt das fade Sound wurde ausgeführt, jetzt einen Menüpunkt hinzu mit dem Titel Remove.... //wieder ein handle


    Zeile 8: Komentar


    Zeile 9: 0.5 fade Sound 1; //wieder ein handle um den Sound auf 1, also normal zurück zu setzen.


    Zeile 10: Kommentar


    Zeile 11: JK_earplugsIn = false; Wieder ein boolescher Wert der in diesem Fall besagt, Ohrenstöpsel sind aktuell nicht aktiv.


    Zeile 12: Habe ich auch noch garnicht kapiert.


    Fragen:
    Wie sind die Zeilen 6 und 12 zusammen gesetzt und warum sind die da, was tun sie in diesem script ?? In Zeile 6 steht ein ! mit drin, in Zeile 12 nicht. Was hat es damit auf sich ?


    Sind die anderen Angaben soweit korrekt ? bisher bei Level 2 von 20 ?

  • Also erstens ist die Variable JK_earplugIn in den Zeilen 1,5 und 11 die gleiche und wird nur mit Werten gesetzt.
    Zu den Zeilen 6 und 12 musst du dir mal den addAction Befehl anschauen. https://community.bistudio.com/wiki/addAction
    Im Prinzip beginnt der erste addAction in Zeile 2 und endet in der 6.
    Dabei begenzen die "{" "}" das auszuführende Script.
    Die optionalen Parameter müssten bis auf die Condition default Werte sein.
    Die Condition also das "!JK_earplugsIn" und "JK_earplugsIn" bestimmen wann die Action angezeigt wird. Wenn der Ausdruck zwischen den "" true zurückgibt wird die Action angezeigt.

  • >Warum negiere ich ein Boolean nachdem ich ihn geschrieben habe, oder hat das mit dem Problem zu tun das die Earplugs mehrfach im Menü gestanden haben ????


    Das hat damit nix zu tun. Du hast einfach zwei Aktionen ("Actions"). Eine hat die Bedingung "JK_earplugsIn" (Ohrstöpsel drinn), die andere "!JK_earplugsIn" (Ohrstöpsel draußen).


    Die "Ich-stecke-mir-Ohrstöpsel-rein"-Action soll nur sichtbar sein, wenn ich z.Z. keine Ohrstöpsel drinne habe ("!JK_earplugsIn") und umgekehrt.