Project1

标题: VX-囧版菜单 [打印本页]

作者: 冰舞蝶恋    时间: 2010-10-7 17:10
标题: VX-囧版菜单
本帖最后由 冰舞蝶恋 于 2010-10-11 21:02 编辑

不敢原创发布,因为自己只是稍微改了下坐标,主要靠小幽大的纠正脚本……XD若有雷同,说明见鬼(去死……)……该脚本唯一好处就是,增加或减少选项时可以像普通菜单那样更改,就不必像图片菜单、图标菜单那样再去加一大堆东西,还算比较美观吧= .=……反正吾是看晕了……没有针对他人哈,莫动怒。
唔,脚本先发了:
  1. #==============================================================================
  2. =begin
  3. 【VX囧版菜单】
  4. 主脚本:小幽的马甲
  5. 其他:冰舞蝶恋
  6. 详见提问区此帖:http://rpg.blue/forum.php?mod=viewthread&tid=158048&page=1&extra=#pid1543583
  7. 中间好空的说……角色状态好挤的说……(小柯之意)而且还令人忍无可忍地去掉了职业描绘……
  8. 努力挑自己的毛病ing……
  9. 所以,请PIA飞脚本白痴冰舞蝶恋的囧版菜单……
  10. 如有冒犯各位大大,请联系QQ877684540
  11. 对该脚本有不满意之处,请联系本人修改坐标……
  12. =end
  13. #==============================================================================
  14. class Scene_Menu < Scene_Base
  15.   #--------------------------------------------------------------------------
  16.   # ● 初始化对像
  17.   #     menu_index : 命令窗口光标初始位置
  18.   #--------------------------------------------------------------------------
  19.   def initialize(menu_index = 0)
  20.     @menu_index = menu_index
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 开始处理
  24.   #--------------------------------------------------------------------------
  25.   def start
  26.     super
  27.     create_menu_background
  28.     @status_window = Window_MenuStatus.new(0, 248)
  29.     @gold_window = Window_Gold.new(385, 0)
  30.     create_command_window
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 结束处理
  34.   #--------------------------------------------------------------------------
  35.   def terminate
  36.     super
  37.     dispose_menu_background
  38.     @command_window.dispose
  39.     @gold_window.dispose
  40.     @status_window.dispose
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 更新画面
  44.   #--------------------------------------------------------------------------
  45.   def update
  46.     super
  47.     update_menu_background
  48.     @command_window.update
  49.     @gold_window.update
  50.     @status_window.update
  51.     if @command_window.active
  52.       update_command_selection
  53.     elsif @status_window.active
  54.       update_actor_selection
  55.     end
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ● 生成命令窗口
  59.   #--------------------------------------------------------------------------
  60.   def create_command_window
  61.     s1 = "物品"
  62.     s2 = "法术"
  63.     s3 = "装备"
  64.     s4 = "状态"
  65.     s5 = "存储"
  66.     s6 = "退出"
  67.     @command_window = Window_Command.new(80, [s1, s2, s3, s4, s5, s6])
  68.     @command_window.index = @menu_index
  69.     if $game_party.members.size == 0          # 如果队伍为空
  70.       @command_window.draw_item(0, false)     # 无效化物品选项
  71.       @command_window.draw_item(1, false)     # 无效化技能选项
  72.       @command_window.draw_item(2, false)     # 无效化装备选项
  73.       @command_window.draw_item(3, false)     # 无效化状态选项
  74.     end
  75.     if $game_system.save_disabled             # 如果禁止存档
  76.       @command_window.draw_item(4, false)     # 无效化存档选项
  77.     end
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 更新命令窗口
  81.   #--------------------------------------------------------------------------
  82.   def update_command_selection
  83.     if Input.trigger?(Input::B)
  84.       Sound.play_cancel
  85.       $scene = Scene_Map.new
  86.     elsif Input.trigger?(Input::C)
  87.       if $game_party.members.size == 0 and @command_window.index < 4
  88.         Sound.play_buzzer
  89.         return
  90.       elsif $game_system.save_disabled and @command_window.index == 4
  91.         Sound.play_buzzer
  92.         return
  93.       end
  94.       Sound.play_decision
  95.       case @command_window.index
  96.       when 0      # 物品
  97.         $scene = Scene_Item.new
  98.       when 1,2,3  # 技能、装备、状态
  99.         start_actor_selection
  100.       when 4      # 存档
  101.         $scene = Scene_File.new(true, false, false)
  102.       when 6      # 结束游戏
  103.         $scene = Scene_End.new
  104.       end
  105.     end
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 角色选择开始
  109.   #--------------------------------------------------------------------------
  110.   def start_actor_selection
  111.     @command_window.active = false
  112.     @status_window.active = true
  113.     if $game_party.last_actor_index < @status_window.item_max
  114.       @status_window.index = $game_party.last_actor_index
  115.     else
  116.       @status_window.index = 0
  117.     end
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ● 角色选择结束
  121.   #--------------------------------------------------------------------------
  122.   def end_actor_selection
  123.     @command_window.active = true
  124.     @status_window.active = false
  125.     @status_window.index = -1
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● 角色选择更新
  129.   #--------------------------------------------------------------------------
  130.   def update_actor_selection
  131.     if Input.trigger?(Input::B)
  132.       Sound.play_cancel
  133.       end_actor_selection
  134.     elsif Input.trigger?(Input::C)
  135.       $game_party.last_actor_index = @status_window.index
  136.       Sound.play_decision
  137.       case @command_window.index
  138.       when 1  # 技能
  139.         $scene = Scene_Skill.new(@status_window.index)
  140.       when 2  # 装备
  141.         $scene = Scene_Equip.new(@status_window.index)
  142.       when 3  # 状态
  143.         $scene = Scene_Status.new(@status_window.index)
  144.       end
  145.     end
  146.   end
  147. end
  148. #==============================================================================
  149. # ■ Window_MenuStatus
  150. #==============================================================================
  151. class Window_MenuStatus < Window_Selectable
  152.   #--------------------------------------------------------------------------
  153.   # ● 初始化对像
  154.   #     x      : 窗口 X 座标
  155.   #     y      : 窗口 Y 座标
  156.   #--------------------------------------------------------------------------
  157.   def initialize(x, y)
  158.     super(x, y, 544, 168)
  159.     refresh
  160.     self.active = false
  161.     self.index = -1
  162.     @column_max = $game_party.members.size
  163.     @spacing = 0
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 刷新
  167.   #--------------------------------------------------------------------------
  168.   def refresh
  169.     self.contents.clear
  170.     @item_max = $game_party.members.size
  171.     @column_max = $game_party.members.size
  172.     for actor in $game_party.members
  173.       x = actor.index * 128
  174.       y = 28
  175.       draw_actor_face(actor, x, 2, 96)
  176.       draw_actor_name(actor, x, y - 28)
  177.       draw_actor_level(actor, x, y + 32)
  178.       draw_actor_hp(actor, x, y + WLH * 1 + 28)
  179.       draw_actor_mp(actor, x , y + WLH * 2 + 28)
  180.     end
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ● 更新光标
  184.   #--------------------------------------------------------------------------
  185.   def update_cursor
  186.     if @index < 0               # 无光标
  187.       self.cursor_rect.empty
  188.     elsif @index < @item_max    # 一般
  189.       self.cursor_rect.set(@index * 128, 0, 128, 128)
  190.     elsif @index >= 100         # 使用本身
  191.       self.cursor_rect.set((@index - 100) * 128, 0, 128, 128)
  192.     else                        # 全体
  193.       self.cursor_rect.set(0, 0, @item_max * 128, 128)
  194.     end
  195.   end
  196. end
