CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 13 Dic 2017 08:27

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 25 mensajes ]  Ir a página 1, 2  Siguiente
Autor Mensaje
NotaPublicado: 21 Jun 2015 09:53 
Desconectado
Momio
Momio
Avatar de Usuario

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

He publicado una extensión de ngPAWS que permite tener 64 atributos para las localidades de la misma manera que los hay para los objetos. De ese modo una localidad puede ser marcada como "espaciosa", "pequeña", "peligrosa", "submarina", etc. y que determinadas acciones dependan de esos atributs.

https://github.com/Utodev/ngPAWS/tree/m ... attributes

La extensión requiere la beta 9, que aún no está publicada, aunque se puede usar si, como dice en las instrucciones, se usa "el método difícil" para inicializar las localidades, o si simplemente no se hace uso del condacto LINIT, y se inicializa todo con LSET, atributo por atributo.

La librería incluye condactos similares a los que hay para atributos de objeto, además del condacto LINIT que es el que mas o menos requiere la beta 9, que sirve para inicializar varios atributos a la vez:

- LCLEAR --> igual que OCLEAR
- LSET --> igual que OSET
- LNEG --> igual que ONEG
- LZERO --> igual que OZERO
- LNOTZERO --> igual que oNOTZERO

Las instrucciones las tenéis en el LEEME.TXT que podéis ver en el enlace anterior.

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


Arriba
 Perfil  
 
NotaPublicado: 28 Jun 2015 06:55 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 22 May 2004 10:50
Mensajes: 887
Es una idea estupenda para no tener colgando decenas de atributos y arrays. De este modo se pueden definir ahora áreas de juego, que son bastante útiles.

_________________
---
# S a i m a z o o m # http://www.aliensuavito.com


Arriba
 Perfil  
 
NotaPublicado: 29 Jun 2015 08:52 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
saimazoom escribió:
Es una idea estupenda para no tener colgando decenas de atributos y arrays. De este modo se pueden definir ahora áreas de juego, que son bastante útiles.


Claro, se pueden programar eventos que ocurran en "zonas peligrosas", se puede impedir el uso de ciertas armas en zonas marcadas como "de interior", se puede llevar un contador de oxígeno en zonas marcadas como "subacuáticas" o se puede hacer que el medallón del dios tal y cual solo se pueda usar en las localidades marcadas como "templo de tal y cual" :-)

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


Arriba
 Perfil  
 
NotaPublicado: 29 Jun 2015 19:29 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Por ahora lo estoy usando para marcar localidades como visitadas, en el proceso 1:

Código:
_ _
 lzero @38 aVisitado
 lset @38 aVisitado

También la marcaré para localidades donde hay objetos con descripciones comunes, como por ejemplo un bosque de varias localidades donde al examinar el árbol, la descripción sea común:

Código:
examinar arbol
 lnotzero @38 aBosque
 writeln "Los árboles de este bosque están todos arrasados."
 done


Y bastantes más utilidades que se pueden sacar.

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


Arriba
 Perfil  
 
NotaPublicado: 30 Jun 2015 09:39 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
edlobez escribió:
Por ahora lo estoy usando para marcar localidades como visitadas, en el proceso 1:

Código:
_ _
 lzero @38 aVisitado
 lset @38 aVisitado




En realidad el LZERO te sobra, no pasa nada por hacer LSET a algo que esté ya seteado. Es más, el tiempo computacional de la comprobación será probablemente mayor que el del seteo así que se pierde tiempo en cualquier caso. Pero vamos, esto es por ponerse ya muy finos, tu solución es perfectamente correcta :-)


Citar:
También la marcaré para localidades donde hay objetos con descripciones comunes, como por ejemplo un bosque de varias localidades donde al examinar el árbol, la descripción sea común:

Código:
examinar arbol
 lnotzero @38 aBosque
 writeln "Los árboles de este bosque están todos arrasados."
 done


Y bastantes más utilidades que se pueden sacar.


Sí, a esto es a lo que me refería con definir "zonas". Yo hasta ahora lo hacia precisamente con el condacto ZONE (que permite saber si estás en una localida cuyo número está entre dos valores), pero eso te obligaba a que la zona tuviera localidades con números consecutivos. Ahora con estos condactos es todo más sencillo.

La verdad es que estoy muy contento con la capacidad de expansión de ngPAWS. Aunque en teoría Superglús tiene la misma, el hecho de tener que ampliar usando ensamblador era un pequeño infierno que me daba pereza hasta a mi, mientras que esta librería de localidades, por ejemplo, no me llevó más de 15 minutos pensarla y hacerla.

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


Arriba
 Perfil  
 
NotaPublicado: 11 Jul 2015 07:01 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 22 May 2004 10:50
Mensajes: 887
¿Me puedes dejar la beta-9 en el dropbox o pasarme un enlace?. He probado a compilar y ejecutar en la beta 8, pero tiene un comportamiento muy extraño. La aventura arranca con el mensaje de abandonar, esto no me pasa en la beta 7. Le puedes echar un vistazo en el dropbox.

_________________
---
# S a i m a z o o m # http://www.aliensuavito.com


Arriba
 Perfil  
 
NotaPublicado: 12 Jul 2015 06:45 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 22 May 2004 10:50
Mensajes: 887
Uto, en la doc pone:

Código:
PUSH setno value => Add value to a stack
POP setno value  => Pops value from a stack (last in, first out)

QPUSH setno value => Add value to a queue
QPOP setno value  => Pops value from a queue (first in, first out)


¿En los POP/QPOP no sería 'value' realmente un flagno?.

_________________
---
# S a i m a z o o m # http://www.aliensuavito.com


Arriba
 Perfil  
 
