CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 20 Nov 2017 07:14

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 55 mensajes ]  Ir a página Anterior  1, 2, 3, 4  Siguiente
Autor Mensaje
NotaPublicado: 14 Ene 2015 15:13 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 13 Sep 2004 21:16
Mensajes: 602
Ubicación: Alginet - València
Otra duda, ¿está funcionando bien el condacto SWAP? Aparentemente no me ha funcionado en esta entrada, y no encuentro la descripción en la documentación (?)

Código:
VACIAR        FRASCO        NOUN2 SALCHICHA
                            CARRIED 13
                            PRESENT 17
                            ONOTZERO 13 33 ;ESTA ABIERTO
                            WRITE "Vacías el contenido del frasco sobre la salchicha.\n"
                            write "¡Con un leve destello el frasco desaparece!\n"
                            destroy 13
                            swap 17 18
                            done

_________________
Dwalin


Arriba
 Perfil  
 
NotaPublicado: 14 Ene 2015 21:15 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Dwalin escribió:
Otra duda, ¿está funcionando bien el condacto SWAP? Aparentemente no me ha funcionado en esta entrada, y no encuentro la descripción en la documentación (?)

Código:
VACIAR        FRASCO        NOUN2 SALCHICHA
                            CARRIED 13
                            PRESENT 17
                            ONOTZERO 13 33 ;ESTA ABIERTO
                            WRITE "Vacías el contenido del frasco sobre la salchicha.\n"
                            write "¡Con un leve destello el frasco desaparece!\n"
                            destroy 13
                            swap 17 18
                            done


Eres una máquina pillando bugs, o es que al ser de los primeros te tocan todos :D

Vuelve a bajar el condacts.js otra vez, que lo he parcheado ya.

También he añadido el condacto a la documentación, efectivamente me lo había saltado. A partir de ahora le llamaré "el condacto gafe".

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


Arriba
 Perfil  
 
NotaPublicado: 15 Ene 2015 10:39 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 23 Abr 2004 08:49
Mensajes: 2888
Ubicación: España (Galicia)
Pero Dwalin, usas cosas como "PRESENT 17", es decir, el id num. en lugar de un id textual?

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
NotaPublicado: 15 Ene 2015 12:00 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
baltasarq escribió:
Pero Dwalin, usas cosas como "PRESENT 17", es decir, el id num. en lugar de un id textual?


