! AVENTURERO EN EL SEGAPARK V1.0 ! ! Aventura implementada, del script ganador de la AOLComp I, ! por Clérigo Urbatain y Lumpi. ! ! ! Basura legal: ! Este juego es freeware, totalmente gratuito. ! El código fuente es GPL en cuestiones técnicas. Puedes aprovechar lo ! que quieras, salvo el contenido artístico del mismo, que es ! (c) chodaboy2000 ! ! ! Cosas interesantes por añadir para segarpak v2.0: ! ! -Que reaccionen bien los chavales a saltar. ! -Que reaccionen por si solos ante hablar con la mierda. ! -Incluir gritar (aislar sinónimo) y consiguientes reacciones. ! -Que reaccionen al entrar el jugador de nuevo, por si solos. ! -Escribir emails... ¿como demonios se escribe la arroba? ! -Que cuando reacciona al cerrar la puerta, se imprima el mensaje ! después de cerrar la puerta y no antes. Con rutinasdespues() no ! funciona. ! -Aclarar las cosas con el maldito Meterse Ir Entrar de los cojones. ! -Aclarar la chapuza actual de entrar en recreativos... con el bug ! solucionado chapuceramente de cerrar la puerta y entrar. ! -Reformar los switches implícitos, considerando los estados de ! cada objeto en cada momento. Release 1; ! Versión 1.0 Array nick->12; Constant normal 0; Constant guardia 1; Constant muerto 2; Constant loco 1; Constant sueno 2; Constant acojonados 1; Constant locura 2; Constant rehenes 3; Constant petrificados 4; Constant sordamuda 1; Constant HAY_CURIOSIDADES; Constant Historia "en el SegaPark"; Constant Titular "^(c) Chodaboy 2000^ Implementada por Lumpi y El Clérigo Urbatain.^^"; replace dibujarlineaestado; ! Reemplazamos la lista de estado. replace Anuncio; ! Reemplazo el anuncio. replace FinalizarSub; ! Reemplazo el FIN. ! INCLUDES!!!!! la gramática está en torno al final del fichero!!!. include "EParser"; Object MensajesLibreria with antes [; Miscelanea: if (ml_n==28) "Has puesto demasiadas palabras. En este juego no hace falta que indiques la herramienta de ciertas acciones, como por ejemplo MATAR o PEGAR. Usa PEGAR PANDILLERO, y no PEGAR PANDILLERO CON EXTINTOR."; ]; include "Acciones"; include "BajoNivel"; ! Esto proporciona EsperarTecla y BorrarPantalla. ! Definición del personaje principal Object Aventurero "aventurero" with nombre 'aventurero', descripcion "Mírate al espejo.", estado normal, vida 5, capacidad 4, lentitud 5, turno 5, contador 0, contmiro -100, locmiro Recreativos, reaccionar_antes [; mirar: if ((self.contmiro+5>=self.contador)&&(self.locmiro==Localizacion)) { self.contmiro=-100; print "Si no has "; if (Localizacion==Recreativos) print "salido"; else print "entrado"; ", y ya te he dicho lo que hay... ¿para que coño vuelves a preguntar?"; } else { self.contmiro=self.contador; self.locmiro=Localizacion; } rezar: "Empiezas a rezar por el dios de la aventura."; saltar: if (self.estado==normal) "Aún no estás tan loco para saltar inútilmente."; gritar: if (self.estado~=normal) "Lanzas un descomunal grito que espanta a los chavales: '¡Quiero jugar a Eudoxio!'"; else "Aún no estás lo suficientemente loco para hacer eso."; pedir: if (localizacion==Calle) print "Te pones a pedir por la calle. "; else print "Te pones a pedir por los recreativos."; " (La aventura está muy mal pagada...)"; dormir: if (self.estado==sueno) { banderafin=2; print "Acomodas tu cabeza junto a la comprensiva defecacion, te relajas y te dejas llevar a un mundo en el que no existen joysticks, ni directX, ni Playstation. Solo aventuras de texto, sin graficos. Un mundo del que no quieres despertar.^"; "^FIN^^PD: Este es el final 'bueno' del juego, asi que:^Final número:"; } esperar: if (self.estado==sueno) "Esperas, ante el asombro de todos, a oir la respuesta de la mierda."; morder, atacar: if (((uno==chavales)||(uno==dueno)||(uno==dinero))&&(self.estado==normal)) "Aún no estás lo suficientemente loco para hacer eso."; ! meter: if (((otro==culo)||(otro==dueno))&&(self.estado==normal)) ! "Aún no estás lo suficientemente loco para hacer eso."; saltar: if (self.estado==normal) "Aún no estás lo suficientemente loco para eso."; jugar: if (uno ofclass maquina) { if (self.estado==normal) { if (uno == Tetris) "¿Un aventurero jugando al tetris?. ¡Ese no es el tipo de puzzles al que estás acostumbrado a resolver!"; else "¡Deberías estar loco para jugar a eso!"; } } salir: if ((localizacion==Recreativos)&&(self.estado~=normal)) "Intentas dejarlo todo y volver a casa con tus aventuras, tu CAAD, tus amigos del MUD y esas cosas. Pero ya es demasiado tarde... ¡Estas como una puta cabra!."; meterse: if ((localizacion==Recreativos)&&(uno==puertita)&&(self.estado~=normal)) "Intentas dejarlo todo y volver a casa con tus aventuras, tu CAAD, tus amigos del MUD y esas cosas. Pero ya es demasiado tarde... ¡Estas como una puta cabra!."; abrir: if ((uno==Puertita)&&(self.estado~=normal)&&(Puertita hasnt abierto)&&(chavales.estado>=rehenes)) "¡No!, ¡Que se escapan!"; ayuda: if ((self.estado==sueno)&&(mierda.estado==sordamuda)) "Pides ayuda a los demás, pensando que la mierda esta muerta."; ], ! fin de reaccionar_antes reaccionar_despues [; ], cada_turno [; self.contador++; self.turno--; if (self.vida == 0) { banderafin = 1; print "Creías tener la cabeza más dura... pero no, esta vez ha crujido.^"; print "^Has muerto. Algún aventurero te vengará.^^Final número:"; } if (self.turno==0) { self.turno=self.lentitud; if (self.vida<=1) print "La cabeza te duele bastante y la vista se te nubla.^"; if (self.estado==sueno) print "Tanta actividad te ha dado sueño.^"; if ((self.estado==normal)&&(Localizacion==Recreativos)) switch(random(3)) { 0: "Tanto sonido y tantos gráficos aumentan tus nervios poco a poco."; 1: "El sonido de las máquinas te está poniendo nervioso"; 2: "Tilin, tilin... '¡Malditas máquinas, no reventasen...!'"; } } ], has animado; ! Localidades Object Limbo "Ningún sitio." ! localidad donde están los objetos que no se usan. with descripcion "Eh!. ¿que haces aqui?. Malditos betatesters...", has luz; Object Recreativos "Recreativos" with descripcion "Estás en el interior de unos recreativos.", irrelevante 'recreativos' 'colillas' 'pipas' 'cascaras' 'papeles' 'posters', afuera Puertita, has luz; Object Calle "Calle" with descripcion "Estás en la calle, en frente de unos recreativos.", irrelevante 'calle' 'recreativos', adentro [; if (Puertita has abierto) { print "Entras en el local."; if (Aventurero.estado~=normal) { print " Buena idea. Aún quedan más chiquillos...^"; if (chavales.estado<=acojonados) { chavales.estado=locura; print "Pones el pie en el interior del local y la locura se apodera de los que quedaban dentro.^"; } EsperarTecla("^Pulsa una tecla...^",0); BorrarPantalla(); } return Puertita; } else "¡La puerta está cerrada!"; ], no_puedes_ir "Lo bueno está adentro... te daré una pista: tu misión es resarcirte con estos recreativos por el fracaso de la aventura a nivel comercial. A si que entra pa' dentro y ¡portate como un buen guerrero!", has luz; ! Puerta Object Puertita "puerta de los recreativos" Recreativos with nombre 'puerta' 'salida', articulo "la", describir [; print "La puerta de los recreativos "; if (self has abierto) "está abierta."; else "está cerrada."; ], descripcion "La puerta de los recreativos. Se abre y se cierra.", puerta_a [; if (localizacion==Recreativos) return Calle; else return Recreativos; ], direcc_puerta [; if (localizacion==Recreativos) return afuera; else return adentro; ], esta_en Recreativos Calle, antes [; cerrar: if (dueno has general) "Intentas cerrar la puerta de los recreativos mientras se la endiñas al inconsciente dueño."; ], despues [; cerrar: if ((localizacion==Recreativos)&&(Aventurero.estado==loco)) { Aventurero.vida=5; print "Cierras la puerta de golpe y sonríes con cara de loco.^"; move mierda to Recreativos; Chavales.estado=rehenes; print "Un chaval, más asustadizo y menos contenido, deja caer una mierda por el bajo de sus pantalones.^"; return true; } ], has femenino estatico puerta abrible abierto; Object suelo "suelo" Recreativos with nombre 'suelo', descripcion "Colillas, cáscaras de pipas, papeles,... parece que hace tiempo que no limpian el suelo.", has escenario; Object pared "pared" Recreativos with nombre "pared" "paredes", descripcion [; print "Las paredes de los recreativos están llenas de posters de los juegos más comerciales. Asqueroso.^"; if (extintor in Limbo) move extintor to Recreativos; if (extintor in Recreativos) "En una esquina puedes ver un extintor rojo."; rtrue; ], has escenario; Object dinero "dinero" Recreativos with nombre 'dinero' 'monedas' 'billetes', descripcion "En los chavales, en las máquinas, en el dueño... en todos menos en ti mismo", antes [; coger: "Para lo que has venido a hacer aqui, no te hace falta..."; atacar: "Ahora si que los has acojonado. Creian que estabas loco, pero no tanto."; ], has escenario; ! Aqui van las máquinas, primero la clase. Class Maquina with nombre 'maquina' 'maquinas' 'maquinita' 'maquinitas', adjetivo 'recreativa', articulo "el", descripcion [; if (self has general) "Está hecha una pena. La has dejado destrozada."; else { switch (random(2)){ 1: "Una aberración, eso es lo que es."; 2: "Te detienes y te fijas con indiferencia en la máquina. Tus ojos no pueden aguantar tantos gráficos e inmediatamente miras hacia otro lado."; } } ], describir [; if (self has general) "La máquina ", (del) self," está hecha una mierda."; ], listar_juntos "máquinas recreativas", antes [; atacar: if (self hasnt general) { give self general; if (Aventurero.estado==normal) Aventurero.estado = loco; if (Extintor in Aventurero) print "Con el extintor la emprendes a mamporros con ",(el) self,".^"; else { move Extintor to Aventurero; print "Coges uno de los extintores del local y la emprendes a mamporros con ",(el) self,".^"; } rutinasdespues(); return true; } else "La máquina ya está destrozada... ¡tranquilo tío!"; jugar: if (self hasnt general) "Empiezas a jugar ", (al) self, " mientras gritas: ~¿Dónde se escriben los comandos? ¿Dóooonde?~"; else "Jejejeje, siempre te gustó jugar a desmontar cacharros..."; escuchar: if (self hasnt general) "¡Agh!, tanto sonido... ¡te vuelve loco!."; else "Je, je, esta ya no pitará más..."; ], has estatico; Maquina Galaxians "galaxians" Recreativos with nombre 'galaxian' 'galaxians' 'galasian'; Maquina Tetris "tetris" Recreativos with nombre 'tetris', descripcion [; if (self hasnt general) "Ves una pantallita con muchas figuritas en distintas posiciones. Lo peor de todo... ¡No tiene texto!"; else "Las únicas piezas que hay que colocar ahora son las de sus tripas electrónicas."; ]; Maquina Golden_Axe "golden axe" Recreativos with nombre 'golden' 'axe'; Maquina SF2 "street fighter 2" Recreativos with nombre 'street' 'fighter' 'SF2'; Maquina super_pang "super pang" Recreativos with nombre 'super' 'pang' 'superpang'; Maquina MK "mortal kombat" Recreativos with nombre 'mk' 'mortal' 'kombat'; Maquina Soccer "soccer" Recreativos with nombre 'soccer' 'brawl' 'futbol'; Maquina Dragon_ninja "dragon ninja" Recreativos with nombre 'ninja' 'dragon'; Object Extintor "extintor rojo" Limbo with nombre 'extintor', adjetivo 'rojo', descripcion "Un viejo extintor rojo pa apagar fuego.", despues [; coger: "Sin que nadie te lo impida, coges el extintor."; ]; ! Los Chavales!!!!!! Object chavales "chavales" Recreativos with nombre 'chavales' 'niñatos' 'pijos' 'chaval' 'niño' 'niños' 'ninos' 'nino' 'chiquillo' 'chiquillos', descripcion [; switch(self.estado) { normal: "Chavales en torno a los 14 años, que meten dinero y enriquecen al gordo del dueño (a costa de la aventura, claro)."; acojonados: "Murmuran entre ellos mientras te miran y señalan con el dedo. Están asustados."; locura: "¡Intentan escapar por la puerta!"; rehenes: "Gritones, llorones y cagones. Nunca serán buenos aventureros."; petrificados: "Todo el mundo está de piedra ante tu desmesurada locura."; } ], estado normal, card 10, lentitud 5, turno 5, describir [; switch (self.estado) { normal: "Ves un grupo de chavales metiendo dinero en las maquinitas."; acojonados: "Ves un grupo de chavales, que te miran de reojo asustados."; locura: "Ves un grupo de chavales que corren de un lado a otro, mientras tratan de escapar del local."; rehenes: "Todo el local parece asustado. Los chavales gritan espantados."; petrificados: "La gente está petrificada. Lo de la mierda es demasiado."; } ], antes [; hablar: if (mierda.estado==sordamuda) "Pides ayuda a los demas, pensando que la mierda esta muerta."; else "Les dices que jueguen conversacionales... que la interactividad es superior a lo que pueda aportar un entorno gráfico.^Ellos te miran extrañados."; morder: "Afilas tus dientes, despues de una racion de sexo salvaje, y comienzas a devorar las pantorrillas de los asustados chavales."; atacar: print "Ahora si que te has hartado."; if (garrote in Aventurero) print " Coges el garrote"; else { if (extintor in Aventurero) print " Con el extintor"; else { move extintor to Aventurero; print " Coges el extintor"; } } " y empiezas a romper las cabezas de todos aquellos que tratan de salir del local."; ], reaccionar_despues [; atacar: if (uno ofclass Maquina) { if (self.estado<=normal) self.estado=acojonados; print "Los chavales se acojonan ante tu arrebato de ira.^"; } saltar: print "A cada salto la gente del local se queda petrificada.^"; ! cerrar: if ((uno==Puertita)&&(self.estado<=locura)) ! { ! move mierda to Recreativos; ! self.estado=rehenes; ! print "Un chaval, más asustadizo y menos contenido, deja caer una mierda por el bajo de sus pantalones.^"; ! } ! hablar: if (uno==mierda) ! <- NO FUNCIONA ! { ! self.estado=petrificados; ! print "Los chavales no dan crédito a sus ojos."; ! } ], ordenes [; <>; ], daemon [; if ((self.turno <= 0)&&(localizacion==Recreativos)) { self.turno=random(self.lentitud); switch (self.estado) { normal: switch(random(5)) { 1: print "Un niñato grita: "; 2: print "Un chaval rubio grita: "; 3: print "Un niño dice: "; 4: print "Alguien dice: "; 5: print "Un niño moreno grita: "; } switch(random(5)) { 1: "¡Toma fatality! ¡K.O.!"; 2: "¡Por fin! ¡Me lo he pasado!"; 3: "¡MIERDA! ¡Me han matao!"; 4: "¡Dale dale!"; 5: "¡Cuidado que te matan!"; } acojonados: "Los chavales susurran inquietos entre si."; locura: if (self.card<=1) { move self to limbo; PararDaemon(self); banderafin=1; "Los últimos chavalines que quedaban se dan a la fuga...^Tú, cansado y aburrido, sales del local triste sabiendo que podías haberlo hecho mejor, y que has fallado en la venganza aventurera. Esto es lo que tratabas de explicar, momentos después, al loquero en el manicomio."; } else { self.card--; switch(random(2)) { 1: "Un chaval te esquiva y sale corriendo por la puerta."; 2: self.card--; "Un par de chavales salen echando leches del local."; } } rehenes: "Los chavales gritan desesperados."; petrificados: "Los chavales te miran en silencio con los ojos como platos."; } ! Fin del switch del estado de los chavales } else self.turno--; ], has animado nombreplural; ! ¡¡¡Encargado, el gordo del dueño del local o lo que sea...!!! XD Object dueno "dueño" Recreativos with nombre 'dueno' 'dueño' 'encargado' 'gordo' 'hombre' 'cuerpo', descripcion "Es gordo, calvo, bajito y feo. Además viste con pantalones cortos y tiene las piernas llena de heridas. Una preciosidad...", describir [; switch(self.estado) { normal: "El dueño está leyendo el periódico tranquilamente."; guardia: "El dueño te amenaza con un garrote."; muerto: if (self has general) "El dueño está tirado en el sucio suelo, en medio de la puerta."; else "El dueño está inconsciente en el suelo."; } ], estado normal, lentitud, turno, antes [; hablar: if (self.estado~=muerto) "Tratas de razonar con él sobre que poniendo spectrums y palm pilots, podría tener a su disposición cientos de juegos gratuitos y de gran calidad... ya que el freeware y el soft libre suponen amplias garantías para el empresario de a pié y bla bla blaaaa...^Él te mira con cara de asco."; recibir: "Prueba por el culo..."; atacar: if (self.estado~=muerto) { Aventurero.vida--; switch(random(2)) { 1: "Intentas propinarle un puñetazo al gordo, pero lo esquiva habilidosamente y te mete un garrotazo en plena cocorota."; 2: "Lanzas una patada a su entrepierna, pero pone su abultado muslo que para el golpe eficientemente. Sin esperar, descarga el garrote sobre tu cabeza."; 3: "Antes siquiera que te acerques te arrea un garrotazo entre ceja y ceja."; } } else "Le pegas unas cuantas patadas al inconsciente dueño."; besar: "¡Antes muerto!"; morder: "¡Antes muerto! ¡Puaj que asco!"; empujar: if (self has general) { give dueno ~general; move dueno to Recreativos; "A patadas empujas al dueño adentro.^Unos cuantos chavales salen del local y echan a correr a toda prisa, lejos de ti."; } ], reaccionar_antes [; Coger: if ((uno == Garrote)&&(self.estado==guardia)) { Aventurero.vida--; "¿Lo quieres?... ¡TOMA GARROTAZO EN EL COCOTAZO!"; } Entrar: if (Localizacion==Calle) { if (self.estado==guardia) { aventurero.vida--; "El dueño te lo impide con un buen garrotazo en la cabeza que te echa para atrás."; } else "El cuerpo gordo del dueño, bloquea la puerta."; } Meterse: if ((Localizacion==Calle)&&(uno==puertita)) { if (self.estado==guardia) { aventurero.vida--; "El dueño te lo impide con un buen garrotazo en la cabeza que te echa para atrás."; } else "El cuerpo gordo del dueño, bloquea la puerta."; } Abrir, Cerrar: if ((Localizacion==Calle)&&(uno==puertita)&&(self.estado==guardia)) { aventurero.vida--; "De un garrotazo en la cabeza, el dueño te advierte: '¡No te acerques al local!'"; } ], reaccionar_despues [; Atacar: if (dueno.estado==normal) { if (uno ofclass Maquina) { move extintor to Recreativos; move garrote to Dueno; print "El dueño saca un garrote, te arrebata el extintor y te echa a la calle entre sus garrotazos y los gritos de la gente.^^"; EsperarTecla("Pulsa una tecla...",0); BorrarPantalla(); move Dueno to Calle; dueno.estado=guardia; JugadorA(Calle,2); } } ], ordenes [; <>; ], has animado transparente; Object culo "culo del dueño" dueno with nombre 'culo' 'ano' 'ojete', articulo 'el', descripcion "¡No lo pienso comprobar!", antes [; recibir: if (dueno.estado==muerto) "Coges ",(el) uno," e intentas meterselo por el culo al inconsciente dueño."; else "No creo que se deje tan fácilmente."; ]; ! MAS OBJETOS!!!!!! Object garrote "garrote" Limbo with nombre 'garrote' 'palo', descripcion "Un garrote a la vieja usanza.", antes [; atacar: if (dueno.estado==guardia) { dueno.estado=muerto; give dueno general; give puertita abierto; move self to Localizacion; "Golpeas el garrote repetidamente con tu cabeza hasta dejar exahusto al dueño.^Este cae estripitosamente bloqueando la puerta con su cuerpo."; } else "Deja al pobre garrote en paz. Bastante ha tenido ya."; ]; Object periodico "periodico de furbol" dueno with nombre 'periodico' 'diario' 'as', descripcion "El As, diario deportivo."; Object mierda "mierda" Limbo with nombre 'mierda' 'sordomuda', estado normal, ! otro estado posible: sordamuda describir [; switch (self.estado) { sordamuda: "Una mierda sordomuda yace en el suelo."; normal: "Una mierda, que ha dejado uno de los chavales más asustadizo y menos contenido, yace en el suelo."; } ], descripcion [; if (self hasnt general) { ! se usa para el primer examine give self general; print "Es una mierda normal y corriente. Pero... te sientes como una mierda...^^¡¡¡QUE EXTRAÑA SENSACIÓN!!!^"; EsperarTecla("^Pulsa una mierda... ejem, digoooo: una tecla... por favor.",0); BorrarPantalla(); print "^Te sientes como una... mierda.^Puedes ver un sitio muy grande, con mucha gente, de la que destaca una persona magnífica... sin duda es un gran aventurero... te mira fijamente, asi que le dices: 'Estoy orgullosa de ti...'^"; EsperarTecla("^Pulsa una tecla...",0); BorrarPantalla(); "^^Te sientes como un... aventurero. Estás mirando fijamente una mierda del suelo cuando crees..., sabes..., ves... como te ha dicho... ¡te ha hablado!: ¡que está orgullosa de ti! ¡De toda la gente 'humana' que hay aqui sólo ella te reconoce y comprende."; } else { if (self.estado==sordamuda) "Examinas la mierda, mientras tus nervios aumentan."; else "¡Te ha hablado!, ¿no es increible?"; } return true; ], antes [; escuchar: if (self.estado==sordamuda) "Esperas, ante el asombro de todos, a oir la respuesta de la mierda."; hablar: if (self.estado==normal) { self.estado=sordamuda; Aventurero.estado=sueno; chavales.estado=petrificados; "Te diriges, ante el asombro de tus rehenes, hacia una mierda que habia dejado uno de los chavales mas asustadizo y menos contenido. Comienzas a hablarle de las diferencias entre las aventuras graficas y las conversacionales."; } else "'¿Que opinas?' insistes, pero la mierda no responde."; ], has femenino animado; ! Inicializar!!!!!!!!!!!!!!!!!!! [ Inicializar parseraux; print "Introduce tu nick aventurero: "; nick->0=9; KeyboardPrimitive(nick,parseraux); EsperarTecla(0,1); BorrarPantalla(); modomirar = 2; CambiarDefecto(no_puedes_ir, "Eres un Master Aventurero, ¡Y aún sigues chocando con las paredes!"); CambiarJugador(Aventurero); localizacion = Recreativos; print"^^Apareces en unos recreativos, ¡Tu!, un aventurero de toda la vida, transportado a la guarida del enemigo...^^Teclea 'ayuda' por si la necesitas...^^"; ArrancarDaemon(chavales); ]; ! Modificación de la linea de estado. [ dibujarlineaestado i; @split_window 2; @set_window 1; @set_cursor 1 1; @erase_window; style reverse; print " "; if (nick->1==0) print "Aventurero "; else { for (i=2: i< nick->1 +2: i++) print (char) nick->i; print " "; } print "en el Sega Park"; print " "; style roman; @set_window 0; ]; ! Modificación del anuncio. Que es mínima, sólo que escriba el nick del jugador. [ Anuncio i; if (Historia ~= 0) { #ifdef TARGET_ZCODE; #IFV5; style bold; #ENDIF; if (nick->1==0) print "Aventurero "; else { for (i=2: i< nick->1 +2: i++) print (char) nick->i; print " "; } print (string) Historia; #IFV5; style roman; #ENDIF; #ifnot; ! TARGET_GLULX; glk($0086, 3); ! set header style if (nick->1==0) print "Aventurero "; else { for (i=2: i< nick->1 +2: i++) print (char) nick->i; print " "; } print (string) Historia; glk($0086, 0); ! set normal style #endif; ! TARGET_ } if (Titular ~= 0) print (string) Titular; #ifdef TARGET_ZCODE; print "Revisión ", (0-->1) & $03ff, " / Número de serie "; for (i=18:i<24:i++) print (char) 0->i; #ifnot; ! TARGET_GLULX; print "Revisión "; @aloads 52 0 i; print i; print " / Número de serie "; for (i=0:i<6:i++) print (char) 54->i; #endif; ! TARGET_ print " / Inform v"; inversion; print " Librería ", (string) RevisionLib, " "; #ifdef STRICT_MODE; print "S"; #endif; #ifdef INFIX; print "X"; #ifnot; #ifdef DEBUG; print "D"; #endif; #endif; new_line; ]; [ Curiosidades ; print "Coge el AOL de Chodaboy original y mira las cosas tan cachondas que se puede hacer.^ Pero claro, entonces no tendrá su gracia IN GAME. Has probado:^^ -¿A EXAMINARTE?^ -¿A MIRAR dos veces seguidas?^ -¿A intentar METER cosas EN el dueño?^ -¿Has intentado SALIR de los recreativos, o poner FIN cuando ya estás loco?^ -¿Has HABLAR CON el dueño o con los chavales en diferentes estadios del juego?^ -¿Has probado a EXAMINAR DINERO o ROMPER DINERO?^ -¿Has probado a JUGAR a alguna máquina?^ -¿Has probado a ESCUCHAR MIERDA, EXAMINAR MIERDA, HABLAR MIERDA, etc etc?^ -Y lo más importante: ¿Has puesto XYZZY? Nooooo¿?¿?¿ ¡Dios mio!, tu no eres un buen aventurero! ^^ Mira a su vez el fuente adjunto para ver el potencial de informatE en cuanto a POO (programación orientada a objetos). Aunque hay ciertas perrerías que no te las recomiendo copiar (la modificación del Anuncio, y del verbo mirar), todo lo demás es muy recomendable. He procurado se fiel y extremista en cuanto a POO, salvo hacia el final que estaba tan atorado que no me salían las cosas.^"; ]; [ FinalizarSub; if ((Aventurero.estado~=normal)&&(Localizacion==Recreativos)) "Intentas dejarlo todo y volver a casa con tus aventuras, tu CAAD, tus amigos del MUD y esas cosas. Pero ya es demasiado tarde... ¡Estas como una puta cabra!."; else { M__L(##Finalizar,2); if (SiONo()~=0) quit; } ]; ! La inclusión de la gramática siempre AL FINAL!!!!!!! Include "Gramatica"; ! Definición de verbos, ¿Después de la gramática? Verb 'destroza' = 'rompe'; Verb 'pega' = 'rompe'; [ jugarSub ; "¡Con eso no se juega!"; ]; Verb 'juega' 'juga' * noun -> jugar * 'a' noun -> jugar; [ morderSub ; "No soy un perro."; ]; Verb 'muerde' 'morde' * noun -> morder * 'a' noun -> morder; [ xyzzySub ; EsperarTecla("Pulsa una tecla...^",0); BorrarPantalla(); print "Estás en el recolector de tesoros...^^"; EsperarTecla(0,50); print "¡En tus sueños chaval...! ¡en tus sueños...!^"; print "Vuelves a la triste realidad.^"; ]; Verb 'Xyzzy' * -> xyzzy; [ ayudaSub ; print "Este juego es una parserización del log 'Aventurero en el Sega Park' de Chodaboy, sacado con el AOL de Lumpi. Este log o AOL fué ganador supremo de la AOLCOMP, por tanto, si necesitas ayuda o estás atascado, puedes mirar dicho AOL, que te servirá de solución al juego.^Busca en: ; que es la página personal de Lumpi. Mira en la sección AOL.^^Ahora bien, yo te recomiendo que no lo hagas y que intentes resolver los pocos puzzles que hay por tu cuenta, o preguntar por pistas sutiles en vez de tener un guión reventador.^"; ]; Verb 'Ayuda' * -> ayuda; Extend 'come' replace * noun -> morder; Extend 'responde' replace * topic -> NoVale; Extend 'pregunta' replace * topic -> NoVale; Extend 'di' replace * topic -> NoVale; Extend 'ir' replace * topic -> NoIr; ! Extend 'Meterse' replace ! como coño elimino esta acción???? ! * topic -> NoIr; [ NoValeSub; "Para hablar en este juego usa simplemente HABLAR CON ."; ]; [ NoIrSub; "Para moverte usa simplemente las direcciones cardinales: NORTE, SUR, ESTE, OESTE; o sus abreviaturas: N, S, E, O; Y usa ENTRAR y SALIR para atravesar la puerta."; ]; !Extend 'grita' replace ! * -> gritar; [ gritarSub ; "Gritas y te desgañitas."; ];