设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1744|回复: 6
打印 上一主题 下一主题

[已经解决] 求个菜单类的脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
181 小时
注册时间
2010-7-20
帖子
347
跳转到指定楼层
1
发表于 2010-8-6 11:29:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 5810707 于 2010-8-6 19:58 编辑

就是菜单音乐的脚本。菜单的BGM啊。。。我在论坛上搜索了半天都没有

Lv1.梦旅人

梦石
0
星屑
50
在线时间
181 小时
注册时间
2010-7-20
帖子
347
7
 楼主| 发表于 2010-8-6 19:50:59 | 只看该作者
哈哈。谢谢了!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
6
发表于 2010-8-6 16:29:03 | 只看该作者
回复 5810707 的帖子
  1. ##################################################
  2. # Mog Menu Yui V 1.0                                                 #
  3. ##################################################
  4. # By Moghunter
  5. # http://www.atelier-rgss.com
  6. ##################################################
  7. # Menu com layout em pictures.
  8. # É necessário criar uma pasta com o nome de
  9. # Menus e colocar todas as imagens dentro dela, de resto
  10. # é só criar o seu próprio estilo de menu através de um
  11. #editor de imagem.
  12. #-------------------------------------------------
  13. ###############
  14. # module Cache #
  15. ###############
  16. module Cache
  17.   def self.menu(filename)
  18.     load_bitmap("Graphics/Menus/", filename)
  19.   end
  20. end
  21. ###############
  22. # Window_Base #
  23. ###############
  24. class Window_Base < Window  
  25.   def draw_actor_level_menu(actor, x, y)
  26.     self.contents.font.color = system_color
  27.     self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
  28.     self.contents.font.color = normal_color
  29.     self.contents.draw_text(x + 16, y, 24, WLH, actor.level, 2)
  30.   end  
  31.   def draw_currency_value_menu(value, x, y, width)
  32.     cx = contents.text_size(Vocab::gold).width
  33.     self.contents.font.color = normal_color
  34.     self.contents.draw_text(x, y, width-cx-2, WLH, value, 1)
  35.   end
  36. def draw_actor_hp_menu(actor, x, y)
  37. back = Cache.menu("Meter_Back")   
  38. cw = back.width  
  39. ch = back.height
  40. src_rect = Rect.new(0, 0, cw, ch)   
  41. self.contents.blt(x + 65, y - ch + 30, back, src_rect)
  42. meter = Cache.menu("HP_Meter")   
  43. cw = meter.width  * actor.hp / actor.maxhp
  44. ch = meter.height
  45. src_rect = Rect.new(0, 0, cw, ch)
  46. self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
  47. text = Cache.menu("HP_Text")   
  48. cw = text.width  
  49. ch = text.height
  50. src_rect = Rect.new(0, 0, cw, ch)
  51. self.contents.blt(x + 35, y - ch + 30, text, src_rect)
  52. self.contents.font.color = Color.new(255,255,255,255)
  53. self.contents.draw_text(x + 81, y - 1, 48, 32, actor.hp.to_s, 2)
  54. self.contents.font.color = Color.new(255,255,255,255)
  55. self.contents.draw_text(x + 80, y - 2, 48, 32, actor.hp.to_s, 2)   
  56. end     
  57. def draw_actor_mp_menu(actor, x, y)
  58. back = Cache.menu("Meter_Back")   
  59. cw = back.width  
  60. ch = back.height
  61. src_rect = Rect.new(0, 0, cw, ch)   
  62. self.contents.blt(x + 65, y - ch + 30, back, src_rect)
  63. meter = Cache.menu("MP_Meter")   
  64. cw = meter.width  * actor.mp / actor.maxmp
  65. ch = meter.height
  66. src_rect = Rect.new(0, 0, cw, ch)
  67. self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
  68. text = Cache.menu("MP_Text")   
  69. cw = text.width  
  70. ch = text.height
  71. src_rect = Rect.new(0, 0, cw, ch)
  72. self.contents.blt(x + 35, y - ch + 30, text, src_rect)
  73. self.contents.font.color = Color.new(0,0,0,255)
  74. self.contents.draw_text(x + 81, y - 1, 48, 32, actor.mp.to_s, 2)
  75. self.contents.font.color = Color.new(255,255,255,255)
  76. self.contents.draw_text(x + 80, y - 2, 48, 32, actor.mp.to_s, 2)   
  77. end      
  78. def draw_actor_name_menu(actor, x, y)
  79.     self.contents.font.color = text_color(23)
  80.     self.contents.draw_text(x, y, 108, WLH, actor.name,1)
  81. end  
  82. def draw_actor_level_menu(actor, x, y)
  83.     self.contents.font.color = system_color
  84.     self.contents.draw_text(x, y, 32, WLH, " L")
  85.     self.contents.font.color = text_color(10)
  86.     self.contents.draw_text(x + 18, y, 24, WLH, actor.level, 1)
  87. end  
  88. end
  89. ############
  90. # Game_Map #
  91. ############
  92. class Game_Map
  93. attr_reader   :map_id  
  94. def mpname
  95. $mpname = load_data("Data/MapInfos.rvdata")
  96. $mpname[@map_id].name
  97. end
  98. end
  99. ########################
  100. # Window_Selectable_Menu #
  101. ########################
  102. class Window_Selectable_Menu < Window_Base
  103.   attr_reader   :item_max              
  104.   attr_reader   :column_max            
  105.   attr_reader   :index                    
  106.   def initialize(x, y, width, height, spacing = 32)
  107.     @item_max = 1
  108.     @column_max = 1
  109.     @index = -1
  110.     @spacing = spacing
  111.     super(x, y, width, height)
  112.   end
  113.   def create_contents
  114.     self.contents.dispose
  115.     self.contents = Bitmap.new(width - 32, [height - 32, row_max * WLH].max)
  116.   end  
  117.   def index=(index)
  118.     @index = index
  119.   end
  120.   def row_max
  121.     return (@item_max + @column_max - 1) / @column_max
  122.   end
  123.   def top_row
  124.     return self.oy / WLH
  125.   end
  126.   def top_row=(row)
  127.     row = 0 if row < 0
  128.     row = row_max - 1 if row > row_max - 1
  129.     self.oy = row * WLH
  130.   end
  131.   def page_row_max
  132.     return (self.height - 32) / WLH
  133.   end
  134.   def page_item_max
  135.     return page_row_max * @column_max
  136.   end
  137.   def bottom_row
  138.     return top_row + page_row_max - 1
  139.   end
  140.   def bottom_row=(row)
  141.     self.top_row = row - (page_row_max - 1)
  142.   end
  143.   def cursor_movable?
  144.     return false if (not visible or not active)
  145.     return false if (index < 0 or index > @item_max or @item_max == 0)
  146.     return false if (@opening or @closing)
  147.     return true
  148.   end
  149.   def cursor_down(wrap = false)
  150.     if (@index < @item_max - @column_max) or (wrap and @column_max == 1)
  151.       @index = (@index + @column_max) % @item_max
  152.     end
  153.   end
  154.   def cursor_up(wrap = false)
  155.     if (@index >= @column_max) or (wrap and @column_max == 1)
  156.       @index = (@index - @column_max + @item_max) % @item_max
  157.     end
  158.   end
  159.   def cursor_right(wrap = false)
  160.     if (@column_max >= 2) and
  161.        (@index < @item_max - 1 or (wrap and page_row_max == 1))
  162.       @index = (@index + 1) % @item_max
  163.     end
  164.   end
  165.   def cursor_left(wrap = false)
  166.     if (@column_max >= 2) and
  167.        (@index > 0 or (wrap and page_row_max == 1))
  168.       @index = (@index - 1 + @item_max) % @item_max
  169.     end
  170.   end
  171.   def update
  172.     super
  173.     if cursor_movable?
  174.       last_index = @index
  175.       if Input.repeat?(Input::DOWN)
  176.         cursor_down(Input.trigger?(Input::DOWN))
  177.       end
  178.       if Input.repeat?(Input::UP)
  179.         cursor_up(Input.trigger?(Input::UP))
  180.       end
  181.       if Input.repeat?(Input::RIGHT)
  182.         cursor_down(Input.trigger?(Input::DOWN))
  183.       end
  184.       if Input.repeat?(Input::LEFT)
  185.         cursor_up(Input.trigger?(Input::UP))
  186.       end

  187.       if @index != last_index
  188.         Sound.play_cursor
  189.       end
  190.     end
  191.   end
  192. end
  193. #######################
  194. # Window_MenuStatus_Yui #
  195. #######################
  196. class Window_MenuStatus_Yui < Window_Selectable_Menu
  197.   def initialize(x, y)
  198.     super(x, y, 460, 300)
  199.     self.contents.font.bold = true
  200.     self.contents.font.shadow = true
  201.     self.contents.font.size = 16
  202.     refresh
  203.     self.active = false
  204.     self.index = -1
  205.   end
  206.   def refresh
  207.     self.contents.clear
  208.     @item_max = $game_party.members.size
  209.     for actor in $game_party.members
  210.       if actor.index == 0
  211.       draw_actor_graphic(actor, 65, 110)
  212.       draw_actor_name_menu(actor, 15, 120)
  213.       draw_actor_level_menu(actor, -5, 55)     
  214.       draw_actor_state(actor, 20, 100)      
  215.       draw_actor_hp_menu(actor,  -30, 25)
  216.       draw_actor_mp_menu(actor, 0, 45)      
  217.       elsif actor.index == 1
  218.       draw_actor_graphic(actor, 170, 210)
  219.       draw_actor_name_menu(actor, 120, 220)
  220.       draw_actor_level_menu(actor, 100, 155)   
  221.       draw_actor_state(actor, 125, 200)            
  222.       draw_actor_hp_menu(actor,  75, 120)
  223.       draw_actor_mp_menu(actor, 105, 145)           
  224.       elsif actor.index == 2
  225.       draw_actor_graphic(actor, 265, 110)
  226.       draw_actor_name_menu(actor, 215, 120)   
  227.       draw_actor_level_menu(actor, 195, 55)   
  228.       draw_actor_state(actor, 220, 100)            
  229.       draw_actor_hp_menu(actor,  170, 20)
  230.       draw_actor_mp_menu(actor, 205, 45)        
  231.       elsif actor.index == 3
  232.       draw_actor_graphic(actor, 370,  210)  
  233.       draw_actor_name_menu(actor, 320, 220)     
  234.       draw_actor_level_menu(actor, 370, 155)   
  235.       draw_actor_state(actor, 325, 200)                  
  236.       draw_actor_hp_menu(actor,  275, 120)
  237.       draw_actor_mp_menu(actor, 245, 145)        
  238.       end
  239.     end
  240.   end
  241.   def update_cursor
  242.   end
  243. end
  244. ###############
  245. # Window_Time #
  246. ###############
  247. class Window_Mapname < Window_Base
  248.   def initialize(x, y)
  249.     super(x, y, 160, WLH + 32)
  250.     self.contents.font.bold = true
  251.     self.contents.font.size = 16   
  252.     refresh
  253.   end  
  254. def refresh
  255.     self.contents.clear
  256.     self.contents.font.color = normal_color
  257.     self.contents.draw_text(4, 0, 120, 32, $game_map.mpname.to_s, 1)
  258. end
  259. end
  260. ###################
  261. # Window_Gold_Menu #
  262. ###################
  263. class Window_Gold_Menu < Window_Base
  264.   def initialize(x, y)
  265.     super(x, y, 160, WLH + 32)
  266.     self.contents.font.bold = true
  267.     self.contents.font.size = 16
  268.     self.contents.font.color = power_up_color   
  269.     refresh
  270.   end
  271.   def refresh
  272.     self.contents.clear
  273.     draw_currency_value_menu($game_party.gold, 10, 0, 120)
  274.   end
  275. end
  276. ###############
  277. # Window_Time #
  278. ###############
  279. class Window_Time < Window_Base
  280.   def initialize(x, y)
  281.     super(x, y, 160, WLH + 32)
  282.     self.contents.font.bold = true
  283.     self.contents.font.size = 16
  284.     self.contents.font.color = power_up_color
  285.     refresh
  286.   end
  287.   def refresh
  288.     self.contents.clear
  289.     @total_sec = Graphics.frame_count / Graphics.frame_rate
  290.     hour = @total_sec / 60 / 60
  291.     min = @total_sec / 60 % 60
  292.     sec = @total_sec % 60
  293.     text = sprintf("%02d:%02d:%02d", hour, min, sec)
  294.     self.contents.draw_text(4, 0, 120, 32,  text, 2)
  295. end
  296.   def update
  297.     super
  298.     if Graphics.frame_count / Graphics.frame_rate != @total_sec
  299.       refresh
  300.     end
  301.   end
  302. end
  303. ##############
  304. # Scene_Menu #
  305. ##############
  306. class Scene_Menu <Scene_Base  
  307.   def main
  308.     super                  
  309.   end  
  310.   def initialize(menu_index = 0)
  311.     @menu_index = menu_index
  312.   end  
  313.   def perform_transition
  314.     Graphics.transition(10, "Graphics/System/BattleStart", 80)     
  315.   end
  316.   def start
  317.     @menu_back = Plane.new   
  318.     @menu_back.bitmap = Cache.menu("Background")
  319.     @menu_layout = Sprite.new  
  320.     @menu_layout.bitmap = Cache.menu("Menu_Layout")
  321.     @menu_com = Sprite.new  
  322.     @menu_com.bitmap = Cache.menu("Menu_Com01")
  323.     @menu_select = Sprite.new  
  324.     @menu_select.bitmap = Cache.menu("Menu_Select00")
  325.     create_command_window
  326.     @gold_window = Window_Gold_Menu.new(195, 45)
  327.     @status_window = Window_MenuStatus_Yui.new(100, 60)
  328.     @playtime_window = Window_Time .new(165, 0)
  329.     @mapname_window = Window_Mapname.new(195,360)
  330.     @status_window.opacity = 0
  331.     @playtime_window.opacity = 0
  332.     @mapname_window.opacity = 0
  333.     @gold_window.opacity = 0   
  334.     Audio.bgm_play("Audio/BGM/Battle1")
  335.   end
  336.   def pre_terminate
  337.   end  
  338.   def terminate
  339.     @menu_back.dispose
  340.     @menu_layout.dispose
  341.     @menu_com.dispose
  342.     @menu_select.dispose
  343.     @command_window.dispose
  344.     @gold_window.dispose
  345.     @status_window.dispose
  346.     @playtime_window.dispose
  347.     @mapname_window.dispose
  348.   end
  349.   def update
  350.     @menu_back.ox += 1
  351.     @command_window.update
  352.     @gold_window.update
  353.     @status_window.update
  354.     @mapname_window.update
  355.     @playtime_window.update
  356.     if @command_window.active
  357.       update_command_selection
  358.     elsif @status_window.active
  359.       update_actor_selection
  360.     end
  361.   end
  362.   def create_command_window
  363.     s1 = Vocab::item
  364.     s2 = Vocab::skill
  365.     s3 = Vocab::equip
  366.     s4 = Vocab::status
  367.     s5 = Vocab::save
  368.     s6 = Vocab::game_end
  369.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
  370.     @command_window.index = @menu_index
  371.     @command_window.openness = 0
  372.     @command_window.open
  373.     @command_window.opacity = 0
  374.     @command_window.contents_opacity = 0
  375.     if $game_system.save_disabled              
  376.       @command_window.draw_item(4, false)     
  377.     end
  378.   end
  379.   def update_command_selection   
  380.      case @command_window.index
  381.      when 0
  382.     @menu_com.bitmap = Cache.menu("Menu_Com01")
  383.      when 1
  384.     @menu_com.bitmap = Cache.menu("Menu_Com02")
  385.      when 2
  386.     @menu_com.bitmap = Cache.menu("Menu_Com03")
  387.      when 3
  388.     @menu_com.bitmap = Cache.menu("Menu_Com04")
  389.      when 4
  390.     @menu_com.bitmap = Cache.menu("Menu_Com05")
  391.      when 5
  392.     @menu_com.bitmap = Cache.menu("Menu_Com06")   
  393.     end         
  394.     if Input.trigger?(Input::B)
  395.       Sound.play_cancel
  396.       Audio.bgm_stop
  397.       $game_map.autoplay
  398.       $scene = Scene_Map.new
  399.     elsif Input.trigger?(Input::C)
  400.       if $game_party.members.size == 0 and @command_window.index < 4
  401.         Sound.play_buzzer
  402.         return
  403.       elsif $game_system.save_disabled and @command_window.index == 4
  404.         Sound.play_buzzer
  405.         return
  406.       end
  407.       Sound.play_decision
  408.       case @command_window.index
  409.       when 0      
  410.         $scene = Scene_Item.new
  411.       when 1,2,3   
  412.         start_actor_selection
  413.       when 4      
  414.         $scene = Scene_File.new(true, false, false)
  415.       when 5     
  416.         $scene = Scene_End.new
  417.       end
  418.     end
  419.   end
  420.   def start_actor_selection
  421.     @command_window.active = false
  422.     @status_window.active = true
  423.     if $game_party.last_actor_index < @status_window.item_max
  424.       @status_window.index = $game_party.last_actor_index
  425.     else
  426.       @status_window.index = 0
  427.     end
  428.   end
  429.   def end_actor_selection
  430.     @command_window.active = true
  431.     @status_window.active = false
  432.     @menu_select.bitmap = Cache.menu("Menu_Select00")
  433.     @status_window.index = -1
  434.   end
  435.   def update_actor_selection   
  436.      case @status_window.index
  437.      when 0
  438.     @menu_select.bitmap = Cache.menu("Menu_Select01")
  439.      when 1
  440.     @menu_select.bitmap = Cache.menu("Menu_Select02")
  441.      when 2
  442.     @menu_select.bitmap = Cache.menu("Menu_Select03")
  443.      when 3
  444.     @menu_select.bitmap = Cache.menu("Menu_Select04")
  445.     end
  446.     if Input.trigger?(Input::B)
  447.       Sound.play_cancel
  448.       end_actor_selection
  449.     elsif Input.trigger?(Input::C)
  450.       $game_party.last_actor_index = @status_window.index
  451.       Sound.play_decision
  452.       case @command_window.index
  453.       when 1
  454.         $scene = Scene_Skill.new(@status_window.index)
  455.       when 2   
  456.         $scene = Scene_Equip.new(@status_window.index)
  457.       when 3  
  458.         $scene = Scene_Status.new(@status_window.index)
  459.       end
  460.     end
  461.   end
  462. end
  463. $mogscript = {} if $mogscript == nil
  464. $mogscript["menu_yui"] = true
