Recopilación de Scripts Comentados
¿En qué consiste?
¡Muy buenas a todos! Bienvenidos a este humilde thread de caracter recopilatorio que, espero, se convierta en un útil recurso para todos los scripters, tanto para aprender como para ahorrar tiempo.
La idea del tema es reunir una gran cantidad de ejemplos de scripts, cuantos más mejor, que puedan servir para aprender y entender los comandos de una forma más práctica que en un tutorial. Asimismo, será útil para ahorrarnos tiempo a la hora de scriptear, ya que éstos estarán listos para insertar.
¿Por qué comentados? Sencillo: con el fin de entenderlos mejor, estos scripts han de estar explicados pero no tan a fondo como en un tutorial, sino con unas simples anotaciones (comentarios) dentro del mismo script que expliquen qué hace en su totalidad y qué hace cada comando.
La idea del tema es reunir una gran cantidad de ejemplos de scripts, cuantos más mejor, que puedan servir para aprender y entender los comandos de una forma más práctica que en un tutorial. Asimismo, será útil para ahorrarnos tiempo a la hora de scriptear, ya que éstos estarán listos para insertar.
¿Por qué comentados? Sencillo: con el fin de entenderlos mejor, estos scripts han de estar explicados pero no tan a fondo como en un tutorial, sino con unas simples anotaciones (comentarios) dentro del mismo script que expliquen qué hace en su totalidad y qué hace cada comando.
Diferencias con otros temas recopilatorios
En este tema se recopilarán absolutamente todo tipo de scripts: de npcs, de gatillos, de nivel... Y, además, de todas las complejidades posibles: desde un simple msgbox hasta un sistema completamente nuevo, todo lo que quieran aportar es bienvenido.
Entonces, se diferencia del tema de Recopilación de Scripts de Relleno porque no serán solamente textos de relleno para los npcs secundarios sino todo tipo de scripts, incluso de gatillo o nivel que no tienen por qué involucrar npcs. De más está decir que este tema no reúne solamente scripts de relleno sino también scripts que pueden ser relevantes en tu proyecto.
Similarmente, se diferencia del Tema de scripts de Miscelánea por su amplio alcance. No reuniremos solamente los sistemas sino todos los scripts que haya.
Por último, debo decir que este no es una combinación de dos temas antiguos, de ninguna manera. Es una propuesta superadora. Con fines de practicidad lo haremos lo más extensivo posible, facilitando su utilización para usuarios que no puedan conectarse a internet cada vez que quieran consultar una duda y, además, evitando la necesidad de hacer un copy&paste para insertarlos en una ROM. Mantendré personalmente una carpeta en Gogle Drive que contendrá todos los scripts en formate .pks (editables con RA) o .rbc (editables con XSE de haber alguno), según corresponda, y .txt (por si sólo quieres leerlos y no tienes RA ni XSE).
Entonces, se diferencia del tema de Recopilación de Scripts de Relleno porque no serán solamente textos de relleno para los npcs secundarios sino todo tipo de scripts, incluso de gatillo o nivel que no tienen por qué involucrar npcs. De más está decir que este tema no reúne solamente scripts de relleno sino también scripts que pueden ser relevantes en tu proyecto.
Similarmente, se diferencia del Tema de scripts de Miscelánea por su amplio alcance. No reuniremos solamente los sistemas sino todos los scripts que haya.
Por último, debo decir que este no es una combinación de dos temas antiguos, de ninguna manera. Es una propuesta superadora. Con fines de practicidad lo haremos lo más extensivo posible, facilitando su utilización para usuarios que no puedan conectarse a internet cada vez que quieran consultar una duda y, además, evitando la necesidad de hacer un copy&paste para insertarlos en una ROM. Mantendré personalmente una carpeta en Gogle Drive que contendrá todos los scripts en formate .pks (editables con RA) o .rbc (editables con XSE de haber alguno), según corresponda, y .txt (por si sólo quieres leerlos y no tienes RA ni XSE).
¿Cómo puedo colaborar?
Si bien yo agregaré tantos scripts como ideas tenga (siempre que tenga tiempo), todos son bienvenidos. La idea es que toda la comunidad contribuya con lo que quiera y pueda.
¿Y cómo lo haces?
Bueno, es muy sencillo. Solamente tienes que crear un script y postearlo aquí mismo. Yo me encargaré de editar este post para añadirlo a la lista y de agregarlo a la carpeta de Google Drive.
Para ahorrarme algo de trabajo, agradeceré que sigan el siguiente formato:
Si bien la idea es explicar todos los comandos, eso no quiere decir que haya que hacerlo en cada script. No es obligatorio explicar cada línea en cada script pero sí dar una explicación de los comandos que sean la base y, especialmente, si son raros o difíciles de entender.
Asimismo, si llevan parámetros, sería bueno puntualizar con lo que hacen en ese caso en particular. Por ejemplo, si hago un givepokemon con un bulbasaur, el comentario dirá algo como "Este comando te da un bulbasaur" y no "Este comando te da un pokémon".
¿Y cómo lo haces?
Bueno, es muy sencillo. Solamente tienes que crear un script y postearlo aquí mismo. Yo me encargaré de editar este post para añadirlo a la lista y de agregarlo a la carpeta de Google Drive.
Para ahorrarme algo de trabajo, agradeceré que sigan el siguiente formato:
AclaracionesEsquema dijo:Comentarios explicando cómo funciona en líneas generales el script: ¿qué hace?
Comandos del script (propiamente dicho), comentados con una explicación de qué hace puntualmente el comando.
Textos
Movimientos
Si bien la idea es explicar todos los comandos, eso no quiere decir que haya que hacerlo en cada script. No es obligatorio explicar cada línea en cada script pero sí dar una explicación de los comandos que sean la base y, especialmente, si son raros o difíciles de entender.
Asimismo, si llevan parámetros, sería bueno puntualizar con lo que hacen en ese caso en particular. Por ejemplo, si hago un givepokemon con un bulbasaur, el comentario dirá algo como "Este comando te da un bulbasaur" y no "Este comando te da un pokémon".
Por último, con el fin de mantener un formato en común: agradecería que pusieran primero todos los snippets, luego los textos y al final los movimientos.Ejemplo dijo:Correcto
givepokemon BULBASAUR 5 0 0 0 0 'Este comando te da un bulbasaur al nivel 5 sin objeto
Incorrecto
givepokemon BULBASAUR 5 0 0 0 0 'Este comando te da un pokémon
Código:
[SCRIPT]
// Este script se ejecuta al hablar con un npc.
// Lo que hace es:
// - Girar al npc para que mire al jugador.
// - Mostrar en pantalla el mensaje "¡Hey! ¿Cómo te va todo?"
#dynamic 0x800000 // Este comando indica dónde empezar a buscar espacio libre
#org @main
lock // Este comando interrumpe el movimiento del npc
loadpointer @texto // Aquí cargamos el texto a mostrar en la RAM
callstd 2 // Y aquí mostramos una caja de texto que lo contiene en pantalla
release // Permite al npc volver a moverse
end // Finaliza el script
#org @texto // Este es el texto que se mostrará en pantalla
// Los símbolos '$$' indican el final del texto, no se mostrarán en pantalla.
= ¡Hey! ¿Cómo te va todo?$$
[/SCRIPT]
¿Existe alguna restricción?
De ninguna manera.
Yo solamente postearé scripts de Red Alien y, como siempre, les recomiendo que hagan lo mismo. Sin embargo, no obligaré a nadie. Cada uno puede aportar scripts hechos para el editor que sea: RA, XSE, PKSV, SEA...
Dentro de la carpeta de Google Drive podrán encontrar una subcarpeta para cada editor, si es que hay scripts para él. Así que no teman, nadie va a morderlos por su elección de herramientas. ¡Lo único que hacen falta son ganas de ayudar un poco a la comunidad!
Yo solamente postearé scripts de Red Alien y, como siempre, les recomiendo que hagan lo mismo. Sin embargo, no obligaré a nadie. Cada uno puede aportar scripts hechos para el editor que sea: RA, XSE, PKSV, SEA...
Dentro de la carpeta de Google Drive podrán encontrar una subcarpeta para cada editor, si es que hay scripts para él. Así que no teman, nadie va a morderlos por su elección de herramientas. ¡Lo único que hacen falta son ganas de ayudar un poco a la comunidad!
Usuarios que han colaborado
- @EnamoratDeKatie
Lista de Scripts
Carpeta de Google Drive
Código:
[SCRIPT]
// Este script se ejecuta al hablar con un npc.
// Lo que hace es:
// - Girar al npc para que mire al jugador.
// - Mostrar en pantalla el mensaje "¡Hey! ¿Cómo te va todo?"
#dynamic 0x800000 // Este comando indica dónde empezar a buscar espacio libre
#org @main
lock // Este comando interrumpe el movimiento del npc
loadpointer @texto // Aquí cargamos el texto a mostrar en la RAM
callstd 2 // Y aquí mostramos una caja de texto que lo contiene en pantalla
release // Permite al npc volver a moverse
end // Finaliza el script
#org @texto // Este es el texto que se mostrará en pantalla
// Los símbolos '$$' indican el final del texto, no se mostrarán en pantalla.
= ¡Hey! ¿Cómo te va todo?$$
[/SCRIPT]
Código:
[SCRIPT]
// Este script se ejecuta al hablar con un npc.
// Lo que hace es:
// - Girar al npc para que mire al jugador.
// - Mostrar en pantalla el mensaje "¡Hey! ¿Cómo te va todo?"
#dynamic 0x800000 // Este comando indica dónde empezar a buscar espacio libre
#org @main
lock // Este comando interrumpe el movimiento del npc
faceplayer // Este comando hace que el npc mire al jugador
loadpointer @texto // Aquí cargamos el texto a mostrar en la RAM
callstd 6 // Y aquí mostramos una caja de texto que lo contiene en pantalla
release // Permite al npc volver a moverse
end // Finaliza el script
#org @texto // Este es el texto que se mostrará en pantalla
// Los símbolos '$$' indican el final del texto, no se mostrarán en pantalla.
= ¡Hey! ¿Cómo te va todo?$$
[/SCRIPT]
Código:
[SCRIPT]
// Este script se ejecuta al hablar con un npc.
// Lo que hace es:
// - Pregunta al jugador si sabe de scripts con una caja de SI/NO
// - Si la respuesta es afirmativa, salta y festeja con otro mensaje.
// - En caso contrario, exclama y se sorprende.
#include "stdlib/std.rbh" // Incluye algunas definiciones generales
#include "stdlib/stdmoves.rbh" // Incluye definiciones de movimientos
#dynamic 0x800000 // Este comando indica dónde empezar a buscar espacio libre
#org @main
lock // Este comando interrumpe el movimiento del npc
faceplayer // Este comando hace que el npc mire al jugador
loadpointer @texto // Aquí cargamos el texto a mostrar en la RAM
callstd 5 // Y aquí mostramos una caja de texto que lo contiene en pantalla
if (LASTRESULT == 1) { // Si la variable 0x800D tiene valor 1, dijo que sí
applymovement 1 @movimientosi // Mueve al npc 1 según @movimientosi
loadptr @sisabe
callstd 6
release // Permite al npc volver a moverse libremente
end // Termina el script
}
else {
applymovement 1 @movimientono // Mueve al npc 1 según @movimientono
loadptr @nosabe
callstd 6
release
end
}
#org @texto // Este es el texto que se mostrará en pantalla
// Los símbolos '$$' indican el final del texto, no se mostrarán en pantalla.
= ¿Sabes de scripts?$$
#org @sisabe
= ¡Sí sabe! ¡Sí sabeee!$$
#org @nosabe
= ¿¡Cómo!? ¿Aún no leísto un tuto?$$
#org @movimientosi
say_happy // Muestra una carita sobre su cabeza
jump_up // Salta en el lugar mirando hacia arriba
jump_up
jump_up
jump_up
look_right // Mira hacia la derecha (volver a mirar al jugador)
move_end // Termina los movimientos
#org @movimientono
say_!! // Muestra dos signos de exclamación sobre su cabeza
move_end
[/SCRIPT]
Código:
[SCRIPT]
// Este script se ejecuta al hablar con un npc (pensado para una pokeball).
// Lo que hace es:
// - Darle al prota una poción.
// - Mostrar un mensaje diciendo que la encontró
// - Hace desaparecer la pokeball
// - Impide que la pokeball vuelva a aparecer
#include "stdlib/std.rbh" // Incluye algunas definiciones generales
#include "stdlib/stditems.rbh" // Incluye definiciones de objetos
#dynamic 0x800000 // Este comando indica dónde empezar a buscar espacio libre
#org @main
// Este comando te da 1 poción y muestra un mensaje diciendo que la encontraste
giveitem ITEM_POTION 1 MSG_FIND
hidesprite 1 // Esconde al npc con imagen de pokeball
setflag 0x100 // Activa la flag número 0x100 para que no vuelva a aparecer
end // Finaliza el script
[/SCRIPT]
Código:
[SCRIPT]
// Este script se ejecuta al hablar con un npc.
// Lo que hace es:
// - Revisar si ya le ha dado un pokémon al jugador.
// - Si no se lo ha dado, revisar si es chico o chica.
// - Si es chico, le da un jynx.
// - Si es chica, le da un electabuzz.
// - Impide que te de otro pokemon al volver a hablarle.
#include "stdlib/std.rbh" // Incluye algunas definiciones generales
#include "stdlib/stditems.rbh" // Incluye definiciones de objetos
#include "stdlib/stdpoke.rbh" // Incluye definiciones de pokémon
#define es_chico 0 // En lugar de escribir 0, escribiremos 'es_chico'
#dynamic 0x800000 // Este comando indica dónde empezar a buscar espacio libre
#org @main
lock // Este comando interrumpe el movimiento del npc
faceplayer // Este comando hace que el npc mire al jugador
if (0x40FF != 0) { // Si la variable 0x40FF es distinta a 0, ya te dio un poke
loadptr [MENTION=36134]Yat[/MENTION]ediunpoke
callstd 6
release // Permite al npc moverse de nuevo
end // Finaliza el script
}
checkgender // Este comando revisa si el jugador es chico o chica
if (LASTRESULT == es_chico) { // Si la variable 0x800D tiene valor 0, es chico
loadptr [MENTION=35709]pokemo[/MENTION]nchico
callstd 6
// Te da un jynx al nivel 5 con una baya aranja
givepokemon JYNX 5 ITEM_ORANBERRY 0 0 0
addvar 0x40FF 1 // Impide que te vuelva a dar el poke si le hablas otra vez
release
end
}
else { // Si el valor es 1, es chica
loadptr [MENTION=35709]pokemo[/MENTION]nchica
callstd 6
// Te da un electabuzz al nivel 5 con una baya meloc
givepokemon ELECTABUZZ 5 ITEM_PECHABERRY 0 0 0
addvar 0x40FF 1 // Impide que te vuelva a dar el poke si le hablas otra vez
release
end
}
#org [MENTION=35709]pokemo[/MENTION]nchico
= Te daré un Jynx.$$
#org [MENTION=35709]pokemo[/MENTION]nchica
= Te daré un electabuzz.$$
[/SCRIPT]
Código:
[SCRIPT]
// Este script se ejecuta al hablar con un npc.
// Lo que hace es:
// - Revisar cuántos pokémon tiene el jugador en el equipo
// - Si tiene menos de 6 (el equipo no está lleno), lo completa con pikachus
// - En caso contrario, no hace nada (ni un mensaje)
#include "stdlib/std.rbh" // Incluye algunas definiciones generales
#include "stdlib/stditems.rbh" // Incluye definiciones de objetos
#include "stdlib/stdpoke.rbh" // Incluye definiciones de pokémon
#dynamic 0x800000 // Este comando indica dónde empezar a buscar espacio libre
#org @main
lock // Este comando interrumpe el movimiento del npc
faceplayer // Este comando hace que el npc mire al jugador
loadptr @mensaje // Carga un mensaje en la RAM
callstd 6 // Muestra el mensaje cargado en una caja de texto en pantalla
countpokemon // Guarda en la variable 0x800D la cantidad de pokémon en el equipo
while (LASTRESULT < 6) { // Mientras el equipo no esté lleno, se ejecuta esto
loadptr @tomapikachu
callstd 6
// Te da un pikachu al nivel 1 con una poción
givepokemon PIKACHU 1 ITEM_POTION 0 0 0
countpokemon // Actualiza el valor de 0x800D con la cantidad de pokémon en el equipo
}
release // Permite al npc moverse libremente
end // Finaliza el script
#org @mensaje
= Te llenaré el equipo de Pikachus.$$
#org @tomapikachu
= Toma un Pikachu.$$
[/SCRIPT]
Código:
[SCRIPT]
// Este script se ejecuta al pisar un bloque predeterminado del mapa.
// Lo que hace es:
// - Mostrar en pantalla el mensaje "¡Hey! ¿Cómo te va todo?"
// - Sumar 1 a la variable 0x40FF para que no vuelva a ejecutarse la
// próxima vez que pises ese espacio.
#dynamic 0x800000 // Este comando indica dónde empezar a buscar espacio libre
#org @main
loadpointer @texto // Aquí cargamos el texto a mostrar en la RAM
callstd 2 // Y aquí mostramos una caja de texto que lo contiene en pantalla
addvar 0x40FF 1 // Esto suma 1 a la variable para que el script no se ejecute de nuevo
end // Finaliza el script
#org @texto // Este es el texto que se mostrará en pantalla
// Los símbolos '$$' indican el final del texto, no se mostrarán en pantalla.
= Siento algo... Extraño.$$
[/SCRIPT]