CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 28 Oct 2020 03:17

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 78 mensajes ]  Ir a página Anterior  1, 2, 3, 4, 5, 6  Siguiente
Autor Mensaje
NotaPublicado: 14 Ene 2013 00:33 
Desconectado
Guionista
Guionista
Avatar de Usuario

Registrado: 09 Oct 2006 13:51
Mensajes: 385
Ubicación: mundo
baltasarq escribió:
Hola !
¡Jolines! ¿Y dónde está la documentación para todo eso?


No hay doc! Akbarr lo ha "deducido" viendo el código fuente...!

baltasarq escribió:
¿Cómo se extiende/actualiza la gramática?


Para actualizar la gramática tienes que crear un acción nueva. Una acción tiene uno o varios verbos, más algunas palabras adicionales y puede aceptar un objeto, dos o ninguno. Así, "mirar" acepta un objeto solo (aunque luego puedes no enviárselo cuando se usa), y hay algunas acciones que necesitan dos como "meter x en y" o "poner x sobre y".

Una acción no es más que una clase más de la aventura, y como tal, puede heredar métodos y propiedades de una clase o action. Con este objetivo, existe la clase AccionBase, y su hija AccionNormal:AccionBase. Lo suyo es que tus acciones hereden de AccionNormal (si deseas añadir un método a todas tus acciones no tienes más que crear un objeto que herede de AccionNormal, por ejemplo, MiAccion:AccionNormal, y luego que tus acciones hereden de éste, por ejemplo: PedirDisculpas:MiAccion). Hay toda una serie de jerarquía de acciones en Kenshira, pero no son más que para agruparlas y poder identificarlas. Todo el código común está en AccionBase, del que finalmente todas heredan.

La sintaxis es:

Sin objeto (como Esperar)

Código:
action NombreDeLaAccion:AccionNormal
endaction

Con un objeto (como Mirar)

Código:
action NombreDeLaAccion:AccionNormal (selectoresObjeto1)
endaction


Con dos objetos (como Meter o PonerSobre)

Código:
action NombreDeLaAccion:AccionNormal (selectoresObjeto1) (selectoresObjeto2)
endaction


Los paréntesis son obligatorios. Los selectores se separan por comas y sirven para validar y desambiguar el objeto que ha tecleado el jugador. Como los selectores son muchos y complicados, hay unos macros que sirven para ahorrarte escribirlos. Estas macros puedes verlas en la librería "default", en el archivo acciones-config.k. Son estos:

Código:
parser token AlgoOAlguien:             (nodireccion,visible,iluminado,accesible,nosimismo,nolocalidad)
parser token Algo:                    (nodireccion,visible,iluminado,accesible,nosimismo,nolocalidad,noanimado)
parser token Alguien:                (nodireccion,visible,iluminado,accesible,nosimismo,nolocalidad,animado)
parser token ObjetoPoseido:             (nodireccion,visible,iluminado,accesible,nosimismo,nolocalidad,nopuesto:requisitoDesvestir,posesion,noestatico,posesionmanos:requisitoCoger)
parser token PosibleObjetoDesechable:   (nodireccion,visible,iluminado,accesible,nosimismo,nolocalidad,nopuesto:requisitoDesvestir,posesion,noestatico,posesionmanos:requisitoCoger)
parser token PosibleAdquisicion:      (nodireccion,visible,iluminado,accesible,nosimismo,nolocalidad,nopuesto,noposesionmanos,:validaCoger,noestatico,noanimado)
parser token Visible:               (visible,iluminado)
parser token Direccion:                (direccion)
parser token Objeto:               (objeto)
parser token Tema:                  (objeto)

Así que esto significa que si tu pones en tu acción:

action Atacar:Hostil (Alguien) (AlgoOAlguien)
endaction

El sistema va a buscar y validar que el primer objeto sea Alguien = (nodireccion,visible,iluminado,accesible,nosimismo,nolocalidad,animado) y que el segundo sea AlgoOAlguien = (nodireccion,visible,iluminado,accesible,nosimismo,nolocalidad)

Como ves, AlgoOAlguien es un objeto que está accesible, visible, iluminado y accesible. Es decir, es algo que está en tu localidad, llevas puesto o está en algún sitio a la vista. Si estuviera dentro de una caja, no tuviera luz, el sistema te diría que no lo encuentra. Los selectores Algo y Alguien no son más que una manera adicional de filtrar que el objeto en cuestión sea animado o inanimado. Así, en caso de que haya dos objetos con el mismo nombre, uno animado y otro inanimado, usando un selector más especializado no hay lugar a dudas.

