Menü

www.solars.de → Städtebau → Spiele → SimCity 3000 → Szenario Editor Tutorial

Kapitel 4

Nun können wir damit beginnen erste Befehle in unser Hauptscript einzubinden. Dazu gehen wir in den Scripteditor und wählen die Hauptseite aus. Wir sehen die ersten beiden Zeilen mit den Befehlen 'Ziele hinzufügen' und 'Ränge hinzufügen'. Um jetzt einen neuen Befehl einzubinden klicken wir, eine Zeile weiter unten, auf 'Neu'. Nun können wir rechts im Auswahlmenü einen Befehl wählen. Zu jeder Anweisung gibt es darunter eine kleine Beschreibung. Desweiteren ist es für manche Befehle notwendig gewisse Befehlsargumente mit anzugeben. Um weitere Befehle einzubauen klicken wir einfach ein weiteres Mal auf 'Neu'. Mit den Buttons 'Ausschneiden', 'Kopieren' und 'Einfügen' über dem Quelltext lassen sich Anweisungen aber auch leere Zeilen verschieben und bearbeiten.

Einige ausgewählte Beispiele verdeutlichen jetzt die Anwendung der Befehle und der dazugehörigen Argumente:

Dialogtext erstellen

Mit diesem Befehl lassen sich Texte, die man im Dialogtext Manager erstellt hat, anzeigen. Dazu wählt man den Befehl 'Dialogtext erstellen' im rechten Auswahlmenü aus. Als erstes Befehlsargument gibt man den Namen des zu erstellenden Dialogtextes ein. Wenn du als Antragssteller einen der Berater gewählt hast kannst du im zweiten Befehlsargument seine Laune festlegen.

Der Quelltext für einen Dialogtext mit dem Namen tadel und eines besorgten Beraters sieht dann so aus:

DialogtextErstellen(tadel,Besorgt)

Dieser Text erscheint im Szenariostatus Fenster. Der Spieler muss also zuerst dieses Fenster öffnen um die Mitteilung zu lesen. Wenn du möchtest, das er mit einem extra Fenster sofort informiert wird musst du den Befehl 'Automatische Mitteilung' wählen.

Newstickermeldung erstellen

Eine Newsticker Meldung erstellt man genauso wie einen Dialogtext, nur mit dem Befehl 'Newsicker erstellen'. Auch kann man hierbei natürlich nicht die Laune des Beraters angeben.

Bevölkerungszahl holen

Angenommen einer deiner Ziele ist es eine bestimmte Einwohnerzahl zu erreichen, dann musst du ja irgendwie an diesen Wert kommen. Dabei hilft dir der Befehl 'Bevölkerungszahl holen'. Wähle ihn aus und gib als erstes Befehlsargument die Variable an, in der du den Wert ablegen möchtest.

Der Quelltext für eine Variable mit dem Namen einwohnerzahl sieht dann so aus:

BevölkerungszahlHolen(einwohnerzahl)

Größer als

Dieser Befehl vergleicht zwei Zahlen bzw. Werte und setzt dann die angegebene Behauptung wahr oder falsch. Er wird besonders als Bedingung nach der 'Falls' oder 'FallsSonst' Anweisung (siehe unten) verwendet. Dabei gibts du die zwei zu vergleichenden Zahlen/Werte als erstes und zweites Befehlsargument ein. Du kannst wählen ob die zu vergleichenden Zahlen/Werte Konstanten oder Variablen, welcher schon Werte zugeordnet wurden, sind. Der Computer vergleicht die Zahlen und stellt dann fest ob Zahl 1 wirklich größer ist als Zahl 2. Somit wird die Bedingung wahr oder falsch gesetzt(siehe nächster Befehl).

Falls

Mit diesem Befehl schaffst du eine einseitge Verzweigung. So setzt du eine Bedingung und wenn diese erfüllt wird, wird der angegebende Befehl ausgeführt. Zum Beispiel möchtest du, dass wenn die Bevölkerung die 200.000 Marke überschritten wurde, eine Dialogtext erstellt wird. Dazu holst du dir zuerst die Bevölkerungszahl und ordnest sie der Variable einwohnerahl zu. Dann setzt du den 'Falls' Befehl. Eine Zeile weiter unten musst du nun die Bedingung einbauen. Die Bedingung lautet einwohnerzahl größer als 200.000. D.h. falls die Einwohnerzahl größer als 200.000 ist soll der kommende Befehl ausgeführt werden. Dieser kommende Befehl ist wie gesagt 'Dialogtext erstellen' und wird eine Zeile unter der Bedingung eingebaut. Falls die Bedingung nicht erfüllt wird(falsche Aussage), so wird der kommende Befehl auch nicht ausgeführt.

Der Quelltext für das Beispiel müsste dann so aussehen:

BevölkerungszahlHolen(einwohnerzahl)

FALLS

    (einwohnerzahl > 200000 ? Richtig : Falsch )

    DialogtextErstellen(lob, Sehr erfreut)

FallsSonst

Dieser Befehl funktioniert genaus wie der 'Falls' Befehl, nur mit der Ausnahme, das hier auch eine Anweisung durchgeführt wird, wenn die Bedingung nicht erfüllt wird (zweiseitige Verzweigung). Das heißt wenn die Bedingung, in unserem Beispiel einwohnerzahl > 200.000, nicht erfüllt wird ein andere Befehl ausgeführt wird.

Ein Quelltext dafür könnte so aussehen:

BevölkerungszahlHolen(einwohnerzahl)

FALLSSONST

    (einwohnerzahl > 200000 ? Richtig : Falsch )

    DialogtextErstellen(lob, Sehr erfreut)

    GeräuschAbspielen(Anfeuern)

Wenn die Einwohnerzahl größer als 200.000 ist (wahre Aussage), dann würde wie im obigen Beispiel, ein Dialogtext erstellt. Wenn sie aber kleiner ist (falsche Aussage), dann würde der zweite Befehl 'Geräusch abspielen' ausgeführt.

UND/ODER

Manchmal reicht eine Bedingung nicht aus. Wenn man z.B. möchte, dass ein Diaologtext erstellt wird wenn die Bevölkerung über 200.000 und die Stimmung einen Wert von mindestens 10 erreicht, dann muss man diese zwei Bedingungen mit der Und Anweisung verknüpfen. Dazu wählt man nach dem 'Falls' Befehl die 'Und' Anweisung und fügt dann alle Bedingungen an. Danach beendet man mit 'Ende-Und' die Verknüpfung und fügt den bei wahrer Aussage durchzuführenden Befehl 'Dialogtext erstellen an.

Der Quelltext für das Beispiel würde dann so aussehen:

BevölkerungszahlHolen(einwohnerzahl)

StimmungswertHolen(stimmung)

FALLS

    UND {

    (einwohnerzahl > 200000 ? Richtig : Falsch )

    (stimmung > 10 ? Richtig: Falsch)

    } // UND

    DialogtextErstellen(lob, Sehr erfreut)

Der Befehl Dialogtext erstellen wird nur ausgeführt, wenn beide Bedingungen wahr sind.

Wenn es genügt, das eine der beiden Bedingungen wahr ist, setzt man anstelle der Und Befehle die Oder Anweisungen.

Der Quelltext würde dann so aussehen:

BevölkerungszahlHolen(einwohnerzahl)

StimmungswertHolen(stimmung)

FALLS

    ODER {

    (einwohnerzahl > 200000 ? Richtig : Falsch )

    (stimmung > 10 ? Richtig: Falsch)

    } // ODER

    DialogtextErstellen(lob, Sehr erfreut)

Der Befehl Dialogtext erstellen würde jetzt ausgeführt wenn einer der beiden Befehle wahr sind.

Die UND/ODER Anweisungen kann man natürlich auf beim 'FallSonst' Befehl verwenden.

Blöcke

Angenommen es müssten mehrere Anweisungen nach eine wahren Fall-Bedingung ausgeführt werden, dann kann man diese mithilfe der Block-Anweisung zusammenfassen indem man nach der Bedingung den Block-Anfang Befehl setzt und dann die auszuführenden Anweisungen anfügt. Zum Schluß wird die Block Anweisung mit Block-Ende abgeschlossen.

Der Quelltext würde so aussehen:

BevölkerungszahlHolen(einwohnerzahl)

FALLS

    (einwohnerzahl > 200000 ? Richtig : Falsch )

    {

    DialogtextErstellen(lob, Sehr erfreut)

    AutomatischeMitteilung(lob,Nein,Stadtplaner,Sehr erfreut)

    }

Das bedeutet, wenn die Bedingung wahr ist, würde nicht nur der erste Befehl unter der Bedingung ausgeführt, sondern alle Befehle, welche sich zwischen Blockanfang und Blockende befinden.

Diese Anweisung kann man natürlich auch bei dem FallSonst Befehl nutzen.

Zeitangabe

Sicher sind die die Felder unter den Befehlsargumenten schon aufgefallen. Mit diesen kannst du festlegen wann ein bestimmter Befehl ablaufen soll. Wenn du zum Beispiel möchtest, dass ein Jahr nach dem Start des Szenarios der Spieler eine Automatische Mitteilung erhält, musst du den Befehl wie oben beschrieben setzen und in die Felder 365 Tage eingeben. Die Zeit erscheint im Quelltext in Form der Zahlen vor dem Befehl. Somit kannst du theorhetisch jedem Befehl einer bestimmten Zeit zuordnen. Du kannst aber auch in allen Befehlen die Zeit weglassen. Dann liest der Computer den Quelltext einmal am Start durch.

Nun haben wir die Funktionsweisen der Befehle anhand dieser Beispiele kennengelernt. Alle weiteren Befehle hier aufzuführen wäre sinnlos, da sich im Prinzip nichts ändert. Außerdem sind alle Anweisungen im Editor und im Handbuch ab Seite 141 beschrieben.

So, nun können wir mit den Befehlen umgehen. Theorethisch könnten wir jetzt ein Scenario schreiben, aber davor sollten wir uns nocheinmal die Unterscripte und deren Vorteile anschauen.
Text: Robert Wille - Lizenz: Proprietaer