¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3396 miembros registrados.
El último usuario registrado es Discorded.

Nuestros miembros han publicado un total de 79808 mensajes en 11257 argumentos.
Navega con Google Chrome
[DESCARGA]

[RMXP] Menú con Faces.

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMXP] Menú con Faces.

Mensaje por logos el 2009-08-09, 23:11

Em Bueno pues este es un Menú que trate de hacer viendo el Menú del FF IV en realidad no me quedo del todo Igual, pero bueee lo hice mas que todo para practicar lo ultimo que ponia el tuto de Metalero y pues cambie algunas posiciones del Menú :P como se que existen mas de estos scripts (y mejores) pues ovbiamente NO pido creditos ademas que todo lo hice siguiendo el tuto de Metalero y no esta hecho desde 0 solo edite algunas cosas. Como dije solo queria practicar pero pues si a alguien le sirve.... que copie esto encima del Main y le ponga el nombre que quiera.

Código:
# Bueno este es un estilo de Menú como el Final fantasy o eso es lo que aparenta ser
# :P lo hice para practicar un poco y como hay tantos de estos scripts y mejores no
# Pido creditos ya que dudo que alguien lo vaya a usar, pero por si las moscas Ahi
# taaa  =).  Logos
class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 480, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 64
      y = i * 116
      actor = $game_party.actors[i]
      faces(actor, x - 27, y + 80)
      draw_actor_name(actor, x + 20, y)
      draw_actor_class(actor, x + 144, y)
      draw_actor_level(actor, x + 20, y + 32)
      draw_actor_state(actor, x + 90, y + 32)
      draw_actor_exp(actor, x + 20, y + 64)
      draw_actor_hp(actor, x + 236, y + 32)
      draw_actor_sp(actor, x + 236, y + 64)
    end
  end
  #--------------------------------------------------------------------------
  # * Cursor Rectangle Update
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
    end
  end
end
# aqui viene el scene Menu
class Scene_Menu
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Make command window
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Estatus"
    s5 = "Salvar"
    s6 = "Fin del Juego"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    @command_window.x = 480
    @command_window.y = 0
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    # If save is forbidden
    if $game_system.save_disabled
      # Disable save
      @command_window.disable_item(4)
    end
    # Make play time window
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 480
    @playtime_window.y = 320
    # Make gold window
    @gold_window = Window_Gold.new
    @gold_window.x = 480
    @gold_window.y = 416
    # Make status window
    # Make window steps
    @steps_window = Window_Steps.new
    @steps_window.x = 480
    @steps_window.y = 223
    @status_window = Window_MenuStatus.new
    @status_window.x = 0
    @status_window.y = 0
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update windows
    @command_window.update
    @playtime_window.update
    @steps_window.update
    @gold_window.update
    @status_window.update
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
    # If status window is active: call update_status
    if @status_window.active
      update_status
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when command window is active)
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If command other than save or end game, and party members = 0
      if $game_party.actors.size == 0 and @command_window.index < 4
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Branch by command window cursor position
      case @command_window.index
      when 0  # item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to item screen
        $scene = Scene_Item.new
      when 1  # skill
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4  # save
        # If saving is forbidden
        if $game_system.save_disabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to save screen
        $scene = Scene_Save.new
      when 5  # end game
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when status window is active)
  #--------------------------------------------------------------------------
  def update_status
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Make command window active
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 1  # skill
        # If this actor's action limit is 2 or more
        if $game_party.actors[@status_window.index].restriction >= 2
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to skill screen
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to status screen
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end

Los faces deben ir en la carpeta graphics/pictures con el nombre exacto del grafico del heroe digamos los faces que puse yo se llaman respectivamente

001-Fighter01, 010-Lancer02, 013-Warrior01, 019-Thief04. los faces que puse para que se vieran bien son de 86x86

En el Maker deberia verse asi:

Spoiler:

bueno pues eso es todo, se que es poco pero por algo se empieza, quizas en un futuro les traiga mejores y mas complejos scripts. :P

