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

Project1

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

怎么样让菜单里显示“读取存档”选项

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-16
帖子
37
跳转到指定楼层
1
发表于 2008-1-21 18:48:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv1.梦旅人

忘记

梦石
0
星屑
55
在线时间
4 小时
注册时间
2007-12-15
帖子
3062
2
发表于 2008-1-21 18:52:30 | 只看该作者
存取档脚本
  1. #==============================================================================
  2. # ■ Scene_Debug
  3. #------------------------------------------------------------------------------
  4. #  处理调试画面的类。
  5. #==============================================================================

  6. class Scene_Debug
  7. #--------------------------------------------------------------------------
  8. # ● 主处理
  9. #--------------------------------------------------------------------------
  10. def main
  11.    # 生成窗口
  12.    @left_window = Window_DebugLeft.new
  13.    @right_window = Window_DebugRight.new
  14.    @help_window = Window_Base.new(192, 352, 448, 128)
  15.    @help_window.contents = Bitmap.new(406, 96)
  16.    # 还原为上次选择的项目
  17.    @left_window.top_row = $game_temp.debug_top_row
  18.    @left_window.index = $game_temp.debug_index
  19.    @right_window.mode = @left_window.mode
  20.    @right_window.top_id = @left_window.top_id
  21.    # 执行过渡
  22.    Graphics.transition
  23.    # 主循环
  24.    loop do
  25.      # 刷新游戏画面
  26.      Graphics.update
  27.      # 刷新输入情报
  28.      Input.update
  29.      # 刷新画面
  30.      update
  31.      # 如果画面被切换的话就中断循环
  32.      if $scene != self
  33.        break
  34.      end
  35.    end
  36.    # 刷新地图
  37.    $game_map.refresh
  38.    # 装备过渡
  39.    Graphics.freeze
  40.    # 释放窗口
  41.    @left_window.dispose
  42.    @right_window.dispose
  43.    @help_window.dispose
  44. end
  45. #--------------------------------------------------------------------------
  46. # ● 刷新画面
  47. #--------------------------------------------------------------------------
  48. def update
  49.    # 刷新窗口
  50.    @right_window.mode = @left_window.mode
  51.    @right_window.top_id = @left_window.top_id
  52.    @left_window.update
  53.    @right_window.update
  54.    # 记忆选择中的项目
  55.    $game_temp.debug_top_row = @left_window.top_row
  56.    $game_temp.debug_index = @left_window.index
  57.    # 左侧窗口被激活的情况下: 调用 update_left
  58.    if @left_window.active
  59.      update_left
  60.      return
  61.    end
  62.    # 右侧窗口被激活的情况下: 调用 update_right
  63.    if @right_window.active
  64.      update_right
  65.      return
  66.    end
  67. end
  68. #--------------------------------------------------------------------------
  69. # ● 刷新画面 (左侧窗口被激活的情况下)
  70. #--------------------------------------------------------------------------
  71. def update_left
  72.    # 按下 B 键的情况下
  73.    if Input.trigger?(Input::B)
  74.      # 演奏取消 SE
  75.      $game_system.se_play($data_system.cancel_se)
  76.      # 切换到地图画面
  77.      $scene = Scene_Map.new
  78.      return
  79.    end
  80.    #--------------------新加部分---------------------#
  81.    # 按下 X 键的情况下
  82.    if Input.press?(Input::X)
  83.      # 切换到存档画面
  84.      $scene = Scene_Save.new
  85.    end
  86.    # 按下 Y 键的情况下
  87.    if Input.press?(Input::Y)
  88.      # 切换到读档画面
  89.      $scene = Scene_Load.new
  90.    end
  91.    #--------------------新加部分---------------------#
  92.    # 按下 C 键的情况下
  93.    if Input.trigger?(Input::C)
  94.      # 演奏确定 SE
  95.      $game_system.se_play($data_system.decision_se)
  96.      # 显示帮助
  97.      if @left_window.mode == 0
  98.        text1 = "C (Enter) : ON / OFF"
  99.        @help_window.contents.draw_text(4, 0, 406, 32, text1)
  100.      else
  101.        text1 = "← : -1   → : +1"
  102.        text2 = "L (Pageup) : -10"
  103.        text3 = "R (Pagedown) : +10"
  104.        @help_window.contents.draw_text(4, 0, 406, 32, text1)
  105.        @help_window.contents.draw_text(4, 32, 406, 32, text2)
  106.        @help_window.contents.draw_text(4, 64, 406, 32, text3)
  107.      end
  108.      # 激活右侧窗口
  109.      @left_window.active = false
  110.      @right_window.active = true
  111.      @right_window.index = 0
  112.      return
  113.    end
  114. end
  115. #--------------------------------------------------------------------------
  116. # ● 刷新画面 (右侧窗口被激活的情况下)
  117. #--------------------------------------------------------------------------
  118. def update_right
  119.    # 按下 B 键的情况下
  120.    if Input.trigger?(Input::B)
  121.      # 演奏取消 SE
  122.      $game_system.se_play($data_system.cancel_se)
  123.      # 激活左侧窗口
  124.      @left_window.active = true
  125.      @right_window.active = false
  126.      @right_window.index = -1
  127.      # 删除帮助
  128.      @help_window.contents.clear
  129.      return
  130.    end
  131.    # 获取被选择的开关 / 变量的 ID
  132.    current_id = @right_window.top_id + @right_window.index
  133.    # 开关的情况下
  134.    if @right_window.mode == 0
  135.      # 按下 C 键的情况下
  136.      if Input.trigger?(Input::C)
  137.        # 演奏确定 SE
  138.        $game_system.se_play($data_system.decision_se)
  139.        # 逆转 ON / OFF 状态
  140.        $game_switches[current_id] = (not $game_switches[current_id])
  141.        @right_window.refresh
  142.        return
  143.      end
  144.    end
  145.    # 变量的情况下
  146.    if @right_window.mode == 1
  147.      # 按下右键的情况下
  148.      if Input.repeat?(Input::RIGHT)
  149.        # 演奏光标 SE
  150.        $game_system.se_play($data_system.cursor_se)
  151.        # 变量加 1
  152.        $game_variables[current_id] += 1
  153.        # 检查上限
  154.        if $game_variables[current_id] > 99999999
  155.          $game_variables[current_id] = 99999999
  156.        end
  157.        @right_window.refresh
  158.        return
  159.      end
  160.      # 按下左键的情况下
  161.      if Input.repeat?(Input::LEFT)
  162.        # 演奏光标 SE
  163.        $game_system.se_play($data_system.cursor_se)
  164.        # 变量减 1
  165.        $game_variables[current_id] -= 1
  166.        # 检查下限
  167.        if $game_variables[current_id] < -99999999
  168.          $game_variables[current_id] = -99999999
  169.        end
  170.        @right_window.refresh
  171.        return
  172.      end
  173.      # 按下 R 键的情况下
  174.      if Input.repeat?(Input::R)
  175.        # 演奏光标 SE
  176.        $game_system.se_play($data_system.cursor_se)
  177.        # 变量加 10
  178.        $game_variables[current_id] += 10
  179.        # 检查上限
  180.        if $game_variables[current_id] > 99999999
  181.          $game_variables[current_id] = 99999999
  182.        end
  183.        @right_window.refresh
  184.        return
  185.      end
  186.      # 按下 L 键的情况下
  187.      if Input.repeat?(Input::L)
  188.        # 演奏光标 SE
  189.        $game_system.se_play($data_system.cursor_se)
  190.        # 变量减 10
  191.        $game_variables[current_id] -= 10
  192.        # 检查下限
  193.        if $game_variables[current_id] < -99999999
  194.          $game_variables[current_id] = -99999999
  195.        end
  196.        @right_window.refresh
  197.        return
  198.      end
  199.    end
  200. end
  201. end
