-- -- Standarddefinitionen für ALAN -- ***************************** -- -- Originalversion (C) 1992 Luis E. Torres, let@cis.ufl.edu -- Version 2.0 - ©1997 by JuL -- Deutsche Version ©1997,98,99 by JuL -- Beinhaltet Codeteile von Dark.alan -- -- Letzte Änderung 05.12.1999 by JuL -- -- (Ich habe inzwischen sehr viel geändert und konnte den ursprünglichen Autor -- außerdem nicht unter der angegebenen Adresse erreichen (welch Wunder nach -- der langen Zeit!), also habe ich diese Bibliothek umbenannt und sie quasi -- als ,,mein'' betrachtet. Sie verdankt immer noch viele, wenn nicht die -- meisten, Eigenschaften dem ursprünglichen Autor, und ich markiere weiterhin -- alles von mir veränderte oder hinzugefügte - JuL 7.11.1997) -- -- Dies ist eine mehr oder weniger Standardsammlung von Verbdefinitionen und -- Objekten für die Textabenteuersprache ALAN. Viele davon sind nur Dummys und -- haben keine andere Funktion als "Du kannst das nicht tun" (was immer ,,das'' -- ist) oder "Nichts passiert" auszugeben. Diese Definitionen sind alleine -- nicht von allzu großem Nutzen. Es gibt zwei Wege, sie zu benutzen: [JuL] -- -- 1) Du kannst sie leicht in den Objektdefinitionen überschreiben und die -- Defaultdefinitionen so lassen wie sie sind. Das ist sinnvoll, wenn Du -- nur wenige Objekte hast, die dieses Verb benötigen. Zum Beispiel: -- -- OBJECT brot AT Baeckerei -- DESCRIPTION "Auf dem Tresen liegt etwas Brot." -- -- VERB essen DOES ONLY -- "Als du das Brot ißt, findest du etwas darin. -- Es ist eine silberne Kugel!" -- LOCATE silberkugel AT Hero. -- END VERB. -- END OBJECT. -- -- 2) Du kannst die Standarddefinitionen verbessern, indem Du an die LOCATION-, -- ACTOR- und OBJECT-Attributlisten weitere Attribute anhängst. Dies ist -- sinnvoll, wenn Du viele Objekte mit einer bestimmten Eigenschaft hast. -- Zum Beispiel: -- -- OBJECT ATTRIBUTES -- nehmbar. -- NOT oeffenbar. -- NOT schliessbar. -- NOT offen. -- JuL -- NOT essbar. -- -- . -- . -- . -- -- VERB essen DOES -- CHECK obj IN inventar -- ELSE "Dieses Ding besitzt du nicht." -- AND obj IS essbar -- ELSE "Das kannst du nicht essen!" -- DOES -- "Du ißt das $o." -- END VERB. -- -- . -- . -- . -- -- OBJECT brot AT Baeckerei -- DESCRIPTION "Auf dem Tresen liegt etwas Brot." -- essbar. -- END OBJECT. -- -- Das kommt natürlich ganz darauf an, wie Du Dein Abenteuer schreibst. -- -- Ich verwende die ,,alte'' Rechtschreibung (modulo Fehler ;-) ), eventuell, -- insbesondere für das ,,ß'', werde ich - falls es Interessenten geben sollte -- - ein Flag [im globalen Objekt] dafür einführen. -- Derzeit werden für Syntaxdefinition und Synonyme - und damit die Eingabe - -- nur die gewöhnlichen Umlautersetzungen ,,ae'', ,,oe'', ,,ue'' und ,,ss'' -- verwendet. -- -- Ich hoffe, diese Datei hilft allen Leuten, die an (deutschsprachigem - JuL) -- ALAN interessiert sind. -- Bitte sendet Eure Kommentare, Vorschläge und Fehlermeldungen an -- -- Luis E. Torres -- let@cis.ufl.edu -- (scheint nicht mehr gültig zu sein, JuL) -- -- ... bzw. JuL: lerchj@rz.uni-duesseldorf.de (Jürgen Lerch) -- -- --------------------------------------------------------------------------- -- -- Teil 1: OPTIONEN -- **************** -- Wir implementieren eine "brief-ähnliche" Umgebung, à la Infocom (dafür ist -- das ,,VISITS 255''). -- VISITS 255. (Ich mag "VERBOSE" lieber - JuL) -- JuL DEFAULT ATTRIBUTES NOT plural. NOT benannt. NOT geschlecht. -- NOT wenn sächlich (JuL) maennlich. -- (JuL) -- Einige Orte können verschlossene Türen besitzen, die irgendwohin führen. -- Dieses Flag sollte das behandeln (die Verben, die verschlossene_tuer -- verwenden, wurden noch nicht programmiert, da ich wohl plane, die -- Aufschliessen-Funktion in den entsprechenden Orten zu überschreiben). -- JuL: Ich denke, das hängt von der Tür ab, nicht vom Ort - und Orte können -- viele Türen haben. -- Daher können Orte Licht, Wände, eine Decke und einen Boden haben, den -- der Spieler untersuchen mag. Normalerweise wird er nichts besonderes -- finden, und für jeden Raum Dummywände oder -decken zu machen scheint -- ziemlich dumm und aufwendig. Also habe ich einige allgemeine -- Ortsattribute eingeführt. Bis jetzt sind sie noch nicht alle aktiv und -- behandeln auch nicht partielle Böden oder Decken oder verschiedene -- Wände. LOCATION ATTRIBUTES -- NOT verschlossene_tuer. (hängt von der Tür ab, nicht vom Ort - JuL) erleuchtet. bewandet. -- (JuL) -- JuL: seperate Nord-/Süd-/... Wände könnten `bewandet' ersetzen ueberdacht. -- (JuL) bebodent. -- (blöd, aber mir fiel nix besseres ein) (JuL) -- Ein Objekt kann nehmbar, öffenbar (normal nicht) oder schließbar (normal -- nicht) sein, und es ist üblicherweise geschlossen. Es kann weiterhin -- abschließbar sein, zu einem bestimmten Schloß bzw. Schlüssel passen, eß- -- oder trinkbar sein oder schaltbar (und an oder aus). Du könntest damit -- schreiben können und es kann Licht erzeugen. Außerdem kann man manche Dinge -- anziehen. (Stark modifiziert von JuL) OBJECT ATTRIBUTES nehmbar. NOT oeffnebar. NOT schliessbar. NOT offen. -- JuL NOT abschliessbar. NOT abgeschlossen. -- (JuL) schloss 0. -- JuL NOT essbar. NOT trinkbar. naehrwert 0. -- JuL NOT schaltbar. an. NOT schreiber. -- JuL leuchtend 0. -- JuL, aus Dark.alan: ist eigentlich boolsch, aber SUM -- muß darauf angewendet werden. NOT anziehbar. -- JuL NOT angezogen. -- JuL -- Von allen ACTORen wird angenommen, daß sie menschlich (oder wenigstens -- intelligent) sind. ACTORen sind anfänglich als maennlich definiert. Wenn Du -- planst, die Pronomen ,,er'', ,,sie'' oder ,,es'' zu benutzen, sind diese -- Flags nützlich dafür, das entsprechende Pronomen auszugeben. -- Das benannt-Flag sollte gesetzt werden, wenn der ACTOR einen richtigen Namen -- hat (wie z.B. ,,Bill''). Das hält das Programm zum Beispiel davon ab, -- anstelle von ,,Bill hört dich'' ,,Der Bill hört dich.'' auszugeben. [JuL] ACTOR ATTRIBUTES benannt. geschlecht. -- Ich habe den Standard-Inventarkopf verändert. Modifiziere ihn um ihn Deinem -- Geschmack anzupassen. (Hab' ich - JuL) CONTAINER inventar HEADER "Du hast bei dir: " ELSE "Du hast nichts bei dir." END CONTAINER inventar. ----------------------------------- -- PART 2: SYNONYME -- **************** SYNONYMS -- Synonyme für Befehle: ----------------------------- nord, norden = n. sued, sueden = s. ost, osten = o. west, westen = w. hoch, rauf = h. runter, ru, unten, u = r. nordost = no. suedost = so. nordwest = nw. suedwest = sw. verlassen, raus = ra. -- JuL hinein, rein = re. -- JuL hin = ab. -- JuL b, inventar = besitz. betret, betrete, betritt = betreten. beenden, e = ende. entfern = entferne. beschiess, beschiesse, erschiess = erschiesse. erzaehl = erzaehle. ess, iss = esse. befrag, befrage, frag = frage. -- JuL befuehl, befuehle, betast, betaste, fuehl = fuehle. -- JuL geb, gib = gebe. g, schau, schaue, glotz = glotze. grab = grabe. hinweis = hilfe. -- (JuL) j = ja. klopf = klopfe. lade = laden. horchen, lausch, lausche = lauschen. leck, schleck, schlecke = lecke. -- JuL leg, tu, tue = lege. les, lies = lese. loesch = loesche. mach = mache. nee, noe = nein. nehm, nehme = nimm. riech, rieche, schnuppern, schnupper, schnuppere = riechen. ruf = rufe. punkte = 'score'. sag = sage. schalt = schalte. -- JuL druecke, drueck, presse, press, schieb = schiebe. schliess = schliesse. probier, probiere, schmeck = schmecke. -- JuL setz, setze, sitze, sitzen = setzen. speicher, speichere = speichern. spiel = spiele. red, rede, sprech, sprich = spreche. huepf, huepfe, huepfen, spring, springen = springe. steck = stecke. trink = trinke. x, untersuch, inspiziere, examiniere, durchsuche, durchsuch = untersuche. ausfuehrlich = verbos. warte, z = warten. -- JuL werf, wirf = werfe. wink = winke. -- JuL zieh = ziehe. zuend = zuende. gesundheit = zustand. plugh, plover = xyzzy. -- JuL -- Synonyme für englische Grammatik: ----------------------------------------- es, ihn, sie = it. -- JuL der, die, das, den, dem, mein, meine, etwas = the. -- JuL ins = 'in'. -- JuL ausser = but. -- JuL alle, alles = all. -- JuL dann, danach = 'then'. -- JuL geh, gehe, lauf, laufe = go. -- JuL -- Synonyme für Objekte kommen hierhin: -------------------------------------------- waende = wand. fussboden = boden. ------------------------------------ -- PART 3: SYNTAX. -- *************** SYNTAX attackieren = attackiere (act) WHERE act ISA ACTOR ELSE "Du solltest keine wehrlosen Gegenstände angreifen." attackieren_wen_mit = attackiere (act) mit (obj) WHERE act ISA ACTOR ELSE "Du solltest keine wehrlosen Gegenstände angreifen." attackieren_mit_wen = attackiere mit (obj) (act) WHERE act ISA ACTOR ELSE "Du solltest keine wehrlosen Gegenstände angreifen." betreten0 = betreten. -- JuL betreten1 = betreten (obj). -- JuL enden = 'ende'. entfernen = entferne (obj) -- JuL WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht entfernen." entfernen_von = entferne (obj1) von (obj2) -- JuL WHERE obj1 ISA OBJECT ELSE "So etwas kannst du nicht entfernen." AND obj2 ISA OBJECT ELSE "Von so etwas kannst du nichts entfernen." erschiessen = erschiesse (act) WHERE act ISA OBJECT OR ACTOR ELSE "So etwas kannst du nicht beschießen." erschiessen_mit = erschiesse (act) mit (obj) WHERE obj ISA OBJECT ELSE "Mit so etwas kannst du nicht schießen." AND act ISA ACTOR OR OBJECT ELSE "So etwas kannst du nicht beschießen." erzaehlen = erzaehle (act) WHERE act ISA ACTOR ELSE "Weißt du, Dinge reden nicht. Leute tun das." erzaehlen_ueber = erzaehle (act) ueber (obj)! WHERE act ISA ACTOR ELSE "Weißt du, Dinge reden nicht. Leute tun das." erzaehlen_von = erzaehle (act) von (obj)! WHERE act ISA ACTOR ELSE "Weißt du, Dinge reden nicht. Leute tun das." essen = esse (obj)! WHERE obj ISA OBJECT ELSE "Sowas kannst du nicht essen." fragen = frage (act) WHERE act ISA ACTOR ELSE "Weißt du, Dinge sprechen nicht. Leute tun das." fragen_nach = frage (act) nach (obj)! WHERE act ISA ACTOR ELSE "Weißt du, Dinge reden nicht. Leute tun das." fragen_ueber = frage (act) ueber (obj)! WHERE act ISA ACTOR ELSE "Weißt du, Dinge reden nicht. Leute tun das." fuege_ein = fuege (obj) ein -- JuL WHERE obj ISA OBJECT ELSE "Das kannst du nirgendwo einfügen." fuege_in_ein = fuege (obj1) 'in' (obj2) ein WHERE obj1 ISA OBJECT ELSE "Das kannst du nirgendwo einfügen." AND obj2 ISA OBJECT ELSE "Da rein kannst du nichts einfügen." fuehlen = fuehle (obj). -- JuL fuehlen_mit = fuehlen (obj1) mit (obj2) -- JuL WHERE obj2 ISA OBJECT ELSE "Damit kannst du nichts berühren." fuehlen_mit2 = fuehlen mit (obj1) (obj2) -- JuL WHERE obj2 ISA OBJECT ELSE "Damit kannst du nichts berühren." geben = gebe (obj) * (act) -- JuL WHERE obj ISA OBJECT ELSE "Das kannst du niemandem geben!" AND act ISA CONTAINER ACTOR ELSE "Du kannst $2 nichts geben!" geben_an = gebe (obj) * an (act) -- JuL WHERE obj ISA OBJECT ELSE "Das kannst du niemandem geben!" AND act ISA CONTAINER ACTOR ELSE "Du kannst $2 nichts geben!" -- gehen_in = gehe 'in' (dir). -- JuL glotzen0 = glotze. glotzen1 = glotze (obj). -- JuL glotzen_an = glotze (obj) an. -- JuL glotzen_auf = glotze auf (obj). -- JuL glotzen_hoch = glotze h. -- JuL glotzen_runter = glotze r. -- JuL graben = grabe. -- JuL graben_in = grabe 'in' (obj) -- JuL WHERE obj ISA OBJECT ELSE "Darin kannst du nicht graben." graben_in_mit = grabe 'in' (obj1) mit (obj2) WHERE obj1 ISA OBJECT ELSE "Darin kannst du nicht graben." AND obj2 ISA OBJECT ELSE "Damit kannst du nicht graben." graben_mit = grabe mit (obj) -- JuL WHERE obj ISA OBJECT ELSE "Mit Leuten kannst du nicht graben!" graben_mit_in = grabe mit (obj1) 'in' (obj2) WHERE obj1 ISA OBJECT ELSE "Du kannst damit nicht graben." AND obj2 ISA OBJECT ELSE "Du kannst darin nicht graben." helfen = hilfe. klopfen_an = klopfe an (obj). -- JuL klopfen_auf = klopfe auf (obj). -- JuL klopfen_gegen = klopfe gegen (obj). -- JuL knapp = knapp. -- JuL laden = laden. lauschen = lauschen. -- JuL lecken = lecke (obj). -- JuL lecken_ab = lecke (obj) ab. -- JuL lecken_an = lecke an (obj). -- JuL legen = lege (obj) *!. -- (JuL) legen_ab = lege (obj) *! ab. -- JuL legen_auf = lege (obj1) * auf (obj2) WHERE obj1 ISA OBJECT ELSE "Das kannst du nicht ablegen." AND obj2 ISA OBJECT ELSE "Darauf kannst du nichts ablegen." legen_auf_ab = lege (obj1) * auf (obj2) ab WHERE obj1 ISA OBJECT ELSE "Das kannst du nicht ablegen." AND obj2 ISA OBJECT ELSE "Darauf kannst du nichts ablegen." legen_bei_ab = lege (obj1) * bei (obj2) ab WHERE obj1 ISA OBJECT ELSE "So etwas kannst du nicht ablegen." AND obj2 ISA OBJECT ELSE "Dort kannst du nichts hinlegen." legen_hinter = lege (obj1) * hinter (obj2) WHERE obj1 ISA OBJECT ELSE "Das kannst du nicht ablegen." AND obj2 ISA OBJECT ELSE "Dahinter kannst du nichts legen." legen_unter = legen (obj1) * unter (obj2) WHERE obj1 ISA OBJECT ELSE "Das kannst du nicht ablegen." AND obj2 ISA OBJECT ELSE "Darunter kannst du nicht hinlegen." legen_hinein = lege (obj1) * 'in' (obj2) re -- = hinein (JuL) WHERE obj1 ISA OBJECT ELSE "Das kannst du nicht ablegen." AND obj2 ISA CONTAINER OBJECT -- JuL :-( ELSE "Da hinein kannst du nichts legen." legen_in = lege (obj1) * 'in' (obj2) WHERE obj1 ISA OBJECT ELSE "So etwas kannst du nicht ablegen." AND obj2 ISA CONTAINER OBJECT -- JuL :-( ELSE "Da hinein kannst du nichts legen." lesen = lese (obj) WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht lesen." listen_besitz = besitz. loeschen = loesche (obj) WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht löschen." machen_an = mache (obj) an WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht anmachen." machen_auf = mache (obj) auf WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht öffnen." machen_auf_mit = mache (obj) auf mit (oeffner) WHERE obj ISA OBJECT ELSE "Du kannst Leute nicht öffnen." AND oeffner ISA OBJECT ELSE "Du kannst mit Leuten nichts öffnen." machen_aus = mache (obj) aus WHERE obj ISA OBJECT ELSE "Das kannst du nicht aus machen." machen_mit_auf = mache (obj) mit (oeffner) auf WHERE obj ISA OBJECT ELSE "Du kannst Leute nicht öffnen." AND oeffner ISA OBJECT ELSE "Du kannst mit Leuten nichts öffnen." machen_mit_auf2 = mache mit (oeffner) (obj) auf WHERE obj ISA OBJECT ELSE "Du kannst Leute nicht öffnen." AND oeffner ISA OBJECT ELSE "Du kannst mit Leuten nichts öffnen." machen_zu = mache (obj) zu WHERE obj ISA OBJECT ELSE "Du kannst Leute nicht schließen." machen_mit_zu = mache mit (schliesser) (obj) zu WHERE obj ISA OBJECT ELSE "Du kannst Leute nicht schließen." AND schliesser ISA OBJECT ELSE "Du kannst mit Leuten nichts schließen." machen_mit_zu2 = mache (obj) mit (schliesser) zu WHERE obj ISA OBJECT ELSE "Du kannst Leute nicht schließen." AND schliesser ISA OBJECT ELSE "Du kannst mit Leuten nichts schließen." machen_zu_mit = mache (obj) zu mit (schliesser) WHERE obj ISA OBJECT ELSE "Du kannst Leute nicht schließen." AND schliesser ISA OBJECT ELSE "Du kannst mit Leuten nichts schließen." nehmen = nimm (obj) *! -- (JuL) WHERE obj ISA OBJECT ELSE "Du kannst keine Leute mitnehmen!" nehmen_auf = nimm (obj) *! auf -- JuL WHERE obj ISA OBJECT ELSE "Du kannst keine Leute mitnehmen!" nehmen_aus = nimm (obj) * aus (subj) -- JuL WHERE obj ISA OBJECT ELSE "Aber der $2 kann doch sicher kein $1 tragen!" AND subj ISA CONTAINER ACTOR OR CONTAINER OBJECT -- JuL: s.o. ELSE "Der $2 hat nichts um etwas zu tragen." nehmen_mit = nimm (obj) *! mit -- JuL WHERE obj ISA OBJECT ELSE "Du kannst keine Leute mitnehmen!" nehmen_von = nimm (obj) * von (subj) -- JuL WHERE obj ISA OBJECT ELSE "Aber der $2 kann doch sicher kein $1 tragen!" AND subj ISA CONTAINER ACTOR OR CONTAINER OBJECT -- JuL: Grrr ELSE "Der $2 hat nichts um etwas zu tragen." oeffnen = oeffne (obj) WHERE obj ISA OBJECT ELSE "Du kannst Leute nicht öffnen." oeffnen_mit = oeffne (obj) mit (oeffner) WHERE obj ISA OBJECT ELSE "Leute kannst du nicht öffnen." AND oeffner ISA OBJECT ELSE "Mit Leuten kannst du nichts öffnen." riechen0 = riechen. -- JuL riechen1 = riechen (obj). -- JuL riechen_an = riechen an (obj). -- JuL rufen = rufe. sagen = sage (txt) -- JuL WHERE txt ISA STRING ELSE "Was sagst du??" sagen_txt_zu = sage (txt) zu (act) -- JuL WHERE txt ISA STRING ELSE "Was sagst du??" AND act ISA ACTOR ELSE "Du redest schon wieder mit Dingen?" sagen_zu_txt = sage zu (act) (txt) -- JuL WHERE txt ISA STRING ELSE "Was sagst du??" AND act ISA ACTOR ELSE "Du redest schon wieder mit Dingen?" schalten_an = schalte (obj) an WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht anschalten." schalten_aus = schalte (obj) aus WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht ausschalten." schieben = schiebe (obj) WHERE obj ISA OBJECT ELSE "Das kannst du nicht schieben." schieben_mit = schiebe (obj1) mit (obj2) WHERE obj1 ISA OBJECT ELSE "Das kannst du nicht schieben." AND obj2 ISA OBJECT ELSE "Damit kannst du nichts schieben." schiessen = schiesse auf (act) -- JuL WHERE act ISA OBJECT OR ACTOR ELSE "Darauf kannst du nicht schießen." schiessen_auf = schiesse (obj) auf (act) WHERE obj ISA OBJECT ELSE "Du kannst damit nicht schießen." AND act ISA OBJECT OR ACTOR ELSE "Darauf kannst du nicht schießen." schiessen_mit = schiesse auf (act) mit (obj) WHERE obj ISA OBJECT ELSE "Damit kannst du nicht schießen." AND act ISA OBJECT OR ACTOR ELSE "Darauf kannst du nicht schießen." schiessen_mit2 = schiesse mit (obj) auf (act) WHERE obj ISA OBJECT ELSE "Damit kannst du nicht schießen." AND act ISA OBJECT OR ACTOR ELSE "Darauf kannst du nicht schießen." schliessen = schliesse (obj) WHERE obj ISA OBJECT ELSE "Du kannst Leute nicht schließen." schliessen_ab = schliesse (obj) ab WHERE obj ISA OBJECT ELSE "Leute kannst du nicht verschließen." schliessen_ab_mit = schliesse (obj) ab mit (schluessel) WHERE obj ISA OBJECT ELSE "Leute kannst du nicht verschließen." AND schluessel ISA OBJECT ELSE "Mit Leuten kannst du nichts verschließen." schliessen_mit = schliesse (obj) mit (schliesser) WHERE obj ISA OBJECT ELSE "Leute kannst du nicht schließen." AND schliesser ISA OBJECT ELSE "Mit Leuten kannst du nichts schließen." schliessen_mit2 = schliesse mit (schliesser) (obj) WHERE obj ISA OBJECT ELSE "Leute kannst du nicht schließen." AND schliesser ISA OBJECT ELSE "Mit Leuten kannst du nichts schließen." schliessen_mit_ab = schliesse (obj) mit (schluessel) ab WHERE obj ISA OBJECT ELSE "Leute kannst du nicht verschließen." AND schluessel ISA OBJECT ELSE "Mit Leuten kannst du nichts verschließen." schmecken = schmecke (obj). -- JuL schreiben = schreibe (txt) -- JuL WHERE txt ISA STRING ELSE "So kannst du nicht schreiben." schreiben_auf = schreibe (txt) auf (obj) -- JuL WHERE txt ISA STRING ELSE "So kannst du nicht schreiben." AND obj ISA OBJECT ELSE "Darauf kannst du nicht schreiben." schreiben_auf_mit = schreibe (txt) auf (obj1) mit (obj2) -- JuL WHERE txt ISA STRING ELSE "So kannst du nicht schreiben." AND obj1 ISA OBJECT ELSE "Darauf kannst du nicht schreiben." AND obj2 ISA OBJECT ELSE "Mit Leuten kannst du nicht schreiben." schreiben_mit = schreibe (txt) mit (obj) -- JuL WHERE txt ISA STRING ELSE "So kannst du nicht schreiben." AND obj ISA OBJECT ELSE "Mit Leuten kannst du nicht schreiben." schreiben_mit_auf = schreibe (txt) mit (obj1) auf (obj2) -- JuL WHERE txt ISA STRING ELSE "So kannst du nicht schreiben." AND obj1 ISA OBJECT ELSE "Mit Leuten kannst du nicht schreiben." AND obj2 ISA OBJECT ELSE "Darauf kannst du nicht schreiben." scoren = 'score'. -- JuL setzen = setzen. -- JuL setzen_auf = setzen auf (obj). -- JuL speichern = speichern. spielen = spiele (obj) WHERE obj ISA OBJECT ELSE "Das kannst du nicht spielen." spielen2 = spiele mit (obj) WHERE obj ISA OBJECT ELSE "Damit kannst du nicht spielen." sprechen_mit = spreche mit (act) WHERE act ISA ACTOR ELSE "Weißt du, Dinge reden nicht. Leute tun das." sprechen_ueber = spreche ueber (obj)!. sprechen_ueber_zu = spreche ueber (obj)! zu (act) WHERE act ISA ACTOR ELSE "Weißt du, Dinge reden nicht. Leute tun das." sprechen_zu = spreche zu (act) WHERE act ISA ACTOR ELSE "Weißt du, Dinge reden nicht. Leute tun das." sprechen_zu_ueber = spreche zu (act) ueber (obj)! WHERE act ISA ACTOR ELSE "Weißt du, Dinge reden nicht. Leute tun das." springen = springe. -- JuL springen_auf = springe auf (obj). -- JuL springen_aus = springe aus (obj). -- JuL springen_aus2 = springe aus (obj) heraus. -- JuL springen_gegen = springe gegen (obj). -- JuL springen_in = springe 'in' (obj). -- JuL springen_ueber = springe ueber (obj). -- JuL stecken = stecke (obj1) 'in' (obj2) -- JuL WHERE obj1 ISA OBJECT ELSE "Das kannst du nirgends hinein stecken." AND obj2 ISA OBJECT ELSE "Da hinein kannst du nichts stecken." stecken_hinein = stecke (obj1) 'in' (obj2) re -- hinein (JuL) WHERE obj1 ISA OBJECT ELSE "Das kannst du nirgends hinein stecken." AND obj2 ISA OBJECT ELSE "Da hinein kannst du nichts stecken." trinken = trinke (obj)! WHERE obj ISA OBJECT ELSE "Sowas kannst du nicht trinken." untersuchen = untersuche (obj) WHERE obj ISA OBJECT OR ACTOR ELSE "Das kannst du nicht untersuchen." verbos = verbos. -- JuL verschliessen = verschliesse (obj) WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht verschließen." verschliessen_mit = verschliesse (obj) mit (schluessel) WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht verschließen." AND schluessel ISA OBJECT ELSE "Mit Leuten kannst du nichts verschließen." warten = warten. werfen = werfe (obj) * WHERE obj ISA OBJECT ELSE "Du kannst so etwas nicht werfen." werfen_in = werfe (obj1) * 'in' (obj2) WHERE obj1 ISA OBJECT ELSE "Du kannst so etwas nicht werfen." AND obj2 ISA CONTAINER OBJECT -- :-( (JuL) ELSE "In so etwas kannst du nichts hineinwerfen." werfen_mit_nach = werfe mit (obj1) * nach (obj2) ! WHERE obj1 ISA OBJECT ELSE "Du kannst so etwas nicht werfen." AND obj2 ISA OBJECT OR ACTOR ELSE "Dahin kannst du nichts werfen." werfen_nach = werfe (obj1) * nach (obj2) ! WHERE obj1 ISA OBJECT ELSE "Du kannst so etwas nicht werfen." AND obj2 ISA OBJECT OR ACTOR ELSE "Dahin kannst du nichts werfen." werfen_nach_mit = werfe nach (obj1) ! mit (obj2) * WHERE obj2 ISA OBJECT ELSE "Du kannst so etwas nicht werfen." AND obj1 ISA OBJECT OR ACTOR ELSE "Dahin kannst du nichts werfen." werfen_zu = werfe (obj1) * zu (obj2) ! WHERE obj1 ISA OBJECT ELSE "Du kannst so etwas nicht werfen." AND obj2 ISA OBJECT OR ACTOR ELSE "Dahin kannst du nichts werfen." winken = winke (obj). -- JuL winken_mit = winke mit (obj). -- JuL xyzzy = xyzzy. -- JuL ziehen = ziehe (obj) WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht ziehen." ziehen_an1 = ziehe an (obj). -- JuL ziehen_an2 = ziehe (obj) an -- JuL WHERE obj ISA OBJECT ELSE "So etwas kannst nicht anziehen." ziehen_aus = ziehe (obj) aus -- JuL WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht ausziehen." zuege = zuege. -- JuL zuenden = zuende (obj) WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht zünden." zuenden_an = zuende (obj) an WHERE obj ISA OBJECT ELSE "So etwas kannst du nicht anzünden." zustand = zustand. -- JuL ------------------------------------------------ -- PART 4: VERBS. -- ************** -- -- Ein-Wort-Verben. -- -- VERB betreten0 DOES "Hier gibt es nichts, was du betreten könntest." END VERB betreten0. -- Beenden mit Bestätigung: [JuL] ACTOR Hero NAME ich NAME Held IS NOT beendend. zuege 0. END ACTOR Hero. SYNTAX ja = ja. nein = nein. VERB enden DOES "Willst Du wirklich aufgeben? Gib ,,ja'' ein um aufzuhören oder Deinen nächsten Befehl um fortzufahren." MAKE Hero beendend. SCHEDULE kein_Ende AFTER 1. END VERB enden. VERB ja CHECK Hero IS beendend ELSE "Das scheint keine Frage zu beantworten." DOES QUIT. END VERB ja. VERB nein DOES "Ach, sei nicht so negativ!" END VERB nein. EVENT kein_Ende MAKE Hero NOT beendend. END EVENT kein_Ende. -- VERB glotzen0 CHECK LOCATION IS erleuchtet OR SUM OF leuchtend HERE > 0 ELSE "Es ist zu dunkel." DOES LOOK. END VERB glotzen0. -- VERB graben DOES IF LOCATION IS bebodent THEN "Hier mit deinen Händen zu graben bringt dich nicht weiter." ELSE "Worin willst du hier denn graben?" END IF. END VERB graben. -- VERB helfen DOES "Benutze Befehle wie (n)ord, (s)ued, (o)st, (w)est, (h)och, (r)unter, (re)in, (ra)us um dich zu bewegen, (g)lotz um dich umzuschauen, (b)esitz um den deinen zu begutachten oder einfache Sätze wie ,,nimm den ball'' um andere Dinge zu tun. Umlaute können derzeit noch nicht eingegeben werden, verwende bitte die ,,ae''-Umschreibung." END VERB helfen. -- JuL: VERB knapp DOES VISITS 54321. -- Ich hoffe mal, daß ein Spiel nicht länger dauert ... "Das Spiel befindet sich jetzt im KNAPPen Modus, wo Ortsbeschreibungen nur gegeben werden, wenn dieser Ort zum ersten Mal betreten wurde oder es explizit mit GLOTZ gefordert wird." END VERB knapp. -- VERB laden DOES "Laden ..." RESTORE. "Fertig.$n" LOOK. END VERB laden. -- JuL: VERB lauschen DOES "Du hörst nichts besonderes." END VERB lauschen. -- VERB listen_besitz DOES LIST inventar. END VERB listen_besitz. -- JuL: VERB riechen0 DOES "Du riechst nichts ungewöhnliches." END VERB riechen0. -- VERB rufen DOES "Es hat keinen Sinn zu rufen." END VERB rufen. -- JuL: VERB scoren DOES SCORE. IF zuege OF Hero <> 0 THEN DECREASE zuege OF Hero. END IF. END VERB scoren. -- JuL: VERB setzen DOES "Du setzt dich auf den Boden." END VERB setzen. -- VERB speichern DOES "Speichern ..." SAVE. "Fertig." END VERB speichern. -- JuL: VERB springen DOES "Du springst ein wenig auf und ab." END VERB springen. -- JuL: VERB verbos DOES VISITS 0. "Das Spiel befindet sich jetzt im AUSFÜHRLICHen Modus, wo Ortsbeschreibungen jedesmal gegeben werden, wenn dieser Ort erneut betreten wird." END VERB verbos. -- VERB warten DOES "Die Zeit vergeht ..." END VERB warten. -- JuL: VERB xyzzy DOES "Eine andere Zeit, eine andere Welt ..." END VERB xyzzy. -- JuL: VERB zuege DOES "Diese Sitzung dauerte " IF zuege OF Hero <> 0 THEN DECREASE zuege OF Hero. END IF. SAY zuege OF Hero. IF zuege OF Hero = 1 THEN "Zug." ELSE "Züge." END IF. END VERB zuege. -- JuL: VERB zustand DOES "Du fühlst dich gut." END VERB zustand. -- -- Zwei- oder mehrwortige Verben. -- VERB attackieren CHECK act HERE ELSE "Diese Person siehst du hier nicht." DOES "Keine unnötige Gewalt bitte." END VERB attackieren. -- VERB attackieren_mit_wen CHECK act HERE ELSE "Diese Person siehst du hier nicht." DOES IF obj IN inventar THEN "Keine unnötige Gewalt bitte." ELSE "Du hast" IF obj IS geschlecht THEN IF obj IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$1." END IF. END VERB attackieren_mit_wen. -- VERB attackieren_wen_mit CHECK act HERE ELSE "Diese Person siehst du hier nicht." DOES IF obj IN inventar THEN "Keine unnötige Gewalt bitte." ELSE "Du hast" IF obj IS geschlecht THEN IF obj IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$2." END IF. END VERB attackieren_wen_mit. -- JuL: VERB betreten1 DOES "Das kannst du nicht betreten." END VERB betreten1. -- VERB entfernen, ziehen_aus CHECK obj IN inventar ELSE "Das hast du gar nicht." AND obj IS angezogen ELSE "Das hast du gar nicht an." AND obj IS anziehbar ELSE "Das kannst du nicht ausziehen." DOES "Du ziehst" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$1 aus." MAKE obj NOT angezogen. END VERB. -- JuL: VERB entfernen_von CHECK obj1 NOT IN inventar ELSE "Aber das hast du doch selbst!" DOES "Du kannst" IF obj1 IS NOT benannt THEN IF obj1 IS geschlecht THEN IF obj1 IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$1 nicht von" IF obj2 IS NOT benannt THEN IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$2 entfernen." END VERB entfernen_von. -- VERB erschiessen CHECK act HERE ELSE "So etwas siehst du hier nicht." DOES "`Gewalt ist der letzte Ausweg der Unfähigen' (TM)." END VERB erschiessen. -- JuL VERB erschiessen_mit CHECK obj IN inventar ELSE "Du hast" IF obj IS benannt THEN "$2 nicht." ELSE "gar" IF obj IS geschlecht THEN IF obj IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. END IF. DOES "`Gewalt ist der letzte Ausweg der Unfähigen' (TM)." END VERB erschiessen_mit. -- VERB erzaehlen DOES IF act IS NOT benannt THEN IF act IS geschlecht THEN IF act IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$o ist nicht beeindruckt." END VERB erzaehlen. -- VERB erzaehlen_ueber, erzaehlen_von DOES IF act IS NOT benannt THEN IF act IS geschlecht THEN IF act IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$o ist nicht beeindruckt." END VERB. -- Derzeit kann der Spieler Dinge essen oder trinken, die mit den essbar- bzw. -- trinkbar-Flags versehen sind. Das macht aber noch nicht viel Sinn, denn die -- gegessenen oder getrunkenen Objekte werden nur aus dem Inventar in den LIMBO -- versetzt. VERB essen CHECK obj IS essbar ELSE "Das ist nicht eßbar." DOES IF obj HERE THEN -- kein CHECK für sicht- aber nicht erreichbare Objekte "Du" IF obj NOT IN inventar THEN "nimmst und" END IF. "ißt" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$o. Das war gut!" LOCATE obj IN Limbo. ELSE "So etwas siehst du hier nicht." END IF. END VERB essen. -- VERB fragen DOES IF act IS NOT benannt THEN IF act IS geschlecht THEN IF act IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$o ignoriert deine Frage." END VERB fragen. -- VERB fragen_nach, fragen_ueber DOES IF act IS NOT benannt THEN IF act IS geschlecht THEN IF act IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$1 ignoriert deine Frage." END VERB. -- JuL: VERB fuege_ein CHECK obj IN inventar ELSE "Das hast du gar nicht." DOES "Das kannst du hier nicht einfügen." END VERB fuege_ein. -- JuL: VERB fuege_in_ein, stecken, stecken_hinein CHECK obj1 IN inventar ELSE "Du hast" IF obj1 IS benannt THEN "$1 nicht." ELSE IF obj1 IS geschlecht THEN IF obj1 IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$1." END IF. AND obj2 HERE ELSE "Du siehst" IF obj1 IS benannt THEN "$1 hier nicht." ELSE IF obj1 IS geschlecht THEN IF obj1 IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$1 hier." END IF. DOES "Das kannst du hier nicht einfügen." END VERB. -- JuL: VERB fuehlen DOES IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$1 fühlt sich normal an." END VERB fuehlen. VERB fuehlen_mit DOES IF obj2 IN inventar THEN "Du berührst" IF obj1 IS NOT benannt THEN IF obj1 IS geschlecht THEN IF obj1 IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$1 mit" IF obj2 IS NOT benannt THEN IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "dem" ELSE "der" END IF. ELSE "dem" END IF. END IF. "$2. Nichts passiert." ELSE "Du hast" IF obj2 IS benannt THEN "$2 nicht." ELSE IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$2." END IF. END IF. END VERB fuehlen_mit. VERB fuehlen_mit2 DOES IF obj1 IN inventar THEN "Du berührst" IF obj2 IS NOT benannt THEN IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$2 mit" IF obj1 IS NOT benannt THEN IF obj1 IS geschlecht THEN IF obj1 IS maennlich THEN "dem" ELSE "der" END IF. ELSE "dem" END IF. END IF. "$1. Nichts passiert." ELSE "Du hast" IF obj1 IS benannt THEN "$1 nicht." ELSE IF obj1 IS geschlecht THEN IF obj1 IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$1." END IF. END IF. END VERB fuehlen_mit2. -- JuL: VERB geben, geben_an CHECK obj IN inventar ELSE "Das hast du nicht!" DOES "`Danke, aber das will ich nicht.'" END VERB. -- JuL: -- VERB gehen_in DOES -- END VERB gehen_in. -- VERB glotzen_hoch DOES IF LOCATION IS ueberdacht THEN "Du schaust an die Decke, doch siehst nichts besonderes." ELSE "Du schaust an den offenen Himmel." END IF. END VERB glotzen_hoch. -- VERB glotzen_runter DOES IF LOCATION IS bebodent THEN "Du schaust auf den Boden unter deinen Füßen, siehst aber nichts besonderes." ELSE "Du schaust herunter auf die Leere unter deinen Füßen." END IF. END VERB glotzen_runter. -- JuL: VERB graben_in DOES "Du kannst mit deinen Händen nicht" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "im" ELSE "in der" END IF. ELSE "im" END IF. ELSE "in" END IF. "$1 graben." END VERB graben_in. -- JuL: VERB graben_in_mit DOES "Du kannst mit" IF obj2 IS NOT benannt THEN IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "dem" ELSE "der" END IF. ELSE "dem" END IF. END IF. "$2 nicht" IF obj1 IS NOT benannt THEN IF obj1 IS geschlecht THEN IF obj1 IS maennlich THEN "im" ELSE "in der" END IF. ELSE "im" END IF. ELSE "in" END IF. "$1 graben." END VERB graben_in_mit. -- VERB graben_mit DOES IF LOCATION IS bebodent THEN "Der Boden ist hier zu hart." ELSE "Worin willst du hier graben?" END IF. END VERB graben_mit. -- JuL: VERB graben_mit_in DOES "Du kannst mit" IF obj1 IS NOT benannt THEN IF obj1 IS geschlecht THEN IF obj1 IS maennlich THEN "dem" ELSE "der" END IF. ELSE "dem" END IF. END IF. "$1 nicht" IF obj2 IS NOT benannt THEN IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "im" ELSE "in der" END IF. ELSE "im" END IF. ELSE "in" END IF. "$2 graben." END VERB graben_mit_in. -- JuL: VERB klopfen_an, klopfen_auf, klopfen_gegen DOES "Du klopfst gegen" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$1." END VERB. -- JuL: VERB lecken, lecken_ab, lecken_an DOES IF obj IS essbar THEN "Schmeckt normal." ELSE "Bäh, fühlt sich normal an und schmeckt gräßlich." END IF. END VERB. -- VERB legen, legen_ab CHECK obj IN inventar ELSE "Das besitzt du nicht." DOES LOCATE obj HERE. IF obj IS angezogen THEN MAKE obj NOT angezogen. END IF. "Abgelegt." END VERB. -- VERB legen_auf, legen_auf_ab, legen_bei_ab, legen_hinter, legen_unter CHECK obj1 IN inventar ELSE "Das besitzt du nicht!" AND obj2 HERE AND obj2 NOT IN inventar ELSE "Hier ist" IF obj2 IS NOT benannt THEN IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "kein" ELSE "keine" END IF. ELSE "kein" END IF. ELSE "kein" END IF. "$2." DOES "Nö, du legst es lieber auf den Boden.$n" LOCATE obj1 HERE. IF obj1 IS angezogen THEN MAKE obj1 NOT angezogen. END IF. "Abgelegt." END VERB. -- VERB legen_in, legen_hinein, werfen_in CHECK obj1 IN inventar ELSE "Das hast du nicht!" AND (obj2 HERE OR obj2 IN inventar) ELSE "$2? Das siehst du hier nicht." AND obj1 <> obj2 ELSE "Na, das wäre ein guter Trick!" AND obj2 IS offen ELSE IF obj2 IS NOT benannt THEN IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$2 ist geschlossen." DOES LOCATE obj1 IN obj2. IF obj1 IS angezogen THEN MAKE obj1 NOT angezogen. END IF. "Ok." END VERB. -- VERB lesen DOES "Da gibt es nichts zu lesen." END VERB lesen. -- VERB loeschen, machen_aus CHECK obj HERE ELSE "So etwas siehst du hier nicht." DOES "Das kannst du nicht löschen." END VERB. -- VERB nehmen, nehmen_auf, nehmen_mit CHECK obj IS nehmbar ELSE "Das kannst du nicht nehmen!" AND obj NOT IN inventar ELSE "Das hast du schon." DOES IF obj HERE THEN -- Kein CHECK damit sicht- aber nicht -- erreichbare Objekte richtig behandelt -- werden können. LOCATE obj IN inventar. "Genommen." ELSE "So etwas kannst du hier nicht sehen." END IF. END VERB. -- JuL: VERB nehmen_von, nehmen_aus CHECK obj IS nehmbar ELSE "Das kannst du nicht tragen!" AND obj NOT IN inventar ELSE "Das hast du schon!" AND obj IN subj ELSE IF subj IS NOT benannt THEN "Der" END IF. "$2 hat das nicht." DOES "Du nimmst" IF obj IS NOT benannt THEN "den" END IF. "$1 von" IF obj IS NOT benannt THEN "dem" END IF. "$2." LOCATE obj IN inventar. END VERB. -- VERB machen_an, schalten_an CHECK obj IS schaltbar ELSE "Das kannst du nicht anmachen." AND obj HERE ELSE "Das siehst du hier nicht." AND obj IS NOT an ELSE "Es ist schon angeschaltet." DOES MAKE obj an. "Ok," IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "der" ELSE "die" END IF. ELSE "das" END IF. END IF. "$o ist nun an." END VERB. -- VERB machen_auf, oeffnen CHECK obj IS oeffnebar ELSE "Das kannst du nicht öffnen!" AND obj IS NOT offen ELSE "Es ist schon offen." AND obj IS NOT abgeschlossen -- JuL ELSE "Es ist abgeschlossen." DOES MAKE obj offen. IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$o ist jetzt offen." END VERB. -- VERB machen_auf_mit, machen_mit_auf, oeffnen_mit DOES IF obj HERE THEN IF oeffner IN inventar THEN "Du kannst" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$1 nicht mit" IF oeffner IS NOT benannt THEN IF oeffner IS geschlecht THEN IF oeffner IS maennlich THEN "dem" ELSE "der" END IF. ELSE "dem" END IF. END IF. "$2 öffnen." ELSE "Du hast" IF oeffner IS geschlecht THEN IF oeffner IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$2." END IF. ELSE "Hier ist" IF obj IS geschlecht THEN IF obj IS maennlich THEN "kein" ELSE "keine" END IF. ELSE "kein" END IF. "$1, was du öffnen könntest." END IF. END VERB. -- VERB machen_aus, schalten_aus CHECK obj IS schaltbar ELSE "Das kannst du nicht ausschalten." AND obj IS an ELSE "Es ist schon aus." AND obj HERE ELSE "Das siehst du hier nicht." DOES MAKE obj NOT an. "Ok," IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "der" ELSE "die" END IF. ELSE "das" END IF. END IF. "$o ist nun aus." END VERB. -- VERB machen_mit_auf2 DOES IF obj HERE THEN IF oeffner IN inventar THEN "Du kannst" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$2 nicht mit" IF oeffner IS NOT benannt THEN IF oeffner IS geschlecht THEN IF oeffner IS maennlich THEN "dem" ELSE "der" END IF. ELSE "dem" END IF. END IF. "$1 öffnen." ELSE "Du hast" IF oeffner IS geschlecht THEN IF oeffner IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$1." END IF. ELSE "Hier ist" IF obj IS geschlecht THEN IF obj IS maennlich THEN "kein" ELSE "keine" END IF. ELSE "kein" END IF. "$2, was du öffnen könntest." END IF. END VERB machen_mit_auf2. -- VERB machen_mit_zu, schliessen_mit2 DOES IF obj HERE THEN IF schliesser HERE THEN "Du kannst" IF obj IS benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$2 nicht mit" IF schliesser IS NOT benannt THEN IF schliesser IS geschlecht THEN IF schliesser IS maennlich THEN "dem" ELSE "der" END IF. ELSE "dem" END IF. END IF. "$1 schließen." ELSE "Du siehst hier" IF schliesser IS geschlecht THEN IF schliesser IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$1." END IF. ELSE "Hier ist" IF obj IS geschlecht THEN IF obj IS maennlich THEN "kein" ELSE "keine" END IF. ELSE "kein" END IF. "$2." END IF. END VERB. -- VERB machen_mit_zu2, machen_zu_mit, schliessen_mit DOES IF obj HERE THEN IF schliesser HERE THEN "Du kannst" IF obj IS benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$1 nicht mit" IF schliesser IS NOT benannt THEN IF schliesser IS geschlecht THEN IF schliesser IS maennlich THEN "dem" ELSE "der" END IF. ELSE "dem" END IF. END IF. "$2 schließen." ELSE "Du siehst hier" IF schliesser IS geschlecht THEN IF schliesser IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$2." END IF. ELSE "Hier ist" IF obj IS geschlecht THEN IF obj IS maennlich THEN "kein" ELSE "keine" END IF. ELSE "kein" END IF. "$1." END IF. END VERB. -- VERB machen_zu, schliessen CHECK obj IS schliessbar ELSE "Das kannst du nicht schließen." AND obj IS offen ELSE "Es ist nicht offen." DOES MAKE obj NOT offen. IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$o ist nun geschlossen." END VERB. -- JuL: VERB riechen1, riechen_an DOES "Du riecht nichts besonderes." END VERB. -- VERB sagen DOES "Du murmelst etwas in deinen Bart." END VERB sagen. -- VERB sagen_txt_zu DOES "Du murmelst etwas" IF act IS NOT benannt THEN IF act IS geschlecht THEN IF act IS maennlich THEN "zum" ELSE "zur" END IF. ELSE "zum" END IF. ELSE "zu" END IF. "$2." END VERB sagen_txt_zu. -- VERB sagen_zu_txt DOES "Du murmelst etwas" IF act IS NOT benannt THEN IF act IS geschlecht THEN IF act IS maennlich THEN "zum" ELSE "zur" END IF. ELSE "zum" END IF. ELSE "zu" END IF. "$2." END VERB sagen_zu_txt. -- VERB schieben CHECK obj HERE ELSE "Das siehst du hier nicht." DOES "Nichts passiert." END VERB schieben. -- VERB schieben_mit CHECK obj1 HERE ELSE "Das, was du schieben willst, siehst du hier nicht." AND obj2 IN inventar ELSE "Das, womit du schieben willst, hast du nicht." DOES "Das scheint nichts bewirkt zu haben." END VERB schieben_mit. -- JuL: VERB schiessen CHECK act HERE ELSE "Dieses Ziel siehst du hier nicht." DOES "`Gewalt ist der letzte Ausweg der Unfähigen' (TM)." END VERB schiessen. -- VERB schiessen_auf, schiessen_mit2 CHECK obj IN inventar ELSE "Du hast" IF obj IS benannt THEN "$1 nicht." ELSE IF obj IS geschlecht THEN IF obj IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$1." END IF. AND act HERE ELSE "Dieses Ziel siehst du hier nicht." DOES "`Gewalt ist der letzte Ausweg der Unfähigen' (TM)." END VERB. -- VERB schiessen_mit CHECK obj IN inventar ELSE "Du hast" IF obj IS benannt THEN "$1 nicht." ELSE IF obj IS geschlecht THEN IF obj IS maennlich THEN "keinen" ELSE "keine" END IF. ELSE "kein" END IF. "$1." END IF. AND act HERE ELSE "Dieses Ziel siehst du hier nicht." DOES "`Gewalt ist der letzte Ausweg der Unfähigen' (TM)." END VERB schiessen_mit. -- VERB schliessen_ab, verschliessen CHECK obj IS abschliessbar ELSE "Das kannst du nicht verschliessen." AND obj HERE ELSE "Du siehst nicht, was du abschließen willst." AND obj IS NOT abgeschlossen ELSE "Es ist schon abgeschlossen." DOES "Du brauchst den richtigen Schlüssel." -- JuL(!) END VERB. -- JuL VERB schliessen_ab_mit CHECK obj IS abschliessbar ELSE "Das kannst du nicht abschließen!" AND obj HERE ELSE "So etwas siehst du hier nicht." AND obj IS NOT abgeschlossen ELSE "Es ist schon abgeschlossen." AND schloss OF obj = schloss OF schluessel AND schloss OF obj <> 0 ELSE "Das paßt nicht." DOES IF obj IS offen THEN MAKE obj NOT offen. "(es erst schließend)" END IF. MAKE obj abgeschlossen. "Ok." END VERB schliessen_ab_mit. -- JuL VERB schliessen_mit_ab, verschliessen_mit CHECK obj IS abschliessbar ELSE "Das kannst du nicht abschließen!" AND obj HERE ELSE "So etwas siehst du hier nicht." AND obj IS NOT abgeschlossen ELSE "Es ist schon abgeschlossen." AND schloss OF obj = schloss OF schluessel AND schloss OF obj <> 0 ELSE "Das paßt nicht." DOES IF obj IS offen THEN MAKE obj NOT offen. "(es erst schließend)" END IF. MAKE obj abgeschlossen. "Ok." END VERB. -- JuL: VERB schmecken DOES IF obj IS essbar THEN "Du schmeckst nichts ungewöhnliches." ELSE "Davon würde ich aber nichts versuchen zu probieren." END IF. END VERB. -- VERB schreiben DOES "Du schreibst `$1'." END VERB schreiben. -- VERB schreiben_auf DOES "Du schreibst `$1' auf" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$2." END VERB schreiben_auf. -- VERB schreiben_auf_mit DOES "Du schreibst `$1' auf" IF obj1 IS NOT benannt THEN IF obj1 IS benannt THEN IF obj1 IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$2 mit" IF obj2 IS NOT benannt THEN IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "deinen" ELSE "deine" END IF. ELSE "deinem" END IF. END IF. "$3." END VERB schreiben_auf_mit. -- VERB schreiben_mit DOES "Du schreibst `$1' mit" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "deinem" ELSE "deiner" END IF. ELSE "deinem" END IF. END IF. "$2." END VERB schreiben_mit. -- VERB schreiben_mit_auf DOES "Du schreibst `$1' mit" IF obj1 IS NOT benannt THEN IF obj1 IS geschlecht THEN IF obj1 IS maennlich THEN "deinem" ELSE "deiner" END IF. ELSE "deinem" END IF. END IF. "$2 auf" IF obj2 IS NOT benannt THEN IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$3." END VERB schreiben_mit_auf. -- VERB setzen_auf DOES "Du kannst dich nicht auf" IF obj IS NOT benannt THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. "$1 setzen." END VERB setzen_auf. -- VERB spielen CHECK obj HERE ELSE "Das siehst du hier gar nicht." DOES "Das kannst du nicht spielen." END VERB spielen. -- VERB spielen2 CHECK obj HERE ELSE "Das siehst du hier gar nicht." DOES "Damit kannst du nicht spielen." END VERB spielen2. -- VERB sprechen_ueber DOES "Dir scheint niemand zuzuhören." END VERB sprechen_ueber. -- VERB sprechen_ueber_zu DOES IF act IS NOT benannt THEN IF act IS geschlecht THEN IF act IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$2 scheint sich nicht unterhalten zu wollen." END VERB sprechen_ueber_zu. -- VERB sprechen_zu, sprechen_mit DOES IF act IS NOT benannt THEN IF act IS geschlecht THEN IF act IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$o scheint sich nicht unterhalten zu wollen." END VERB. -- VERB sprechen_zu_ueber DOES IF act IS NOT benannt THEN IF act IS geschlecht THEN IF act IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$1 scheint sich nicht unterhalten zu wollen." END VERB sprechen_zu_ueber. -- VERB springen_auf DOES "Du versuchst, auf" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$1 zu springen, springst aber zu kurz." END VERB springen_auf. -- JuL: VERB springen_aus, springen_aus2 DOES "Du versuchst, aus" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "dem" ELSE "der" END IF. ELSE "dem" END IF. END IF. "$1 zu springen, schaffst es aber nicht." END VERB. -- VERB springen_gegen, springen_in DOES "Du springst gegen" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$1. Autsch." END VERB. -- VERB springen_ueber DOES "Du versuchst, über" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$1 zu springen, bemerkst aber noch rechtzeitig, daß du es nicht schaffen würdest." END VERB springen_ueber. -- VERB trinken CHECK obj IS trinkbar ELSE "Das ist nicht trinkbar." DOES IF obj HERE THEN -- kein CHECK für sicht- aber nicht erreichbare Objekte "Du" IF obj NOT IN inventar THEN "nimmst und" END IF. "trinkst" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "den" ELSE "die" END IF. ELSE "das" END IF. END IF. "$o. Ach, das war gut!" LOCATE obj IN Limbo. ELSE "You don't see that here." END IF. END VERB trinken. -- VERB untersuchen, glotzen1, glotzen_an, glotzen_auf DOES "Es gibt nichts besonderes an" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "dem" ELSE "der" END IF. ELSE "dem" END IF. END IF. "$o." END VERB. -- VERB werfen CHECK obj IN inventar ELSE "Das besitzt du nicht." DOES LOCATE obj HERE. "Abgelegt." END VERB werfen. -- VERB werfen_nach_mit CHECK obj2 IN inventar ELSE "Das besitzt du nicht!" AND obj2 NOT IN inventar ELSE "Das hast du selber." AND obj2 HERE ELSE "Das gibt's hier nicht." DOES IF obj2 IS NOT benannt THEN IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$2 prallt harmlos" IF obj1 IS NOT benannt THEN IF obj1 IS geschlecht THEN IF obj1 IS maennlich THEN "vom" ELSE "von der" END IF. ELSE "vom" END IF. ELSE "von" END IF. "$1 ab und fällt zu Boden.$n" LOCATE obj1 HERE. END VERB. -- VERB werfen_mit_nach, werfen_nach, werfen_zu CHECK obj1 IN inventar ELSE "Das besitzt du nicht!" AND obj2 HERE AND obj2 NOT IN inventar ELSE "$2? Das gibt's hier nicht." DOES IF obj1 IS NOT benannt THEN IF obj1 IS geschlecht THEN IF obj1 IS maennlich THEN "Der" ELSE "Die" END IF. ELSE "Das" END IF. END IF. "$1 prallt harmlos" IF obj2 IS NOT benannt THEN IF obj2 IS geschlecht THEN IF obj2 IS maennlich THEN "vom" ELSE "von der" END IF. ELSE "vom" END IF. ELSE "von" END IF. "$2 ab und fällt zu Boden.$n" LOCATE obj1 HERE. END VERB. -- VERB winken DOES "Du winkst" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "deinen" ELSE "deine" END IF. ELSE "dein" END IF. END IF. "$1." END VERB winken. -- VERB winken_mit DOES "Du winkst mit" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "deinem" ELSE "deiner" END IF. ELSE "deinem" END IF. END IF. "$1." END VERB winken_mit. -- JuL: VERB ziehen, ziehen_an1 CHECK obj HERE ELSE "Das siehst du hier nicht." DOES "Du ziehst" IF obj IS NOT benannt THEN IF obj IS geschlecht THEN IF obj IS maennlich THEN "am" ELSE "an der" END IF. ELSE "am" END IF. END IF. "$1." END VERB. -- VERB ziehen_an2 CHECK obj IN inventar ELSE "Das hast du gar nicht." AND obj IS anziehbar ELSE "Das kannst du nicht anziehen." AND obj IS NOT angezogen ELSE "Das hast du doch schon an." DOES "Paßt perfekt." MAKE obj angezogen. END VERB. -- VERB zuenden, zuenden_an CHECK obj HERE ELSE "Das siehst du hier nicht." DOES "Das kannst du nicht anzünden." END VERB. -------------------- -- Teil 5 Orte (JuL) -- Der Nirgendwo-Ort -------------------- LOCATION Limbo EXIT n, s, o, w, nw, no, sw, so, h, r, re, ra TO Limbo. -- zur Sicherheit ... END LOCATION Limbo. ----------------------- -- Teil 6 Objekte (JuL) ----------------------- -- Die Dummyobjekte -- -- Du mußt sie auskommentieren (und in Deine Abenteuerquelldatei kopieren) um -- besondere Meldungen oder Verhalten für Dein Abenteuer anzufügen. ( :-( ) OBJECT Raum IS NOT nehmbar. ARTICLE "ein" DESCRIPTION "" VERB untersuchen DOES ONLY LOOK. END VERB untersuchen. END OBJECT Raum. OBJECT Wand NAME noerdliche suedliche westliche oestliche wand IS NOT nehmbar. ARTICLE "eine" DESCRIPTION "" END OBJECT Wand. OBJECT Boden IS NOT nehmbar. -- ARTICLE "ein" DESCRIPTION "" END OBJECT Boden. OBJECT Decke IS NOT nehmbar. ARTICLE "eine" DESCRIPTION "" VERB untersuchen DOES ONLY "Du kannst die Decke nicht erreichen." END VERB untersuchen. END OBJECT Decke. -------------------------- -- Teil 7 Ereignisse (JuL) -------------------------- -- Der Zugzähler EVENT Zugzähler INCREASE zuege OF Hero. SCHEDULE Zugzähler AFTER 1. END EVENT Zugzähler. -- Der Raumobjektbeweger EVENT Raumbeweger LOCATE Raum AT Hero. IF LOCATION IS bewandet THEN LOCATE Wand AT Hero. END IF. IF LOCATION IS ueberdacht THEN LOCATE Decke AT Hero. END IF. IF LOCATION IS bebodent THEN LOCATE Boden AT Hero. END IF. SCHEDULE Raumbeweger AFTER 1. END EVENT Raumbeweger. ------------------------- -- Teil 8 Meldungen (JuL) ------------------------- MESSAGE AFTERBUT: "Du mußt ein Objekt nach ,,außer/but'' angeben." MESSAGE AGAIN: "(nochmals)" MESSAGE BUTALL: "Du kannst ,,außer/but'' nur nach ,,all(es)'' benutzen." MESSAGE CANT: "Du kannst" -- IF OBJECT IS NOT benannt THEN -- IF OBJECT IS geschlecht THEN -- IF OBJECT IS maennlich THEN -- "den" -- ELSE -- "die" -- END IF. -- ELSE -- "das" -- END IF. -- END IF. ",,$1'' nicht ,,$v''en." MESSAGE CANT0: "Das kannst du nicht tun." MESSAGE CONTAINS1: "Der" -- ?! :( !? MESSAGE CONTAINS: "beinhaltet" MESSAGE CONTAINSCOMMA: ", " MESSAGE CONTAINSAND: "und " -- MESSAGE CONTAINSEND ist gleich. MESSAGE DEFARTICLE: "ein" MESSAGE EMPTY1: "Der" -- ?! :( !? MESSAGE HAVESCORED: "Du hast" MESSAGE ISEMPTY: "ist leer." MESSAGE MORE: "" MESSAGE MULTIPLE: "Du kannst bei ,,$v'' nicht mehrere Dinge gleichzeitig verwenden." MESSAGE NOSUCH: "Du kannst hier" -- IF OBJECT IS NOT benannt THEN -- IF OBJECT IS geschlecht THEN -- IF OBJECT IS maennlich THEN -- "keinen" -- ELSE -- "keine" -- END IF. -- ELSE -- "kein" -- END IF. -- END IF. "kein ,,$1'' sehen." MESSAGE NOTMUCH: "Da bleibt nicht viel was du ,,$v''en kannst." MESSAGE NOUN: "Du mußt hierfür ein Substantiv angeben." MESSAGE NOWAY: "In diese Richtung kannst du nicht." MESSAGE QUITACTION: "Willst du NEUSTARTen [RESTART], einen Spielstand LADEN [RESTORE] oder beENDEn [QUIT]? " MESSAGE RESTOREFROM: "Gib einen Dateinamen zum laden des Spielstands ein" MESSAGE SAVEFAILED: "Sorry, das Abspeichern hat nicht geklappt." MESSAGE SAVEMISSING: "Sorry, konnte keine Spielstandsdatei dieses Namens finden." MESSAGE SAVENAME: "Sorry, die Datei enthält keinen Spielstand für dieses Abenteuer." MESSAGE SAVEOVERWRITE: "Diese Datei existiert schon. Überschreiben? (j/y)" MESSAGE SAVEVERSION: "Sorry, die Datei wurde von einer anderen Alan-Version geschrieben." -- wirklich Alan? MESSAGE SAVEWHERE: "Gib einen Dateinamen zum Abspeichern ein" MESSAGE SCOREOUTOF: "Punkte erreicht von möglichen" -- könnte dritten Teil brauchen MESSAGE SEEACTOR: "ist hier." MESSAGE SEEOBJECT1: "Hier ist" MESSAGE SEEOBJECTCOMMA: "$$, " MESSAGE SEEOBJECTAND: "und " MESSAGE SEEOBJECTEND: "." MESSAGE UNKNOWNWORD: "Das Wort kenne ich nicht." MESSAGE WANT: "Du mußt schon ein Objekt für ,,$v'' angeben." MESSAGE WHAT: "Das verstehe ich nicht." MESSAGE WHATALL: "Ich weiß nicht, was mit ,,all(es)'' gemeint sein soll." MESSAGE WHATIT: "Ich weiß nicht, was mit ,,es/it'' gemeint sein soll." MESSAGE WHATTHEM: "Ich weiß nicht, was mit ,,sie/them'' gemeint sein soll." MESSAGE WHICHONE: "Ich weiß nicht," -- IF OBJECT IS geschlecht THEN -- IF OBJECT IS maennlich THEN -- "welchen" -- ELSE -- "welche" -- END IF. -- ELSE -- "welches" -- END IF. "welches ,,$1' du meinst." ----------------------------------------------- -- Dateiende. -------------