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

Project1

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

[已经解决] 如何从外部文件读取相关的信息并导入游戏变量

 关闭 [复制链接]

Lv1.梦旅人

Dancer-

梦石
0
星屑
55
在线时间
76 小时
注册时间
2006-11-9
帖子
3551

开拓者贵宾

跳转到指定楼层
1
发表于 2011-10-14 20:46:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 叶舞枫 于 2011-10-14 20:47 编辑

要实现的效果是:
游戏中打通了CG001时,打开CG001的开关,然后用某句脚本将这个状态存入一个外部文件中。在下一次重新打开游戏的时候,从这个问题读取CG001是否已经开启,如果是,将CG001对应的开关打开。

就是要问如何在将一些指定的变量或开关的值存到一个外部文件,再下一次打开游戏的时候能相应地读入。

非常感谢。

Lv1.梦旅人

堕落天使

梦石
0
星屑
55
在线时间
73 小时
注册时间
2005-10-22
帖子
337
2
发表于 2011-10-14 21:20:37 | 只看该作者
本帖最后由 忧郁 于 2011-10-14 21:20 编辑

file = File.open("Memory.dat", "wb")
  Marshal.dump($game_variables, file)
file.close

file = File.open("Memory.dat", "rb")
  $game_variables = Marshal.load(file)
file.close

应该是这样,我没试
厌世了……
回复

使用道具 举报

Lv1.梦旅人

Dancer-

梦石
0
星屑
55
在线时间
76 小时
注册时间
2006-11-9
帖子
3551

开拓者贵宾

3
 楼主| 发表于 2011-10-14 21:29:17 | 只看该作者
忧郁 发表于 2011-10-14 21:20
file = File.open("Memory.dat", "wb")
  Marshal.dump($game_variables, file)
file.close

这个应该是存下当前所有变量的吧,能不能只是局部的变量的,比如只存下100-200的变量值之类的
回复

使用道具 举报

Lv1.梦旅人

堕落天使

梦石
0
星屑
55
在线时间
73 小时
注册时间
2005-10-22
帖子
337
4
发表于 2011-10-14 21:30:59 | 只看该作者
file = File.open("Memory.dat", "rb")
i = 100
while i < 201
  $game_variables[i] = Marshal.load(file)
  i += 1
end
file.close

应该是吧,我还是没试验

点评

嗯,我试试看。谢谢忧郁君~  发表于 2011-10-14 21:32
厌世了……
回复

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42436
在线时间
7603 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

5
发表于 2011-10-15 09:39:10 | 只看该作者
本帖最后由 fux2 于 2011-10-15 14:26 编辑

由于不知道lz的CG图如何判断和显示的,或是用的什么脚本?只能给出一个猜想方法。


最好用数组格式记录CG开启的状态吧,举个例子,假设有20只CG图,第一张已经开启。

  1. $CG_record = [1,0,0,0,0
  2.               0,0,0,0,0
  3.               0,0,0,0,0
  4.               0,0,0,0,0]
复制代码
为了方便判断以及显示CG图我们可以增加一个方法。
  1. module Fux
  2.   def self.cv(num)
  3.     return num == 1 ? true : false
  4.   end
  5. end
复制代码
设置CG图的时候可以用
  1. 20.times{|i| CG[i].enable = Fux.cv($CG_record[i])}
复制代码
储存的时候
  1. file = File.open("CG.sav", "wb")
  2.    Marshal.dump($CG_record, file)
  3. file.close
复制代码
读取就以此类推啦。
���
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv1.梦旅人

Dancer-

梦石
0
星屑
55
在线时间
76 小时
注册时间
2006-11-9
帖子
3551

开拓者贵宾

6
 楼主| 发表于 2011-10-15 19:37:06 | 只看该作者
fux2 发表于 2011-10-15 09:39
由于不知道lz的CG图如何判断和显示的,或是用的什么脚本?只能给出一个猜想方法。

最好用数组格式记录CG开 ...

谢谢Fux的回复。
还有个问题想请教一下。

假如游戏开始时声明一个数组
$a = [1, 0, 0, 0,
         0, 0, 0, 0,
         0, 0, 0, 0]

游戏过程中我干涉了这个数组第2个项目 $a[1]=1 ,将数组2号位置代为1,

然后我在事件中用条件判断:if $a[1]==1 那么:显示文章yes,否则显示文章no

为什么这么书写后判断出来总是显示 no,就好像$a[1]=1不执行一样
回复

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42436
在线时间
7603 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

7
发表于 2011-10-15 20:07:24 | 只看该作者
本帖最后由 fux2 于 2011-10-15 20:11 编辑
叶舞枫 发表于 2011-10-15 19:37
谢谢Fux的回复。
还有个问题想请教一下。


if不要加上去,事件的条件分歧自动加上了if呢.
(实际上是判断脚本内容的返回值而已= =,只有true,false两种结果)

点评

0 0  发表于 2011-10-15 20:16
嗯,谢谢了~  发表于 2011-10-15 20:13
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 11:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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