CAAD
http://foro.caad.es/

Nueva extension atributos de localidad para ngPAWS
http://foro.caad.es/viewtopic.php?f=6&t=5842
Página 1 de 2

Autor:  Uto [ 21 Jun 2015 09:53 ]
Asunto:  Nueva extension atributos de localidad para ngPAWS

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 ... ibutes_lib

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.

Autor:  saimazoom [ 28 Jun 2015 06:55 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

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.

Autor:  Uto [ 29 Jun 2015 08:52 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

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" :-)

Autor:  edlobez [ 29 Jun 2015 19:29 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

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.

Autor:  Uto [ 30 Jun 2015 09:39 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

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.

Autor:  saimazoom [ 11 Jul 2015 07:01 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

¿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.

Autor:  saimazoom [ 12 Jul 2015 06:45 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

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?.

Autor:  Uto [ 12 Jul 2015 12:48 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

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.

Autor:  Uto [ 12 Jul 2015 12:50 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

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 :-)

Autor:  saimazoom [ 12 Jul 2015 14:45 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

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?.

Autor:  Uto [ 12 Jul 2015 15:11 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

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é :-)

Autor:  Uto [ 12 Jul 2015 22:17 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

Efectivamente estaba mal en la doc, lo he actualizado y subido a Github.

Autor:  saimazoom [ 19 Jul 2015 21:41 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

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.

Autor:  Uto [ 20 Jul 2015 01:35 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

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 :-)

Autor:  saimazoom [ 23 Jul 2015 05:54 ]
Asunto:  Re: Nueva extension atributos de localidad para ngPAWS

Una pregunta sobre atributos, ¿en algún momento tienes pensado poder meter atributos que no sean bits?. Por ejemplo valores o cadenas de texto.

Página 1 de 2 Todos los horarios son UTC + 1 hora
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/