CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 02 Jun 2020 04:45

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 37 mensajes ]  Ir a página Anterior  1, 2, 3
Autor Mensaje
NotaPublicado: 01 Dic 2010 18:03 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Louen escribió:
Después de tanto tiempo, sigo con mis dudillas...

En el juego he creado una silla (ufffff)

Al realizar la accion "sentarse", esta acción llama a "Meterse" con lo que no queda muy bien, ya que la puedes modificar con la propiedad antes, pero al juego le da igual que pongas "sientate en la silla" que "Metete en la silla".

Después de varios quebraderos de cabeza he conseguido que diferencie los verbos, pero ahora tengo un problema para levantarse, ya que no doy con la solución.

Para sentarse he usado (Aunque no sé si correctamente)
Código:
Extend 'sientate' replace
    * 'en' noun                          -> Sentarse;

[SentarseSub;
    if (uno has entrable)
        {
        move jugador to uno;
        "Te sientas en ", (el) uno, ".";
        }
    "No puedes sentarte ahí.";
];


Pero para levantarte no sé como indicar en el condicional que el jugador esté en el objeto entrable....

A lo mejor hay alguna forma más simple de hacerlo y estoy dándole vueltas tontamente...


Por ejemplo así:
Código:
if(parent(jugador)==Silla) {move jugador to parent(Silla); "Te levantas de la silla.";}
else if(parent(jugador)==location)"No estás en ningún sitio del que debas levantarte.";


Saludos

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
NotaPublicado: 07 Dic 2010 18:48 
Desconectado
Dragón
Dragón

Registrado: 22 Oct 2010 10:09
Mensajes: 117
Bueno, ya he resuelto el tema de la silla. Gracias por vuestra ayuda.

Ahora tengo otro problemilla.....

Estoy usando el módulo palique, pero me da un error bastante raro al compilar y no se de qué puede ser.

Sí compilo el archivo en modo Z Debug, no hay ningún poblema, lo compila correctamente y funciona, aparentemente bien.

Pero si lo compilo sin el modo Debug, me dá el siguiente error.
Código:
Inform 6.30 for Win32 (27th Feb 2004)
InformATE! 6/10 biplataforma
.\Palique.h(24): Error:  No such constant as "parser_trace"
Compiled with 1 error
[SE HAN PRODUCIDO ERRORES (cod=1)]

Lo raro es que el error lo dá en el archivo palique.h, el cual debería de estar bien programado, ya que yo no lo he modificado para nada.

No obstante me deja arrancar el juego, pero al intentar hablar al pnj sobre un tema en concreto sale lo siguiente...
Código:
>hablar con azafata sobre avion
[ FlexibleInterpretarNombre: llamado para objeto "(tgeneral)"
  Tratando de encajar 1 palabras, empezando en la 5: 0 palabras encajadas]
[ FlexibleInterpretarNombre: llamado para objeto "(tavion)"
  Tratando de encajar 1 palabras, empezando en la 5: 1 palabras encajadas]
[ FlexibleInterpretarNombre: llamado para objeto "(ttiempo)"
  Tratando de encajar 1 palabras, empezando en la 5: 0 palabras encajadas]
[ AveriguarTema ha detectado "(tavion)" (96) como posible tema, con puntuación 1
]


¿Alguna solución?


Arriba
 Perfil  
 
NotaPublicado: 07 Dic 2010 21:31 
Desconectado
Dragón
Dragón

Registrado: 22 Oct 2010 10:09
Mensajes: 117
Acabo de probar, y compilando directamente el archivo de ejemplo de palique 1.2 dá el mismo error.

¿Alguna sugerencia?


Arriba
 Perfil  
 
NotaPublicado: 08 Dic 2010 01:34 
Desconectado
Archivero
Archivero

Registrado: 08 Sep 2008 22:04
Mensajes: 280
Louen escribió:
Acabo de probar, y compilando directamente el archivo de ejemplo de palique 1.2 dá el mismo error.

