CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 18 Oct 2017 15:55

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 7 mensajes ] 
Autor Mensaje
NotaPublicado: 23 Mar 2016 03:03 
Conectado
Elfito
Elfito

Registrado: 09 Sep 2008 03:21
Mensajes: 24
Hola, hace mucho tiempo que no entro, me quería poner a hacer un jueguito pero creo que estoy un poco desactualizado.
Me he bajado el kit del programador ¿Eso sigue estando actualizado?

También he hecho puebas, aquí pongo el código, cuando le echo el cerrojo a la puerta y digo "abrir puerta" me dice que está cerrada con llave :(

¿Qué estoy haciendo mal?

También el personaje móvil cuando llega a su meta se pone a moverse de forma aleatoria, ¿Cómo puedo controlar eso?

Muchas gracias :)

Spoiler: Mostrar
Código:
Constant Historia "Prueba Fran^";
Constant Titular "(c) 2016 Franz^";
Include "EParser";
! Aqui iría la definición de mensajes de librería.
Include "Acciones";

Class    Lugar
 with     cantidad,
 has    luz;

Include "PNJMovil";
Include "PNJPuertas";
   

! Aqui irian las definiciones de las localidades
! y los objetos del juego
lugar    Area1 "Area1"
 with   descripcion "Area1.",
          al_e Area2;


lugar    Area2 "Area2"
 with   descripcion "Area2.",
          al_e puerta_hierro,
      al_o Area1;


lugar    Area3 "Area3"
 with   descripcion "Area3.",
          al_o puerta_hierro;

 
PNJPuerta -> puerta_hierro "puerta de hierro"
   with
   nombre 'hierro',
   descripcion "Una solida puerta de hierro, mugrosa y
   oxidada por el tiempo y la humedad de estas estancias.",
   al_o Area2,
   al_e Area3,
   lado_cierre Area2,
   has femenino abrible cerrojo ;
   
PNJMovil tiofeo "Tio feo" Area3
 with    nombre 'tio' 'feo',
   articulos 0 0 "a",
   descripcion "¡Qué feo es este tío!",
   ordenes [;
       "No te hace caso.";
   ],

 has    animado;

[ Inicializar ;
    ! Lugar de comienzo: la puerta principal
   IniciarPuertas();
    localizacion=Area1;
   
    ! Activamos esta variable para que la descripción de los lugares
    ! se repita siempre, incluso si el jugador ya ha estado allí
    modomirar=2;

    ! Mensaje de bienvenida
   ArrancarDaemon(tiofeo);
   PNJ_Ruta(tiofeo, MOVIMIENTO_POR_META, Area1, CAMINO_SIN_CERROJOS);
    "¡¡Bienvenido a mi primer juego!!^";
   
];
Include "Gramatica";


Arriba
 Perfil  
 
NotaPublicado: 26 Mar 2016 06:41 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1600
Ubicación: Argentina
Bienvenido nuevamente a la comunidad, weirdzod.

El Kit del Programador es para InformATE, que se actualizó por última vez menormente en el 2008. Digo bien que menormente, porque más recientemente los esfuerzos de la comunidad se han ido enfocando en INFSP, una traducción de Inform que en lugar de reescribir todas las librerías para traducir el código se limita a ser módulos de idioma, lo cual permite mayor compatibilidad con extensiones hechas originalmente para Inform 6 y, aparte, gozar de las novedades de la lib. 6/11. Esta traducción, además, se ha portado a Inform 7, una versión de Inform que aún sigue actualizándose y cuya traducción está al día, que internamente utiliza Inform 6 pero que de cara al usuario se basa en reglas y un código en lenguaje seudonatural.
Además de lo desactualizado que en sí está el contenido del Kit del Programador de InformATE, no sé qué tan bien se integrará con Windows de 64 bits, pues cuando se sacó la última versión recién los Windows de 64 bits estaban empezando a popularizarse en los ámbitos de consumo, pues aunque XP de 64 había sólo lo ponían los usuarios avanzados o en las máquinas de empresas, por eso de la falta de controladores y demás.

Para interiorizarte un poco sobre INFSP, te sugiero realizar una búsqueda en la Wiki CAAD, donde podrás no sólo ver descripciones sino también acceder a descargas, extensiones y documentación.


