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

Danka Customizable Menu

Iniciado por Danka, 23/11/2012 às 00:33

Danka Customizable Menu

  Introdução
  Eaer Galera, tudo bem? Eu estou trazendo para vocês um menu bem customizável, nele existe: Janela com nome do mapa, Janela de gold, Janela de Steps e Janela de hora, vocês podem mudar posições e talz.

  ScreenShots

  Script
=begin
                                  Danka Customizable Menu
      Créditos: Juniortem
                                  
=end

module Danka_Config
#Configurações da janela do menu------------------------------------------------
  Pos_X = 200 #posição X
  Pos_Y = 137 #posição Y
  Back_R = 16 #coloque a cor R, o padrão é 16.
  Back_G = 16 #coloque a cor G, o padrão é 16.
  Back_B = 16 #coloque a cor B, o padrão é 16.
  Back_O = 128 #coloque 0 para o fundo ficar transparente, o padrão é 128.
  
#--------------------------- Configurações da Gold Window ----------------------
Gold_X = 200 #posição X da janela de gold
Gold_Y = 360 #posição y da janela de gold
Gold_Icon = 262 #Icon da janela de gold

#--------------------------- Configurações da Steps WIndow ---------------------
Step_X = 200 #posição X da janela de Steps
Step_Y = 305 #posição Y da janela de Steps
Step_Icon = 467 #Icon da janela de Steps

#--------------------------- Configurações da Map window -----------------------
Map_X = 0 #posição X da janela do Mapa
Map_Y = 0 #posição Y da janela do Mapa
Map_Height = 56 #Altura da janela do nome do mapa
Map_Width = 544 #Largura da janela do nome do mapa
Map_Icon = 205 #Icon da janela do Mapa

#----------------------------- Configurações da Janela da Hora -----------------
Time_X = 200 #posição X da janela da Hora
Time_Y = 82 #posição Y da janela da Hora
Time_Icon = 495 #Icon da janela da Hora
end

#===============================================================================
#                           Criação da Menu Command
#===============================================================================

class Window_MenuCommand < Window_Command
  include Danka_Config
  def self.init_command_position
    @@last_command_symbol = nil
  end
  
  def initialize
    super(Pos_X,Pos_Y)
    select_last
    
  end
  
  def window_width
   return 160
  end
  
  def visible_line_number
    item_max
  end
  
  def make_command_list
    add_main_commands
    add_original_commands
    add_save_command
    add_game_end_command
  end
  
  def add_original_commands
  end
  
  def add_main_commands
    add_command(Vocab::item,   :item, main_commands_enabled)
    add_command(Vocab::skill,  :skill, main_commands_enabled)
    add_command(Vocab::equip,  :equip, main_commands_enabled)
    add_command(Vocab::status, :status, main_commands_enabled)
  end
  
  def add_save_commands
    add_command(Vocab::save, :save, save_enabled)
  end
  
  def add_game_end_commands
    add_command(Vocab::game_end, :game_end)
  end
  
  def main_commands_enabled
    $game_party.exists
  end
  
  def save_enabled  
    !$game_system.save_disabled
  end
  
  def process_ok
    @@last_command_symbol = current_symbol
    super
  end
    
  def select_last
    select_symbol(@@last_command_symbol)
  end
end
#===============================================================================
#                           Criação da Scene_Menu
#===============================================================================
class Scene_Menu < Scene_MenuBase
  include Danka_Config
  def start
    super
    create_command_window
    create_background
    create_gold_window
    create_map_name_window
    create_time_window
    create_steps
  end

  def create_steps
    @steps = Window_Steps.new(Step_X , Step_Y, 160, 56)
  end

  def create_map_name_window
    @mapname = Window_DankaName.new(Map_X, Map_Y, Map_Width, Map_Height) 
  end

  def create_time_window
    @time_window = Danka_Play_Time.new(Time_X, Time_Y, 160, 56)
  end
  
  def create_gold_window
    @gold_window = Window_Gold_Danka.new(Gold_X, Gold_Y, 160, 56)
  end
  #--------------------------------------------------------------------------
  # * Criaçã da janela de comando
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_MenuCommand.new
    @command_window.z = 255
    @command_window.set_handler(:item,      method(:command_item))
    @command_window.set_handler(:skill,     method(:command_skill))
    @command_window.set_handler(:equip,     method(:command_equip))
    @command_window.set_handler(:status,    method(:command_status))
    @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
  #--------------------------------------------------------------------------
  # * Criação do nome do mapa
  #--------------------------------------------------------------------------
  def create_background
    @background_sprite = Sprite.new
    @background_sprite.bitmap = SceneManager.background_bitmap
    @background_sprite.color.set(Back_R,Back_G,Back_B,Back_O)
  end
  #--------------------------------------------------------------------------
  # * Disposição do plano de fundo
  #--------------------------------------------------------------------------
  def dispose_background
    @background_sprite.dispose
  end
 
  #--------------------------------------------------------------------------
  # * Comando [Item]
  #--------------------------------------------------------------------------
  def command_item
    SceneManager.call(Scene_Item)
  end
  #--------------------------------------------------------------------------
  # * Comando [Habilidades]
  #--------------------------------------------------------------------------
  def command_skill
     SceneManager.call(Scene_Skill)
  end
  #--------------------------------------------------------------------------
  # * Comando [Equipamento]
  #--------------------------------------------------------------------------
   def command_equip
      SceneManager.call(Scene_Equip)
   end
  #--------------------------------------------------------------------------
  # * Comando [Status]
  #--------------------------------------------------------------------------
   def command_status
      SceneManager.call(Scene_Status)
   end 
  #--------------------------------------------------------------------------
  # * Comando [Salvar]
  #--------------------------------------------------------------------------
  def command_save
    SceneManager.call(Scene_Save)
  end
  #--------------------------------------------------------------------------
  # * Comando [Fim do Jogo]
  #--------------------------------------------------------------------------
  def command_game_end
    SceneManager.call(Scene_End)
  end