Hay algunos selectores que solo se usan en cierta acciones muy específicas, como Por ejemplo: PosibleObjetoDesechable, que solo se usa en las acciones Dejar, Meter y PonerSobre.

Los selectores macro se pueden extender en la propia acción. Fíjate en la acción Meter, que su segundo objeto está definido como AlgoOAlguien, pero además la añade recipiente y abierto. Esto permite, nuevamente, desambiguar (supón que hay dos objetos con nombres sinónimos, el hecho de que uno este abierto o no, hace que el selector use el abierto en vez de el cerrado).

Código:
action Meter:AccionNormal (PosibleObjetoDesechable) (AlgoOAlguien,recipiente,abierto)


Todo esto permite al programador centrarse en la programación de la propia acción, sin preocuparse en validar o desambiguar.

Los selectores macros que más vas a usar son Algo, AlgoOAlguien y Alguien.
Todos los selectores están tambien en accion-config.k, en la clase AccionBase. Por supuesto, una acción solo puede usar los selectores que posee, por eso todas las acciones al final heredan de AccionBase, para poder usar los selectores. Como ves, un selector recibe el objeto a validar y debe devolver true o false. Y debe implementar un método selectorError, que es lo que mostrará el sistema en caso de que el objeto no cumpla con el selector (y sea el último objeto, ya que si hay más de un objeto, se desecha el que no lo cumple y se conserva el que lo cumple). Por ejemplo:

