TallerGamer
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

(Script) Menú estilo Castlevania

Ir abajo

(Script) Menú estilo Castlevania Empty (Script) Menú estilo Castlevania

Mensaje  MasterMoonNight Vie Dic 23, 2011 11:57 am

-Version Del Script:v2.0
-Rpg Maker:VX

-Introducion:Este es un remake de un menú de juego de la PS1 Castlevania.
-Caracteristicas:
Menú de un solo caracter.
Muestra el nombre, la dirección, el CV, el MP, el nivel y la condición del héroe.
Muestra el héroe de los atributos (fuerza, defensa, ...).
Muestra el equipo del héroe.
Muestra la ventana de tiempo y dinero.
-Demo:http://www.reinorpg.com/forum/index.php?action=dlattach;topic=7288.0;attach=4012
-Script:
Código:
#==============================================================================
# Menu Estilo Castlevânia v2.0
#------------------------------------------------------------------------------
# Criado por Bnezinho (abnermatheus_xd@hotmail.com)
#------------------------------------------------------------------------------
# *Bugs corridos:
#  - Bug da seleção
#  - Bug do dregadê
# Em caso de outros bugs ainda não corrigidos, favor me contactar.
#==============================================================================
module Castlevania
  COR1 = Color.new(0,0,34) #Cor1 do Menu
  COR2 = Color.new(33,33,92) #Cor2
  #Fim da customização. Não modificar a partir daqui!
end
#==============================================================================
# Window_Castlevania
#------------------------------------------------------------------------------
# Classe que desenha os itens do menu
#==============================================================================
class Degrade < Window_Base
  def initialize
    super(5,5,540,410)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.gradient_fill_rect(0,0,510,380,Castlevania::COR1,Castlevania::COR2,Castlevania::COR2)
  end
end
class Window_Castlevania < Window_Base
  def initialize
    super(20,20,510,380)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.back_opacity = 0
    refresh
  end
  def refresh
    self.contents.clear
    @actor = $game_party.members[0]
    draw_actor_face(@actor,0,20)
    draw_actor_name(@actor,140,20)
    draw_actor_hp(@actor,110,45)
    draw_actor_mp(@actor,110,65)
    draw_actor_state2(@actor, 300, 60, width = 96)
    draw_currency_value($game_party.gold, 0, 320, 150)
    draw_icon(147,20,320) 
    draw_icon(188,270,305)
    self.contents.font.color = system_color
    self.contents.draw_text(300,20,self.width - 40,WLH,"Nível:")
    self.contents.font.color = normal_color
    self.contents.draw_text(400,20,self.width - 40,WLH,$game_party.members[0].level)
    self.contents.font.color = system_color
    self.contents.draw_text(300,40,self.width - 40,WLH,"Estado:")
    self.contents.font.color = normal_color
    self.contents.font.color = system_color
    self.contents.draw_text(20,150,self.width - 40,WLH,"Ataque:")
    self.contents.font.color = normal_color
    self.contents.draw_text(120,150,self.width - 40,WLH,@actor.atk)
    self.contents.font.color = system_color
    self.contents.draw_text(20,170,self.width - 40,WLH,"Defesa:")
    self.contents.font.color = normal_color
    self.contents.draw_text(120,170,self.width - 40,WLH,@actor.def)
    self.contents.font.color = system_color
    self.contents.draw_text(20,190,self.width - 40,WLH,"Agilid:")
    self.contents.font.color = normal_color
    self.contents.draw_text(120,190,self.width - 40,WLH,@actor.agi)
    self.contents.font.color = system_color
    self.contents.draw_text(20,210,self.width - 40,WLH,"Intelig:")
    self.contents.font.color = normal_color
    self.contents.draw_text(120,210,self.width - 40,WLH,@actor.spi)
    self.contents.font.color = system_color
    self.contents.draw_text(20,250,self.width - 40,WLH,"Exp:")
    self.contents.font.color = normal_color
    self.contents.draw_text(80,250,self.width - 40,WLH,@actor.exp_s)
    self.contents.font.color = system_color
    self.contents.draw_text(20,270,self.width - 40,WLH,"Próx:")
    self.contents.font.color = normal_color
    self.contents.draw_text(80,270,self.width - 40,WLH,@actor.next_rest_exp_s)
    self.contents.font.color = system_color
    self.contents.draw_text(20,300,self.width - 40,WLH,"Ouro:")
 
    self.contents.font.color = system_color
    self.contents.draw_text(300, 120, self.width - 40, WLH, Vocab::equip)
    for i in 0..4
      draw_item_name(@actor.equips[i], 285  16, 120  WLH * (i  1))
    end
  end
end

#==============================================================================
# Ajustamento da seleção
#==============================================================================
class Scene_Equip
  def return_scene
    $scene = Scene_Menu.new(0)
  end
end
class Scene_Skill
  def return_scene
    $scene = Scene_Menu.new(1)
  end