复制代码
335行改成你要的BGM名字
   
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
181 小时
注册时间
2010-7-20
帖子
347
5
 楼主| 发表于 2010-8-6 15:23:37 | 只看该作者
本帖最后由 5810707 于 2010-8-6 16:01 编辑

我给一个菜单脚本你帮我加进去行吗?
帮个忙吧
VX_MOG_Menu_Yui.zip (619.18 KB, 下载次数: 37)

点评

放工程吧= =  发表于 2010-8-6 15:29
回复 支持 反对

使用道具 举报

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
4
发表于 2010-8-6 12:24:05 | 只看该作者
本帖最后由 小幽的马甲 于 2010-8-6 16:33 编辑

废弃

点评

但如果这样的话,进入“物品”等栏调出Scene_Item等其他场景的时候音乐也会停下= =  发表于 2010-8-6 15:35
应该在def terminate里插Audio.bgm_stop吧?  发表于 2010-8-6 15:32
因为我在偷懒= =  发表于 2010-8-6 15:31
看了一下上面的就感觉不对劲。。总有少了啥的感觉。。  发表于 2010-8-6 15:28
From mortal hope immortal power springs.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
181 小时
注册时间
2010-7-20
帖子
347
3
 楼主| 发表于 2010-8-6 11:56:21 | 只看该作者
是有音乐了。不过退出了还在响
回复 支持 反对

使用道具 举报

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
2
发表于 2010-8-6 11:52:25 | 只看该作者
本帖最后由 小幽的马甲 于 2010-8-6 16:33 编辑

废弃
From mortal hope immortal power springs.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-13 02:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表