Author Id: 12278 Author Name: Zik Post Content: Que tal gente. Aquí un tutorial o mas bien una explicación de como hacer un script parecido al los de Pokemon Diamante o Perla. ¿A cual me refiero?, pues como el titulo lo dice al de la miel en los arboles. Obviamente no sera igual pero la intención de crearlo es lo que cuenta no....? xP Bueno empecemos, pero antes que nada si eres novato en esto de scripts y no entiendes muy bien los comandos todavía, esto se te hará un poco dificultoso, hasta creo que los scripters de nivel medio y uno que otro de nivel alto se confundirán.(Yo no soy de nivel alto pero bueno xD.) Primero que nada explicare dos formas de hacerlo, una sirve para RUBY y ESMERALDA y la otra para FIRE RED(Aunque la de FIRE RED tanbien sirve para RUBY y ESMERALDA). 1º Forma (RUBY y ESMERALDA) Bueno asi debe de ir el script. [spoiler=Pulsa para desplegar este spoiler]'--------------- #org 0x(Escojamos una dirección libre "Dir1") checkdailyflags checkflag 0x(Escojamos una flag que este libre) if 0x1 goto 0x(Dir2) compare 0x(Escojemos una variable libre) 0x1 if 0x1 goto 0x(Dir3) msgbox 0x(Dir4) MSG_KEEPOPEN '"Este parece un buen arbol para pon..." checkitem 0x48 0x1 compare LASTRESULT 0x0 if 0x1 goto 0x(Dir5) msgbox 0x(Dir6) MSG_YESNO '"¿Quieres poner miel?" compare LASTRESULT 0x1 if 0x1 call 0x(Dir7) compare LASTRESULT 0x0 if 0x1 goto 0x(Dir8) msgbox 0x(Dir9) MSG_FACE '"Bueno ahora solo hay que esperar." setflag 0x(La misma flag que habíamos escojido) end '--------------- #org 0x(Dir2) msgbox 0x(Dir10) MSG_FACE '"Aun no hay nada." end '--------------- #org 0x(Dir3) setvar 0x(La variable que escojimos al principio) 0x0 msgbox 0x(Dir11) MSG_FACE '"¡Genial! parace que la miel atrajo..." random 0x4 copyvar 0x(Escojemos otra variable) LASTRESULT compare 0x(Aquí va la misma variable que acabamos de escojer) 0x0 if 0x1 goto 0x(Dir12) compare 0x(Aquí igual) 0x1 if 0x1 goto 0x(Dir13) compare 0x(La misma) 0x2 if 0x1 goto 0x(Dir14) compare 0x(Y otra vez ponen la misma) 0x3 if 0x1 goto 0x(Dir15) end '--------------- #org 0x(Dir5) msgbox 0x(Dir16) MSG_FACE '"Lastima que no tenga." end '--------------- #org 0x(Dir7) removeitem 0x48 0x1 bufferitem 0x0 0x48 msgbox 0x(Dir17) MSG_FACE '"[player] puso sobre el arbol." sound 0x46 pause 0x30 addvar 0x(La variable que escojimos al principio) 0x1 return '--------------- #org 0x(Dir8) msgbox 0x(Dir18) MSG_FACE '"Mejor la uso en otro momento." end '--------------- #org 0x(Dir12) wildbattle 0xC 0xA 0x0 end '--------------- #org 0x(Dir13) wildbattle 0xF 0xA 0x0 end '--------------- #org 0x(Dir14) wildbattle 0x7F 0xA 0x0 end '--------------- #org 0x(Dir15) wildbattle 0xD6 0xA 0x0 end '--------- ' Strings '--------- #org 0x(Dir4) = Este parece un buen arbol para poner miel. #org 0x(Dir6) = ¿Quieres poner miel? #org 0x(Dir9) = Bueno ahora solo hay que esperar. #org 0x(Dir10) = Aun no hay nada. #org 0x(Dir11) = ¡Genial! parace que la miel atrajo un pokmon. #org 0x(Dir16) = Lastima que no tenga. #org 0x(Dir17) = [player] puso sobre el arbol. #org 0x(Dir18) = Mejor la uso en otro momento.[/spoiler] ( O _o) Lo se.... Hasta a mi me confunde y eso que yo hice el script..... xD Pero tranquilos explicare para que sirve cada comando que hay en el script. NOTA: Los "Dir1, Dir2, Dir3....." significan que deben poner una direccion libre, les digo esto para que no se confundan. :) Empezemos: checkdailyflags checkflag 0x if 0x1 goto 0x(Dir2) El comando "checkdailyflags" Sirve para hacer que el evento se repita diariamente(Para tener mas informacion y saber como usar este comando dale clic [url=http://wahackforo.com/t-Eventos-Diarios]Aqui[/url]). El "checkflag" pues como su nombre lo dice revisara si la flag esta activada o no, en caso de que este activada ahi es donde entra en funcion el "if 0x1 goto", que nos mandara al la direccion donde esta lo que pasara mientras no se cumpla el dia que viene siendo esta parte del script: [spoiler=Pulsa para desplegar este spoiler] #org 0x(Dir2) msgbox 0x(Dir10) MSG_FACE '"Aun no hay nada." end [/spoiler] ---------------------------------------------------- compare 0x(variable libre) 0x1 if 0x1 goto 0x(Dir3) El "compare" revisara si la variable que escojimos tiene el valor "1" y en caso de que lo tenga el "if 0x1 goto" nos mandara a esta parte del script: [spoiler=Pulsa para desplegar este spoiler] #org 0x(Dir3) setvar 0x(La variable que escojimos al principio) 0x0 msgbox 0x(Dir11) MSG_FACE '"¡Genial! parace que la miel atrajo..." random 0x4 copyvar 0x(Escojemos otra variable) LASTRESULT compare 0x(Aquí va la misma variable que acabamos de escojer) 0x0 if 0x1 goto 0x(Dir12) compare 0x(Aquí igual) 0x1 if 0x1 goto 0x(Dir13) compare 0x(La misma) 0x2 if 0x1 goto 0x(Dir14) compare 0x(Y otra vez ponen la misma) 0x3 if 0x1 goto 0x(Dir15) end [/spoiler] ---------------------------------------------------- msgbox 0x(Dir4) MSG_KEEPOPEN Esto es un simple msbox 0x(Direccion libre) 0x2 Es para un simple mensage como este "Este parece un buen arbol para poner miel." ---------------------------------------------------- checkitem 0x48 0x1 compare LASTRESULT 0x0 if 0x1 goto 0x El "checkitem" revisara si tenemos el item que vamos a utilizar en este caso "La miel", pero como en RUBY, ESMERALDA o FIRE RED no existe la miel, tendran que editar algun item existente o crear uno nuevo( hay espacio libre para agregar nuevos items y herramientas que sirven para editar y/o agregar items, solo es cuestion de que se las ingienen). En mi caso yo agregue el item. NOTA: El "checkitem es muy parecido a un "giveitem" y va asi "checkitem 0x(Item a checar) 0x(Cantidad que se checara) El "compare LASTRESULT 0x0" compara si el valor generado anteriormente es 0(eso ocurre si no tenemos el item) y el "if 0x1 goto" nos mandara, en caso de que no tengamos el item a esta parte del script: [spoiler=Pulsa para desplegar este spoiler] #org 0x(Dir5) msgbox 0x(Dir16) MSG_FACE '"Lastima que no tenga." end [/spoiler] Que es lo que quieres que diga en caso de que no tenga el item. ---------------------------------------------------- msgbox 0x(Dir6) MSG_YESNO '"¿Quieres poner miel?" compare LASTRESULT 0x1 if 0x1 call 0x(Dir7) compare LASTRESULT 0x0 if 0x1 goto 0x(Dir8) Ahora aqui aplicaremos un msgbox pero con el cuadro "YES/NO"(para usarlo solo pongan "msgbox 0x(Direccion libre) 0x5") El "compare LASTRESULT 0x1" Se encarga de comparar si el valor generado anteriormente es "1"(Eso ocurre si escojemos SI) y como dije entre parentesis si ecojemos SI el "if 0x1 call" llamara a esta parte del script: [spoiler=Pulsa para desplegar este spoiler] #org 0x(Dir7) removeitem 0x48 0x1 bufferitem 0x0 0x48 msgbox 0x(Dir17) MSG_FACE '"[player] puso sobre el arbol." sound 0x46 pause 0x30 addvar 0x(La variable que escojimos al principio) 0x1 return [/spoiler] Para no explicar mas, en caso de escojer "NO" el "compare LASTRESULT 0x0" y el "if 0x1 goto" funcionaran igual que el anterior solo que estos en vez de llamar nos mandaran a esta parte del script: [spoiler=Pulsa para desplegar este spoiler] #org 0x(Dir8) msgbox 0x(Dir18) MSG_FACE '"Mejor la uso en otro momento." end [/spoiler] Que es un mensaje de lo que dice el jugador si escogemos "NO" ---------------------------------------------------- msgbox 0x(Dir9) MSG_FACE '"Bueno ahora solo hay que esperar." setflag 0x(La misma flag que habíamos escojido) Si escojimos "SI" despues de que llamaron a esa parte del script, el msgbox es un simple mensaje para poner lo que quieres que diga despues de usar la miel por ejemplo: '"Bueno ahora solo hay que esperar." y el "setflag 0x" activa la flag que aviamos usado al principio. Parte del script: "Usando la miel" Ahora explicare esta parte del script: [spoiler=Pulsa para desplegar este spoiler] #org 0x(Dir7) removeitem 0x48 0x1 bufferitem 0x0 0x48 msgbox 0x(Dir17) MSG_FACE '"[player] puso sobre el arbol." sound 0x46 pause 0x30 addvar 0x(La variable que escojimos al principio) 0x1 return [/spoiler] removeitem 0x48 0x1 Este comando como el nombre lo dice, solo nos quita el item que vamos a usar(en este caso la miel) y se usa asi "removeitem 0x(item a remover) 0x(cantidad que se quitara)" ---------------------------------------------------- bufferitem 0x0 0x48 Este comando es opcional, solo sirve para cuando hagamos un msgbox en vez de poner "miel" ponemos "" y cuando ocurra el msgbox aparecera "Miel". Hay otros estilos de "buffer", pero se los explicare en otra ocacion. ---------------------------------------------------- msgbox 0x(Dir17) MSG_FACE '"[player] puso sobre el arbol." Otro msgbox simple para poner un mensaje simple como este "Player puso miel sobre el arbol o ect. ---------------------------------------------------- sound 0x46 pause 0x30 Un simple "sound" para darle un poco mas de vida al script(en este caso use el sound 0x46 que es sonido que haces cuando caminas sobre el agua) Y el "pause", pues para que se vea mejor el script xD ---------------------------------------------------- addvar 0x(La variable que escojimos al principio) 0x1 Este es el que hace el truco para cuando pase un dia en vez de que ocurra lo mismo ocurra otra cosa, si se acuerdan al principio del script estaba ese "compare" que checaba si la variable que habiamos escojido tenia el valor "1" nos mandaba a otra direccion. Al principio no ocurre nada ya que el valor de la variable es "0" pero este "addvar" le suma uno a esa variable, asi cuando ocurra otra vez el script nos mandara a esta parte del script: [spoiler=Pulsa para desplegar este spoiler] #org 0x(Dir3) setvar 0x(La variable que escojimos al principio) 0x0 msgbox 0x(Dir11) MSG_FACE '"¡Genial! parace que la miel atrajo..." random 0x4 copyvar 0x(Escojemos otra variable) LASTRESULT compare 0x(Aquí va la misma variable que acabamos de escojer) 0x0 if 0x1 goto 0x(Dir12) compare 0x(Aquí igual) 0x1 if 0x1 goto 0x(Dir13) compare 0x(La misma) 0x2 if 0x1 goto 0x(Dir14) compare 0x(Y otra vez ponen la misma) 0x3 if 0x1 goto 0x(Dir15) end [/spoiler] ---------------------------------------------------- return Solo sirve para regresar al script principal. (recuenden que este script fue llamado, por lo tanto en vez de poner "end" ponen "return") Parte del script: "La miel atrajo un pokemon" Ahora explicare esta parte del script: [spoiler=Pulsa para desplegar este spoiler] #org 0x(Dir3) setvar 0x(La variable que escojimos al principio) 0x0 msgbox 0x(Dir11) MSG_FACE '"¡Genial! parace que la miel atrajo..." random 0x4 copyvar 0x(Escojemos otra variable) LASTRESULT compare 0x(Aquí va la misma variable que acabamos de escojer) 0x0 if 0x1 goto 0x(Dir12) compare 0x(Aquí igual) 0x1 if 0x1 goto 0x(Dir13) compare 0x(La misma) 0x2 if 0x1 goto 0x(Dir14) compare 0x(Y otra vez ponen la misma) 0x3 if 0x1 goto 0x(Dir15) end [/spoiler] setvar 0x(La variable que escojimos al principio) 0x0 Este comando volverá a asignar el valor "0" a la variable que habíamos escogido al principio, esto es para que el script vuelva a estar como antes y podamos utilizarlo normalmente otra vez. ---------------------------------------------------- msgbox 0x(Dir11) MSG_FACE '"¡Genial! parace que la miel atrajo..." Esto es un simple msgbox para poner ese mensaje como "La miel atrajo un pokemon" o ect. ---------------------------------------------------- random 0x4 copyvar 0x(Escojemos otra variable) LASTRESULT compare 0x(Aquí va la misma variable que acabamos de escojer) 0x0 if 0x1 goto 0x(Dir12) compare 0x(Aquí igual) 0x1 if 0x1 goto 0x(Dir13) compare 0x(La misma) 0x2 if 0x1 goto 0x(Dir14) compare 0x(Y otra vez ponen la misma) 0x3 if 0x1 goto 0x(Dir15) El comando "random" hace el truco de que pueda salir uno u otro pokemon dependiendo de cuantos pokemons diferentes quieren que salgan. El "copyvar" sirve para copiar el valor que genere random a una nueva variable libre que escojamos, por eso esta ese "LASTRESULT" ahí. Y los cuatro "compare" sirven para que nos manden a una distinta dirección dependiendo de que valor aya generado random, que viene siendo esta parte del script: [spoiler=Pulsa para desplegar este spoiler]'--------------- #org 0x(Dir12) wildbattle 0xC 0xA 0x0 end '--------------- #org 0x(Dir13) wildbattle 0xF 0xA 0x0 end '--------------- #org 0x(Dir14) wildbattle 0x7F 0xA 0x0 end '--------------- #org 0x(Dir15) wildbattle 0xD6 0xA 0x0 end[/spoiler] Si no sabes usar o no tienes idea de que es el comando random dale clic [url=http://wahackforo.com/t-Comando-Random]aqui[/url], es un tutorial donde explico como usar ese comando(La tercera forma de uso es la que uso en este script) Y bueno ya después de que nos envió a alguna de las cuatro direcciones que puse solo deben poner un simple wildbattle para que luchen contra un pokemon( los cuatro pokemons que yo elegí que pudieran salir fueron "Heracross", "Butterfre", "Bedrill" y "Pinsir" no me acuerdo como se escriben pero bueno, luego edito. xD Bueno y así eh terminado de explicar la primera forma de usarlo, si los confundí mas con la explicación haganmelo saber xD. Y perdón si hubo errores ortográficos Luego edito con la otra forma que sirve para FIRE RED y traeré vídeos para que vean como funciona el script. :D