RPG Maker Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
kabrion
kabrion
Novato
Novato
Mensagens : 56
Reputação : 18

[RGSS2] Menu Yui Empty [RGSS2] Menu Yui

Ter Set 14, 2010 10:54 pm
Reputação da mensagem: 100% (1 votos)
Eu sou novato nessenovo fórum da RMB e antes de qualquer coisa me desculpem caso errei no post.

---------------------------------------------------------------------------------------------------------------------------------------
[RGSS2] Menu Yui

Introdução
Menu de status com layout baseado em pictures.

Screenshots
[RGSS2] Menu Yui Menuyui
Screenshot do Menu Yui.

[RGSS2] Menu Yui Mogmenustatusaya
Screenshot do MOG Menu Status Aya, para que se faça uma comparação.

Script
Código:
##################################################
# Mog Menu Yui V 1.0                                                #
##################################################
# By Moghunter
# http://www.atelier-rgss.com
##################################################
# Menu com layout em pictures.
# É necessário criar uma pasta com o nome de
# Menus e colocar todas as imagens dentro dela, de resto
# é só criar o seu próprio estilo de menu através de um
#editor de imagem.
#-------------------------------------------------
###############
# module Cache #
###############
module Cache
  def self.menu(filename)
    load_bitmap("Graphics/Menus/", filename)
  end
end
###############
# Window_Base #
###############
class Window_Base < Window 
  def draw_actor_level_menu(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 16, y, 24, WLH, actor.level, 2)
  end 
  def draw_currency_value_menu(value, x, y, width)
    cx = contents.text_size(Vocab::gold).width
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y, width-cx-2, WLH, value, 1)
  end
def draw_actor_hp_menu(actor, x, y)
back = Cache.menu("Meter_Back")   
cw = back.width 
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)   
self.contents.blt(x + 65, y - ch + 30, back, src_rect)
meter = Cache.menu("HP_Meter")   
cw = meter.width  * actor.hp / actor.maxhp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
text = Cache.menu("HP_Text")   
cw = text.width 
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 35, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 81, y - 1, 48, 32, actor.hp.to_s, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 80, y - 2, 48, 32, actor.hp.to_s, 2)   
end   
def draw_actor_mp_menu(actor, x, y)
back = Cache.menu("Meter_Back")   
cw = back.width 
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)   
self.contents.blt(x + 65, y - ch + 30, back, src_rect)
meter = Cache.menu("MP_Meter")   
cw = meter.width  * actor.mp / actor.maxmp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
text = Cache.menu("MP_Text")   
cw = text.width 
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 35, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 81, y - 1, 48, 32, actor.mp.to_s, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 80, y - 2, 48, 32, actor.mp.to_s, 2)   
end     
def draw_actor_name_menu(actor, x, y)
    self.contents.font.color = text_color(23)
    self.contents.draw_text(x, y, 108, WLH, actor.name,1)
end 
def draw_actor_level_menu(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, " L")
    self.contents.font.color = text_color(10)
    self.contents.draw_text(x + 18, y, 24, WLH, actor.level, 1)
end 
end
############
# Game_Map #
############
class Game_Map
attr_reader  :map_id 
def mpname
$mpname = load_data("Data/MapInfos.rvdata")
$mpname[@map_id].name
end
end
########################
# Window_Selectable_Menu #
########################
class Window_Selectable_Menu < Window_Base
  attr_reader  :item_max             
  attr_reader  :column_max           
  attr_reader  :index                   
  def initialize(x, y, width, height, spacing = 32)
    @item_max = 1
    @column_max = 1
    @index = -1
    @spacing = spacing
    super(x, y, width, height)
  end
  def create_contents
    self.contents.dispose
    self.contents = Bitmap.new(width - 32, [height - 32, row_max * WLH].max)
  end 
  def index=(index)
    @index = index
  end
  def row_max
    return (@item_max + @column_max - 1) / @column_max
  end
  def top_row
    return self.oy / WLH
  end
  def top_row=(row)
    row = 0 if row < 0
    row = row_max - 1 if row > row_max - 1
    self.oy = row * WLH
  end
  def page_row_max
    return (self.height - 32) / WLH
  end
  def page_item_max
    return page_row_max * @column_max
  end
  def bottom_row
    return top_row + page_row_max - 1
  end
  def bottom_row=(row)
    self.top_row = row - (page_row_max - 1)
  end
  def cursor_movable?
    return false if (not visible or not active)
    return false if (index < 0 or index > @item_max or @item_max == 0)
    return false if (@opening or @closing)
    return true
  end
  def cursor_down(wrap = false)
    if (@index < @item_max - @column_max) or (wrap and @column_max == 1)
      @index = (@index + @column_max) % @item_max
    end
  end
  def cursor_up(wrap = false)
    if (@index >= @column_max) or (wrap and @column_max == 1)
      @index = (@index - @column_max + @item_max) % @item_max
    end
  end
  def cursor_right(wrap = false)
    if (@column_max >= 2) and
      (@index < @item_max - 1 or (wrap and page_row_max == 1))
      @index = (@index + 1) % @item_max
    end
  end
  def cursor_left(wrap = false)
    if (@column_max >= 2) and
      (@index > 0 or (wrap and page_row_max == 1))
      @index = (@index - 1 + @item_max) % @item_max
    end
  end
  def update
    super
    if cursor_movable?
      last_index = @index
      if Input.repeat?(Input::DOWN)
        cursor_down(Input.trigger?(Input::DOWN))
      end
      if Input.repeat?(Input::UP)
        cursor_up(Input.trigger?(Input::UP))
      end
      if Input.repeat?(Input::RIGHT)
        cursor_down(Input.trigger?(Input::DOWN))
      end
      if Input.repeat?(Input::LEFT)
        cursor_up(Input.trigger?(Input::UP))
      end

      if @index != last_index
        Sound.play_cursor
      end
    end
  end
