________________________________________________________________________
| ||
16. Extras | ||
16.1. Ein Rang für PunkteIn Text-Adventures ist es üblich, dem Spieler je nach erreichter Punktzahl einen Rang zu geben. TAG macht das nicht, es sagt nur, wieviele Punkte in wievielen Zügen erreicht wurden. Um eine Rangskala einzuführen, müssten wir den TAG-Befehl #punkte erweitern: Integer Aux Bef #punkte NachAusf Text 'Das gibt dir den Rang eines' Sei Aux Pktzahl Div Aux 5 Jenach Aux (0) Text 'blutigen Anfängers.' (1) Text 'Stubenhockers.' (2) Text 'Möchtegern-Abenteurers.' (3) Text 'Abenteurer-Gehilfen.' (4) Text 'Amateurs' (5) Text 'hartnäckigen Kämpfers.' (6) Text 'Abenteurers.' (7) Text 'Abenteurer-Großmeisters.' Ende EndeAusf Hier wird dem Spieler gesagt, wie er auf der Punkteskala von 0 bis 350 steht. Alle 50 Punkte erreicht er einen neuen Rang. Achtung: Die Zahlen in der Jenach-Anweisung können nur von 0 bis 255 gehen. Deshalb der Umweg über die Hilfsvariable Aux. | ||
16.2. Komplette Auflistung der PunkteGraham Nelson hat in seinem Inform die Möglichkeit gegeben, sich eine genaue Auflistung der Punkte geben zu lassen. Mit 'full' wird geasgt, wieviel Punkte es wofür gab. Das könnte man auch in TAG machen: Flagge i Flagge j Integer Aux ObjVar xObj RaumVar xRaum Bef komplett * Name 'Auflistung der Punkte' verb 'komplett' 'k' Ausf Text 'Du hast dir deine Punkte folgendermaßen verdient:' Absatz | Ereignisse Schleife i 0 25 Wenn (Pkt.i > 0) dann Text ' [Pkt.i]:[tab]/' Text 99 i Text '/x' Ende Ende | Objekte Lösche Aux Schleife iObj Inkr Aux ObjPkt.iObj Ende Wenn (Aux > 0) dann Text ' [aux]:[tab]verschiedene Gegenstände erlangen' Ende | Räume Lösche Aux Schleife iRaum Inkr Aux RaumPkt.iRaum Ende Wenn (Aux > 0) dann Text ' [aux]:[tab]wichtige Räume erreichen' Ende Text '[x]' EndeAusf Block 99 1 'dir die Hände auf der Herrentoilette waschen' 2 'den Vampir-Vertreter exorzieren' 3 'das "Troll"-Drei-Sterne-Starkbier in einem Zug trinken' [...] 25 'den Apokalypse-Zauber auf den dunklen Thron anwenden' Hier werden die Ereignisse einzeln aufgelistet, und bei den Objekten und Räumen nur die Summe der Punkte. Diese Auflistung funktioniert natürlich nur, wenn PktBasis Null ist und es immer nur positive Teilpunktzahlen gibt. | ||
16.3. Eine frei definierte StatuszeileTAG bietet einige vorgefertigte Angaben für die Statuszeile an, die wohl die gängigen Fälle abdecken. Der Standard ist der Raumname links und die Anzahl der Züge und der Punkte rechts. Für manche Spiele kann es aber interessant sein, eine eigene Statuszeile zu entwerfen. Dazu gibt es den String Statuszeile, der genau wie alle anderen Strings Steuerbefehle in eckigen Klammern enthalten kann. Diese Befehle werden in jedem Zug neu ausgewertet und aktualisiert, so daß man nur zu beginn das Format der Statuszeile festlegen muß, damit sie in jedem Zug angepaßt wird. Zusätzlich muß man #links (oder natürlich #rechts oder #mitte) auf den Wert 7 setzen, damit der String Statuszeile aktiviert wird. Von diesem String werden allerdings nur die ersten 78 Zeichen (bei einer Bildschirmbreite von 80 Zeichen) genommen. Der Autor muß also aufpassen, daß der Text in der Zeile diese Länge nicht überschreitet. Der Rest wird dann abgeschnitten. Die Statuszeile ist immer nur eine Zeile hoch. Mögliche Anwendungen für Statuszeile wären: Sei Statuszeile '[aRaum] ([Planet])[:60][Datum], [Zeit]' Sei Statuszeile '[Name][:40]HP: [HP] [:52]Mana: [MP][:64]Gold:[Gold]' Sei Statuszeile 'Temperatur: [Temp] K [:40]Außendruck [p_ext] bar' Die Tabulatoren mit festen Werten ([:x]) bieten sich hierfür an. | ||
|