end
class Scene_Item
  def return_scene
    $scene = Scene_Menu.new(2)
  end
end
class Scene_File
  def return_scene
    $scene = Scene_Menu.new(3)
  end
end
class Scene_End
  def return_scene
    $scene = Scene_Menu.new(4)
  end
end

#==============================================================================
# Scene_Menu
#------------------------------------------------------------------------------
# Classe de operações na tela do menu.
#==============================================================================
class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # Inicialização do processo
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  def start
  super
  create_command_window
  @degrade = Degrade.new
  @degrade.z = 0
  @menu = Window_Castlevania.new
  @menu.z = 1 
  @time = Window_Time.new(320,330)
  @time.opacity = 0
  @time.z = 2
 end
  #--------------------------------------------------------------------------
  # Fim do processo
  #--------------------------------------------------------------------------
  def terminate
  super
  @command_window.dispose
  @degrade.dispose
  @menu.dispose
  @time.dispose
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
  super
  @command_window.update
  @degrade.update
  @menu.update
  @time.update
  if @command_window.active
    update_command_selection
  end
  end
  #--------------------------------------------------------------------------
  # Criação da janela de comandos
  #--------------------------------------------------------------------------
  def create_command_window
  s1 = "Equipar"
  s2 = "Magias"
  s3 = "Joiás"
  s4 = "Salvar"
  s5 = "Sair"
  @command_window = Window_Command.new(135, [s1,s2,s3,s4,s5])
  @command_window.x = 195
  @command_window.y = 160
  @command_window.back_opacity = 0
  @command_window.index = @menu_index
    if $game_party.members.size == 0          # Se não houver membros na equipe
      @command_window.draw_item(0, false)    # Desabilita "Equipar"
      @command_window.draw_item(1, false)    # Desabilita "Magias"
      @command_window.draw_item(2, false)    # Desabilita "Itens"
    end
    if $game_system.save_disabled            # Se salvar for proibido
      @command_window.draw_item(3, false)    # Desabilita "Salvar"
    end
  end
  #--------------------------------------------------------------------------
  # Atualização da escolha de comando
  #--------------------------------------------------------------------------
  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      # Equipar
        $scene = Scene_Equip.new(0)
      when 1      # Magias
        $scene = Scene_Skill.new(0)
      when 2      # Itens
        $scene = Scene_Item.new
      when 3      # Salvar
        $scene = Scene_File.new(true, false, false)
      when 4      # Fim de Jogo
        $scene = Scene_End.new
      end
    end
  end
end

class Window_Time < Window_Base
  #--------------------------------------------------------------------------
  # Iniciar
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 184, WLH  26)
    refresh
  end
  #--------------------------------------------------------------------------
  # Principal
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, -8, 200, 32, "Tempo:")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("d:d:d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(69, -8, 200, 32, text)
  end
  #--------------------------------------------------------------------------
  # Atualizar
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end

class Window_Base
    #--------------------------------------------------------------------------
  # - Criar String de Status para Desenhar
  #
  #    actor      : Herói
  #    width      : Desenhar o comprimento
  #    need_normal : Quer seja, ou não [Normal], need= verdadeiro ou falso
  #--------------------------------------------------------------------------
  def make_battler_state_text(battler, width, need_normal)
    # Selecionar comrpimento dos Colchetes
    brackets_width = self.contents.text_size("[]").width
    # Criar um string de Status para texto
    text = ""
    for i in battler.states
      if $data_states[i].rating >= 1
        if text == ""
          text = $data_states[i].name
        else
          new_text = text  "/"  $data_states[i].name
          text_width = self.contents.text_size(new_text).width
          if text_width > width - brackets_width
            break
          end
          text = new_text
        end
      end
    end
    # Caso esteja vazio o string de texto, tornar isto Normal
    if text == ""
      if need_normal
        text = "[Normal]"
      end
    else
      # Anexar Colchetes
      text = "["  text  "]"
    end
    # Retornar string de texto
    return text
  end
  #--------------------------------------------------------------------------
  # - Desenhar Status
  #
  #    actor : Herói
  #    x    : Desenhar a partir da coordenada x
  #    y    : Desenhar a partir da coordenada y
  #    width : Desenhar o comprimento
  #--------------------------------------------------------------------------
  def draw_actor_state2(actor, x, y, width = 120)
    text = make_battler_state_text(actor, width, true)
    self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color
    self.contents.draw_text(x, y, width, 32, text)
  end
end
-Instrucciones:Si no hay mucho que configurar. El guión es Plug N 'Play (tener cuidado con otros scripts que cambiar el menú. Pueden causar incoherencia).
La mayoría de configuraciones se encuentran en el módulo. Cambiar el nombre de las opciones de la línea 173.
-Creditos: Bnezinho
MasterMoonNight
MasterMoonNight
Moderador

Mensajes : 82
Fecha de inscripción : 06/11/2011
Edad : 28
Localización : Argentina

Volver arriba Ir abajo

Volver arriba

- Temas similares

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