Últimos temas
» Criptonita roja
por scissorsdays Ayer a las 10:16 pm

» Eventos comunes que siga en todo los mapas
por IvalteK_Dev Ayer a las 12:44 am

» AYUDA - AGREGAR MAS OPCIONES AL MENU INICIO
por GRECO21 Vie Sep 20, 2019 12:33 am

» Ayuda con el temporizador
por ToniEstheim Jue Sep 19, 2019 11:52 pm

» Necesito Charas de Aves para VX
por ChronoTXT Jue Sep 19, 2019 2:17 am

» [MV]Butterfly Paradox
por DopellSerch Mar Sep 17, 2019 6:29 am

» INSANE (juego de terror y puzzles)
por GRECO21 Lun Sep 16, 2019 4:25 am

» [Engine Vx Ace] Forzar Cerraduras (Versión 1.3)
por IvalteK_Dev Dom Sep 15, 2019 10:48 pm

» Como cambio esto?...
por Shy_Cream Dom Sep 15, 2019 9:05 pm

» [MV] ¿Cómo mover un sprite?
por DopellSerch Dom Sep 15, 2019 8:14 pm

» Zaza no konpasu (La Brújula de Zaza) [VXACE]
por Pocari Dom Sep 15, 2019 7:17 pm

» Pokemon Destiny
por Xaveguex Dom Sep 15, 2019 7:07 pm


[VX] Tutorial - Agregar nuevas opciones en Menú

Ir abajo

[VX] Tutorial - Agregar nuevas opciones en Menú Empty [VX] Tutorial - Agregar nuevas opciones en Menú

Mensaje por KRiZaLiD el Lun Abr 27, 2015 11:13 pm

Hace bastante tiempo deseaba agregar nuevas opciones al menú que viene por defecto en el RPG Maker VX. Pues lo he conseguido y lo comparto con ustedes.

=====================================================

Abran su proyecto y presionen F11 y abrirán el "editor de scripts". Luego sobre MAIN inserten un nuevo espacio para crear el nuevo script.

Ejemplo:
[VX] Tutorial - Agregar nuevas opciones en Menú QYVPKwx

Ahora en la nueva sección que crearon, copien y peguen el siguiente código:

Codigo:

Código:
class Scene_Menu < Scene_Base
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    s7 = "Opciones"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5,s7, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If there isn't any party members
      @command_window.draw_item(0, false)    # Disable "Items"
      @command_window.draw_item(1, false)    # Disable "Skills"
      @command_window.draw_item(2, false)    # Disable "Equipments"
      @command_window.draw_item(3, false)    # Disable "Status"
    end
    if $game_system.save_disabled            # If saving is forbidden
      @command_window.draw_item(4, false)    # Disable "Save"
    end
  end
end

Explicación del código:


Por defecto hay 6 variables locales, desde s1 hasta s6. Nosotros agregamos la "s7" y la llamamos "opciones". Si desean pueden agregar más.

Ahora en la variable @command_window la podemos editar:

Window_Command.new(160, [s1, s2, s3, s4, s5, s7, s6])

"160" es el ancho de la ventana en pixeles y los siguientes números es "el orden que se mostrarán".

Nuestro nuevo menú se verá así:

imagen:
[VX] Tutorial - Agregar nuevas opciones en Menú FPqS7U4

Si han seguido bien los pasos, verán en su proyecto que está la nueva opcion "Opciones", ahora hagan click sobre ella dentro del juego. ¿Que ha sucedido?

Cuando clikeamos sobre "Opciones" es como si clikearamos sobre "Fin del juego". Y en "Fin del Juego" no pasa nada. 

No se preocupen ya lo vamos a solucionar...

Tengan presente que nosotros elegimos este orden en @command_window
[s1, s2, s3, s4, s5, s7, s6]

