Chale, solo se cerro el XSE jajajaja, el el tuto decía q ahí debería ir la rutina del shinyzer (supongo se refiere al offset)borrale el EB0B20 donde dice #org @EsShiny y prueba
Salu2 xD
ok tienes el tuto a mano ?Chale, solo se cerro el XSE jajajaja, el el tuto decía q ahí debería ir la rutina del shinyzer (supongo se refiere al offset)
https://whackahack.com/foro/threads/gba-scripting-shiny-pokemon-everywhere.32149/ ese es o.ook tienes el tuto a mano ?
#dynamic 0x800000
#org @Start
random 0x2 'desconozco por qué pones 2
compare LASTRESULT 0x0
if 0x1 goto @EsShiny
end
#org @EsShiny
callasm 0xEB0B21
setvar 0x8003 0x1
end
Bueno prove ese scrip y no se q este mal en mi rom xDSupongo que tu script sería así:
Código:#dynamic 0x800000 #org @Start random 0x2 'desconozco por qué pones 2 compare LASTRESULT 0x0 if 0x1 goto @EsShiny end #org @EsShiny callasm 0xEB0B21 setvar 0x8003 0x1 end
Como no lo he probado, sugiero hacer un backup de tu rom antes.
edit: Pero qué estoy diciendo, un script no rompe una rom, ¿o si?
Prueba con este:Ver el archivo adjunto 3130
Buenas noches a todos, estuve viendo unos tutoriales para que salgan shinys, y quisiera saber q es lo q coloque mal ahí :s
EB0B20 es el offset donde esta ubicado el parche del shinyzer
Hola Blade, ¿cómo estás? Lo que está rompiendo tu ROM es el callasm que sobra. Entonces estás enviando al procesador a ejecutar comandos que no entiende.Bueno prove ese scrip y no se q este mal en mi rom xD
Lo digo porq cuando coloco el random 0x0, si salen los shinys pero cuando deseo colocar a un charmander shiny salvaje (modifique para q salieran los iniciales de 1gen en la ruta1) el juego se pone negro y solo pasa con ese xD
tengo la rom antes de probar el shinyzer y corre normal porq es la q ando jugando en mi celular y sigo jugando normal, capture un shiny salvaje y la partida continua normal .-.
#dynamic 0x800000
#org @Start
random 0x64 'Creamos un nº entre 0 y 99.
compare LASTRESULT 0x3 'Si ese nº es 0, 1 ó 2, el Pokémon será shiny.
if 0x0 goto @EsShiny
end
#org @EsShiny 'Aquí usamos la rutina del shinyzer para que sea shiny.
setvar 0x8003 0x1
end
Supongo que está incompleto tu script puesto que nunca le pones un valor a la variable 0x8003, lo cual es indispensable en esta rutina.Prueba con este:
#dynamic 0x900000
#org @start
random 0x2
Compare LASTRESULT 0x0
If 0x1 goto @poke0
Compare LASTRESULT 0x1
If 0x1 goto @poke1
setvar 0x8000 0x1
end
#org @poke0
end
#org @poke1
end
yo lo compile y no me dio error
y me salio mi shiny
#dynamic 0x900000
#org @start
random 2
compare LASTRESULT 0
if 1 goto @poke0
goto @poke1 'Solamente llega a ejecutar esta línea si el valor no es 0, entonces podemos asumir que es 1 y enviarle al otro puntero sin necesidad de comparar nada.
#org @poke0
' En algún lugar por aquí habría que settear la variable 0x8003
end
#org @poke1
' Y por aquí también
end
Bueno, podría pasar si lo compilas en espacio usado jajajajaedit: Pero qué estoy diciendo, un script no rompe una rom, ¿o si?
Muchas gracias también probare con estePrueba con este:
#dynamic 0x900000
#org @start
random 0x2
Compare LASTRESULT 0x0
If 0x1 goto @poke0
Compare LASTRESULT 0x1
If 0x1 goto @poke1
setvar 0x8000 0x1
end
#org @poke0
end
#org @poke1
end
yo lo compile y no me dio error
y me salio mi shiny
Q tal bro, aqui aprendiendo poco a pocoHola Blade, ¿cómo estás? Lo que está rompiendo tu ROM es el callasm que sobra. Entonces estás enviando al procesador a ejecutar comandos que no entiende.
Fíjate en el script original del tutorial:
Yo creería que te ha hecho confundir la parte de "'Aquí usamos la rutina del shinyzer para que sea shiny.". Eso no quiere decir que debas llamar a la rutina. ¿Por qué? Pues porque la rutina para que el pokémon sea shiny se está ejecutando siempre por su cuenta, cada vez que entras en una batalla. Lo único que cambia es que si la variable 0x8003 no tiene valor 1, directamente no hace nada.Código:#dynamic 0x800000 #org @Start random 0x64 'Creamos un nº entre 0 y 99. compare LASTRESULT 0x3 'Si ese nº es 0, 1 ó 2, el Pokémon será shiny. if 0x0 goto @EsShiny end #org @EsShiny 'Aquí usamos la rutina del shinyzer para que sea shiny. setvar 0x8003 0x1 end
Solo quita el "callasm 0xEB0B21" y debería funcionar bien.
no, ese comando es para indicarle a XSE donde va a comenzar a buscar espacio para colocar tu script.Muchas gracias también probare con este
Q tal bro, aqui aprendiendo poco a poco
Sii, yo pensé q se debía agregar el offset donde estaba el shinyzer xD
El #dynamic 0x800000 viene a ser el offset q ocupara esta rutina no?? (no tiene q ver con el del shinyzer?)
Es que olvide que el random no cuenta el cero, por eso coloque como si tuviera 3 opciones, jajajaHola Blade, ¿cómo estás? Lo que está rompiendo tu ROM es el callasm que sobra. Entonces estás enviando al procesador a ejecutar comandos que no entiende.
Fíjate en el script original del tutorial:
Yo creería que te ha hecho confundir la parte de "'Aquí usamos la rutina del shinyzer para que sea shiny.". Eso no quiere decir que debas llamar a la rutina. ¿Por qué? Pues porque la rutina para que el pokémon sea shiny se está ejecutando siempre por su cuenta, cada vez que entras en una batalla. Lo único que cambia es que si la variable 0x8003 no tiene valor 1, directamente no hace nada.Código:#dynamic 0x800000 #org @Start random 0x64 'Creamos un nº entre 0 y 99. compare LASTRESULT 0x3 'Si ese nº es 0, 1 ó 2, el Pokémon será shiny. if 0x0 goto @EsShiny end #org @EsShiny 'Aquí usamos la rutina del shinyzer para que sea shiny. setvar 0x8003 0x1 end
Solo quita el "callasm 0xEB0B21" y debería funcionar bien.
Supongo que está incompleto tu script puesto que nunca le pones un valor a la variable 0x8003, lo cual es indispensable en esta rutina.
Aún así, quiero comentar un temita lógico sobre la estructura.
Cambiando estos detalles que digo, tu script quedaría algo así:
- Al hacer random 0x2, la variable 0x800D (también llamada LASTRESULT) puede tener únicamente dos valores: 0 y 1.
- Haces una comparación para ver si el valor es igual a 0.
- Luego vuelves a comparar para ver si es igual a 1.
- Esto es completamente redundante. Si ya sabes que el valor no es 0, entonces debe forzosamente ser 1. Tu segunda comparación sobra.
- Por último, como la variable no puede tener ningún otro valor, las dos líneas que tienes luego de "If 0x1 goto @poke1" nunca se ejecutarán, están ahí ocupando espacio simplemente.
Nota: Todo lo que hay luego de ' (comilla simple) en XSE es un comentario, textos informativos que no tienen efecto en el script.Código:#dynamic 0x900000 #org @start random 2 compare LASTRESULT 0 if 1 goto @poke0 goto @poke1 'Solamente llega a ejecutar esta línea si el valor no es 0, entonces podemos asumir que es 1 y enviarle al otro puntero sin necesidad de comparar nada. #org @poke0 ' En algún lugar por aquí habría que settear la variable 0x8003 end #org @poke1 ' Y por aquí también end
Bueno, podría pasar si lo compilas en espacio usado jajajaja