Código:
    /**
    * @Token accesible
    * El objeto debe ser accesible
    */
   def accesible(o): return o.esAccesiblePor(#actor)
   def accesibleError(o)
      // Intentas acceder a un objeto que podrias ver (o no), pero no puedes alcanzar
      // (esta en un recipiente cerrado transparente o que accesible es false)
      #actor.pnjMsg("${o.El} no está${o.n} a tu alcance.",\
          "${o.El} no está${o.n} al alcance "+#actor.del+".")
      stop
    end


Este es el selector accesible. Como ves, simplemente devuelve que el objeto sea accible por el actor de la acción (que puede ser el jugador, o puede ser otro personaje). En caso de error, se dice que no está a tu alcance.

Volvamos a las acciones. Hemos definido el nombre de la clase, de quien hereda, si tiene ninguno, uno o dos objetos, y los selectores. Ahora tenemos que definir la gramática, las palabras que el jugador debe teclear para que llegue a ejecutar esa acción. Esto se hace en las siguientes líneas debajo de "action" y antes de definir cualquier variable o método.

Por ejemplo:

Código:
action Soplar:Factible (AlgoOAlguien)
    sopla|infla
    sopla|infla *
endaction


- Los asteriscos significan los objetos 1 y 2. El primer asterisco es el objeto uno, y el segundo que aparezca el objeto 2. Todos son opcionales. La gramática que define "sopla|infla" significa que la acción se puede ejecutar sin ningún objeto, mientras que "sopla|infla *" necesita un objeto que será el objeto 1.

- La primera palabra de cada línea es el verbo. Por defecto, todos los verbos deben ser definidos en imperativos y se espera que sean regulares por lo que Kenshira crea automáticamente su forma en infinitivo, que no es más que añadirle una r al final.

- Las barras "|" sirven para definir sinónimos. Si están junto al verbo, siguen siendo verbos. Así "sopla|infla" se puede ejecutar como sopla, soplar, infla e inflar, con un objeto o sin objeto.

Se pueden añadir palabras sueltas dentro de la frase a ejecuta, por ejemplo:

Código:
action Saltar:Factible
    salta|brinca
    pega un? brinco|salto
endaction


Esta acción no tiene objetos. La primera línea acepta salta, saltar, brinca y brincar. En la segunda línea vemos una palabra con una interrogación al final, eso significa que es opcional. Y después hay más palabras, que pueden ser a su vez varias. La segunda línea permite estas combinaciones, todas válidas

pega brinco
pega un brinco
pega salto
pega un salto
pegar brinco
pegar un brinco
pegar salto
pegar un salto

Si un verbo es irregular, se debe incluir su conjugación con la siguiente sintaxis:

Código:
parser infinitivo   abre       abrir


Puedes ver las conjugaciones de los verbos que tiene la librería "default" en el archivo acciones-config.k. Si un verbo tiene su conjugación definida, se usará y no se creará automáticamente añadiendo una r al final.

La gramática acepta que en cada línea se puedan usar opcionalmente algunos o varios de estos parámetros. Copio directamente de accion-config.k (aunque retoco un poco porque está algo desafasdo)

Código:
-n No se genera ni se buscan infinitivos.
   Valido solo para palabras clave que no son verbos imperativos y que no nunca van a requerir un infinitivo en un mensaje de salida, como i|inv|inventario. No es compatible con el resto de opciones.

-i Los objetos 1 y 2 se intercambian.

Sirve para darle la vuelta a la frase y que tenga el mismo sentido. Por ejemplo:

"sacar boli del cajon"
   sacar * de|del *   
   obj1: boli, obj2:cajon

"sacar del cajon el boli". Raro, pero alguien puede querer escribirlo. Si lo definimos así:
   sacar de|del * *   
   va a dar como resultado obj1: cajon   obj2:boli, lo cual es un ERROR, ya que en realidad queremos decir lo contrario. Para arreglarlo usamos -i:

"sacar del cajon el boli"
   -i sacar de|del * *
   obj1: boli,   obj2:cajon   CORRECTO, ahora la frase es equivalente a la primera.

-p   Significa que el verbo utilizado tiene un propiedad como pronombre que indica cual es el primer objeto.
   El metodo se queda marcado con este atributo, por lo que las busquedas se haran añadiendo al final -lo, -la, -los, -las, -le.
   Si el verbo tiene exito, el objeto 1 de la frase se añadirá automaticamente a partir del ultimo objeto utilizado por el jugador
   que coincida con el genero y numero del pronombre.
   Así, con esta definicion:
      Coger:
         -p coge

   Si el jugador pone:
         examinar pantalon      : pantalon, al ser masculino singular, queda en la memoria como pronombre -lo
         cogelo               : el objeto 1 de la frase es el pantalon, equivale a coger pantalon

   Si ademas, al metodo se le añade un objeto, este en la frase se quedara como el 2 objeto, ya que el primero se añade automaticamente
   Por ejemplo
      -p vacia sobre *      Aqui, el objeto numero 1 creara automaticamente, y el * sera el objeto numero 2

   Si el jugador pone:
      examinar vaso de agua      : vaso de agua se queda en la memoria como pronombre -lo
      vacialo sobre el papel      : el objeto 1 de la frase es el vaso de agua y el papel el objeto 2, equivale a "vaciar vaso de agua sobre el papel"

   Las frases con pronombres no incluyen las frase normal sin pronombre. Es decir, para que con los dos ejemplos anterior valgan estas dos frases:
         coger pantalon
         cogelo
         vaciar vaso de agua sobre el papel
         vacialo sobre papel

   Es necesario definir cada verbo 2 veces, una vez con el pronombre y otra sin pronombre:
      Coger:
         coge *               : aqui se indica el objeto 1
         -p coge               : aqui no se indica pues va implicito

      Vaciar:
         vacia * sobre *         : aqui se indica el objeto 1 y el objeto 2
         -p vacia sobre *      : aqui solo se indica el objeto 2, ya que el objeto 1 va implicito

-l   Añade verbos con las terminaciones -le, ademas de los que ya tiene.
   Se suele utilizar con verbos que se aplican a personas
   Es incompatible con -S -s -R -r y con el parametro -p (o caeriamos en errores gramaticales)
   Regalar:
      -l regala * a *            : regala|regalar|regalale|regalarle flores a marta

-s   Añade verbos con las terminaciones en -se, ademas de los que ya tiene.
   Se debe utilizar junto con el parametro -p.
   Es incompatible con -l   (por motivos obvios) y con -S

      -sp regala a *         : regalalo|regalala|regalalos|regalalas|
                           regalarlo|regalarla|regalarlos|regalarlas|
                           regalaselo|regalasela|regalaselos|regalaselas|
                           regalarselo|regalarsela|regalarselos|regalarselas a marta

-S   Igual que -s, pero eliminando el imperativo e infinitivo normales, solo permite el verbo con la terminacion -se
   Se debe utilizar junto con el parametro -p
   Es incompatible con -l   (por motivos obvios) y con -s

      -Sp quita a *         : quitaselo|quitasela|quitaselos|quitaselas|
                           quitarselo|quitarsela|quitarselos|quitarselas a marta

-r   Verbo reflexivo, añade verbos con las terminaciones -se y -te: Al imperativo le añade -te y al infinitivo le añade -se y -te
   Se le puede añadir el parametro -p

      -r come               : come|comer|comete|comerte|comerse
      -pr come            : come|comer|comete|comerte|comerse|
                        comelo|comerlo|cometelo|comertelo|comerselo ... y asi con -la, -los, -las

-RVerbo que es solo reflexivo, igual que -r, pero se eliminan los verbos infinitivo e imperativo normales.
   Se le puede añadir el parametro -p

   infinitive   viste vestir
      -R viste con *         : vistete|vestirte|vestirse con corbata
      -pR viste            : coger traje, vistetelo|vestirtelo|vestirselo

Si la utilización de -s o -S con el parametro -p no es necesaria, es posible que en su lugar haya que utilizar -r o -R

-l, -s, -S, -r, -R son incompatibles entre si
-r, -R son compatibles con -p
-s, -S es obligatorio utilizar -p
-l es incompatible con -p
-i solo es posible cuando hay dos objetos, o cuando hay uno y esta el parametro -p

Por lo tanto, las unicas combinaciones validas posibles son:

-n
-p               -lo -la -los -las
-l               -le
-li               -le
-r -R -rp -Rp      -te -se -telo -telas -telos -telas -selo -selas -selos -selas
-ri -Ri -rpi -Rpi   -te -se -telo -telas -telos -telas -selo -selas -selos -selas
-sp -Sp            -selo -selas -selos -selas
-spi -Spi         -selo -selas -selos -selas


Después de haber definido las frases que acepta tu acción, debes definir el código de la misma. Esto se hace simplemente creando un método llamado hacer(). Por ejemplo:

Código:
action Ir:AccionNormal (Direccion)
    ve|vuelve|camina|anda|corre|atraviesa|cruza|pasa? por|hacia? *
    entra|sal por *

    def hacer(): #actor.pnjMoverDireccion(#uno)

    def mensajeObjeto1Falta: "Debes especificar una dirección."

endaction


Aquí la acción es algo tan sencillo como mover al personaje, y se define en el método hacer()

Normalmente una acción lo que hace es cambiar el estado o mover objetos. En #uno y #otro tienes los objetos 1 y 2. La acción debe referirse siempre a #actor y no a #jugador, porque una acción debería (y digo debería) poder ser realizada por el jugador, pero también por cualquier personaje. Puede que la acción que programes para tu aventura no sea ejecutada nunca por un personaje, pero todas las acciones de la librería pueden ser ejecutas por un personaje. Cuando el jugador teclea la acción durante la partida, #jugador y #actor son iguales. Para hacer que un personaje ejecuta otra acción, hay que usar esta sintaxis:

#actor.accion(NombreDeLaAccion, objeto1, objeto2)


Una acción puede sobreescribir estos métodos de error: mensajeObjeto1Falta y mensajeObjeto2Falta. En el ejemplo de la acción Ir, se usa para aclarar que se debe especificar una dirección. El mensaje por defecto lo puedes ver en la clase MensajesParserBase en accines-config.k y simplemente muestra "Debes ser más específico." (AccionBase hereda de MensajeParserBase)


Arriba
 Perfil  
 
NotaPublicado: 14 Ene 2013 01:30 
Desconectado
Guionista
Guionista
Avatar de Usuario

Registrado: 09 Oct 2006 13:51
Mensajes: 385
Ubicación: mundo
baltasarq escribió:
Hola !
He visto que la aventura de "Retorno al Castillo" de Kenshira tiene como recurso un archivo llamado "template.html", con todos los estilos (ahora los estoy poniendo en la función start, pero es muy chapucero).

Lo malo es que no sé cómo hacer que utilice template.html, porque no encuentro la referencia en Retorno al Castillo.


Cada aventura tiene un único template en html en el que se puede configurar toda la parte visual, javascript, estilos, etc. Incluso puedes hacer una aventura completamente distinta. Si tu aventura no tiene template, Kenshira cogerá uno por defecto.
- Para ver como es el template por defecto, no tienes más que jugar a tu aventura en un navegador y visualizar el código fuente de la página.
- Para crear tu propio template, no tienes más que crear un archivo llamado template.html El contenido del archivo lo puedes sacar del código fuente del template por defecto. Ahora ya lo puedes modificar y adaptar para tu aventura. Para subirlo, tienes que ir tu editor de código fuente y pinchar en el enlace "Nuevo archivo" en la parte superior izquierda.

Puedes subir archivos adicionales usando el mismo enlace "Nuevo archivo" de tu editor. Después, solo tienes que usarlos desde tu template.html Ten en cuenta que todos los archivos que subas están situados en la misma carpeta que el propio template.html, así que no tienes que poner ninguna ruta especial para usarlos.

Como puedes ver en el código fuente de "Retorno al castillo", puedes subir más de un fichero .k con el código de tu aventura. Todos ellos serán utilizados como si fueran uno solo. Si quieres que un fichero sea ignorado, su nombre tiene que empezar por admiración "!", sin las comillas. En "Retorno al castillo" hay un par de archivos ignorados, son !blorg.k y !main.k. Estos ficheros no se usan, están ahí para hacer pruebas.


Arriba
 Perfil  
 
NotaPublicado: 14 Ene 2013 01:44 
Desconectado
Guionista
Guionista
Avatar de Usuario

Registrado: 09 Oct 2006 13:51
Mensajes: 385
Ubicación: mundo
baltasarq escribió:
Hola !
Ya veo que no es que haya mucho soporte para Kenshira, ni por parte del autor ni por nadie. Me hace replantearme su uso, la verdad. Quizás, leyendo el código fuente, sea capaz de sacar las cosas.

Pero por otra parte, tanto pasotismo y dejadex hacen que me plantee: ¿cuánto tiempo seguirá en pie la web? Al fin y al cabo, incluso aunque hagas un back-up de tus aventuras, si no tienes el motor que las hace correr (kenshira), porque se ha caído o por lo que sea, estás aviao.

Es una verdadera lástima.
La verdad es que la falta de costumbre y el poco uso que ha tenido Kenshira (solo Akbarr y tu en 5 años!) hacen que esté poco acostumbrado a meterme en el foro y responder dudas. Se que me has enviado un email, pero estaba de viaje, y luego vino la navidad y... bueno, excusas, que se me ha pasado completamente!!

Pero ya ves que aquí sigo, dedicando tiempo a este pozo de consumir horas que ha sido Kenshira para mí (no te puedes hacer idea ninguna de la de tiempo y energía personal que me ha consumido este proyecto, durante algunos meses resultó ser casi obsesivo y no me dejaba dormir...). Te pido disculpas publicamente, intentaré estar más al día en el foro.

De todas formas, en caso de dudas puedes enviarme un email diretamente a vilches ARROBA gmail PUNTO com, donde lo leeré al momento (es mi email personal y lo leo a diario en el móvil).

Sobre la web, ya lo indiqué en su momento cuando abrí el hilo: pienso dejarla indefinidamente mientras tenga dinero para pagarla, que de momento no me puedo quejar. De todas formas, Kenshira es Opensource y cualquiera puede montarse su propio servidor, ya sea para albergar una comunidad de desarrolladores (como lo tengo yo, donde permito múltiples autores y jugadores) o solo para permitir que se jueguen a tus aventuras (modo único autor, múltiples jugadores).

Y tambien existe Kenshira desktop, donde tu aventura se empaqueta en un horrible jar que debes ejecutar con tu JDK, te arranca un miniservidor web, te abre un navegador y puedes jugar a tu aventura. Da escalofríos verdad? ;)


