Author Id: 13374 Author Name: Javi4315♪ Post Content: [url=http://wahackforo.com/98107-post9.html]¡Ir a la versión 2.0![/url] ___________________________ ¿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): [URL=http://www.youtube.com/watch?v=WjFfFtmMVL4]YouTube Video[/URL] 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: [quote]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.[/quote] 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: [spoiler=Script de la guardería]'----------------------- #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 [$] 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 '----------------------- #org 0x1BF541 hidemoney 0x0 0x0 release end '----------------------- #org 0x1BF4AA msgbox 0x819DF56 '"Your has grown a lot.\nYe..." callstd 0x4 return '----------------------- #org 0x1BF4B3 msgbox 0x819DE3C '"You're back already?\pYour got 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 [$] for the return\nof this POKéMON. #org 0x19DDBE = Which POKéMON should I raise? #org 0x19DDF9 = Fine, I'll look after your\n for a while. #org 0x19DE24 = Come see me in a while. #org 0x19DF56 = Your has grown a lot.\nYes, quite a lot, I'd say.\pLet me see[.]\nBy level, it's grown by .\pAren't I great? #org 0x19DE3C = You're back already?\pYour 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 back\nfrom the DAY-CARE MAN.[/spoiler] 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: [spoiler=Script en XSE]#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.[/spoiler] [spoiler=Script en pokescript]#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.[/spoiler] 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 (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é.