Constant Story "Echapp@'ee Belle Dans Les Contr@'ees du R@^eve"; Constant Headline "^^Ecrit et compil@'e par Ceux Dont On Ne Doit Pas Dire Le Nom.^^Implorez Le Sultant des Grands Anciens en tapant ~Azathoth~ pour conna@^itre le fonctionnement du jeu.^^"; Constant MAX_CARRIED = 200; Include "Parser"; Include "VerbLib"; ! --------------------------------------------------------------------------- ! Routines Demoniaques ! --------------------------------------------------------------------------- [ ChooseObjects obj code; if (code<2) { if (obj has scenery) return 2; rfalse; } if (action_to_be==##Eat && obj has edible) return 3; if (obj hasnt scenery) return 2; return 1; ]; [ attend notNeeded; @read_char 1 notNeeded; rtrue; ]; ! ---------------------------------------------------------------------------- ! Notre Vaillant Investigateur Combattant Les Creatures De L'Inconnu ! ---------------------------------------------------------------------------- Object investigateur "investigateur" with short_name [; return L__M(##Miscellany, 18); ], description [;print "V@^etu de noir de pied en cap, vous @^etes l'ombre qui traque les ombres. Vos yeux vifs et brillants voient tout, votre visage ne laisse deviner nul sentiment. Vos bras et vos mains sont cisel@'es de muscles puissants qui peuvent d@'echirer et briser, et votre allure athl@'etique va de pair avec votre souplesse naturelle.^^Vous avez fait le serment de nettoyer le monde des horreurs blasph@'ematoires du Mythe, et celui-ci n'a jamais rencontr@'e pire adversaire que vous.^";if (cendres.mis==1 || cendres2.mis==2) {print "^Votre visage est recouvert de cendres.^";}], before [;], after NULL, life NULL, each_turn NULL, time_out NULL, describe NULL, capacity 100, parse_name 0, has concealed animate proper transparent; ! ---------------------------------------------------------------------------- ! Lieux Infernaux ! ---------------------------------------------------------------------------- Object start "Aux fins fonds d'un Presbyt@`ere oubli@'e" with description "Derri@`ere vous, une vol@'ee de marches rejoignent les caves de cette Eglise perdue.^Et au devant, les traces de pas ensanglant@'ees se tra@^inent vers une lourde porte de bois ouvrag@'ee que vous distinguez @`a peine dans ces t@'en@`ebres. ", u_to [;print "Vous ne retournerez pas @`a la surface avant d'avoir r@'eduit @`a n@'eant votre n@'em@'esis. ";], in_to porte, has scenery; Object porte "porte ouvrag@'ee" with name 'porte' 'ouvragee' 'bois' 'bronze' 'clous' 'cloute', description [;print "Votre oeil exerc@'e reconna@^it imm@'ediatement le Signe des Anciens grav@'e profondement dans le bronze clout@'e sur cette porte @'epaisse et ne laisse aucun doute quant @`a la nature de la pi@`ece qu'elle garde : le d@'emon des d@'emons, l'autel impie d'un mal@'efique.^^La porte est ferm@'ee d'une grossi@`ere serrure de m@'etal. ";if (serrure.casse==1) {print "Cette serrure a @'et@'e d@'efonc@'ee @`a coups de revolver. ";}], door_to [;if (player in start) {return antre;} else {return start;}], found_in start antre, has scenery door female openable lockable locked static; Object antre "L'Antre du Sorcier" with description [;if (self.vu==0) {EntreAntre();self.vu=1;}print "Ce repaire du Mal suinte l'oeuvre de puissances innommables dans toutes ses dimensions et ses dispositions.^^La pi@`ece forme un vaste pentagone dont les sommets s'enfoncent encore plus profondement dans des anfractuosités sombres.";], vu 0, out_to porte, has scenery; Object pnath "Vall@'ee de Pnath" with description "Dans la clart@'e cr@'epusculaire du Monde Inf@'erieur, au pied de l'immense tour de Koth qui s'enfonce dans les t@'en@`ebres du monde du dessus, s'@'etend la vall@'ee de Pnath, vaste @'etendue rocailleuse gardienne d'horreurs muettes et indiscibles. ", each_turn [;if (lac.brule==0 && player notin cage1) {print "^^Mais...^^";attend();print "...d'horribles Gugs vous attendent et vous saisissent ; cette fois, votre mort sera rapide, car ils ont compris que vous saviez leur @'echapper...^^Si seulement vous aviez pu les @'eloigner avant...";deadflag=true;return 2;}], has scenery; Object reve "Maison d'enfance" with description "Votre maison est inond@'ee de lumi@`ere r@'econfortante qui plonge depuis des fen@^etres situ@'ees trop haut pour que vous puissiez les atteindre ou voir au-dehors. Les contours des objets et des parois qui vous entourent vous paraissent flous et ondulants, et parfois des ombres semblent passer rapidement autour de vous.", has scenery; Object escalier "Les Soixante Dix Marches du Sommeil L@'eger" with description "Cet escalier large et aux marches trop hautes s'enfonce dans des t@'en@^ebres peu rassurantes. Ici aussi, les contours du couloir dans lequel il est taill@'e ondulent comme une houle tranquille. ", before [;Go : if (noun==d_obj) {Cavern();return 2;}], out_to reve, u_to reve, has scenery; Object clairiere "La Clairi@`ere des Zoogs" with description "Les arbres du Bois Enchant@'e sont tordus et gris, et leurs frondaisons s'@'etendent haut dans une barri@`ere opaque qui @'etouffe tout son dans un silence cotonneux et bloque toute lumi@`ere, donnant aux environs des tons cr@'epusculaires. ", d_to [;if (dalle has open) {return koth;}], has scenery; ! ---------------------------------------------------------------------------- ! Objets Repugnants et Indiscibles ! ---------------------------------------------------------------------------- Object briquet "briquet d'argent" investigateur with name 'briquet' 'argent' 'zippo' 'feu', description [;print "Un ancien briquet @`a essence en argent, finement cisel@'e de motifs floraux. Agr@'eable au toucher, il se manipule facilement. Au dos sont grav@'es ces mots dont les arabesques s'entrelacent :^^";style underline;print "Il y a plus de myst@`eres sur la terre et dans le ciel que dans toute la philosophie. ";style roman;], has switchable; Object revolver "pistolet" investigateur with name 'pistolet' 'acier' 'arme' 'revolver', description [;print "Un bel objet en acier, fabriqu@'e sur mesure par le meilleur armurier de Chicago. Le canon est l@'eg@'erement plus long que la norme, pour assurer une meilleure vis@'ee ; sur la crosse un fil d'argent court et trace ce vers @'etrange :";style underline;print "^^N'est pas mort ce qui @`a jamais dort, et au long des @'eons peut mourir m@^eme la mort. ";style roman;]; Object serrure "serrure" start with name 'serrure' 'trou' 'trou de la serrure', description [;if (self.casse==0) {"Vous vous baissez pour regarder par le trou de la serrure, mais son m@'ecanisme est con@@cu pour ne rien laisser passer, pas m@^eme le regard. ";} else {print "La serrure a @'et@'e d@'efonc@'ee @`a coups de revolver. ";}], casse 0, has scenery female; Object clef "clef d'argent" with name 'clef' 'argent' 'metal' 'objet' 'metallique', description "Une clef de l'ancien temps, pas plus grande que votre paume, finement ouvrag@'ee. De petits fils de m@'etal parcourent toute sa longueur et s'emm@^elent comme des serpents amoureux. Parfois, vous jureriez que l'un d'entre eux s'agite.^^Lorsque vous la serrez fort dans votre main, il vous semble percevoir comme une pulsation sourde @'emanant de cet objet, et selon l'inclinaison de la lumi@`ere, il vous semble m@^eme parfois la voir dispara@^itre.", has female; Object coffre "petit coffre fort" antre with name 'petit' 'coffre' 'fort', description "Un petit coffre fort sans poign@'ee ni combinaison, encastr@'e dans un mur. ", has openable lockable locked container static; Object table "table de bois" antre with name 'table' 'bois' 'epaisse', description [;print "Cette table est @'epaisse et taill@'ee dans du xanth, un bois tr@'es lourd poussant dans le cosmos et servant @`a r@'ealiser les autels sacrificiels dans certaines dimensions o@`u l'homme ne devrait pas aller.";if (self.vu==0) {print "^^Hum hum. ";attend();print "Vous remarquez sous la table, calant un pied taill@'e comme une gargouille, un @'etrange ouvrage. ";self.vu=1;move necronomicon to antre;}], vu 0, has female supporter transparent enterable open static; Object cloche "petite cloche" table with name 'carillon' 'cloche' 'tezchaptl' 'petite', description "Votre oeil exerc@'e reconnait cet abominable artefact : le Carillon de Tezchaptl. Fait d'un m@'etal @'el@'ementaire pur, elle permet de contr@^oler les fluides vitaux pour mieux invoquer Hastur. Mais la derni@`ere fois que vous l'avez entendue tinter, les yeux de son porteur ont explos@'e, et son corps s'est vid@'e de son sang. ", before [;Take : print "Vous pref@'erez ne pas emporter cet objet maudit avec vous. ";return 2;], has female; Object cristal "fragment de cristal" table with name 'cristal' 'boule' 'mortlan' 'fragment', description [;if (cristal in player) {print "Un cristal de Mortlan. Classique. L'artefact bien connu du Mythe qui colore la fum@'ee tir@'ee de la combustion d'un cadavre humain et dessine des visions de l'avenir. Pour qui veut bien sacrifier sa sant@'e mentale...^^Vous vous rappelez @'egalement que pour ceux qui ne savent pas ce qu'ils cherchent, des visions d'horribles cr@'eatures ou de lieux @'etranges peuvent se mat@'erialiser.^^En son centre flotte une petite clef. ";} else {print "Un cristal de Mortlan. Classique. L'artefact bien connu du Mythe qui colore la fum@'ee tir@'ee de la combustion d'un cadavre humain et dessine des visions de l'avenir. Pour qui veut bien sacrifier sa sant@'e mentale...^^Vous vous rappelez @'egalement que pour ceux qui ne savent pas ce qu'ils cherchent, des visions d'horribles cr@'eatures ou de lieux @'etranges peuvent se mat@'erialiser.^^Mais pour l'instant, le cristal est opaque. ";}], before [;Attack : print "Vous lancez le cristal contre un mur et il se brise dans un bruit de tonnerre. Les d@'ebris s'@'evanouissent avec les @^ames de vies humaines consum@'ees dans la cr@'eation du cristal, pour ne laisser qu'un petit objet m@'etallique sur le sol. ";remove cristal;move clef to antre;return 2;]; Object baton "b@^aton" antre with name 'baton' 'baguette', description "Un b@^aton de sorcier tout @`a fait ordinaire...plus utile @`a martyriser les @^ames damn@'ees qu'@`a lancer de r@'eelles sorcelleries... ", before [;Take : print "Certainement pas. Il doit @^etre charg@'e @`a bloc d'ondes mal@'efiques qui pourraient corrompre votre @^ame. ";return 2;]; Object trapezoedon "boite rougeoyante" antre with name 'boite' 'rougeoyante' 'trapezoedon', description "Tiens donc, un trapezoedon rutilant, le joujou classique des sorciers mal@'efiques, cette boite maudite qui contient de minuscules passages interdimensionnels... ", before [;Take : print "Tout combattant de la lumi@`ere avis@'e sait que le Trap@'ezo@'edron Rutilant est un Artefact Maudit, qui corrompt le plus pur des coeurs, et qu'il ne faut prendre avec soi que si l'on veut la perte de la raison et l'oubli de la civilisation. Ce petit rappel effectu@'e, vous d@'ecidez donc de laisser l'Objet D@'emoniaque l@`a o@`u il est. ";return 2;], has female; Object flacon "flacon" coffre with name 'flacon' 'cloroforme' 'bouteille' 'verre', description "Un flacon recouvert d'un bouchon de plastique vert et transparent, laissant voir un liquide translucide qui le remplit @`a moiti@'e. ", before [;Open : print "Une odeur ent@^etante de cloroforme s'@'echappe du flacon. ";give self open;return 2; Smell : if (self has open) {Cloroforme();return 2;} else {print "La bouteille a un l@'eger relent d'une odeur m@'edicale. ";return;}] has openable; Object flaconbrise "bris de verre" antre with name 'brise' 'bris' 'verre', description "Au sol, quelques bris de verre humide sont @'etal@'es. ", before [;Smell : print "Les d@'ebris ont un l@'eger relent d'une odeur m@'edicale. ";] has pluralname; Object manuscrits "myst@'erieux manuscrits" coffre with name 'manuscrit' 'pnakotique' 'mysterieux', description [;print "Vous d@'eroulez avec une @'emotion teint@'ee de peur les anciens manuscrits.^^Il s'agit sans nul doute d'une authentique recopie des Manuscrits Pnakotiques, @'ecrits dans la dimension des r@^eves. Un seul sortil@`ege, @'ecrit dans des id@'eogrammes chinois anciens que vous d@'echiffrez ais@'ement, se d@'eroule tout au long de ces lignes impies :";style underline;print "^^Pour qui voudra rejoindre physiquement, et non par le r@^eve, les contr@'ees oniriques de la Terre, il n'existe qu'un seul moyen : tomber en sommeil en possession de la Clef d'Argent, un myst@'erieux Artefact oubli@'e par Nyarlathotep le Messager des Dieux, mais cet artefact a disparu depuis des millions d'ann@'ees. ";style roman;], before [;Burn : if (briquet in player) {if (briquet has on) {print "Consid@'erant une seconde que ce manuscrit n'a pas de prix, vous d@'ecidez quand m@^eme de le r@'eduire @`a n@'eant au cas o@`u il tomberait entre de mauvaises mains. ";remove self;move cendres to player;} else {print "Votre briquet est @'eteint. ";}} else {print "Vous n'avez rien pour br@^uler ceci !";} return 2;], has pluralname; Object manuscrits2 "myst@'erieux manuscrits" with name 'manuscrit' 'pnakotique' 'mysterieux', description [;print "Vous d@'ecouvrez avec surprise que la substance des manuscrits ont chang@'e...le parchemin s'est fait plus ferme, et en le touchant vous d@'ecouvrez que le papyrus @'elim@'e a fait place @`a de la peau humaine tann@'ee, et les glyphes sont maintenant de l'Hyperbor@'een, que par chance, vous ma@^itrisez compl@`etement, et ces mots disent :";style underline;print "^^Il y a des voies autres que physiques pour rejoindre la dimension des r@^eves, il suffit de r@^ever, tout simplement. Mais devenir un R@^eveur est une t@^ache r@'eserv@'ee @`a peu d'@^etres d'exception.^^Il est toutefois possible d'utiliser le rituel suivant :^^Quand les Astres Seront Propices, le R@^eveur s'enduira le visage de cendres encore chaudes d'un corps humain, puis, avant de sombrer dans le sommeil, prononcera l'invocation suivante :^^Yog Sothoth Huyl Nyee Nyee ! ";style roman;], before [;Burn : if (briquet in player) {if (briquet has on) {print "Consid@'erant une seconde que ce manuscrit n'a pas de prix, vous d@'ecidez quand m@^eme de le r@'eduire @`a n@'eant au cas o@`u il tomberait entre de mauvaises mains. ";remove self;move cendres2 to player;} else {print "Votre briquet est @'eteint. ";}} else {print "Vous n'avez rien pour br@^uler ceci !";} return 2;], has pluralname; Object leaflet "feuillet" with name 'feuillet' 'feuille', description [;print "Sur cette feuille soigneusement pli@'ee en quatre, d'une @'ecriture en pattes de mouche, s'enlacent en glyphes myst@'erieux les mots suivants :^^";style underline;print "Gnnna Fthangn^^";style roman;]; Object cendres "cendres" with name 'cendre' 'cendres', description "Quelques restes de vos exercices expiatoires. ", before [;PutOn : if (second==player) {print "Vous vous recouvrez le visage de ces cendres @^acres. ";remove self;self.mis=1;return 2;}], mis 0, has pluralname female; Object cendres2 "cendres" with name 'cendre' 'cendres', description "Ces cendres ont l'odeur caract@'eristique de la chair humaine br@^ul@'ee. ", before [;PutOn : if (second==player) {print "Vous recouvrez votre visage de cendres humaines en respectant les Lignes de Forces ainsi que le pr@'econisent Les Rites Anciens. ";remove self;self.mis=1;return 2;}], mis 0, has pluralname female; Object necronomicon "ouvrage maudit" with name 'ouvrage' 'maudit' 'necronomicon' 'kitab' 'al' 'azif', description [;if (self.pris==0) {print "Un poussi@`ereux ouvrage coinc@'e sous un pied de table. ";} else if (self.vu==0) {print "Vous soufflez sur l'@'epaisse couche de poussi@`ere recouvrant l'@'epais volume.^^Tournant les pages en les lisant avec attention, l'effroi vous gagne peu @`a peu, l'@'ecriture alambiqu@'ee en caract@`eres perses ne laissant que peu de doutes : c'est le ";style underline;print "Kitab Al Azif";style roman;print ", @'ecrit par le po@`ete d@'ement Abdul Al Azred !^^Mais que faisait cet inestimable manuscrit sous...et vous r@'ealisez alors l'incroyable supercherie : la reliure n'est pas en peau humaine et vous remarquez une grave erreur d'epellation sur le nom de plusieurs Grands Anciens.^^C'est un faux, @'evidemment !^^Vous le feuilletez avec m@'epris quand un petit feuillet s'en d@'etache et flotte doucement vers le sol. ";self.vu=1;move leaflet to antre;} else {print "Une m@'ediocre imitation du fameux Kitab Al Azif, mieux connu dans les cercles initi@'es sous le nom craint et d@'esir@'e de N@'ecronomicon. ";}], before [;Take : if (self.pris==0) {print "Vous tirez fermement sur le livre coinc@'e sous la table, @`a plusieurs reprises, faisant trembler les artefacts magiques qui y tr@^onent, et vous le retirez prestement.^^La table tangue, mais reste droite, @`a votre grand soulagement. ";self.pris=1;return 2;} Burn : if (briquet in player) {if (briquet has on) {print "Allez, cela ne sera pas une grande perte, et vous br@^ulez sans @'etats d'@^ame la m@'ediocre copie. ";remove self;move cendres to player;} else {print "Votre briquet est @'eteint. ";}} else {print "Vous n'avez rien pour br@^uler ceci !";} return 2;], vu 0, pris 0; Object koth "Tour de Koth" pnath with name 'tour' 'koth' 'ouverture', description "Cette tour d@'emoniaque n'est qu'un long escalier en colima@@con descendant sans fin sans aucune fen@^etre. Chacune des marches vous arrive au moins @`a la taille, mais parfois elle vous d@'epassent m@^eme en hauteur.^^Au pied de cette tour, une ouverture monumentale donne sur une vall@'ee plong@'ee dans la nuit. ", u_to [;print "Non, vous n'aurez pas le temps ni la force pour l'instant de remonter cet escalier sans fin. ";], out_to pnath, has scenery proper female open container enterable static; Object squelette "immense squelette" pnath with name 'immense' 'squelette' 'cage thoracique' 'os', description "En bordure de la cit@'e des Gugs, une titanesque cage thoracique s'@'el@`eve du sol st@'erile et rocailleux, comme une cath@`edrale maudite. ", initial "En bordure de la cit@'e des Gugs, une titanesque cage thoracique s'@'el@`eve du sol st@'erile et rocailleux, comme une cath@`edrale maudite surplombant un lac de goudron. ", has transparent open container enterable static; Object lac "lac de goudron" squelette with name 'lac' 'goudron' 'brasier', description [;if (self.brule==0) {print "Sous les prisons suspendues, un lac de goudron et de p@'etrole s'@'etend, parfois agit@'e de quelques grosses bulles venant @'eclater @`a sa surface dans un bruit @'ecoeurant. ";} else {print "D'immenses flammes tentaculaires s'@'echappent follement du lac de goudron, @'eclairant les parois titanesques du Monde Du R@^eve Souterrain. ";}], brule 0, has static scenery; Object cage1 "prison d'obsidienne" squelette with name 'prison' 'obsidienne' 'd obsidienne' 'cage' 'suspendue', description "Une cage @`a corbeaux d'un autre @^age se balance au gr@'e des vents f@'etides de ce lieu infernal. Ses barreaux @'epais sont d'obsidienne, et une chaine rouill@'ee la suspend @`a une immense cage thoracique plant@'ee en ce sol maudit. ", react_before [;Drop : if (noun==briquet && briquet has on) {print "Vous jetez votre briquet allum@'e dans le lac d'hydrocarbures qui s'enflamme imm@'ediatement et projette d'immenses flammes dans toute la vall@'ee de Pnath.^^Vous entendez les hurlements de terreur des Gugs, qui fuient aveugl@'es par la lumi@`ere se terrer dans les profondeurs obscures des failles. ";lac.brule=1;give lac ~scenery;} else {print "Vous jetez ",(the) noun," que le lac absorbe dans un bouillonnement @'ecoeurant. ";} remove noun;return 2;], has transparent openable lockable locked container enterable static female; Object cage2 "prison du sorcier" squelette with name 'prison' 'sorcier' 'cage' 'suspendue', description "Une cage @`a corbeaux d'un autre @^age se balance au gr@'e des vents f@'etides de ce lieu infernal. Ses barreaux @'epais sont d'obsidienne, et une chaine rouill@'ee la suspend @`a une immense cage thoracique plant@'ee en ce sol maudit. ", initial [;if (player==investigateur) {print "A quelques m@`etres, une autre cage se balance, retenant prisonnier et impuissant le Sorcier Maudit. ";} else {return false;}], has transparent openable lockable locked container enterable static female; Object levier "levier de contrepoids" squelette with name 'levier' 'contrepoids' 'mecanisme' 'chaine', description "Les deux cages sont suspendues @`a des cha@^ines rouill@'ees reli@'ees @`a un dispositif complexe se terminant par un gros levier @`a la poign@'ee de cuir. ", before [;Push : if (player notin cage1) {Ending();} else {print "Hors de port@'ee...h@'elas. ^";} return 2;], has static; Object neant "Trone d'Azathoth"; Object traces "traces de sang" start with name 'trace' 'traces' 'sang' 'taches' 'blessure', description "Les traces de sang laiss@'ees par les blessures de votre N@'em@'esis lors de votre dernier duel se trainent directement vers la porte ferm@'ee. ", has static pluralname female scenery; Object tv "television" reve with name 'tele' 'tv' 'television', description "Une t@'el@'evision ancienne dont l'@'ecran @`a bords ronds ressort de son cadre en bois, et que vous aviez l'habitude de regarder longtemps lorsque Vous Etiez Encore Innocent.^^Etrangement, la seule image diffus@'ee est celle d'un immense escalier fant@^omatique. ", initial "Votre regard est comme fascin@'e par la t@'el@'evision qui @'eclaire la pi@`ece d'un spectre blanc. ", before [;SwitchOff : print "Vous appuyez sur le bouton, d@'ebranchez la prise, mais rien n'y fait : la t@'el@'evision reste allum@'ee. ";return 2; Enter : PlayerTo(escalier);return 2;], has static female container enterable openable open on switchable; Object dalle "immense dalle" clairiere with name 'immense' 'dalle' 'pierre' 'sculptee', description "Une grande dalle de pierre est orn@'ee d'un Signe des Anciens sculpt@'e : un oeil au centre d'un pentagone @'etoil@'e, un pentacle. ", before [;Push,Open,Take : if (self has open) {print "Vous ne pourrez pas la bouger plus. ";} else {print "Avec des efforts surhumains, vous poussez de toutes vos forces, et, imperceptiblement la dalle bouge. Vous renouvelez vos efforts, et votre perseverance finit par payer. ";give self open;} return 2;], has static female openable; ! ---------------------------------------------------------------------------- ! Scenes Cinematiques Que L'Homme N'Etait Pas Sense Contempler ! ---------------------------------------------------------------------------- [ Initialise; lookmode=2; ChangePlayer(investigateur); location=start; give player light; move briquet to player; move revolver to player; introduction(); ]; [ introduction; style underline; print "^^Apr@`es tant d'ann@'ees de traque, il ne vous @'echappera pas !"; attend(); print "^^Il y a dix ans de cela, apr@`es avoir @'et@'e confront@'e de la plus terrible fa@@con au Mythe, vous avez pass@'e un pacte avec votre confrerie et avez jur@'e de d@'ebarrasser le Monde de tous les rejetons du Mal.^^Vos fr@`eres d'armes et de science sont tous morts un @`a un sous d'innomables mal@'edictions ou des exp@'edients plus humains, et des conjur@'es du Bien il n'en reste plus qu'un, le meilleur.^Vous.^Et dans une obsession maladive, vous avez remont@'e la secte des adorateurs d@'ements des Grands Anciens, pour enfin atteindre leur grand Ma@^itre, et apr@`es une longue lutte de Science, d'Armes, de Magie et de Volont@'e, vous l'avez contraint @`a fuir dans son rep@`ere.^Mais il vous reste encore @`a donner le coup de gr@^ace.^^Vous devez le faire, au nom de ceux qui ont p@'eri avant vous dans ce m@^eme but."; style roman; print "^^~Par Azathoth !~ jurez vous entre vos dents.^^Votre poursuite est bloqu@'ee par une lourde porte clout@'ee de bronze.^^"; ]; [XyzzySub; print "~Xyzzy~, implorez vous @`a voix basse.^"; style underline; print "Dans la cit@'e de R'yleh la Morte, le d@'efunt Chtulhu r@^eve et attend."; style roman; ]; [LicenseSub; print "Pr@'eambule :^^Inform est une machination infernale enfant@'ee par Graham Nelson le Grand Ancien^Les contes maudits nous rappellent que le Jean Luc Pontico l'informaticien d@'ement est responsable de la traduction de ces librairies monstrueuses en langue fran@@caise.^Enfin, ce jeu a @'et@'e con@@cu sous l'impulsion de fanatiques sectateurs de cultes interdits du forum de la fiction interactive http://ifiction.free.fr^^Qu'ils soient maudits et qu'Azathoth garde leurs @^ames dans les profondeurs de son chaos nucl@'eaire.^^"; print " LICENCE PUBLIQUE GENERALE ET DEMONIAQUE CONCERNANT LA FICTION INTERACTIVE ET AUTRES OUVRAGES MAUDITS (GPL-666) ^^ 1. Cette licence permet aux fous d@'esirant perdre la raison de jouer et de distribuer ce jeu sous les conditions explicit@'ees ci-dessous. Si vous n'@^etes pas d'accord avec ces R@`egles, Yog Sototh viendra vous saisir pour vous @'ecarteler dans les espaces interdimensionnels. De toute fa@@con, Yog Sototh viendra quand m@^eme vous prendre Bwahahaha ! ^^ 2. Ce produit infernal est la propri@'et@'e exclusive copyright (c) 2005 de son auteur qui d@'esire que son nom reste pour l'instant dans l'oubli des @'eons. ^^ 3. Toute requ@^ete et tout sacrifice impie @`a destination de l'auteur de cet ouvrage maudit devra se faire via le newsgroup Internet rec.arts.int-fiction, qu'il reste maudit, lui, et sa horde innomable de cultistes. ^^ 4. Diffusez ce jeu de fa@@con libre et gratuite, et peut @^etre Shub Niggurath ou le Roi en Jaune viendra vous accorder l'immortalit@'e. Mais si vous demandez de l'argent contre cette distribution, alors vous serez damn@'e, vous et votre prog@'eniture, sur six cent soixante six g@'en@'erations. ^^ 5. Aucune Garantie n'est fournie. Si ce n'est celle de perdre votre @^ame. ^^ 6. Gnnn Fthang Mmm Chtulhu ! ^^ ";]; [AideSub; print "Echapp@'ee Belle Dans Les Contr@'ees du R@^eve^^^^Jeu d'aventure textuel soumis @`a la comp@'etition 2005 de la fiction interactive fran@@caise.^^Pour sauver votre @^ame, @'ecrivez des phrases simples @`a l'infinitif comme :^^>ouvrir porte^^ou^^>regarder^^Le verbe ~utiliser~ n'est pas requis pour compl@'eter le jeu, vous devrez recourir @`a chaque occasion au verbe correspondant @`a votre action : lancer, attacher, couper...^^Pour conna@^itre la liste de vos possessions et artefacts innommables, tapez :^^>Inventaire^^Vous pouvez SAUVER ou CHARGER un jeu @`a tout moment, mais rappelez vous : vous sauvez le jeu, pas votre @^ame...^^Ce jeu est d@'edi@'e @`a HP Lovecraft, l'oeil dans les t@'en@'ebres de l'insouciance humaine, et @`a l'ensemble de son oeuvre et de son panth@'eon maudit.^^Les mentions l@'egales sont accessibles en invoquant le mugissant ~Nodens~.";]; [EntreAntre; print "Vous p@'enetrez dans le rep@`ere de votre ennemi.^^";style underline;print "Mal@'ediction. ^^";style roman;print "Il a disparu. O@`u peut il @^etre ? Pas tr@'es loin, il venait de claquer la porte qui vous bloquait, et vous n'avez entendu aucun rituel de cr@'eation de portail dimensionnel. Un vulgaire passage secret alors ?^^Ou est il dans un coin sombre de la pi@`ece ?^^";]; [Cloroforme; if (clef in player) {ToDreamlands();} else { print "Vous reniflez le flacon de cloroforme et son odeur ent@^etante trouble votre cerveau et votre vision.^^Il vous semble l@'echapper au sol o@`u il se brise, exhalant des vapeurs encore plus fortes. Une somnolence irresistible vous gagne, et votre esprit endurant et votre volont@'e inflexible se ploie sous la puissance de l'exp@'edient chimique.";attend();print "^^Durant votre sommeil sans r@^eve, le sorcier revient dans son antre. Et vous ne formez pour lui qu'une proie trop facile...le Grand Chtulhu peut se r@'ejouir, car il aura un sacrifice de choix ce soir...";deadflag=true;}]; [ToDreamlands; print "Vous reniflez le flacon de cloroforme et son odeur ent@^etante trouble votre cerveau et votre vision.^^Il vous semble l@'echapper au sol o@`u il se brise, exhalant des vapeurs encore plus fortes. Une somnolence irresistible vous gagne, et votre esprit endurant et votre volont@'e inflexible se ploie sous la puissance de l'exp@'edient chimique.";attend();print "^^Mais alors que vous pensiez sombrer dans l'inconscience, votre esprit se fait tout @`a coup plus clair, et la Clef D'Argent que vous teniez dans vos mains vibre et s'@'evanouit, comme s'@'evanouissent les murs autour de vous et tout ce qui constitue la r@'ealit@'e tangible, alors que vous p@'en@'etrez dans la myst@'erieuse Dimension connue sous le nom de Contr@'ee des R@^eves. ";attend();print "^^Mais cette fois ci vous y p@'en@'etrez physiquement, et non en r@^eve, pourchassant sans tr@^eve votre N@'em@'esis. ";attend();print "^^L'arriv@'ee est brutale : point de bois enchant@'e ou de cit@'e enchanterresse, mais une vall@'ee souterraine d@'esol@'ee, et un horrible monstre @`a la machoire verticale qui vous surplombe de toute sa puissance !^Et qui vous assomme d'un coup bref et net.^^Vous vous r@'eveillez un peu plus tard...^^"; while(child(player)~=0) { if (child(player)==briquet) {move briquet to neant;} else if (child(player)==revolver) {move revolver to neant;} else if (child(player)==manuscrits) {move manuscrits to neant;} else {remove child(player);}} if (briquet in neant) {move briquet to player;} if (revolver in neant) {move revolver to player;} if (manuscrits in neant) {move manuscrits2 to player;} PlayerTo(cage1); ]; [BackToDreamlands; print "Vous vous endormez...";attend();style underline;print "^^Des images fugitives emplissent votre esprit ; vous avez le sentiment de vous d@'edoubler, de vous recomposer, de perdre votre identit@'e et votre @^ame, et puis...^^";style roman;attend();print "Vous ne savez si vous r@^evez vraiment, mais tout s'emplit d'une consistance r@'eelle, et sans vous @^etre r@'eveill@'e, vous l'@^etes, mais toutes les proportions vous semblent gigantesques, et vous m@^eme tout petit, alors que vous vous retrouvez...^^"; while(child(player)~=0) {remove child(player);} PlayerTo(reve);]; [Cavern; print "Vous descendez les derni@`eres des soixantes dix sept marches du Sommeil L@'eger, pour vous retrouver dans une immense salle ronde, o@`u se dresse telle une colonne une immense entit@'e de flammes qui @'etend ses branches sur le plafond.^^Un pr@^etre @'egyptien attend en m@'editant alors que vous en approchez, vos pas r@'esonnant s@'echement dans cette pi@`ece de fascination et de silence.^^";attend();print "Le pr@^etre plonge son regard dans le v@^otre, alors que vous vous sentez changer : vos v@^etements prennent la teinture sombre qui a toujours @'et@'e v@^otre, et si vous pouviez voir vos yeux, vous les auriez vu s'endurcir.";attend();style underline;print "^^~Nous t'autorisons @`a passer, ~";style roman;print "dit le pr@^etre,";style underline;print " et nous te pr@'edisons...un bien sombre avenir. Tu as choisi l'@'echapp@'ee belle dans les contr@'es du r@^eve, mais quand tu prendras ta d@'ecision, sache que nous sommes ici bas que les souvenirs ou les reflets oniriques, oubli@'es ou non, du monde terrestre.^^Si ton corps physique venait @`a dispara@^itre...le r@^eve que tu es restera ici...mais tu ne seras qu'une ombre, une ombre qui s'@'evanouira sans doute possible sous le Soleil de la R@'ealit@'e...si jamais tu trouves un jour un chemin de retour.^^";style roman;print "Le pr@^etre s'@'ecarte et ouvre sa main, et une immense double porte, la Grande Porte du Sommeil Profond, s'ouvre immense et b@'eante devant vous, sur l'escalier titanesque des septs cent marches du sommeil profond. Apr@`es un dernier regard sur le visage bienveillant du pr@^etre, vous commencez votre longue descente...^^";attend();print "...et les marches descendues s'@'evanouissent, alors que vous sortez d'une ouverture creus@'ee dans un grand ch@^ene au milieu d'une for@^et aux arbres noueux et @`a la frondaison opaque.^^"; PlayerTo(clairiere);]; [Ending; print "Vous posez la main sur le levier.^^Le sorcier d'Azathoth s'exclame :^^";style underline;print "~Sois maudit pauvre fou ! Nous tomberons tous les deux dans les flammes et ton corps physique sera an@'eanti ! C'est @`a ta propre mort que tu te condamnes ! En mourrant, ta substance r@'ev@'ee mourra et tu ne seras plus rien !~";style roman;print "^^Et ces mots ne manquent pas de vous terrifier. Mourir en combattant l'innomable, certes, mais sacrifier sa vie...Et puis un grincement se fait entendre, et votre autre vous s'@'eveille, se dresse dans la cage d'obsidienne, et prononce une seule phrase :^^";style underline;print "~N'oublie pas le sacrifice de tes fr@`eres pour ce m@^eme but. ~";style roman;print "^^Et sans h@'esitation vous abaissez le levier, et les deux cages s'ouvrent b@'eantes sur le brasier d@'emoniaque et avale votre corps et le corps du sorcier, hurlant de souffrances indicibles. ";attend();print "^^Vous avez ferm@'e les yeux sur votre corps se consumant. Mais vous avez pu les rouvrir, encore vivant !^^L'inf@^ame sorcier vous avait menti : votre r@^eve a surv@'ecu @`a votre mort physique.^^Vous vous tournez vers l'immense tour de Koth qui se dresse dans les t@'en@`ebres.^^";attend();print "Vous voil@`a lib@'er@'e de votre serment, un monde onirique se dressant de son immensit@'e sous vos yeux. Adieu la terre, et ses cit@'es de ciment, et sa soci@'et@'e m@'eticuleusement organis@'ee. Salutations @`a cette contr@'ee des r@^eves, b@^aties des plus fantastiques, et des plus terrifiantes des choses.^^Que ferez vous maintenant ?";attend();print "^^Parcourir la mer C@'er@'enienne au bleu des caraibes et au froid des p@^oles, vers C@'el@'ephais la cit@'e aux mille merveilles, rencontrer les chats savants peuplant Ulthar et bondir avec eux jusqu'aux sombres pays sur la face cach@'ee de la Lune, visiter Nir, Iquanok et Dylath Leen et ses populations exotiques, partir enlev@'e par des maigres b@^etes de la nuit au dessus des plaines infinies de Leng pour aller sur le toit de l'Univers, Kadath l'inconnue, rencontrer les Dieux de la Terre, puis au del@`a, dans l'espace-temps lui m@^eme par les portes de Yog Sothoth, au coeur de la r@'ealit@'e, contempler le Sultan des Dieux Azathoth claquer de ses m@^achoires infernales au rythme de fl@^utes atroces, mourir d'effroi et de fascination...";attend();print "^^...et revenir, enfin, peut @^etre, dans le monde physique, et se dissoudre comme un r@^eve oubli@'e dans la lumi@`ere de la mat@'erialit@'e du monde construit par les hommes...^^";attend();deadflag=true;]; ! ---------------------------------------------------------------------------- ! Puissances Occultes ! ---------------------------------------------------------------------------- ! ---------------------------------------------------------------------------- ! Sombres Rejetons ! ---------------------------------------------------------------------------- Object sorcier "Sorcier D@'emoniaque" cage2 with name "sorcier" "demoniaque" "mechant" "ennemi" "nemesis" "magicien" "sectateur" "corrompu" "edmond", description "C'est un homme sans @^age que pourtant vous savez centenaire. Toute la haine du monde se lit dans son regard d'une obscurit@'e indiscible : il porte un costume de notable et une barbe taill@'ee en pointe, et son regard est tordu d'un sourire de d@'ement. ", life [; Answer,Ask,Tell: "^Le sorcier impie vous couvre de mal@'edictions. "; Attack : "Tsathoggua soit maudit, il est hors de port@'ee... "; Kiss: "Auriez vous rat@'e votre jet de sant@'e mentale ? "; Show, Give: "^Le sorcier impie vous couvre de mal@'edictions. "; ], daemon [k; k = random(4); switch(k) { 1 : print ""; 2 : print ""; 3 : print ""; 4 : print ""; } ], has animate; ! --------------------------------------------------------------------------- ! Fonctions Innomables ! --------------------------------------------------------------------------- [GnnnaSub w; wn=consult_from; w=NextWord(); switch(w) { 'Fthangn' : if (player in antre) {if (coffre hasnt open) {print "^Un petit d@'eclic se fait entendre, et le coffre encastr@'e dans le mur s'ouvre alors. ";give coffre transparent;give coffre ~locked;give coffre open;} else {print "La formule reste sans effet. ";}} else {print "La formule ne donne plus rien...peut @^etre n'@'etait elle efficace que dans l'Antre du Sorcier ?^^";} default : print "Hum. ^^Il vous semble avoir mal prononc@'e la formule. "; } ]; [RituelSub; if (cendres2.mis==1) {print "En pronon@@cant la formule, vous @^etes saisi par une force puissante qui semble aspirer votre @^ame...^^";BackToDreamlands();} else {print "Les barreaux de votre cage semble parcourus par des forces extraordinairement puissantes, mais rien ne se produit. Peut @^etre avez vous oubli@'e un @'el@'ement du rituel ? ";} ]; [DireSub; print "Investigateur, si vous souhaitez invoquer Les Mots Qu'il Ne Faut Pas Prononcer, tapez les directement sans utiliser le mot ~dire~. "; ]; [FaireFeuSub; if (revolver in player) { if (noun==serrure) { if (serrure.casse==0) { print "Vous d@'egainez votre arme et faites feu de deux coups secs sur la serrure dont les @'eclats se r@'epercutent dans de lugubres @'echos le long de l'@'etroit passage, et la porte clout@'ee c@`ede enfin et s'entrebaille.^^"; serrure.casse=1; give porte ~locked; give porte open; } else {print "La serrure a d@'ej@`a eu son compte, Ombre Vengeresse. ";} } else if (noun==sorcier) {print "Vous visez l'inf@^ame supp@^ot des t@'en@^ebres, mais celui-ci d@'evie sa cage au dernier moment et la balle ricoche contre un barreau d'obsidienne. "; } else if (noun==porte) {print "Les balles arrachent quelques @'echardes de bois et s'enfoncent dans la porte mill@'enaire. ";}else {print "Gardez vos pr@'ecieuses munitions pour Ceux qui les m@'eritent. ";} } else {print "Vous n'avez pas d'arme @`a feu sur vous !";} ]; ! ---------------------------------------------------------------------------- ! Verbes Maudits ! ---------------------------------------------------------------------------- Include "FrenchG"; Verb 'Gnnna' * topic ->Gnnna; Verb 'xyzzy' * ->Xyzzy; Verb 'azathoth' * ->Aide; Verb 'nodens' * ->License; Verb 'tirer' * 'sur' noun ->FaireFeu * 'sur' noun 'avec' noun ->FaireFeu * noun ->Pull; Verb 'faire feu' * 'sur' noun ->FaireFeu; Verb 'dire' 'prononcer' 'invoquer' 'crier' 'hurler' * topic ->Dire; Verb 'Yog' * 'Sothoth' topic ->Rituel;