Arriba
 Perfil  
 
NotaPublicado: 14 Ene 2013 02:01 
Desconectado
Guionista
Guionista
Avatar de Usuario

Registrado: 09 Oct 2006 13:51
Mensajes: 385
Ubicación: mundo
Algunas cosas interesantes:

- Documentación auto-generada a partir del código fuente:

http://www.kenshira.com/system/default/info-actions
http://www.kenshira.com/system/default/info-ambiguous (esto era para mi, ojo que marea...)

- También lo puedes usar en tu aventura:

http://www.kenshira.com/baltasarq/lanchoa/info-actions

- Mientras juegas, puedes curiosear el estado de tu partida:

http://www.kenshira.com/baltasarq/lanchoa/session


Arriba
 Perfil  
 
NotaPublicado: 14 Ene 2013 02:37 
Desconectado
Guionista
Guionista
Avatar de Usuario

Registrado: 09 Oct 2006 13:51
Mensajes: 385
Ubicación: mundo
baltasarq escribió:
Hola !

¿Hay alguna manera de poner "proa" como sinónimo de "norte"?
¿Es posible sustituirlo de manera que en el comando salidas aparezca "proa"?

Puedes crear una nueva salida llamada "proa" y no usar norte. Para ello primero tienes que crearla:
Código:
object A_proa:DireccionPropia
   nombre MS:proa
   sinonimos no       
