CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 24 Oct 2017 03:04

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 11 mensajes ] 
Autor Mensaje
NotaPublicado: 16 Sep 2014 21:34 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Buenas,

Tengo dos localidades que están una encima de otra. locA (localidad inferior), locB (localidad superior). Están conectadas de la siguiente forma:

Código:
locB.ponSalidaBi( "abajo", locA);


Si estoy en la localidad locA, para ir a la localidad locB, me funciona los comandos "arriba y subir". Sin embargo si estoy en la localidad locB, para ir la localidad locA, sólo me funciona "abajo", no me funciona "bajar".

¿Cómo hago para que estando en la localidad locA, me funcione también el comando "bajar"?

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2014 10:13 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 23 Abr 2004 08:49
Mensajes: 2887
Ubicación: España (Galicia)
Hola,

Mmmm... ya habías tenido ese problema anteriormente con "subir", y lo había corregido tanto para "subir" como para "bajar".

subir y bajar, introducidos "a secas", son convertidos en "arriba" y "abajo".

Bájate esta versión, la última, y me dices si sigues teniendo ese problema.

https://github.com/Baltasarq/fi-js/blob/master/fi.js
https://github.com/Baltasarq/fi-js/blob/master/verbs.js

Esto que comentas que no te funciona está en la línea 1303 de verbs.js:

Código:
var descendAction = actions.crea( "descend",
    [ "bajar", "baja", "bajo", "destrepar", "destrepa", "destrepo",
      "descender", "desciende", "desciendo" ]
);

descendAction.transInput = function(s) {
    var loc = ctrl.places.getCurrentLoc();

    // Baja => ir abajo
    if ( this.match( s )
      && s.term1 === null )
    {
        s.verb = actions.getAction( "go" ).verbs[ 0 ];
        s.term1 = loc.compas[ 5 ];
    }

    return "";
}


Aunque es posible que sea un bug, claro. Prueba con estas versiones actualizadas, y me cuentas.

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2014 10:15 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Por lo que veo en verbs.js hay una implementación expresa que hace que la accion "climb" se convierta en la accion "go" (en climbAction.transInput). Es decir, el verbo "subir" responde a la accion "climb" (subirse a), pero si no hay nombre en la frase el parser lo convierte a la accion "go" con el parámetro "arriba" (ir arriba).

Esto no se repite para el verbo bajar, porque no hay una accion de "meterse debajo" que pueda cambiarse por "ir abajo" si no hay respuesta. Supongo que es algo a lo que Baltasar debería dar soporte en fi.js.

Por ahora, quizá te funcione haciendo una trampa: en fi.js busca esta linea:

Código:
this.brevCompas = [ "n", "s", "e", "o", "ar", "ab" ];


y cambiala por esta:

Código:
this.brevCompas = [ "n", "s", "e", "o", "ar", "bajar" ];


La idea es que en lugar de usar la abreviatura "ab" para "abajo" la abreviatura sea "bajar". No lo he probado pero como ñapa temporal puede funcionar.

Edito: Baltasar se me ha adelantado por unos segundos, y además no se que he hecho yo que me he bajado los fuentes de guthub pero he acabado revisando unos viejos, porque la acccion descender está efectivamente ahí XD

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


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2014 10:40 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Gracias por las respuestas!

Con la nueva versión va perfecto.

:P

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2014 11:12 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 23 Abr 2004 08:49
Mensajes: 2887
Ubicación: España (Galicia)
Hola,

edblopez escribió:
Con la nueva versión va perfecto. :-D


Me alegro mucho.

Uto escribió:
(...)
y cambiala por esta:
Código:
this.brevCompas = [ "n", "s", "e", "o", "ar", "bajar" ];

La idea es que en lugar de usar la abreviatura "ab" para "abajo" la abreviatura sea "bajar". No lo he probado pero como ñapa temporal puede funcionar.


JUAS... pues vaya ñapa, sí... :-P
http://fi-js.wikidot.com/loc

