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

Project1

 找回密码
 注册会员
搜索
查看: 5030|回复: 11

[已经解决] 如何保存自建窗口和自建全局变量?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3505
在线时间
1755 小时
注册时间
2010-12-21
帖子
2278
发表于 2011-1-20 23:10:46 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 黄亦天 于 2011-1-22 18:24 编辑

我用这个方法自建了一个窗口
http://rpg.blue/thread-163500-1-1.html
但是存档后再读取就无效了……
如何才能让其保存到存档里?
另外我在事件脚本里将一个全局变量$aaa 带入了一个数值,如何才能将这个变量其保存到存档中?


黄亦天于2011-1-20 23:31补充以下内容:
另外想再问一下,如何判定这个窗口是否建立?

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39352
在线时间
7470 小时
注册时间
2009-7-6
帖子
13482

开拓者贵宾

发表于 2011-1-21 07:34:09 | 显示全部楼层
回复 黄亦天 的帖子

scene_file定义很清楚了,要保存什么就自己dump啊.
  1.   def write_save_data(file)
  2.     characters = []
  3.     for actor in $game_party.members
  4.       characters.push([actor.character_name, actor.character_index])
  5.     end
  6.     $game_system.save_count += 1
  7.     $game_system.version_id = $data_system.version_id
  8.     @last_bgm = RPG::BGM::last
  9.     @last_bgs = RPG::BGS::last
  10.     Marshal.dump(characters,           file)
  11.     Marshal.dump(Graphics.frame_count, file)
  12.     Marshal.dump(@last_bgm,            file)
  13.     Marshal.dump(@last_bgs,            file)
  14.     Marshal.dump($game_system,         file)
  15.     Marshal.dump($game_message,        file)
  16.     Marshal.dump($game_switches,       file)
  17.     Marshal.dump($game_variables,      file)
  18.     Marshal.dump($game_self_switches,  file)
  19.     Marshal.dump($game_actors,         file)
  20.     Marshal.dump($game_party,          file)
  21.     Marshal.dump($game_troop,          file)
  22.     Marshal.dump($game_map,            file)
  23.     Marshal.dump($game_player,         file)
  24.   end
复制代码
窗口是否建立P一下不就知道了,判断是否为空

评分

参与人数 1星屑 +700 收起 理由
夕阳武士 + 700 well done

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3505
在线时间
1755 小时
注册时间
2010-12-21
帖子
2278
 楼主| 发表于 2011-1-21 13:12:52 | 显示全部楼层
回复 fux2 的帖子

感谢的说……
之前我改错地方了……
变量的保存已经没问题了……
可是这个窗口的保存还是没弄明白,试了好几次都失败了……
如果要保存这个窗口应该怎么写呢……

点评

取档也改了…… 主要是窗口那个不知道怎么写……  发表于 2011-1-21 17:04
记得取档的位置也要改  发表于 2011-1-21 14:08
绿坝娘素材库企划

素材库获取方法:暂时中止,需求者私聊。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
235
在线时间
158 小时
注册时间
2010-10-8
帖子
143
发表于 2011-1-22 02:45:29 | 显示全部楼层
12小时了……
自顶一下……
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
610
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

发表于 2011-1-22 03:06:35 | 显示全部楼层
其實最簡單的方法就是用系統變量來存
$game_variables[1] = 某數值或窗口等等...

点评

关于窗口里的文字信息颜色字体等设定也不知道该怎么保存呐……  发表于 2011-1-22 03:41
可问题是不知道【窗口】该怎么保存…… 试过很多种方法,都出错了的说……  发表于 2011-1-22 03:23
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39352
在线时间
7470 小时
注册时间
2009-7-6
帖子
13482

开拓者贵宾

发表于 2011-1-22 13:17:45 | 显示全部楼层
本帖最后由 fux2 于 2011-1-22 13:19 编辑

回复 shua1125 的帖子

$game_variables[1]保存窗口对象不行么?
你创建窗口总要有类似
@item = Window_Item.new这样的代码吧?
把@item这个对象传递给存档的方法或者用全局变量保存
$item = Window_Item.new
保存的时候再dump进去好了
这个窗口对象内的一切变量都会保存.(一般的)
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
260
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

发表于 2011-1-22 13:53:36 | 显示全部楼层
窗口并不是保存的,窗口是重新生成的,你只要保证窗口里需要的数据都保存就好了。

点评

实际操作中很少有人会保存窗口的吧,一般有相关的数据就行了。重生成一个又不麻烦……  发表于 2011-1-22 13:59
当然也是可以保存的=v=  发表于 2011-1-22 13:54

评分

参与人数 1星屑 +540 收起 理由
夕阳武士 + 540 well done

查看全部评分

我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3505
在线时间
1755 小时
注册时间
2010-12-21
帖子
2278
 楼主| 发表于 2011-1-22 13:57:14 | 显示全部楼层
本帖最后由 黄亦天 于 2011-1-22 13:58 编辑

回复 fux2 的帖子

OTZ 我完全混乱了……
我在事件里是这么写的:
  1. $t2t = 7200
复制代码
  1. $t2x = -5   # X坐标
  2. $t2y = -5   # Y坐标
  3. size = 30   # 字号
  4. $timer2 = Window_Base.new($t2x,$t2y,600,90)
  5. $timer2.contents.font.size = size
  6. $timer2.contents.font.name = "黑体"  
  7. R = 255     
  8. G = 174     
  9. B = 0      
  10. $timer2.contents.font.color=Color.new(R,G,B)
  11. $timer2.opacity = 0
复制代码
然后开启开关1,执行并行事件
内容如下:
  1. $t2 = "#{$t2t}帧"
  2. $timer2.contents.clear
  3. if $game_switches[2] == false
  4. $timer2.contents.draw_text(0,0,550,35,$t2)
  5. end
复制代码
我只知道该怎么保存$t2t这个变量,但是不知道该怎么保存这个窗口……
用系统变量的话,应该是替换掉什么呢……依旧是各种错误弹窗……
绿坝娘素材库企划

素材库获取方法:暂时中止,需求者私聊。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
5 小时
注册时间
2011-1-12
帖子
6
发表于 2011-1-22 13:59:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

弓箭手?剑兰

梦石
0
星屑
4734
在线时间
833 小时
注册时间
2010-11-17
帖子
1140
发表于 2011-1-22 18:16:29 | 显示全部楼层
嗯~上楼(八云?)说得对,不能储存物件的,
只能储存数据,不然出错。

新建一个自己用来储存数据的类,
$XXXXX = 那个类
再用实例变量,将数据记录下来,
最后就是在save。

然而,要读取时就要这样:
比如在Map里可以在可以修改Spriteset_Map的设置,
或者参考:【强势更新!】计时器/秒标强及美化 v1.3 (多计时,顺倒数)
的做法,话说最初弄成多计时器的时候,是用$game_system(Game_System)来储存活动块,
导致存档失误,于是把活动块改在Spriteset_Map和Spriteset_Battle里存放。
要不我给个那个无法存档的版本给你。

点评

已经解决了的说…… 不过感觉我那个本来就复杂的计时器变得更复杂了……  发表于 2011-1-22 18:24
ps:Spriteset_Map和Spriteset_Battle的@more_timer[多计时序号](不是实例变量)  发表于 2011-1-22 18:18
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 08:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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