¡Ir a la versión 2.0!
___________________________
¿Qué tal? Bueno pues vengo a traerles un pequeño tutorial sobre cómo hacer un script de takepokemon (por llamarlo así, ya que consiste en dar uno de nuestros pokémon). Pero antes de comenzar la explicación, pondré un video mostrando el script (disculpen por la baja calidad del video xD):
Bien, empecemos con la explicación. Esta tarde he entrado en wah y he visto qué había nuevo. En el foro de dudas, me he encontrado con un tema en el que se preguntaba si existía un comando contrario al givepokémon (es decir, que en vez de darte un pokémon, te lo quite), a lo que Eing ha respondido:
Un script un tanto largo xD, aun así me he puesto a leer y he identificado la parte que realmente nos interesa (está en negrita). Esa parte es simplemente la que tenemos que manipular para hacer nuestro script. Así que aquí dejo el script y su pequeña explicación para XSE y para pokescript:
Ese sería el cuerpo del script, pero podéis jugar con los comandos para hacer un script más complejo.
Bueno, creo que está bien explicado y es un tutorial interesante (aunque haya gente que sepa hacerlo xD). Así que espero que os guste y si tienen alguna duda o problema no duden en preguntar.
Por cierto, pueden hacer que se muestre el nombre del pokémon que vayan a entregar usando [buffer1] (como si utilizaran [rival] para que se muestre el nombre del rival)
IMPORTANTE: Se me había olvidado decirlo, sólo lo he probado en fire red, no sé si en ruby funcionará. De todas formas pronto lo comprobaré.
___________________________
¿Qué tal? Bueno pues vengo a traerles un pequeño tutorial sobre cómo hacer un script de takepokemon (por llamarlo así, ya que consiste en dar uno de nuestros pokémon). Pero antes de comenzar la explicación, pondré un video mostrando el script (disculpen por la baja calidad del video xD):
Bien, empecemos con la explicación. Esta tarde he entrado en wah y he visto qué había nuevo. En el foro de dudas, me he encontrado con un tema en el que se preguntaba si existía un comando contrario al givepokémon (es decir, que en vez de darte un pokémon, te lo quite), a lo que Eing ha respondido:
Y, aunque esto ya lo sabía (lo que pasa es que nunca me había dado por investigar el script de la guardería), hoy me he dispuesto a hacerlo. Así que he abierto el script de la guardería y me he encontrado con esto:Para quitar los pokémon del equipo, puedes hacerlo de dos formas, una usando ASM, que si no sabes no te recomendaria hacerla, y la otra es usando el script de la guardería, pero a tu estilo, es decir en sí solo copia la sintáxis del script.
'-----------------------
#org 0x1BF398
special 0x187
compare LASTRESULT 0x2
if 0x1 goto 0x81A7AE0
lock
faceplayer
showmoney 0x0 0x0 0x0
special2 LASTRESULT 0x178
compare LASTRESULT 0x1
if 0x1 goto 0x81BF46E
msgbox 0x819DD66 '"I run the DAY-CARE service.\pWould ..."
callstd 0x5
compare LASTRESULT 0x1
if 0x1 goto 0x81BF3DD
msgbox 0x819DDB2 '"Come again."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1A7AE0
release
end
'-----------------------
#org 0x1BF46E
setvar 0x8004 0x0
special2 LASTRESULT 0x179
compare LASTRESULT 0x0
if 0x5 call 0x81BF4AA
compare LASTRESULT 0x0
if 0x1 call 0x81BF4B3
special 0x177
msgbox 0x819DE80 '"You owe me [$][buffer2] for the ret..."
callstd 0x5
compare LASTRESULT 0x1
if 0x1 goto 0x81BF4BC
goto 0x81BF444
end
'-----------------------
#org 0x1BF3DD
special2 LASTRESULT 0x84
compare LASTRESULT 0x1
if 0x1 goto 0x81BF452
msgbox 0x819DDBE '"Which POKéMON should I raise?"
callstd 0x4
fadescreen 0x1
hidemoney 0x0 0x0
special 0xBC
waitstate
showmoney 0x0 0x0 0x0
compare 0x8004 0x6
if 0x4 goto 0x81BF444
special2 LASTRESULT 0x85
compare LASTRESULT 0x0
if 0x1 goto 0x81BF460
special2 0x8005 0xBA
msgbox 0x819DDF9 '"Fine, I'll look after your\n[buffer..."
callstd 0x4
checksound
cry 0x8005 0x0
msgbox 0x819DE24 '"Come see me in a while."
callstd 0x4
waitcry
special 0x176
cmdC3 0x2F
goto 0x81BF541
end
'-----------------------
#org 0x1BF541
hidemoney 0x0 0x0
release
end
'-----------------------
#org 0x1BF4AA
msgbox 0x819DF56 '"Your [buffer1] has grown a lot.\nYe..."
callstd 0x4
return
'-----------------------
#org 0x1BF4B3
msgbox 0x819DE3C '"You're back already?\pYour [buffer1..."
callstd 0x4
return
'-----------------------
#org 0x1BF4BC
special2 LASTRESULT 0x83
compare LASTRESULT 0x6
if 0x1 goto 0x81BF533
special2 LASTRESULT 0xC5
compare LASTRESULT 0x1
if 0x1 goto 0x81BF4EA
msgbox 0x819E001 '"You don't have enough money."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1BF444
msgbox 0x819DDDC '"Fine.\nCome anytime you like."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1BF452
msgbox 0x819DEF5 '"Oh? You only have one POKéMON\nwith..."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1BF460
msgbox 0x819DF1D '"If you leave me that POKéMON,\nwhat..."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1BF533
msgbox 0x819DFC2 '"You can't take this POKéMON back\ni..."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1BF4EA
setvar 0x8004 0x0
special2 LASTRESULT 0x17A
special 0xC6
updatemoney 0x0 0x0 0x0
copyvar 0x8008 LASTRESULT
countpokemon
subvar LASTRESULT 0x1
bufferpokemon2 0x0 LASTRESULT
copyvar LASTRESULT 0x8008
msgbox 0x819DEAF '"Thank you!\nHere's your POKéMON."
callstd 0x4
textcolor 0x3
checksound
cry LASTRESULT 0x0
msgbox 0x819DECF '"[player] got [buffer1] back\nfrom t..."
callstd 0x4
call 0x81A6675
waitcry
goto 0x81BF541
end
'-----------------------
#org 0x1A6675
copyvar 0x8012 0x8013
return
'---------
' Strings
'---------
#org 0x19DD66
= I run the DAY-CARE service.\pWould you like me to raise one of\nyour POKéMON?
#org 0x19DDB2
= Come again.
#org 0x19DE80
= You owe me [$][buffer2] for the return\nof this POKéMON.
#org 0x19DDBE
= Which POKéMON should I raise?
#org 0x19DDF9
= Fine, I'll look after your\n[buffer1] for a while.
#org 0x19DE24
= Come see me in a while.
#org 0x19DF56
= Your [buffer1] has grown a lot.\nYes, quite a lot, I'd say.\pLet me see[.]\nBy level, it's grown by [buffer2].\pAren't I great?
#org 0x19DE3C
= You're back already?\pYour [buffer1] needs to spend\nsome more time with me.
#org 0x19E001
= You don't have enough money.
#org 0x19DDDC
= Fine.\nCome anytime you like.
#org 0x19DEF5
= Oh? You only have one POKéMON\nwith you.
#org 0x19DF1D
= If you leave me that POKéMON,\nwhat will you battle with?
#org 0x19DFC2
= You can't take this POKéMON back\nif you've got no room for it.
#org 0x19DEAF
= Thank you!\nHere's your POKéMON.
#org 0x19DECF
= [player] got [buffer1] back\nfrom the DAY-CARE MAN.
#org 0x1BF398
special 0x187
compare LASTRESULT 0x2
if 0x1 goto 0x81A7AE0
lock
faceplayer
showmoney 0x0 0x0 0x0
special2 LASTRESULT 0x178
compare LASTRESULT 0x1
if 0x1 goto 0x81BF46E
msgbox 0x819DD66 '"I run the DAY-CARE service.\pWould ..."
callstd 0x5
compare LASTRESULT 0x1
if 0x1 goto 0x81BF3DD
msgbox 0x819DDB2 '"Come again."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1A7AE0
release
end
'-----------------------
#org 0x1BF46E
setvar 0x8004 0x0
special2 LASTRESULT 0x179
compare LASTRESULT 0x0
if 0x5 call 0x81BF4AA
compare LASTRESULT 0x0
if 0x1 call 0x81BF4B3
special 0x177
msgbox 0x819DE80 '"You owe me [$][buffer2] for the ret..."
callstd 0x5
compare LASTRESULT 0x1
if 0x1 goto 0x81BF4BC
goto 0x81BF444
end
'-----------------------
#org 0x1BF3DD
special2 LASTRESULT 0x84
compare LASTRESULT 0x1
if 0x1 goto 0x81BF452
msgbox 0x819DDBE '"Which POKéMON should I raise?"
callstd 0x4
fadescreen 0x1
hidemoney 0x0 0x0
special 0xBC
waitstate
showmoney 0x0 0x0 0x0
compare 0x8004 0x6
if 0x4 goto 0x81BF444
special2 LASTRESULT 0x85
compare LASTRESULT 0x0
if 0x1 goto 0x81BF460
special2 0x8005 0xBA
msgbox 0x819DDF9 '"Fine, I'll look after your\n[buffer..."
callstd 0x4
checksound
cry 0x8005 0x0
msgbox 0x819DE24 '"Come see me in a while."
callstd 0x4
waitcry
special 0x176
cmdC3 0x2F
goto 0x81BF541
end
'-----------------------
#org 0x1BF541
hidemoney 0x0 0x0
release
end
'-----------------------
#org 0x1BF4AA
msgbox 0x819DF56 '"Your [buffer1] has grown a lot.\nYe..."
callstd 0x4
return
'-----------------------
#org 0x1BF4B3
msgbox 0x819DE3C '"You're back already?\pYour [buffer1..."
callstd 0x4
return
'-----------------------
#org 0x1BF4BC
special2 LASTRESULT 0x83
compare LASTRESULT 0x6
if 0x1 goto 0x81BF533
special2 LASTRESULT 0xC5
compare LASTRESULT 0x1
if 0x1 goto 0x81BF4EA
msgbox 0x819E001 '"You don't have enough money."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1BF444
msgbox 0x819DDDC '"Fine.\nCome anytime you like."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1BF452
msgbox 0x819DEF5 '"Oh? You only have one POKéMON\nwith..."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1BF460
msgbox 0x819DF1D '"If you leave me that POKéMON,\nwhat..."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1BF533
msgbox 0x819DFC2 '"You can't take this POKéMON back\ni..."
callstd 0x4
goto 0x81BF541
end
'-----------------------
#org 0x1BF4EA
setvar 0x8004 0x0
special2 LASTRESULT 0x17A
special 0xC6
updatemoney 0x0 0x0 0x0
copyvar 0x8008 LASTRESULT
countpokemon
subvar LASTRESULT 0x1
bufferpokemon2 0x0 LASTRESULT
copyvar LASTRESULT 0x8008
msgbox 0x819DEAF '"Thank you!\nHere's your POKéMON."
callstd 0x4
textcolor 0x3
checksound
cry LASTRESULT 0x0
msgbox 0x819DECF '"[player] got [buffer1] back\nfrom t..."
callstd 0x4
call 0x81A6675
waitcry
goto 0x81BF541
end
'-----------------------
#org 0x1A6675
copyvar 0x8012 0x8013
return
'---------
' Strings
'---------
#org 0x19DD66
= I run the DAY-CARE service.\pWould you like me to raise one of\nyour POKéMON?
#org 0x19DDB2
= Come again.
#org 0x19DE80
= You owe me [$][buffer2] for the return\nof this POKéMON.
#org 0x19DDBE
= Which POKéMON should I raise?
#org 0x19DDF9
= Fine, I'll look after your\n[buffer1] for a while.
#org 0x19DE24
= Come see me in a while.
#org 0x19DF56
= Your [buffer1] has grown a lot.\nYes, quite a lot, I'd say.\pLet me see[.]\nBy level, it's grown by [buffer2].\pAren't I great?
#org 0x19DE3C
= You're back already?\pYour [buffer1] needs to spend\nsome more time with me.
#org 0x19E001
= You don't have enough money.
#org 0x19DDDC
= Fine.\nCome anytime you like.
#org 0x19DEF5
= Oh? You only have one POKéMON\nwith you.
#org 0x19DF1D
= If you leave me that POKéMON,\nwhat will you battle with?
#org 0x19DFC2
= You can't take this POKéMON back\nif you've got no room for it.
#org 0x19DEAF
= Thank you!\nHere's your POKéMON.
#org 0x19DECF
= [player] got [buffer1] back\nfrom the DAY-CARE MAN.
Un script un tanto largo xD, aun así me he puesto a leer y he identificado la parte que realmente nos interesa (está en negrita). Esa parte es simplemente la que tenemos que manipular para hacer nuestro script. Así que aquí dejo el script y su pequeña explicación para XSE y para pokescript:
#org 0xOFFSET
lock
faceplayer
msgbox 0xOFFSET > Lo que te dice antes de entregar el pokémon.
callstd 0x6
fadescreen 0x1 > Simplemente para que quede bien xD.
special 0xBC > Este especial hará que entremos al menú pokémon para entregarlo.
waitstate > Se usa después de algunos specials y en este lo usaremos.
compare 0x8004 0x6 > Comprueba si hemos salido del menú pokémon.
if 0x4 goto 0xOFFSET > Si salen del menú pokemon, les eviará al offset indicado.
special2 0x8005 0xBA - Comprueba cuál a sido el pokémon elegido.
msgbox 0xOFFSET > Lo que te dice cuando entregas el pokémon.
callstd 0x6
special 0x176 > Con este comando haremos que se entregue el pokemon (creo xD).
cmdC3 0x2F > Lo mismo que el de arriba (no estoy muy seguro pero creo que son complementarios)
release
end
No tengo actualizado el XSE xD.
lock
faceplayer
msgbox 0xOFFSET > Lo que te dice antes de entregar el pokémon.
callstd 0x6
fadescreen 0x1 > Simplemente para que quede bien xD.
special 0xBC > Este especial hará que entremos al menú pokémon para entregarlo.
waitstate > Se usa después de algunos specials y en este lo usaremos.
compare 0x8004 0x6 > Comprueba si hemos salido del menú pokémon.
if 0x4 goto 0xOFFSET > Si salen del menú pokemon, les eviará al offset indicado.
special2 0x8005 0xBA - Comprueba cuál a sido el pokémon elegido.
msgbox 0xOFFSET > Lo que te dice cuando entregas el pokémon.
callstd 0x6
special 0x176 > Con este comando haremos que se entregue el pokemon (creo xD).
cmdC3 0x2F > Lo mismo que el de arriba (no estoy muy seguro pero creo que son complementarios)
release
end
No tengo actualizado el XSE xD.
#org $comienzo
lock
faceplayer
message $1
$1 1 = (Lo que te dice antes de dar el pokémon)
fadescreen 1
special 0xBC
lock (Creo que pokescript no reconoce el comando waitstate, así que ponemos lock y una vez compilado, lo remplazamos con XSE).
compare 0x8004 0x6
if 0x4 goto $offset
special2 0x8005 0xBA
message $2
$2 1 = (Lo que te dirá después de dárselo).
boxset 6
special 0x176
lock
lock (Creo que pokescript no reconoce el comando cmdC3 0x2F, así que hacemos lo mismo que con el waitstate, pero sustituyendo los dos lock)
release
end
No explico los comandos porque ya los he explicado en el de XSE.
lock
faceplayer
message $1
$1 1 = (Lo que te dice antes de dar el pokémon)
fadescreen 1
special 0xBC
lock (Creo que pokescript no reconoce el comando waitstate, así que ponemos lock y una vez compilado, lo remplazamos con XSE).
compare 0x8004 0x6
if 0x4 goto $offset
special2 0x8005 0xBA
message $2
$2 1 = (Lo que te dirá después de dárselo).
boxset 6
special 0x176
lock
lock (Creo que pokescript no reconoce el comando cmdC3 0x2F, así que hacemos lo mismo que con el waitstate, pero sustituyendo los dos lock)
release
end
No explico los comandos porque ya los he explicado en el de XSE.
Ese sería el cuerpo del script, pero podéis jugar con los comandos para hacer un script más complejo.
Bueno, creo que está bien explicado y es un tutorial interesante (aunque haya gente que sepa hacerlo xD). Así que espero que os guste y si tienen alguna duda o problema no duden en preguntar.
Por cierto, pueden hacer que se muestre el nombre del pokémon que vayan a entregar usando [buffer1] (como si utilizaran [rival] para que se muestre el nombre del rival)
IMPORTANTE: Se me había olvidado decirlo, sólo lo he probado en fire red, no sé si en ruby funcionará. De todas formas pronto lo comprobaré.