Project1

标题: 在主命令窗口加了读档之后的问题 [打印本页]

作者: 木许许    时间: 2011-9-9 15:17
标题: 在主命令窗口加了读档之后的问题
在Scene_Menu脚本的命令列表中添加了读档这一项,进游戏到主命令窗口可以进入读档界面,但是如果按ESC退出读档窗口游戏直接回到标题画面了,应该怎么办?
作者: 各种压力的猫君    时间: 2011-9-9 15:43
本帖最后由 各种压力的猫君 于 2011-9-9 16:51 编辑

Scene_Load 约54-62行
  1.   #--------------------------------------------------------------------------
  2.   # ● 取消时的处理
  3.   #--------------------------------------------------------------------------
  4.   def on_cancel
  5.     # 演奏取消 SE
  6.     $game_system.se_play($data_system.cancel_se)
  7.     # 切换到标题画面
  8.     $scene = Scene_Title.new
  9.   end
复制代码
改成这样:
  1.   #--------------------------------------------------------------------------
  2.   # ● 取消时的处理
  3.   #--------------------------------------------------------------------------
  4.   def on_cancel
  5.     # 演奏取消 SE
  6.     $game_system.se_play($data_system.cancel_se)
  7.     # 取消处理
  8.     if $loadfrommenu == 1          #如果从菜单调用
  9.      $scene = Scene_Menu.new(5)    #返回菜单
  10.      $loadfrommenu = 0             #复原变量
  11.     else
  12.      $scene = Scene_Title.new    #否则返回标题
  13.    end
  14.   end
复制代码
Scene_Menu 约37-41行
  1.     # 禁止存档的情况下
  2.     if $game_system.save_disabled
  3.       # 存档无效
  4.       @command_window.disable_item(4)
  5.     end
复制代码
下面加上 (5) 请根据你自己存档的位置进行更改
  1.     # 不能读档(没有存档)的情况下
  2.     for i in 0..3 # 判断存档是否存在
  3.       if FileTest.exist?("Save#{i+1}.rxdata")
  4.         @continue_enabled = true
  5.       end
  6.     end
  7.     unless @continue_enabled
  8.       @command_window.disable_item(5) # 读档无效
  9.     end
复制代码
Scene_Menu 找到你读档的部分,改成这样:when 5 请根据你自己存档的位置进行更改
  1.       when 5  # 读档
  2.         #判断是否允许读档
  3.         unless @continue_enabled
  4.           # 演奏无效 SE
  5.           $game_system.se_play($data_system.buzzer_se)
  6.           return
  7.         end
  8.         # 演奏确定 SE
  9.         $game_system.se_play($data_system.decision_se)
  10.         # 切换到读档画面
  11.         $loadfrommenu = 1
  12.         $scene = Scene_Load.new
复制代码
Scene_End 约55-56行
  1.       # 切换到菜单画面
  2.       $scene = Scene_Menu.new(5)
复制代码
改为 (6) 请根据实际情况改
  1.       # 切换到菜单画面
  2.       $scene = Scene_Menu.new(6)
复制代码



(6R赶快恢复图片附件吧 = = 人工用⑨张小图拼大图实在是累死了)
菜单存档.rar (180.67 KB, 下载次数: 306) (范例中脚本以★开头的修改过)
作者: 木许许    时间: 2011-9-9 15:57
本帖最后由 木许许 于 2011-9-9 15:58 编辑
各种压力的猫君 发表于 2011-9-9 15:43
OTL 答成VX的了 原来是XP区 等我改一下
  1. #==========================================================
  2. # ■ Scene_File
  3. #-------------------------------------------------------------------------
  4. #  存档画面及读档画面的类。
  5. #==========================================================

  6. class Scene_File < Scene_Base
  7.   #---------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     saving     : 存档标志(false则为读档)
  10.   #     from_title : 标志:是由标题画面的「继续游戏」调用的
  11.   #     from_event : 标志:是由事件「呼叫存档画面」命令调用的
  12.   #---------------------------------------------------------------------
  13.   def initialize(saving, from_title, from_event)
复制代码
上面这些脚本写在哪里?
作者: 后知后觉    时间: 2011-9-9 16:09
本帖最后由 后知后觉 于 2011-9-9 16:12 编辑

用默认工程来说.
1.在 Scene_Title 的 def main 下面加一行 $scene_type = 1
2.在 Scene_Menu 的 def main 下面加一行 $scene_type = 2
3.找到 Scene_Load 的第 57 行到第 62 行.大概是这样
  1.   def on_cancel
  2.     # 演奏取消 SE
  3.     $game_system.se_play($data_system.cancel_se)
  4.     # 切换到标题画面
  5.     $scene = Scene_Title.new
  6.   end
复制代码
改成这样
  1.   def on_cancel
  2.     # 演奏取消 SE
  3.     $game_system.se_play($data_system.cancel_se)
  4.     # 切换到标题画面
  5.     if $scene_type == 1
  6.       $scene = Scene_Title.new
  7.     else
  8.       $scene = Scene_Menu.new(6)
  9.     end
  10.   end
复制代码
括号里的那个 6 是从读档画面返回菜单画面时候.菜单画面的光标的初始位置.
根据你菜单画面中.进入读档命令的位置而定.自行更改.要注意的是第一个位置是 0 而不是 1
第2个位置是 1 而不是 2  以此类推
作者: 木许许    时间: 2011-9-9 23:15
我怎么不能结贴了!!?
作者: zphyp120    时间: 2011-9-9 23:35
点击正确答案下方的认可答案  要说几遍才明白?
作者: 木许许    时间: 2011-9-9 23:50
zphyp120 发表于 2011-9-9 23:35
点击正确答案下方的认可答案  要说几遍才明白?

这功能暂时关闭了吧!




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