qna_rh
Thread Id: 25350
Thread Name: Problema con XSE
Buenas, soy nuevo en el foro, y he estado intentado hacer scripts, y no me salen:(.
Me gustaría hacer un givepokemon, y lo consigo, pero como quiero activar el menú PKMN, uso la flag 0x800. Y cuando se supone que, si está activada se tiene que ir a otro offset (del segundo mensaje) no ocurre nada.
Este es el script que yo uso.
'---------------
#org 0x309F86
checkflag 0x800
if 0x1 goto 0x8380947
msgbox 0x83808FD MSG_FACE '"Frase 1"
givepokemon 0x1 0x5 0x0 0x0 0x0 0x0
setflag 0x800
end
#org 0x380947
msgbox 0x8380948 MSG_FACE '"Frase 2"
end
'---------
' Strings
'---------
#org 0x3808FD
= Frase1
#org 0x380948
= Frase2
¿Hay algo mal en el script? Gracias de antemano.
lo unico que veo mal son las direcciones, no deberias hacer el script en ese espacio, de hecho te aconsejaria no hacer nada antes del offset 800000
He buscado las direcciones con FSF, ya que con thingy no me apaño.. ¿No son esas las direciones a usar?
Lo que ocurre es que después de compilarlo, y volverlo abrir, la parte de segundo mensaje se borra y asi siempre..
Gracias por tu respuesta, siento ser pesado..
Creo que el problema esta en la checkflag, no he estado haciendo scripts pero por lo que recuerdo, el givepkmn debe tener dos flags distintas.
El checkflag no debe tener la 800 debe ser cualuier otra libre, y ahi poner el if 0x1 y el 0x0 que 0x1 manda si esta activa, la flag 800 solo sirve para activar el menu.
Espero te sirva
saludos
Por cierto es recomendable que hagas una copia del
rom si usas una flag equivocada
ah y creo que debe estar primero lo que dice despues del givepkmn y luego poner la direccion aparte con el givepkmn
Puedes buscarlo con FSF sin problemas, pero en donde pone "buscar a partir de una direccion" pon 800000 para que te busque a partir de esa direccion.
Estoy seguro de que se te borra porque esa direccion se usa para otra cosa.
Compilalo usando offsets a partir del 800000 buscados con FSF
O bien, puedes usar el comando
#dynamic 0x800000(direccion a partir de la cual buscar, como te he dicho la 800000)
Así te ahorras buscar espacio y la herramienta lo hará por ti. Un saludo!
Iniciado por Alexander---
Creo que el problema esta en la checkflag, no he estado haciendo scripts pero por lo que recuerdo, el givepkmn debe tener dos flags distintas.
El checkflag no debe tener la 800 debe ser cualuier otra libre, y ahi poner el if 0x1 y el 0x0 que 0x1 manda si esta activa, la flag 800 solo sirve para activar el menu.
Espero te sirva
saludos
Por cierto es recomendable que hagas una copia del rom si usas una flag equivocada
No, puedes usar la 800 para hacer un checkflag tranquilamente.
Ah pues vale xD es que no lo recordaba bien, aunque yo lo hice asi para el inicial, de todos modos asi servira para mas ayuda :D
Iniciado por Alexander---
Creo que el problema esta en la checkflag, no he estado haciendo scripts pero por lo que recuerdo, el givepkmn debe tener dos flags distintas.
El checkflag no debe tener la 800 debe ser cualuier otra libre, y ahi poner el if 0x1 y el 0x0 que 0x1 manda si esta activa, la flag 800 solo sirve para activar el menu.
Espero te sirva
saludos
Por cierto es recomendable que hagas una copia del
rom si usas una flag equivocada
ah y creo que debe estar primero lo que dice despues del givepkmn y luego poner la direccion aparte con el givepkmn
Lo he probado y el poner una distinta flag en checkflag solo me hace que el script se repita, vamos que me de siempre un pkmn. Lo que no he entendido es lo de poner la dirección aparte con el givepokemon.
Gracias por la respuesta enserio.
Vale, a lo que me referia era a que, para que no se repita el script, la flag deberia estar luego de la setflag 0x800 es decir setflags consecutivas, y sobre la direccion aparte era:
'---------------
#org 0x309F86
checkflag 0x800
if 0x1 goto 0x8380947
msgbox 0x83808FD MSG_FACE '"Frase 1"
givepokemon 0x1 0x5 0x0 0x0 0x0 0x0
setflag 0x800
end
#org 0x380947
msgbox 0x8380948 MSG_FACE '"Frase 2"
end
En el caso la direccion aparte seria 0x380947 si no me equivoco.
Aunque no aseguro nada, ya que iual me costo hacer un givepkmn la primera vez
Me estoy volviendo loco con esto.. jajajaja.
He probado lo de las direcciones, apartir de 800000,y bueno ahora ya no se borra, me lo cambia por esto:
#org 0x80004D
loadpointer 0xDA 0xDCDCDCDC
Y en verdad, ¿debería ser asi, no? :
#org 0x80004D
msgbox 0xoffsetmensaje2 0x2
end
Gracias a los 2 por vuestra ayuda
Que version de XSE usas?
Joodeh xd eso siempre pasa cuando haces un script a partir de la estructura final.
Te recomiendo que hagas el script a partir de la estructura recomentada (#dynamic 0x8000000,script,release,end,etc) se hace abriendo el rom por xse por cierto.
Espero te sirva
Pd: como dijo sayer, cuando pones el dynamic al inicio y los respectivos punteros no es necesario buscar ningun offset
La version que uso, es la 1.1.1 y con la anterior me pasaba lo mismo, he actualizado para ver si era la version, y nada.. jajaja.
Alexander--- si me puedes dar la estructura, te l oagrasdecería porque de esa forma, estoy perdididsimo.
Deberías compilarlo de esta forma:
#dynamic 0x800000
#org @inicio
checkflag 0x800
if 0x1 goto @poke
msgbox @texto1 MSG_FACE '"Frase 1"
givepokemon 0x1 0x5 0x0 0x0 0x0 0x0
setflag 0x800
end
#org @poke
msgbox @texto2 MSG_FACE '"Frase 2"
end
'---------
' Strings
'---------
#org @texto1
= Frase1
#org @texto2
= Frase2
En principio y si no me he equivocado, debería funcionar. Y, por cierto, la flag 0x800 la puedes poner en el checkflag perfectamente.
Pues vale tratare
#dynamic 0x8000000
#org @start
lock
faceplayer (si no es por gatillo)
Checkflag 0xflag libre (estoy por cel y es comicado buscarlas xd pero a mi me respondieron en una duda mia cuales eran de fire red, sino busca las de ruby)
if 0x0 goto @start
if 0x1 goto @give
msgbox @frase1 0x6
release
end
#org @give
Lock
faceplayer
givepokemon (parametros que quieres)
setflag 0x800
Setflag 0xflag utilizada del @start
release
end
espero que te sirva perdon si hay faltas pero estoy por movil
Disculpa si a veces enredo, pero sugiero que sigas mas lo que te dicen javi y sayer, es que aun soy un poco novato xd
Iniciado por Alexander---
Pues vale tratare
#dynamic 0x8000000
#org @start
lock
faceplayer (si no es por gatillo)
Checkflag 0xflag libre (estoy por cel y es comicado buscarlas xd pero a mi me respondieron en una duda mia cuales eran de fire red, sino busca las de ruby)
if 0x0 goto @start
if 0x1 goto @give
msgbox @frase1 0x6
release
end
#org @give
Lock
faceplayer
givepokemon (parametros que quieres)
setflag 0x800
Setflag 0xflag utilizada del @start
release
end
espero que te sirva perdon si hay faltas pero estoy por movil
Disculpa si a veces enredo, pero sugiero que sigas mas lo que te dicen javi y sayer, es que aun soy un poco novato xd
Este comando esta mal
if 0x0 goto @start
No deberia existir directamente, si es no, el script vuelve a empezar y por eso no deberia existir, para que si es no , el script continue.
Muchaaaaas gracias, lo de usar dynamic, ha funcionado :) Salvo por que siempre dice la frase2, en vez de decir primero la 1.
Siento ser tan pesado con esto.. Gracias