Hola !
Eliuk Blau escribió:
baltasarq escribió:
Ya, Eliuk, también tendría que probarlo, pero me temo que es precisamente esa rutina la que está cascando, ¿no?
Si es la rutina que usa la librería...
No, porque tú estás usando tu doInv() para realizar el listado. InvSub() [que es la de la librería, ante la acción ##Inv] debería internamente llamar a WriteListFrom(). [Basicamente, cualquier parte en que se deban listar objetos (por ejemplo, los contenedores transparentes) la librería usa la rutina estandar WriteListFrom()].
Intenta modificar tu código de doInv() para que llame a WriteListFrom() para la generación de la lista. Esta rutina simplemente imprime una lista de objetos contenidos en otro, usando formateos especiales y unas cuantas comprobaciones para (idealmente) no cascar. Fuera de eso, no hace nada más extraordinario.

A ver, yo no sé si nos entendemos: si hago mi doInv() es porque el inventario normal no me funciona, que es el que usa la función writeListFrom().
En cualquier caso, como no me costaba nada probar, lo he hecho, y los resultados son un poco los esperados:
Código:
writeListFrom( child( player ), ENGLISH_BIT );
Funciona correctamente, porque no entra en ningún detalle.
Código:
writeListFrom( child( player ), ENGLISH_BIT | PARTINV_BIT);
Funciona correctamente, pero sospecho que es así porque sólo indica entre paréntesis, de las gafas, que están alumbrando.
Código:
writeListFrom( child( player ), ENGLISH_BIT | FULLINV_BIT);
Funciona incorrectamente, supongo que debe ser el inventario por defecto.
Aún así, he modificado mi función doInv() para utilizar el segundo formato de writeListFrom(), ya que oye, si nos da esta función la librería, pues queda mejor así. Quizás era esto a lo que te referías, Eliuk, a que quedaría mejor con esta función.
Es una pena que el inventario por defecto no es parametrizable, es decir, que estés obligado a crearte una rutina para llamar a writeListFrom con los parámetros que tu quieres. La verdad es que me gusta mucho más como queda con ENGLISH_BIT (es decir, formando una frase) que la lista de siempre.