!% ! exemple inspiré de la ORLibrary !% ! *************************************************************** !% ! *** Les deux premières options ci-dessous ont été désactivées !% ! *** car elles sont déjà spécifiées dans le .bat !% ! *** A vous de les activer si vous le souhaitez. !% ! *************************************************************** !% ! Les options ci-dessous sont destinées au compilateur : !% ! +include_path=..\..\bibliotheques !% ! +language_name=French !% !-v5 ! version souhaitée : v5, v8, G, etc... !% !-s ! give statistics !% !-X ! infix (ne pas laisser dans la version publiée ; non disponible avec Glulx) !% !-D ! debug (ne pas laisser dans la version publiée) !% !-r ! imprime le contenu du jeu pour envoi vers un correcteur d'orthographe !% !+transcript_name=gametext.txt ! fichier d'arrivée !% !$MAX_SOURCE_FILES=512 !% !$MAX_INCLUSION_DEPTH=10 !% !$MAX_LABELS=50000 !% !$MAX_INDIV_PROP_TABLE_SIZE=50000 !% !$MAX_STATIC_DATA=20000 !-------------------------------------------- ! Constantes générales !-------------------------------------------- Constant Story "Mon voisin est un gros sacarabée"; Constant Headline "^Speed-IF du 26-08-07^"; !-------------------------------------------- ! Directives de remplacement !-------------------------------------------- ! [DeathMessage; print "Game Over";]; !-------------------------------------------- ! Attributs !-------------------------------------------- !-------------------------------------------- #Include "Parser"; #Include "VerbLib"; !-------------------------------------------- !-------------------------------------------- ! Plan des lieux (pièces, portes...) !-------------------------------------------- Object maison "Maison de Frogga" with description "Vous savez quoi ? La Maison de Frogga le rapper sans peur et sans reproche, le type qui sort les violons quand on parle de la T-6, c'est une pauvre maison dans un pavillon de banlieue, avec genre cheminée en pierre et photo de saint bernard au mur, ouais, le vieux truc avec du papier peint beige et de la moquette à longs poils, oh, mon petit Frogga, tu vires craignos !^^(D'ici on peut simplement sortir)^^", each_turn [; if (katanabrise in player && self.vu==0) {Retour();self.vu++;}], out_to dehors, vu 0, has scenery; Object dehors "Banlieue Pavillonaire" with description "Yes men, encore plus moche que l'intérieur, l'extérieur !^^Une rangée de maisons semblables comme des pots de yaourt dans un rayon de chez Auchan, et alignées par un maniaque.^^(pour retourner chez Frogga, faites juste ~entrer~)^", in_to maison, has scenery; Object cheminee "cheminée en pierre" maison with name 'cheminee' 'cheminée' 'pierre' 'cheminee en pierre' 'cheminee de pierre' , description "^C'est une cheminée tellement moche qu'on dirait qu'elle est fausse, yo man. ^", has static supporter transparent enterable open female; Object katana "katana en bois" cheminee with name 'katana' 'bois' 'Tsurugi', description "^C'est un bête katana en bois, pas une épée magique c'est sûr ! Le pauvre Frogga a du se faire anarquer par le vendeur. ^", before [;Take : if (self.pris==0) {print "^^~Oh oh oh !~ s'exclame Frogga. ~Tu sais ce que tu as dans les mains ? ~^^~Ouais, un katana en bois.~^^~Oh non, man, Mc du Flow, pas du tout, c'est une épée *magique*. OK MAN ? Une épée magique. Le Tsurugi de quelque chose. Kusanagi même que ca s'appelle. Ca tue les démons. Alors tu laisses ca - à sa place.~^^~Hey mista Frogga, tu veux que je règle ton problème de parasite ou pas ?~^^~Yes, Man, oui je le veux Mister Malocke. ~^^~Alors je prends l'épée magique. ~^^";self.pris=1;}], pris 0; Object katanabrise "katana brisé" with name 'katana' 'bois' 'brisé', description "^C'est le katana pourrave de Frogga brisé en deux par son voisin. Kusanagi mes fesses ! ^"; Object maison1 "Chez Frogga" dehors with name 'Chez frogga' 'chez', description "^Maison pourrave de banlieue pavillonnaire. ^", has proper static; Object maison2 "Maison du voisin" dehors with name 'maison du voisin' 'porte du voisin' 'maison' 'porte', description "^Maison pourrave de banlieue pavillonnaire - identique à celle de Frogga, à part qu'on entend la musique des Beatles. ^", article "la", before [;Enter : print "^La porte est fermée - peut être faudrait-il frapper d'abord ?^";return 1; Attack : if (self.frapped>0) { if (voisin notin location) { print "^Vous frappez à la porte et Mister Scarabée géant ouvre à nouveau. ^";move voisin to dehors; voisin.compteur=0;return 1; } else {print "^Notre ami est déjà sur le palier !^";return 1;} } else {RencontreVoisin();return 1;} Open, Close : print "^Mmm tout se fait de l'intérieur, le voisin nous a coincés dehors - ceci dit, c'est son droit !^";return 1;], frapped 0, has female static; Object cdrom "disque rom" with name 'disque' 'rom' 'disque rom' 'cd' 'cd rom' 'aimant', description "^C'est le fameux disque rom ~aimants à astéroides~ de Frogga. Si ce truc marche, je mange mon chapeau. ^"; Object playstation "playstation" maison with name 'playstation' 'console', description "^Yes, Frogga est un gamer. ^", before [;SwitchOn : print "^Mister Malocke n'est pas là pour jouer. ^";return 1;], has female container openable open switchable; Object tele "maousse télé" maison with name 'maousse' 'télé' 'tele' 'tv', description "^Wow, mater des clips doit être top avec c't'écran ! ^", before [;SwitchOn : print "^Mister Malocke n'est pas là pour mater la TV. ^";return 1;], has female static switchable; !-------------------------------------------- ! Personnages !-------------------------------------------- Object malocke "Mister Malocke" maison with short_name [; return L__M(##Miscellany, 18);], description [;print "^Mister Malocke, je vais dans les rues de ma cité^ avec un haut de forme et une canne,^je suis Mister Malocke le MC du flow,^ j'ai des petits yeux et un long nez de taupe,^hey ho repeat after me,^ hey ho !^";], before [;], after NULL, life NULL, each_turn [k; k = random(20); switch(k) { 1: print "^Vous tapez dans la main de Frogga en signe fraternelle d'entraide. ^"; 2: print "^Frogga tremble comme une feuille.^"; 3: print "^Je réajuste mon haut de forme, légérement tombant, pour avoir l'air top classe. ^"; 4: print "^Frogga tire avec angoisse sur son t-shirt bleu imprimé aux couleurs des Giants. ^"; } ], time_out NULL, describe NULL, capacity 100, parse_name 0, has concealed animate proper transparent light; Object frogga "Frogga" with name "frogga" "grenouille", description [; print "^C'est Frogga, mon partner de Flow, un fat rapper qui ressemble à une grenouille.^ ";], life [; Answer,Ask,Tell: "^Man, je t'ai dit tout ce que je pouvais pour ce coup, là. ^"; Attack : "Il ne le mérite pas. ^"; Kiss: "Oh My, no !^ "; Show, Give: "~C'est génial, Mister Malocke. ~^"; ], found_in [;return location;], has animate proper; Object voisin "scarabée géant" with name "scarabée" "géant" "voisin" "scarabee", description [; print "^C'est le voisin de Frogga, un scarabée géant. Oui Madame.^ ";], life [; Answer,Ask,Tell: "^J'ai rien à dire à l'insecte. ^"; Attack : if (katana in malocke) {print "^Vous brandissez L'épée Magique, Kusanagi, le Tsurugi légendaire (où du moins, vous l'espèrez...) qui brille comme l'espoir des valeureux guerrieres légendaires sous le soleil de votre banlieue pourrave et donnez un bon coup de latte sur le scarabée.^^";Attend(); print "Manque de bol, il bronche pas.^^Il ajoute même :^^"; Attend(); print "~C'est pas fini vos bêtises. ~"; Attend(); print "^^Et il brise le katana en deux avant de retourner sous la douche.^^Frogga couine.^";remove katana; move katanabrise to dehors;remove voisin;return 1;} else {print "Il ne le mérite pas. ^";return 1;} Kiss: "Oh My, no !^ "; Show, Give: if (noun==cdrom) {print "^~Merci les mecs, mais j'ai pas de playstation, alors je vous le rends je saurais pas quoi en faire. ^";return 1;} else if (noun==playstation) { if (cdrom in playstation) {Fin();return 1;} else {print "^~Merci les mecs, mais j'ai pas de jeu, alors je vous la rends je saurais pas quoi en faire. ^";return 1;} } else {print "~Ca ne m'intereresse pas. ~^";return 1;} ], each_turn [; switch (self.compteur) { 0 : print "^Mister Scarabée gromelle :^^";print "~Bon les mecs, vous êtes lourds, vous voulez quoi, là. Parce que je suis sous la douche. ~"; 1 : print "^Mister Scarabée gromelle :^^";print "~Alors ? ~"; 2 : print "Le scarabée claque la porte et retourne sous la douche. ";remove self; } self.compteur++;], compteur 0, has animate; !-------------------------------------------- ! Code !-------------------------------------------- [Initialise; location=maison; ChangePlayer(malocke); Debut(); return; ! return 2 désactive la bannière du jeu (mais nécessaire, voir license) ]; [Attend; KeyCharPrimitive(); ]; [Debut; print "Frogga est somme toute un type sympa.^^Avec son gros bide et sa tête frippée il ressemble à une grenouille qui avancerait sur deux pattes ; d'où son surnom naturel. Et puis les gros, ca bouge pas des masses, donc, pas d'ennui.^^"; Attend(); print "Mais voilà qu'il m'appelle moi, Mister Malocke, en me disant qu'il avait un problème de parasite. Mais le plan s'avère plus coriace que prévu quand le gros type me dit :"; Attend(); print "^^~ En fait, je crois que mon voisin est un scarabée géant. ~^^"; Attend(); print "Je jete un oeil à sa bibliothèque : trois vieilles revues de tuning se battent avec un Werber. Peu problable qu'il soit influencé par Kafka. Ca mérite donc un coup d'oeil, et en frère de rap, de flow et de groove, je lui tape dans la main et dit :^^~T'inquietes, Mister Malocke est là. ~^^"; Attend(); ]; [RencontreVoisin; print "Vous frappez à la porte et un mega-colossal-top grand scarabée, tranquilou sur deux pattes, ouvre la porte.^^Vous remarquez qu'il a une serviette de bain autour de son ventre.^^ Vlà-t-y-pas que l'insecte se met à causer :^^"; Attend(); print "~Bon, vous voulez quoi, là, j'étais sous la douche. ~"; Attend(); print "^^~ Euh, rien, msieur l'horreur, juste dire à mon pote Frogga qu'on a un maousse blème. ~^^"; Attend(); print "Le scarabée géant claque la porte en gromellant et vous laisse seul. Frogga vous tape dans le bide : ^^~Tu vois ! Je te l'avais bien dit !~^^"; Attend(); maison2.frapped++; ]; [Retour; print "Vous remettez les restes de ~L'épée Magique~ sur la cheminée.^^~Ton vendeur miracle qui t'a refourgué ce gadget, il avait d'autres armes de mort ?~^^Frogga hésite :^^~Et bien, il y a bien QUELQUE CHOSE, super MC, mais là on parle pas de petits trucs genre épée Légendaire, là je te parle de Maousse Arme de La Mort, que si les States savaient, direct ils viendraient avec des tanks ici !~^^~Okay, MistaFrogga, je t'écoute, mais chais pas pourquoi, j'sens que je vais être comme qui dirait déçu. ~^^"; Attend(); print "Frogga sort un CD-Rom de dessous le tapis.^^~Vlà, c'est un jeu playstation qu'est pas un jeu en fait. C'est un aimant à astéroides. Que quand tu le mets dans la play, t'as un astéroide qui tombe du ciel et qui t'estourbit direct.~^^"; move katanabrise to cheminee;move cdrom to maison; ]; [Fin; print "Le scarabée géant accepte avec plaisir la playstation et le jeu : ^^~Zetes cool les mecs, je vais me faire un petit game. ~^^"; Attend(); print "En vous tapant dans la main, vous choisissez peinards un petit banc en face de la maison du scarabée histoire de mater le spectacle. ^^"; Attend(); print "Dans un sifflement aigu, une météorite apparait dans le ciel et file droit sur la maison du voisin, et dans un terrible grondement destructeur un énorme astéroide détruit la maison du voisin et toutes celles environnantes sur un rayon de cinquante mètres en laissant un cratère gigantesque et des flammes terribles.^^"; Attend(); print "Dès que vous avez récupéré de l'explosion, vous remarquez que Frogga est à genoux et pleure silencieusement devant les débris en flammes que furent sa maison. "; Attend(); print "^^Comme toujours, MC et DJ de talent, vous savez trouver les mots exacts pour exprimer le réconfort :"; Attend(); print "^^~Problème réglé, Frogga my friend. Ne me remercie pas, telle est le serment de l'amitié. Et n'oublie pas, et n'oubliez pas non plus, amis joueurs : si vous avez un problème, vous pouvez appeler l'expert en résolution de situations délicates : Mister Malocke !~^^"; deadflag=2; move cdrom to maison; ]; !-------------------------------------------- #Include "FrenchG"; !--------------------------------------------