end
#===============================================================================
#                     Window do Nome do Mapa                    
#===============================================================================
class Window_DankaName < Window_Base
  include Danka_Config
  def initialize(x, y, width,height)
    super(x, y, width,height)
    self.opacity = 300
    refresh
  end

  def refresh
    contents.clear
    self.draw_text(Danka_Config::Map_Icon,-15,150,50, $game_map.display_name)
    self.draw_icon(231, self. width - 48, 0)
    end
  end
#===============================================================================
#                      Window da hora do jogo                
#===============================================================================
class Danka_Play_Time < Window_Base
    def initialize(x, y, width, height)
    super(x, y, width, height)
    refresh
  end
  
 def refresh
    self.contents.clear
    @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)
    draw_text(0, 0, 120, 24, text, 1)
    draw_icon(Danka_Config::Time_Icon, self.width - 48, 0)
  end
  
  def update
    super
    refresh if Graphics.frame_count / Graphics.frame_rate != @total_sec
  end
end
#===============================================================================
#                      Window da quantidade de passos                   
#===============================================================================
class Window_Steps < Window_Base
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @steps = $game_party.steps
    refresh
  end
  def refresh
    self.contents.clear
    draw_icon(Danka_Config::Step_Icon, self.width - 48, 0)
    draw_text(-6, 0, 120, 24, @steps , 2)#.to_s
  end
end
#===============================================================================
#                      Window que mostra o dinheiro.                  
#===============================================================================
class Window_Gold_Danka < Window_Base
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super(x, y, width, height)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Renovação
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    icon = draw_icon(Danka_Config::Gold_Icon, self.width - 48, 0)
    draw_currency_value(value, icon , -14, 0, contents.width - 8)
  end
  #--------------------------------------------------------------------------
  # * Aquisição do valor em dinheiro
  #--------------------------------------------------------------------------
  def value
    $game_party.gold
  end
  #--------------------------------------------------------------------------
  # * Abertura da janela
  #--------------------------------------------------------------------------
  def open
    refresh
    super
  end
end
#===============================================================================
#                              Fim  do Script             
#===============================================================================

   Créditos
   Créditos a Danka por ter criado e disponibilizado, se for usa-lo, dê créditos a min e não poste em outros fórums sem a minha permissão.
...

O menu em si é muito pobre, porém é ótimo para iniciantes, no meu caso, servirá apenas para estudos... Valeu!

Não achei nada pobre, achei até simpática =D
Claro que podera ter ao menos posto algum efeito, talvez um background too, ajudaria muito xP
Not bad, contnue progredindo o/


"Cloud-Sama"
-> Sdds rpg maker.
@Alisteroterrivel

De fato o menu está simples, mas, quem ainda tiver a audácia de associar "simples" com "ruim", com certeza não sabe diferir uma coisa da outra.
Como disse, está simples, mas não está ruim, muito pelo contrário! A programação está muito bem organizada e isso é algo para ressaltar.
Meus parabéns! Continue treinando, e espero que em breve possa fazer um menu mais "fresco" para a galera! :blink:

Valeu ai galera!
Bom, não posso mentir, ele está bem simples mesmo, mas a minha intenção mesmo era fazer algo simples e customizável, não adinata fazer algo lindérrimo onde não pode mudar muita coisa.
Mas, estou fazendo alguns tutoriais de RGSS, depois disso, acho que vou trazer algo visualmente mais bonito. :D
...

Citação de: Mistyrol online 25/11/2012 às 16:07
De fato o menu está simples, mas, quem ainda tiver a audácia de associar "simples" com "ruim", com certeza não sabe diferir uma coisa da outra.
Como disse, está simples, mas não está ruim, muito pelo contrário! A programação está muito bem organizada e isso é algo para ressaltar.
Meus parabéns! Continue treinando, e espero que em breve possa fazer um menu mais "fresco" para a galera! :blink:



Caso seja uma indireta a mim:

Também há pessoas que não sabem diferenciar pobre de ruim... De qualquer modo, continue progredindo²