En cualquier caso, gracias por ayudar.
No es que no pueda funcionar, pero ese vector no está hecho para eso. La idea es que para unas localidades determinadas puedas cambiar los nombres de las direcciones (como se ve en el ejemplo), pero no su significado. El hecho de que en el compás breve estén ar y ab es porque no se me ocurrió ninguna abreviatura para arriba y abajo.

Sí es significativo que fi.js solamente soporta seis direcciones, y no diez. Es decir, no hay soporte para noreste, noroeste, sureste, suroeste.
La verdad es que nunca me pareció necesario.

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2014 12:00 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5272
Ubicación: Coruña
baltasarq escribió:
Sí es significativo que fi.js solamente soporta seis direcciones, y no diez. Es decir, no hay soporte para noreste, noroeste, sureste, suroeste.
La verdad es que nunca me pareció necesario.

AGE tiene soporte explícito para diez direcciones, y en retrospectiva creo que es totalmente innecesario y sólo valió para complicar el código. Lo mejor es no soportar ninguna. Que se las cree el usuario, suponiendo que quiera usar puntos cardinales, cosa que en muchas aventuras es de por sí cuestionable.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2014 13:12 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
baltasarq escribió:
JUAS... pues vaya ñapa, sí... :-P
http://fi-js.wikidot.com/loc
Citar:

O sea, que la forma limpia de ñapear eso sería

Citar:
locA.brevCompas = [ "a", "s", "d", "i", "ar", "bajar" ];


Así seguiría siendo una ñapa, pero de nivel medio en lugar de la madre de todas las ñapas XDD


Citar:
Sí es significativo que fi.js solamente soporta seis direcciones, y no diez. Es decir, no hay soporte para noreste, noroeste, sureste, suroeste.
La verdad es que nunca me pareció necesario.

También te faltan entrar y salir, pero vamos, que sí, que son esas cosas que nos comemos la cabeza con ponerlo en todos los parsers pero tampoco es una necesidad terrible :-)

Supeglús y ngPAWS tienen 12, que pueden crecer hasta 20 (como en PAW), y son redefinibles, pero seguro que nadie ha usado los puntos cardinales intermedios en años.

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


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2014 14:47 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5272
Ubicación: Coruña
Es cierto, son 12 en AGE también. Me había olvidado de dentro y fuera.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2014 16:54 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 23 Abr 2004 08:49
Mensajes: 2887
Ubicación: España (Galicia)
Hola,

Uto escribió:
También te faltan entrar y salir, pero vamos, que sí, que son esas cosas que nos comemos la cabeza con ponerlo en todos los parsers pero tampoco es una necesidad terrible :-)


Entrar y salir son acciones, no direcciones. Si pones entrar o salir a secas, actúan sobre la localidad actual. Si pones algo más, como "entrar en la cueva", actúan sobre el objeto directo ("la cueva"), que tiene que existir, claro.

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2014 17:33 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
baltasarq escribió:
Hola,

Uto escribió:
También te faltan entrar y salir, pero vamos, que sí, que son esas cosas que nos comemos la cabeza con ponerlo en todos los parsers pero tampoco es una necesidad terrible :-)


Entrar y salir son acciones, no direcciones. Si pones entrar o salir a secas, actúan sobre la localidad actual. Si pones algo más, como "entrar en la cueva", actúan sobre el objeto directo ("la cueva"), que tiene que existir, claro.


Si lo prefieres digo que te faltan también dentro y fuera :lol:

Aunque insisto en que no son imprescindibles.

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


Arriba
 Perfil  
 
NotaPublicado: 18 Sep 2014 09:19 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 23 Abr 2004 08:49
Mensajes: 2887
Ubicación: España (Galicia)
Hola,

Uto escribió:
Si lo prefieres digo que te faltan también dentro y fuera :lol:


Eso lo he solucionado poniendo "dentro" como sinónimo de entrar, y "fuera" como sinónimo de salir.
(Todavía no está subido a GitHub, ¿eh?)

_________________
-- Baltasar, el arquero


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