Project1

标题: 怎样修改scene_Menu后只留下物品,存档,退出三个选项? [打印本页]

作者: sbmhny2002    时间: 2012-3-31 22:49
标题: 怎样修改scene_Menu后只留下物品,存档,退出三个选项?
如题,我试着改了下,是只留下了这三项
可是光标上下移动后很不理想,乱跳光标,需要怎样修改?
而且,我想同时去掉步数,钱数等窗口,只留下一个有物品,存档,退出三个的对话框
我自己画了一个大概的图,希望高手教导下

就是这样的dsu_plus_rewardpost_czw
作者: 爆焰    时间: 2012-4-1 09:55
直接找个地方插进去即可:
  1. #==============================================================================
  2. # ■ Scene_Menu
  3. #------------------------------------------------------------------------------
  4. #  处理菜单画面的类。
  5. #==============================================================================

  6. class Scene_Menu
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     menu_index : 命令光标的初期位置
  10.   #--------------------------------------------------------------------------
  11.   def initialize(menu_index = 0)
  12.     @menu_index = menu_index
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 主处理
  16.   #--------------------------------------------------------------------------
  17.   def main
  18.     # 生成命令窗口
  19.     s1 = $data_system.words.item
  20.     s2 = "存档"
  21.     s3 = "结束游戏"
  22.     @command_window = Window_Command.new(160, [s1, s2, s3])
  23.     @command_window.index = @menu_index
  24.     # 同伴人数为 0 的情况下
  25.     if $game_party.actors.size == 0
  26.       # 物品、特技、装备、状态无效化
  27.       @command_window.disable_item(0)
  28.       @command_window.disable_item(1)
  29.       @command_window.disable_item(2)
  30.       @command_window.disable_item(3)
  31.     end
  32.     # 禁止存档的情况下
  33.     if $game_system.save_disabled
  34.       # 存档无效
  35.       @command_window.disable_item(1)
  36.     end
  37.    
  38.     # 执行过渡
  39.     Graphics.transition
  40.     # 主循环
  41.     loop do
  42.       # 刷新游戏画面
  43.       Graphics.update
  44.       # 刷新输入信息
  45.       Input.update
  46.       # 刷新画面
  47.       update
  48.       # 如果切换画面就中断循环
  49.       if $scene != self
  50.         break
  51.       end
  52.     end
  53.     # 准备过渡
  54.     Graphics.freeze
  55.     # 释放窗口
  56.     @command_window.dispose
  57.    
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 刷新画面
  61.   #--------------------------------------------------------------------------
  62.   def update
  63.     # 刷新窗口
  64.     @command_window.update
  65.   
  66.     # 命令窗口被激活的情况下: 调用 update_command
  67.     if @command_window.active
  68.       update_command
  69.       return
  70.     end
  71.     # 状态窗口被激活的情况下: 调用 update_status
  72.     if @status_window.active
  73.       update_status
  74.       return
  75.     end
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 刷新画面 (命令窗口被激活的情况下)
  79.   #--------------------------------------------------------------------------
  80.   def update_command
  81.     # 按下 B 键的情况下
  82.     if Input.trigger?(Input::B)
  83.       # 演奏取消 SE
  84.       $game_system.se_play($data_system.cancel_se)
  85.       # 切换的地图画面
  86.       $scene = Scene_Map.new
  87.       return
  88.     end
  89.     # 按下 C 键的情况下
  90.     if Input.trigger?(Input::C)
  91.       # 同伴人数为 0、存档、游戏结束以外的场合
  92.       if $game_party.actors.size == 0 and @command_window.index < 4
  93.         # 演奏冻结 SE
  94.         $game_system.se_play($data_system.buzzer_se)
  95.         return
  96.       end
  97.       # 命令窗口的光标位置分支
  98.       case @command_window.index
  99.       when 0  # 物品
  100.         # 演奏确定 SE
  101.         $game_system.se_play($data_system.decision_se)
  102.         # 切换到物品画面
  103.         $scene = Scene_Item.new
  104.       when 1  # 存档
  105.         # 禁止存档的情况下
  106.         if $game_system.save_disabled
  107.           # 演奏冻结 SE
  108.           $game_system.se_play($data_system.buzzer_se)
  109.           return
  110.         end
  111.         # 演奏确定 SE
  112.         $game_system.se_play($data_system.decision_se)
  113.         # 切换到存档画面
  114.         $scene = Scene_Save.new
  115.       when 2  # 游戏结束
  116.         # 演奏确定 SE
  117.         $game_system.se_play($data_system.decision_se)
  118.         # 切换到游戏结束画面
  119.         $scene = Scene_End.new
  120.       end
  121.       return
  122.     end
  123.   end
  124. end   


  125. class Scene_Save < Scene_File
  126.   def on_decision(filename)
  127.     # 演奏存档 SE
  128.     $game_system.se_play($data_system.save_se)
  129.     # 写入存档数据
  130.     file = File.open(filename, "wb")
  131.     write_save_data(file)
  132.     file.close
  133.     # 如果被事件调用
  134.     if $game_temp.save_calling
  135.       # 清除存档调用标志
  136.       $game_temp.save_calling = false
  137.       # 切换到地图画面
  138.       $scene = Scene_Map.new
  139.       return
  140.     end
  141.     # 切换到菜单画面
  142.     $scene = Scene_Menu.new(1)
  143.   end
  144.   def on_cancel
  145.     # 演奏取消 SE
  146.     $game_system.se_play($data_system.cancel_se)
  147.     # 如果被事件调用
  148.     if $game_temp.save_calling
  149.       # 清除存档调用标志
  150.       $game_temp.save_calling = false
  151.       # 切换到地图画面
  152.       $scene = Scene_Map.new
  153.       return
  154.     end
  155.     # 切换到菜单画面
  156.     $scene = Scene_Menu.new(1)
  157.   end
  158. end

  159. class Scene_End
  160.   def update
  161.     # 刷新命令窗口
  162.     @command_window.update
  163.     # 按下 B 键的情况下
  164.     if Input.trigger?(Input::B)
  165.       # 演奏取消 SE
  166.       $game_system.se_play($data_system.cancel_se)
  167.       # 切换到菜单画面
  168.       $scene = Scene_Menu.new(2)
  169.       return
  170.     end
  171.     # 按下 C 键的场合下
  172.     if Input.trigger?(Input::C)
  173.       # 命令窗口光标位置分支
  174.       case @command_window.index
  175.       when 0  # 返回标题画面
  176.         command_to_title
  177.       when 1  # 退出
  178.         command_shutdown
  179.       when 2  # 取消
  180.         command_cancel
  181.       end
  182.       return
  183.     end
  184.   end
  185.   def command_cancel
  186.     # 演奏确定 SE
  187.     $game_system.se_play($data_system.decision_se)
  188.     # 切换到菜单画面
  189.     $scene = Scene_Menu.new(2)
  190.   end
  191. end

  192. #==============================================================================
  193. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  194. #==============================================================================


  195. #==============================================================================
  196. # ■ Window_Base
  197. #==============================================================================
  198. class Window_Base < Window
  199.   alias xrxs_mp7_initialize initialize
  200.   def initialize(x, y, width, height)
  201.     xrxs_mp7_initialize(x, y, width, height)
  202.     if $scene.is_a?(Scene_Menu) or
  203.        $scene.is_a?(Scene_Item) or
  204.        $scene.is_a?(Scene_Skill) or
  205.        $scene.is_a?(Scene_Equip) or
  206.        $scene.is_a?(Scene_Status) or
  207.        $scene.is_a?(Scene_Save) or
  208.        $scene.is_a?(Scene_End)
  209.       self.back_opacity = 255 #————这个数值可调,为透明程度
  210.     end
  211.   end
  212. end
  213. module XRXS_MP7_Module
  214.   def create_spriteset
  215.     @spriteset = Spriteset_Map.new
  216.   end
  217.   def dispose_spriteset
  218.     @spriteset.dispose
  219.   end
  220. end
  221. class Scene_Menu
  222.   include XRXS_MP7_Module
  223.   alias xrxs_mp7_main main
  224.   def main
  225.     create_spriteset
  226.     xrxs_mp7_main
  227.     dispose_spriteset
  228.   end
  229. end
  230. class Scene_Item
  231.   include XRXS_MP7_Module
  232.   alias xrxs_mp7_main main
  233.   def main
  234.     create_spriteset
  235.     xrxs_mp7_main
  236.     dispose_spriteset
  237.   end
  238. end
  239. class Scene_Skill
  240.   include XRXS_MP7_Module
  241.   alias xrxs_mp7_main main
  242.   def main
  243.     create_spriteset
  244.     xrxs_mp7_main
  245.     dispose_spriteset
  246.   end
  247. end
  248. class Scene_Equip
  249.   include XRXS_MP7_Module
  250.   alias xrxs_mp7_main main
  251.   def main
  252.     create_spriteset
  253.     xrxs_mp7_main
  254.     dispose_spriteset
  255.   end
  256. end
  257. class Scene_Status
  258.   include XRXS_MP7_Module
  259.   alias xrxs_mp7_main main
  260.   def main
  261.     create_spriteset
  262.     xrxs_mp7_main
  263.     dispose_spriteset
  264.   end
  265. end
  266. class Scene_Save
  267.   include XRXS_MP7_Module
  268.   alias xrxs_mp7_main main
  269.   def main
  270.     create_spriteset
  271.     xrxs_mp7_main
  272.     dispose_spriteset
  273.   end
  274. end
  275. class Scene_End
  276.   include XRXS_MP7_Module
  277.   alias xrxs_mp7_main main
  278.   def main
  279.     create_spriteset
  280.     xrxs_mp7_main
  281.     dispose_spriteset
  282.   end
  283. end

  284. #==============================================================================
  285. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  286. #==============================================================================
复制代码

作者: sbmhny2002    时间: 2012-4-1 10:16
太厉害了!!!
我就按照你的脚本努力学习了,哈哈
不过能给我说下,要是我想把现在改好的小菜单移动到屏幕中间是修改哪里的命令?
作者: 爆焰    时间: 2012-4-1 20:45
sbmhny2002 发表于 2012-4-1 10:16
太厉害了!!!
我就按照你的脚本努力学习了,哈哈
不过能给我说下,要是我想把现在改好的小菜单移动到屏幕 ...

将这句:
  1. @command_window.index = @menu_index
复制代码
改成:
  1. @command_window.x = 数值
  2. @command_window.y = 数值
复制代码
数值自己调。
作者: sbmhny2002    时间: 2012-4-1 22:40
谢谢拉

作者: sbmhny2002    时间: 2012-4-2 10:18
如果,我想在打开菜单的时候,屏幕变暗一些,中间显示一个图片,要在哪里做修改?因为现在改了后菜单很小,打开时感觉少点什么




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