qna_rh
Thread Id: 25350
Thread Name: Problema con XSE
#0
danizt 28312
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.
#1
Tito Sayer301 26309
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
#2
danizt 28312
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..
#3
Jonouchi~ 27699
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
#4
Tito Sayer301 26309
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.
#5
Jonouchi~ 27699
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
#6
danizt 28312
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.
#7
Jonouchi~ 27699
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
#8
danizt 28312
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
#9
Tito Sayer301 26309
Que version de XSE usas?
#10
Jonouchi~ 27699
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
#11
danizt 28312
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.
#12
Javi4315♪ 13374
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.
#13
Jonouchi~ 27699
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
#14
Tito Sayer301 26309
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.
#15
danizt 28312
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