CAAD
http://foro.caad.es/

Desaparecen objetos
http://foro.caad.es/viewtopic.php?f=6&t=6057
Página 1 de 1

Autor:  edlobez [ 04 Jul 2016 18:17 ]
Asunto:  Desaparecen objetos

Hola,

Bueno ya pregunto porqué estoy un poco desesperado, creo que me he bloqueado y necesitaría un empuje para ver donde está el fallo. El caso es que en una localidad en concreto no parecen los objetos de dejo, hasta que no dejo dos objetos y se muestran de forma incorrecta.
La localidad es la numerada 3, en la cual no tengo implementada ninguna acción, es decir, ninguna acción del tipo:

Código:
ex _
 at 3
 ******
 done


que pueda bloquear o influir sobre alguna acción en esa localidad. Ejemplo de lo que digo;

Spoiler: Mostrar
¡Herberrrrt!, está dentro de una enorme olla. Se lo quieren zampar. No puedo aproximarme a él, dos peaaazos de leones uno a cada lado están custodiando la olla.
Puedes ver: Aquí está Herbert.
> i
Llevas:
unas chancletas de playa
la pinza del cangrejo
> soltar pinzas
Dejas la pinza del cangrejo.
> i
Llevas:
unas chancletas de playa
> m
¡Herberrrrt!, está dentro de una enorme olla. Se lo quieren zampar. No puedo aproximarme a él, dos peaaazos de leones uno a cada lado están custodiando la olla.
Aquí está Herbert. ***** NO SE MUESTRAN LAS PINZAS *****
> soltar chanclas
Dejas las chancletas de playa.
> i
Llevas:
ningún objeto.

> m
¡Herberrrrt!, está dentro de una enorme olla. Se lo quieren zampar. No puedo aproximarme a él, dos peaaazos de leones uno a cada lado están custodiando la olla.
Puedes ver: unas chancletas de playa.
la pinza del cangrejoAquí está Herbert. **** AHORA SI SE MUESTRAN LAS PINZAS LAS CHANCLAS PERO MAL ***


Me pasan con todos los objetos, no sólo con eso que muestro en el ejemplo.

Se que así, por lo que explico es difícil... ¿alguna idea de dónde puedo mirar?

Edité el txp con una búsqueda "at 3" para revisar que no se me halla colado alguna acción esa localidad en algún punto, pero no encuentra nada.

Autor:  Uto [ 05 Jul 2016 09:05 ]
Asunto:  Re: Desaparecen objetos

Pues es difícil de ver lo que me dices. En teoría el listado de objetos de localidad se hace desde una entrada que hay en el proceso 1 en la librería por defecto:

Código:
_        _       
 ISLIGHT
 LISTOBJ                        ;Lista los objetos
 LISTNPC @38                    ;Lista las personas 


Como ves, la única condición es que haya luz en la localidad, pero es que si no hay luz, se muestra la descripción de localidad "Está muy oscuro",por lo que salvo que haya algo muy raro que hace que el flag 0 (que indica si hay luz en una localidad) se ponga a un valor distinto de cero, no tiene ningún sentido que no liste.

Para empezar te diría que hagas una prueba, en esa misma entrada y después del ISLIGHT pon un WRITE "Prueba". El texto "Prueba" debería salir en toda las localidades. Vete a la 3 y si sale y luego no lista objetos el problema lo tenemos en LISTOBJ. Si no sale lo tenemos en el ISLIGHT.

Si el problema es del LISTOBJ saca la consola Javascript (F12 en Chrome, creo que en Chromium también) y mira a ver si sale algún error de debug, porque es muy raro. Si el problema es el ISLIGHT, habrá que ver qué está haciendo que el flag 0 cambie de valor. Descartanto una asignación directa ("LET 0 10" por ejemplo) puede que haya algo en el código que haga que se le cambie el valor, quizá una indirección errónea en un COPYFF o LET. ¿has tocado para algo el código de soltar? ¿Puede haber algo que toque el flag 0 en el proceso 2?

Edito:

¿Si dejas esos mismos objetos en otra localidad no pasa nada raro?

