Stranded


Scripting - II. Hello World
Da wir nun das Prinzip der Stranded II Scriptsprache kennen, wollen wir nun unser erstes kleines Script in Angriff nehmen.

Der Editor

Scripts werden, abgesehen von denen in Definitionen, direkt im Map Editor geschrieben. Dieser verfügt dafür extra über einen kleinen Script Editor.
• Starte Stranded II
• Klicke im Hauptmenü auf Editor

Wir wollen zunächst ein globales Script erstellen, dies ist, wenn nicht in der "game.inf" am besten über das globale Map Script möglich.

• Öffne die Map Einstellungen:
Map Einstellungen

Hier sieht man nun ein Texteingabefeld, vor dem "globales Script" steht. Genau das, was wir suchen. Allerdings ist das Eingabefeld etwas klein - das lässt sich jedoch ändern.

• Klicke auf den Script-Button um den Script Editor zu öffnen:
Script-Button

Nun befinden wir uns im Script Editor. Er bietet neben mehr Platz zum schreiben auch eine Script Im- und Export Funktion, einen "Befehl hinzufügen"-Button, welcher ein Fenster mit allen Befehlen öffnet, sowie eine automatische Vervollständigungsfunktion, welche während des Tippens alle Befehle anzeigt, welche mit den gleichen Buchstaben anfangen. Per Mausklick werden diese dann eingefügt.

Hello World!

Jetzt aber endlich zum Script selbst. Immer wenn man ein Script schreibt muss man sich zunächst überlegen, wann es überhaupt ausgeführt werden soll, denn Stranded II Scripts basieren ja auf Ereignissen. Mit dem Befehl "on" wird dies dann festgelegt.

• Der Befehl "on" in der Befehlsreferenz

Da wir wollen, dass unser Script beim Starten der Karte ausgeführt wird, wählen wir das Ereignis "start". Das Ereignis wird immer per Doppelpunkt an den on-Befehl gehängt. Als Script sieht das dann so aus:
on:start {
}

Das alleine bringt jedoch noch garnichts. Stranded II weiss zwar nun, dass es dieses Script ausführen soll, wenn die Map gestartet wird, allerdings gibt es noch keine Befehle, die es dann ausführen könnte.
Das wollen wir mal schnell ändern. Wir wollen einfach nur einen kleinen, kurzen Text ausgeben. Hierfür bietet sich der Befehl "msg" an.

• Der Befehl "msg" in der Befehlsreferenz

Er wird in die geschweiften Klammern geschrieben, da er ja nur beim Start ausgelöst werden soll. Da wir in diesem Script nur ein on:start-Ereignis und keine weiteren Ereignisse haben, würde es jedoch auch auf das Gleiche hinauslaufen, wenn man ihn vor oder hinter die Klammern schreiben würde. Stranded II führt nämlich immer das komplette Script aus - alles was außerhalb von "on"-Klammern steht und alles was innerhalb der/den "on"-Klammer(n) des entsprechenden Ereignisses steht - das allerdings nur, wenn sich im Script ein Ereignis befindet, welches gerade statt findet. Scripts ohne Ereignisse werden demnach nie ausgeführt und sind somit mehr oder weniger sinnlos.
Wie auch immer, wir fügen den Befehl ein:
on:start {
	msg "Hello World!";
}


Dem Befehl wird der Parameter "Hello World!" übergeben, damit er weiss, was er überhaupt ausgeben soll. Das Semikolon muss hinter jeden "normalen" Befehl geschrieben werden und signalisiert, dass hier keine weiteren Parameter mehr kommen.
Die Einrückung vor dem msg-Befehl ist übrigens nicht zwingend notwendig, erhöht aber die Lesbarkeit des Scripts ungemein. Vor allem bei komplexeren Scripts sind solche Einrückungen eine große Hilfe.

• Gebe das oben stehende Script ein
• Klicke auf den Okay Button um das Script zu übernehmen
• Klicke bei den Map Einstellungen auf "Map testen":
Map testen

Wenn du alles richtig gemacht hast, siehst du nun nach dem Laden kurz den Schriftzug "Hello World!" an der linken Seite.
Hello World!

Zusammenfassung

Beim Schreiben von Stranded II Scripts durchgeht man drei Schritte:
• Festlegen WO das Script ausgeführt werden soll und es an der entsprechenden Stelle schreiben
• Festlegen WANN das Script ausgeführt werden soll und entsprechende Ereignisse mit dem on-Befehl festlegen
• Das eigentliche Script in die passenden Ereignis-Klammern schreiben

• III. Variablen
Stranded I, Stranded II & Stranded III are games by Unreal Software 2003-2023 | Contact | Disclaimer