Y debido a ese orden tiene el siguiente valor:
s1 = 0
s2 = 1
s3 = 2
s4 = 3
s5 = 4
s7 = 5
s6 = 6

Teniendo eso presente, continuaremos escribiendo el script.
Antes de cualquier cosa, BORREMOS EL ULTIMO "end" y así poder seguir escribiendo.

OBS: lo que ahora escribiremos debe estar debajo de todo.

=====================================================

codigo:

Código:
def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Habilidades, equipamiento, status
        start_actor_selection
      when 4      # Salvar
        $scene = Scene_File.new(true, false, false)
      when 5      # Fin del juego
        $scene = Scene_End.new
      end
    end
  end

Este código se puede leer así:

No es necesario que entiendan esto:


Si se pulsa boton B ( esc o x ) suena un SE y vuelve al mapa.
  ? Pero si pulsan el botón C ( Enter o espacio)
   ? Y dentro de esta condición si el grupo es igual a 0 y el cursor es menor que 4
       ? Si la ventana de comandos es menor que 4 suena el SE error.
          ? Si aún dentro de la condición presionas el botón : Pero si el salvar está desactivado y
             ? si el cursor de la ventana de comandos es igual , suena un SE y vuelve.
        ? Fin de la condición

• Si presionan el botón y ninguna de las condiciones anteriores se cumplen, suena un SE y continua.

• Si el Cursor se encuentra en:

? when 0 
? Se dirije a la ventana de items
? when 1 2 e 3
? Se dirigue a la ventana para elegir un personaje
? when 4
 ? Se dirigue a salvar el juego
? when 5 
 ? Se dirige a la ventana de Fin del Juego
  • end  
end
end
¿Pero recuerdan que arriba explicamos que el botón s7="opciones" tiene el valor 5? Y si hacemos click en él nos manda en la ventana de fin de juego.
Eso lo arreglaremos ahora.

Ahora peguemos el segundo código que escribimos debajo del primer código. Quedará así:

Codigo final:

Código:
class Scene_Menu < Scene_Base
   def create_command_window
     s1 = Vocab::item
     s2 = Vocab::skill
     s3 = Vocab::equip
     s4 = Vocab::status
     s5 = Vocab::save
     s6 = Vocab::game_end
     s7 = "Opciones"
     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s7, s6])
     @command_window.index = @menu_index
     if $game_party.members.size == 0
       @command_window.draw_item(0, false)
    @command_window.draw_item(1, false)
    @command_window.draw_item(2, false)
    @command_window.draw_item(3, false)
    end
    if $game_system.save_disabled
    @command_window.draw_item(4, false)
    end
end

    def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new    elsif Input.trigger?(Input::C)
    if $game_party.members.size == 0 and @command_window.index < 4
      Sound.play_buzzer
      return
    elsif $game_system.save_disabled and @command_window.index == 4
      Sound.play_buzzer
      return
    end
  Sound.play_decision
    case @command_window.index
    when 0    # Item
    $scene = Scene_Item.new
  when 1,2,3  # Habilidades, equipamiento, status
    start_actor_selection
  when 4      # Salvar
    $scene = Scene_File.new(true, false, false)
  when 5      # Fin del juego
    $scene = Scene_End.new
   end
  end
 end
end

Ahora debemos editar el script para que al clikear sobre "opciones" nos mande a otro lugar. Para ello primero debemos crear "otro script"
imagen:
[VX] Tutorial - Agregar nuevas opciones en Menú BhqDdqy
Ahora escribamos el siguiente código:

codigo:

