Antes de partir, les sugiero NO borrar este script, pues se utilizará mucho de aqui en adelante, comencemos
Lo que haremos es agregar un comando nuevo al menu de opciones del juego, para esto necesitamos llamar a la ventana que hace esto, que seria Scene_menu, si no damos cuenta, que en ese lado sale, skill, item, etc (de color anaranjado o algo asi), esto lo que hace es ponerle el nombre a la opcion y luego llamar al metodo, para que haga que se meta en la opcion. En nuestro nuevo script pondremos, class Scene_Menu < Scene_MenuBase , luego de esto, copiaremos justo ese metodo donde salen esas opciones, quedaria algo asi:
class Scene_menu < Scene_Menubase
def create_command_window
@command_window = Window_MenuCommand.new
@command_window.set_handler(:item, method(:command_item))
@command_window.set_handler(:skill, method(:command_personal))
@command_window.set_handler(:equip, method(:command_personal))
@command_window.set_handler(:status, method(:command_personal))
@command_window.set_handler(:formation, method(:command_formation))
@command_window.set_handler(:save, method(:command_save))
@command_window.set_handler(:game_end, method(:command_game_end))
@command_window.set_handler(:cancel, method(:return_scene))
end
end
Luego de esto, crearemos un alias, que hara que queden todas las funciones originales, para luego colocar la nuestra, esto quiere decir, que no modificaremos las originales, aca pueden usar cualquier nombre, yo le puse alias mono_scenemenu_ccw_nuevocomando y al lado el metodo.
Luego de esto, como siempre, borramos todo lo que tiene adentro y colocamos nuestro alias, sin el metodo al lado, Dejaremos o veremos si ya lo borraron, uno de los que tenia antes, para que nos sirva de ejemplo.
En el que dejamos, veremos que tiene las siguientes cosas:
@command_window.set_handler(:equip, method(:command_personal))
Donde :equip es el nombre de la opcion y method(:command_personal) es el metodo que llamará la opcion, entonces cambiaremos el nombre y le pondremos lo que queramos, yo le pondre Nuevo y el metodo, lo llamremos :command_Nuevo , si queremos saber porque es que lleva el nombre y el metodo, tendremos que buscar el porque dentro de los scripts, para esto apretamos, click derecho y buscamos "set_handler"
si nos damos cuenta, el primero que sale es una definicion del set_handler, y al lado sale (symbol, method), si pensamos bien es exactamente lo que estamos haciendo ahora, colocandole una palabra y luego un metodo, es solamente porque asi esta definido.
Una vez hecho esto buscaremos el que pondra nuestra opcion en el juego, para esto nos vamos a Window_MenuCommand y copiaremos y pegaremos en nuestro script la siguiente linea, que hace que se agreguen nuevos comandos:
def add_original_commands
end
Y tambien la clase heredada, o sea:
class Window_MenuCommand < Window_Command
Una vez pegado, le pondremos dentro de este metodo, esto de aca que se encuentra tambien en el window_menucommand:
add_command(Vocab::item, :item, main_commands_enabled)
Esto loq eu hace es agregar al menu nuestra opcion, con el nombre, lo que hace y si se puede seleccionar o no desde el menu.
entonces colocaremos un nombre que queramos, le pondre igual que el metodo "Nuevo" (entre comillas) y le colocaremos el nombre que llevaba la opcion :Nuevo , luego le colocaremos true, porque queremos seleccionarla, de otra manera si le ponemos false, no podremos entrar en ella.
Luego de esto, tendremos que ponerle un alias a nuestro comando, para no modificar el original, yo le pondre mono_windmenucomm_addorcomm_nuevopalabra, luego de esto le pondremos, dentro del metodo, pero sin borrar lo que hicimos, quedaria algo asi hasta ahora
class Window_MenuCommand < Window_Command
alias mono_windmenucomm_addorcomm_nuevopalabra add_original_commands
def add_original_commands
mono_windmenucomm_addorcomm_nuevopalabra
add_command("Nuevo", :Nuevo, true) # Crea solo la palabra el menu
end
end
class Scene_Menu < Scene_MenuBase
alias mono_scenemenu_ccw_nuevocomando create_command_window
def create_command_window
mono_scenemenu_ccw_nuevocomando
@command_window.set_handler(:Nuevo, method(:command_Nuevo))
end
end
Por último nos queda es colocar, que hacer cuando se selecciona la opcion, ya que si hasta ahora nos metemos en el juego, nos tirara error, porque no esta definido el metodo :command_Nuevo, es por esto, que lo haremos debajo de este, pondremos un def con el nombre del metodo llamado en el set_handler, y lo cerraremos, de esta manera
def command_Nuevo
end
Ahora si nuestra opcion esta lista para ser seleccionada, aunque no hará absolutamente nada jajaja, porque no hay nada dentro de ella, pero no se preocupen, porque este script no queda, hasta alli, luego haremos que haga por lo menos algo.
Por ahora les dejare el script completo y ordenado, para que se ubiquen y con algunas reseñas para que entiendan como va:
#=============================================================================
# WINDOW
#=============================================================================
class Window_MenuCommand < Window_Command
alias mono_windmenucomm_addorcomm_nuevopalabra add_original_commands
def add_original_commands
mono_windmenucomm_addorcomm_nuevopalabra
add_command("Nuevo", :Nuevo, true) # Crea solo la palabra el menu
end
end
#=============================================================================
# SCENE
#=============================================================================
class Scene_Menu < Scene_MenuBase
alias mono_scenemenu_ccw_nuevocomando create_command_window
def create_command_window
mono_scenemenu_ccw_nuevocomando
@command_window.set_handler(:Nuevo, method(:command_Nuevo))
end
def command_Nuevo #~Que pasa si aprieto en la opcion
end
end
#=============================================================================
Bueno es todo por ahora, nos veremos mas adelante, para seguir arreglando este script y se viene cada vez mas pesado, asi que recuerden como hacer cada cosa... por ahora les digo...
No hay comentarios:
Publicar un comentario