NotaPublicado: 12 Jul 2015 12:48 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
saimazoom escribió:
Uto, en la doc pone:

Código:
PUSH setno value => Add value to a stack
POP setno value  => Pops value from a stack (last in, first out)

QPUSH setno value => Add value to a queue
QPOP setno value  => Pops value from a queue (first in, first out)


¿En los POP/QPOP no sería 'value' realmente un flagno?.


No, debería ser un valor, si quieres meter el valor de un flag pues haces @flagno. Eso permite hacer "fácilmente" cosas como crear un a cola con las localidades por las que se mueve un PSI en ruta fija, sin tener que andar haciendo LET y luego QPUSH.

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


Arriba
 Perfil  
 
NotaPublicado: 12 Jul 2015 12:50 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
saimazoom escribió:
¿Me puedes dejar la beta-9 en el dropbox o pasarme un enlace?. He probado a compilar y ejecutar en la beta 8, pero tiene un comportamiento muy extraño. La aventura arranca con el mensaje de abandonar, esto no me pasa en la beta 7. Le puedes echar un vistazo en el dropbox.


Te he puesto lo que va de la beta9 en ese dropbox, no es exactamente la beta 9 definitiva claro, esa estará con lo que tenga hecho cuando la publique :-)

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


Arriba
 Perfil  
 
NotaPublicado: 12 Jul 2015 14:45 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 22 May 2004 10:50
Mensajes: 887
Citar:
No, debería ser un valor, si quieres meter el valor de un flag pues haces @flagno. Eso permite hacer "fácilmente" cosas como crear un a cola con las localidades por las que se mueve un PSI en ruta fija, sin tener que andar haciendo LET y luego QPUSH.


¿Pero que sentido tiene hacer un pop a un valor?. Es lo que no veo, si hago

pop 3 100

y tengo un 66 en la parte superior de la pila ¿Qué hace con el 100?.

_________________
---
# S a i m a z o o m # http://www.aliensuavito.com


Arriba
 Perfil  
 
NotaPublicado: 12 Jul 2015 15:11 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
saimazoom escribió:
Citar:
No, debería ser un valor, si quieres meter el valor de un flag pues haces @flagno. Eso permite hacer "fácilmente" cosas como crear un a cola con las localidades por las que se mueve un PSI en ruta fija, sin tener que andar haciendo LET y luego QPUSH.


¿Pero que sentido tiene hacer un pop a un valor?. Es lo que no veo, si hago

pop 3 100

y tengo un 66 en la parte superior de la pila ¿Qué hace con el 100?.



Ah perdón, me he quedado con el PUSH y no he leído tu pregunta. Efectivamente el POP es a un flag, si está puesto como value en la doc, la doc está mal, lo miraré :-)

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


Arriba
 Perfil  
 
NotaPublicado: 12 Jul 2015 22:17 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Efectivamente estaba mal en la doc, lo he actualizado y subido a Github.

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


Arriba
 Perfil  
 
NotaPublicado: 19 Jul 2015 21:41 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 22 May 2004 10:50
Mensajes: 887
Me temo que la Beta 9 me da problemas similares a la Beta 8. En la consola de javascript me sale el siguiente error:

ReferenceError: getWriteMessage is not defined code.js:15875:7
TypeError: procno is null code.js:17626:5


Con Beta 7 el mismo código compila y funciona sin problemas. Le puedes echar un vistazo en el dropbox, pero saca antes una copia de seguridad del código por si acaso.

_________________
---
# S a i m a z o o m # http://www.aliensuavito.com


Arriba
 Perfil  
 
NotaPublicado: 20 Jul 2015 01:35 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
saimazoom escribió:
Me temo que la Beta 9 me da problemas similares a la Beta 8. En la consola de javascript me sale el siguiente error:

ReferenceError: getWriteMessage is not defined code.js:15875:7
TypeError: procno is null code.js:17626:5


Con Beta 7 el mismo código compila y funciona sin problemas. Le puedes echar un vistazo en el dropbox, pero saca antes una copia de seguridad del código por si acaso.


La probé el otro día, y como vi que funcionaba (sí, a mi me funciona perfectamente) pensé que ya lo habías arreglado. Estoy ejecutando el index.html de la carpeta "isla_ngpaws", y no me da ningún error, salvo que haya que hacer algo para llegar a ese error que ignoro :-)

De hecho, en el code.js de esa carpeta no hay ningún getWriteMessage en la linea 15875.

En cualquier caso, lo que si es cierto es que getWriteMessage ha desaparecido en la beta 8, porque se hizo todo el cambio en el modo de imprimir mensajes, que permite ahora que haya secuencias de escape en cosas como descripciones de objetos, o incluso en mensajes que son impresos con otra secuencia.

Lo que hay ahora es un getWriteMessageText() que hace algo parecido, y writeWriteMessage(), ambos los tienes en runtime.js por si quieres darle una vuelta, porque sospecho que lo que te falla es algún plugin tuyo que usa esa funcion desaparecida, porque yo en el código de la beta 9 no veo que sea llamada en ningún sitio.

Ya, es una puñeta hacer plugins sobre una beta que te cambia las funciones que usan los plugins, y trato de no hacerlo, pero en este caso la ventaja podía con cualquier inconveniente como el que ha ocurrido.

El segundo error no se de donde viene, es muy difícil decirlo sin ver el código :-)

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


Arriba
 Perfil  
 
NotaPublicado: 23 Jul 2015 05:54 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 22 May 2004 10:50
Mensajes: 887
Una pregunta sobre atributos, ¿en algún momento tienes pensado poder meter atributos que no sean bits?. Por ejemplo valores o cadenas de texto.

_________________
---
# S a i m a z o o m # http://www.aliensuavito.com


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