¿Alguna sugerencia?


Palique, por lo que estoy viendo, se hizo cuando en InformATE se declaraba siempre la variable parser_trace, se compilase o no en modo DEBUG. A partir de la versión 080625 de InformATE en el fichero Eparser.h sólo se declara si se compila con el "DEBUG" puesto, cosa que no se debía esperar el autor de Etemas (el error se produce en la parte de Palique que está heredada de ésta última)

La solución ideal sería modificar Palique para que las referencias a parser_trace sólo se produzcan si se compila en modo DEBUG. Para eso habría que cambiar un par de cosas en la función "FlexibleInterpretarNombre" (al principio del fichero Palique.h)

Así es como está ahora:
Código:
[ FlexibleInterpretarNombre obj i w n;
    if (parser_trace>=5) print "[ FlexibleInterpretarNombre: llamado
   para objeto ~",(_nombre_)obj, "~^  Tratando de encajar ",
   consultar_num_palabras, " palabras, empezando en la ",np,": ";
    for (i=0:i<consultar_num_palabras:i++)
    {
       w=SiguientePalabraParar();
   if (PalabraEnPropiedad(w, obj, nombre)) n++;
    }
    if (parser_trace>=5) print n, " palabras encajadas]^";
!    if (n<consultar_num_palabras) return 0;
    return n;
];


Y posiblemente funcionaría sustituyéndolo por:

Código:
[ FlexibleInterpretarNombre obj i w n;
#Ifdef DEBUG;
    if (parser_trace>=5) print "[ FlexibleInterpretarNombre: llamado
   para objeto ~",(_nombre_)obj, "~^  Tratando de encajar ",
   consultar_num_palabras, " palabras, empezando en la ",np,": ";
#Endif;
    for (i=0:i<consultar_num_palabras:i++)
    {
       w=SiguientePalabraParar();
   if (PalabraEnPropiedad(w, obj, nombre)) n++;
    }
#Ifdef DEBUG;
    if (parser_trace>=5) print n, " palabras encajadas]^";
#Endif;
!    if (n<consultar_num_palabras) return 0;
    return n;
];


Y digo posiblemente porque hace mil años que no uso las librerías de InformATE (desde que me pasé a InformSP6) y ya no sé ni dónde las tengo :oops: , así que no he podido comprobarlo fehacientemente. Como véis, he puesto las referencias a parser_trace entre directivas condicionales de compilación que sólo introducen esa parte del código si se está en modo DEBUG. Todo es probar a ver si funciona :o

--


Arriba
 Perfil  
 
NotaPublicado: 09 Dic 2010 13:17 
Desconectado
Dragón
Dragón

Registrado: 22 Oct 2010 10:09
Mensajes: 117
Ok, Gracias DrVanHalenFan...

He hecho los cambios en el archivo.h y funciona, al parecer, correctamente.


Arriba
 Perfil  
 
NotaPublicado: 21 Dic 2010 18:14 
Desconectado
Dragón
Dragón

Registrado: 22 Oct 2010 10:09
Mensajes: 117
Otra dudilla.

El juego que estoy haciendo, tiene diferentes formas de finalizar el juego.

Tengo claro lo de la variable banderafin y la rutina Mensajemuerte pero el problema que tengo es que la opción de CURIOSIDADES tan solo aparece al finalizar el juego con banderafin 2.

¿Cómo puedo hacer para que aparezca la opción de CURIOSIDADES en las demás opciones ó como puedeo cambiar el texto de ***Has Ganado*** de banderafin 2?

Un saludo.


Arriba
 Perfil  
 
NotaPublicado: 21 Dic 2010 18:39 
Desconectado
Dragón
Dragón

Registrado: 22 Oct 2010 10:09
Mensajes: 117
Ok, toqueteando archivos por aquí y por allí ya lo he solucionado.

Gracias.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 37 mensajes ]  Ir a página Anterior  1, 2, 3

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] 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