Autor:  dddddd [ 05 Jul 2016 12:46 ]
Asunto:  Re: Desaparecen objetos

Uto escribió:
Si el problema es el ISLIGHT, habrá que ver qué está haciendo que el flag 0 cambie de valor. Descartanto una asignación directa ("LET 0 10" por ejemplo) puede que haya algo en el código que haga que se le cambie el valor, quizá una indirección errónea en un COPYFF o LET.

Por lanzar una posibilidad, casi hablar por hablar, pero...

¿Es posible que se esté haciendo un LET con una variable de preprocesador que no exista y, por lo tanto, se sustituya por cero?

Digamos, que LET fErrata 10 se convierta en LET 0 10

Autor:  edlobez [ 05 Jul 2016 15:35 ]
Asunto:  Re: Desaparecen objetos

A base de ir probando versiónes anteriores, las cuales voy grabando por fecha y hora, he cazado el fallo.
Empezó a fallar cuando creé el objeto "leon", el cual está en la localidad que desaparecen los objetos, de tal forma:

Código:
/33   3        1        leon        _           ATTR aMale aConcealed aScenery aEnfadado


Al mezclar los atributos "aConcealed" y "aScenery" es cuando ocurre el fallo, cada uno por separado funciona todo ok.

https://github.com/Utodev/ngPAWS/wiki/A ... e%20objeto

Código:
- aConcealed (el objeto está oculto, por lo que no será listado por LISTAT, LISTOBJ o LISTNPC, pero cualquier otro condacto como PRESENT o ABSENT lo detectará). Tampoco será tenido en cuanta por los bucles DOALL.
- aScenery (en este momento no hay diferencia entre aScenery y aConcealed)


He dejado dicho objeto sólo con el atributo "aScenery" y todo perfecto.

Que se me había colado un "LET" por algún punto asignando a una variable inexistente algún valor, es lo que pensaba que iba a cazar, no me imaginaba que fuese esto de los atributos.

Gracias por la respuestas!

Autor:  Uto [ 05 Jul 2016 20:28 ]
Asunto:  Re: Desaparecen objetos

edlobez escribió:
A base de ir probando versiónes anteriores, las cuales voy grabando por fecha y hora, he cazado el fallo.
Empezó a fallar cuando creé el objeto "leon", el cual está en la localidad que desaparecen los objetos, de tal forma:

Código:
/33   3        1        leon        _           ATTR aMale aConcealed aScenery aEnfadado


Al mezclar los atributos "aConcealed" y "aScenery" es cuando ocurre el fallo, cada uno por separado funciona todo ok.

https://github.com/Utodev/ngPAWS/wiki/A ... e%20objeto

Código:
- aConcealed (el objeto está oculto, por lo que no será listado por LISTAT, LISTOBJ o LISTNPC, pero cualquier otro condacto como PRESENT o ABSENT lo detectará). Tampoco será tenido en cuanta por los bucles DOALL.
- aScenery (en este momento no hay diferencia entre aScenery y aConcealed)


He dejado dicho objeto sólo con el atributo "aScenery" y todo perfecto.

Que se me había colado un "LET" por algún punto asignando a una variable inexistente algún valor, es lo que pensaba que iba a cazar, no me imaginaba que fuese esto de los atributos.

Gracias por la respuestas!


Hummm... no debería pasar nada por tener ambos atributos en cualquier caso, así que supongo que hay algún bug de ngpaws por ahí. Le echaré un ojo :-)

Autor:  Uto [ 05 Jul 2016 21:37 ]
Asunto:  Re: Desaparecen objetos

Efectivamente había un bug: a la hora de listar objetos el sistema sacaba la cantidad de objetos de la localidad a buscar, le descontaba los que eran concealed, y luego le descontaba los que eran scenery. Es decir, ese león tuyo era descontado dos veces, lo cual provocaba falsos cálculos y todas esas cosas raras que te pasaban.

He corregido el código y lo he subido a GitHub, pero como también se evita dejando un solo atributo pues tampoco hace falta que te bajes nada. Gracias por encontrar un bug más :-)

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