赞 | 0 |
VIP | 230 |
好人卡 | 0 |
积分 | 1 |
经验 | 7916 |
最后登录 | 2019-1-21 |
在线时间 | 352 小时 |
Lv1.梦旅人 万物创造者
- 梦石
- 0
- 星屑
- 54
- 在线时间
- 352 小时
- 注册时间
- 2008-2-15
- 帖子
- 2432
|
回复 5810707 的帖子- ##################################################
- # 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 <Scene_Base
- def main
- super
- 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
- Audio.bgm_play("Audio/BGM/Battle1")
- 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
- Audio.bgm_stop
- $game_map.autoplay
- $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
复制代码 335行改成你要的BGM名字
|
|