Registrarse

[Script] GBA | Scripting | Shiny Pokémon everywhere

Dani_SR_17

¡Pokémon LionHeart!


Shiny Pokémon everywhere


Saludos Wah, la verdad, este tutorial no tenía pensamiento ponerlo, porque me parece demasiado sencillo, pero visto lo visto en un post de dudas voy a ponerlo.
El script sencillamente permite modificar el % de que aparezcan los Pokémon shinys, tanto salvajes como de entrenadores.





No sé como aumentar la probabilidad en general, seguramente tirando de ASM o modificando algún dato de la rom se pueda, pero esté método funciona igualmente.


Necesitaréis:


------------------------------------ Explicación previa ------------------------------------​


Veamos voy a explicar el comando random, "random 0xN", siendo N un nº, lo que hace darte un valor aleatorio (bueno, pseudoaleatorio, pero da igual) entre 0 y N-1.
Ojo, ese número, tiene que estar en Hexadecimal.
Lo cual viene de perlas para que al combinarlo junto al shinyzer, los shinys tenga la % de salir que queramos.


------------------------------------ El script en sí ------------------------------------​


Luego ya es sencillo, tirar un poco de la lógica y poner la probabilidad que uno dese, si por ejemplo quieres tener un 10% de que sea shiny:
Código:
#dynamic 0x800000

#org @Start
random 0xA 'Creamos un nº entre 0 y 9.
compare LASTRESULT 0x0 'Si ese nº es 0, el Pokémon será shiny.
if 0x1 goto @EsShiny
end

#org @EsShiny 'Aquí usamos la rutina del shinyzer para que sea shiny.
setvar 0x8003 0x1
end
Que un 10% no os mola y preferís un 3%, no hay problema, ahora aumentamos un poco el rango del random, y ya está.
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

------------------------------------ Como implementarlo ------------------------------------​


Ahora bien, el como implementarlo para que funcione en todas las rutas que queráis es bien sencillo, doy una explicación rápida, pero recomiendo leer >>este tutorial<< de @Javi4315♪, en concreto para esto su última entrega.


Veamos, para que funcione en los mapas que queráis, tenéis que añadir un script de nivel en cada uno de los mapas, y diréis ¿qué tipo de script de nivel? Puesto que hay varios.
Para esto, personalmente veo más adecuado este:
Javi4315♪ dijo:
05: Es igual que el script de tipo 03, pero si bien este último se ejecutaba cuando se cargaba el mapa (cuando entras en él), el de tipo 05 se ejecutará tanto cuando entres al mapa como cuando salgas de un menú (mochila, pokédex…), inicies la partida guardada en ese mapa o salgas de una batalla.
Solo debéis poner el script que he puesto arriba como script de nivel del tipo 05, en cada una de las rutas que queráis que los Pokémon tengan ese % de aparecer shinys.




Personalmente me parece algo muy sencillo por eso no lo había puesto antes, pero bueno, espero que le deis buen uso.
 

Dani_SR_17

¡Pokémon LionHeart!
Tengo que añadir una cosa, no lo he probado, porque en mi hack por ahora no he visto un lugar propicio para meterlo, así que nunca lo he usado en una rom.
Es posible de que falle, aunque no estoy seguro.

Los scripts de nivel 05, no permiten usar todos los comandos, por ejemplo, los msgbox si no me equivoco no funcionan.
En esté caso, usamos random y tal, es posible de que falle, aunque en este caso, solo usamos random y dudo que esté comando falle, pero no estoy 100% seguro, cuando pueda probarlo lo probaré, aunque no se cuando podré, si alguien lo prueba y es tan amable de decirme si funciona o no, se lo agradeceré.


Gracias a @RedMort por probarlo, aunque he tenido un momento lo suficientemente largo como para probarlo yo mismo, aquí tenéis un vídeo:

 

RedMort

Aprendiendo Decomp
Tengo que añadir una cosa, no lo he probado, porque en mi hack por ahora no he visto un lugar propicio para meterlo, así que nunca lo he usado en una rom.
Es posible de que falle, aunque no estoy seguro.

Los scripts de nivel 05, no permiten usar todos los comandos, por ejemplo, los msgbox si no me equivoco no funcionan.
En esté caso, usamos random y tal, es posible de que falle, aunque en este caso, solo usamos random y dudo que esté comando falle, pero no estoy 100% seguro, cuando pueda probarlo lo probaré, aunque no se cuando podré, si alguien lo prueba y es tan amable de decirme si funciona o no, se lo agradeceré.
En ruby funciona perfectamente, probado.
 

Master Brock

Miembro insignia
Miembro insignia
Usuario de Platino
En ruby funciona perfectamente, probado.
Somos 2.

Esta noche tuve tiempo, y la verdad es que si que rula.
Increible bro, como siempre, creciendo como dios en los que a scripts respecrta.

No está nada mal el script, con un poco de habilidad en los scripts de nivel podrás hacer cosillas como esta, que mejoran mucho la jugabilidad.

Yo lo probé de tal manera, en la safary zone jajajaja por 20.000 accedes a una zona con pokemon shiny mas frecuentes.
Y que decir, maravilla ;)

Sigue brother, traenos mas de estos
 

H.B.P

Emperador Kaktiácero
Miembro de honor
Muy interesante @Dani_SR_17, en realidad creo que este script en concreto sería más bien apropiado para momentos puntuales, ya que de lo contrario, existen otros tutoriales y hasta una herramienta que permite alterar estas cosas de forma permanente. Lo bueno es que los scripts de nivel de tipo 05 no suelen ser aparatosos, sino más bien "silenciosos", así que también me alegro de que hayas explorado y testeado esa posibilidad.

Up y +Gracias.
 

Ryurs

Usuario de oro
Me gustaría añadir una cosa al script del autor del post para que se ejecute de una forma más "correcta":
Código:
#dynamic 0x800000

#org @Start
setvar 0x8003 0x0
random 0xA 'Creamos un nº entre 0 y 9.
compare LASTRESULT 0x0 'Si ese nº es 0, el Pokémon será shiny.
if 0x1 goto @EsShiny
end

#org @EsShiny 'Aquí usamos la rutina del shinyzer para que sea shiny.
setvar 0x8003 0x1
end

Como podéis ver, es exactamente igual que su script, pero añadiendo el "setvar 0x8003 0x0" al principio.

¿Por qué es más correcto añadir esto? Pues básicamente porque cada vez que entremos al mapa (o salgamos del overworld y volvamos a entrar) se reseteará la variable 8003 (que es la que hace que un pokémon sea shiny si esta tiene el valor 1), haciendo que adquiera un valor de 0, y se volverá a ejecutar el script en sí.

Si no se añadiera esta línea, tú puedes entrar 50 veces en el mapa, o abrir la mochila 50 veces o cualquier cosa que haga que se ejecute el script (al ser de nivel 05), y si en algún momento te da el valor que tú le pusiste en el random, te va a mantener la variable 8003 en 1 por mucho que vuelvas a salir o entrar del overworld, por lo que se consideraría una probabilidad "acumulada", y no una probabilidad "absoluta".

¡Espero haberme explicado bien! Un saludooo.
 
Arriba