endobject
Debes heredar de DireccionPropia en vez de Direccion para evitar que te diga "salidas disponibles: al proa". Con DireccionPropia el mensaje es simplemente: "proa".

Las salidas se pintan llamando al objeto por su nombre "al". Así que puedes redefinir los nombres "al" y "el" para que no muestren el artículo, y pinten simplemente el nombre como "a proa". Como tendrás más de una salida de este tipo, puedes crearte una clase que redefina el nombre de manera genérica y que todas hereden de ella:

Código:
class DireccionMaritima:Direccion
      def get.al,get.el: "a "+getName()
endclass

object A_proa:DireccionMaritima
   nombre MS:proa
   sinonimos no       
endobject

object A_popa:DireccionMaritima
   nombre MS:popa
   sinonimos no       
endobject

Después solo tienes que usarla como una salida más:
Código:
object Salon:Localidad
    nombre MS:Salón
    var a_proa = Salon
    var a_popa = Salon

También puedes redefinir el nombre de la salida por localidad y muchas cosas más, pero me tengo que empollar el código. La clave del asunto la tienes en:

- clases-Direccion.k, que es donde se definen las salidas (es un archivo muy corto)
- En el método mostrarSalidas() de la clase ObjetoReal (una megaclase que está ella sola en el archivo clases-ObjetoReal.k), que es el que se ejecuta al Mirar una localidad o poner x o salidas.
- En la acción Ir, cuyo código es este:

