Página 6 de 37

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Dom, 23 Feb 2014, 13:27
por Nightwolf
Bueno, he conseguido finalizar la primera partida. Todos los scripts en su sitio funcionando como deben ser :) Queda aún lo más trabajoso, que es afinar el juego, y empezar a dar más detalle a los gráficos. No diría que no si algún maestro quisiera echar una manilla jeje.

Bueno, pongo una captura que no he llegado a poner nada todavía como momento de celebración:

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Dom, 23 Feb 2014, 14:37
por Nightwolf
Una cosa curiosa

Si hago:

$this->bbcode_second_pass_code('', 'ENTERING SCREEN 23
IF TRUE
THEN
INC OBJECTS 5
END
END')

El resultado al entrar en esa pantalla (haciendo warp desde el inicio del juego) No es 5 sino 10. Es decir, duplica el número de objetos, se ponga el que se ponga.

Otra sugerencia

IF OBJECT_COUNT ¿podría beneficiarse de operaciones tipo <> Porque solo tiene = :(

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Dom, 23 Feb 2014, 15:41
por na_th_an
$this->bbcode_second_pass_quote('Nightwolf', 'U')na cosa curiosa

Si hago:

$this->bbcode_second_pass_code('', 'ENTERING SCREEN 23
IF TRUE
THEN
INC OBJECTS 5
END
END')

El resultado al entrar en esa pantalla (haciendo warp desde el inicio del juego) No es 5 sino 10. Es decir, duplica el número de objetos, se ponga el que se ponga.


Esto es raro. A menos que haya por ahí algo raro que haga que se ejecute esa cláusula dos veces, no debería pasar. De todos modos, algo así deberías protegerlo con un flag (para que sólo pase una vez). Prueba a poner esto:

$this->bbcode_second_pass_code('', 'ENTERING SCREEN 23
IF FLAG 7 = 0
THEN
INC OBJECTS 5
SET FLAG 7 = 1
END
END')

Y prueba si pasa lo mismo (cambia 7 por un flag que tengas libre) y así sabemos si hay un fallo en el intérprete, o es que hay algo que está haciendo que se ejecute dos veces esa cláusula (por depurar).

Sobre lo otro, las cosas del scripting se fueron añadiendo a medida que nos fueron haciendo falta. Me apunto lo que quieres a ver si me da tiempo a hacer una revisión de msc pronto con un par de cosas más.

Hasta entonces, puedes hacer algo así... dar un giro:

$this->bbcode_second_pass_code('', 'ENTERING SCREEN x
IF TRUE
THEN
SET FLAG f = 0
END

IF OBJECTS_COUNT = n
THEN
SET FLAG f = 1
END

...
')

A partir de ahí puedes usar el flag "f" (uno que tengas libre) para saber si OBJECTS_COUNT vale "n" o no. Si el FLAG f vale 0, esto equivale a OBJECTS_COUNT <> n.

Otra sugerencia

IF OBJECT_COUNT ¿podría beneficiarse de operaciones tipo <> Porque solo tiene = :([/quote]

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Dom, 23 Feb 2014, 18:20
por Nightwolf
Gracias Na_th_an.

Lo que hice hecho fue lo siguiente, de esta forma solo da 5. Debe haber un problema con la ejecución al principio que lo lanza por dos veces :S

$this->bbcode_second_pass_code('', '
IF TRUE
THEN
INC OBJECTS 5
END
')

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Dom, 23 Feb 2014, 20:42
por na_th_an
Ponme el script completo. Es probable que haya algún fallo por otro sitio que está haciendo que el resto haga cosas raras.

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Dom, 23 Feb 2014, 21:10
por Nightwolf
Ok, subo el script. :)

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 07:41
por na_th_an
Ahora le echo un vistazo.

Veo que estás usando "Items" :D Interesante, yo jamás los había usado :)

Están ahí por el diseño inicial que hice del scripting, pero luego nunca los usé y no sé si funcionan :lol:

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 07:45
por na_th_an
He visto algo. En la pantalla 14 tienes un IF anidado. Es probable que a partir de ahí el compilador se vuelva completamente loco :D

$this->bbcode_second_pass_code('', '//
// PANTALLA 14 - LA CUEVA DONDE SE USA LA DINAMITA
//
ENTERING SCREEN 14
# Pintamos los bloques si no han sido volados
IF TRUE
THEN
IF FLAG 7 = 0
THEN
SET_FIRE_ZONE 112, 48, 128, 80
SET TILE (12,9)= 22
SET TILE (13,9)= 22
END
IF FLAG 7 > 0
THEN
//SET_FIRE_ZONE 112, 48, 128, 80
SET TILE (12,9)= 13
SET TILE (13,9)= 13
END

END
END')

Debería ser:

$this->bbcode_second_pass_code('', 'ENTERING SCREEN 14
# Pintamos los bloques si no han sido volados
IF FLAG 7 = 0
THEN
SET_FIRE_ZONE 112, 48, 128, 80
SET TILE (12,9)= 22
SET TILE (13,9)= 22
END

IF FLAG 7 > 0
THEN
//SET_FIRE_ZONE 112, 48, 128, 80
SET TILE (12,9)= 13
SET TILE (13,9)= 13
END
END')

Te lo corrijo y sigo.

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 08:01
por na_th_an
Dos cosas:

1.- ¡Vaya scriptazo! Este juego va a molar :D :boots: :boots: :boots: :boots:
2.- Según veo, el INC OBJECTS 5 lo has puesto para probar y ganar del tirón ¿no? Yo no veo más fallos a partir del que te he dicho, y tampoco veo nada en el código que genera el script que indique un bug en el intérprete de bytecode o en el compilador. Si con lo que he cambiado no se soluciona, sinceramente, no sé que está pasando :lol:

Si no te funciona con los cambios, mientras lo miro más despacio, prueba el tema comentando la comprobación:

$this->bbcode_second_pass_code('', ' // PUERTA DE LA DERECHA -> PARA GANAR
IF PLAYER_TOUCHES 10,7
#IF OBJECT_COUNT = 5
THEN
WIN
END')

(a menos que estés usando el INC OBJECTS 5 para otra cosa, pero creo que lo estás usando para eso porque si no el código que viene justo después no tendría sentido :D)

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 10:36
por Nightwolf
Gracias Na_th_an jeje :)

Sí, lo de poner los objetos a 5 era una prueba para ver si funcionaba lo del final. Y es cuando me di cuenta de que me daba el doble ^^

Cachis, sabía que había algo anidado todavía. Es una maldita costumbre jeje (anda que no se me va veces también AND XD)

Pues nada, esta tarde lo corrijo y ya te digo.

Ya tengo la parte del inventario que muestra los objetos que vas consiguiendo y los deja en la pantalla. También tengo el hueco para la muesca que pondré debajo para indicar cual es el objeto activo. (El cual no es más que un PRINT_TILE_AT si tenemos el objeto)

Lo único que queda por saber es mediante C, cómo implementar una nueva tecla, y que esa tecla mueva un flag. Y dependiendo de ese flag, pinta debajo del inventario, que será el objeto activo. (Que bien podría ser 1 para decrementar el flag y 2 para incrementarlo)

Querría usar digamos el flag 20 para ello. ¿Se puede hacer mediante extern o sería tocar ya definiciones, el loop, etc?

Si consigo implementar ésto, toda la lógica del juego estaría completado :)