复制代码
因为你哭泣的时候有我想你你被人嘲笑时有我陪你在你感觉最无助的那一刻有个声音鼓励
<font color=#8600E9>忘记</font>
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Poison·

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-30
帖子
2391
3
发表于 2008-1-21 18:57:59 | 只看该作者
以下引用心情de对白于2008-1-21 10:52:30的发言:

存取档脚本
#==============================================================================
# ■ Scene_Debug
#------------------------------------------------------------------------------
#  处理调试画面的类。
#==============================================================================

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

  196. #==============================================================================
  197. # ■ Scene_Load
  198. #------------------------------------------------------------------------------
  199. #  ロード画面の処理を行うクラスです。
  200. #==============================================================================

  201. class Scene_Load < Scene_File
  202.   #--------------------------------------------------------------------------
  203.   # ● 取消时的处理
  204.   #--------------------------------------------------------------------------
  205.   def on_cancel
  206.     # キャンセル SE を演奏
  207.     $game_system.se_play($data_system.cancel_se)
  208. #○☆====================================================☆○
  209.     if $menu_load == nil
  210.     # タイトル画面に切り替え
  211.     $scene = Scene_Title.new
  212.   else
  213.     # メニュー画面に切り替え
  214.     $scene = Scene_Menu.new(5)
  215.     end
  216. #○☆====================================================☆○
  217.   end
  218. end

  219. #==============================================================================
  220. # ■ Scene_End
  221. #------------------------------------------------------------------------------
  222. #  ゲーム終了画面の処理を行うクラスです。
  223. #==============================================================================

  224. class Scene_End
  225.   #--------------------------------------------------------------------------
  226.   # ● フレーム更新
  227.   #--------------------------------------------------------------------------
  228.   def update
  229.     # コマンドウィンドウを更新
  230.     @command_window.update
  231.     # B ボタンが押された場合
  232.     if Input.trigger?(Input::B)
  233.       # キャンセル SE を演奏
  234.       $game_system.se_play($data_system.cancel_se)
  235. #○☆====================================================☆○
  236.       # メニュー画面に切り替え
  237.       $scene = Scene_Menu.new(6)
  238. #○☆====================================================☆○
  239.       return
  240.     end
  241.     # C ボタンが押された場合
  242.     if Input.trigger?(Input::C)
  243.       # コマンドウィンドウのカーソル位置で分岐
  244.       case @command_window.index
  245.       when 0  # タイトルへ
  246.         command_to_title
  247.       when 1  # シャットダウン
  248.         command_shutdown
  249.       when 2  # やめる
  250.         command_cancel
  251.       end
  252.       return
  253.     end
  254.   end
  255.   #--------------------------------------------------------------------------
  256.   # ● コマンド [やめる] 選択時の処理
  257.   #--------------------------------------------------------------------------
  258.   def command_cancel
  259.     # 決定 SE を演奏
  260.     $game_system.se_play($data_system.decision_se)
  261. #○☆====================================================☆○
  262.     # メニュー画面に切り替え
  263.     $scene = Scene_Menu.new(6)
  264. #○☆====================================================☆○
  265.   end
  266. end


复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-10-1 00:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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