Registrarse

Error con mensaje yes/no

Estado
Cerrado para nuevas respuestas.
Hola, bueno, tengo un problema con ciertos scripts que incluyen las cajas de texto. Lo que sucede es que tengo un script donde a partir de un yes/no me dan cierto item.
El problema está en que cuando asigno una flag al mini, efectivamente me da el item, pero al entrar a una casa y volver a salir, este mini desaparece. Me ha pasado con todos los scripts a los que les asigno una flag. ¿Qué puede estar mal?

Código:
#dynamic 0x800000
#org @inicio
lock
faceplayer
checkflag 0x1233
if 0x1 goto @fin
msgbox @mensaje1 0x5
compare LASTRESULT 0x1
if 0x1 goto @inicio2
if 0x0 goto @inicio3
end

#org @mensaje1
= ¿Que chinge a su madre el AMERICA?

#org @inicio2
msgbox @frase 0x2
giveitem 0x2 0x1 0x0
setflag 0x1233
end

#org @inicio3
msgbox @fraseno 0x2

#org @frase
= Lo sabia

#org @fraseno
= Pues vete

#org @fin
release
end
 

Laquin

Usuario mítico
Claro. Si le asignas una flag a un mini, éste no se ve al estar activada ;) ¿Para qué quieres asignársela?
 

Rubire4

Usuario mítico
@Laquin Supongo que la querrá para que cuando vuelvas a hablar con el te diga que no te va a dar más objetos o algo así.
 

Bugrhak

A long time ago I used to call myself "Subzero".
Hola, bueno, tengo un problema con ciertos scripts que incluyen las cajas de texto. Lo que sucede es que tengo un script donde a partir de un yes/no me dan cierto item.
El problema está en que cuando asigno una flag al mini, efectivamente me da el item, pero al entrar a una casa y volver a salir, este mini desaparece. Me ha pasado con todos los scripts a los que les asigno una flag. ¿Qué puede estar mal?

Código:
#dynamic 0x800000
#org @inicio
lock
faceplayer
checkflag 0x1233
if 0x1 goto @fin
msgbox @mensaje1 0x5
compare LASTRESULT 0x1
if 0x1 goto @inicio2
if 0x0 goto @inicio3
end

#org @mensaje1
= ¿Que chinge a su madre el AMERICA?

#org @inicio2
msgbox @frase 0x2
giveitem 0x2 0x1 0x0
setflag 0x1233
end

#org @inicio3
msgbox @fraseno 0x2

#org @frase
= Lo sabia

#org @fraseno
= Pues vete

#org @fin
release
end
pero que es lo que quieres hacer? quitar el mini o no?
para hacer que un mini aparezca o desaparezca, lo que tienes que hacer es asignarle una flag,por ejemplo:
0x2C no solo puedes hacer que el mini desparezca con una flag, puedes hacer más de una cosa XD