复制代码
然后是截图:


喏,最后是范例:

菜单.zip

738.71 KB, 下载次数: 233


作者: overpan    时间: 2010-10-7 17:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: 冰舞蝶恋    时间: 2010-10-7 17:19
回复 overpan 的帖子

您老真速度……= .=
嘛,鉴于您的速度,送一只猫做礼物{:nm_4:}
作者: Rion幻音    时间: 2010-10-7 17:32
顶一顶你,加油吧~
作者: 小鱼子    时间: 2010-10-7 17:51
一般般啦……
不过认真创造的态度很值得学习
作者: 小幽的马甲    时间: 2010-10-7 18:01
本帖最后由 小幽的马甲 于 2010-10-7 18:03 编辑

头像没有居中,吴莉嘉的头发都和选框相切了{:nm_5:}
      draw_actor_face(actor, x, 2, 96)
=》
      draw_actor_face(actor, x + 16, 2, 96)
这样看着似乎更好些
作者: 冰舞蝶恋    时间: 2010-10-7 18:27
回复 小幽的马甲 的帖子

哇耶?小幽大您后来改的脚本吾偷懒没有改坐标哈
作者: 红灯    时间: 2010-10-7 19:51
把等级坐标移到名字后面会不会更好看些?
作者: 冰舞蝶恋    时间: 2010-10-7 20:08
回复 红灯 的帖子
不确定角色名字的长短啊。

   
作者: 星之璇    时间: 2010-10-9 20:28
哎~这个不错~我做过,然后弄得好的话,很有仙剑一的风范~
作者: wangswz    时间: 2010-10-9 20:49
如果改成菜单画面修改初级教程来发布的话。。
VIP+2啊啊啊啊啊啊啊啊啊
作者: 越前リョーマ    时间: 2010-10-9 21:20
其实还不错啦,不过我不太喜欢一大堆东西挤在头像那
作者: 冰舞蝶恋    时间: 2010-10-9 21:36
回复 越前リョーマ 的帖子

=.=本人就是看不惯一堆东西散的太开占空间于是才有了该脚本的说……
   
作者: 九夜神尊    时间: 2010-10-9 23:19
回复 冰舞蝶恋 的帖子
不管怎么说我还是支持你的。
做的无可挑剔
PS:咋一眼看上去都是假话。其实是别有用心!
作者: 冰舞蝶恋    时间: 2010-10-11 20:49
回复 九夜神尊 的帖子
我好水的说....(详见主楼注释)So,你还是去膜拜小幽比较好。。

   
作者: 巧克力猫咪    时间: 2010-10-11 21:17
我也来膜拜下啊,呵呵,虽然我自己用不着,不过看起来很不错,我是个实话实说
作者: jinbide    时间: 2013-1-25 12:42
退出游戏s6有点问题啊!~~~~~~~~~~~~~~~~~~~~~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1