Código:
class Scene_Option < Scene_Base
def initialize(indicador_inicial = 0)  
# Define que cuando llamamos el script, el index automaticamente será 0
    @indicador_inicial = indicador_inicial
    end

    def start
    super  
    create_menu_background
    criar_janela_deComandos_Options #Se dirige al método que crea una ventana de comandos
    end

    def terminate
    super
    dispose_menu_background
    @janela_deComando_Options.dispose
    end

    def update
    super  
    update_menu_background
  @janela_deComando_Options.update
    if Input.trigger?(Input::B)
    Sound.play_cancel
    $scene = Scene_Menu.new(5)  
    elsif Input.trigger?(Input::C)
    Sound.play_decision
    case @janela_deComando_Options.index
    when 0
    print "Si tienen un script como un bestiario o un mini juego de cartas, pueden agregarlo aqui y lo llaman con el respectivo Scene"
    when 1
    print "Recuerden, busquen en sus otros script la opcion Scene para agregarlos aqui"
    when 2
    $scene = Scene_Menu.new(5)
    when 3
    $scene = Scene_Map.new
    end
    end
    end

    def criar_janela_deComandos_Options
    option1 = "COSA UNO"
    option2 = "CoSA DOS"
    option3 = "Volver al Menú"
    option4 = "Volver al mapa"
    @janela_deComando_Options = Window_Command.new(260,[option1,option2,option3,option4])
    @janela_deComando_Options.index = @indicador_inicial
    @janela_deComando_Options.x = Graphics.width/2 - @janela_deComando_Options.width/2
    @janela_deComando_Options.y = Graphics.height/2 - @janela_deComando_Options.height/2
    end
end

Ahora vamos al primer script que hemos creado y nos dirigimos a la linea 43 y la editamos, escribamos lo siguiente:

Código:
$scene = Scene_Option.new

Esto hará que al clikear "opciones" nos envía al segundo script que creamos.

Y ahora para que funcione la opción "fin del juego", escribimos en la linea 44 lo siguiente:

Código:
when 6
           $scene = Scene_End.new

=====================================================

OBSERVACIÓN IMPORTANTE!

En el segundo script que creamos, debemos ver bien un número en la linea 25.
imagen:
[VX] Tutorial - Agregar nuevas opciones en Menú 09NijSs

Ahí tiene escrito el numero 5, ese es el valor de donde estará el cursor al volver al menú principal. Me explico, se vería feo si entro a opciones y luego al salir de opciones el cursor esta encima de item o estatus... ¿no es cierto? Jueguen con ese valor si crean mas opciones en el menú.

Ahora para arreglar el cursor al salir de la opción "Salir del juego" deben ir a Scene_End en el editor de script y dirigirse a la linea 42. Cambien el número 5 por un número 6.

imagen:
[VX] Tutorial - Agregar nuevas opciones en Menú ZxeTHgD

Si han puesto mas opciones dentro del menú, deben volver a cambiar ese número(a uno mas grande, ahí ustedes prueben).

=====================================================

Y eso sería todo! Ya tienen editado el Menú en su propio proyecto!

Créditos a modern Algebra y agradecimientos a ~ JV ~ por traducirlo y a rafidelis por su tutorial.

Espero que les sirva.
se despide KriZ

_________________
Mi Proyecto:
[VX] Tutorial - Agregar nuevas opciones en Menú VqJJJp

[VX] Tutorial - Agregar nuevas opciones en Menú AnrEWG[VX] Tutorial - Agregar nuevas opciones en Menú UqGVnKv

KRiZaLiD apoya:
[VX] Tutorial - Agregar nuevas opciones en Menú 3gqmui[VX] Tutorial - Agregar nuevas opciones en Menú GJ7qjn[VX] Tutorial - Agregar nuevas opciones en Menú ZhwnH1[VX] Tutorial - Agregar nuevas opciones en Menú NT6Pp7[VX] Tutorial - Agregar nuevas opciones en Menú WXmSrO[VX] Tutorial - Agregar nuevas opciones en Menú CKEALv
KRiZaLiD
KRiZaLiD
Moderador
Moderador

Masculino
Chile
RPG Maker : Vx
Mensajes : 856
Monedas : 4331
Reputación : 110
Edad : 34
Localización : Florida (pueblo fantasma), Chile

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.