Código:
action Ir:AccionNormal (Direccion)
    ve|vuelve|camina|anda|corre|atraviesa|cruza|pasa? por|hacia? *
    entra|sal por *
    def hacer(): #actor.pnjMoverDireccion(#uno)
    def mensajeObjeto1Falta: "Debes especificar una dirección."
endaction

Y que como ves, ejecuta el método pnjMoverDireccion() que encontrarás en clases-Personaje.k

Este, a su vez, obtiene la dirección a partir de la salida definida en la estancia actual (si te metes dentro de una caja, la caja puede tener sus propias salidas, por eso se buscan en el objeto que contiene al actor), y esto se hace en el método getDestinoSalida() de la clase ObjetoReal.

Aquí verás como se buscan: debes definirlas creando variables en la localidad con el mismo nombre que la salida, pero todo en minúsculas y cuyo valor es el lugar de destino al que se moverá al actor de la acción (el jugador normalmente, pero los personajes también las pueden usar). Si quieres que la salida te lleve a un objeto pero ENCIMA de el (por defecto es dentro), tienes que hacerlo con esta sintaxis (recuerda que el objeto debe ser subible):

Código:
    var a_proa = {Mesa, "encima"}


Arriba
 Perfil  
 
NotaPublicado: 14 Ene 2013 02:42 
Desconectado
Guionista
Guionista
Avatar de Usuario

Registrado: 09 Oct 2006 13:51
Mensajes: 385
Ubicación: mundo
Último truco de la noche: puedes evaluar expresiones mientras juegas usando :eval, por ejemplo, puedes ejecutar

Código:
:eval #actor
:eval #jugador.accion(Mirar)
:eval Mesa.subible
:eval Mesa.subible = false
:eval #jugador.pnjMover(Mesa, "encima")

La última acción fallará porque has modificado el flag subible de la mesa, haciendo que sea false y por lo tanto no te dejará subirte. Tendrás que dejarlo como estaba con :eval Mesa.subible = true (o reiniciar la partida)


Arriba
 Perfil  
 
NotaPublicado: 14 Ene 2013 12:54 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 23 Mar 2010 20:11
Mensajes: 1141
Ubicación: Valencia
Un inciso...

Me he puesto a cotillear kenshira esta mañana y...

En Internet Explorer no funcionan las aventuras de Kenshira. El portal sí, pero las aventuras no. Da un error, aparentemente de javascript. He probado en IE8 (con win7) e IE10 (con win8).

La aventura "Regreso al Castillo" es la única que no devuelve un error, se ve que porque hace una comprobación de navegador al empezar y dice que IE no está soportado, que te descargues otro.