end
#######################
# Window_MenuStatus_Yui #
#######################
class Window_MenuStatus_Yui < Window_Selectable_Menu
  def initialize(x, y)
    super(x, y, 460, 300)
    self.contents.font.bold = true
    self.contents.font.shadow = true
    self.contents.font.size = 16
    refresh
    self.active = false
    self.index = -1
  end
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    for actor in $game_party.members
      if actor.index == 0
      draw_actor_graphic(actor, 65, 110)
      draw_actor_name_menu(actor, 15, 120)
      draw_actor_level_menu(actor, -5, 55)   
      draw_actor_state(actor, 20, 100)     
      draw_actor_hp_menu(actor,  -30, 25)
      draw_actor_mp_menu(actor, 0, 45)     
      elsif actor.index == 1
      draw_actor_graphic(actor, 170, 210)
      draw_actor_name_menu(actor, 120, 220)
      draw_actor_level_menu(actor, 100, 155) 
      draw_actor_state(actor, 125, 200)           
      draw_actor_hp_menu(actor,  75, 120)
      draw_actor_mp_menu(actor, 105, 145)         
      elsif actor.index == 2
      draw_actor_graphic(actor, 265, 110)
      draw_actor_name_menu(actor, 215, 120) 
      draw_actor_level_menu(actor, 195, 55)   
      draw_actor_state(actor, 220, 100)           
      draw_actor_hp_menu(actor,  170, 20)
      draw_actor_mp_menu(actor, 205, 45)       
      elsif actor.index == 3
      draw_actor_graphic(actor, 370,  210) 
      draw_actor_name_menu(actor, 320, 220)   
      draw_actor_level_menu(actor, 370, 155) 
      draw_actor_state(actor, 325, 200)                 
      draw_actor_hp_menu(actor,  275, 120)
      draw_actor_mp_menu(actor, 245, 145)       
      end
    end
  end
  def update_cursor
  end
end
###############
# Window_Time #
###############
class Window_Mapname < Window_Base
  def initialize(x, y)
    super(x, y, 160, WLH + 32)
    self.contents.font.bold = true
    self.contents.font.size = 16   
    refresh
  end 
def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120, 32, $game_map.mpname.to_s, 1)
end
end
###################
# Window_Gold_Menu #
###################
class Window_Gold_Menu < Window_Base
  def initialize(x, y)
    super(x, y, 160, WLH + 32)
    self.contents.font.bold = true
    self.contents.font.size = 16
    self.contents.font.color = power_up_color   
    refresh
  end
  def refresh
    self.contents.clear
    draw_currency_value_menu($game_party.gold, 10, 0, 120)
  end
end
###############
# Window_Time #
###############
class Window_Time < Window_Base
  def initialize(x, y)
    super(x, y, 160, WLH + 32)
    self.contents.font.bold = true
    self.contents.font.size = 16
    self.contents.font.color = power_up_color
    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)
    self.contents.draw_text(4, 0, 120, 32,  text, 2)
