________________________________________________________________________
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8. Allgemeines
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8.1. Stilparameter und FormateIm Block Umgebung werden allgeimeine Angaben über das Adventure und über die Text- und Absatzformate gemacht. Folgende Anweisungen werden in diesem Block verstanden:
Obwohl theoretisch 128 Farbkombinationen möglich sind, denkt bitte daran, daß Spieler u.U. stundenlang mit Eurer Farbwahl konfrontiert sind. Blau- und Grautöne sind also Pink und Türkis vorzuziehen! Einige Stilparameter können während des Spiels geändert werden. Sie sind auf folgenden Systemflaggen abgelegt, die alle mit einem Doppelkreuz beginnen:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8.2. SynonymeZu guter letzt kann man dem Parser noch Synonyme mitteilen. Dies geht mit diesem Befehl, der überall außerhalb eines Blocks stehen kann:
Die Ersetzung erfolgt dabei direkt nach der Eingabe des Befehls, d.h. der Parser arbeitet schon mit den ersetzten Ausdrücken. Das kann natürlich zu Überraschungen führen, wenn der Parser einen Fehler findet, und dann andere Worte anmeckert, als der Spieler eingegeben hat. Aber im allgemeinen wird so die Eingabevielfalt erhöht. Es gibt vier Arten von Synonymen:
Die Synonyme sind nur eine Notlösung, um manche Satzkonstrukte zu ermöglichen. Wenn es geht, sollten die Vokabellisten der Befehle, Objekte usw. direkt benutzt werden. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8.3. FunktionstastenDie Funktionstasten F1 bis F10 können mit häufig gebrauchten Befehlen belegt werden. Der Befehl dazu, der außerhalb eines Blocks stehen muß, heißt:
Folgende Belegungen für die Funktionstasten sind bereits voreingestellt: F1 Ende F2 Neu F3 Laden F4 Speichern F5 Knapp F6 Ausführlich F7 Meldung F8 Punkte F9 Zurück F10 Manuskript Diese Meta-Befehle sind sicher für die meisten Spiele nützlich. Wird als Text ein leerer String '' angegeben, so hat die Taste keine Belegung. Wer will, kann also die voreingestellten Belegungen löschen. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8.4. PunkteFür einige Handlungen im Spiel soll es Punkte geben. In TAG können für 255 Aktionen Punkte verteilt werden. Alle Aktionen, für die es Punkte geben soll, werden am besten aufgeschrieben und durchnumeriert, etwa:
Wenn dann im Spiel die Punkte vergeben werden sollen, verwendet man die Anweisung Punkte PktNr PktZahl PktNr ist die laufende Nummer des Punktbeitrags, PktZahl die vergebene Punktzahl. Je nachdem, ob die Meldung ein- oder ausgeschaltet wurde, erscheint sie dann auf dem Bildschirm. Um die Gesamtpunktzahl zu erhalten, kann man die vordefiniere Variable Punkte verwenden. Um also den Punktestand beim Finden des Schlüssels zu ändern, sind die An- weisungen: Ausf [...] Text 'Unter der Fußmatte finde ich einen kleinen Schlüssel. Bingo!' Punkte 1 2 [...] Ende Achtung! Es können keine negativen Punktzahlen angegeben werden. Wir denken positiv. Es können aber wieder Punkte abgenommen werden, wie z.B. bei der klassischen Schatzsuche. Der Spieler findet nach langen Strapazen eine Perlenkette und bekommt zwei Punkte: Punkte 10 2 Dann schleppt er sie ins Trophäenzimmer und legt sie in die Vitrine und bekommt dafür weitere 8 Punkte. Man beachte, daß sich Punkte, die in einem Handlungsstrang befinden, summieren können. Dies funktioniert nur, weil Ihr die Kette erst nehmen müßt, bevor Ihr sie in die Vitrine legen könnt. Ihr habt also jetzt zusammen mit dem ersten Auffinden zehn Punkte erhalten: Punkte 10 10 Wird nun die Kette wieder aus der Vitrine genommen, so werden wieder zwei Punkte vergeben: Punkte 10 2 Da der Punktestand Nr. 10 aber vorher zehn war, gehen eigentlich acht Punkte verloren. Die Meldungen zur Punktestandsänderung geben immer die Veränderung zum vorherigen Stand an, in diesem Fall also 'Du hast soeben 8 Punkte verloren.' Anstatt die beiden Handlungen in eine Punktrechnung zu packen, kann man für das Ablegen auch eine zweite Aktion definieren, etwa: Punkte 10 2 | fürs Finden [...] Punkte 11 8 | fürs in die Vitrine legen Viele Punktzahlen sind nicht mit bestimmten Aktionen, sondern eng mit Objekten oder Räumen verbunden. Für diese Fälle gibt es die Befehle ObjPunkte Obj PktZahl und RaumPunkte Raum PktZahl So kann man die Punktevergabe bequem in Klassendefinitionen vornehmen, und spart sich so eine umständliche Listenführung. So könnte die Perlenkette oben von der Objektklasse Schatz sein: ObjKlasse Schatz ... Var Nimm_Wert 2 Var Pack_Wert 10 NachAusf (nehmen) ObjPunkte selbst Nimm_Wert (hineinlegen) Wenn (aObj2 = Vitrine) dann Text 'Du legst [den selbst] vorsichtig in die Glasvitrine.' ObjPunkte selbst Pack_Wert sonst ObjPunkte selbst 0 Ende (hinlegen) ObjPunkte selbst 0 EndeAusf Ein weiteres Beispiel sind markante Räume, die beim Besuch Punkte geben: RaumKlasse PunktRaum NachAusf (gehen) RaumPunkte daselbst 5 EndeAusf Die Werte der einzelnen Punktzahlen können folgendermaßen als Variable ange- sprochen werden: Pkt.Zahl, Pkt.Flg ObjPkt.Obj, ObjPkt.ObjVar RaumPkt.Raum, RaumPkt.RaumVar Einzelne Aktionen können immer nur bis zu 255 Punkte geben. Die Summe der Einzelpunkte kann jedoch größer sein. Außerdem können immer nur positive Punktzahlen vergeben werden. Dennoch ist es mit einem Trick möglich, negative Punktzahlen zu erreichen: Die Variable Pktbasis enthält eine Integer-Zahl, die immer zum Punktestand addiert wird. Wird Pktbasis am Anfang auf sagen wir mal 60 gesetzt, so ist der Anfangspunktestand 60, obwohl noch kein Rätsel gelöst wurde. Dieser Wert kann auch negativ sein, wir können den Spieler sich auch aus den Miesen hocharbeiten lassen. Nehmen wir einmal an, der Spieler würde mit Minuspunkten bestraft, wenn er einen Spiegel zerbricht. Er soll aber mit Null Punkten starten. Dann lautet die Anfangsanweisung: Aktion Anfang Ausf [...] Sei Pktbasis -49 Sei Pkt.1 49 EndeAusf So bekommt der Spieler (lautlos) 49 Punkte, aber er merkt es nicht, weil er über die Variable Pktbasis 49 Punkte abgezogen bekommt, und so wieder bei Null steht. Zerbricht er nun den Spiegel, so passiert das folgende: [...] ObjZust Spiegel Kaputt Punkte 1 0 Die Einzelpunktzahl 1 wird also auf Null zurückgesetzt, eine Meldung besagt, daß der Pechvogel 7x7 Strafpunkte bekommt und die Punktzahl fällt um 49 Punkte. Das Ändern der Variable Punktbasis geschieht immer lautlos, es sei denn, es wird extra programmiert. PktBasis kann während des Spielverlaufs verändert werden. Zum Beispiel könnte sie alle hundert Züge um einen Punkt herabgesetzt werden, damit der Spieler zügig vorangeht und nicht lange Zeit verliert.Die Gesamtpunktzahl ergibt sich also immer aus der Summe aller mit Punkte definierten Einzelpunktzahlen plus der Summe der Objekt- und Raumpunktzahlen plus der globalen Variable PktBasis. Wem das System der ereignis-, raum- und objektbezogenen Punktvergabe nicht gefällt, kann also nur PktBasis für den Punktestand verwenden. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|