Scripting - I. Einführung
Die Stranded II Scriptsprache ermöglicht es, das Spiel zu modifizieren und eigene interaktive Karten zu bauen.
Sie basiert auf einem Event-System, das heisst, dass Scripts bzw. Scriptteile nur bei bestimmten Ereignissen vom Spiel interpretiert werden.
Hierbei wird zwischen verschiedenen Typen von Scripts und Ereignissen unterschieden.

Script Typen

Globale Scripts - das sind Scripts, welche nur bei globalen Ereignissen ausgeführt werden. Diese Scripts sind nicht an Objekte gebunden. Globale Scripts, welche auf jeder Karte gültig sein sollen, werden in die Datei "sys\game.inf" des Mod-Ordners geschrieben. Globale Scripts, welche nur auf einer bestimmten Karte in Kraft treten sollen, können im Editor bei den Map Einstellungen geschrieben werden.

Objekt gebundene Scripts - diese Scripts werden im Editor direkt bei einem Objekt, einer Einheit, einem Item oder einem Info geschrieben. An dieses Objekt sind sie dann gebunden. Ereignisse im Script werden nur dann ausgelöst, wenn sie bei genau diesem Objekt stattfinden (oder natürlich wenn es sich um globale Ereignisse handelt).

Definitions Scripts - sie werden in die Definitionsdateien (zu finden im Sys-Ordner des Mod-Ordners) geschrieben und verhalten sich im Grunde genommen wie Objekt gebundene Scripts. Allerdings mit dem Unterschied, dass sie nicht an ein einzelnes Objekt gebunden sind, sondern an alle Objekte des gleichen Typs. Wenn man also erreichen will, dass z.B. Heiltränke den Spieler bei Benutzung heilen, schreibt man es in die Definitionsdatei, da dies ja für alle Objekte des Typs Heiltrank gelten soll und nicht nur für einen bestimmten.

Ereignis Typen

Wie bei der Erklärung der Script Typen schon erwähnt, gibt es globale Ereignisse und Objekt gebundene Ereignisse. Globale Ereignisse können in jeden Typ von Script geschrieben werden und werden dort dann auch interpretiert, sobald das Ereigniss stattfindet. Objekt gebundene Ereginisse machen hingegen natürlich nur in Objekt gebundenen Scripts oder Definitions Scripts Sinn, da diese Ereignisse nur bei Interaktionen mit Objekten ausgelöst werden.
Beispiel gefällig? Ein globales Ereignis ist z.B. "on:start" - es wird ausgeführt, wenn die Karte gerade geladen und gestartet wurde. Das hat natürlich nichts mit einem bestimmten Objekt auf der Karte zu tun und ist somit als "global" einzustufen. Wenn man nun jedoch im Spiel ein Objekt benutzt, was dem Ereignis "on:use" entspricht, so ist dies ein Objekt gebundenes Ereignis. Es macht keinen Sinn, ein Script mit einem solchen Ereignis in die game.inf oder das globale Script einer Karte zu schreiben, da diese in der Spielwelt nicht durch Objekte verkörpert werden, welche man benutzen könnte.

Zusammenfassung

• Scripts können global in die "game.inf" oder in ein globales Map Script geschrieben werden, im Editor bestimmten Objekten zugeteilt werden oder in die Definitionen (inf-Dateien im Sys-Ordner) bestimmter Objekt-Typen geschrieben werden.
• Scripts werden bei bestimmten Ereignissen ausgeführt. Globale Ereignisse werden überall ausgeführt, objektgebunde Ereignisse aber nur bei den Scripts der entsprechneden Objekte.

So viel zum Grundprinzip der Stranded II Scriptsprache. Im nächsten Teil werden wir ein "Hello World" Programm schreiben. Juhu!

• II. Hello World
Stranded I, Stranded II & Stranded III are games by Unreal Software 2003-2017 | Contact | Disclaimer