end
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
##############
# Scene_Menu #
##############
class Scene_Menu 
  def main
    start                       
    perform_transition           
    Input.update               
    loop do
      Graphics.update           
      Input.update             
      update                     
      break if $scene != self     
    end
    Graphics.update
    pre_terminate           
    Graphics.freeze             
    terminate                 
  end 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end 
  def perform_transition
    Graphics.transition(10, "Graphics/System/BattleStart", 80)   
  end
  def start
    @menu_back = Plane.new   
    @menu_back.bitmap = Cache.menu("Background")
    @menu_layout = Sprite.new 
    @menu_layout.bitmap = Cache.menu("Menu_Layout")
    @menu_com = Sprite.new 
    @menu_com.bitmap = Cache.menu("Menu_Com01")
    @menu_select = Sprite.new 
    @menu_select.bitmap = Cache.menu("Menu_Select00")
    create_command_window
    @gold_window = Window_Gold_Menu.new(195, 45)
    @status_window = Window_MenuStatus_Yui.new(100, 60)
    @playtime_window = Window_Time .new(165, 0)
    @mapname_window = Window_Mapname.new(195,360)
    @status_window.opacity = 0
    @playtime_window.opacity = 0
    @mapname_window.opacity = 0
    @gold_window.opacity = 0   
  end
  def pre_terminate
  end 
  def terminate
    @menu_back.dispose
    @menu_layout.dispose
    @menu_com.dispose
    @menu_select.dispose
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
    @playtime_window.dispose
    @mapname_window.dispose
  end
  def update
    @menu_back.ox += 1
    @command_window.update
    @gold_window.update
    @status_window.update
    @mapname_window.update
    @playtime_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    @command_window.openness = 0
    @command_window.open
    @command_window.opacity = 0
    @command_window.contents_opacity = 0
    if $game_system.save_disabled             
      @command_window.draw_item(4, false)   
    end
  end
  def update_command_selection   
    case @command_window.index
    when 0
    @menu_com.bitmap = Cache.menu("Menu_Com01")
    when 1
    @menu_com.bitmap = Cache.menu("Menu_Com02")
    when 2
    @menu_com.bitmap = Cache.menu("Menu_Com03")
    when 3
    @menu_com.bitmap = Cache.menu("Menu_Com04")
    when 4
    @menu_com.bitmap = Cache.menu("Menu_Com05")
    when 5
    @menu_com.bitmap = Cache.menu("Menu_Com06")   
    end         
    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     
        $scene = Scene_Item.new
      when 1,2,3 
        start_actor_selection
      when 4     
        $scene = Scene_File.new(true, false, false)
      when 5   
        $scene = Scene_End.new
      end
    end
  end
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  def end_actor_selection
    @command_window.active = true
    @status_window.active = false
    @menu_select.bitmap = Cache.menu("Menu_Select00")
    @status_window.index = -1
  end
  def update_actor_selection   
    case @status_window.index
    when 0
    @menu_select.bitmap = Cache.menu("Menu_Select01")
    when 1
    @menu_select.bitmap = Cache.menu("Menu_Select02")
    when 2
    @menu_select.bitmap = Cache.menu("Menu_Select03")
    when 3
    @menu_select.bitmap = Cache.menu("Menu_Select04")
    end
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 1
        $scene = Scene_Skill.new(@status_window.index)
      when 2 
        $scene = Scene_Equip.new(@status_window.index)
      when 3 
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end
$mogscript = {} if $mogscript == nil
$mogscript["menu_yui"] = true

Download
Download da Demo aqui.

Créditos
Moghunter
Peguei na antiga RMB

Obs
Obs1: Não postei sobre o MOG Menu Status Aya, pois já existe um post sobre ele. Caso queira ver clique aqui.

Obs2: Caso o post não tenha ficado bom, porfavor me indiquem como melhorar, ou então entre em contato comigo para que eu possa passar outros scripts para que você post.
Quero ajudar para que o RMB cresça novamente!
Alucard_2
Alucard_2
Administrador
Administrador
Masculino Mensagens : 823
Reputação : 57
http://www.não tenho site ainda.com.nada

[RGSS2] Menu Yui Empty Re: [RGSS2] Menu Yui

Qua Set 15, 2010 2:35 pm
Muito bom, existem vários scripts do Moghunter que são bons (dos que eu vi, todos eram XD), +rep pela disponibilização e dar os devidos créditos.
Naxus
Naxus
Veterano
Veterano
Masculino Mensagens : 500
Reputação : 68

[RGSS2] Menu Yui Empty Re: [RGSS2] Menu Yui

Qua Set 15, 2010 6:53 pm
Muito bom esse menu!
Eu já conhecia ele mais, obrigado por disponibilizar!
kabrion
kabrion
Novato
Novato
Mensagens : 56
Reputação : 18

[RGSS2] Menu Yui Empty Re: [RGSS2] Menu Yui

Sáb Set 25, 2010 9:47 am
Reputação da mensagem: 100% (1 votos)
Vlw Galera, faço o que posso para ajudar a RMB a crescer. \o/
Caiobz009
Caiobz009
Novo Membro
Novo Membro
Mensagens : 136
Reputação : 51

[RGSS2] Menu Yui Empty Re: [RGSS2] Menu Yui

Sáb Set 25, 2010 9:52 am
Muito bom cara , +rep. :D
Max Keisers
Max Keisers
Membro
Membro
Masculino Mensagens : 267
Reputação : 49

[RGSS2] Menu Yui Empty Re: [RGSS2] Menu Yui

Sáb Set 25, 2010 3:01 pm
Muito irado esse menu, parabens !
kabrion
kabrion
Novato
Novato
Mensagens : 56
Reputação : 18

[RGSS2] Menu Yui Empty Re: [RGSS2] Menu Yui

Dom Set 26, 2010 9:14 am
Vlw cara, que pena que so disponibilizei, mas um dia estarei postando um feito por mim o/.
Conteúdo patrocinado

[RGSS2] Menu Yui Empty Re: [RGSS2] Menu Yui

Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos