Home
PDF-Datei - martin
Contents
1. Erzeuge einen Pilz der im Wald steht Wenn man ihn zum ersten Mal aufhebt soll ein Text ausgegeben werden der sagt wie er mit einem leisen Plopp aus der Erde gezogen wird Wenn man ihn isst soll man in 20 Prozent aller F lle vergiftet werden Die Anweisung um den Spieler sterben zu lassen hei t gestorben Konsequenterweise wird damit auch der momentane Befehl abgebrochen Mann kann mehrere Bedingungen verkn pfen Dazu gibt es die Operatoren und und oder Bedingung a und Bedingung b ist wahr wenn beide Bedingungen erf llt sind Bedingung a oder Bedingung b ist wahr wenn mindestens eine Bedingung erf llt ist x Man kann in T A G keine Bedingungen ineinander schachteln Man kann auch immer nur einen Ausdruck verneinen Folgende Bedingungen muss man also umschreiben a undb aoder Zb a oderb aund Zb 5 4 Objekte manipulieren Bis jetzt haben wir nie Sachen wirklich ver ndert sondern immer nur dem Spieler gesagt dass etwas nicht geht Nun wollen wir anfangen die Objekte wirklich zu manipulieren Wir definieren nun einen Lichtschalter im Keller 30 Obj Lichtschalter Name Lichtschalter an der Wand m vor licht subst schalter m Ort Keller Attr immob Besch Das Symbol einer Gl hbirne ziert den Schalter Erst An einer Wand ist auf etwa ein Meter H he ein Schalter VorAusf dr cken Wenn Keller dunkel dann Text Der Raum wird von einem eigenartigen kalten L
2. 3 son Ende Text Du f hlst dich besser Inkr Gesundheit Text Du f hlst dich auf einmal ziemlich schlecht Dekr Gesundheit Wenn Gesundheit 0 dann Text In der Tat so schlecht dass du auf den Boden f llst und dir den Magen h lst Kurz darauf stirbst du an dem Gift Gestorben Ende Text Du f hlst dich satt Wenn Hunger gt 0 Dekr Hunger st Text Du f hlst dich Ja wie eigentlich Hey du zweitklassiger Programmierer Wirkung kann nur 1 2 oder 3 sein ObjNach selbst Nirwana Attr Stop EndeAusf Obj Name lName Adj Var Ort Obj Name lName Adj Var Ort Hin selbst Wirkung_bekannt blauer_Trank Zaubertrank blau Zaubertrank m blau m blau Wirkung 1 beiMir milchig_Trank Zaubertrank milchig Zaubertrank m milchig m milchig Wirkung 3 in Safe Die Hauptsache ist hier wohl die Vor Ausf hrung f r trinken die die Wirkung der Heiltr nke benutzt Mit dieser Klassendefinition fallen dann die einzelnen Objektbl cke relativ bersichtlich aus Als Vokabular muss hier nur die Farbe angegeben werden Zur Abrundung gibt es ein paar Extras Anstatt eines Strings kann man f r Besch auch einen Ausf hrungsblock angeben Das funktioniert auch bei Text Erst und den Listen Darin Darauf und Dabei und bei Besch und Name f r R ume Die Bewandtnis von Plural und 1Name wird genau im Abschnitt 8 4 des Tutoriums beschrieben Wie man die Wirkung der T
3. sondern etwas Verpflegung hei t Au erdem sieht man hier dass der Plural nicht unbedingt im Plural stehen muss Es geht aber noch weiter Stellen wir uns einmal eine Reihe von B llen vor ObjKlasse Ball Plural B lle p subst ball m b lle p Obj blauer_Ball Ball Name blau Ball m Adj blau Mit dieser und weiteren hnlichen Definitionen s he eine Liste folgenderma en aus In dem Korb siehst Du vier B lle einen blauen Ball einen roten Ball einen bunten Ball und einen schwarz wei en Ball Diese Aufz hlung h tte unser Deutschlehrer wohl mit einer roten Schlange und einem A f r Ausdrucksfehler bedacht Um solch unsch ne Wortwiederholungen bei hnlichen Objekten zu vermeiden kann man den Objekten der Klasse einen Listennamen 1Name geben obj blauer_Ball Ball Name blau Ball m lName blau m Adj blau Nun sieht die Aufz hlung so aus In dem Korb siehst Du vier B lle einen blauen einen roten einen bunten und einen schwarz wei en Wenn beim Plural nach der Geschlechtsangabe nichts angegeben wird oder eine 0 so werden die Objekte die gruppiert werden durchgez hlt und das Zahlwort vorangestellt Wenn der Spieler nun nimm den Ball eingibt so erscheint die standardm ige Nachfrage Welchen Ball Den blauen den roten den bunten oder den schwarz wei en Bei dieser Nachfrage werden auch die Listennamen wenn vorhanden benutzt Ist die Eingabe aber Nim
4. ue in und Zum Zeichen dass es sich um Vokabular handelt benutze ich f r die Substantive gerne Kleinbuchstaben Und schlie lich hat der Zettel einen Ort n mlich vor dem Haus Adventure generieren und laufen lassen Es erscheint Du befindest Dich vor einem kleinen wei en Haus das im Osten liegt Vor dem Haus wachsen wilde Blumen und ein kleiner Trampelpfad f hrt nach Norden in einen Wald Hier ist ein Zettel gt NIMM DEN ZETTEL Du hast nun den Zettel gt LIES IHN Auf dem Zettel steht nichts gt UNTERSUCHE DEN ZETTEL 12 3 Objekte Du kannst an dem Zettel nichts Au ergew hnliches finden gt I Du hast folgendes bei dir einen Zettel gt LEGE DEN ZETTEL HIN Du hast den Zettel hingelegt gt O Das kleine Haus ist irgendwie leer Es gibt keine M bel und die W nde sind kahl Im Westen geht es wieder hinaus Durch eine offene Fallt r im Boden siehst du eine Treppe die nach unten in die Dunkelheit f hrt gt RAUS Vor dem Haus Hier ist ein Zettel gt ENDE Spiel wirklich beenden J N JA Man kann den Zettel aufheben und irgendwo anders wieder ablegen aber viel mehr gibt der Zettel im Moment nicht her 3 2 Der Zettel bekommt Leben Also erweitern wir die Definition des Zettels Obj Zettel Name Zettel m Subst zettel m Ort vor_dem_Haus Besch Der Zettel ist nur ein schmutziger Wisch Es steht allerdings etwas darauf Text Auf dem Ze
5. Erzeuge ein Gef mit einem Rostl semittel Erzeuge weiterhin einen Satz von verrosteten M nzen die zun chst nicht unterscheidbar sind sich aber nachdem sie in den Rostl ser getaucht wurden in verschiedene M nzen verwandeln eine Dublone eine Pesete usw 8 5 Raumklassen So wie es Klassen f r Objekte gibt so gibt es auch Raumklassen Hier werden der Name und die Ausg nge ersetzend vererbt die Ausf hrungsbl cke erweiternd In der Praxis sind Raumklassen eigentlich nur interessant wenn sie Ausf hrungsbl cke besitzen Das Schl sselwort f r eine Raumklasse ist wer wei es RaumKlasse Als kurzes Beispiel soll hier eine Raumklasse f r ein Labyrinth definiert werden in der verhindert wird dass der Spieler Gegenst nde auf den Boden legt um eine Karte zu zeichnen RaumKlasse Irrgarten 57 8 Klassendenken Name Irrgarten Std Wand Attr Laby Besch Der Irrgarten ist dunstig und neblig dicke Schwaden ziehen ber den Boden NachAusf legen Text Bald wabern die Nebelschwaden ber den a0Obj und er verschwindel t f r immer NachAusf Nun muss der Autor nur noch einzelne R ume erzeugen die lediglich Informationen ber die Ausg nge enthalten m ssen Die Definition von Raumklassen funktioniert analog zu den Objektklassen wird aber weitaus weniger benutzt Deshalb soll dieser kurze Absatz zu Raumklassen gen gen Zusammenfassung e Um mehrere hnliche Objekte zu implementieren k nnen
6. Ich will es nicht schnarrt der Troll ObjNach a0Obj bei Troll 81 25 Anhang A L sungen zu den Aufgaben Text Danke sagt der Troll relativ freundlich Setze Troll_bezahlt Stop fragen erz hlen BefAusf sonst Text EndeAusf Stop Der Troll brummelt nur vor sich hin EndeAusf Der Troll brummt unverst ndliches Zeug Flagge D mon Aktion Ausf Inkr D mon Jenach D mon 4 6 12 46 Ende wenn EndeAusf Wenn Wanderer hier Text Der Wanderer geht nach S den ObjNach Wanderer Vor_dem_Haus Wenn Wanderer hier Text Der Wanderer kommt aus dem Wald geschlendert Wenn Wanderer hier Text Sch ne Blumen f hlt sich der Wandersmann ermuntert zu sagen Wenn Wanderer hier Text Der Wanderer betritt das Haus ObjNach Wanderer Im_Haus Wenn Wanderer hier Text Der Wanderer kommt von drau en herein Wenn Wanderer hier Text Der Wanderer saugt demonstrativ die frische Waldluft ein D mon 48 l sche D mon So funktioniert s F r jeden Zug in dem etwas geschehen soll einen Jenach Block schreiben Bei der Textausgabe muss man nat rlich darauf achten dass der Wanderer am selben Ort ist wie der Spieler Wenn D mon bis 48 hochgez hlt wurde f ngt das ganze Spiel von vorne an Dabei sollte sichergestellt sein dass der Wanderer wieder auf der Lichtung ist Z hlvariablen die jeden Zug hoch oder herunterz hlen hei en D
7. so tritt ein Sonderfall in Kraft Es wird beim Untersuchen der Lese Text ausgegeben 3 3 Das Vokabular Es gibt jetzt nat rlich ein Problem der Zettel wird aus stilistischen Gr nden nicht immer Zettel genannt sondern auch dreckiger Wisch und St ck Papier Wenn der Spieler aber diese W rter benutzen will so bekommt er zu h ren Ich kenne Wisch nicht Deshalb erweitern wir das Vokabular des Objekts Zettel Subst zettel m wisch m st ck n Subst papier n fetzen m Adj schmutzig 14 3 Objekte Vor papier Es k nnen Adj ektive Subst antive und Vor w rter definiert werden Die Substantive ben tigen alle eine Genus Kennung die Adjektive und Vorw rter nicht Es k nnen beliebig viele Vokabular Definitionen je Objekt gemacht werden Mit diesen Angeben versucht die T A M dann aus der Eingabe des Spielers ein Objekt zu bestimmen Dabei geht sie so vor a Suche einen Artikel b Suche ein oder zwei Adjektive mit passender Beugung Werden zwei Adjektive angegeben so kann das erste ungebeugt sein also als Adverb benutzt werden c Suche eine m gliche Kombination aus Vorw rtern und Substantiven zu jedem Objekt wobei das Vorwort nicht unbedingt vorkommen muss Vor und Hauptwort k nnen auch durch einen Bindestrich getrennt sein d Ist zu c etwas gefunden worden so suche weitere Kombinationen aus Vor und Hauptw rtern Dabei muss nur c ein Ergebnis bringen Die and
8. Ausf gefolgt von dem Befehl zu dem umgeleitet wird Dazu ein Beispiel Der Spieler kann sagen F lle Wasser ins Glas oder F lle das Glas mit Wasser Der Code sieht dann so aus Befehl f llen Name f llen Verb f lle Syntax dasObj mit demObj Ausf Text Dort kannst du nichts einf llen EndeAusf Befehl f llen_in Name f llen Verb f lle Syntax in dasObj dasObj Ausf f llen Mit der Zeile Aust f llen wird der Befehl f llen_in umgeleitet zu f llen Dabei m ssen die Objekte in der selben Reihenfolge definiert werden und das ist auch der Grund warum die Syntax Zeile von f llen_in etwas komisch aussieht Der Beh lter kommt an 46 7 Befehle erster Stelle der Inhalt an zweiter T A G erlaubt die Eingabe der Objekte in beliebiger Reihenfolge der Fall und die Pr position legen dann fest was gemeint ist Eben haben wir gesehen dass man nach dasObj oder demObj zus tzliche Angaben in Klammern machen kann Diese Angaben sind der Ort und ein Attribut dass ein Objekt besitzen muss Die Ortsangabe muss erf llt sein Ist das Objekt am falschen Ort so bricht der Zug vorzeitig mit einer Meldung des Parsers ab Die Orte sind hier Das Objekt ist im Raum und f r den Spieler zug nglich Wird kein Ort angegeben so muss das Objekt hier sein beiMir Das Objekt ist beim Spieler nichtBeiMir Das Objekt ist im Raum aber nicht beim Spieler inSicht Das Objekt ist sichtbar im Raum aber nicht u
9. Batterien tun es noch und es gibt nichts wozu man sie sonst gebrauchen k nnte EndeAusf Damit haben wir verhindert dass der Spieler die Lampe einschaltet wenn die Batterien leer sind Nun m ssen wir nur noch daf r sorgen dass die Lampe in jedem Zug ihre Batterie etwas entl dt Dazu kann man eine Aktion mit einem Sternchen definieren Das Sternchen hei t F hre diese Aktion nach jedem Zug aus und zwar unabh ngig davon ob der Befehl ausgef hrt wurde Das hei t wenn der Spieler versucht das Haus zu nehmen oder den Tisch zu essen verliert die Lampe ebenfalls Leuchtkraft Also definieren wir die Aktion Aktion Batterieverbrauch Ausf Wenn Lampe ein dann Dekr Brenndauer wenn Brenndauer 1 2 3 5 10 Text Die Lampe wird zunehmend schw cher wenn Brenndauer 0 dann Text Mit einem letzen Flackern gibt die Taschenlampe endg ltig ihren Geist auf ObjZust Lampe aus Ende Ende EndeAusf x Man kann mehrere Bedingungen desselben Typs zu einer abk rzen So bedeutet x 1 3 5 dasselbe wie x 1 oder x 3 oder x 5 Bei verneinten Bedinungen wird mit und verkn pft a0bj fest immobil hei t a0bj fest und aObj immobil 39 6 Variablen 6 5 Textbefehle Nun wird unser Adventure immer variabler und das bringt es mit sich dass die Ausgabe der Texte darauf angepasst wird Wir haben die sogenannten Textbefehle einmal ganz kurz kennengelernt Nun wollen wir sie uns einmal genauer anschau
10. Bildschirm erscheint Wenn es Grafik gibt dann ist diese in einer fast vergessenen Stilrichtung gehalten dem ASCH ismus Was man also bei der u eren Form von Texten ver ndern kann ist das Format Dazu gibt es einige Steuerflaggen die mit einem Doppelkreuz beginnen Absatz beschreibt das Absatzformat 0 bedeutet keine Einr ckung keine Leerzeile zwischen Abs tzen 1 schreibt eine Leerzeile 2 r ckt Abs tze am Anfang um eine Tabulatorweite ein und 3 macht beides Die Voreinstellung ist 1 Eingabe gibt an ob die Eingabe immer in Gro buchtaben 0 oder wie vom Spieler eingegeben 2 erscheint Dasselbe gibt es auch in Fettdruck 1 oder 3 Raumname gibt das Format des kurzen Raumnamens vor der langen Raumbeschreibung an Ist dieser Wert vier so wird kein Raumname vor der langen Raumbeschreibung ausgegeben Das ist die Voreinstellung Werte bis vier bedeuten der Raumname wird in einer Zeile 0 in einem Absatz 2 und als Fettdruck 1 bzw 3 vorangestellt Besch gibt knappe 0 oder ausf hrliche 1 Raumbeschreibungen aus Inv schaltet zwischen dem kompakten Listenformat 0 und der Klartext Liste 1 f r das Inventar hin und her Die Befehle lang und i 66 10 Verschiedenes und Ausblick quer aus normal adv benutzen diese Flagge Die einzige Textauszeichnung die man in T A G vergeben kann ist Fettdruck Fett bedeutet hier allerdings dass eine andere intensivere Farbe zur Textausgabe verwendet wi
11. Objektklassen definiert werden die nicht im Spiel als Objekt auftauchen aber als Vorbilder f r tats chliche Objekte dienen e Die Eigenschaften der Klasse werden auf Objekte dieser Klasse bertragen man spricht hier von Vererbung e Ausf hrungsbl cke und Vokabular werden beim Vererben erg nzt alle anderen Eiganschaften ersetzt e Zu jedem Objekt k nnen bis zu acht Variablen definiert werden Durch eine Definition derselben Variablen bei anderen Objekten kann man so flexibel auf diese Werte zugreifen e In T A G k nnen Klassen auch dazu benutzt werden um Objekte bei Listen zu gruppieren oder um eine Anzahl von identischen Objekten zu beschreiben e Es k nnen auch Klassen f r R ume erzeugt werden Verweise e Handbuch Kapitel 3 3 Klassen von Objekten und R umen e Handbuch Kapitel 11 Aufz hlungen und Beschreibungen e Objektklasse Edelstein in karn adv 58 9 Personen und Kommunikation 9 1 Personen sind Objekte Zun chst einmal sind Personen oder NPCs Non Player Characters wie sie auch gerne genannt werden in T A G gew hnliche Objekte Sie besitzen nur zus tzlich das Attribut Person Das bedeutet dass man sie nicht aufheben kann und dass sie in der Raumbeschreibung gesondert am Schluss erw hnt werden Eine Person unterscheidet sich damit nicht allzusehr von den anderen Objekten im Spiel und all das was eine Person ausmacht n mlich Gespr che oder Verhaltensmuster muss mehr oder weniger m hsam program
12. Raum Name Std so Besch Raum Std Name Besch Antwort Besch Antwort Besch obj Name vor subst Zust Ort Besch Vor_dem Haus Vor dem Haus nur_N_oder_O Gegen_Wand Gegen_Wand Im_Haus Lichtung Im_Haus Gegen_Wand Vor_dem Haus In dem kleinen Haus nur N_oder_O Dort ist das Geb sch zu dicht Es geht nur nach Norden oder nach Osten ins Haus Gegen_Wand Dort ist leider eine Wand Taschenmesser Taschenmesser m 5 taschen klapp messer m geschlossen BeiMir Dein Taschenmesser hat einen Hirschhorngriff und ist im Moment 69 Anhang A L sungen zu den Aufgaben Taschenmesser Zust Einer der Zust nde offen geschlossen oder abgeschlossen bewirkt dass man diesen Gegenstand ffnen und schlie en kann Die 5 hinter dem m f r Maskulinum bewirkt dass das Messer nicht das Taschenmesser sondern dein Taschenmesser hei t Mehr dazu im Handbuch Der Ausdruck in eckigen Klammern bedeutet dass der Zustand im Klartext also offen oder geschlossen je nach dem momentanen Zustand des Messers ausgegeben wird Das ist ein Vorgriff auf Kapitel 6 Obj Name vor subst Ort Zust Attr obj Name subst Ort Attr Besch Obj Name adj vor subst Ort Attr Besch Dose Brotdose f brot blech dose f in Rucksack geschlossen Beh lter Tomate Tomate f tomate f in Dose essbar Die Tomate ist rot rund bi fest und sie hat oben
13. Taschenmesser sauber knapp ber dem Boden ab EndeAusf Obj Blechkasten Name Blechkasten m vor blech subst kasten m kiste m Ort Keller Attr Beh lter Zust geschlossen Besch Vorne auf dem Blechkasten ist ein gro er roter Knopf Darin Liste 0 ist im Blechkasten VorAusf ffnen schlie en ffnen_mit aufschlie en Stop Das geht so nicht EndeAusf Obj roter_Knopf Name rot Knopf auf dem Blechkasten m adj rot gro Subst knopf m Ort auf Kasten VorAusf dr cken Wenn Blechkasten offen dann ObjZust Blechkasten geschlossen Text Klick Der Kasten schnappt wieder zu sonst ObjZust Blechkasten offen Text Klick Der Kasten schnappt auf 74 15 Anhang A L sungen zu den Aufgaben Ende Stop EndeAusf Obj W scheschacht Name W scheschacht m vor w sche subst schacht m Ort Im Haus Attr immobil Beh lter Besch Schwarz und gro m ulig so schluckt der W scheschacht alles was man ihm gibt Erst In der Nordwand ist eine g hnende schwarze ffnung ein W scheschacht NachAusf empfangen Text Du legst den a0bj in den Schacht und er rutsch t bald au er Sichtweite ObjNach a0Obj Keller EndeAusf 16 Geschenkt oder Zuerst der Korb Obj W schekorb Name Weidenkorb m vor weiden w sche subst korb m k rbchen n Attr Liege Sitz In_Obj Beh lter Vol 100 Ort Keller Besch Der Korb ist f r einen W schekorn verh ltnism ig g
14. anzeigen lassen In jedem Fall bringt schau dich um oder JI die komplette Beschreibung Der Text erscheint nicht so wie er eingegeben wurde die Umbr che sind 2 Eine virtuelle Welt woanders T A M behandelt die Umbr che aus der adv Datei als Leerzeichen und bricht automatisch bei 80 Zeichen um Wenn man versucht in eine Richtung zu gehen in der keine Ausg nge definiert werden sagt T A M Du kannst nicht in diese Richtung gehen Genau diese eint nige Aussage wollen wir ndern denn sie erinnert doch sehr stark an die schlechte alte Zeit als die Antwort auf fast alles Das geht leider nicht war Dazu definieren wir eine so genannte Antwort Antwort Unterholz Besch In dieser Richtung ist das Unterholz zu dicht Der eizige Weg ist ein Trampelpfad nach S den Diese Antwort ist wieder ein Definitionsblock f r sich darf also nicht innnerhalb einem der anderen Bl cke stehen Die einzige Angabe ist die Beschreibung Nun ndern wir die Definition der Lichtung ab auf Raum Lichtung N Unterholz NO Unterholz O Unterholz so Unterholz SW Unterholz W Unterholz NW Unterholz S Vor_dem Haus Name Auf einer Lichtung Besch Dies ist eine kleine Lichtung in einem Laubwald der haupts chlich aus Eichen und einigen Birken besteht Dichtes Unterholz macht den Wald undurchdringbar nur ein Trampelpfad f hrt nach S den Dann erscheint jedesmal wenn man von der Lichtung aus in eine der Himmelsrich
15. die Objekte oder eine Datei f r jeden Abschnitt im Adventure Die Datei normal adv ist im Paket enthalten und definiert einige zus tzliche Befehle sowie zw lf Grundrichtungen n mlich die acht Himmelsrichtungen hoch runter herein und heraus Die dort festgelegten Richtungen kann man jetzt in der Raum Definition angeben Die Zeile O Im Baus bedeutet Von hier aus geht es nach Osten zu dem Ort mit der ID Im Baus Mit diesen Definitionen erhalten wir eine Landschaft die ungef hr so aussieht Lichtung Vor dem Im Haus Haus Die Reihenfolge der Angaben zu jedem Raum ist brigens egal Alles was nach der Zeile die mit Raum beginnt definiert wird geh rt zum selben Raum egal ob es Leerzeilen dazwischen gibt oder nicht Man nennt das einen Definitionsblock Dieser Block h rt automatisch dann auf wenn ein anderer beginnt was in unserem Fall die n chste Raum Definition ist Aufgabe 1 Erweitere die Raum Definitionen so dass man vor dem Haus mit rein ins Haus gelangt und von dort mit raus wieder hinaus 2 3 Einige Verfeinerungen Wer mittag test undtam test unser neues Opus schon ausprobiert hat dem ist beim Umherwandern in unserer virtuellen Welt bestimmt einiges aufgefallen Beim ersten Betreten des Raums wird der lange Text Besch angegeben danach nur noch der kurze Name Dieser Modus hei t knapp Mit ausf hrlich kann man sich bei jedem Betreten eines Raums die ganze Beschreibung
16. einen kleinen gr nen Kranz das unterscheidet sie nicht von anderen Tomaten Wer jetzt hier eine Bemerkung ber Tomaten aus Holland erwartet hat Pech gehabt Ei hartgekocht Ei n hart gekocht hartgekocht 8 Minuten ei n in Dose essbar Hartgekocht acht Minuten ungef hr 5 Einfach ein Objekt mit dem Attribut Kleidung definieren Obj Name adj vor subst Ort Attr Anorak Anorak m rot wind anorak m jacke f in Rucksack Kleidung 70 Besch Anhang A L sungen zu den Aufgaben Eine rote wind und wetterfeste Jacke aus Mega Duro Tex tm 6 Damit man die Gurke sehen kann muss man einen Beh lter definieren der transparent ist obj Name vor subst Ort Attr Zust Besch Darin Obj Name vor subst Ort Attr Besch Raum Besch Attr obj Name adj subst Ort Attr Darauf Einmachglas Einmachglas n einmach einweck glas n in Rucksack Beh lter transparent geschlossen Von meiner Oms In der tr ben Br he im Einmachglas schwimm t 0 liste 0 Gurke Gew rzgurke f gew rz gurke f g rkchen n in Einmachglas essbar Diese Spezialit t aus dem Spreewald ist gr n und picklig aber trotzdem nicht absto end Keller Dieser Keller riecht modrig die feuchten W nde sind mit Moos bewachsen Das was von den verfaulten Regalen briggeblieben ist ist meist leer Eine intakte Holztreppe f hrt zur ck nac
17. liegt Vor dem Haus wachsen wilde Blumen und ein kleiner Trampelpfad f hrt nach Norden in einen Wald gt ENDE Spiel wirklich beenden J N JA Da wir nur einen Raum definiert haben kennt T A M auch au er den von vorneherein in T A G definierten Verben wie gehe schaue usw nichts noch nicht einmal die Richtungen 2 2 Eine kleine Welt Also erweitern wir unsere Definition DAT normal adv Raum Vor_dem Haus Name Vor dem Haus O Im Haus N Lichtung Besch Du befindest Dich vor einem kleinen wei en Haus das im Osten liegt Vor dem Haus wachsen wilde Blumen und ein kleiner Trampelpfad f hrt nach Norden in einen Wald Raum Im Haus W Vor_dem Haus Name In dem kleinen Haus Besch Das kleine Haus ist irgendwie leer Es gibt keine M bel und die W nde sind kahl Im Westen geht es wieder hinaus Raum Lichtung S Vor_dem Haus Name Auf einer Lichtung Besch Dies ist eine kleine Lichtung in einem Laubwald der haupts chlich aus Eichen und einigen Birken besteht Dichtes Unterholz 2 Eine virtuelle Welt macht den Wald undurchdringbar nur ein Trampelpfad f hrt nach S den Ende Mit dieser Definition kann man nun in drei R umen herumlaufen Die Anweisung DAT normal adv liest die Datei normal adv ein als ob sie Bestandteil der Hauptdatei test adv w re Mit diesem Befehl kann man sein Adventure unterteilen Denkbar w re z B eine Datei f r die Befehle eine f r
18. mmern wir uns erst einmal um die Reaktion der Person auf die Aktionen des Spielers Dazu gibt es zwei eigene Ausf hrungsbl cke VorReakt und NachReakt Diese Bl cke funktionieren wie die altbekannten Vor und NachAusf mit dem Unterschied dass keins der erw hnten Objekte die Person sein muss Mit anderen Worten diese Bl cke k nnen eine Reaktion auf jede beliebige Handlung des Spielers sein Erweitern wir also die Definition um ein paar Verhaltensmuster Obj Wanderer VorReakt gehen Text Tsch ss winkt mir der Wanderer hinterher Absatz EndeAusf NachReakt gehen Wenn aRaum besucht dann Text Der Wanderer nickt mir kurz zum Gru zu sonst Text Guten Tag sagt der Wanderer Sch n dass es noch mehr Freunde der Natur hier gibt Ende hinlegen Text Wieso werfen Sie das weg fragt der Wanderer ver rgert Tun Sie ihren M ll doch in einen Beutel oder Ihren Rucksack singen springen fluchen Text Der Wanderer schaut mich etwas mitleidig an EndeAusf Die Ausf hrungsbl cke VorAusf und NachAusf funktionieren bei Personen nat rlich so wie gehabt VorAusf gegeben Bed a0bj e bar Nein danke sagt der Wanderer h flich Text Hmm lecker danke sagt der Wanderer und kaum hat er den a0Obj in den H nden verschlingt er ihn mit gro em Appetit ObjNach a0Obj Nirwana Stop EndeAusf x Tats chlich k nnen alle Objekte die Bl cke VorReakt und Nac
19. u ae een 393 8 5 EE 31 9 Personen und Kommunikation nenne 59 9 1 Personen sind Obere nee eek 59 92 Reaktionen ea 59 9 3 Gesprache TUNEN see een 6l 9 4 Eigenst ndige Handlungen anderer Personen nun a 62 10 Verschiedenes und Aushlick cn 64 10 1 Der spieler anne ee 64 10 2 ee 64 10 3 Das Ende des Spiels ea een een 65 10 4 ee eek 65 10 5 ENER 66 10 6 AED ee 67 Anhang A L sungen zu den Aufgaben 00ssse0ses0nss0s0s000000000000000000n0000000000000000000000000000 69 1 Einleitung 1 1 ber dieses Tutorium Dieses Tutorium ist als Erg nzung zum Benutzerhandbuch von T A G gedacht f r diejenigen die sich nicht gerne lange mit Papierkram aufhalten sondern direkt loslegen m chten Es enth lt viele Beispiele und Tips zum Schreiben von Text Adventures mit T A G III Ab und zu gebe ich auch ein paar Kommentare ber die Gestaltung von Adventures in denen ich meine Ansichten vertrete Diese subjektiven Bemerkungen sind mit drei Strichen gekennzeichnet x Ein Kreuz bedeutet dass es hier Kniffe f r Fortgeschrittene gibt oder Passagen die vielleicht f r manche interessant sind aber nicht direkt weiterf hren Aufgabe Ab und zu werden Aufgaben gestellt die am Ende des Tutoriums beantwortet werden Die Anzahl der Sterne gibt den Schwierigkeitsgrad an kein Stern ist eine einfache bungsaufgabe zwei Sterne sind eine Kopfnuss 1 2 Die ersten Schritte Die ersten Schritte sind f r Leute gedacht die mit MS DOS und Window
20. um Wert dekr Variable Wert Erniedrigung um Wert mult Variable Wert Multiplikation mit Wert div Variable Wert Division durch Wert mod Variable Wert Rest der Division durch Wert Diese braucht man nicht so h ufig au er inkr und dekr vielleicht Beiinkr und dekr kann man den Wert auch weglassen er ist dann eins Wenn man Flaggen nur als Schalter benutzt kann man auch folgende Abk rzungen benutzen setze Flagge gibt der Flagge den Wert 1 36 6 Variablen l sche Flagge gibt der Flagge den Wert 0 Nat rlich kann man Variablen auch vergleichen Dazu gibt es die Bedingung Variable Wert die dann erf llt ist wenn der Wert der Variable und der abgegebene Wert gleich sind Wert kann auch hier eine andere Variable sein aber man muss wieder aufpassen dass man nicht Apfel mit Birnen vergleicht F r Zahlenwerte gibt es auch die beiden Bedingungen x lt y und x gt y die pr fen ob x kleiner oder gr er als y ist Diese Bedingung kann man auch f r Objekte und R ume verwenden auch wenn sie keinen gro en Sinn macht Sie vergleicht dann ob Objekt Raum x vor Objekt Raum y definiert wurde was aber im allgemeinen egal ist Aufgabe 18 Erweitere die Vase so dass man sie nirgendwo abstellen kann au er auf dem Tisch T A G bietet au erdem die M glichkeit Variablen zuf llig zu belegen Um zum Beispiel den Wurf eines W rfels zu simulieren kann man Zufall A
21. 4 Kilobytes ffnen und hat keine Ersetzen Funktion Ansonsten schnell und zuverl ssig Wordpad kann gro e Dateien ffnen Wordpad unterst tzt Text Formate wie Fettdruck Kursive usw von denen man f r T A G keinen Gebrauch machen sollte Beim Abspeichern immer die Option Nur Text w hlen Mich st rt dass die voreingestellte Schrift Times ist f r reine ASCII Editoren bevorzuge ich Schriften mit fester Breite Word StarWrite und hnliches ist zum Erstellen von Quelltext absolut unbrauchbar Diese Textverarbeitungsprogramme erstellen formatierten Text und sind viel zu unhandlich f r unsere Bed rfnisse III Ich benutze f r meine Programme und Adventures den Texteditor Proton von Ulli Meybohm der ber umfangreiche Funktionen verf gt und nahezu unbegrenzten Textspeicher hat Ihr findet ihn unter http www meybohm de proton html Im Netz gibt es aber bestimmt noch andere gute Editoren so dass jeder seinen Leib und Magen Schreibwerkzeug finden kann OK wir haben jetzt den Quelltext vor unseren Augen Wenn wir einmal ein bisschen herumschm kern fallen uns folgende Grundelemente auf Schl sselw rter wie Obj Raum Name oder Besch die sich oft wiederholen Ausgabetexte die in einfache Anf hrungszeichen gesetzt sind und die ber mehere Zeilen gehen k nnen Diese Texte erscheinen irgendwann einmal auf dem Bildschirm Vokabeln sind ebenfalls in einfache Anf hrungsstriche gesetzt Sie enthalten aber in de
22. Obj Mingvase VorAusf hinlegen hineinlegen Bed a0bj2 Tisch Dort sollte ich ein so wertvolles Artefakt nicht abstellen EndeAusf Bef XyZZy 76 Anhang A L sungen zu den Aufgaben Name Das Wort xyzzy sagen Verb xyzzy Ausf Bed aRaum Im_Haus Nichts passiert Text Dir wird kurz schwindlig und deine Umgebung verschwimmt Du befindest Dich pl tzlich woanders GeheZu Im_Haus EndeAusf Hier k nnen nat rlich keine Befehle in runden Klammern angegeben werden da es sich um den Hauptausf hrungsblock des Befehls selbst handelt 20 Bef debug_status Name status Verb status Syntax dasObj Allg Ausf Text aObj Gewicht a0Obj Gew x Volumen a0bj Vol x Wenn a0Obj fest immobil Text unbeweglich x Wenn a0Obj Beh lter Text Beh lter x Wenn aObj Ablage Text Ablage x Wenn a0bj normal Text Zust a0bj x Aus normal adv geklaut Text Ort Wenn a0Obj BeiMir Text in der Band Wenn a0Obj Angezogen Text angezogen Wenn a0Obj in Nirwana Text im Nirwana Wenn a0Obj in Nirgendwo Text nirgendwo MutterObj xObj a0Obj Wenn x0bj 0 dann StammRaum xRaum aObj Wenn xRaum gt 0 und xRaum lt Nirwana Text xRaum sonst Wenn a0bj auf x0bj Text auf dem xObj Wenn a0Obj in x0bj Text in dem xObj Wenn a0Obj bei x0bj Text bei dem xObj Wenn a0Obj an x0bj Text an dem xObj Ende Text Isi Wenn a0Obj bewegt T
23. T A G Tutorium Martin Oehm T A G Tutorium T A G Tutorium Inhaltsverzeichnis 1 Emleitune an ee 1 1 ber die EE 1 1 2 RTE EE EE 1 1 3 DPerQuelltex E 3 2 Em EN a a Al Es geht endichloS E 6 2 2 Bine kleine Well ee 7 2 3 Einige EE ee ee ee 8 2 4 Im Drake een 10 Kei nee SN Unsererstes Objekt cim E 12 32 Der Zettel bekommt Leben eebe 13 3 3 Das TEE 14 3 4 Zust ndeund Attribute a ae 16 4 Emige besondere A nennen 4 1 Beh lter rennen ee 18 42 Ablagen und feste Objekte asien 19 4 3 Das E E career 21 4 4 Sitze Lieven e ae 22 4 5 RE EE 23 i 3 ADWEISUNSEN E E E E S ach Ein Greet 25 52 Tns Geschehen ehfre fen ee 26 S Bedingungen und Suerstruknien sauna 28 5 4 Objekte manipulere Mascio a a E R O E E e 30 6 Marbleusseeeetestersgeseeesegeiteegeeee Eege 6 1 Vorhandene Ee Eet EE 35 6 2 Variablen definieren und andern 35 6 3 Sachverhalte merken mit Vaniablen a u s 503 88 2 ee 37 6 4 Zeilabhaineive Erernisse eisernen 39 6 5 dere leegen 40 6 6 Schleifen nenne nasser 42 K N TE EI TEE Tel Eigene Befehle definieren aussen 44 1 2 Vokabular von Befehlen 4 u u 0s ENEE 46 7 3 E ET EE 48 7 4 Pseudobefe ble enisinia gegen Genen Giedi geeeege GE 48 T A G Tutorium T A G Tutorium Inhaltsverzeichnis 8 Klass endenke Mussina nana R A 51 8 1 Klassen von Objekten ass aes eelere 51 8 2 Verst BUNE een 52 8 3 Variablen fUr Obiekle ensure 54 8 4 Ordnung hallen mit Kassel
24. Wert des Gewichts eingesetzt werden soll Die Ma einheit spielt dabei keine Rolle sie sollte nur einheitlich sein Der Spieler kann nat rlich nur ein bestimmtes Gewicht mit sich tragen Dieses zul ssige H chstgewicht wird in der Variable maxGew gespeichert Dabei wird nat rlich das Gewicht der Dinge die der Spieler angezogen hat und die sich in einem Beh lter den er tr gt befinden miteinberechnet Denn eine Ritterr stung oder ein Goldnugget im Rucksack ziehen einen doch ganz sch n runter Eine weitere Variable InvGew zeigt an wieviel der Spieler noch mit sich schleppen k nnte Das hei t InvGew ist maxGew minus dem Gewicht das er mit sich schleppt Ist InvGew null ist der Spieler am Limit ist es maxGew so schleppt der Spieler nichts oder nur Gegenst nde mit dem Gewicht 0 mit sich herum Neben dem Gewicht kann man jedem Gegenstand mit Vol xxx ein Volumen von 0 bis 255 zuordnen Das Konzept des Volumens ist etwas anders als das des Gewichts denn das Volumen ist nicht nur ein Ma f r das physikalische Volumen sondern auch f r die 21 4 Einige besondere Objekte Sperrigkeit eines Objekts Die Variablen hei en analog zu InvGew und maxGew hier InvVol und maxVol Bei der Berechnung von InvVol werden wiederum angezogene und in anderen Objekten befindliche Gegenst nde nicht mit einbezogen Logisch denn ein Gegenstand in einem Beh lter vergr ert dessen Volumen nicht Und ein aufgezogener Hut ist nicht sper
25. ack erst bevor du ihn aufsetzt ObjZust Rucksack geschlossen Ende EndeAusf Hier wird dem Spieler mitgeteilt dass er den Rucksack implizit zumacht bevor er den Rucksack aufsetzt Es ist eine Konvention dies dem Spieler in runden Klammern mitzuteilen Die Anweisung ObjZust weist dem genannten Objekt dann einen neuen Zustand zu Es gibt brigens den Zustand normal der bedeutet kein besonderer Zustand Aufgabe 13 ndere den Pilz so dass er beim ersten Mal nur genommen werden kann wenn der Spieler das Taschenmesser bei sich hat und dieses offen ist Nat rlich muss eine Meldung kommen dass der Pilz abgeschnitten wurde Aufgabe 14 Definiere einen Blechkasten der nicht auf herk mmliche Weise ge ffnet und geschlossen werden kann Stattdessen besitzt dieser Kasten einen Knopf der ihn ffnet und schlie t Wir haben nun den Zustand und die Attribute der Objekte ver ndert eine Sache fehlt noch der Ort Hierzu hei t die Anweisung ObjNach Objekt Ort Obj Lichtschalter VorAusf dr cken Wenn Keller dunkel dann Text Der Raum wird von einem eigenartigen kalten Licht durchflutet das von den W nden herzukommen scheint AttrWeg Keller dunkel Wenn Ring in nirgendwo dann Text Durch das gleichm ige Licht entdeckst du in einer Ecke des Kellers einen Ring den du vorher mit deiner Funzel nie entdeckt h ttest ObjNach Ring Keller Ende sonst Text Der Keller ist jetzt wieder so stockfinster wie zu
26. ag Beschreibung Test Adventure und Erweiterung tag eingeben mit Neu eine neue Aktion open generieren und diese mit tam exe verkn pfen Nun sollte sich bei jedem Doppelklick auf eine tag Datei die T A M mit dem entsprechenden Adventure ffnen Beschr nken wir uns erst einmal auf die herk mmliche Art die explizite Eingabe im DOS Fenster Nachdem Ihr ein wenig mit Karn herumgespielt habt k nnen wir uns unserem 1 Einleitung eigentlichen Ziel zuwenden dem Erstellen von Adventures Dem Paket liegt der Quelltext vonkarn tag bei Er hei t karn adv Der Quelltext ist eine reine Textdatei in der mehr oder weniger im Klartext die einzelnen Bestandteile des Adventures beschrieben werden Der Text Adventure Generator erzeugt aus diesem Quelltext eine tag Datei die dann mit der T A M gespielt werden kann x Warum spielt man nicht direkt die adv Datei Dadurch dass die adv Datei reiner Text ist ist sie gr er als die tag Datei in der die Daten des Adventures in kompakter bin rer Form abgelegt sind Au erdem werden die Texte in der tag Datei verschl sselt so dass neugierige oder ungeduldige Spieler keine Hinweise aus der tag Datei entnehmen k nnen w hrend ihnen in der adv Datei alles mehr oder weniger klar dargelegt w rde Das probieren wir direkt einmal aus Dazu erstellen wir zun chst eine Sicherheitskopie des tag Adventures gt copy karn tag karn_bak tag da das Original berschrieben wird Nun erstellen wir
27. als nehmen Man kann den Befehlen auch Ausf hrungsbl cke vor oder nachschalten Zum Beispiel unser neues Verb drehe R dchen auf Nummer Ein gutes Synonym hierf r w re stelle oder setzte R dchen auf Nummer Dieses Vokabular geh rt aber bereits zum Befehl hineinlegen Also erweitern wir den Befehl Bef hineinlegen VorAusf wenn a0Obj2 Zahl dann Ausf drehen_auf a0bj a0bj2 Stop Ende EndeAusf Damit checken wir ob das zweite Objekt eine Zahl ist Wenn ja wird drehen_auf ausgef hrt und der Befehl hineinlegen wird mit Stop abgebrochen 7 4 Pseudobefehle Eine Sache die den Code f r Objekte vereinfacht aber auf Anhieb nicht immer leicht zu verstehen ist sind Pseudobefehle Zu jedem Befehl kann ein Pseudobefehl definiert werden z B mit Pseudo getroffen werfen wobei werfen ein bereits definierter Befehl ist Obwohl zu jedem Befehl ein Pseudobefehl erzeugt werden kann machen Pseudobefehle nur Sinn wenn ein Befehl zwei Objekte ben tigt Der Sinn des Pseudobefehls ist es n mlich nur Aktionen in der Vor oder NachAusf von Objekten abzufangen wenn dieses Objekt das zweite erw hnte Objekt ist also a0b32 48 7 Befehle Es gibt eine Variable aBef die den durchzuf hrenden Befehl enth lt Dies ist die Variable die in den Vor und NachAusf in runden Klammern abgefragt wird Sie kann nie einen Befehl enthalten der auf einen anderen umgeleitet wurde der Wert von aBef ist den der umgeleitete B
28. andwich befinden Oder was Du sonst gerne isst Aufgabe 5 Ein Anorak w re f r eine Expedtion auch nicht schlecht Erzeuge einen der zu Beginn des Spiels im Rucksack ist Man kann die Objekte im Rucksack nur sehen wenn dieser offen ist Allgemeiner kann man Objekte in einem Beh lter sehen wenn er nicht geschlossen ist denn ein Beh lter muss nicht unbedingt verschlie bar sein und was in einem Eimer oder einem Karton ohne Deckel ist kann man immer sehen Mit dem Attribut transparent kann man Beh lter aber durchsichtig machen Man kann dann Objekte im transparenten Beh lter sehen aber nicht anfassen Aufgabe 6 Definiere ein geschlossenes Einmachglas in dem sich zur Abrundung unserer Vesper eine Essiggurke befindet Man kann die Gurke nat rlich durch das geschlosene Glas sehen Der Befehl essen ist kein Standard T A G Befehl Er ist aber in normal adv die wir ja in unserem Text Adventure benutzen enthalten Zus tzlich steht uns also ein Attribut essbar zur Verf gung Um in den Genuss unserer Marschverpflegung zu kommen sollten wir also der Tomate der Gurke und dem ganzen Zeug das Attribut essbar verpassen 4 2 Ablagen und feste Objekte Genauso wie Objekte in anderen enthalten sein k nnen k nnen sie auch auf anderen liegen Dazu gibt es das Attribut Ablage Obj Tisch Name klein Holztisch m Adj klein grob wackelig Vor holz Subst tisch m Besch Grob zusammengezimmert und etwas wackelig Att
29. as es mit dieser Gegend auf sich hat Sei maxInv 5 Ich kann 5 Teile tragen x Sei maxVol 80 bis zu einem Volumen von 80 geheZu vor_dem_Haus EndeAusf In dieser Aktion tauchen viele neue Elemente auf Zun chst sehen wir dass die Aktion mit Ausf beginnt und mit EndeAusf endet Alles dazwischen ist bis jetzt Neuland Die erste Anweisung lautet Text gefolgt von einem ber mehrere Zeilen gehenden Text in einfachen Anf hrungszeichen Diese Texte kennen wir ja schon und die Anweisung Text hei t einfach nur gib diesen Text formatiert auf dem Bildschirm aus wer h tte das gedacht Innerhalb des Textes tauchen wieder die kryptischen Zeichen innerhalb der eckigen Klammern auf die wir von der Liste der Gegenst nde in einem anderen Objekt bereits kennen Dies sind sogenennte Textbefehle Hier wird folgendes verwendet 25 5 Anweisungen f Fettdruck ein n Normaldruck ein d h Fettdruck aus x Unformatierter Zeilennumbruch d h eine neue Zeile Ein weiterer Textbefehl ist auch wenn man das nicht gleich auf den ersten Blick sieht die Leerzeile die wie wir wissen einen Absatz bedeutet Wenn nichts anderes definiert ist hat der Absatz in T A M eine Leerzeile ohne nachfolgende Einr ckung Eine andere M glichkeit einen Absatz zu schreiben w re im Flie text x Da die Texte zwischen Apostrophen stehen muss ein Apostroph umschrieben werden dazu kann man das Prozentzeichen benutzen oder eine der Notat
30. aum da ist damit der Spieler nicht im Nirgendwo ist Das Wort Ende beendet den Quelltext alles was danach geschrieben wird wird nicht mehr untersucht Der Name des einzigen Raumes innerhalb von T A G ist Vor_dem_Haus Jeder Raum muss solch einen Namen besitzen mit dem man sich im weiteren Quelltext auf ihn beziehen kann Solche Namen oder oft auch Ds genannt k nnen bis zu 36 Zeichen lang sein und d rfen nur Buchstaben Ziffern und den Unterstrich enthalten der oft dazu verwendet wird Leerzeichen darzustellen Das erste Zeichen in der ID darf keine Ziffer sein Gro und Kleinschreibung ist bei IDs allerdings egal genauso sind die Umlaute und ihre Umschreibung mit ae oe und ue sowie ss und identisch Das hei t dass suedstrasse S dstra e und S DSTRASSE denselben Ort meinen aber verschieden von S d_Stra e sind Wie diese ID verwendet wird wird gleich gezeigt Dieses Adventure ist allerdings noch sehr langweilig Ein Aufruf von tam test bringt dies an den Tag Du befindest Dich vor einem kleinen wei en Haus das im Osten liegt Vor dem Haus wachsen wilde Blumen und ein kleiner Trampelpfad f hrt nach Norden in einen Wald gt I Du hast nichts bei dir 2 Eine virtuelle Welt gt N Ich kenne N nicht gt U HAUS Ich kenne Haus nicht gt GEHE NACH OSTEN Ich kenne Osten nicht gt SCHAU DICH UM Du befindest Dich vor einem kleinen wei en Haus das im Osten
31. chlecht definiert werden Jedes Objekt kann beliebig viel Vokabular 16 3 Objekte haben e Attribute sind Eigenschaften die ein Objekt hat oder nicht e Objekte haben zus tzlich einen Zustand eine Eigenschaft die einen Wert aus einer Anzahl von definierten Zust nden ein aus offen kaputt usw annehmen kann Verweis e Handbuch Kapitel 3 2 Objekte 17 4 Einige besondere Objekte 4 1 Beh lter Bisher haben wir Objekte kennengelernt die in R umen liegen und die beim Spieler sind Manchmal befinden sich aber auch Objekte in anderen Objekten Objekte die andere aufnehmen k nnen hei en Beh lter Beh lter ist ein Attribut das einem Objekt gegeben werden kann F r unser Test Adventure geben wir dem Spieler einen Rucksack mit obj Rucksack Name Wanderrucksack m Adj oliv grau olivgrau Vor wander seiten Subst sack m rucksack m taschen p Ort angezogen Zust geschlossen Attr Beh lter Kleidung Besch Es ist ein altmodischer Rucksack aus olivgrauem Segeltuch mit vielen Seitentaschen und Lederriemchen Dieser Rucksack kann dank seines Beh lter Attributs andere Objekte aufnehmen Au erdem erh lt er das Attribut Kleidung damit man ihn aufziehen kann Zu Beginn des Spiels hat der Spieler den Rucksack auf dem Buckel was durch Ort angezogen angegeben wird Angezogen ist ein Speziallfall von Beimir und wird von T A G anders gehandhabt Probiert es einmal aus und gebt als ersten Befehl Le
32. d dieselbe Eigenschaft besitzen Eine Variable nur f r ein Objekt zu definieren macht wenig Sinn dann sollte man lieber eine globale Flagge benutzen Aufgabe 22 Definiere eine Klasse von Zaubertr nken die verschiedene Farben und eine der drei Wirkungen Heilung Gift oder S ttigung haben Es gibt brigens Variablen f r Objekte die wir bereits kennen und die alle Objekte besitzen Objekt Gew und Objekt Vol Zu jedem Objekt k nnen bis zu acht zus tzliche Variablen angegeben werden R ume k nnen in T A G keine Variablen besitzen 8 4 Ordnung halten mit Klassen Objektklassen bieten einen weiteren sch nen Effekt Man kann in Aufz hlungen wie sie z B in der Liste der Dinge in einem Raum oder einem Beh lter auftauchen Objekte einer Klasse zusammenfassen Dazu gibt es den Plural der zus tzlich zum Namen definiert werden kann Da unsere Verpflegung individuelle Namen besitzt muss der Name der Klasse nicht angegeben werden Wir ndern die Definition der Verpflegung auf ObjKlasse Verpflegung Plural Verpflegung f 3 und schon sieht die Beschreibung des Rucksacks folgenderma en aus 55 8 Klassendenken Im Moment sind etwas Verpflegung ein Landj ger ein Butterbrot und ein nicht mehr ganz frischer Apfel eine Landkarte und ein Anorak im Rucksack Wenn die Liste lang ist finde ich diese Darstellung bersichtlicher Die 3 nach dem f r feminin bewirkt brigens dass es nicht eine Verpflegung
33. dem gt Zeichen Befehle eingeben kann Zun chst wechseln wir das Verzeichnis mit gt cd tag wenn das Paket nach ce tag entpackt wurde Dann starten wir die Text Adventure Maschine mit gt tam karn und k nnen dann das Test Adventure Die H hlen von Karn spielen Mit F1 oder Ende geht es wieder heraus und es erscheint wieder der DOS Prompt Auf etwas elegantere Art Man kann in so gennanten Batch Dateien DOS Befehle speichern die dann beim ffnen dieser Datei ausgef hrt werden So erstellen wir in tag mit Neu Textdatei eine neue Textdatei und benennen sie uminkarn bat Die Warnung von Windows ignorieren wir und dr cken beherzt Ja Dann bearbeiten wir sie indem wir aus dem Pull Down Men das beim Klick mit der rechten Maustaste auf die Datei erscheint Bearbeiten w hlen Es ffnet sich ein Texteditor mitkarn bat Diese Datei ist noch leer und wir schreiben einfach unseren Befehl tam karn hinein und speichern die Datei ab Beim Doppelklick aufkarn bat wird dann dieser Befehl ausgef hrt Absolut elegant Unter Windows kann man mit bestimmten Dateiendungen Programme verkn pfen wie z B Word mit doc Notepad mit txt usw Die Endung tag ist vermutlich noch frei Also verkn pfen wir sie mit der Text Adventure Maschine T A M Im Windows Explorer w hlen wir dazu unter Ansicht gt Optionen die Karteikarte Dateitypen und erstellen mit Neuer Typ eine Verkn pfung mit dem Typ t
34. der Spieler so alles mit sich herumtragen kann Man kann sich eine Liste der Objekte die der Spieler bei sich tr gt das sogenannte Inventar mit Inventar oder kurz I ausgeben lassen Im Normalfall ist dies eine Liste mit Spiegelstrichen Dinge die in oder auf anderen Dingen sind werden dabei einger ckt Der Spieler kann nat rlich nur eine bestimmte Anzahl von Dingen mit sich herumschleppen Diese Anzahl wird in einer Variable festgelegt die maxInv hei t Diese kann nur in einer Anweisung ver ndert werden wie das geht sehen wir im n chsten Kapitel Wenn nichts anderes angegeben wird ist maxInv vier Das hei t der Spieler kann vier Gegenst nde bei sich haben mehr nicht Allerdings z hlen Gegenst nde die er angezogen hat und die sich in anderen Gegenst nden befinden nicht dazu sondern nur die die er direkt in seinen H nden h lt Insofern ist der Rucksack nat rlich eine prima Sache Man belastet den Spieler nicht kann aber ziemlich viel mit sich herumschleppen Eine weitere Variable Inv gibt an wieviele Objekte der Spieler gerade mit sich herumschleppt Dieser Wert liegt nat rlich zwischen 0 und maxInv F r diejenigen die es gerne genau nehmen bietet T A G zwei weitere Konzepte um Gegenst nde zu handhaben Gewicht und Volumen Jedem beweglichen Gegenstand kann ein Gewicht von 0 bis 255 gegeben werden Dazu f gt man seiner Objektdefinition einfach die Zeile Gew xxx zu wobei statt xxx nat rlich der
35. efehl Wenn der Befehl zwei Objekte ben tigt wird diese Variable vor bergehend auf den Pseudobefehl gesetzt Der Pseudobefehl hat nur in Vor und NachAusf Bl cken eine Bedeutung Leutet der Befehl Wirf Dart auf Scheibe so bedeuten werfen Der Befehl ist werfen das Objekt das berpr ft wird ist aObj also die Scheibe getroffen Der Befehl ist ebenfalls werfen aber das Objekt das berpr ft wird ist a0bj2 also der Dartpfeil Der Pseudobefehl ist also nur eine Kr cke um das Objekt auch in der runden Klammer ansprechen zu k nnen F r einige T A G Befehle gibt es vordefinierte Pseudobefehle hineinlegen gt empfangen herausnehmen gt freigeben aufschlie en gt aufschl_mit abschlie en abschl_mit Aufgabe 21 Modifiziere den Tisch so dass man nur die Vase daraufstellen kann Bei allen anderen Objekten gibt es eine negative Antwort Zusammenfassung e Zus tzlich zu den in T A G bereits vorhandenen Befehlen kann man eigene definieren Die Definition erfolgt wie gewohnt in einem abgeschlossenen Block e Zu jedem Befehl m ssen Verben und ein Ausf hrungsblock definiert werden Wenn ein Befehl Objekte verlangt so muss eine Syntax Angabe gemacht werden die den Satzbau beschreibt e Nach ihrer Reihenfolge in der Syntax Angabe hei en die angegebenen Objekte a0bj a0Obj2 und a0b33 e S tze mit verschiedenen Strukturen die dasselbe bewirken k nnen auf einen Befehl umgeleitet werden e DieS
36. efehls gro Der aObj und der aObj sind also verschieden Bei allen weiteren Buchstaben ist wie allgemein bei T A G die Gro und Kleinschreibung egal x Es gibt eine weitere Art von Textbefehlen die aus zwei Zeichen in eckigen Klammern bestehen und die Sonderzeichen darstellen ss ist das deutsche scharfe s e ein e mit Zirkumflex a ein lt lt spitze Anf hrungszeichen links usw Diese Textbefehle sind nur dann n tzlich wenn man die passenden 41 6 Variablen Zeichen nicht auf seiner Tastatur hat denn anstatt a kann selbstverst ndlich auch einfach geschrieben werden Mehr dazu im Handbuch 6 6 Schleifen Eine weitere wichtige Steuerstruktur sind Schleifen Dabei werden bestimmte Ausf hrungen fters wiederholt Wie oft das wird im allgemeinen mit einer Bedingung festgelegt Die einfachsten Schleifen sind solange Bedingung Anweisungen Ende wiederhole Anweisungen bis Bedingung Diese Schleifen sind sehr hnlich Die Anweisung wird sooft wiederholt bis die Bedingung wahr ist Dabei muss nat rlich in den Anweisungen etwas passieren damit die Bedingung irgendwann wahr werden kann Der Unterschied zwischen den beiden Schleifen ist dass die Ausf hrung bei wiederhole bis mindestens einmal abgearbeitet wird bei solange nicht Wenn die Bedingung zu Beginn falsch ist wird der Anweisungsblock bei solange direkt bersprungen lll Bei Schleifen ist ein wenig Vorsicht geboten Wen
37. egeben 27 5 Anweisungen Die Ausgabe des Textes ist hier allerdings an eine Bedingung gekn pft Eine Bedingung in T A G ist ein Ausdruck in runden Klammern Die Bedingung hei t hier Zettel bewegt Bewegt ist ein Attribut das gesetzt wird sobald der Spieler den Gegenstand aufhebt Dieses Attribut wird auch benutzt um festzustellen ob die Erst Beschreibung ausgegeben wird oder nicht Der Bedingung geht ein Schr gstrich voran Schr gstriche bedeuten in T A G Verneinungen Die Bedingung ist also erf llt wenn der Zettel noch nicht bewegt wurde Das Wort Wenn vor der Bedingung hei t Wenn diese Bedingung erf llt ist dann f hre den n chsten Befehl aus ansonsten berspringe ihn Der Text wird also nur ausgegeben wenn der Zettel zum ersten Mal aufgehoben wird Danach besitzt er das Attribut bewegt und die Text Anweisung wird bersprungen R ume k nnen brigens auch eine Vor und NachAusf haben Sie wird immer dann aufgerufen wenn sich der Spieler in diesem Raum befindet Raum Im_Haus NachAusf gehen Wenn aRaum besucht Text Hier ist es irgendwie unheimlich Du bist wahrscheinlich seit Jahren der Erste der dieses Haus betritt EndeAusf Damit wird dem Spieler beim ersten Betreten des Hauses gesagt dass es unheimlich hier ist aRaum ist eine Variable die den momentanen Aufenthaltsort beschreibt Da dies in diesem Fall immer Im_Haus ist k nnte man auch schreiben im_Haus besucht 5 3 Bedingunge
38. ei sich haben wenn er sich auf sie setzen will Aufgabe 9 Definiere einen Klappstuhl der im Keller steht und den der Spieler mit sich herumschleppen kann Man kann sich auf ihn setzen aber auch stellen 4 5 Dekorationen Dekorationen sind f r das Spiel unwichtige aber f r die Atmosph re wichtige Objekte Zum Beispiel haben wir in unserer Beschreibung f r Vor_dem_Haus einige Blumen erw hnt die dem Spieler einfach nur ein Gesp r f r den Ort geben sollen Vielleicht kommt der Spieler ja auf die Idee diese Blumen zu untersuchen Dann bekommt er aber Ich kenne Blumen nicht als Antwort Um den Spieler an dieser Stelle nicht zu entt uschen f gen wir eine Dekoration Blumen hinzu Die Definition ist dieselbe wie bei einem Objekt nur benutzt man statt Obj das Schl sselwort Deko Deko Blumen Name wild Blumen p Adj wild bunt farbenfroh Subst blumen p blume f mohn n Subst margeriten p Ort Vor_dem_Haus Besch Es ist eine wilde Ansammlung farbenfroher Blumen haupts chlich Mohn und Margeriten Obwohl sie wild gewachsen ist sieht es fast aus wie ein richtiger Garten Eine Deko kann sich w hrend des Spiels nicht ver ndern Sie kann Attribute und einen Zustand haben aber es werden immer dieselben wie am Anfang sein Dekos k nnen keine Beh lter oder Ablagen sein Au erdem sind sie immer fest und werden nie extra erw hnt Sie 23 4 Einige besondere Objekte sind nur da um unwichtigen Objekt
39. en Textbefehle sind Sequenzen die innerhalb eines Ausgabetextes in eckigen Klammern stehen x und n kennen wir bereits Am h ufigsten verwendet werden wohl die Befehle zur Ausgabe von Objekten der Objekt den Objekt dem Objekt Ausgabe mit bestimmtem Artikel Der Fall wird durch der den und dem bereits festgelegt Das ist auch der Grund warum es hier der und nicht das Objekt hei t nur f r das Maskulinum sind die drei Artikel verschieden ein Objekt einen Objekt einem Objekt Ausgabe mit unbestimmtem Artikel Namen im Plural haben keinen unbestimmten Artikel kein Objekt keinen Objekt keinem Objekt Ausgabe als Verneinung XObjekt Ausgabe des Objekts im Nominativ und ohne Artikel x T A G verzichtet auf den Genitiv da er komplizierte Regeln zur Bildung ben tigt und gibt sich mit der korrekten Ausgabe von Dativ und Akkusativ zufrieden die sowieso h ufiger vorkommen Damit kann man nun S tze ausgeben wie Text Der a0Obj verschwindet hinter dem a0bj2 und T A M setzt dann die passenden Objekte ein Der schokoladenbraune Teddyb r verschwindet hinter der Bettdecke Etwas unsch n ist es allerdings wenn bei solchen allgemeinen Antworten Objekte eingesetzt werden die im Plural stehen und die im Nominativ der ausgegeben werden sollen Die sechs Murmeln verschwindet hinter der Mauer 40 6 Variablen So etwas h tte un
40. en Zustand aus Au erdem besitzt sie das Attribut Licht was bedeutet dass sie eine Lichtquelle ist wenn sie nicht aus ist Mit dieser Lampe k nnen wir uns nun in den Keller wagen Der Keller ist zwar immer noch modrig aber nicht mehr stockfinster Besser so oder Was ist der Unterschied zwischen Attribut und Zustand Ein Objekt hat immer nur einen Zustand der aus meheren gew hlt werden kann Bereits vordefinierte Zust nde sind ein aus kaputt offen geschlossen und abgeschlossen Ein Attribut ist eine Eigenschaft die ein Objekt hat oder nicht hat Ein Objekt kann beliebig viele Attribute besitzen Der definierte Zustand bewirkt eine weitere Sache Zust nde k nnen neben IDs auch Bezeichnungen haben Die Lampe hat keine Beschreibung Trotzdem erscheint nicht die Pauschalantwort Du siehst nicht Au ergew hnliches sondern die Beschreibung des Zustands Die Lampe ist aus Aufgabe 3 Erzeuge ein Taschenmesser das der Spieler bei sich hat und das man auf und zumachen kann Zusammenfassung e Jeder Gegenstand im Spiel wird durch ein Objekt dargestellt hnlich wie R ume werden Objekte in Bl cken definiert neben einem Namen und einer Beschreibung besitzen sie weitere Eigenschaften Vokabular Attribute Zust nde und einen Ort e Als Vokabular k nnen Adjektive Vorw rter von zusammengesetzten Hauptw rtern und Hauptw rter Substantive angegeben werden Zu Substantiven muss zus tzlich das grammatikalische Ges
41. en bleiben f r die Dauer des Spiels am selben Platz andere wiederum wandern scheint s selbst ndig umher und benutzen andere Objekte genau wie der Spieler selbst Dabei k nnen die Handlungen der Person mehr oder wenig zuf llig sein oder aber einem vorgefertigten Schema folgen Egal wie diese Handlungen laufen unabh ngig von der Eingabe des Spielers ab und k nnen so nicht in der NachReakt abgefangen werden Solche eigenst ndigen Handlungen geh ren in eine Aktion Zum Beispiel k nnen wir unseren Wanderer nach einem Zufallsschema von der Lichtung vors Haus wandern lassen und umgekehrt Aktion Ausf wenn proz 12 dann wenn Wanderer in vor_Haus dann 62 9 Personen und Kommunikation wenn Wanderer hier Text Der Wanderer geht langsam nac Norden auf die Lichtung ObjNach Wanderer Lichtung sonst wenn Wanderer hier Text Der Wanderer schlendert nach S den ObjNach Wanderer vor_Haus Ende Wenn Wanderer hier Text Der Wanderer ist soeben angekommen er nickt mir freundlich zu Ende EndeAusf Diese Aktion ist relativ simpel der Wanderer wandert zwischen zwei R umen hin und her Wann das geschieht wird durch eine Zufallsbedingung gesteuert hier in zw lf Prozent aller F lle also etwa alle acht Z ge Aufgabe 25 Der Wanderer soll nun entlang einer festgelegten Route laufen wobei er immer dieselbe Zeit am selben Ort verweilt Zu bestimmten Zeitpunkten macht er bestimmte Bemerkungen Dieses Verhal
42. en etwas mehr Leben einzuhauchen Viel mehr als sie anschauen kann man mit ihnen nicht machen Es gibt eine Besonderheit bei Dekos Sie k nnen in bis zu vier R umen sein Dazu gibt man einfach mehere R ume in der Ort Zeile an Eine Deko kann allerdings niemals in oder auf einem anderen Objekt sein F r den Trampelpfad definieren wir also Deko Trampelpfad Name Trampelpfad m vor trampel fu subst pfad m weg m Ort Lichtung vor_dem Haus Besch Der Pfad ist eine staubige Spur im Gras mehr nicht Aufgabe 10 Definiere die Deko Wald B ume um unsere Spielwelt ein wenig aufzuwerten Und f r die beiden Innenr ume die Deko Wand x Es gibt noch eine weitere M glichkeit den Ort von Dekos zu beschreiben n mlich per Raumattribut Wenn man nach den Wort Ort ein g ltiges Raumattribut angibt so ist eine Deko in diesem Raum wenn der Raum dieses Attribut besitzt Stellt man dem Attribut einen Schr gstrich voran so ist es umgekehrt Die Deko istim Raum wenn der Raum das Attribut nicht hat Mit den Attributen die wir jetzt kennen macht es keinen Sinn aber wenn wir z B ein Raumattribut aussen definieren w rden k nnten wir folgende Definitionen benutzen Deko Sonne Ort aussen Deko Zimmerdecke Ort aussen Zusammenfassung e F r bestimmte Arten von Objekte gibt es in T A G bereits vordefinierte Attribute wie z B Beh lter Ablage Sitz Liege Standfl che e Um festzustellen wieviel der Spiel
43. en kann Wer will darf das nat rlich einbauen 10 4 Standardtexte Da T A G bereits die wichtigsten Befehle mitbringt gibt es auch bereits Texte die diese Befehle ausgeben Diese Texte passen nicht unbedingt zu jedem Adventure und der Autor m chte sie wahrscheinlich an sein Opus anpassen Diese Texte die so genannten Standardtexte werden normalerweise von der Dateitag std gelesen Sie sind dort nacheinander aufgelistet kurze Kommentare sagen zu welchem Befehl 65 10 Verschiedenes und Ausblick der jeweilige Antwortblock geh rt Die ersten vierzig Antworten sind die Fehlermeldungen des Parsers Diese Texte k nnen nach Belieben abge ndert werden solange die Numerierung nicht ge ndert wird Man kann auch selbst eine Standard Datei erzeugen die nat rlich den selben Aufbau wie tag std haben muss Das hei t Text Nr 6 sollte in beiden Dateien in etwa dieselbe logische Aussage haben Dass eine eigene Datei verwendet wird teilt man T A G mit folgendem Befehl mit STD test std Dabei muss anstelle von test std nat rlich der korrekte Dateiname stehen Wer will kann den gesamten Satz von Standardtexten auch in seine adv Datei packen Dann werden die Antworten als ein Block behandelt der mit dem Schl sselwort Standard beginnt 10 5 u ere Form Text Adventures die mit T A G erstellt wurden kommen relativ schlicht daher Es gibt wenige Farben und jede Menge von Text der in Schreibmaschinenschrift auf dem
44. en nach jedem Zug ausgef hrt e Zur flexiblen Ausgabe von Variablen und Objekten stehen in T A G eine Reihe von Textbefehlen zur Verf gung Verweise e Handbuch Kapitel 4 2 Flaggen und Variablen e Handbuch Kapitel 5 1 2 Variablenzuweisungen e Handbuch Kapitel 6 2 Ablauf eines Zuges e Handbuch Kapitel 7 2 Anweisungen im Text e Variablendefinitionen inkarn adv 43 7 Befehle 7 1 Eigene Befehle definieren T A G bringt die h ufigsten Befehle wie nehmen gehen legen ffnen usw bereits mit Die Datei normal adv enth lt weitere Befehlsdefinitionen wie dr cken ziehen schlagen Trotzdem ben tigt man f r ein eigenes Adventure eigene Befehle die man in T A G definieren kann Am einfachsten sind wohl Befehle die nur aus einem Wort bestehen wie zum Beispiel Lage oder Inventar Die Definition eines solchen Befehls sieht folgenderma en aus Bef Diagnose Name mich diagnostizieren Verb diagnose d Ausf Jenach Gesundheit 1 Text Du stehst mit einem Bein im Grab 2 Text Du bist stark angeschlagen 3 Text Du bist leicht angeschlagen 4 Text Du bist relativ fit 5 Text Du bist gesund und munter Ende EndeAusf Ein Befehl hat also eine ID einen Namen verschiedene Verben und einen Ausf hrungsblock Der Name wird zum Beispiel beim R ckg ngigmachen eines Zugs benutzt Mit den Verben k nnen die Befehle aufgerufen werden Diagnose oder D sind zwar keine Verben im eigentliche
45. enschaft geschieht die Verebrung aber auf verschiedenem Wege Ersetzende Verebung Bei Eigenschaften die jedes Objekt logischerweise nur einmal haben kann werden die geerbten Eigenschaften durch die individuellen ersetzt Das ist der Fall beim Namen bei den Beschreibungstexten Besch Erst Darauf usw bei Zust nden Ortsangaben und allgemeinen Variablen wie Gew Vol USW Erweiternde Vererbung Andere Eigenschaften wie z B das Vokabular und die Ausf hrungsbl cke werden dem Objekt einfach hinzugef gt das Objekt besitzt also das Vokabular der Klasse und des Objekts Das klingt vielleicht etwas verwirrend deshalb hier ein paar Beispiele f r unsere Verpflegungsklasse Obj Butterbrot Verpflegung Name Butterbrot n Vor butter Subst brot n schnitte f Ort in Dose Damit ist unser Objekt Butterbrot schon wesentlich individueller es kann als Brot angesprochen werden und hei t auch nicht mehr Verpflegung sondern Butterbrot Es kann aber dank der Vokabeldefinition der Klasse als Verpflegung angesprochen werden Weiter geht s Obj Name Adj subst Besch Banane Verpflegung Banane f krumm gelb banane f frucht f Die Banane ist eine krumme gelbe Frucht die hoffentlich der EU Norm entspricht Oder besser hoffentlich nicht Damit haben wir f r die Banane die Standard Beschreibung der Klasse ersetzt Ein Objekt bernimmt nat rlich auch die Attribute der Klasse Mit Attr
46. er bei sich tragen kann gibt es drei verschiedene Konzepte Die Anzahl das Gewicht und das Volumen Form der Objekte e Dekorationen sind Objekte die sich w hrend des Spiels nicht ver ndern Sie dienen dazu um in der Raumbeschreibung erw hnten Dingen ein wenig Atmosph re zu verleihen Verweise e Handbuch Kapitel 3 2 Objekte e Handbuch Kapitel 10 Verschiedene Arten von Objekten 24 5 Anweisungen 5 1 Ein ordentlicher Anfang Bis jetzt wird unser Spieler ohne Kommentar ins Geschehen geworfen Er bekommt die erste Raumbeschreibung um die Ohren geknallt und los gehts Das ist nicht die feine englische Art deswegen wollen wir ihm einen ordentlichen Einstieg ins Spiel geben Dazu definieren wir eine Aktion Eine Aktion ist eine Anzahl von Anweisungen die nacheinander ausgef hrt werden Bis jetzt heben wir unsere Spielwelt nur mit den standardm ig in T A G vorhandenen Definionen erschaffen Das wird sich in diesem Kapitel ndern wenn wir unsere eigenen Regeln schreiben Aber zur ck zum Anfang des Adventures Es gibt eine Aktion Anfang die zu Beginn des Spiels aufgerufen wird Sie wird auch aufgerufen wenn der Spieler einen Neustart mit Neu w nscht Diese Aktion definieren wir Aktion Anfang Aust Text fIDER TES T n x Ein interaktives Versuchsgel nde C 2000 Cecilia McIntyre Du bist hier offensichtlich in eine ziemlich eigenartige Welt geraten Am besten du schaust dich einmal um und erkundest w
47. eren Angaben dienen nur dazu die Suche einzuschr nken In unserem Beispiel k nnten wir also eingeben Zettel schmutziger Wisch St ck Papier schmutziger Papierfetzen und es w rde als Objekt Zettel verstanden Allerdings k nnte man auch sagen schmutzig schmutziges Papier Zettel Wisch Fetzen Papierpapier was sich etwas eigenartig liest aber f r die T A M in Ordnung ist und ebenfalls bedeutet Objekt Zettel Um dem Spieler m glichst viele Eingaben zu erlauben nimmt man die Erkennung von Unsinnigem in Kauf Es geht bei der Definition des Vokabulars nat rlich nicht darum akribisch alle M glichkeiten aus dem Thesaurus abzuschreiben aber ein gutes Objekt sollte mit seinem Vokabular schon die g ngigsten Eingabem glichkeiten abfangen 3 Objekte 3 4 Zust nde und Attribute Ein Zettel ist nat rlich kein besonders ausgiebiges Beispiel f r ein Text Adventure Tutorium Au er einem Text zum Lesen der sich noch dazu nicht ndert hat er nicht viel zu bieten Objekte k nnen n mlich genau wie R ume Attribute besitzen Au erdem k nnen sie im Gegensatz zu R umen einen bestimmten Zustand haben Erinnern wir uns also an den dunklen Keller und geben unserem Abenteurer eine Lampe an die Hand Obj Lampe Name Taschenlampe f Adj batteriebetrieben Vor taschen batterie Subst lampe f leuchte f Ort beimir Zust aus Attr Licht Diese Lampe ist zu Beginn beimir also beim Spieler Sie hat d
48. es ebenes Konstrukt Es gibt hier vier W nde Die begrenzenden Ebenen oben und unten hei en Decke und Boden Obj Pilz Name eigenartig Pilz m adj eigenartig gr n wei giftig vor gift knollenbl tter subst pilz m kappe f hut m punkte p Ort Lichtung Besch Der Pilz hat eine gr ne Kappe mit kleinen wei en Punkten Erst Ein eigenartiger gr ner Pilz w chst mitten auf der Lichtung VorAusf essen Wenn proz 20 dann Text Du bei t herzhaft in den Pilz Aber erstens schmeckt der rohe Pilz ziemlich bescheiden und zweitens ist er hochgiftig Gestorben Ende EndeAusf NachAusf nehmen Wenn Pilz bewegt Text Mit einem leisen Plopp ziehst du den Pilz aus dem lockeren Waldboden EndeAusf ObjAttr probiert Obj Pilz VorAusf essen Wenn Pilz probiert dann Text Du bei t herzhaft in den Pilz Aber erstens schmeckt der rohe Pilz ziemlich bescheiden und zweitens ist er hochgiftig Gestorben sonst Text Du knabberst ein wenig an dem Pilz Irgenwie schmeckt er eigenartig aber du kannst nicht genau sagen warum AttrHin Pilz probiert Ende 73 13 14 Anhang A L sungen zu den Aufgaben Stop EndeAusf Obj Pilz VorAusf nehmen Bed Taschenmesser beiMir Der Pilz sitzt fest im Boden du kannst ihn nicht einfach herausziehen Bed Taschenmesser offen Gute Idee aber das Messer ist noch zu EndeAusf NachAusf nehmen Text Du schneidest den Pilz mit deinem
49. ext Bereits bewegt x Text x 77 Anhang A L sungen zu den Aufgaben EndeAusf Der Stern nach dem Befehlsnamen definiert ihn als Steuer oder Meta Befehl Er geh rt dann nicht zum Spiel selbst verbraucht keinen Spielzug und kann nicht r ckg ngig gemacht werden Andere Meta Befehle sind z B Ende speichern Knapp Punkte oder Manuskript Der Zusatz Allg in der Syntax Zeile hei t dass das Objekt an jedem beliebigen Ort sein kann der Spieler muss es nicht sehen k nnen Dieser Zusatz wird im Allgemeinen f r Gespr chsthemen oder hnliches benutzt 21 22 Obj Tisch VorAusf empfangen Bed a0bj Scherben Der Tisch ist auschlie lich f r intakte Mingvasen gedacht Bed a0bj Mingvase Der Tisch ist auschlie lich f r die Mingvase gedacht EndeAusf ObjAttr Wirkung_bekannt ObjKlasse Zaubertrank Plural Zaubertr nke p vor zauber subst trank m elixier n Var Wirkung 2 Besch Ausf Wenn selbst Wirkung_bekannt dann Text Der selbst Jenach selbst Wirkung 1 Text hat eine heilende Wirkung 2 Text ist ein Gitt 3 Text still t den Hunger sonst Text hat eine mir unbekannte Wirkung Ende sonst Text Du hast noch nicht herausgefunden was der selbst bewirkt Ende EndeAusf VorAusf trinken 78 Text Anhang A L sungen zu den Aufgaben Du trinkst den selbst Jenach selbst Wirkung 1 2
50. f Zufall code 0 99 Stop Du drehst das R dchen auf code EndeAusf Aktion Ausf Wenn code 23 und Safe abgeschlossen dann Text Vom Safe h rst du ein leises Klick ObjZust Safe geschlossen Ende EndeAusf So nun gibt es eine M glichkeit das Rad zu verdrehen Allerdings nur zuf llig Immerhin wird jetzt mit code der momentan eingestellte Code ausgegeben Diese Eigenschaft des R dchens merken wir uns mit der Flagge code In einer Aktion die nach jedem Zug ausgef hrt wird wird nun gecheckt ob der Code 23 ist und der Safe noch zu ist Dann n mlich soll der Safe sich mit einem Klick entriegeln Das h tte man nat rlich auch direkt in die VorAusf packen k nnen Aber im n chsten Kapitel wollen wir noch eine andere M glichkeit das R dchen zu verstellen vorstellen da ist diese Vorgehensweise wahrscheinlich besser brigens Aktionen die mit einem Sternchen definiert werden d h die in jedem Zug ausgef hrt werden ben tigen keine ID 38 6 Variablen 6 4 Zeitabh ngige Eregnisse Man kann Variablen auch dazu benutzen um zeitabh ngige Ereignisse zu beschreiben Nehmen wir dazu einmal an unsere Taschenlampe h tte nur eine Brenndauer von 100 Z gen Diese Brenndauer wird in der Variable Brenndauer gespeichert Also obj Lampe VorAusf anmachen Bed Brenndauer gt 0 Du schaltest die Lampe ein aber die Batterien sind leer und so machst du sie wieder aus ffnen Stop Wozu Die
51. gaben rostig2 Sei xObj Halfpenny rostig3 Sei xObj Zloty rostig4 Sei xObj Zechine Ende Text Du h ltst die rostige M nze f r einige Zeit in die t rkise L sung Nachdem der gr bste Rost weg ist siehst du dass die M nze ein xObj ist Tausche a0Obj xObj EndeAusf Obj Handschuhe Name Paar Handschuhe n subst handschuhe p handschuh m paar n Attr Kleidung Ort angezogen Besch Knallgelb ziemlich dick und aus Gummi Mit der M nzenklasse werden zun chst alle rostigen M nzen erzeugt Parallel dazu werden die individuellen M nzen erzeugt die aber im nirgendwo sind Eine rostige M nze tauscht mit der individuellen den Ort wenn sie ins Rostl sebad gehalten wird Dabei ist die M nze die anfangs bei mir ist immer der Rand die im Korb immer der Halfpenny und so weiter Die Handschuhe sind nat rlich nur zum Schutz des Spielers gedacht und haben mit der urspr nglichen Aufgabenstellung nichts zu tun 24 Flagge Troll_bezahlt Obj Troll Name Troll m Subst troll m Ort Im Haus Attr Person Besch Der Troll ist h lich so wie man es von einem Troll erwartet Erst Ein grimmiger Troll steht hier mitten im Raum Dabei Er spielt mit liste 2 VorReakt gehen Bed aRitg r oder Troll_bezahlt Halt Freundchen grunzt der Troll Wenn Du dort hinunter gehen willst musst du mir was zum Naschen geben EndeAusf VorAusf gegeben Bed a0bj Verpflegung Das ist nichts zum Essen
52. ge Rucksack hin ein Probiert einmal mit den bereits vorhandenen Objekten herumzuspielen Legt die Lampe und den Zettel in den Rucksack Macht den Rucksack einmal auf und wieder zu wenn sich etwas darin befindet Legt den Rucksack ab und gebt mit L eine Raumbeschreibung aus Und tut die angeschaltete Lampe einmal in den Rucksack geht in den Keller und schlie t dann den Rucksack Unser Adventure hat schon etwas mehr zu bieten als noch vor kurzem Immer wenn sich etwas im Rucksack befindet und dieser offen ist wird der Inhalt des Rucksacks aufgelistet In dem Rucksack siehst Du Auch diese Antwort l sst sich individuell auf den Rucksack zuschneidern Darin Im Moment ist 0 liste 0 im Rucksack Die genaue Bedeutung der eckigen Klammern wird sp ter erl utert Im Moment gen gt es zu wissen dass liste 0 die Auflistung aller Objekte im Nominativ 0 einf gt und ist 0 je nach Anzahl der Objekte in der Liste ist oder sind ausgibt 18 4 Einige besondere Objekte Zu Beginn des Spiels k nnen andere Objekte bereits im Rucksack plaziert werden in dem man die Ortsangabe Ort in Rucksack angibt Achtung Man ist nat rlich verleitet IM Rucksack zu schreiben aber im wird von T A G nicht verstanden Im Spiel unter T A M ist dies jedoch m glich Aufgabe 4 Erzeuge eine verschlie bare Butterbrotdose die sich im Rucksack befindet und in der sich eine Tomate ein hartgekochtes Ei und ein S
53. gung f Vor lebens nahrungs Subst verpflegung f essen n mittel p Subst mittel n Ort in Rucksack Besch Hmm sehr nahrhaft Attr essbar Wenn wir das neue Adventure generieren und laufen lassen gibt es nichts Neues Es gibt kein Objekt Verpflegung im Rucksack Eine Objektklasse beschreibt kein Objekt im Spiel sondern ist lediglich eine Vorlage f r Objekte Damit die Klasse wirksam wird m ssen wir also ein Objekt definieren das dieser Klasse angeh rt Dazu geben wir bei einer Objektdefinition die Klasse in Klammern an Obj Butterbrot Verpflegung Diese Zeile reicht bereits da alle Eigenschaften von der Klasse bernommen werden das Butterbrot hei t Verpflegung und kann mit dem bei der Klasse angegebenen Vokabular angesprochen werden Es befindet sich im Rucksack und ist essbar Der Nachteil ist im Moment jedoch dass dieses Objekt keine individuellen Eigenschaften besitzt Wenn wir mit dieser Methode noch einen Schokoriegel eine Banane usw definieren sehen alle diese Dinge gleich aus haben dasselbe Vokabular und treten nur als Verpflegung in Erscheinung Das ndert sich im n chsten Abschnitt 51 8 Klassendenken 8 2 Vererbung Wie wir eben gesehen haben bernimmt ein Objekt alle Eigenschaften der Klasse Man spricht hier von Vererbung Trotzdem k nnen zu jedem Objekt das einer Klasse angeh rt man sagt dazu auch Instanz der Klasse individuelle Eigenschaften gegeben werden Je nach Eig
54. h oben dunkel Regale halbverfault Regale p faulig faul verfault modrig regale p regal n Keller fest Auf einem der verfaulten Regale ist liste 0 8 Nun gut das ist wohl eher eine Flei arbeit Exemplarisch sollen hier der Tisch der Rucksack und der Wanderstab betrachtet werden 71 Anhang A L sungen zu den Aufgaben Obj Tisch Vol 80 Obj Rucksack Vol 40 Gew 3 obj Wanderstab Name Wanderstab m vor wander Subst stab m stecken m Ort beimir Gew 2 Vol 60 Besch Der Wanderstab ist gut einen Meter sechzig lang Zwei Plaketten sind an den Stab genagelt ein Edelwei und eine mit der Aufschrift Internationale Volkswanderung Kahler Asten 1982 Klar der Trick ist dass der Stab ein gr eres Volumen hat als der Rucksack aber kein gr eres als der Tisch 9 Obj Klappstuhl Name Klappstuhl m vor klapp Subst stuhl m Attr Sitz Standfl che Zust offen Ort Keller Besch Ein blauer Klappstuhl aus der Serie Lule 10 Deko B ume Name B ume p Subst baum m b ume p eichen p birken p Subst eiche f birke f Ort Lichtung Besch Die B ume hier sind haupts chlich Eichen und Birken Das h ttest Du aber schon aus der Raumbeschreibung erfahren k nnen du Naseweis Deko Wand Name Wand f subst wand f w nde p decke f boden m Ort Im Haus Keller 72 11 12 Anhang A L sungen zu den Aufgaben Besch Die Wand ist ein vertikal
55. hReakt haben So kann z B ein Rauchmelder auf das Anz nden eines Streichholzes reagieren oder ein stark riechender K se alle 60 9 Personen und Kommunikation Schnupperversuche im Keim ersticken Am h ufigsten gebraucht werden diese Bl cke aber wohl bei Personen 9 3 Gespr che f hren Nat rlich kann man sich nicht nur anh ren was die Personen im Spiel zu sagen haben sondern man kann mit ihnen auch reden blicherweise geschieht dies mit einem der folgenden Befehle gt Frage den Wanderer ber die B ume gt Erz hle ihm von dem Haus gt Wanderer gib mir die Karte Die ersten beiden M glichkeiten sind dabei gew hnliche Befehle die mit einer VorAusf abgefangen weden k nnen VorAusf fragen Text Der Wanderer sagt Jenach a0bj2 B ume Text Ganz klar das sind Birken Wanderer Text Ich bin ein Wanderer Au erdem bin ich Kassierer beim SGV Haus Text Ich wei nicht wem das Haus geh rt Natur Text Ich liebe die Natur sonst Text Ouh da fragen Sie mich was Er sch ttelt den Kopf Aber dar ber wei ich nichts Ende Stop EndeAusf Dabei kann man nat rlich ber alles m gliche fragen auch ber Dinge die sich nicht im Raum befinden Manchmal muss man zus tzliche Dekos einf gen um abstrakte Gespr chsthemen die nat rlich in keinem Raum sind abzufangen Deko Natur Name Natur adj frei subst natur f umwelt f Die letzte oben genannte M gl
56. ichkeit ist eigentlich ein normaler Befehl der nur an jemand anderes als den Spieler gerichtet ist An wen er gerichtet ist wird in der Variable Akteur gespeichert die normalerweise den Wert O hat Ist Akteur ein anderes Objekt so tritt ein besonderer Ausf hrungblock in Kraft die BefAusf Sie ist wie die bekannten Bl cke 61 9 Personen und Kommunikation aufgebaut Obj Wanderer BefAusf nicht_verst Text Ich habe Sie nicht richtig verstanden sagt der Wandersmann gehen Text Ich gehe wohin ich will sonst Text Was sind Sie denn f r ein Hektiker Genie en Sie lieber die Natur anstatt andere Leute herumzukommandieren sagt der Wanderer erbost EndeAusf Dabei ist nicht_verst der Befehl Nr Null der bedeutet dass die Eingabe des Spielers fehlerhaft war Man sieht dass Personen in der Regel die meisten Befehle nicht befolgen Wenn man versucht einem Objekt Befehle zu erteilen das keine BefAusf hat erscheint einfach ein platter Satz wie Der Tisch scheint nicht an einem Gespr ch mit mir interessiert zu sein Aufgabe 24 Definiere einen Troll der im Haus ist und der den Spieler nicht in den Keller l sst bevor er ihm etwas Essbares gegeben hat Die Trolle in unserer Welt sind offenbar eher auf Nahrungsmittel als auf Wertsachen fixiert Befehle und Konversation bedenkt der Troll nat rlich mit einem unverst ndlichen Knurren 9 4 Eigenst ndige Handlungen anderer Personen Manche Person
57. icht durchflutet das von den W nden herzukommen scheint AttrWeg Keller dunkel sonst Text Der Keller ist jetzt wieder so stockfinster wie zuvor AttrHin Keller dunkel Ende EndeAusf 5 Anweisungen Die Anweisungen AttrHin und AttrWeg geben dem Raum ein Attribut oder nehmen es ihm weg Diese Anweisungen funktionieren auch bei Objekten ObjAttr gelesen Obj Zettel VorAusf lesen Bed Zettel gelesen Das hast Du doch schon gelesen EndeAusf NachAusf lesen AttrHin Zettel gelesen EndeAusf Mit ObjAttr kann man eigene Attribute f r Objekte definieren Es gibt auch ein RaumAttr f r zus tzliche Raumattribute Mit dieser neuen Definition wird verhindert dass der Spieler den Zettel zweimal liest Zugegeben kein realit tsnahes Beispiel aber es zeigt wie es geht Beim ersten Mal ist der Zettel noch nicht gelesen Der Text wird wie blich angezeigt Im Nachhinein bekommt der Zettel aber das Attribut gelesen Beim n chsten Mal bricht dann die VorAusf den Befehl ab Aufgabe 12 ndere den Pilz so ab dass er nicht beim ersten Probieren t dlich ist sondern erst beim zweiten Mal Dann aber bestimmt Dazu sollte sichergestellt sein dass der Spieler beim ersten Mal nur knabbert damit der Pilz nicht verschwindet 31 5 Anweisungen Ein anderes Beispiel Unser Rucksack soll zuerst geschlossen werden bevor er aufgesetzt wird Obj Rucksack VorAusf anziehen Wenn Rucksack offen dann Text Du schlie t den Rucks
58. ieren und ausprobieren Beim Betreten des Raums f llt sofort etwas auf Der Tisch ist nicht mehr da Falsch er ist da er wird nur nicht erw hnt Mit untersuche Tisch bekommt man n mlich eine Beschreibung des Tisches Auch kann man Sachen auf den Tisch legen Schaut man sich dann um so erscheint die Liste aller Dinge die auf dem Tisch liegen Feste Gegenst nde werden also nicht in der Liste aller Objekte am Ende einer Raumbeschreibung erw hnt Das wird so gemacht weil sie blicherweise bereits in der Raumbeschreibung vorkommen Eine neue angepasste Raumbeschreibung f r In_Haus w re jetzt etwa Raum Im_Haus Besch Das kleine Haus wirkt irgendwie leer Au er einem kleinen Tisch gibt es keine M bel und die W nde sind kahl Im Westen geht es wieder hinaus Man kann aber wenn man will auch feste Objekte wie gewohnt anzeigen lassen Dazu gibt man ihnen nicht das Attribut fest sondern das Attribut immobil was dasselbe ist wie fest mit der Ausnahme dass das Objekt in der Liste der Gegenst nde auftaucht lll Nat rlich spricht nichts dagegen den Tisch beweglich zu machen zumal er laut Beschreibung klein und wacklig ist aber im allgemeinen schleppt man so etwas ja nicht mit sich herum Aufgabe 7 ndere die Raumbeschreibung im Keller und definiere die modrigen Regale Benutze dabei 20 4 Einige besondere Objekte eine sinnvolle Darauf Definition 4 3 Das Inventar Zeit sich einmal damit zu besch ftigen was
59. ignis bereits f nf Punkte vergeben und wird es nicht noch einmal tun Es gibt eine M glichkeit dem Spieler die f nf Punkte beim Schlie en des Safes mit Punkte 1 0 wieder wegzunehmen In diesem Fall w rde es beim Erneuten ffnen wieder f nf Punkte geben Aber diese Vorgehensweise ist wohl eher un blich Die Integer Variable Pktzahl summiert die Einzelpunktzahlen aller Ereignisse Sie kann nur gelesen nicht ge ndert werden nderungen erfolgen immer ber die Einzelpunktzahlen Dies ist der einfachste Fall der Punktevergabe Das Punktesystem von T A G besitzt weitere M glichkeiten der Punktevergabe Wie Punkte f r R ume und Objekte vergeben werden oder wie man negative Punktzahlen vergibt steht ausf hrlich im Kapitel 8 4 des T A G Handbuchs 10 3 Das Ende des Spiels Das Ende des Spiels wird erreicht wenn der Spieler es w nscht und Ende eingibt wenn er stirbt oder wenn er gewinnt Die Anweisung gestorben l sst den Spieler sterben Er bekommt gesagt dass er tot ist seine Punkte aufgelistet und wird dann gefragt ob er aufh ren neu anfangen oder ein abgespeichertes Spiel laden m chte Mit der Anweisung gewonnen wird das Spiel gewonnen Du hast gewonnen und die erreichten Punkte werden ausgegeben und das Programm bricht ab Wer gerade gewonnen hat m chte wohl nicht von vorne anfangen Unser Testspiel ist zu klein und hat auch keine richtige Aufgabe f r den Spieler so dass es im Moment nicht gewonnen werd
60. in Eine Feder oder eine Plastikkarte nehmen bestimmt keinen gro en Platz ein und die Antwort Die Feder ist zu schwer sperrig kann man nicht unbedingt nachvollziehen 4 4 Sitze Liegen Standfl chen Auf manche Objekte kann man nicht nur andere Objekte setzen oder stellen oder legen sondern auch sich selbst Dazu gibt man ihm einfach eins oder mehrere der Attribute Sitz Standfl che oder Liege Im Gegensatz zu Objekten wird beim Spieler unterschieden ob er auf einem Gegenstand sitzt steht oder liegt Deshalb gibt es f r jede dieser Haltungen ein Attribut Ist der Spieler auf keinem anderen Objekt sondern direkt in einem Raum so ist seine Haltung jedoch egal Meist wird einfach angenommen dass er steht Also ein neues Objekt 22 4 Einige besondere Objekte Obj Sofa Name verschlissen Sofa n Vor alt verschlissen abgenutzt rot Subst sofa n couch f chaiselongue n Subst diwan m Besch Dieses mittlerweile sehr mitgenommene Sofa war in seinen guten Zeiten einmal rot Trotz der Abnutzungserscheinungen sieht es doch sehr gem tlich aus Erst In einer Ecke des Raums steht ganz verstohlen ein altes abgenutztes Sofa herum Attr Sitz Liege Immobil Ablage Vol 50 Probiert das neue Sofa einmal aus Setzt stellt und legt Euch darauf wenn es geht Eine Liege ein Sitz oder eine Standfl che m ssen brigens keine Ablage sein Sie m ssen auch nicht fest sein der Spieler darf sie jedoch nicht b
61. ionen oder Um ein Prozentzeichen zu schreiben benutzt man Um eckige Klammern zu schreiben m ssen diese doppelt angegeben werden oder Die Textbefehle werden intern als Sequenz von Zeichen die mit einem Schr gstrich beginnen abgelegt Daher muss auch der Schr gstrich immer doppelt stehen Die n chsten Anweisungen hei en sei Hier wird der Variablen maxInv der Wert 5 und der Variablen maxVol der Wert 80 zugewiesen In vielen Programmiersprachen sehen solche Anweisungen so oder so hnlich aus maxInv 5 aber T A G geht hier einen eher rudiment ren Weg Alles was hinter dem Ausrufezeichen steht wird von T A G brigens nicht beachtet Man nennt das einen Kommentar und es kann n tzlich sein ab und zu einmal ein paar zus tzliche Bemerkungen einzuf gen damit man sp ter in seinem eigenen Adventure noch durchblickt Die letzte Anweisung lautet geheZu und bewirkt dass der Spieler zu einem bestimmten Raum bewegt wird Danach wird die Raumbeschreibung ausgegeben Das h tten wir nicht unbedingt machen m ssen denn wenn der Spieler am Anfang noch nirgendwo ist wird er automatisch in den zuerst definierten Raum gestellt und es wird ebenfalls die Raumbeschreibung ausgegeben Aber es ist sauberer so und au erdem kann man die Zeile sp ter schnell ab ndern wenn der Spieler lieber doch im Wald beginnen soll 5 2 Ins Geschehen eingreifen Bis jetzt haben wir nur die bereits in T A G vorhandenen Defi
62. kann man neue Attribute hinzuf gen mit einem vorangestellten Schr gstrich aber auch wieder wegnehmen Obj Karotte Verpflegung 52 8 Klassendenken Name phosphoresziered Plastik M hre adj phosphoreszierend leuchtend vor lJeucht phosphor plastik subst karotte f m hre f Attr e bar Lichtquelle Etwas komplizierter ist das Vererben von Ausf hrungsbl cken Um dies zu veranschaulichen erweitern wir unsere Klassendefinition ObjKlasse Verpflegung Name Verpflegung f vor lebens nahrungs subst verpflegung f essen n mittel p subst mittel n Ort in Rucksack Besch Hmm der selbst sieht sehr lecker aus Attr e bar NachAusf essen Wenn Hunger gt 5 dann dekr Hunger 5 sonst l sche Hunger Ende EndeAusf Selbst ist eine Variable die das tats chlich angesprochene Objekt meint Wir erinnern uns dass die Klasse selbst nicht als Objekt im Spiel auftaucht In den Ausf hrungsbl cken der Klasse muss daher selbst benutzt werden In der Regel ist selbst aber mit a0bj oder a0bj2 identisch Mit der NachAusf wird der Hunger getilgt Dabei wird angenommen dass Hunger eine globale Variable ist Alle Verpflegungen verringern den Hunger um f nf Einheiten Wir k nnen diese Ausf hrung aber erweitern wobei der individuelle Ausf hrungsblock des Objekts aber vor dem entsprechenden Block der Klasse ausgef hrt wird Obj Landj ger Verpflegung NachAusf essen Text Der Landj ger ist zie
63. karn tag neu mit dem Kommando gt tag karn und berschreiben damit karn tag Vergleichen wir doch einmal die beiden Adventures mit gt dir tag Die Gr e der beiden dateien karn tag und karn_bak tag sollte gleich sein Auch sollte man keine Unterschiede beim Spielen vonkarn tagundkarn_bak tag feststellen Sollte etwas nicht stimmen so ist vermutlich karn adv ver ndert worden 1 3 Der Quelltext Nun schauen wir uns einmal den Quelltext karn adv an Dazu ffnen wir einen Texteditor und laden karn adv Beim Schreiben von Adventures wird der Texteditor Euer Haputwerkzeug sein Es kann jeder beliebige Editor benutzt werden der reinen A SCT Text herausschreibt Um gut und effektiv arbeiten zu k nnen sind einige Funktionen unerl sslich oder zumindest u erst praktisch Suchen und Ersetzen von W rtern lokal im markierten Text und global Dabei sollte man Optionen wie Gro Kleinschreibung ber cksichtigen oder Nur ganze W rter suchen ein und abschalten k nnen Angabe der aktuellen Schreibposition d h Zeile und Spalte 1 Einleitung Einfaches Markieren Kopieren Ausschneiden und Einf gen von Text Unkomplizierte Handhabung von mehreren offenen Dateien Sprungfunktion zu einer bestimmten Zeile Ausf hren von Systemkommandos damit man zum Testen nicht immer den Editor verlassen muss Windows bringt schon einige Editoren mit diese sind aber nicht unbdeingt optimal Notepad kann nur Dateien bis zu 6
64. l hat eine Syntax Angabe in der die ben tigten Objekte angegeben werden In dieser Zeile k nnen folgende Angaben gemacht werden dasObj Objekt im Akkusativ demObj Objekt im Dativ nachRitg Richtungsangabe nach Norden Direkt nach den Objekten k nnen Zusatzangaben in Klammern gemacht werden wie hier Allg Jedes Wort was nicht in Klammern steht und kein Schl sselwort ist wird als Pr position behandelt In unserem Beispiel ist das auf x Nach einer Pr position muss ein Objekt folgen da T A G bei Pr positionen unterscheidet ob sie zu einem Objekt oder zu einem Verb geh ren Pr positionen die Bestandteil des Verbs sind m ssen in der Verb Zeile deklariert werden z B mache auf Die Objekte hei en nach der Reihenfolge ihres Auftretens in der Syntax Zeile a0bj a0bj2 und a0bj3 Die Richtung hei t aRitg und ist eine Richtungsvariable Die Reihenfolge in der der Spieler die Objekte eingibt ist egal gt GIB DEM MANN DAS BUCH aObj Mann a0bj2 Buch gt GIB ES IHM aObj ihm Mann a0bj2 es Buch Zahl ist ein besonderes Objekt Es bedeutet dass der Spieler anstelle eines Objekts im Spiel eine Zahl eigegeben hat Der Wert der Zahl wird in der Variable Nummer gespeichert Dieser Befehl kann offensichtlich nur auf das R dchen angewandt werden Deshalb wird alles im Ausf hrungsblock des Befehls definiert Ein Befehl der allgemeing ltiger ist h tte 45 7 Befehle dort nur eine allgemeine Antwort Die spe
65. m einen Ball so sucht das Programm eigenm chtig einen aus da wegen des unbestimmten Artikels angenommen wird dass es dem Spieler egal ist welchen Es wird wohl der zuerst erw hnte sein also der blaue Man kann sogar Nimm zwei B lle 56 8 Klassendenken oder Hebe alle B lle au er den bunten auf angeben Das funktioniert nat rlich nur bei Befehlen die Mehrfachobjekte zulassen wie nehmen und hinlegen Die Eingabe mit unbestimmtem Artikel oder Zahlwort wird bei allen Objekten erkannt die gemeinsames Vokabular haben aber bei Klassen ist die Definition nat rlich wesentlich einfacher Zum guten Schluss lassen sich mit Klassen gleiche Objekte zusammenfassen Gleiche Objekte sind Objekte die derselben Klasse angeh ren und die kein individuelles Vokabular besitzen Diese Objekte sind also nie einzeln ansprechbar sondern immer nur als Objekt einer Klasse Die Gruppierung funktioniert wie oben nur dass die Objekte nicht zus tzlich in Klammern aufgelistet werden ObjKlasse Silberm nze Plural Silberm nzen Obj S1 Silberm nze Obj S2 Silberm nze Obj S3 Silberm nze Obj S4 Silberm nze ObjKlasse Kupferm nze Plural Kupferm nzen Obj K1 Kupferm nze Obj K2 Kupferm nze Die Liste lautet hier z B Hier sind vier Silberm nzen und zwei Kupferm nzen Obwohl die M nzen gleich sind m ssen sie unterschiedliche IDs besitzen F r das Programm sind sie also doch verschieden Aufgabe 23
66. miert werden Aber eins nach dem anderen Definieren wir also eine Person f r unsere Haus und Waldidylle vielleicht einen Naturliebhaber obj Wanderer Name Wanderer m vor wanders subst wanderer m mann m Ort Lichtung Attr Person transparent Besch Der Wanderer ist ein gutgelaunter Kerl Ende Drei ig der eine Kniebundhose und ein kariertes Hemd tr gt und sich an den sch nen Dingen des Lebens das hei t der intakten Natur erfreut Dabei Der Wanderer tr gt liste 1 bei sich Erst Ein Wandersmann sitzt hier und macht gem tlich Pause Damit ist der erste Schritt getan Der Wanderer befindet sich auf der Lichtung und ist einfach da Mehr aber auch nicht Die Passivit t des Wanderers ndert sich aber im n chsten Abschnitt Dabei ist brigens das quivalent von Darin und Darauf f r Dinge die eine Person bei sich hat 9 2 Reaktionen Personen bringen nat rlich Leben in ein Adventure Sie reagieren auf Aktionen des Spielers sie reden mit dem Spieler und wandern unter Umst nden sogar auf eigene Faust umher Das macht diese Personen interessant aber auch nicht ganz einfach zu programmieren Schon unwichtige eher muffelige Zeitgenossen ben tigen einige Zeilen um ihr Verhalten zu beschreiben Bei ausgereiften Charakteren wie sie z B in Detektivadventures vorkommen steigt der Aufwand um ein Vielfaches und trotzdem wirken die NPCs manchmal immer noch stereotyp 59 9 Personen und Kommunikation K
67. mlich fettig aber egal du bist jetzt weniger hungrig EndeAusf Obj fauler_Apfel Verpflegung NachAusf essen Stop Bah Der faule Apfel bekommt dir gar nicht und du spuckst die berreste sofort aus EndeAusf 53 8 Klassendenken Bei diesen beiden Objekten wird der Text des Essens nachtr glich abge ndert Beim Landj ger wird nachher allerdings die Reduzierung des Hungers durchgef hrt beim Apfel nicht da hier die Handlung mit Stop abgebrochen wurde 8 3 Variablen f r Objekte Zu Objekten k nnen Variablen definiert werden die allerdings nur Zahlenwerte von O bis 255 annehmen k nnen Dabei muss der Variablenbezeichner von allen anderen IDs verschieden sein Verschiedene Objekte k nnen aber dieselbe Variable besitzen Diese Variablen werden im Objektblock mit Var Variablen ID Wert definiert der Wert kann wie immer weggelassen werden er ist dann Null In Ausf hrungsbl cken spricht man die Variablen mit Objekt Variablen ID an Dabei kann Objekt ein Objekt oder eine Objektvariable sein und das macht die Variablen f r Objekte nat rlich besonders n tzlich Ein Objekt bei dem eine Variable nicht definiert wurde besitzt sie einfach nicht Man kann sie dann nicht ndern und wenn man sie lesen will ist sie immer Null Deshalb muss man vorher schon einmal nachfragen ob ein Objekt eine Variable berhaupt besitzt Das geht mit folgender Bedingung Objekt besitzt Variablen ID Diese Variablen
68. monen und deshalb habe ich unsere Flagge auch so genannt Die meisten Systeme haben ein ausgereifteres Konzept dazu aber was einfach ist muss ja nicht unbedingt schlecht sein Wichtig ist dass man daran 82 Anhang A L sungen zu den Aufgaben denkt den D mon in jeder Runde um eins zu erh hen 83
69. n Manche Befehle verlangen kein Objekt und oft ist a0b3j2 Null d h nicht vorhanden Es gibt auch noch ein a0bj3 aber es wird so gut wie nie verwendet Die wichtigste Raumvariable ist aRaum die immer angibt wo sich der Spieler befindet Ihr sollte nie explizit ein Wert zugwiesen werden sondern sie sollte mit GeheZu automatisch angepasst werden Die meisten Variablen stehen nur f r Zahlen in T A G k nnen dies die Zahlen von 0 bis 255 sein Diese Variablen hei en in T A G nicht ganz korrekt Flaggen Eine Flagge kann normalerweise nur zwei Zust nde annehmen n mlich gesetzt und nach gesetzt In T A G gilt eine Flagge als gesetzt wenn ihr Wert gr er als Null ist Bereits benutzte Flaggen sind die bereits erw hnten maxInv maxGew maxVol Inv InvGew und InvVol x Zwei weitere Flaggen Minuten und Stunden geben die Zeit im Spiel an Jeder Zug dauert eine Minute und es wird still mitgez hlt Die meisten Adventures benutzen keine Zeitangeben dies wird aber manchmal in Krimi Adventures verwendet Manchmal muss man negative Zahlen oder Zahlen die gr er sind als 255 speichern Dazu gibt es ein besonderes Zahlenformat Integer Integer Zahlen k nnen Werte von 2 Mrd bis 2 Mrd annehmen Bereits definierte Integerwerte sind Z ge in dem angegeben wird wieviele Z ge der Spieler bereits gemacht hat und Pktzahl ein Integer der nur gelesen werden kann und der die Gesamtpunktzahl des Spielers enth lt s Kap 10 2 x Ei
70. n Sinne werden von T A G aber so behandelt Da Diagnose ein Befehl ohne Objekte ist muss hier nichts weiteres angegeben werden Der Ausf hrungsblock enth lt ein Konstrukt das mit jenach beginnt und mit Ende aufh rt Dazwischen stehen Zahlen in Klammern und Text Anweisungen Dieses Konstrukt ist eine Vereinfachung von wenn Gesundheit 1 Text Du stehst mit einem Bein im Grab wenn Gesundheit 2 Text Du bist stark angeschlagen In den Klammern k nnen auch mehrere Angaben stehen Au erdem k nnen statt Zahlenwerten auch Objekte oder R ume verglichen werden Diese Schreibweise ist hnlich wie die Schreibweise in den Vor und NachAusf Bl cken Aufgabe 19 Erzeuge einen Befehl der den Spieler wenn er das magische Wort XYZZY sagt auf magische Weise ins Haus teleportiert 44 7 Befehle Die meisten Befehle verlangen allerdings Objekte Welche Objekte das sind muss dann in dem Befehl angegeben werden Definieren wir also einmal den Befehl drehe x auf y der auf unseren Safe gem nzt ist Bef drehen_auf Name drehen Verb drehe Syntax dasObj auf dasObj Allg Ausf Bed a0Obj R dchen Safe Das kannst du nicht drehen Bed a0bj2 Zahl Du kannst das R dchen nur auf eine Nummer drehen Bed Nummer gt 1 und Nummer lt 100 Das R dchen kann nur auf Zahlen von 0 bis 99 gedreht werden Sei Code Nummer Text Du hast das R dchen auf code gedreht EndeAusf Dieser Befeh
71. n die Bedingung immer wahr ist wird die Anweisung immer wiederholt Man nennt dies eine Endlos Schleife Ein Beispiel w re solange 1 lt 5 Text ki Ende Weitere Schleifen lassen eine Variable von einem Anfangs zu einem Endwert laufen Schleife Variable Anfang Ende Anweisungen Ende Diese Schleifen hei en in den meisten Programmiersprachen for Schleife Sie sind ein einfaches Hochz hlen einer Variable Schleife x 1 10 Text num x x Ende Anstatt einer Flagge kann eine Schleife auch eine Objekt oder Raumvariable sein Dann werden alle Objekte oder R ume abgearbeitet Anfang und Ende m ssen nicht angegeben werden 42 6 Variablen Sei x 0 Schleife xObj Inkr x Ende Text Ee gibt x Objekte in diesem Adventure Eine n tzliche Sache ist das Verbinden einer Schleife mit einer Bedingung die an die Variable in runden Klammern angeh ngt wird Sei x 0 Schleife xRaum xRaum dunkel Inkr x Ende Text Es gibt num x dunkle R ume in diesem Adventure Zusammenfassung e Variablen sind Merker f r bestimmte Sachverhalte Variablen in T A G sind global d h der Wert einer Variable ist von berall aus abrufbar e Es gibt Variablen f r Zahlen Objekte R ume Zust nde Richtungen und Befehle also quasi zu jedem Element von T A G e Mit den Anweisungen sei inkr dekr usw kann der Wert einer Variable ver ndert werden e Aktionen die mit einem Sternchen definiert werden werd
72. n mehrere Anweisungen von einer Bedingung abh ngig machen Dann benutzt man Wenn Bedingung dann beliebig viele Anweisungen Ende Dies funktioniert genau wie die einfache Wenn Bedingung alles zwischen dann und Ende wird nur ausgef hrt wenn die Bedingung wahr ist Zu diesem Konstrukt gibt es eine Erweiterung Manchmal m chte man eine Fallunterscheidung machen Wenn das gilt mache das wenn nicht etwas anderes Dazu kann man die Wenn dann Bedingung mit sonst erweitern Wenn Bedingung dann Anweisungen f r erf llte Bedingung sonst Anweisungen f r nicht erf llte Bedingung Ende Eine Sache die in Adventures sehr h ufig vorkommt sind Bedingungen die zum sofortigen Abbruch des Befehls f hren wenn sie nicht erf llt sind Zum Beispiel checkt anziehen ob das Objekt ein Kleidungsst ck ist nehmen ob man es mitmehmen kann liegen ob es eine Liege ist usw Ist dies nicht der Fall bekommt der Spieler einen Satz auf den Bildschirm und er darf einen neuen Befehl eingeben Dies w rde im Moment so aussehen 29 5 Anweisungen Wenn Bedingung dann Text Text Stop Ende oder k rzer Wenn Bedingung Stop Text Eine Alternative hierzu ist Bed Bedingung Text Man muss nur aufpassen dass hier die Bedingung nicht verneint ist Die Bed Bedingung ist die Bedingung zum Weitermachen die Wenn Bedingung die zum Abbrechen Welche Schreibweise man benutzt ist aber letztendlich egal Aufgabe 11
73. n und Steuerstrukturen Bedingungen spielen gerade bei Adventures eine wichtige Rolle Der Geheimgang ist nur sichtbar wenn Hebel A gezogen ist Knopf B zweimal gedr ckt wurde und der Spieler den Gegenstand C bei sich hat So oder so hnlich sehen viele R tsel aus Die Bedingungen sind relativ selbsterkl rend Die wichtigsten sind Objekt Raum Attribut ist wahr wenn das Objekt oder der Raum ein Attribut besitzt Objekt in Ort ist wahr wenn ein Objekt an einem bestimmten Ort ist Der Ort ist dabei wie mit der Ort Zeile in der Objektdefinition angegeben Wenn Ort ein Raum ist wird in vorangestellt 28 5 Anweisungen Objekt Zustand ist wahr wenn ein Objekt den Zustand hat Proz Zahl ist in Zahl Prozent aller F lle wahr Hier wird zuf llig eine Zahl zwischen 0 und 100 bestimmt wenn diese kleiner ist als Zahl so ist die Bedingung wahr Proz 50 ist eine fifty fifty Chance Licht_In Raum ist wahr wenn man im Raum sehen kann Dies ist genauer als Raum dunkel da Lichtquellen mit ber cksichtigt werden All diese Bedingungen k nnen mit einem Schr gstrich verneint werden Diese Bedingungen werden in sogenannten Steuerstrukturen benutzt Eine haben wir schon kennengelernt Wenn Bedingung Anweisung Wenn Bedingung Anweisung Diese beiden Formen sind gleich und meinen Wenn die Bedingung wahr ist f hre die Anweisung aus Hier kann nur eine Anweisung stehen Oft m chte ma
74. n weiterer Integer Nummer wird verwendet wenn in der Angabe des Spielersanstelle eines Objekts eine Zahl angegeben wird wie z B in W hle 112 auf Telefon a0b7 w re in diesem Fall ein besonderes Objekt mit dem Namen Zahl 6 2 Variablen definieren und ndern Man kann sich nat rlich weitere Variablen definieren Dazu muss au erhalb eines Definitionsblocks eine der Anweisungen 35 6 Variablen ObjVar ID Anfangswert RaumVar ID Anfangswert Flagge ID Anfangswert Integer ID Anfangswert stehen Die ID muss nat rlich wie immer eindeutig sein Der Anfangswert kann weggelassen werden dann ist er automatisch Null bzw kein Raum oder kein Objekt was auch mit Null gekennzeichnet wird Wie der Name schon sagt sind Variablen genau das n mlich variabel Man kann eine Variable z B auf einen bestimmten Wert ndern indem man in einem Ausf hrungsblock die Anweisung sei Variable Wert benutzt Wert kann hier ebenfalls eine Variable sein dann haben die Variablen den selben Wert n mlich den der zweiten Variable Man muss nur aufpassen dass man hier nicht pfel mit Birnen verwechselt Objektvariablen k nnen nur Werte haben die ein Objekt sind Raumvariablen k nnen nur R ume speichern und Flaggen und Integer nur Zahlen Alle Variablentypen k nnen jedoch den Wert O annehmen Es gibt einige weitere Anweisungen die eine Variable relativ zu ihrem jetzigen Wert ndern inkr Variable Wert Erh hung
75. nbedingt f r den Spieler zug nglich wie z B etwas das in einem transparenten Beh lter eingeschlossen ist mobil Das Objekt ist im Raum und kann aufgehoben werden Inhalt Das Objekt ist in einem anderen enthalten Inhalt kann nur f r a0bj verwendet werden und es bezieht sich immer auf a0b32 Die Attributangabe erfolgt wahlweise Sie muss nicht erf llt sein Sie dient nur dazu eventuell vom Spieler weggelassene Objekte zu raten Wenn es ein Objekt das das angegebene Attribut besitzt am Ort gibt so wird es automatisch angenommen und dem Spieler in runden Klammern mitgeteilt gt SETZ DICH auf den Louis XV Sessel Du l sst dich etwas unelegant auf dem filigranen Sessel nieder Wenn man ein Verb in ein anderes umleitet sollte man aufpassen dass man f r jedes Objekt die passenden Zusatzangaben macht 47 7 Befehle 7 3 Befehle erweitern In T A G sind die h ufigsten Befehle bereits implementiert Sie funktionieren in der Regel wie man es gerne h tte aber trotzdem m chte man sie manchmal ndern Deshalb kann man jeden der bereits vordefinierten Befehle noch einmal definieren und ihn so erweitern Wenn zum Beispiel eine Blume im Spiel vorkommt so m chte sie der Spieler automatisch pfl cken anstatt sie aufzuheben oder einfach zu nehmen obwohl es eigentlich dasselbe ist Also erweitern wir den Befehl nehmen Bef nehmen Verb pfl cke Das war s und schon erkennt T A G das Verb pfl cken
76. ng Vase die zu einem Scherbenhaufen wird wenn der Spieler sie wirft oder zerst rt Zusammenfassung e Aktionen bestehen aus einer Anzahl von Anweisungen die nacheinander abgearbeitet werden Die Definition dieser Anweisungen erfolgt in einem Ausf hrungsblock der mit Ausf beginnt und mit EndeAusf abgeschlossen wird e Die Aktion Anfang wird zu Beginn des Spiels durchgef hrt e Zu Objekten k nnen die Ausf hrungsbl cke VorAusf und NachAusf definiert werden um in den Ablauf einer Befehlsausf hrung einzugreifen 33 5 Anweisungen e Bedingungen sind Ausdr cke in runden Klammern die bestimmte Sachverhalte in der Spielwelt berpr fen Sie werden oft in Steuerstrukturen wie wenn dann benutzt e Mit den Anweisungen ObjNach ObjZust AttrHin und AttrWeg k nnen Objekte au erhalb der in T A G bereits vorhandenen Regeln manipuliert werden Verweise e Handbuch Kapitel 5 Programmieren der Ausf hrungsbl cke e Handbuch Kapitel 6 Die verschiedenen Aktionen im Spiel 34 6 Variablen 6 1 Vorhandene Variablen Variablen sind Merker f r Werte In T A G k nnen Variablen auch Merker f r Objekte R ume und Befehle sein Einige Variablen haben wir schon kennengelernt n mlich die Inventar Daten und aRaum Es gibt aber noch weitere Variablen die bereits vordefiniert sind Die wichtigsten sind wahrscheinlich die Objektvariablen Die Variablen a0bj und a0bj2 stehen f r die Objekte die im Befehl des Spielers erw hnt werde
77. nieren Zu jedem Raum kann ein Ausgang in jede Richtung angegeben werden Dieser Ausgang kann ein anderer Raum oder eine Antwort sein e R ume k nnen Attribute besitzen Verweis e Handbuch Kapitel 3 1 R ume und ihre Verbindungen 11 3 Objekte 3 1 Unser erstes Objekt ein Zettel Was ist ein Adventure ohne Schwert Lampe und Proviant Sehr langweilig wie wir aus dem vorigen Kapitel wissen Deshalb wollen wir nun ein paar Objekte einf gen Als Begr ungsbotschaft legen wir dem Spieler einen Zettel vors Haus Obj Zettel Name Zettel m Subst zettel m Ort vor_dem Haus Das ist im Grunde genommen alles Das Objekt hat eine ID die von allen anderen IDs eindeutig zu unterscheiden sein muss auch von allen R umen und Antworten Es hat einen Namen der in der Ausgabe der T A M verwendet wird Dieser Name muss eine Angabe zum grammatikalischen Geschlecht enthalten die dem Namen als m n oder p nachgestellt wird Es hei t der Zettel also ist das Geschlecht m wie m nnlich oder maskulin Das Subst antiv geh rt zum Vokabular des Objekts mit dem es der Spieler in seinen Anweisungen ansprechen kann Die einzige Angabe ist hier zettel wieder gefolgt von einer Genus Kennzeichnung Wir k nnen den Zettel also nur Zettel nennen Das Substantiv in Anf hrungsstrichen darf keine Leerzeichen haben Alle Gro buchstaben werden in Kleinbuchstaben verwandelt alle 8 in ss und alle ae oe und
78. nitionen verwendet und konnten damit eine Spielwelt mit bestimmten Regeln schaffen Ein eigenes Adventure ben tigt aber zu diesen allgemein g ltigen Regeln noch weitere die der Autor selbst definieren kann Das wollen wir jetzt machen Zum Beispiel K nnte der Spieler auf die Idee kommen die Taschenlampe zu ffnen um an die Batterien zu kommen Die Antwort darauf w re Du kannst doch keine Taschenlampe ffnen was nicht besonders toll ist Wir wollen dem Spieler stattdessen etwas anderes sagen dazu erweitern wir die Definition der Taschenlampe Obj Lampe 26 5 Anweisungen VorAusf ffnen Text Wozu Die Batterien tun es noch und es gibt nichts wozu man sie sonst gebrauchen k nnte Stop EndeAusf Die zus tzliche Definition ist wieder ein Ausf hrungsblock er wird wie eine Aktion mit EndeAusf abgeschlossen beginnt aber mit VorAusf Eine VorAusf kann zu einem Objekt definiert werden VorAusf bedeutet dabei etwas holprig F hre diesen Block aus bevor du den eigentlichen Befehl abarbeitest Das erste Element im Block ist ein Befehlsname der in runden Klammern steht Solche Angaben in runden Klammern bedeuten Wenn der vom Spieler eingegebene Befehl ffnen ist dann f hre alles aus was jetzt kommt bis du einen anderen Befehl in runden Klammern oder EndeAusf erreichst Dann folgen zwei Anweisungen Die Text Anweisung kennen wir schon sie gibt den folgenden Text aus Die n chste Anweisung Stop bewirk
79. r nke herausfindet ohne sie zu trinken wird hier leider nicht beschrieben 79 23 Anhang A L sungen zu den Aufgaben ObjKlasse rostige_M nze Name rostig M nze f Plural rostig M nzen p Adj rostig Subst m nze f m nzen p Besch Man kann nicht erkennen was f r eine M nze es einmal war Ein guatemaltekischer Quetzal Ein Maria Theresien Taler Oder eine Oresund Ore von 1782 Wer wei Obj rostigl rostige_M nze Ort beimir Obj rostig2 rostige_M nze Ort in W schekorb Obj Kr gerrand Name kr gerrand m Vor kr ger Subst rand m m nze f Besch Unter einem springenden Gnu steht der Wahlspruch Soli Deo Gloria Obj Halfpenny Name Halfpenny m Adj halb Vor half Subst penny m Besch Obwohl es nur ein Halfpenny ist hat er die Form eines ganzen Kreises Das britische Wappen prangt auf der R ckseite Obj L sungsmittel Name Glas mit L sungsmittel n Vor l sungs rost Ort Keller Subst glas n gef n mittel n Subst chemikalie f Besch In dem Glas schwimmt eine t rkise Chemikalie die relativ aggressiv aus sieht Laut Etikett ein Rostl semittel VorAusf empfangen Bed a0bj rostige_M nze Es ist ein Rostl semittel Du tust am besten nur rostige Sachen hinein Bed Handschuhe angezogen Ohne Handschuhe packe ich nicht in diese Br he Jenach a0Obj rostigl Sei xObj Kr gerrand 80 Anhang A L sungen zu den Auf
80. r Ablage Ort Im_Haus 19 4 Einige besondere Objekte Das Dach im Namen zeigt an dass es sich beim vorangehenden Wort um ein Adjektiv handelt Anstelle des Dachs wird die passende Endung eingef gt je nachdem in welchem Fall das Objekt ausgegeben werden soll Das Adjektiv wird im Namen genau wie bei den Vokabeln ungebeugt angegeben Damit haben wir einen Tisch auf dem wir Dinge ablegen k nnen Um Sachen schon zu Beginn des Spiels auf den Tisch zu legen geben wirOrt auf Tisch an Das Pendant zu Darin ist Darauf lll Jetzt wo ein Tisch im Haus steht ist die Beschreibung des Raums nicht mehr ganz korrekt Anstatt Es gibt keine M bel sollte man vielleicht nur wenige M bel oder Der Raum ist sp rlich m bliert schreiben Solche Nachbesserungen werden oft n tig wenn andere Objekte ins Spiel kommen Habt Ihr mit dem Tisch schon herumgespielt und Sachen daraufgelegt und wieder weggenommen Sch n Habt Ihr auch einmal versucht den Tisch zu aufzuheben Wenn nicht dann probiert es mal Hoppla Du hast nun den Tisch Das ist schon etwas eigenartig oder Eigenartig vielleicht aber richtig Wenn nichts weiteres angegeben wird sind alle Objekte beweglich Das hei t sie K nnen aufgehoben und mitgeschleppt werden Es gibt aber in Adventures viele Objekte die man nicht aufheben kann wie eben z B M bel F r solche Objekte gibt es das Attribut fest Also dem Tisch fest verpassen Adventure neu gener
81. r Osten geht Etwas surreal aber technisch m glich Aufgabe 2 Schreibe passende Antworten f r die beiden anderen R ume 2 4 Im Dunkeln Wir haben die Haupt Eigenschaften eines Raums kennengelernt Die ZD die innerhalb des Quelltext diesen Raum repr sentiert Der Name der in der Statuszeile erscheint und der als Kurzbeschreibung hergenommen wird wenn der Raum bereits bekannt ist Die Beschreibung die dem Spieler ein Bild von seinem Aufenthaltsort vermittelt Die Ausg nge die entweder in einen anderen Raum f hren oder einem nur sagen dass es in dieser Richtung nicht weiter geht Eine wichtige Sache fehlt noch R ume k nnen Attribute besitzen Ein Attribut f r R ume ist z B besucht Dieses Attribut bezeichnet ob ein Raum dem Spieler bereits bekannt ist oder nicht und wird unter anderem f r die langen und kurzen Raumbeschreibungen herangezogen Dieses Attribut wird allerdings automatisch von T A M gesetzt wenn ein Raum betreten wird Das zweite wichtige Attribut ist dunkel Besitzt ein Raum dieses Attribut so kann der Spieler in diesem Raum nichts sehen es sei denn er hat eine Lampe oder hnliches bei sich Von einem dunklen Raum aus kann der Spieler nur in einen hellen bekannten Raum gehen So kommt er zumindest immer wieder zur ck wenn er will Als Beispiel definieren wir einen Keller f r das Haus Raum Im_Haus W Vor_dem Haus R Keller 10 2 Eine virtuelle Welt Name In dem kleinen Haus Besch Da
82. r Regel keine Leerzeichen sind eher kurz und klein geschrieben Diese W rter werden von der Text Adventure Maschine verstanden Anweisungen die in Bl cken zwischen Ausf und AusfEnde zusammengefasst sind 1 Einleitung Steuerkommandos die aus einem Lattenzaun und drei Buchstaben bestehen Diese Elemente werden wir uns im n chsten Kapitel n her anschauen wenn wir unser erstes eigenes Adventure schreiben Zusammenfassung e T A G und T A M ben tigen mindestens ein Argument um gestartet werden zu k nnen den Namen des Spiels Die einfachste Methode T A G T A M zu starten ist aus der MS DOS Eingabeaufforderung heraus e Zum Erstellen des Adventures kann ein beliebiger ASCH Editor verwendet werden Verweis e Handbuch Kapitel 2 Grundkonzept eines Adventures 2 Eine virtuelle Welt 2 1 Es geht endlich los Nun wollen wir unser erstes Adventure schreiben Kreativ wie wir sind nennen wir es test adv und ffnen es im Editor Im Editor schreiben wir Raum Vor_dem Haus Name Vor dem Haus Besch Du befindest Dich vor einem kleinen wei en Haus das im Osten liegt Vor dem Haus wachsen wilde Blumen und ein kleiner Trampelpfad f hrt nach Norden in einen Wald Ende Abspeichern und mittag test generieren Es sollte keine Fehler geben ansonsten noch einmal die Syntax berpr fen Damit haben wir das minimal m gliche Adventure mit nur einem Raum erstellt T A G verlangt n mlich dass mindestens ein R
83. rd mehr nicht Wer W rter ohne Fettdruck betonen m chte kann sich an die e Mail Konvention halten und sie in Sternchen oder _Unterstriche_ einschlie en Zum guten Schluss gibt es einen Block zur Umgebungsdefinition Hier K nnen der Name des Spiels eine Kennung die f r abgespeicherte Spielst nde verwendet wird und die Textfarben definiert werden F r unser Testbeispiel s he das etwa so aus Umgebung Name Der Test Kennung test Text hellgrau blau Fett wei blau Zeile rot lt shellgrau wei blau usw sind hier Systemkonstanten f r die Farben Da Farben immer Geschmackssache sind kann der Spieler diese in der T A M ausschalten wenn er m chte 10 6 Ausblick Wenn Ihr Euch durch dieses kurze Tutorium gearbeitet habt und ab und zu mit dem Kopf nicken konntet dann seid Ihr jetzt fit genug um ein eigenes Adventure auf die Beine zu stellen Dabei werdet ihr wahrscheinlich ab und zu auf Probleme sto en Dann schaut Euch das Handbuch an insbesondere Teil I Wer etwas weiter in die Theorie von T A G eindringen will sollte sich Buch III des Handbuchs zu Gem te f hren Dort werden weitere Beispiele behandelt die man bestimmt auf sein eigenes Adventure hin abwandeln kann Die Grundlage zum Verst ndnis des dritten Teils d rfte mit diesem Tutorium geschaffen worden sein Also es bleibt mir nichts anderes brig als Euch ein frohes Schaffen zu w nschen Wenn ihr absolut nicht weiterwi t oder Euch gar P
84. rig Das Volumen der Gegenst nde wird auch f r die Schachtelung von Objekten ineinander benutzt Das Volumen eines Beh lters ist nicht nur sein Au envolumen sondern ebenfalls sein Fassungsverm gen Das hei t die Summe der Volumina aller Objekte in einem Beh lter darf nicht gr er sein als das Volumen des Beh lters selbst Dieses Konzept gilt auch f r Ablagen die zwar kein Volumen in dem Sinne haben aber auch keine unbegrenze Kapazit t Hier ist also etwas Abstraktions verm gen bei der Volumendefinition gefragt Wenn man die Definition von Volumen verwendt verhindert man damit unm gliche Sachen z B dass man einen gro en Karton in ein kleines Ebenholzk stchen legen kann Man muss sich allerdings die M he machen und sinnvolle Volumina zu jedem Objekt finden Achtung Beh lter sollten dann in jedem Fall ein Volumen erhalten auch wenn sie fest oder immobil sind Wer zu keinem Objekt ein Gewicht oder ein Volumen definiert l sst diese Konzepte einfach au er acht so wie wir es bis jetzt getan haben Die Beschr nkung der beim Spieler getragenen Gegenst nde greift jedoch immer kann aber durch Setzen von maxInv auf einen usinnig hohen Wert z B 200 umgangen werden Aufgabe 8 Definiere f r alle Objekte die bis jetzt in Deinem Testspiel sind sinnvolle Volumen Erzeuge einen Wanderstab der nicht in den Rucksack passt den man aber auf den Tisch legen kann x Auch ein Volumen oder ein Gewicht von Null k nnen sinnvoll se
85. ro War vielleicht als Gondel f r einen Fesselballon gedacht VorAusf nehmen Stop Der Korb ist sehr gro und sehr schwer Lass ihn besser stehen EndeAusf Dann eine nderung beim W scheschacht Obj W scheschacht NachAusf empfangen Text Du legst den a0bj in den Schacht und er rutsch t bald au er Sichtweite ObjNach a0bj in W schekorb EndeAusf 75 Anhang A L sungen zu den Aufgaben 17 Dazu definieren wir zwei Objekte 18 19 Obj Mingvase Name Ming Vase f Adj sch n wertvoll prachtvoll Adj unbezahlbar teuer chinesisch Adj unerme lich s ndhaft wundersch n Adj selten rar verziert einmalig vor ming Subst vase f rarit t f Vol 4 Attr Beh lter Ort auf Tisch Besch Diese Ming Vase ist eine der letzten aus der zweiten Ming Dynastie und ist eine unbezahlbare Rarit t Jeder halbwegs gescheite Arch ologe w rde sich nach diesem St ck die Finger lecken VorAusf zerst ren werfen Text Die Vase zersplittert in tausend Scherben Gut gemacht Tausche Mingvase Scherben ObjNach Scherben aRaum EndeAusf Obj Scherben Name tausend Scherben p 2 adj ehemalig einstig vor ex subst scherben p vase f Besch Diese Scherben waren eine der leztzten Vasen aus der zweiten Ming Dynastie und waren eine unbezahlbare Rarit t Jeder halbwegs gescheite Arch ologe w rde sich den Idioten in die Finger w nschen der sie zerst rt hat
86. robleme mit T A G oder T A M auffallen etwas das sich leider nicht ausschlie en l t dann schreibt es mir unter martin oehm gmx de Zusammenfassung e Der Spieler in T A G ist kein Objekt sondern wird durch Variablen beschrieben e T A G verf gt ber ein ereignisabh ngiges Punktesystem Mit der Angabe Punkte Ereignis Nr Punktezahl k nnen leicht Punkte vergeben werden e Mit gestorben kann man den Spieler sterben lassen mit gewonnen gewinnt er das Spiel 67 10 Verschiedenes und Ausblick e Die Standardtexte in tag std k nnen angepasst oder komplett neu geschrieben werden solange sie dieselben Nummern wie in tag std haben e Mit Formatvariablen l t sich das u ere Erscheinungsbild der Ausgabe in T A M ndern Ein Umgebungsblock definiert allgemeine Konstanten e Ab hier m t Ihr selbst weitermachen Empfohlene Lekt re ist Teil III des T A G Benutzerhandbuchs Empfohlene Methode ist learning by doing Verweise e Handbuch Kapitel 13 Der Spieler e Handbuch Kapitel 7 Erstellen der Texte e Handbuch Kapitel 8 Allgemeines e Handbuch Kapitel 16 Extras e Handbuch Kapitel 17 Allgemeine Tips und Tricks e Der Spieler in karn adv e Die Texte in tag std und karn std 68 Anhang A L sungen zu den Aufgaben 1 Einfach folgende Zeilen in die Raumbl cke einf gen Raum Rein Raum Raus Vor dem Haus Im Haus Im Haus Vor dem Haus Rein und Raus sind innormal adv definiert
87. s kleine Haus ist irgendwie leer Es gibt keine M bel und die W nde sind kahl Im Westen geht es wieder hinaus Durch eine offenen Fallt r im Boden siehst du eine Treppe die nach unten in die Dunkelheit f hrt Raum Keller Name Keller H im_ Haus Besch Dieser Keller riecht modrig die feuchten w nde sind mit Moos bewachsen Das was von den verfaulten Regalen briggeblieben ist ist leer Eine intakte Holztreppe f hrt zur ck nach oben Attr dunkel Die Leerzeile in der Raumbeschreibung bewirkt einen Absatz bei der Ausgabe Der Keller ist dunkel das bewirkt die Zeile Attr dunkel Wenn wir das neue Adventure erstellen und spielen wie gehabt so erhalten wir wenn wir vom Haus aus nach unten gehen r runter h hoch die Nachricht Es ist zu dunkel hier um etwas sehen zu k nnen anstelle der Raumbeschreibung und in der Statuszeile steht Im Dunkeln Wir befinden uns zwar im Keller aber wir k nnen nichts machen au er wieder zur ck nach oben zu gehen Wenn wir versuchen in eine andere Richtung zu gehen stolpern wir nur umher Aber das ndert sich im n chsten Kapitel in dem wir anfangen Objekte zu definieren Zusammenfassung e R ume bilden das Grundger st eines Adventures die Landschaft e Die R ume k nnen in abgeschlossenen Bl cken definiert werden Sie bekommen dort einen Namen und eine Beschreibung e Um die R ume miteinander zu verbinden muss man Richtungen defi
88. s man dem Spieler keine Vor und NachAusf verpassen kann Deshalb m ssen spezielle Dinge die den Spieler betreffen direkt bei der Befehlsdefinition abgefangen werden Bef t ten Name t ten Verb t te bringe um massakriere Syntax dasObj Person Ausf wenn a0Obj du dann Text Na out gestorben Ende Text was soll diese rohe Gewalt EndeAusf 10 2 Punkte Nach wie vor wird der Erfolg des Spielers in Adventures oft mit Punkten gemessen In T A G gibt es dazu ein System das f r einzelne Aktionen vergebene Punktzahlen automatisch addiert Dazu muss man sich nur berlegen welche Aktion im Spiel wieviele Punkte gibt Jede dieser Aktionen bekommt eine Nummer die von 1 bis 255 gehen kann Zu Beginn ist die Punktzahl f r alle Aktionen null Wenn zum Beispiel das ffnen des Safes f nf Punkte bringen soll und wir diesem Ereignis die Punktenummer 1 geben so ndert sich unsere Aktion zum Safe ffnen Aktion Ausf Wenn code 23 und Safe abgeschlossen dann Text Vom Safe h rst du ein leises Klick ObjZust Safe geschlossen Punkte 15 Ende 64 10 Verschiedenes und Ausblick EndeAusf Die Anweisung Punkte bewirkt dass f r Ereignis 1 5 Punkt vergeben werden Je nachdem ob Punktestandsmeldung eingeschaltet ist oder nicht wird auch ein Text wie Du hast gerade 5 Punkte bekommen ausgegeben Was aber wenn wir den Safe schlie en und dann wieder ffnen Nichts denn T A G hat f r dieses Ere
89. s nicht ganz vertraut sind Alte Hasen d rfen diesen Absatz l chelnd berspringen und weiter hinten weiterlesen Ihr habt das Paket entpackt es liegt zum Beispiel im Verzeichnis c tag Das Paket enth lt eine Reihe von Dateien darunter drei ausf hrbare Schauen wir uns zun chst einmal tam exe an Je nachdem wie Windows eingestellt ist wird die Endung exe nicht angezeigt Die ausf hrbaren Dateien exe werden immer mit einem Fenster Icon dargestellt ein wei es Fenster mit blauem Rand tam exe ist die Text Adventure Maschine mit diesem Programm kann man Adventures spielen Doppelklickt einmal darauf Was passiert Ein DOS Fenster kommt hoch und sagt Euch dass etwas fehlt Au erdem erscheint eine Liste mit Optionen Funktioniert die T A M nicht Doch sie funktioniert Es fehlt nur eine wichtige Angabe Welches Adventure Ihr spielen wollt Anders als bei den meisten Programmen wo man eine Datei ffnet nachdem das Programmfenster erscheint muss man bei T A M diesen Dateinamen beim Aufruf mit angeben Im Paket ist ein fertiges Adventure enthalten n mlich karn tag Fertige Adventures haben also die Endung tag Der Befehl um es zu spielen hei t gt tag karn 1 Einleitung Dieser Befehl kann auf verschiedene Arten eingegeben werden Auf herk mmliche Art Dazu ffnet man ein DOS Fenster unter Start gt Programme MS DOS Eingabeaufforderung Es erscheint ein schwarzes Textfenster in dem man hinter dem Prompt
90. ser Deutschlehrer gar nicht gern gesehen deshalb gibt es auch Textbefehle zur Ausgabe von Verben ist Objekt ist ist wenn Objekt im Singular ist ansonsten sind hat Objekr gibt hat oder haben aus wird Objekt gibt wird oder werden aus t Objekt gibt Je oder en aus Dies ist die Endung f r schwache Verben Lam yyy Objekt Gibt xxx im Singular und yyy im Plural aus Dies kann f r unregelm ige Verben benutzt werden gibt geben a0bj Nun ist es etwas unsch n auch bei der Endung das Objekt angeben zu m ssen Daher gilt als Vereinfachung Wenn das Objekt fehlt wird das aus dem vorherigen Befehl eingesetzt Damit ndern wir den Text Text Der a0Obj verschwinde t hinter dem a0bj2 und erhalten immer einen korrekt Konjugierten Satz Etwas Aufwand vielleicht aber bestimmt die Sache wert Au erdem habe ich versucht die Befehle so zu halten dass der Satz nicht zerrissen wird Denkt man sich im Satz oben die Klammern weg bleibt ein ganz normaler Satz ber Weitere wichtige Textbefehle sind Flagge gibt den Zahlenwert der Flagge aus num Flagge gibt den Zahlenwert der Flagge aus aber benutzt Zahlw rter f r die Zahlen bis hundert XZeit gibt die Uhrzeit im Spiel im Format hh mm aus Aktion ruft die Aktion aus dem Text heraus auf Ist der erste Buchstabe in der Klammer gro so ist auch der erste Buchstabe der Ausgabe des Textb
91. sind nat rlich nicht an eine Klassendefinition gebunden Aber man kann sie im Zusammenhang mit Klassen gut einsetzen Ist bei einer Klasse eine Variable definiert so haben alle Objekte dieser Klasse auch diese Variable und zwar mit dem bei der Klasse definierten Wert Der Wert kann nat rlich in der individuellen Objektdefinition berschrieben werden So k nnen wir f r unsere Verpflegungsklasse den S ttigungsgrad angeben denn ein Baguette mit Schinken K se und Ei s ttigt doch mehr als eine Tomate ObjKlasse Verpflegung Var N hrwert 5 NachAusf essen Wenn Hunger gt selbst N hrwert dann dekr Hunger selbst N hrwert sonst l sche Hunger Ende EndeAusf 54 8 Klassendenken Damit ist genau dasselbe erreicht wie vorher Alle Verpflegungs Objekte machen den Spieler um 5 Nahrungseinheiten satter Aber wir k nnen nun diese S ttigung leicht f r verschiedene Objekte anpassen Obj Landj ger Verpflegung Var N hrwert 7 Obj Banane Verpflegung Obj BigMac Verpflegung Var N hrwert 1 Und so weiter Die Banane als Durchschnittsverpflegung beh lt hier den N hrwert von f nf Ern hrungsfanatiker w rden nat rlich Variablen f r Eiwei Kohlehydrate und Fett definieren aber als erste N herung kann man sich wohl mit der Angabe eines allgemeinen N hrwerts zufrieden geben Variablen f r Objekte sind also sinnvoll wenn mehrere Objekte typischerweise nat rlich welche die zu einer Klasse zusammengefa t sin
92. t dass der ganze Befehl ffnen sofort abgebrochen wird Sagt der Spieler also ffne Lampe dann wird der Text mit den Batterien ausgegeben und das war s Die normale Prozedur zum ffnen von Gegenst nden wird nicht mehr aufgerufen da vorher mit dem Stop Befehl eingegriffen wurde W rde das Stop vor dem Text stehen so w rde nicht einmal der Text angezeigt Bei ffne Rucksack oder einem anderen Objekt passiert nat rlich nichts denn da die VorAusf bei der Lampe definiert wurde gilt sie auch nur f r die Lampe x Da diese Kombination von Text und Stop h ufig vorkommt kann man sie abk rzen zu Stop Wozu Man kann also den Ausgabetext direkt hinter der Anweisung Stop angeben Anstatt die Durchf hrung eines Befehls vorher abzufangen kann man ihn auch nachtr glich erg nzen Die Definition hierf r hei t NachAusf Obj Zettel NachAusf nehmen Wenn Zettel bewegt Text Der Zettel f hlt sich feucht an als Du ihn aus dem taubenetzten Gras fischst EndeAusf Hier ist der Befehl nimm Zettel bereits erfolgreich ausgef hrt worden es wurde gecheckt dass der Spieler den Zettel nicht schon hat weitere Gegenst nde aufnehmen kann usw Der Zettel befindet sich bereits beim Spieler Nun wird nachtr glich ein anderer Text ausgegeben Dabei sollte man beachten dass der erste Text in der NachAusf den Standard Text bei erfolgreichem Ausf hren ersetzt alle weiteren Texte werden wie gehabt nacheinander ausg
93. tandard T A G Befehle k nnen erweitert werden 49 e Pseudobefehle k nnen benutzt werden um Befehlsdurchf hrungen bei den Ausf hrungsbl cken von a0bj2 abzufangen Verweise e Handbuch Kapitel 4 1 Befehle e Handbuch Kapitel 6 6 Neue Befehle einbauen e Befehlsdefinitionen in normal adv undkarn adv 7 Befehle 50 8 Klassendenken 8 1 Klassen von Objekten In vielen Adventures kommen Objekte vor die einander hnlich sind oder die zumindest hnliche Eigenschafen haben Beispiele sind hier die Sch tze aus Adventure und Zork Schriftrollen mit Zauberspr chen ID Clips wie in Starrider und und und Solche Objekte lassen sich in so genannten Klassen zusammenfassen Auf diese Weise muss man die allgemeinen Eigenschaften nur einmal definieren Trotzdem Kann jedes Objekt dieser Klasse individuelle Eigenschaften besitzen x Der Begriff der Klasse stammt aus der Objektorientierten Programmierung OOP die durch die Klassen sehr m chtig ist Die Klassen von T A G haben die wichtigsten Eigenschaften der OOP Klassen sind aber mehr auf reine Text Adventure Objekte zugeschnitten und daher nicht ganz so potent Eine Klasse wird genau wie ein Objekt definiert nur beginnt der Block nicht mit Obj sondern mit dem Schl sselwort ObjKlasse F r unser kleines Adventure wollen wir zum Beispiel die ganze Wegzehrung die wir definiert haben in einer Klasse zusammenfassen Dazu definieren wir ObjKlasse Verpflegung Name Verpfle
94. tensmuster soll einen geschlossenen Kreislauf bilden so dass es sich st ndig wiederholt Zusammenfassung e Andere Personen im Spiel NPCs werden von T A G als Objekte behandelt e Es gibt zwei Ausf hrungsbl cke f r Objekte VorAusf und NachAusf die es dem Objekt bzw der Person erlauben bei Befehlen zu intervenieren in denen sie nicht direkt angesprochen wurden e Ein weiterer Ausf hrungsblock BefAusf steuert das Ausf hren von Befehlen durch andere Personen die in der Form Person Befehl gegeben werden e Allgemeine Verhaltensmuster die unabh ngig vom Befehl des Spielers sind m ssen in einer Aktion definiert werden Verweise e Handbuch Kapitel 6 5 2 Ausf hrungen von Objekten e Handbuch Kapitel 12 Andere Personen im Spiel e Der alte Mann die Zwerge der Geist und die Meisterin in karn adv 63 10 Verschiedenes und Ausblick 10 1 Der Spieler Obwohl viele Dinge in T A G als Objekt dargestellt werden der Spieler nicht Er wird eigentlich nur durch eine Anzahl von Variablen beschrieben Sein momentaner Aufenthaltsort ist aRaum die Anzahl der Dinge die er bei sich tr gt ist Inv Objekte die beim Spieler sind sind beiMir die er angezogen hat angezogen Das ist vielleicht nicht ganz konsequent aber wie man so sch n sagt wenn einem nichts Besseres einf llt historisch gewachsen Wenn man sich einmal daran gew hnt hat funktioniert es auch ganz gut so Was aber unsch n ist ist das
95. ttel steht in krakeliger Schrift willkommen in der Welt von T A G Erst Etwa f nf Meter von der Hauswand entfernt liegt ein St ck Papier im Gras Damit erhalten wir folgendes Du befindest Dich vor einem kleinen wei en Haus das im Osten liegt Vor dem Haus wachsen wilde Blumen und ein kleiner Trampelpfad f hrt nach 3 Objekte Norden in einen Wald Etwa f nf Meter von der Hauswand entfernt liegt ein St ck Papier im Gras gt NIMM DEN ZETTEL Du hast nun den Zettel gt UNTERSUCHE DEN ZETTEL Der Zettel ist nur ein schmutziger Wisch Es steht allerdings etwas darauf gt LIES IHN Auf dem Zettel steht in krakeliger Schrift Willkommen in der Welt von T A G gt LEGE DEN ZETTEL HIN Du hast den Zettel hingelegt gt L Du befindest Dich vor einem kleinen wei en Haus das im Osten liegt Vor dem Haus wachsen wilde Blumen und ein kleiner Trampelpfad f hrt nach Norden in einen Wald Hier ist ein Zettel Die Erst Beschreibung ist also der Text der anstelle von Hier ist ausgegeben wird wenn das Objekt am Aufenthaltsort ist Ist das Objekt aber schon einmal aufgehoben worden gibt es wieder die normale Beschreibung Die Besch reibung ist der Text der beim Untersuchen ausgegeben wird und Text beschreibt was geschieht wenn man das Objekt liest Fehlen diese Angaben so kommen die Antworten die aus dem ersten Beispiel mit dem Zettel bekannt sind Ist Text definiert Besch aber nicht
96. tungen au er S den gehen will der Satz dass dort das Unterholz zu dicht ist und dass der Ausgang im S den ist Nun wei der Spieler warum er nicht in die gew nschte Richtung gehen kann und was er f r Alternativen hat und das ist doch besser als der Standard Satz oder Was noch st rt sind die vielen Unterholz Angaben Da es oft mehr Das geht nicht Richtungen als Ausg nge gibt kann man diese Definition abk rzen auf Raum Lichtung Std Unterholz S Vor_dem Haus Name Auf einer Lichtung Besch Dies ist eine kleine Lichtung in einem Laubwald der haupts chlich aus Eichen und einigen Birken besteht Dichtes Unterholz macht den Wald undurchdringbar nur ein Trampelpfad f hrt nach S den 2 Eine virtuelle Welt Std hei t Standard und belegt alle Standard Richtungen mit der Antwort Unterholz In normal adv wurden nur die Himmelsrichtungen als Standard Richtung definiert mit dem Sternchen und das macht auch Sinn denn wenn der Spieler auf der Lichtung nach oben gehen will ist der Grund warum das nicht klappt wohl nicht das dichte Gestr pp Die Std Definition muss vor den anderen Richtungsdefinitionen stehen da zun chst alle Himmelsrichtungen vorbelegt werden und dann der Ausgang im S den mit Vor dem Haus berschrieben wird In der Std Definition k nnen auch andere R ume angegeben werden obwohl dies meist keinen Sinn macht denn wo kommt man denn immer in denselben Raum egal ob man nach S den Norden ode
97. ugen 1 6 benutzen was die Variable Augen mit einem Wert von eins bis sechs inklusive belegt Jeder der sechs m glichen Werte ist gleich wahrscheinlich Eine Variante der Zufall Anweisung ist anstatt einen Start und Endwert eine Liste der m glichen Werte in Klammern anzugeben Zufall xObj Messer Gabel Schere Auch hier treten alle m glichen Werte mit der gleichen Wahrscheinlichkeit auf 6 3 Sachverhalte merken mit Variablen Dazu ein Anwendungsbeispiel Wir erzeugen jetzt einen Safe der ein R dchen hat das immer auf eine Nummer von 0 bis 99 gestellt ist Flagge code 66 Obj Safe Name Safe m vor stahl geld panzer subst safe m tresor m schrank m Ort Keller Zust abgeschlossen Attr immobil Beh lter Besch Der Safe ist sehr stabil und hat ein kleines R dchen an der T r das momentan 37 6 Variablen auf code gestellt ist Erst Ein schwach metallisch schimmernder Panzerschrank steht in einer Ecke des Kellers Obj R dchen Name R dchen am Safe n vor stell subst rad n r dchen n Ort an Safe Attr Fest Besch Das Stellr dchen ist momentan auf code eingestellt So wir haben eine Variable code definiert die die Position des Stellr dchens angibt Im Moment ist sie immer 66 Das wird auch mit code ausgegeben wenn man den Safe oder das R dchen untersucht Das soll sich ndern Obj R dchen VorAusf drehen Bed Safe abgeschlossen Wieso Der Safe ist bereits au
98. vor 32 5 Anweisungen AttrHin Keller dunkel Ende Stop EndeAusf Obj Ring Name Ring m subst ring m Erst In einer Ecke des Kellers liegt ein Ring Attr Kleidung Hier wird ein Ring in den Keller gelegt den der Spieler entdeckt wenn er den Lichtschalter dr ckt Die Angabe des Ortes erfolgt wie in der Ort Zeile der Objekt Definition Nirgendwo ist ein Ort den der Spieler nie betreten kann Dort werden Gegenst nde aufbewahrt die zu Beginn des Spiels noch nicht verf gbar sind Ein Gegenstand ist automatisch im nirgendwo wenn die Ort Zeile weggelassen wird x Es gibt einen zweiten Raum den der Spieler nicht betreten kann Er hei t Nirwana und dort kommen alle Gegenst nde hin die aus dem Spiel verschwinden Aufgabe 15 Definiere einen W scheschacht im Haus so dass alles was dort hineingelegt wird automatisch in den Keller rutscht Dazu muss die Pseudoaktion empfangen abgefangen werden Tip Der Schacht muss nur im_Haus definiert sein Aufgabe 16 Definiere einen Weidenkorb im Keller den der Spieler nicht mitnehmen kann und in den die W sche oder was auch immer aus dem W scheschacht rutscht Eine weitere Art Objekte zu ver ndern ist einfach ihren Ort zu vertauschen Das ist besonders wirkungsvoll wenn eines der Objekte im Nirgendwo ist Ohne dass es der Spieler mitbekommt bezieht er sich auf ein anderes Objekt Die Anweisung hierf r lautet Tausche Objekt1 Objekt2 Aufgabe 17 Definiere eine Mi
99. ziellen Geschehnisse w rden dann bei den Objekten in einer VorAusf definiert Aufgabe 20 Um Fehler und Ungereimtheiten in Spielen zu berpr fen baut man w hrend des Schreibens oft sogenannte Debug Verben ein Definiere das Verb Status Objekt das zu jedem Objekt ob es sichtbar ist oder nicht eine Liste von Informationen ausspuckt wie z B Aufenthaltsort Gewicht ob bereits benutzt oder nicht Tip F r den Aufenthaltsort beim Befehl R ume ganz unten in normal adv schauen Man muss eventuell schon einmal ins Kapitel 8 3 schauen 7 2 Vokabular von Befehlen F r Text Adventures ist es wichtig dass der Spieler seine Gedanken dem Computer in richtiger Sprache mitteilen kann Nat rlich gibt es Einschr nkungen Der Satz muss ein Befehlssatz sein der m glichst einfach aufgebaut ist Damit der Spieler aber seine Idee umsetzen kann sollte man sich also bei neuen Befehlen berlegen wie diese hei en Das Dumme ist nur dass man denselben Befehl auf verschiedene Weise ausdr cken kann insbesondere bei Befehlen die zwei Objekte ben tigen ist das so Dem Spieler wird aber meist nur eine M glichkeit einfallen und wenn es nicht klappt wird er vielleicht seine Idee aufgeben weil er denkt der Parser verst nde das Verb nicht Synonyme zu Befehlen die eine andere Satzstruktur haben k nnen in T A G abgegeben werden indem die Ausf hrung umgeleitet wird Dabei gibt man keinen Ausf hrungsblock an sondern nur das Wort
Download Pdf Manuals
Related Search
Related Contents
PicoPLEX™ DNA-seq Kit Instruction Manual APC SUA48RMXLBP3U User's Manual Diapositive 1 - Réseau Qualité en Recherche User Manual V1.0 - Blackbox-av 取扱説明書 FREE soluble RANKL High Sensitivity EJEMPLAR DE MUESTRA Instructions for e-voting Document 5653976 Hoshizaki KMD-901MAH User's Manual Copyright © All rights reserved.
Failed to retrieve file