CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 11 Dic 2017 12:18

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 14 mensajes ] 
Autor Mensaje
NotaPublicado: 11 Oct 2017 00:27 
Desconectado
Enano Maluva
Enano Maluva

Registrado: 09 Sep 2008 03:21
Mensajes: 28
Tanto en la nueva versión del Gluxe como en Git como en Zag (http://ifwiki.org/index.php/Glulx) da error al ejecutar juegos creados con Infotmate!, ejemplo:

Código:
Constant Historia "Prueba";
Constant Titular "^Esta es^
    La primera prueba.^";

Constant ADMITIR_COMANDO_SALIDAS;
   
   Include "EParser";
   Include "NueEsc";
   Include "Acciones";
   Include "PNJMovil";
   Include "PNJPuertas";
   Include "Gramatica";
   Include "Sonidos";
   Include "zn";

 Lugar  Sala1 "Sala 1"
 with   descripcion
            "Estás en la sala 1.",
 al_o   Sala2,
 al_s   Sala4,
 has    luz;
 
 Lugar  Sala2 "Sala 2"
 with   descripcion
            "Estás en la sala 2.",
 al_o   Sala3,
 al_e   Sala1,
 al_s   Sala5,
 has    luz;
 
 Lugar  Sala3 "Sala 3"
 with   descripcion
            "Estás en la sala 3.",
 al_e   Sala2,
 al_o   P1,
 al_s   Sala6,
 has    luz;
 
 Lugar  Sala4 "Sala 4"
 with   descripcion
            "Estás en la sala 4.",
 al_n   Sala1,
 ol_o   Sala5,
 al_s   Sala7,
 has    luz;
 
 Lugar  Sala5 "Sala 5"
 with   descripcion
            "Estás en la sala 5.",
 al_n   Sala2,
 al_e   Sala4,
 al_s   Sala8,
 al_o   Sala6,
 has    luz; 

 Lugar  Sala6 "Sala 6"
 with   descripcion
            "Estás en la sala 6.",
 al_n   Sala3,
 al_e   Sala5,
 al_s   Sala9,
 has    luz;

 Lugar  Sala7 "Sala 7"
 with   descripcion
            "Estás en la sala 7.",
 al_n   Sala4,
 al_o   Sala8,
 has    luz;


 Lugar  Sala8 "Sala 8"
 with   descripcion
            "Estás en la sala 8.",
 al_n   Sala5,
 al_o   Sala9,
 al_e   Sala7,
 has    luz;

 Lugar  Sala9 "Sala 9"
 with   descripcion
            "Estás en la sala 9.",
 al_n   Sala6,
 al_e   Sala8,
 has    luz;

 Lugar  Sala10 "Sala 10"
 with   descripcion
            "Estás en la sala 10.",
 al_e   P1,
 has    luz;

 PNJPuerta -> p1 "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_e Sala3,
      al_o Sala10,
      lado_cierre Sala3
      has femenino abrible ~abierta;

 PNJMovil Personaje "Personaje" Sala10
 class ObjetoHablante,
 with    nombre 'Personaje',
   articulos 0 0 "a",
   descripcion "Esta es la descripción del personaje.",
   ordenes [;
       "Te manda a la mierda.";
   ],
   accion_antes [;
      self.habla("Buenos días");
   ],
   antes [;
    Atacar: "Mejor no despertar el mal genio de Personaje.";
    Besar:  "No. Te pincharias con la barba.";
   ],
   TRAS_ABRIR NO_PUEDE_ABRIR,
    has    animado;


[ Inicializar;
    IniciarPuertas();
    ArrancarDaemon(Personaje);
    PNJ_Ruta(Personaje, MOVIMIENTO_ALEATORIO, 99);
    localizacion = sala1;
    "^Has llegado a la sala 1^";
   
];


¿Se conocía este error y cómo se podría solucionar?
Gracias


Arriba
 Perfil  
 
NotaPublicado: 11 Oct 2017 10:27 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 07 Sep 2004 21:52
Mensajes: 1866
Hola.

Acabo de compilar un juego en Glulx con informate y ejecuta perfectamente con Winglulxe.

Necesitamos que pegues el texto del error para poder ayudarte. ¿Qué dice?

Un saludo.

_________________
Ruber "Urbatain" Eaglenest.
------------------------
http://www.indieorama.com/author/rubereaglenest/


Arriba
 Perfil  
 
NotaPublicado: 11 Oct 2017 12:53 
Desconectado
Enano Maluva
Enano Maluva

Registrado: 09 Sep 2008 03:21
Mensajes: 28
Si compilo el código que puse antes con Infomate kit del programador, al mover al personaje en cualquier dirección salta el error:
"Gluxe fatal error: Memory write to read only address (1C)"

Si utilizo scinf cambia el mensaje de error por:
"** Programming error:tried to "move" puerta de hierro to nada **"

Los resultados son distintos pues al compilar con informate y usar la versión de win gluxe que trae el pack funciona bien, pero si actualizamos el win gluxe da el error, pero al compilar con scinf no funciona siquiera en el intérprete antiguo.

Muchas gracias por responder, un saludo.


Arriba
 Perfil  
 
NotaPublicado: 11 Oct 2017 13:26 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
En las últimas versiones de Glulxe se ha metido una comprobación de escritura en ROM que antes no hacía debido a que se descubrió su existencia gracias a a su vez a un bug de Glulxa, el ensamblador de Glulx, que usa Superglus.
Existe una opción de compilación de Glulxe que hace que esa comprobación no se aplique, pero claro, prácticamente nadie se compila su propio Glulxe.

No obstante, parece que la escritura en ROM no es habitual en programas creados en Inform, pero el tuyo de alguna manera lo está provocando, así que probablemente sea solucionable mirando a ver que hay en tu código que provoque esa escritura (probablemente a su vez por un bug del compilador de Inform).

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
NotaPublicado: 11 Oct 2017 13:31 
Desconectado
Enano Maluva
Enano Maluva

Registrado: 09 Sep 2008 03:21
Mensajes: 28
Gracias por responder, veré cuáles son mis opciones...

El problema está en la librería PNJpuertas, pues eliminando del código todas las referencias a la librería sí funciona. :(

Veré si soy capaz de entender cuál es el problema pues esta librería me resulta muy útil y creo que la mejor opción es intentar arreglarla (para mí y para todo el que quiera usarla).


Arriba
 Perfil  
 
NotaPublicado: 11 Oct 2017 14:10 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Entra dentro de lo posible que ese mover to "nada" sea el culpable, quizá ese nada se convierte en un 0 al que se le suma 1C y ese es el culpable. ¿Usas la última version del compilador? Porque si lo haces será un bug del compilador seguro (al margen de un fallo de la librería que lleva a esa situación), quizá estaría bien reportarlo, ya no por tu juego, sino porque otros juegos hechos en Inform podrían estar sufriendo el mismo efecto, y que no se manifieste al principio sino en un punto avanzado o poco habitual del juego, y todos esos quedarán para siempre mal, que es lo que le pasa ahora a los juegos muy viejos de Superglús que tenían ese bug, que las últimas versiones de Glulxe los han dejado inservibles.

Más info sobre el tema aqui:

viewtopic.php?f=6&t=6145&hilit=ROM+glulxe

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
NotaPublicado: 11 Oct 2017 14:37 
Desconectado
Enano Maluva
Enano Maluva

Registrado: 09 Sep 2008 03:21
Mensajes: 28
Los compiladores que he usado son:
·El que viene en el kit del programador de Informate!
·El que utiliza Scinf

No sé que versiones son o si son la última, investigaré un poco a ver.


Arriba
 Perfil  
 
NotaPublicado: 16 Oct 2017 12:42 
Desconectado
Enano Maluva
Enano Maluva

Registrado: 09 Sep 2008 03:21
Mensajes: 28
Creo que el fallo está en combinar las librerías Sonidos.h y PNJpuertas.h, me parece que en la siguiente parte del código de sonidos.h puede que esté el problema:

Código:
    if (k has door)
    {
!   print " una puerta ";
      sonidoTrasUnObstaculo = ( k hasnt open );

          tmp=parent(k);
          move k to estelugar;
          tmp2=k.door_to();
          move k to tmp;
          k=tmp2;
!   print " que lleva a ";
    }


¿Qué opinan?
Por favor, necesito ayuda, estaría muy bien arreglar el error.


Arriba
 Perfil  
 
NotaPublicado: 16 Oct 2017 14:31 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 891
weirdzod escribió:
Creo que el fallo está en combinar las librerías Sonidos.h y PNJpuertas.h, me parece que en la siguiente parte del código de sonidos.h puede que esté el problema:

Código:
    if (k has door)
    {
!   print " una puerta ";
      sonidoTrasUnObstaculo = ( k hasnt open );

          tmp=parent(k);
          move k to estelugar;
          tmp2=k.door_to();
          move k to tmp;
          k=tmp2;
!   print " que lleva a ";
    }


¿Qué opinan?
Por favor, necesito ayuda, estaría muy bien arreglar el error.


Sonidos es mía pero hace muchos años que no la mantengo y la verdad es que no tengo ni idea de qué hace ese trozo de código. Parece que apaña el caso de una puerta, y la mueve de lado que conecta hasta que consigue encontrar a dónde se dirige... ¿seguro que no tienes una puerta sin dos lados? ¿una puerta que no conduce a nada?


Arriba
 Perfil  
 
NotaPublicado: 16 Oct 2017 15:07 
Desconectado
Enano Maluva
Enano Maluva

Registrado: 09 Sep 2008 03:21
Mensajes: 28
Johan Paz escribió:
Sonidos es mía pero hace muchos años que no la mantengo y la verdad es que no tengo ni idea de qué hace ese trozo de código. Parece que apaña el caso de una puerta, y la mueve de lado que conecta hasta que consigue encontrar a dónde se dirige... ¿seguro que no tienes una puerta sin dos lados? ¿una puerta que no conduce a nada?


¡Hola!
Antes que nada muchas gracias por la librería, creo que los juegos pueden ser mucho más interesantes con ella.

Me he pasado a INFSP6 con el último compilador y el error sigue apareciendo, aunque esta vez no se queda el intérprete pillado, sólo sale por pantalla el mensaje de error y sigue el juego.

He subido aquí un pequeño ejemplo:
https://drive.google.com/file/d/0B6qSir ... sp=sharing

Donde el código de la única puerta con sus respectivos destinos es:
Código:
lugar sala1
  with
    description "Estás en la sala 1.",

   w_to puerta_hierro,
   s_to sala4,
  has light;

PNJPuerta -> puerta_hierro "puerta de hierro"
      with
      nombre 'hierro',
      description "Una solida puerta de hierro, mugrosa y
      oxidada por el tiempo y la humedad de estas estancias.",
      e_to sala1,
      w_to sala2,
      has female openable ~open ;

lugar sala2
  with
    description "Estás en la sala 2.",

   w_to sala3,
   e_to puerta_hierro,
   s_to sala5,
  has light;


Aparte, he notado que si en sonidos.h comentamos la línea " move k to estelugar; " el fallo no aparece aunque los sonidos no atravesarán la puerta (no es lo ideal).

El mensaje de error sólo aparece cuando nos movemos a localidades donde no está la puerta. :?

Otra vez muchas gracias por la librería y por tu ayuda.


Arriba
 Perfil  
 
NotaPublicado: 16 Oct 2017 16:38 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 891
No sé cuál es el problema... parece que alguna de las llamadas a esa rutina es llamada con un 'nada', pero no sé cuál puede ser.

Lo que te puedo recomendar es descomentar los 'print' comentados que hay ('!print') a ver que parece incorrecto....


Arriba
 Perfil  
 
NotaPublicado: 16 Oct 2017 17:11 
Desconectado
Enano Maluva
Enano Maluva

Registrado: 09 Sep 2008 03:21
Mensajes: 28
Y ya que aparte del mensaje de error parece que no hay más errores... ¿Hay alguna forma de desactivar esos mensajes?


Arriba
 Perfil  
 
NotaPublicado: 16 Oct 2017 17:44 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
weirdzod escribió:
Y ya que aparte del mensaje de error parece que no hay más errores... ¿Hay alguna forma de desactivar esos mensajes?


Bueno,estrictamente hablando, lo que quiera que fuera a grabarse (en sitio inadecuado) no llega a grabarse, por lo que si ese dato se usa luego podría dar un problema. Lo mismo no se usa de manera inmediata, sino más tarde, o quizá no se usa nunca, pero la seguridad absoluta no la tienes.

Si hay una manera de desactivar eso, no creo que se pueda hacer desde Inform, porque es una funcionalidad que queda en el intérprete, fuera de esa "capa".

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
NotaPublicado: 16 Oct 2017 20:39 
Desconectado
Enano Maluva
Enano Maluva

Registrado: 09 Sep 2008 03:21
Mensajes: 28
¿Y no será que la puerta en realidad no está en las dos salas a la vez?
Quiero decir... no sé cómo funciona la librería pnjpuertas en realidad, ¿La pone sola en las dos localidades? o ¿debe estar en una?

Me estoy liando :oops:


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

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro 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:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM