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

Project1

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

【XP】变量和开关如何在进入游戏后一部分不被初始化

[复制链接]

Lv2.观梦者

(?????)

梦石
0
星屑
700
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

1
发表于 2011-12-8 18:45:06 | 显示全部楼层
本帖最后由 各种压力的猫君 于 2011-12-8 19:17 编辑

把这部分不需要初始化的变量储存到文件,
然后修改脚本每次新游戏时判断是否有这个文件,
如果有就在初始化变量之后读取这个文件,如果没有则只初始化。

请编辑标题加上制作工具种类。
  1. module DUMPVARSWISETTINGS
  2.   # 不需要初始化的变量的范围,以下代表从11号-13号变量。
  3.   VAR_MIN = 11
  4.   VAR_MAX = 13
  5.   # 不需要初始化的开关的范围,以下代表从12号-16号变量。
  6.   SWI_MIN = 12
  7.   SWI_MAX = 16
  8.   # 保存的文件名
  9.   FILENAME = "Data/save_varswi.rxdata"
  10. end

  11. #==============================================================================
  12. # ■ Scene_Save
  13. #------------------------------------------------------------------------------
  14. #  处理存档画面的类。
  15. #==============================================================================

  16. class Scene_Save < Scene_File
  17.   alias old_on_decision on_decision
  18.   def on_decision(filename)
  19.     save_variables
  20.     old_on_decision(filename)
  21.   end
  22.   def save_variables
  23.     file = File.open(DUMPVARSWISETTINGS::FILENAME, "wb")
  24.     $save_variables = []
  25.     for i in DUMPVARSWISETTINGS::VAR_MIN..DUMPVARSWISETTINGS::VAR_MAX
  26.       $save_variables.push $game_variables[i]
  27.     end
  28.     Marshal.dump($save_variables, file)
  29.     $save_switches = []
  30.     for i in DUMPVARSWISETTINGS::SWI_MIN..DUMPVARSWISETTINGS::SWI_MAX
  31.       $save_switches.push $game_switches[i]
  32.     end
  33.     Marshal.dump($save_switches, file)
  34.     file.close
  35.   end
  36. end

  37. #==============================================================================
  38. # ■ Scene_Title
  39. #------------------------------------------------------------------------------
  40. #  处理标题画面的类。
  41. #==============================================================================

  42. class Scene_Title
  43.   alias old_command_new_game command_new_game
  44.   def command_new_game
  45.     old_command_new_game
  46.     if FileTest.exist?(DUMPVARSWISETTINGS::FILENAME)
  47.       file = File.open(DUMPVARSWISETTINGS::FILENAME, "rb")
  48.       $save_variables = Marshal.load(file)
  49.       $save_switches  = Marshal.load(file)
  50.       file.close
  51.       for i in DUMPVARSWISETTINGS::VAR_MIN..DUMPVARSWISETTINGS::VAR_MAX
  52.         $game_variables[i] = $save_variables[i - DUMPVARSWISETTINGS::VAR_MIN]
  53.       end
  54.       for i in DUMPVARSWISETTINGS::SWI_MIN..DUMPVARSWISETTINGS::SWI_MAX
  55.         $game_switches[i] = $save_switches[i - DUMPVARSWISETTINGS::SWI_MIN]
  56.       end
  57.     end
  58.   end
  59. end
复制代码
以上脚本插入到MAIN以上,在脚本头部可以设置不被初始化的变量、开关范围以及保存的文件名。
选择新游戏时以上设定好的变量/开关会保持最后一次存档的状态。

点评

这个,怎么判断和储存??  发表于 2011-12-8 18:47
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-4 14:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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