para quitar una flag, lo que tienes que hacer es:
clearflag 0x2C
showsprite 0x1 (showsprite: muestea el mini 0x1: numero del mini

la contraria a esta sería:
setflag 0x2C
hidesprite 0x1

tambien puedes combinarlo con un script de nivel, y asignarle una variale, para que el mini aparezca si tienes por ejemplo la variable:
0x40FF 0x0 (0x40FF: varible 0x0: valor de la misma)

entonces deberías poner:

Código:
#dynamic 0x800000
#org @inicio
lock
compare 0x40FF 0x0
if 0x1 goto [MENTION=17182]pointer[/MENTION]
msgbox @ortito 0x6
release
end
(esto compara si la vriable tiene el valor 0, si lo tiene te lleva al pointer, dentro del pointer puedes escribir el script que quieras.

en caso de que la variable 0x40FF no tenga el valor 0 seguirá el script, osea lo que está deajo del "if 0x1" que sería el msgbox, a menos que despues de el "if 0x1"
pongas otro "compare 0x40FF 0x1" (sería si la variable tiene el valor 1) te envie a otro pointer

en los pointers a los que quieras que el script te envie, puedes poner lo que valla a pasar con el mini, tambien puedes usar los "setvar" para añadirle un valor a la variable, y hacer que si la variable tiene un valor (valor pre establecido por el setvar) te envie a un pointer.

Lo ves, es algo muy fácil ¿no?

Salu2
 

Bugrhak

A long time ago I used to call myself "Subzero".
@Laquin Él, al principio del script puso:


Lo cual llevaría a:


Debería haber puesto en @fin:
Código:
#org @fin
msgbox @texto3 0x6
release
end
Lo cual llevaría a:
Código:
#org @texto3
= No te voy a dar más
¿O no es así?
lo que creo que pasa es que despues de esto:

#org @inicio2
msgbox @frase 0x2
giveitem 0x2 0x1 0x0
setflag 0x1233

justo debajo del setflag, no puso lo que pasaría con el mini, tiene que poner un hidesprite o algo.

lo mismo en el @fin
antes del release, tendria que haber puesto algo, lo que quiere que haga el mini, o lo que quiere que ocurra
 

Rubire4

Usuario mítico
Entonces, ¿cómo se haría para cuando quieras que, por ejemplo, si hablas con un personaje te diga una cosa, y para cuando hables otra vez con él te diga otra?
 

Laquin

Usuario mítico
Entonces, ¿cómo se haría para cuando quieras que, por ejemplo, si hablas con un personaje te diga una cosa, y para cuando hables otra vez con él te diga otra?
Con flags, puedes hacerlo así:

Código:
#dynamic 0x800000

#org @main
lock
faceplayer
checkflag 0xNumdelFlag 'Mira si la flag está activada
if 0x1 goto @activado 'Si así es, irá al pointer @activado. Sin embargo, si no lo está, seguirá por la línea siguiente
msgbox @textono 0x6 'Así, esto solo pasará cuando la flag esté desactivada(es decir, si es la primera vez)
setflag 0xNumdelFlag 'Y como queremos que la segunda vez la flag esté activada, la activaremos
release
end

#org @activado 'Esto solo ocurre cuando está activado(es decir, si no es la primera vez)
msgbox @textosi 0x6
release
end

#org @textono
= Nunca hemos hablado

#org @textosi
= No es la primera vez que hablamos

Aunque es mejor hacerlo con vars, y guardar las flags para la desaparición de minis.
 
Última edición:

Bugrhak

A long time ago I used to call myself "Subzero".
yo lo haria así: (para ahorrar flags)

Código:
#dynamic 0x800000
#org @inicio
lock
faceplayer
compare 0x40FF 0x1
if 0x1 goto @pe2
msgbox @oreja 0x6
giveitem 0x44 0x(no me acuerdo que "0x" se usa para cuando te dan un item)
setvar 0x40FF 0x1
release
end

#org @oreja
=toma este objeto y no me jodas más!!!

#org @pe2
hidesprite 0x1  (si quiero que desaparezca el mini)
o tamién en el #org @pe2 puedes poner lo que quieres que haga el script.


y combinaría este script con uno de tipo "03" de los que se ponen en el cavezal de mapa (en AM donde dice ver cavezal)

el siguiente script sería así:

Código:
#dynamic 0x800000
#org @inicio
compare 0x40FF 0x1
if 0x1 goto [MENTION=31239]rana[/MENTION]
end

#org [MENTION=31239]rana[/MENTION]
hidesprite 0x(nro del mini)

nota: este script lo usas solo si quieres que el mini desaparezca después de que te de el item

aún así, nesesitarías asignarle una flag al mini, para que desaparezca
salu2
 

Laquin

Usuario mítico
yo lo haria así: (para ahorrar flags)

Código:
#dynamic 0x800000
#org @inicio
lock
faceplayer
compare 0x40FF 0x1
if 0x1 goto @pe2
msgbox @oreja 0x6
giveitem 0x44 0x(no me acuerdo que "0x" se usa para cuando te dan un item)
setvar 0x40FF 0x1
release
end

#org @oreja
=toma este objeto y no me jodas más!!!

#org @pe2
hidesprite 0x1  (si quiero que desaparezca el mini)
o tamién en el #org @pe2 puedes poner lo que quieres que haga el script.


y combinaría este script con uno de tipo "03" de los que se ponen en el cavezal de mapa (en AM donde dice ver cavezal)

el siguiente script sería así:

Código:
#dynamic 0x800000
#org @inicio
compare 0x40FF 0x1
if 0x1 goto [MENTION=31239]rana[/MENTION]
end

#org [MENTION=31239]rana[/MENTION]
hidesprite 0x(nro del mini)

nota: este script lo usas solo si quieres que el mini desaparezca después de que te de el item

aún así, nesesitarías asignarle una flag al mini, para que desaparezca
salu2
Eso si quieres hacerlo desaparecer. Por cierto; si no me equivoco, hay que refrescar la pantalla con un warp o un fadescreen, ¿no?
 

Bugrhak

A long time ago I used to call myself "Subzero".
Eso si quieres hacerlo desaparecer. Por cierto; si no me equivoco, hay que refrescar la pantalla con un warp o un fadescreen, ¿no?
pues que no, yo lo hago sin fdescreen o warp y funciona, mira este rom en el que trabajo, no usé ni el script de tipo "03" solo uno de esos que lo pisas y se ejecuta, y el mini desaparece para siempre, hechale un vistaso con xse al script si quieres (no robar XD)
https://www.dropbox.com/s/jct3msx8vj3zve4/Pok%C3%A9mon%20Heroes%20del%20bajo%20mundo.gba?dl=0 (no robar XD)
 
Muchas gracias chicos, al final he decido cambiar el orden de los eventos y lo he usado con un script de gatillo, peero ahora tnego otro problema, que dentro de mi script, usando applymovements, hago que un mini que esta oculto, aparezca. El problema está en que todo marcha bien, pero cuando al mini en cuestión, en el Advance Map, lo pongo como "oculto" el juego se me reinicia unos pasos antes de llegar a pisar ese script.
 

Bugrhak

A long time ago I used to call myself "Subzero".
Muchas gracias chicos, al final he decido cambiar el orden de los eventos y lo he usado con un script de gatillo, peero ahora tnego otro problema, que dentro de mi script, usando applymovements, hago que un mini que esta oculto, aparezca. El problema está en que todo marcha bien, pero cuando al mini en cuestión, en el Advance Map, lo pongo como "oculto" el juego se me reinicia unos pasos antes de llegar a pisar ese script.
pon capturas, una cosa que nunca PERO NUNCA!!! puedes hacer es poner un mini que vas a usar en un script, como oculto, debes poner el mini (solo lo añades y ya) lo unico que tienes que camiarle es el sprite del mini, lo ubicas donde quieras (dentro del mapa) e le pones la flag en caso de usarla. el resto no lo tocas
 

Laquin

Usuario mítico
pon capturas, una cosa que nunca PERO NUNCA!!! puedes hacer es poner un mini que vas a usar en un script, como oculto, debes poner el mini (solo lo añades y ya) lo unico que tienes que camiarle es el sprite del mini, lo ubicas donde quieras (dentro del mapa) e le pones la flag en caso de usarla. el resto no lo tocas
¿Y por qué no puede ponerlo en oculto? Podría usar un showsprite y ya, ¿no? Porque si pones el mini en un sitio lejos de la cámara, los applymovement no funcionarán... (experiencias propias :v)
 
ejjeje al final hje intentado incluso con el showsprite pero el juego se me reinicia de la nada. Ni modo, tuve que dejar al mini alli parado sin hacer nada y solo se mueve cuando mi jugador pisa el script, pero gracias chicos, aprendí sobre las flags, pueden dar el tema como cerrado ^ ^
 

Cheve

MoonLover~
Miembro de honor
@Rubire4 @Subzero @Laquin

Chicos, no pregunten ni respondan otra duda de otro usuario dentro de la duda ya publicada.

Antes de responder una duda tened en cuenta que hay una regla que habla sobre saber del tema que se está contestando, para no generar malos entendidos ni discordia.

Respetemos las reglas entre todos para mantener el subforo ordenado.

¡Gracias!
 
Estado
Cerrado para nuevas respuestas.
Arriba