24977-Crianza_de_Pokémon_Shiny_en_la_guardería_\[100%]_\[INVESTIGACIÓN_FINALIZADA]_\[RUBY]
#14
Doctor Juanjo 12932
Iniciado por Javi4315♪
Bueno, ¿Pero ahora la cuestión no sería algo así como seleccionar un pokémon del equipo y que se determine si es shiny? Es decir, no que te diga si es shiny el primer pokémon, o el segundo, sino el que tú selecciones, me refiero.


No exactamente, ya que toma la información directamente del que esté en la guardería. De esa manera evitamos tener que seleccionarlo. Aunque lo que dices puede ser válido si queremos hacer un comando que sirva en general de acuerdo al pokemon que seleccionemos. Pero para efectos de esta inve con solo el de la guardería está perfecto.

Ahora, remasterizando la rutina de Cheve, he logrado hacer que lea tanto el primero como el segundo de la guardería. He de decir que no se nada de ASM pero aún así soy lo bastante curioso para entender el HEX, por lo tanto he copiado la misma rutina en el offset 0x70000C (Por ejemplo) y cambiado los bytes de la dirección del primero de la guardería por el del segundo. Después de eso fue simplemente trabajo del script (Que si manejo bastante bien)

88 53 40 58 40 04 49 08 80 03 BD D0 86 02 02 B0 4E 02 02 AE 4E 02 02 DC E8 02 02 FF 1F B5 06 4C 20 88 62 88 50 40 05 4C 23 88 05 4C 22 88 53 40 58 40 04 49 08 80 03 BD 20 87 02 02 B0 4E 02 02 AE 4E 02 02 DC E8 02 02

De esta manera el script sería algo así:

'---------------
#include std.rbh
#dynamic 0x712345

#org @Inicio
callasm 0x700001
compare LASTRESULT 0x8
if B_< call @SiShiny
callasm 0x70000D
compare LASTRESULT 0x8
if B_< call @SiShiny
msgbox @sms2 MSG_NORMAL
end


#org @SiShiny
msgbox @sms1 MSG_NORMAL
goto @Proba
end



#org @sms1
= Hay un Shiny

#org @sms2
= No hay un Shiny

#org @Proba
random 0x14
copyvar 0x50FE LASTRESULT
buffernumber 0x2 0x50FE
compare 0x50FE 0x0
if 0x1 goto 0x8712457
compare 0x50FE 0x1
if 0x1 goto 0x8712457
compare 0x50FE 0x2
if 0x1 goto 0x8712457
msgbox 0x87123EF MSG_FACE '" No hay huevos shiny."
end

'---------------
#org 0x712457
msgbox 0x8170CA7 MSG_FACE '" Hay huevos shiny."
end


'---------
' Strings
'---------
#org 0x7123EF
= No hay huevos shiny.

#org 0x170CA7
= Hay huevos shiny.

Con este script mira si alguno de los padres son shinys y si es cierto hace el script de probabilidad del 15% y en caso de ser positivo entonces dice que hay huevos shinys.

Este script debe ser fácil insertar en el script de la guardería (Es más ya lo estoy insertando)

Al probar esto ha funcionado perfecto.

Puedo decir que esta investigación está al 100%. Falta organizar el post principar y comenzar a redactar el tutorial ¡Gracias Cheve y Javi!

EDITO: Script final :D

'---------------
#include std.rbh
#dynamic 0x712345

#org 0x1B222D
lock
faceplayer
special 0xB5
special2 LASTRESULT 0xB6
compare LASTRESULT 0x1
if 0x1 goto 0x81B2262
compare LASTRESULT 0x2
if 0x1 goto 0x81B22E7
compare LASTRESULT 0x3
if 0x1 goto 0x81B22FE
msgbox 0x81B25CB MSG_KEEPOPEN '"I'm the DAY-CARE MAN.\pI help take..."
release
end

'---------------
#org 0x1B2262
msgbox 0x81B2659 MSG_YESNO '"Ah, it's you!\pWe were raising you..."
compare LASTRESULT 0x1
if 0x1 goto 0x81B2298
msgbox 0x81B28C4 MSG_YESNO '"ine."
compare LASTRESULT 0x1
if 0x1 goto 0x81B2298
msgbox 0x81B2745 MSG_KEEPOPEN '" ell then, I'll keep it.\nThanks!"
clearflag 0x86
special 0xB7
release
end

'---------------
#org 0x1B22E7
special 0xB5
msgbox 0x81B2710 MSG_KEEPOPEN '"Ah, it's you! Good to see you.\nYo..."
setvar 0x8004 0x0
call 0x81B22CD
release
end

'---------------
#org 0x1B22FE
special 0xB5
msgbox 0x81B2897 MSG_KEEPOPEN '"Ah, it's you! Your and\n..."
special 0xB9
special 0x8D
waitmsg
waitkeypress
setvar 0x8004 0x0
call 0x81B22CD
setvar 0x8004 0x1
call 0x81B22CD
release
end

'---------------
#org 0x1B2298
special2 LASTRESULT 0x83
compare LASTRESULT 0x6
if 0x5 goto 0x871234A
msgbox 0x81B2766 MSG_KEEPOPEN '"You have no room for it...\nCome b..."
release
end

'---------------
#org 0x1B22CD
clearflag 0x86
release
end

'---------------
#org 0x71234A
call @BusqueShiny
preparemsg 0x81B27A2 '"[player] received the EGG from\nth..."
fanfare 0x16F
waitfanfare
waitmsg
waitkeypress
msgbox 0x81B27CD MSG_KEEPOPEN '"Take good care of it."
special 0xB8
clearflag 0x86
clearflag 0x1234
release
end

'---------------
#org @BusqueShiny
callasm 0x700001
compare LASTRESULT 0x8
if B_< call @SiShiny
callasm 0x70000D
compare LASTRESULT 0x8
if B_< call @SiShiny
return

#org @SiShiny
random 0x14
copyvar 0x50FE LASTRESULT
buffernumber 0x2 0x50FE
compare 0x50FE 0x0
if 0x1 goto @NaceShiny
compare 0x50FE 0x1
if 0x1 goto @NaceShiny
compare 0x50FE 0x2
if 0x1 goto @NaceShiny
return

#org @NaceShiny
setvar 0x8003 0x1
return



'---------
' Strings
'---------
#org 0x1B25CB
= I'm the DAY-CARE MAN.\pI help take care of the precious\nPOKéMON of TRAINERS.\pIf you'd like me to raise your POKéMON,\nhave a word with my wife.

#org 0x1B2659
= Ah, it's you!\pWe were raising your POKéMON, and my\ngoodness, were we surprised!\pYour POKéMON had an EGG!\pWe don't know how it got there,\nbut your POKéMON had it.\pYou do want it, yes?

#org 0x1B28C4
= ine.

#org 0x1B2745
= ell then, I'll keep it.\nThanks!

#org 0x1B2710
= Ah, it's you! Good to see you.\nYour 's doing fine.

#org 0x1B2897
= Ah, it's you! Your and\n are doing fine.

#org 0x1B2766
= You have no room for it...\nCome back when you've made room.

#org 0x1B27A2
= [player] received the EGG from\nthe DAY-CARE MAN.

#org 0x1B27CD
= Take good care of it.

¡ARRIBA GRUPO POSITRÓN!

Investigación principal finalizada a los 18 días del primer mes de 2014. Queda abierta a extensiones, mejores, adaptaciones [FR] y desarrollos posteriores de elementos descubiertos.

Firman:
Juanjo - Grupo POSITRÓN


Esperen pronto el PSEB System - Positron Shiny Egg Breeding System