! ! Ein Spiel fuers Deutsche ! Seriennummer 980131 Constant Story "RUMMELPLATZGESCHICHTE"; Constant Headline "^^Eine Interaktive Fantasie^ Copyright (c) 1997 by Toni Arnold^^"; Statusline time; Constant MAX_CARRIED 20; ! IDM S.128ff Constant AMUSING_PROVIDED; ! =========== include-Statements & Zeugs dazwischen ============== Include "Parser"; ! =========================================================== ! ========= Score System =========== Constant MAX_SCORE 4; Constant TASKS_PROVIDED; Constant NUMBER_TASKS 2; Constant OBJECT_SCORE 1; Constant ROOM_SCORE 1; ! - task_scores: Achieved(1) = Achieved(score_reingekommen) ! -> Index-Konstanten Constant score_amulett 0; Constant score_brettweg 1; Array task_scores -> 2 2; [PrintTaskName nr; switch(nr) {0: "Amulett genommen."; 1: "Brett weggerissen."; }; ]; [PrintRank; print " Damit hast du dir eine Auszeichnung erworben als "; switch(score) { 0 to 1: "neueN Textabenteuer-SpielerIn. Tippe ~hilfe~ f@:ur eine kleine Einf@:uhrung."; 2 to 4: "Anf@:angerIn."; 5 to 10: "erfolgreicher Testspieler."; 10 to 32000: "Superman bzw. Soperwoman: du hast alle Erwartungen uebertroffen bezueglich des theoretisch moeglichen Punktestandes... (wie waer's mit einer mail an den Autor?"; } "score Number out of range"; ]; ! ====== end Score ====== ! ----- Die Tasche, die der Spieler auf sich traegt ----- Object Rucksack "Rucksack" has male container openable, with name "rucksack" "sack", deklination 2, description "Den Rucksack brauchst du, um nicht alle Gegenst@:ande, die du mitnehmen willst, st@:andig in der Hand halten zu m@:ussen. Eine erstaunliche Erfindung, die die Menschheit vor Jahrmillionen zur Menschheit machte. Oder kennst du Tiere, die S@:acke mit sich herumtragen, nur um Gegenst@:ande mitzunehmen?"; Constant SACK_OBJECT Rucksack; ! IDM 128 ! =========================================================== Include "VerbLib"; ! =========================================================== Object Bushaltestelle "Bushaltestelle" has light, with description "Die Bushaltestelle besteht im Wesentlichen aus einem kleinen geteerten Platz. Die @:ode graue Fl@:ache ist sympathisch verziert mit kleinen Pflanzen, die die Asphaltdecke durchbrochen haben. Allerdings tr@:agt um diese Jahreszeit keine davon Bl@:uten.^ Der Rummelplatz liegt in @:ostlicher Richtung. Die Strasse in Richtung S@:uden f@:uhrt in die Stadt.^ Tip: Falls du noch nie ein Textabenteuer gespielt hast, tippe einfach ~hilfe~, um einige Erkl@:arungen zu bekommen.", e_to Feldweg, s_to Strasse; Object -> Busfahrplan "Busfahrplan" has male static, with name "Busfahrplan" "Fahrplan", dekl 2, description "Das Verrostete Ding, das du zuerst f@:ur eine ausrangierte Verkehrstafel gehalten hast, ist der Busfahrplan. Hinter einer Scheibe ist eine Tabelle angebracht, welche die Abfahrtszeiten enth@:alt.", before [;Take, Push, Pull, Turn: "Der Busfahrplan ist einbetoniert in die Strasse."; Examine, Consult: "Willst du dich wirklich schon wieder @:argern? Es war doch vor Monaten Stadtgespr@:ach, dass die private Betreiberfirma der st@:adtischen @:offentlichen Verkehrsmittel, B@:urgerli @:OfVerk-WassGassenFall(*) Subventionen verlangte, um die Farhpl@:ane an den Haltestellen zu aktualisieren. Die linksliberale Stadtregierung wertete dies als Erpressungsversuch und verweigerte jegliche Zahlungen. Als Resultat sind nun immer noch die Fahrpl@:ane vom letzten Jahr aufgeh@:angt. B@:urgerli hat absichtlich s@:amtliche Fahrpl@:ane ge@:andert und weigert sich standhaft, diese zu publizieren bis die verlangten Subventionen bezahlt sind. Du hast keine Ahnung, wann der n@:achste Bus f@:ahrt.^^ (*): B@:urgerli @:offentlicher Verkehr, Wasser, Gas, Strassen und Abfall; sie h@:alt seit der grossen Privatisierung das Quasi-Monopol f@:ur fast alle Infrastrukturangelegenheiten der Stadt."; ]; Object -> Verzeichnis has neuter, with dekl 1, name "verzeichnis", short_name "Verzeichnis", adj1 "genau", adj3 "pr@:azis", adj4 "detailliert", adj6 "alt", description "Dieses Verzeichnis ist leider leer und nur f@:ur grammatische Zwecke gedacht. Mit ~dekliniere Verzeichnis~ kannst du es jedoch deklinieren lassen."; Object -> Leute has pluralname neuter, with short_name "Leute", dekl 1, name "Leute", adj "sch@:on", adj2 "gut", adj3 "lieb", description "Die Leute warten hier darauf, dass du sie mit ~dekliniere Leute~ deklinierst."; Object Feldweg "Feldweg" has light, with description "Der Feldweg zweigt von der Strasse ab in Richtung Festgel@:ande. Weil es am Tag zuvor geregnet hat, ist er ziemlich verschlammt, so dass deine Schuhe nass werden. Immerhin gelingt es dir zu verhindern, dass ein Schuh sich ganz mit Pf@:utzenwasser f@:ullt.^ Der Weg f@:uhrt weiter nach Osten.", w_to Bushaltestelle, e_to Feldweg2; Object -> Schnecke "Schnecke" has female, with name "Schnecke", dekl 9, description "Die Schnecke kriecht langsam @:uber den Feldweg. Es ist eine ohne Haus, weshalb du dich ein wenig ekelst.", before [;Take, Push, Pull, Turn: "Uhh... die Schnekcke ist glitschig und schleimig. Jetzt hast du Schneckenschleim an der Hand."; ]; Object Strasse "Strasse" has light, with description "Auf dieser Strasse bist du mit dem Bus gekommen. Sie f@:uhrt zur@:uck in die Stadt.", n_to Bushaltestelle, s_to Strasse1; object -> Amulett "Amulett" has neuter, with name "Amulett" "Katzenauge" "Auge", dekl 1, description "Das Amulett besteht aus drei goldenen Ringen. Der mittelgrosse Ring diente wohl zum Einh@:angen in eine Halskette. Der kleinere Ring verbindet die beiden anderen. Im grossen Ring steckt eine kleine hellblaue Kugel mit einem schwarzen Punkt auf jeder Seite. Irgendwie sieht es aus wie ein Auge.", after [;take: Achieved(score_amulett); ]; Object Strasse1 "Strasse" has light, with description "Dieser Spaziergang k@:onnte ziemlich langweilig werden, das die Strasse fr@:uher das Industrieviertel mit dem Hauptteil der Stadt verband. Heute ist die Industrie in andere Kontinente mit besseren Standortbedingungen ausgelagert.^ Dies hatte zur Folge, dass die Stadtregierung ihre hoch gesteckten Umweltschutzziele ohne einen Finger zu r@:uhren einhalten konnte: Die erreichte Kohlendioxid-Reduktion um 30% ging voll aufs Konto der stillgelegten Kohlekraftwerke und Eisenh@:utten.", n_to Strasse, s_to Strasse2; Object Strasse2 "Strasse" has light, with description "Immer noch Industrie. Dein wanderm@:udes Ego beschliesst, keinen Schritt weiter in diese Richtung zu tun.", n_to Strasse1; Object Feldweg2 "Feldweg" has light, with description "Musik ist zu h@:oren. Leider h@:orst du nicht eine Musik, sondern viele Musiken wild durcheinander. Die dumpfen B@:asse der um Kundschaft werbenden Karussel-Abk@:ommlinge k@:ampfen gegeneinander an.^ Von Ferne erinnern dich die jedes Jahr noch abenteuerlicheren Bahnen an br@:unstige Hirsche: jeder r@:ohrt auf dass die anderen ihn als den lautesten und ergo den sch@:onsten anerkennen. Die schwingenden und drehenden Gestelle der Bahnen k@:onnten die Geweihe sein, welche bei zweifelhaftem Gesang den St@:arkeren siegreich aus hartem Kampfe... oder ist's nicht umgekehrt?^ Auf jeden Fall willst du dorthin. Der Feldweg f@:uhrt weiter nach Westen.", w_to feldweg, e_to Zaun_West; ! ----------------------- ! Umzaeunung des Anwesens ! ----------------------- ! - Klasse des Zauns rund um das Anwesen - Class UmZaun has male static, with name "Bretterzaun" "Zaun", dekl 1, description "Stabil wie die Arche Noah. Kein Durchkommen m@:oglich.", before [;Take, Push, Pull, Turn, Attack: "Die Wand ist zwar aus Holz aber stabil wie Beton."; climb: "Du versuchst, an der Wand hochzuklettern, aber sie ist viel zu glatt - du rutschst immer wieder ab."; ]; Object Zaun_West "Umz@:aunung" has light, with description "Das Dr@:ohnen der B@:asse ist ziemlich laut hier. Der feuchte Grasboden ist zerfurcht von den R@:adern der Lastwagen, die das ganze Material hier antransportierten. Am Zaun entlang ist mit ausgestreuten Holzschnitzeln eine Art Weg hergerichtet. Ausserhalb davon ist es ziemlich sumpfig.^ Ein roter Wegweiser zeigt nach S@:uden.", w_to Feldweg2, s_to Zaun_Sued_West, n_to Zaun_Nord; Object -> szene "Wegweiser" has male scenery static, with name "Wegweiser", dekl 2; UmZaun -> Bretterzaun1 "Bretterzaun" with description "Die Bretterwand ist @:uber drei Meter hoch. Offenbar legen die Veranstalter Wert darauf, dass nur zahlende G@:aste aufs Festgel@:ande gelangen. Offenbar wurden zwei Schichten Bretter benutzt, denn die Fugen sind dicht."; Object Zaun_Nord "Umz@:aunung" has light, with description "Die Bretterwand verl@:auft von hier aus s@:udw@:arts und ostw@:arts, rund um das Gel@:ande herum.", s_to Zaun_West, e_to Zaun_Nord_Mitte; UmZaun -> Bretterzaun2 "Bretterzaun"; Object Zaun_Nord_Mitte "Bretterzaun" has light, with description "Der Zaun wurde gerade wie ein Lineal durch die Wiese gezogen. Der Holzschnitzelweg geht offenbar ringsherum.", w_to Zaun_Nord, e_to Zaun_Nord_OSt; UmZaun -> Bretterzaun3 "Bretterzaun" with before [;examine, search: if (brett hasnt general) "Stabil wie die Arche Noah. Kein Durchkommen m@:oglich. In der Mitte des Zaunsabschnitts hier ist jedoch ein Brett ein wenig angehoben und gibt einen kleinen Spalt frei. Ob sich wohl hier schon mal jemand bem@:uht hat, durch die Hintert@:ur reinzukommen?"; else print "In der ansonsten stabilen Wand klafft eine L@:ucke."; rtrue; ]; Object -> Brett "Brett" has neuter concealed, with name "Brett", dekl 4, before [;examine: if (brett hasnt general) "Das Brett ist auf einer Seite locker und auf der anderen Seite befestigt; es sieht fast aus wie eine angelehnte T@:ur."; else "Das Brett liegt auf dem Boden. Es ist aus dickem Holz gefertigt und w@:urde wohl einen Lastwagen tragen, wenn man es denn als Br@:ucke verlegen w@:urde. Immerhin ist es jetzt aus seiner Funktion als Zaun, der Menschen trennt, herausgerissen. Damit unterscheidet es sich von den tausenden von Brettern, die noch in Reih und Glied im Zaun vereinigt sind. In der Wand ist jetzt ein Loch, das aussieht wie ein Fenster."; pull: if (brett hasnt general) print "Du ziehst und reisst am Brett. Zuerst bewegt es sich kaum, dann knarrt es ein wenig. Mit aller Kraft zerrst du so lange, bis das Brett sich mit einem lauten Knacken l@:ost. Es ist so schwer, dass du es fallen l@:asst."; give Brett general; give Brett ~concealed; give Spalt enterable; Achieved(score_brettweg); rtrue; take: print "Du hebst das Brett kurz an, aber es ist so schwer, dass du es gleich wieder fallenl@:asst."; rtrue; ]; Object -> Spalt "Spalt im Zaun" has male concealed static, with name "Spalt" "Loch" "Luecke" "Fenster", dekl 3, before [;examine, search: "Du entdeckst eine etwa drei Meter breite Zone, welche komplett plattgewalzt ist. Obwohl hellichter Tag ist beleuchten Scheinwerfer den Streifen. Dahinter ist wieder ein etwa gleich hoher zweiter Bretterzaun. An dessen oberen Kante ist NATO-Stacheldraht befestigt, der offenbar um das ganze Gel@:ande herumf@:uhrt. Das ganze erinnert ein wenig an eine befestigte Staatsgrenze."; enter: if (Spalt hasnt enterable) print "Die L@:ucke ist bloss etwa zwei Zentimeter breit. Obwohl du ganz schlank bist, ist es f@:ur dich v@:ollig unm@:oglich, dich da durchzuzw@:angen."; else { print "Du steigst durch das Loch im Bretterzaun.^"; PlayerTo(Zone_Nord_Mitte); } rtrue; ]; Object Zaun_Nord_Ost "Bretterzaun" has light, with description "Du befindest dich jetzt an der nord@:ostlichen Ecke der Umz@:aunung. Von hier aus geht es weiter in Richtung S@:uden.", w_to Zaun_Nord_Mitte, s_to Zaun_Ost; Umzaun -> Bretterzaun4 "Bretterzaun"; Object Zaun_Ost "Bretterzaun" has light, with description "Im Osten grenzt das Gel@:ande direkt an den dahinterliegenden Wald. Es ist ziemlich d@:uster hier. Die dicht stehenden B@:aume und der Bretterzaun verschlucken fast alles Tageslicht. Ein kleiner Pfad f@:uhrt in den Wald. Der Zaun geht weiter in Richtung S@:uden.", n_to Zaun_Nord_Ost, s_to Zaun_Sued_Ost; UmZaun -> Bretterzaun5 "Bretterzaun"; Object Zaun_Sued_Ost "Bretterzaun" has light, with description "Von hier aus siehst du den Eingang aufs Festgel@:ande in westlicher Richtung. Der Zaun f@:uhrt in n@:ordlicher Richtung am Wald entlang.", n_to Zaun_Ost, w_to Zaun_Eingang; UmZaun -> Bretterzaun6 "Bretterzaun"; Object Zaun_Eingang "Eingang zum Rummelplatz" has light, with description "Dies ist der Eingang und noch nicht implementiert.", w_to Zaun_Sued_West, e_to Zaun_Sued_Ost; UmZaun -> Bretterzaun7 "Bretterzaun"; Object Zaun_Sued_West "Bretterzaun", has light, with description "Der Trampelpfad um die Ecke ist ziemlich ausgetreten. Offenbar sind schon viele Leute hier vorbeigekommen. Der Eingang zum Rummelplatz liegt in @:ostlicher Richtung.", e_to Zaun_Eingang, n_to Zaun_West; UmZaun -> Bretterzaun8 "Bretterzaun"; ! -------------------------------------------- ! - Sicherheitszone innerhalb der Umzaeunung - ! -------------------------------------------- Class Stacheldraht has male static, with name "Stacheldraht" "NATO", dekl 1, description "Die auseinandergezogene Rolle aus dem besonders gef@:ahrlich geschliffenen NATO-Stacheldraht hindert die Leute zuverl@:assig daran, @:uber den Zaun zu klettern.^ Offenbar reichten den Organisatoren jedoch die t@:uckischen Widerhaken nicht: Der Draht ist an Isolatoren befestigt, steht also vermutlich unter elektrischer Spannung.", before [;Take, Push, Pull, Turn, Attack: "Der Stacheldraht ist zu hoch als dass du ihn erreichen k@:onntest. M@:oglicherweise ist das auch ganz gut so so angesichts der Isolatoren..."; ]; Object Zone_Nord_Mitte "Sicherheitszone", has light, with description "Du befindest dich jetzt in der Mitte der n@:ordlichen Sicherheitszone. Sie verl@:auft von Westen nach Osten. Der Bretterzaun links und rechts ist gekr@:ont mit NATO-Stacheldraht. Er ist ein wenig unterhalb der oberen Kante befestigt, damit man ihn weder von innen noch von aussen sieht.", e_to Zone_Nord_Ost, w_to Zone_Nord; Object -> SpaltInnen "Spalt im Zaun" has male concealed static, with name "Spalt" "Loch" "Luecke" "Fenster", dekl 3, before [;examine, search: if (brett has general) "Du schaust zum ~Fenster~ hinaus. Die Aussicht ist nicht gerade berauschend: Vorne f@:uhrt der Pfad ums Gel@:ande herum vorbei, dahinter siehst du eine Wiese."; else "Scheisse! Jemand hat das Brett wieder festgeschraubt. Hier kommst du nicht mehr hinaus."; enter: if (Spalt hasnt enterable) print "Scheisse! Jemand hat das Brett wieder festgeschraubt. Hier kommst du nicht mehr hinaus."; else { print "Du steigst durch das Loch im Bretterzaun.^"; PlayerTo(Zaun_Nord_Mitte); } rtrue; ]; Stacheldraht -> Stacheldraht1 "Stacheldraht"; Umzaun -> Inzaun1 "Bretterzaun"; Object Zone_Nord "Sicherheitszone", has light, with description "Du befindest dich jetzt in der norwestlichen Ecke der Sicherheitszone. Du kannst von hier aus die gesamte n@:ordliche und westliche Sicherheitszone @:uberblicken. Die Wege f@:uhren demnach weiter in Richtung S@:uden und Osten", e_to Zone_Nord_Mitte, s_to Zone_West; Stacheldraht -> Stacheldraht2 "Stacheldraht"; Umzaun -> Inzaun2 "Bretterzaun"; Object Zone_West "Sicherheitszone", has light, with description "Die westliche Sicherheitszone ist genau so schnurgerade wie alle anderen Abschnitte.", n_to Zone_Nord, s_to Zone_Sued_West; Stacheldraht -> Stacheldraht3 "Stacheldraht"; Umzaun -> Inzaun3 "Bretterzaun"; Object Zone_Sued_West "Sicherheitszone", has light, with description "Die s@:udwestliche Ecke der Sicherheitszone bietet freie Sicht nach Norden und nach Osten. Allerdings scheint die @:ostliche Gehrichtung in einer Sackgasse zu enden.", n_to Zone_West, e_to Zone_Eingang_West; Stacheldraht -> Stacheldraht4 "Stacheldraht"; Umzaun -> Inzaun4 "Bretterzaun"; Object Zone_Eingang_West "Sicherheitszone", has light, with description "Du befindest dich vermutlich genau beim Eingang. Allerdings verstellt die Wand den Blick in drei Richtungen. Du kannst hier nur zur@:uck nach Westen gehen.", w_to Zone_Sued_West; Stacheldraht -> Stacheldraht5 "Stacheldraht"; Umzaun -> Inzaun5 "Bretterzaun"; Object Zone_Nord_Ost "Sicherheitszone", has light, with description "Die nord@:ostliche Ecke der Sicherheitszohne bietet freie Sicht nach S@:uden und nach Westen. Du kannst also die H@:alfte der Sicherheitszone @:uberblichen", w_to Zone_Nord_Mitte, s_to Zone_Ost; Stacheldraht -> Stacheldraht6 "Stacheldraht"; Umzaun -> Inzaun6 "Bretterzaun"; Object Zone_Ost "Sicherheitszone", has light, with description "Die @:ostliche Sicherheitszone ist genau so schnurgerade wie alle anderen Abschnitte.", n_to Zone_Nord_Ost, s_to Zone_Sued_Ost; Stacheldraht -> Stacheldraht7 "Stacheldraht"; Umzaun -> Inzaun7 "Bretterzaun"; Object Zone_Sued_Ost "Sicherheitszone", has light, with description "Du hast von der s@:ud@:ostlichen Ecke der Sicherheitszone aus freie Sicht nach Norden und nach Westen. Allerdings scheint die westliche Gehrichtung in einer Sackgasse zu enden.", n_to Zone_Ost, w_to Zone_Eingang_Ost; Stacheldraht -> Stacheldraht8 "Stacheldraht"; Umzaun -> Inzaun8 "Bretterzaun"; Object Zone_Eingang_Ost "Sicherheitszone", has light, with description "Du befindest dich vermutlich genau beim Eingang. Allerdings verstellt die Wand den Blick in drei Richtungen. Du kannst hier nur zur@:uck nach Osten gehen.", e_to Zone_Sued_Ost; Stacheldraht -> Stacheldraht9 "Stacheldraht"; Umzaun -> Inzaun9 "Bretterzaun"; ! ------------- der Wächter ----------------- Object Waechter "W@:achter" Zone_Sued_Ost has male animate, with name "waechter" "securitas" "polizist", dekl 4, description "Der W@:achter geh@:ort offenbar irgend einer privaten Organisation an. Er ist von kr@:aftiger Statur und starrt dich an. Er ist offensichtlich mit einem Kn@:uppel und einer was auch immer verschiessenden Pistole bewaffnet."; ! --------- Initialisierung, Spielstart ------------ [ Initialise; location = Bushaltestelle; SetTime (687,1); ! 11 Uhr 27 (IDM S.123) move Rucksack to player; print "^^^^^^^ In der Zeitung stand, dass heute das j@:ahrlich wiederkehrende Jugendfest beginnt. Du f@:uhltest dich einsam und gelangweilt, deshalb hast du beschlossen, heute rauszugehen. Das Festgel@:ande liegt ziemlich weit abseits der Stadt. Aber du bist fest entschlossen, heute etwas zu erleben, n@:amlich eine...^^"; ]; ! ------------ zusatzroutinen ------------- [hilfeSub; " Hilfe! Du hast ein deutsches Textabenteuer gestartet und weisst nicht, was zu tun ist? Nun, genau das macht das Spiel wie das Leben: man weiss nie so recht, was man als n@:achstes tun soll.^ Dieses Spiel hier funktioniert nur auf der Basis von Texten. Du bist eine Spielfigur, welche du in alle vier Himmelsrichtungen und die vier Zwischenrichtungen bewegen kannst. Das geschieht mit Hilfe von deren Kurzformen. ~n~ bewegt dich nach norden, ~o~ nach Osten und ~so~ in s@:ud@:ostlicher Richtung.^ Das Spiel versteht noch viele weitere deutsche Verben; es ist Teil des Spiels, herauszufinden, welche Verben wohl was bewirken k@:onnten. Dazu ist zu sagen, dass die deutschen Umlaute @:a, @:o uns @:u als ae, oe oder ue eingegeben werden m@:ussen.^ Es gibt einige technische Verben, die direkt mit dem Spiel nichts zu tun haben:^ Mit ~speichere~ kannst du einen Spielstand auf die Disk speichern, welchen du mit ~lade~ sp@:ater wieder reaktivieren kannst. ~neustart~ - oder, etwas poetischer, ~wiedergeburt~ - l@:asst dich wieder von vorne anfangen. Mit ~ende~ oder ~stirb~ oder der englichen Kurzform ~q~ f@:ur ~quit~ wird das Spiel vorzeitig beendet. Mit ~Punkte~ kannst du dir die aktuelle Punktezahl anzeigen lassen.^^ Ein Beispiel:^ Bewege dich mit ~s~ nach S@:uden. Du wirst ein Amulett entdecken. Mit ~nimm das Amulett~ kannst du es nehmen. Versuch's!^ Nun m@:ochtest du vermutlich gerne wissen, wo das Amulett geblieben ist. Mit ~inventar~ (mir ist bisher keine bessere deutsche @:Ubersetzung von ~inventory~ eingefallen) oder dessen Kurzform ~inv~ oder nur ~i~ kannst du betrachten, was du alles hast.^ Mit ~betrachte~ oder kurz ~b das Amulett~ kannst du es n@:aher untersuchen. Mit ~leg das Amulett in den Rucksack~ kannst du - nun, finde selbst heraus, was du vorher tun musst, damit das geht. Mit ~schau in den Rucksack~ kannst du sehen, wo das Amulett geblieben ist.^ Viel Gl@:uck im Spiel und im Leben w@:unscht dir der Autor, Toni Arnold. ";]; ! -------------- Zusatzverben --------------- verb "hilf" * -> hilfe; ! ----- "Grammatik" fuer die Verben ------ Include "GermanG"; end;