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

Project1

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

[已经过期] 如何使开关在重新开始游戏时保存当前状态?

[复制链接]

Lv2.观梦者

梦石
0
星屑
290
在线时间
3599 小时
注册时间
2012-2-29
帖子
3385

黄金编剧

跳转到指定楼层
1
发表于 2014-5-18 07:12:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
RM默认的开关需要在游戏内操作,而重新开始游戏会导致它们被初始化
由于在制作的游戏有特殊的游戏模式,我需要跳过这个初始化
即 “游戏内开启开关 - 重新开始游戏 - 开关依然为打开状态” 的效果
求方法

点评

感觉像二周目……  发表于 2014-5-19 00:05
简化 高效 简约 便捷,为用户体验而思考。

Lv3.寻梦者

梦石
0
星屑
2816
在线时间
1051 小时
注册时间
2011-8-2
帖子
300
2
发表于 2014-5-18 08:41:23 | 只看该作者
弄个地图,设定主角的位置在这张地图上,让设置一个事件【自动执行】:打开 开关
为方便新人,建议大家一同换上此签名(当然我没指最下面的宣传……)
RM各版本下载链接
RMXP:http://pan.baidu.com/s/1qWLZjIW
RMVX:http://pan.baidu.com/s/1sjBhM2L
以上链接由妖精蕾贝卡 提供
--------------------------------------------------------------------------------
RMVA:http://pan.baidu.com/s/1jG1mDUY
以上链接由VIPArcher 提供
——————————————————————————
回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

3
发表于 2014-5-18 10:01:19 | 只看该作者
恩……不太理解要求…………但还是写了一些。
  1. # 思路:开启开关的时候写入一个文件,新游戏时读入,然后开启对应的开关。
  2. class Interpreter
  3.   #--------------------------------------------------------------------------
  4.   # ● 开关操作
  5.   #--------------------------------------------------------------------------
  6.   def command_121
  7.     # 循环全部操作
  8.     for i in @parameters[0] .. @parameters[1]
  9.       # 更改开关
  10.       $game_switches[i] = (@parameters[2] == 0)
  11.       file = File.open("Switches.txt","a+")
  12.       file.write("\n#{i}")
  13.       file.close
  14.     end
  15.     # 刷新地图
  16.     $game_map.need_refresh = true
  17.     # 继续
  18.     return true
  19.   end
  20. end
  21. def switches_on
  22.   switches_command_new_game
  23.   file = File.open("Switches.txt")
  24.   ids = []
  25.   file.each_line {|line| ids.push(line)}
  26.   for i in 0...ids.size
  27.     ids[i].sub!("\n","")        
  28.   end
  29.   ids.delete("")
  30.   for i in 0...ids.size
  31.     ids[i].to_i
  32.   end
  33.   for i in 0...ids.size
  34.     if $game_switches[i] != nil
  35.       $game_switches[i] = true
  36.     end
  37.   end  
  38.   file.close
  39. end
复制代码
当使用事件里的“打开开关时”,就会把开关的id保存在一个名为“Switches”的txt文档里。
在需要的时候使用方法"switches_on"就可以读取这些id并打开相应的开关~

点评

rxdata  发表于 2014-5-18 19:48
另外,好像用 rxdatea 好像要好一些。  发表于 2014-5-18 19:47
你的代码再加上 4 楼的。因为要更改标题画面的 新游戏 下:$game_switches = Game_Switches.new 改为:$game_switches = Marshal.load(file)  发表于 2014-5-18 19:43
moy
我直接照搬了存读档罢了~  发表于 2014-5-18 13:29
moy
贴出来以后发现是4L囧。俺不是抢问题。  发表于 2014-5-18 10:13

评分

参与人数 2星屑 +170 收起 理由
myownroc + 120 我很赞同
芯☆淡茹水 + 50 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

4
发表于 2014-5-18 10:10:22 | 只看该作者
单独将开关信息用
  1. file = File.open(filename, "wb")
  2. Marshal.dump($game_switches, file)
  3. file.close
复制代码
的方式保存在一个名为filename的存档中,并在新游戏时
  1. file = File.open(filename, "wb")
  2. $game_switches      = Marshal.load(file)
  3. file.close
复制代码
请务必确定你要这么做,并且需要你先注释第二步,用前一段脚本新建立好一个文档,以免初次运行报错。

点评

我的代码还是不够简洁 - -  发表于 2014-5-18 10:18

评分

参与人数 2星屑 +230 收起 理由
myownroc + 180 精品文章
芯☆淡茹水 + 50 我很赞同

查看全部评分

Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 19:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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