Project1

标题: 关于改变存档方式 [打印本页]

作者: hypnoszero    时间: 2008-2-17 04:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: 水迭澜    时间: 2008-2-17 04:12
纯事件即可,平时禁止存档画面,在某个记忆点则设置事件呼叫存档画面
作者: hypnoszero    时间: 2008-2-17 04:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: 诡异の猫    时间: 2008-2-17 04:17
找到Scene_Menu脚本
第24行 s5 = "存档" 删除掉
然后第26行 @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
改成 @command_window = Window_Command.new(160, [s1, s2, s3, s4, s6])
然后第150-160行
when 4  # 存档
        # 禁止存档的情况下
        if $game_system.save_disabled
          # 演奏冻结 SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到存档画面
        $scene = Scene_Save.new

删除..
然后把原本第161行改成when 4
作者: 水迭澜    时间: 2008-2-17 04:18
#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
#  处理菜单画面的类。
#==============================================================================

class Scene_Menu
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     menu_index : 命令光标的初期位置
  #--------------------------------------------------------------------------
def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    # 生成命令窗口
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "状态"
    s5 = "存档"
    s6 = "结束游戏"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    # 同伴人数为 0 的情况下
    if $game_party.actors.size == 0
      # 物品、特技、装备、状态无效化
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    # 禁止存档的情况下
    if $game_system.save_disabled
      # 存档无效
      @command_window.disable_item(4)
    end
    # 生成游戏时间窗口
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 224
    # 生成步数窗口
    @steps_window = Window_Steps.new
    @steps_window.x = 0
    @steps_window.y = 320
    # 生成金钱窗口
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
    # 生成状态窗口
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果切换画面就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end

        when 4  # 存档
        # 禁止存档的情况下
        if $game_system.save_disabled
          # 演奏冻结 SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到存档画面
        $scene = Scene_Save.new

代码复制
  1.  