Saludos.

Logos

logos
Veterano
Veterano

0/3

Créditos 1670

Gracias : 60

Volver arriba Ir abajo

Re: [RMXP] Menú con Faces.

Mensaje por Metalero el 2009-08-10, 00:17

Jajaja, eta muy bien logos, nada mal.

Ya que estamos les voy a dejar lo que fue el primer Menu copado que hice, cuando aun trabajaba en un proyecto personal.
Spoiler:








Supongo que seria una buena clase trabajar sobre estos menues, para personalizarlos. (a ver si alguno hace algo como el de Legends Of Time)

_________________

Metalero
Administrador
Administrador



Créditos 1715

Gracias : 98

Volver arriba Ir abajo

Re: [RMXP] Menú con Faces.

Mensaje por logos el 2009-08-10, 00:54

Jejeje gracias, tu Menú esta genial trate de hacer algo parecido y ovbiamente no pude TT___TT lo maximo que logre fue que quedara transparente y que tuviera un fondo, asi que si a alguien le interesa por si acaso, con este nuevo script les quedaran las ventanas transparentes y con un fondo.

Código:
# Bueno este es un estilo de Menú como el Final fantasy o eso es lo que aparenta ser
# :P lo hice para practicar un poco y como hay tantos de estos scripts y mejores no
# Pido creditos ya que dudo que alguien lo vaya a usar, pero por si las moscas Ahi
# taaa  =).  Logos
class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 480, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.back_opacity = 25
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 64
      y = i * 116
      actor = $game_party.actors[i]
      faces(actor, x - 27, y + 80)
      draw_actor_name(actor, x + 20, y)
      draw_actor_class(actor, x + 144, y)
      draw_actor_level(actor, x + 20, y + 32)
      draw_actor_state(actor, x + 90, y + 32)
      draw_actor_exp(actor, x + 20, y + 64)
      draw_actor_hp(actor, x + 236, y + 32)
      draw_actor_sp(actor, x + 236, y + 64)
    end
  end
  #--------------------------------------------------------------------------
  # * Cursor Rectangle Update
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
    end
  end
end
# aqui viene el scene Menu
class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.back_opacity = 25
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    cx = contents.text_size($data_system.words.gold).width
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
  end
end
class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.back_opacity = 25
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Tiempo Jugado")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
#==============================================================================
# ** Window_Steps
#------------------------------------------------------------------------------
#  This window displays step count on the menu screen.
#==============================================================================

class Window_Steps < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.back_opacity = 25
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Número de Pasos")
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, $game_party.steps.to_s, 2)
  end
end

class Scene_Menu
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    # Make command window
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Estatus"
    s5 = "Salvar"
    s6 = "Fin del Juego"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    @command_window.back_opacity = 25
    @command_window.x = 480
    @command_window.y = 0
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    # If save is forbidden
    if $game_system.save_disabled
      # Disable save
      @command_window.disable_item(4)
    end
    # Make play time window
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 480
    @playtime_window.y = 320
    # Make gold window
    @gold_window = Window_Gold.new
    @gold_window.x = 480
    @gold_window.y = 416
    # Make window steps
    @steps_window = Window_Steps.new
    @steps_window.x = 480
    @steps_window.y = 223
    # Make status window
    @status_window = Window_MenuStatus.new
    @command_window.back_opacity = 0
    @status_window.x = 0
    @status_window.y = 0
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update windows
    @command_window.update
    @playtime_window.update
    @steps_window.update
    @gold_window.update
    @status_window.update
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
    # If status window is active: call update_status
    if @status_window.active
      update_status
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when command window is active)
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If command other than save or end game, and party members = 0
      if $game_party.actors.size == 0 and @command_window.index < 4
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Branch by command window cursor position
      case @command_window.index
      when 0  # item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to item screen
        $scene = Scene_Item.new
      when 1  # skill
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4  # save
        # If saving is forbidden
        if $game_system.save_disabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to save screen
        $scene = Scene_Save.new
      when 5  # end game
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when status window is active)
  #--------------------------------------------------------------------------
  def update_status
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Make command window active
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 1  # skill
        # If this actor's action limit is 2 or more
        if $game_party.actors[@status_window.index].restriction >= 2
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to skill screen
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to status screen
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end
para cambiar la imagen de fondo deben ir a la linea 147 y para cambiar la opacidad de las ventanas lineas 12, 56, 78, 119, 157.