En IE10 el error que sale es createPrompt:InvalidCharacterError.
En IE8 sale en la barra de estado el error de javascript:
Código:
Mensaje: No se pudo completar la operación debido un error c00ce56e.
Línea: 5162
Carácter: 3
Código: 0
URI: http://www.kenshira.com/baltasarq/lanchoa/js/moo11/mootools-release-1.11.js

_________________
El humor existe para recordarnos que por muy alto que sea el trono en el que uno se siente, todo el mundo usa su culo para sentarse.


Arriba
 Perfil  
 
NotaPublicado: 14 Ene 2013 13:21 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

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

Gracias avilches, voy a ir probando estas cosas.
Deberías plantearte incluir estas en la documentación, tal cual, con HTML estático.

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
NotaPublicado: 14 Ene 2013 13:26 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

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

¿Cómo se hace para que, al mostrar la respuesta a tu acción, se evite el scroll lateral?
Me parece muy incómodo.
Quizás se podría poner algo del estilo de "enlaces=true", como "respuestaScroll=false"

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
NotaPublicado: 14 Ene 2013 13:43 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

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

avilches escribió:
La verdad es que la falta de costumbre y el poco uso que ha tenido Kenshira (solo Akbarr y tu en 5 años!) hacen que esté poco acostumbrado a meterme en el foro y responder dudas. Se que me has enviado un email, pero estaba de viaje, y luego vino la navidad y... bueno, excusas, que se me ha pasado completamente!!


De acuerdo, bueno, lo que quería realmente era que reaccionaras un poco... :-)

Citar:
Pero ya ves que aquí sigo, dedicando tiempo a este pozo de consumir horas que ha sido Kenshira para mí (no te puedes hacer idea ninguna de la de tiempo y energía personal que me ha consumido este proyecto, durante algunos meses resultó ser casi obsesivo y no me dejaba dormir...). Te pido disculpas publicamente, intentaré estar más al día en el foro.


Creo que Kenshira es un excelente sistema de desarrollo, pero plantéate que cualquier sistema que hagas, siempre que se use, claro, va a tener unos usuarios irritantes detrás, demandando documentación, extensiones y parches. Hay una historia budista relacionada con este tema: el hombre que se hacía un puente cada vez que tenía que cruzar el río, y lo destruía después, por no obligarse a sufrir su mantenimiento.

En su momento no lo supe apreciar bien del todo, aunque me llamó la atención la forma de trabajar que tiene. Ahora mismo, creo que es bastante más útil que I6Sp, aunque, bueno, eso son ideas mías. ¡Estoy deseando sacarle todo el jugo! No te desanimes porque no haya tenido aceptación, Inform tampoco la tuvo en su momento. La popularidad siempre viene tarde, y cuando menos te la esperas.

Citar:
Sobre la web, ya lo indiqué en su momento cuando abrí el hilo: pienso dejarla indefinidamente mientras tenga dinero para pagarla, que de momento no me puedo quejar. De todas formas, Kenshira es Opensource y cualquiera puede montarse su propio servidor, ya sea para albergar una comunidad de desarrolladores (como lo tengo yo, donde permito múltiples autores y jugadores) o solo para permitir que se jueguen a tus aventuras (modo único autor, múltiples jugadores).


Eso es interesante, pero supongo que por ejemplo no podría montar eso en mi página de la web del CAAD, sólo con "soltar" unos archivos. Además, creo que hasta cierto punto, al menos, es interesante que todo esté centralizado.

Por cierto, te aviso que, de los muchos editores que tienes, sólo el normal funciona, los Codepress no van y el editArea no visualiza el código fuente. Antes funcionaban, y hasta resaltaban la sintaxis...

Citar:
Y tambien existe Kenshira desktop, donde tu aventura se empaqueta en un horrible jar que debes ejecutar con tu JDK, te arranca un miniservidor web, te abre un navegador y puedes jugar a tu aventura. Da escalofríos verdad? ;)


Mmmm... lo veo meritorio por tu parte, pero no sé yo si merecerá la pena distribuir una aventura así...

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
NotaPublicado: 14 Ene 2013 22:47 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
La verdad es que comprendo bien a avilches porque es psicológicamente muy difícil seguir dedicando atención a un proyecto de este tipo, y no digamos ya documentar, si no se tiene feedback. Yo lo sé bien porque me pasa con AGE, cuando no hay nadie usándolo no tengo ganas de trabajar en él. Las mejoras de los últimos años, y la escritura de la documentación, viene de que había gente usándolo. Igual ahora que tú estás usando Kenshira avilches se anima también a documentar un poco :)