Imagino que no las usó en su día, y ahora es más difícil arreglarlo. Yo mismo al intentar portar por probar alguna de PAW, me he encontrado con la gran tarea que es intentar "txtpawsizar" un fuente que no estaba "txtpawsizado". Hasta el punto de abandonarlo por eso, ya no estoy preparado para los numeritos :-(

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


Arriba
 Perfil  
 
NotaPublicado: 15 Ene 2015 16:59 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 13 Sep 2004 21:16
Mensajes: 602
Ubicación: Alginet - València
Baltasar escribió:
Pero Dwalin, usas cosas como "PRESENT 17", es decir, el id num. en lugar de un id textual?


Como ya expliqué alguna vez, cuando en su día, allá en el 2005, empecé a programar Rudolphine, ni me leí el manual de Superglús, iba de memoria de lo que me acordaba del PAWS, por eso no utilicé el id textual sinó directamente los nº de objetos, localidades, etc. De hecho, en la primera localidad, incluso llegué a usar en algún examina la tabla de mensajes en lugar de WRITE "", todo muy retro :D

Si hiciero algo ahora supongo que sí lo usaría (la verdad es que estoy bastante cómodo con los números), pero no es el caso de la conversión, donde espero tocar lo menos posible de las fuentes originales :P

_________________
Dwalin


Arriba
 Perfil  
 
NotaPublicado: 15 Ene 2015 19:04 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

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

Puedo entender que para hacer el port toques el código lo menos posible, pero sencillamente no me cabe en la cabeza que te sientas cómodo usando ids numéricos, con todo lo que ello implica (llevar apuntado en una libreta qué es cada cosa, etc.) :?

Creo que simplemente no lo has usado y no te haces una idea. :oops:
Bueno, o eso, o yo es que no entiendo nada. :roll:

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
NotaPublicado: 16 Ene 2015 22:21 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 13 Sep 2004 21:16
Mensajes: 602
Ubicación: Alginet - València
Estoy intentando cambiar los atributos de al menos los objetos femeninos para que no me ponga "cojes el llave", pero sí que me compila con la definición de mis viejas fuentes:

/4 2 1 LLAVE _ 00000000000000000000000000000000 00000000000000000000000000000000

Pero con la nueva:

/4 2 1 LLAVE _ ATTR aFemale

Me da error de compilación:

'Syntax error (invalid identifier: aFemale)'

¿Qué escribo mal?

_________________
Dwalin


Arriba
 Perfil  
 
NotaPublicado: 16 Ene 2015 23:12 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Dwalin escribió:
Estoy intentando cambiar los atributos de al menos los objetos femeninos para que no me ponga "cojes el llave", pero sí que me compila con la definición de mis viejas fuentes:

/4 2 1 LLAVE _ 00000000000000000000000000000000 00000000000000000000000000000000

Pero con la nueva:

/4 2 1 LLAVE _ ATTR aFemale

Me da error de compilación:

'Syntax error (invalid identifier: aFemale)'

¿Qué escribo mal?


Probablemente te falten los #defines de los atirbutos, están al principio del todo de la libreria de inicio de ngPAWS

Código:
; Definiciones por defecto para atributos de objeto
#define const aLight = 0
#define const aWear = 1
#define const aContainer = 2
#define const aNPC  =3
#define const aConcealed = 4
#define const aEdible = 5
#define const aDrinkable = 6
#define const aEnterable = 7
#define const aFemale = 8
#define const aLockable = 9
#define const aLocked = 10
#define const aMale = 11
#define const aNeuter = 12
#define const aOpenable = 13
#define const aOpen = 14
#define const aPluralName = 15
#define const aTransparent = 16
#define const aScenery = 17
#define const aSupporter = 18
#define const aSwitchable = 19
#define const aOn = 20
#define const aStatic = 21

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


Arriba
 Perfil  
 
NotaPublicado: 20 Ene 2015 15:23 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 13 Sep 2004 21:16
Mensajes: 602
Ubicación: Alginet - València
Pues sí, en efecto era eso. :P

Estoy teniendo otro problema, del que no encuentro solución: cuando Rudolphine está mapeando el laberinto de las montañas, aparece un pirata como el de la Original y te puede robar alguno de los objetos que llevamos. Esto funciona bien en la versión publicada de Rudolphine, sin embargo no funciona ahora, y no encuentro el porqué, ¿puede que hayan cambiado las secuencias de paso de un proceso a otro??

El codigo fuente dice:

Proceso 2 (se ejecuta después de cada entrada):

Código:
_        _        atlt 18 ;es decir se estamos en las localidades 15,16 o 17
                  atgt 14
                  chance 15 ;tenemos un 15% de posibilidades de que salga el pirata
                  objat 254 73
                  gt 73 1
                  zero 87 ; y aun no hemos descubierto su guarida (cuando la descubrimos ya no vuelve a salir)
                  write "¡De repente tras un recodo del camino aparece el malvado pirata!\n"
                  let 89 1 ; comienza el robo
                  clear 88 ;ponemos el "contador" del doall a 0
                  clear 90 ;aun no nos ha robado nada
                  place 0 0 ;quitamos la vela de en medio para que no estorbe (no queremos que el pirata nos la robe!)
                  objat 254 73 ;miramos a ver cuantos objetos tenemos cogidos en este momento
                  ;write "El número total de objetos cogidos es: "
                  ;print 73
                  ;newline
                  doall 254 ;para todos los objetos cogidos


De aquí, pasaría a la tabla de respuestas, no?

Al inicio de esta tengo el código:

Código:
_        _        eq 89 1 ;el doall del pirata
                  process 5
                  done


Y de ahí pasaría al proceso 5:

Código:
;_        _       writeln "entramos en el Process 5"

_        _       plus 88 1 ;aumenta en 1 el contador del doall


_        _       notzero 73
                 ;write "Objeto llevados: "
                 ;print 73
                 newline
                 zero 90 ;aun no nos ha robado nada en esta ocasión
                 notsame 88 73
                 ;write "Vamos a ver que pasa con el objeto: _\n"
                 chance 20
                 place @51 22
                 write "¡El malvado pirata te roba _!\n"
                 let 90 1 ;el pirata nos ha robado snif snif
                 


_        _        ;si entra aquí es que el chance no ha tenido éxito
                 zero 90
                 notsame 88 73
                 ;write "Objeto: _ no ha sido robado por el pirata.\n"


_        _        same 88 73
                  notzero 90 ;y nos robó algo!
                  ;write "Estamos en el último objeto!\n"
                  write "El malvado pirata se marcha contento con su botín.\n"
                  ;write "Se acabó la fiesta, el doall y todo.\n"
                  place 0 254 ;le devolvemos la vela al jugador
                  clear 89
                  clear 88
                  done

_        _        same 88 73
                  ;write "Estamos en el último objeto!\n"
                  zero 90 ;y no nos robó nada
                  write "El pirata se marcha sin robarte nada, ¡has tenido suerte!\n"
                  ;write "Se acabó la fiesta, el doall y todo.\n"
                  place 0 254 ;le devolvemos la vela al jugador
                  clear 89
                  clear 88
                  done


Le he dado mil vueltas, pero algo se me escapa...

_________________
Dwalin


Arriba
 Perfil  
 
NotaPublicado: 20 Ene 2015 17:45 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Hola!

Veamos, según mi percepción actual de DOALL cuando haces un DOALL se repite el resto de la tabla en la que esté el DOALL desde la posición del DOALL hasta el final (si no hay un matching antes). Por ello es que el lugar natural para un DOALL es la tabla de respuestas.

Ahora bien, a lo largo de la vida de Paguagús-->Superglús->ngPAWS DOALL ha sufrido cambios. Recuerdo que Paguaglús hacia una implementación que ya no recuerdo como era, pero que no funcionaba del todo bien. Con Superglús hice una implementación en la que al menos esos DOALL de "COGER TODO" funcionaban. En algún momento Mastodon hizo su inPAWS, y al tratar de hacer target Superglús se encontró con diversas incompatibilidades de condactos, DOALL incluido. Total que se volvió a cambiar. ngPAWS implementa esta última.

En resumen, que no puede funcionar tal y como está, pero creo que lo que quieres hacer es ahora mucho más fácil en ngPAWS gracias a los condactos sharp, condactos colon y los bloques de código.

Se trata de que el pirata se lleve uno o más objetos, y no se lleve la vela, pues bien, creo que poner esto en el proceso 2 arregla el problema:

Código:
_ _
 ATLT  18
 ATGT 14
 CHANCE 15
 WRITELN "¡De repente tras un recodo del camino aparece el malvado pirata!"
 LET fObjetoActual 1  ; Empiezo por el 1 para que la vela no se tenga en cuenta
 CLEAR fContadorObjetosRobados
 LE: fObjetoActual 17                               ;<-------- 17 es el numero del último objeto, cambiar por el que corresponda
 {
   CARRIED# @fObjetoActual CHANCE# 20
   {
        COPYFF fObjetoActual 51
        WRITELN "¡El malvado pirata te roba {OREF}!"
        PLACE  @fObjetoActual lGuaridaPirata
        PLUS fContadorObjetosRobados 1
   }
 PLUS fObjetoActual 1
 }
 ZERO# fContadorObjetosRobados WRITELN "El pirata se marcha sin robarte nada, ¡has tenido suerte!"
 NOTZERO # fContadorObjetosRobados WRITELN "El malvado pirata se marcha contento con su botín."



Explicación resumida:

Si estamos en la localidad adecuada y se cumple el CHANCE 15 de que aparezca el pirata empezamos un bucle por todos los objetos, desde el 1 (el 0 nos lo saltamos adrede) hasta el 17 (en el ejemplo, puedes poner el número del último objeto de tu aventura ahí, o el último que quieras que pueda robar).

El bucle lo hace el " LE: fObjetoActual 17" que viene a ser, mientras el fObjetoActual valga menos o igual que 17, haz lo que hay dentro de las llaves.

Dentro de las llaves, lo que hay dos comprobaciones con sharp, de que el objeto está llevado, y de que ademas ocurre el chance 20 de que se lo lleven. Si ambas cosas son ciertas, hace lo que hay entre el bloque de llaves de más dentro (basicamente escribir que el pirata se lleva el objeto, ponerlo en la guarida, e incrementar el contador de objetos que se ha llevado).

Al final de bucle sumamos 1 al fObjetoActual para volver justo debajo del LE: y seguir con el objeto 2, y asi sucesivamente hasta el 17

Al salir del bucle según haya o no haya robado algo, ponemos un mensaje.

Es un buen ejemplo de como con estas estructuras no hace falta DOALL en algunos casos.

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


Arriba
 Perfil  
 
NotaPublicado: 21 Ene 2015 15:00 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 13 Sep 2004 21:16
Mensajes: 602
Ubicación: Alginet - València
Uto escribió:
Ahora bien, a lo largo de la vida de Paguagús-->Superglús->ngPAWS DOALL ha sufrido cambios. Recuerdo que Paguaglús hacia una implementación que ya no recuerdo como era, pero que no funcionaba del todo bien. Con Superglús hice una implementación en la que al menos esos DOALL de "COGER TODO" funcionaban. En algún momento Mastodon hizo su inPAWS, y al tratar de hacer target Superglús se encontró con diversas incompatibilidades de condactos, DOALL incluido. Total que se volvió a cambiar. ngPAWS implementa esta última


Por lo que estoy viendo, yo creo que en Rudolphine original DOALL te llevaba al inicio de la tabla de respuestas, porque estoy teniendo que cambiar de lugar algunas entradas que afectan a situaciones DEJAR TODO y cosas así (por ejemplo, para que no se pueda dejar la vela o el paraguas), que en la versión publicada iban OK.

Por otro lado y sabiendo eso, como soy muy cabezota, estoy intentando hacer funcionar el DOALL del pirata tal como está ahora. Si al final no puedo, adoptaré tu solución, la cual veo muy interesante, pero de momento voy a intentarlo por mantener la coherencia de las fuentes.

El caso es que me da el siguiente error en la consola:

Uncaught SyntaxError: Undefined label 'p002e0025' en la línea 22773 del rudolphine.js

que es:

if (!CNDchance(15)) break p002e0025;

_________________
Dwalin


Arriba
 Perfil  
 
NotaPublicado: 21 Ene 2015 15:51 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Dwalin escribió:
Uto escribió:
Ahora bien, a lo largo de la vida de Paguagús-->Superglús->ngPAWS DOALL ha sufrido cambios. Recuerdo que Paguaglús hacia una implementación que ya no recuerdo como era, pero que no funcionaba del todo bien. Con Superglús hice una implementación en la que al menos esos DOALL de "COGER TODO" funcionaban. En algún momento Mastodon hizo su inPAWS, y al tratar de hacer target Superglús se encontró con diversas incompatibilidades de condactos, DOALL incluido. Total que se volvió a cambiar. ngPAWS implementa esta última


Por lo que estoy viendo, yo creo que en Rudolphine original DOALL te llevaba al inicio de la tabla de respuestas, porque estoy teniendo que cambiar de lugar algunas entradas que afectan a situaciones DEJAR TODO y cosas así (por ejemplo, para que no se pueda dejar la vela o el paraguas), que en la versión publicada iban OK.

Por otro lado y sabiendo eso, como soy muy cabezota, estoy intentando hacer funcionar el DOALL del pirata tal como está ahora. Si al final no puedo, adoptaré tu solución, la cual veo muy interesante, pero de momento voy a intentarlo por mantener la coherencia de las fuentes.

El caso es que me da el siguiente error en la consola:

Uncaught SyntaxError: Undefined label 'p002e0025' en la línea 22773 del rudolphine.js

que es:

if (!CNDchance(15)) break p002e0025;



Puedes pegar unas cuantas líneas por debajo y por encima de esas, o pasarme el fuente para compilarlo yo?

Solo con la línea no me da contexto para saber que pasa.

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


Arriba
 Perfil  
 
NotaPublicado: 28 Ene 2015 02:29 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Uto escribió:
Puedes pegar unas cuantas líneas por debajo y por encima de esas, o pasarme el fuente para compilarlo yo?

Solo con la línea no me da contexto para saber que pasa.


Otra opción es que me pases el .js generado por ngpaws, para probar qué pasa.

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


Arriba
 Perfil  
 
NotaPublicado: 28 Ene 2015 10:20 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 13 Sep 2004 21:16
Mensajes: 602
Ubicación: Alginet - València
Lo tengo un poco parado ahora mismo por un pico de faena, pero en cuanto pueda lo retomo y te envío (he estado haciendo algunas pruebas e incluso se queda colgada la aventura).

_________________
Dwalin


Arriba
 Perfil  
 
NotaPublicado: 28 Ene 2015 10:40 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Dwalin escribió:
Lo tengo un poco parado ahora mismo por un pico de faena, pero en cuanto pueda lo retomo y te envío (he estado haciendo algunas pruebas e incluso se queda colgada la aventura).



Sí, dándote ese error parece claro que el compilador genera un código incorrecto, pero es algo que es muy dificil examinar por mi parte sin ver el fuente original y compilarlo yo mismo, para saber que circunstancia no prevista por mí está llevando a generar un código que no es correcto (no debería haber un break a una etiqueta que no existe).

Probablemente haya algún lío con esos DOALL, pero tengo que ver como. Lo ideal sería que subieras el fuente a algún sitio tipo dropbox o similar y me pasaras el link por privado, así yo compilo lo mismo y veo de donde viene el problema pudiendo ver el orígen.

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


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 55 mensajes ]  Ir a página Anterior  1, 2, 3, 4  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 1 invitado


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