Grundlegende Scriptelemente
Abstrakt gesehen beruht jedes Script auf drei Dingen: Ereignisse, Bedingungen und vom Script ausgeführte Aktionen. Beispiele:
- Ereignis
- Die Karte wurde gestartet
- Es ist eine Sekunde vergangen
- Ein Briefing wurde beendet
- Ein Tribut wurde bezahlt
- Bedingung
- Ist Dario bei der Brücke?
- Existiert die Burg des Spielers noch?
- Hat der Spieler 3 Kanonen gebaut?
- Aktion:
- Tor öffnen
- Armee erstellen
- Wetter verändern
- Auftrag erstellen
Mit dem Script möchte man ja bestimmte Aktionen auf der Karte ausführen. Meistens sollen diese nicht alle sofort ausgeführt werden, sondern nur nach bestimmten Ereignissen und/oder unter bestimmten Bedingungen. Aktionen können nur ausgeführt werden, nachdem ein Ereignis eingetreten ist, denn nur Ereignisse führen Scriptcode aus.
Das bekannteste Ereignis dürfte der Start der Karte sein. Durch dieses Ereignis wird (auf Einzelspielerkarten) die Funktion FirstMapAction()
ausgeführt. Hier führt man normalerweise die Aktionen aus, die sofort und unbedingt stattfinden sollen, beispielsweise die Erstellung von Armeen für den Computergegner oder den Start eines Briefings.
Nach diesem Ereignis wird nie wieder eine Funktion im Script ausgeführt, es sei denn, man legt fest, daß das Script bei bestimmten Ereignissen aufgerufen werden soll. Um also im weiteren Spielverlauf noch Aktionen ausführen zu können, muss man festlegen, daß das Script über weitere Ereignisse informiert werden soll. Hierzu kann man eine beliebige selbstgeschriebene Funktion angeben, die bei einem bestimmten Ereignis ausgeführt werden soll. Sehr oft wird hierbei das Ereignis „Es ist eine Sekunde vergangen“ gewählt. Nun möchte man natürlich nicht jede Sekunde eine Aktion ausführen, wie zum Beispiel die Öffnung eines Tores.
Hier kommen die Bedingungen ins Spiel. Wenn das Ereignis „Es ist eine Sekunde vergangen“ eintritt, prüft man beispielsweise zunächst die Bedingung „Hat der Spieler 3 Kanonen gebaut?“. Ist diese Bedingung erfüllt, führt man die Aktion „Tor öffnen“ aus.
Es gibt also, wie einige es vielleicht von anderen Scripten gewohnt sind, keine festen Vorgaben wie „Dies muss hierhin geschrieben werden, und wenn man ABC machen will muss das genau zwischen GH und IJ“. Dies mag zu Anfang vielleicht ein wenig verwirren sein, bietet dem Scripter auch später eine sehr hohe Handlungsfreiheit.
- Hier könnten noch andere allgemeine Hinweise hin, beispielsweise aus diesem Topic.