Un saludo =) y muy buena idea lo de la clase de hacer Menues XDD

Edito: Joo descubri un bug jeje bueno lo que pasa es que no pude en el script tambien el Windows base y para no meterle todo eso tan largo les digo que hacer mejor, vayan a windows base y en la linea 115 peguen esto

Código:
  def faces(actor, x, y)
    bitmap = RPG::Cache.picture(actor.character_name)
    cw = bitmap.width
    ch = bitmap.height
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  end

Saludos

logos
Veterano
Veterano

0/3

Créditos 1670

Gracias : 60

Volver arriba Ir abajo

Re: [RMXP] Menú con Faces.

Mensaje por -GNS- el 2009-08-10, 05:50

Hola disculpa para metalero (no te ofendas ni nada de eso logos no pienses eso para nada) pero metalero puedes pasar ese script se ve genial jeje si no es mucho pedir
gracias :)
bueno pues me voy
nosvemos saludos bye lol! :)

-GNS-
Baneado

0/3

Créditos 230

Gracias : -2

Volver arriba Ir abajo

Re: [RMXP] Menú con Faces.

Mensaje por logos el 2009-08-10, 08:34

No me ofendo =) como dije era para practicar, se que no se compara al Menú de Metalero, ya que el es Scripter yo no lo soy =) asi que no te preocupes :P

logos
Veterano
Veterano

0/3

Créditos 1670

Gracias : 60

Volver arriba Ir abajo

Re: [RMXP] Menú con Faces.

Mensaje por Metalero el 2009-08-10, 14:31

Si no hubiera abierto la escula lo pasaria sin problemas, pero prefiero usar este viejo menu para hacer las clases y mandar tareas. Si libero el codigo, las tareas ya van a estar hechas. POr que no te anotas en la escuela y aprendes vos a hacerlo?

_________________

Metalero
Administrador
Administrador



Créditos 1715

Gracias : 98

Volver arriba Ir abajo

Re: [RMXP] Menú con Faces.

Mensaje por -GNS- el 2009-08-10, 23:36

Ah okey logos
am para metalero
haber porfavor podrias traducirlo?
no entiendo bien lo que dijiste nada mas que no podias poner el codigo porque lo estavas modificando o algo haci
pero lo de la escuela y que mas? no entendi en esa parte

-GNS-
Baneado

0/3

Créditos 230

Gracias : -2

Volver arriba Ir abajo

Re: [RMXP] Menú con Faces.

Mensaje por logos el 2009-08-11, 00:19


logos
Veterano
Veterano

0/3

Créditos 1670

Gracias : 60

Volver arriba Ir abajo

Re: [RMXP] Menú con Faces.

Mensaje por -GNS- el 2009-08-11, 01:05

Ah orale a bueno ahora si entendi :P
bueno gracias
nos vemos saludos bye lol! :)

-GNS-
Baneado

0/3

Créditos 230

Gracias : -2

Volver arriba Ir abajo

Re: [RMXP] Menú con Faces.

Mensaje por Metalero el 2009-08-11, 02:15

Si te anotas en la escuela, vas poder hacer un menu como ese y mucho mas, por que en es momento en que hice eso no sabia ni la mitad de lo que se ahora.

Asi que si a alguno mas le interesa hacer esas cosas, metanse en la escuela que solo hay dos registrados T.T XD

_________________

Metalero
Administrador
Administrador



Créditos 1715

Gracias : 98

Volver arriba Ir abajo

Re: [RMXP] Menú con Faces.

Mensaje por Contenido patrocinado Hoy a las 06:57


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Scripts

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