作者: hypnoszero    时间: 2008-2-17 04:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: 水迭澜    时间: 2008-2-17 04:32
你找到那个插件里的class Scene_Menu,参考LLS给你的改法就是了……
作者: hypnoszero    时间: 2008-2-17 04:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 诡异の猫    时间: 2008-2-17 04:52
或许是你用的脚本有冲突
麻烦贴出
作者: hypnoszero    时间: 2008-2-17 04:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: hypnoszero    时间: 2008-2-17 05:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 诡异の猫    时间: 2008-2-17 05:28
  1. #○☆====================================================☆○
  2. # 本脚本来在www.66rpg.com,使用和转载请保留此信息
  3. #○☆====================================================☆○

  4. #○☆====================================================☆○
  5. #メニューからロードを呼び出す際に使うグローバル変数にnilを代入
  6. $menu_load = nil
  7. #○☆====================================================☆○
  8. #==============================================================================
  9. # ■ Scene_Menu
  10. #------------------------------------------------------------------------------
  11. #  メニュー画面の処理を行うクラスです。
  12. #==============================================================================

  13. class Scene_Menu
  14. #--------------------------------------------------------------------------
  15. # ● オブジェクト初期化
  16. #     menu_index : コマンドのカーソル初期位置
  17. #--------------------------------------------------------------------------
  18. def initialize(menu_index = 0)
  19.    @menu_index = menu_index
  20. end
  21. #--------------------------------------------------------------------------
  22. # ● メイン処理
  23. #--------------------------------------------------------------------------
  24. def main
  25. #○☆====================================================☆○
  26.    # コマンドウィンドウを作成
  27.    s0 = $data_system.words.item
  28.    s1 = $data_system.words.skill
  29.    s2 = $data_system.words.equip
  30.    s3 = "状态"
  31.    s4 = "读取进度"
  32.    s5 = "退出游戏"
  33.    @command_window = Window_Command.new(160, [s0, s1, s2, s3, s4, s5])
  34.    #@command_window.height -= 32
  35. #○☆====================================================☆○
  36.    @command_window.index = @menu_index
  37.    # パーティ人数が 0 人の場合
  38.    if $game_party.actors.size == 0
  39.      # アイテム、スキル、装備、ステータスを無効化
  40.      @command_window.disable_item(0)
  41.      @command_window.disable_item(1)
  42.      @command_window.disable_item(2)
  43.      @command_window.disable_item(3)
  44.    end
  45. #○☆====================================================☆○
  46. # ロード有効判定
  47. # セーブファイルがひとつでも存在するかどうかを調べる
  48.    @continue_enabled = false
  49.    for i in 0..3
  50.      if FileTest.exist?("Save#{i+1}.rxdata")
  51.        @continue_enabled = true
  52.      end
  53.    end
  54.    if @continue_enabled
  55.    else
  56.      @command_window.disable_item(4)
  57.    end
  58. #○☆====================================================☆○
  59.    # プレイ時間ウィンドウを作成
  60.    @playtime_window = Window_PlayTime.new
  61.    @playtime_window.x = 0
  62.    @playtime_window.y = 224
  63.    # 歩数ウィンドウを作成
  64.    @steps_window = Window_Steps.new
  65.    @steps_window.x = 0
  66.    @steps_window.y = 320
  67.    # ゴールドウィンドウを作成
  68.    @gold_window = Window_Gold.new
  69.    @gold_window.x = 0
  70.    @gold_window.y = 416
  71.    # ステータスウィンドウを作成
  72.    @status_window = Window_MenuStatus.new
  73.    @status_window.x = 160
  74.    @status_window.y = 0
  75.    # トランジション実行
  76.    Graphics.transition
  77.    # メインループ
  78.    loop do
  79.      # ゲーム画面を更新
  80.      Graphics.update
  81.      # 入力情報を更新
  82.      Input.update
  83.      # フレーム更新
  84.      update
  85.      # 画面が切り替わったらループを中断
  86.      if $scene != self
  87.        break
  88.      end
  89.    end
  90.    # トランジション準備
  91.    Graphics.freeze
  92.    # ウィンドウを解放
  93.    @command_window.dispose
  94.    @playtime_window.dispose
  95.    @steps_window.dispose
  96.    @gold_window.dispose
  97.    @status_window.dispose
  98. end
  99. #--------------------------------------------------------------------------
  100. # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  101. #--------------------------------------------------------------------------
  102. def update_command
  103.    # B ボタンが押された場合
  104.    if Input.trigger?(Input::B)
  105.      # キャンセル SE を演奏
  106.      $game_system.se_play($data_system.cancel_se)
  107.      # マップ画面に切り替え
  108.      $scene = Scene_Map.new
  109.      return
  110.    end
  111.    # C ボタンが押された場合
  112.    if Input.trigger?(Input::C)
  113.      # パーティ人数が 0 人で、セーブ、ゲーム終了以外のコマンドの場合
  114.      if $game_party.actors.size == 0 and @command_window.index < 4
  115.        # ブザー SE を演奏
  116.        $game_system.se_play($data_system.buzzer_se)
  117.        return
  118.      end
  119.      # コマンドウィンドウのカーソル位置で分岐
  120.      case @command_window.index
  121.      when 0  # アイテム
  122.        # 決定  SE を演奏
  123.        $game_system.se_play($data_system.decision_se)
  124.        # アイテム画面に切り替え
  125.        $scene = Scene_Item.new
  126.      when 1  # スキル
  127.        # 決定 SE を演奏
  128.        $game_system.se_play($data_system.decision_se)
  129.        # ステータスウィンドウをアクティブにする
  130.        @command_window.active = false
  131.        @status_window.active = true
  132.        @status_window.index = 0
  133.      when 2  # 装備
  134.        # 決定 SE を演奏
  135.        $game_system.se_play($data_system.decision_se)
  136.        # ステータスウィンドウをアクティブにする
  137.        @command_window.active = false
  138.        @status_window.active = true
  139.        @status_window.index = 0
  140.      when 3  # ステータス
  141.        # 決定 SE を演奏
  142.        $game_system.se_play($data_system.decision_se)
  143.        # ステータスウィンドウをアクティブにする
  144.        @command_window.active = false
  145.        @status_window.active = true
  146.        @status_window.index = 0
  147. #○☆====================================================☆○
  148.      when 4  # ロード
  149.    # ロード有効判定
  150.    # セーブファイルがひとつでも存在するかどうかを調べる
  151.    @continue_enabled = false
  152.    for i in 0..3
  153.      if FileTest.exist?("Save#{i+1}.rxdata")
  154.        @continue_enabled = true
  155.      end
  156.    end
  157.    if @continue_enabled
  158.      # 決定 SE を演奏
  159.      $game_system.se_play($data_system.decision_se)
  160.      # グローバル変数に適当な語句を代入
  161.      $menu_load = "marimo"
  162.      # ロード画面に切り替え
  163.      $scene = Scene_Load.new
  164.    else
  165.      # ブザー SE を演奏
  166.      $game_system.se_play($data_system.buzzer_se)
  167.    end
  168.      when 5  # ゲーム終了
  169.        # 決定 SE を演奏
  170.        $game_system.se_play($data_system.decision_se)
  171.        # ゲーム終了画面に切り替え
  172.        $scene = Scene_End.new
  173.      end
  174. #○☆====================================================☆○
  175.      return
  176.    end
  177. end
  178. end

  179. #==============================================================================
  180. # ■ Scene_Load
  181. #------------------------------------------------------------------------------
  182. #  ロード画面の処理を行うクラスです。
  183. #==============================================================================

  184. class Scene_Load < Scene_File
  185. #--------------------------------------------------------------------------
  186. # ● 取消时的处理
  187. #--------------------------------------------------------------------------
  188. def on_cancel
  189.    # キャンセル SE を演奏
  190.    $game_system.se_play($data_system.cancel_se)
  191. #○☆====================================================☆○
  192.    if $menu_load == nil
  193.    # タイトル画面に切り替え
  194.    $scene = Scene_Title.new
  195. else
  196.    # メニュー画面に切り替え
  197.    $scene = Scene_Menu.new(4)
  198.    end
  199. #○☆====================================================☆○
  200. end
  201. end

  202. #==============================================================================
  203. # ■ Scene_End
  204. #------------------------------------------------------------------------------
  205. #  ゲーム終了画面の処理を行うクラスです。
  206. #==============================================================================

  207. class Scene_End
  208. #--------------------------------------------------------------------------
  209. # ● フレーム更新
  210. #--------------------------------------------------------------------------
  211. def update
  212.    # コマンドウィンドウを更新
  213.    @command_window.update
  214.    # B ボタンが押された場合
  215.    if Input.trigger?(Input::B)
  216.      # キャンセル SE を演奏
  217.      $game_system.se_play($data_system.cancel_se)
  218. #○☆====================================================☆○
  219.      # メニュー画面に切り替え
  220.      $scene = Scene_Menu.new(5)
  221. #○☆====================================================☆○
  222.      return
  223.    end
  224.    # C ボタンが押された場合
  225.    if Input.trigger?(Input::C)
  226.      # コマンドウィンドウのカーソル位置で分岐
  227.      case @command_window.index
  228.      when 0  # タイトルへ
  229.        command_to_title
  230.      when 1  # シャットダウン
  231.        command_shutdown
  232.      when 2  # やめる
  233.        command_cancel
  234.      end
  235.      return
  236.    end
  237. end
  238. #--------------------------------------------------------------------------
  239. # ● コマンド [やめる] 選択時の処理
  240. #--------------------------------------------------------------------------
  241. def command_cancel
  242.    # 決定 SE を演奏
  243.    $game_system.se_play($data_system.decision_se)
  244. #○☆====================================================☆○
  245.    # メニュー画面に切り替え
  246.    $scene = Scene_Menu.new(5)
  247. #○☆====================================================☆○
  248. end
  249. end
复制代码

帮你改好了
你测试下看看有没问题吧
作者: hypnoszero    时间: 2008-2-17 05:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: 诡异の猫    时间: 2008-2-17 06:23
没有一定的ruby基础是听不懂的- -
建议先看看F1的脚本入门和RGSS里的Ruby的语法
然后到网上找些RM脚本教程看看..
作者: 凌冰    时间: 2008-2-17 06:54
以下引用诡异の猫于2008-2-16 22:23:49的发言:

没有一定的ruby基础是听不懂的- -
建议先看看F1的脚本入门和RGSS里的Ruby的语法
然后到网上找些RM脚本教程看看..

另外,lz可以结帖了吗?




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