En ese sentido, aconsejo crear una wiki... no sólo ayuda a que otras personas aparte del autor colaboren en la documentación, sino que también ayuda al propio autor porque al ser muy fácil de actualizar puedes dedicar cinco o diez minutos que tengas muertos a añadirle algo, y así poco a poco va creciendo. A mí con AGE me ha dado muy buen resultado.

_________________
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: 15 Ene 2013 01:01 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 09 Sep 2004 18:24
Mensajes: 1444
joruiru escribió:
Un inciso...

Me he puesto a cotillear kenshira esta mañana y...

En Internet Explorer no funcionan las aventuras de Kenshira. El portal sí, pero las aventuras no. Da un error, aparentemente de javascript. He probado en IE8 (con win7) e IE10 (con win8).

La aventura "Regreso al Castillo" es la única que no devuelve un error, se ve que porque hace una comprobación de navegador al empezar y dice que IE no está soportado, que te descargues otro.

En IE10 el error que sale es createPrompt:InvalidCharacterError.
En IE8 sale en la barra de estado el error de javascript:

La verdad es... que sí y no. Como al final el HTML te lo puedes hacer tú mismo (y de hecho recomiendo a todo el mundo que sepa que se lo haga porque si no se pierde parte de la gracia), tu aventura no tiene por qué no funcionar en IE. Por lo menos en versiones modernillas, claro, que ya se sabe...

Pero bueno, es verdad que estaría bien que la plantilla por defecto funcionase en IE, a lo que iba es a que no es tan prioritario como pueda parecer.


Arriba
 Perfil  
 
NotaPublicado: 15 Ene 2013 13:17 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

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

Bueno, otro problemilla es que la template.html es compleja, y decir por ejemplo "voy a cambiar los títulos de las localidades en las que vas entrando", y hacerlo, es otra cosa.

Yo desde luego no soy desarrollador web, y un página tan compleja como esa (con código javascript por el medio) pues me resulta complicado modificarla.

Quizás los estilos principales se podrian sacar fuera, a un archivo css más simple.
Al fin y al cabo, no sólo lo van a utilizar expertos en HTML, CSS y javascript.

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
NotaPublicado: 15 Ene 2013 14:42 
Desconectado
Implementador
Implementador

Registrado: 13 Feb 2005 18:57
Mensajes: 1957
baltasarq escribió:
Citar:
Y tambien existe Kenshira desktop, donde tu aventura se empaqueta en un horrible jar que debes ejecutar con tu JDK, te arranca un miniservidor web, te abre un navegador y puedes jugar a tu aventura. Da escalofríos verdad? ;)


Mmmm... lo veo meritorio por tu parte, pero no sé yo si merecerá la pena distribuir una aventura así...

Mejor eso que nada, ¿no? Por muy fundamental que se considere poder jugar online, no lo es menos poder hacerlo offline.


Arriba
 Perfil  
 
NotaPublicado: 15 Ene 2013 19:24 
Desconectado
Guionista
Guionista
Avatar de Usuario

Registrado: 09 Oct 2006 13:51
Mensajes: 385
Ubicación: mundo
joruiru escribió:
Un inciso...
En Internet Explorer no funcionan las aventuras de Kenshira. El portal sí, pero las aventuras no. Da un error, aparentemente de javascript. He probado en IE8 (con win7) e IE10 (con win8).

La aventura "Regreso al Castillo" es la única que no devuelve un error, se ve que porque hace una comprobación de navegador al empezar y dice que IE no está soportado, que te descargues otro.

En IE10 el error que sale es createPrompt:InvalidCharacterError.
En IE8 sale en la barra de estado el error de javascript:
Código:
Mensaje: No se pudo completar la operación debido un error c00ce56e.
Línea: 5162
Carácter: 3
Código: 0
URI: http://www.kenshira.com/baltasarq/lanchoa/js/moo11/mootools-release-1.11.js


Pues vaya rollo, porque en el 2008 funcionaba y yo no he tocado nada desde entonces x'D
A ver si le echo un vistazo, pero me huele a que voy a tener que rehacerla con un javascript moderno (jquery o similar)... :(


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

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