qna_rh
Thread Id: 29974
Thread Name: Problema con un script de nivel
#0
Yito 29233
El problema lo tengo en un script de tipo 2, donde para no repetirlo mas, pongo la variable en setvar y el valor cambiado vs el que tengo en AM.

ej

..
..
..
setvar 0x7FFF 0x1
..

..
..

En Advance map tengo Flag: 7FFF Value: 0000

aun en estas condiciones, el script sigue repitiendose... he hecho algo mal o omiti algun paso?

gracias de antemano.
#1
Tito Sayer301 26309
Prueba usando una variable diferente:
Yo te recomiendo de la 40FF para abajo, me las recomendo Javi en su dia y nunca me han dado problemas.
#2
Yito 29233


Gracias viejo.

PD: Por cierto [MENTION=26309]Tito Sayer301[/MENTION], Se usa de 40FF hacia abajo... (hasta que punto exactamente? 0000?)
#3
PokePika 29340
Yo uso de la 3800 hasta la 40FF y no he tenido ningún problema.
#4
Yito 29233
La pregunta que tengo ahora es relacionada al mismo script de nivel tipo 2 pero, es en otro punto

ahora mismo ando preparando un script de nivel antes del combate con un entrenador en especial... Quiero que ese combate sea solamente usando 3 pokemon. Para eso estoy usando el comando "countpokemon" y el compare LASTRESULT 0x3

el problema es que no se ejecuta la continuacion (tanto si tengo los tres en el equipo, como el otro si no los tengo.)

El script va asi:

...
...
...
msgbox @ok 0x6
Countpokemon
Compare LASTRESULT 0x3
if 0x1 goto @battle
If 0x0 goto @nolleva3
setvar 0x40FF 0x2
release
end

#org @nolleva3
msgbox @changeit 0x6
release
end

#org @battle
msgbox @goin 0x6
release
end

#org @changeit
(texto de "no lleva")

#org @goin
(texto despues del compare. Llevas los tres pokes y la batalla comienza)

#org @ok
(texto antes del compare)
...
...
...

#5
J.com 12785
Iniciado por Yito
La pregunta que tengo ahora es relacionada al mismo script de nivel tipo 2 pero, es en otro punto

ahora mismo ando preparando un script de nivel antes del combate con un entrenador en especial... Quiero que ese combate sea solamente usando 3 pokemon. Para eso estoy usando el comando "countpokemon" y el compare LASTRESULT 0x3

el problema es que no se ejecuta la continuacion (tanto si tengo los tres en el equipo, como el otro si no los tengo.)

El script va asi:

[QUOTE]...
...
...
msgbox @ok 0x6
Countpokemon
Compare LASTRESULT 0x3
if 0x1 goto @battle
If 0x0 goto @nolleva3
setvar 0x40FF 0x2
release
end

#org @nolleva3
msgbox @changeit 0x6
release
end

#org @battle
msgbox @goin 0x6
release
end

#org @changeit
(texto de "no lleva")

#org @goin
(texto despues del compare. Llevas los tres pokes y la batalla comienza)

#org @ok
(texto antes del compare)
...
...
...
[/QUOTE]

No es "compare LASTRESULT 0x3" es "0x1"
Y el "if 0x0 goto nolleva3" no hace falta que lo pongas, ya que el comando que hay antes es para dirigirte a X script si TIENES los 3 pokes, si no los tienes el script simplemente continua hacia abajo.
#6
Javi4315♪ 13374
En realidad si es 0x3, está comprobando si tiene 3 pokémon en el equipo. El comando countpokemon devuelve el número de pokémon a la variable LASTRESULT, por tanto, tendrás que comparar el valor de la variable con el número que quieras, en este caso 3.

El problema es que el "if" no está bien planteado. Empezando porque 0x0 no es "diferente de", sino "menor que". Para comprobar que sea diferente se utiliza 0x5. Pero es una tontería hacerlo si ya estás comprobando que es igual (si no es igual, evidentemente va a ser diferente).

msgbox @ok 0x6
Countpokemon
Compare LASTRESULT 0x3
if 0x1 goto @battle
If 0x0 goto @nolleva3
(lo que pasa si no llevas los 3 pokes)
end

#7
J.com 12785
Iniciado por Javi4315♪
En realidad si es 0x3, está comprobando si tiene 3 pokémon en el equipo. El comando countpokemon devuelve el número de pokémon a la variable LASTRESULT, por tanto, tendrás que comparar el valor de la variable con el número que quieras, en este caso 3.

El problema es que el "if" no está bien planteado. Empezando porque 0x0 no es "diferente de", sino "menor que". Para comprobar que sea diferente se utiliza 0x5. Pero es una tontería hacerlo si ya estás comprobando que es igual (si no es igual, evidentemente va a ser diferente).


Pues yo creo recordar que hice un script de countpokemon usando comapre 0x1 y if 0x1 y me iva perfecto. No sabia que con 0x3 también se puede.

Pero repito: CREO recordar, a lo mejor mi memoria me falla (cosa que no me extrañaria en absoluto)
#8
Javi4315♪ 13374
Iniciado por Jotta
Pues yo creo recordar que hice un script de countpokemon usando comapre 0x1 y if 0x1 y me iva perfecto. No sabia que con 0x3 también se puede.

Pero repito: CREO recordar, a lo mejor mi memoria me falla (cosa que no me extrañaria en absoluto)


Bueno, en realidad es algo lógico. Tú dices de hacerlo de esta manera:

countpokemon
compare LASTRESULT 0x1
if 0x1 goto @(loquesea)

¿Pero cómo interpreta el juego que estás comprobando si hay 3, 4, 5 o los pokes que sean? Evidentemente en el compare.
#9
Yito 29233
gracias a los dos por tomarse la molestia... no habia leido xD! resolvi en todo caso como ustedes mencionaron.


se puede cerrar el tema pero tenerlo abierto, igual me ayuda a dejar preguntas personalmente, asi no crear tantos temas mientras desarrollo el hack.

pero a discrecion de ustedes lo dejo mods. :3 de nuevo, gracias.
#10
J.com 12785
Iniciado por Yito
gracias a los dos por tomarse la molestia... no habia leido xD! resolvi en todo caso como ustedes mencionaron.


se puede cerrar el tema pero tenerlo abierto, igual me ayuda a dejar preguntas personalmente, asi no crear tantos temas mientras desarrollo el hack.

pero a discrecion de ustedes lo dejo mods. :3 de nuevo, gracias.


No importa, cuando tengas otra duda cual sea, crea un tema nuevo.
Cierro~