CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 08 Ago 2020 03:47

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 4 mensajes ] 
Autor Mensaje
NotaPublicado: 13 Ene 2007 16:40 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Resulta que tengo esto en la gramática:

Código:
 Verb meta 'salidas' 'exits'
    *                                   -> Salidas;
  Extend only 'x//' first
    *                                   -> Salidas;


'salidas' y 'exits' es un verbo de tipo meta, en cambio 'x', al ser una extensión de examinar, funciona como comando salidas pero sin meta, es decir, consume turno de juego.

El caso es que acabo de descubrir una diferencia importante:
Si en una localidad tengo algo como esto:
Código:
lugar lacuevadelcoco "cueva"
with
...
antes[;
salidas: "Ahora mismo no ves ninguna salida";
],

Si escribo:
>>X
Ahora mismo no ves ninguna salida.

...Bien, pero si escribo:
>>SALIDAS
Salidas: norte, abajo...

Entonces el parser utiliza la rutina salidas por defecto ignorando completamente mi Antes.

¿Cómo puedo hacer para que sin dejar de ser un verbo tipo meta (no quiero que el comando 'salidas' consuma turno) tenga en cuenta el antes que defino en la localización?

Y otra pregunta, ¿cómo hago que 'x//' no siendo META cuando funciona como examinar, sí lo sea cuando funciona como comando salidas?

Gracias

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
NotaPublicado: 13 Ene 2007 18:27 
Desconectado
Grafista
Grafista

Registrado: 09 Mar 2004 17:20
Mensajes: 504
Como has podido comprobar, los verbos "meta" son "inmunes" al ANTES, lo que producía el graciosos efecto de que el ANTES te funcionaba al teclear "x" (no lo considera meta) pero no al usar "salidas" (si lo considera como tal) a pesar de estar invocando una misma acción.

Trepanemos un poquito, interceptemos la acción en algún lugar adecuado y demosle un pequeño "pinchazo" al parser. Seguramente esto se puede hacer de otras maneras o metiendo mano en otra parte, pero a mi esto me ha funcionado bien y parece (nunca pongamos la mano en el fuego con eso) que no trastoca otras cosas

Código:
[RutinaPreJuego;
   if (accion==##Salidas) meta=1;
   rfalse;
];


En principio parece que con esto la acción salidas sienpre va a ser meta y siempre será debidamente pillada por los ANTES. La cosa era poner la variable global META a 1 si la acción ha sido debidamente interpretada como "Salidas" con independencia del verbo concreto usado. Ojito con no poner el rfalse, que se pifiaría todo (pero todo, todo... XDD)

Editaaaaando :o : Y no te olvides de quitar el meta de la gramatica del verbo salidas dejandolo como debía estar (copiado de Gramatica.h versión 030305):

Código:
ifdef ADMITIR_COMANDO_SALIDAS;
! A partir de la revisión [021025] el verbo Salidas ya no es metaverbo.

  Verb 'salidas' 'exits'
    *                                   -> Salidas;
  Extend only 'x//' first
    *                                   -> Salidas;
endif;  ! ADMITIR_COMANDO_SALIDAS


Arriba
 Perfil  
 
NotaPublicado: 13 Ene 2007 19:35 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Muchas gracias RML. Has fulminado dos problemas con una sola bala. ;D

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 15 Ene 2007 00:14 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 15 Ene 2005 22:26
Mensajes: 780
notable RML,

por cierto, para una mayor 'inteligencia aparente' del parser:
Código:
ifdef ADMITIR_COMANDO_SALIDAS;
! A partir de la revisión [021025] el verbo Salidas ya no es metaverbo.

  Verb 'salidas' 'exits'
    *                                   -> Salidas;
  Extend only 'x//' first
    *                                   -> Salidas;
VerboIrregular "mostrar las salidas" with imperativo 'salidas';

endif;  ! ADMITIR_COMANDO_SALIDAS


ese VerboIrregular del final pule un poquitin la cosa.

_________________
INFSP7 - Canal de Noticias INFSP

Porque donde está tu tesoro, allí también estará tu corazón.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 4 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 2 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