Arriba
 Perfil  
 
NotaPublicado: 26 Mar 2016 13:46 
Desconectado
Elfito
Elfito

Registrado: 28 Nov 2013 07:41
Mensajes: 17
La librería PnjPuertas.h menciona el error de la puerta con llave intentando corregirlo (Líneas 210-218, rutina antes, para la acción abrir). Sin embargo, líneas antes, la acción abrir se captura junto con la acción cerrar dentro de la misma rutina, lo que invalida el arreglo.
Código:
(...)
   antes[;
   
      abrir,cerrar:
         if(self.bloqueada){
            print "^Algo bloquea ",(el)self,
            " impidiendo que l",(o)self;
            if(accion==##abrir) " abras.";else
            " cierres.";}
   
      abrir:
         if(self provides con_llave)rfalse; else
         if(self has cerrojo && self has cerrojoechado)
            "^Está cerrada con un pestillo.^";
            
      !Corrige un defecto de la libreria.- en puertas cerradas con pestillo, al intentar
      !abrirlas te informaba que estaban cerradas con llave.
      !(supongo que un problema de traduccion (...lock)
(...)

Con ésto, lo que se puede hacer es integrar abrir dentro de abrir,cerrar en PnjPuertas.h «desambiguando» la acción o incluir el código para abrir dentro de una rutina antes en la definición del objeto puerta_hierro en tanto no utilices el bloqueo.

Código:
PNJPuerta -> puerta_hierro "puerta de hierro"
   (...)
   antes[;
      abrir:
         if(self has cerrojoechado) "Está cerrada con un pestillo.";
   ],


Para que el tío feo se quede quieto al llegar prueba agregando esta rutina al código del personaje:
Código:
   pnj_ha_llegado [;
       PNJ_Ruta(tiofeo, MOVIMIENTO_NINGUNO);
   ],


A mi también me preocupa el tema de la obsolescencia, estoy intentando hacer algo en InformATE porque es el lenguaje que tengo aprendido y me resulta muy natural con su mayor cantidad de elementos en español, pero he optado por centrarme en el juego y recién entonces «actualizarme» migrando el código a otros lenguajes. De todos modos, siendo tan vaporware lo que tengo, no sé qué ocurrirá primero!

¡Saludos!


Arriba
 Perfil  
 
NotaPublicado: 27 Mar 2016 07:17 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1600
Ubicación: Argentina
sjlvanq escribió:
De todos modos, siendo tan vaporware lo que tengo, no sé qué ocurrirá primero!


Pues eso depende de ti. Para tu tranquilidad, el grueso de las dos máquinas virtuales históricas en que se ejecutan los juegos creados con cualquier Inform (Z y Glulx) no ha cambiado, de modo que no tienes la presión de problemas de compatibilidad significativos para usuarios que tengan intérpretes nuevos.
Potencialmente podría ocurrirte que los miembros nuevos de la comunidad se vayan inclinando cada vez más a variantes de Inform más modernas, pero todavía quedan usuarios de InformATE y, además, por lo que dices tú en su momento llegaste a aprender InformATE, con lo que aun si sucediere no te será un gran problema.


Arriba
 Perfil  
 
NotaPublicado: 10 Oct 2017 21:22 
Conectado
Elfito
Elfito

Registrado: 09 Sep 2008 03:21
Mensajes: 24
Aunque varios años tarde debo dar las gracias, no había leído la respuesta hasta ahora y me será útil en mi actual proyecto.


Arriba
 Perfil  
 
NotaPublicado: 11 Oct 2017 17:44 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1600
Ubicación: Argentina
weirdzod escribió:
Aunque varios años tarde debo dar las gracias, no había leído la respuesta hasta ahora y me será útil en mi actual proyecto.


¡Ánimo con el proyecto! Ansiamos verlo.


Arriba
 Perfil  
 
NotaPublicado: 14 Oct 2017 14:42 
Conectado
Elfito
Elfito

Registrado: 09 Sep 2008 03:21
Mensajes: 24
¡Muchísimas gracias!
A ver qué sale.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 7 mensajes ] 

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: weirdzod y 3 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM