[[http://www.siedler-games.de|{{:sg-link.jpg|}}]] ====== 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 [[funktionen|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. *FIXME Hier könnten noch andere allgemeine Hinweise hin, beispielsweise aus [[http://www.siedler-portal.de/vb3/showthread.php?t=1990|diesem Topic]]. [[:tutorials:index#s5-dedk|Zur S5-DEdK Übersicht]]