O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[VX] Ajuda com um script

Iniciado por GuilherVX, 23/02/2013 às 15:04

Bom dia/tarde/noite à todos. Bom, pessoal, eu uso o RMVX e uso também, no meu projeto, o MENU criado pelo Bnezinho. E eu queria que fossem apenas as opções: Equipamentos, itens e sair. E queria a ajuda dos nossos programadores com isso. O script é esse abaixo, lembrando denovo que é pra VX.

#==============================================================================
# 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(180,0,0) #Cor1 do Menu
  COR2 = Color.new(120,0,0) #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 = "Magia"
   s3 = "Itens"
   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("%02d:%02d:%02d", 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



Vai ajudar MUITO mesmo, obrigado desde já.

23/02/2013 às 16:34 #1 Última edição: 23/02/2013 às 17:10 por TeslaHero
Tente isso :)

@edit
Houve um pequeno erro, pera ae XD

@edit 2

#==============================================================================
# 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(180,0,0) #Cor1 do Menu
  COR2 = Color.new(120,0,0) #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_Item
  def return_scene
    $scene = Scene_Menu.new(1)
  end
end
class Scene_End
  def return_scene
    $scene = Scene_Menu.new(2)
  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 = "Itens"
   s3 = "Sair"
   @command_window = Window_Command.new(135, [s1,s2,s3])
   @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, true)     # 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      # Itens
        $scene = Scene_Item.new
      when 2      # 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("%02d:%02d:%02d", 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

Valeu Tesla, funfo direitinho, lhe serei grato eternamente (Ou até daqui uns 2 anos, sei lá  :derp:)
Valeu msm, man!  :rainbow:

De nada cara, precisar de alguns ajustes em scripts eu posso tentar. Não garanto mas tento, como fiz com esse, até mais e boa sorte com seu projeto!