Project1

标题: 存档和交通工具的问题 [打印本页]

作者: kpgzzc    时间: 2010-8-30 22:52
标题: 存档和交通工具的问题
本帖最后由 kpgzzc 于 2010-9-1 17:38 编辑

我做了一个简单的小游戏,不过剧情还可以.给几个朋友玩.他们玩了之后也说感觉不错.
所以我的动力来了,又继续加了新的剧情,地图.在某些地图上,也加了一些东西.如:交通工具(船)
废话多了:L,说主要的
可我把我的新做好的游戏发给他们之后,他们读取存档后,发现,他们看不到我在原来地图上加的交通工具(船).新游戏,就不存在这个问题.
这个问题,如何解决啊,怎么才能让存档也显示新增的交通工具.
作者: 冰舞蝶恋    时间: 2010-8-30 23:14
因为存档的时候剧情还没变。最好的办法就是从新游戏,打到原来的地方再存档就好了。
作者: kpgzzc    时间: 2010-8-30 23:16
可是打了很远了.10多个小时了.还要重打,以后我要是再加点什么的话.还要重打啊?
再说,在地图上加NPC都显示,怎么就加个交通工具就不显示了呢?
作者: 八云紫    时间: 2010-8-30 23:19
本帖最后由 月兔铃仙 于 2010-8-30 23:20 编辑
  1. #==============================================================================
  2. # ■ Game_Interpreter
  3. #------------------------------------------------------------------------------
  4. #  执行事件命令的解释器。本类在 Game_Map 类、Game_Troop 类、与
  5. # Game_Event 类的内部使用。
  6. #==============================================================================

  7. class Game_Interpreter
  8.   def old_to_new
  9.     # 旧版本的记录文件名
  10.     old_save_name = ""
  11.     # 新版本的记录文件名
  12.     new_save_name = ""

  13.     old_file = File.open(old_save_name , "rb")
  14.     new_file = File.open(new_save_name , "wb")
  15.    
  16.     characters           = Marshal.load(old_file)
  17.     Graphics.frame_count = Marshal.load(old_file)
  18.     last_bgm             = Marshal.load(old_file)
  19.     last_bgs             = Marshal.load(old_file)
  20.     game_system          = Marshal.load(old_file)
  21.     game_message         = Marshal.load(old_file)
  22.     game_switches        = Marshal.load(old_file)
  23.     game_variables       = Marshal.load(old_file)
  24.     game_self_switches   = Marshal.load(old_file)
  25.     game_actors          = Marshal.load(old_file)
  26.     game_party           = Marshal.load(old_file)
  27.     game_troop           = Marshal.load(old_file)
  28.     game_map             = Marshal.load(old_file)
  29.     game_player          = Marshal.load(old_file)

  30.     Marshal.dump(characters,           new_file)
  31.     Marshal.dump(Graphics.frame_count, new_file)
  32.     Marshal.dump(last_bgm,             new_file)
  33.     Marshal.dump(last_bgs,             new_file)
  34.     Marshal.dump(game_system,          new_file)
  35.     Marshal.dump(game_message,         new_file)
  36.     Marshal.dump(game_switches,        new_file)
  37.     Marshal.dump(game_variables,       new_file)
  38.     Marshal.dump(game_self_switches,   new_file)
  39.     Marshal.dump(game_actors,          new_file)
  40.     Marshal.dump(game_party,           new_file)
  41.     Marshal.dump(game_troop,           new_file)
  42.     Marshal.dump($game_map,            new_file)
  43.     Marshal.dump(game_player,          new_file)
  44.    
  45.     old_file.close
  46.     new_file.close
  47.   end
  48. end
复制代码
事件脚本 old_to_new   

记得将里面的那个记录文件名填上

脚本未测试, 记得备份原纪录, 把脚本丢到新版本的游戏里运行. 切记~~~~~~~~~~~~~~

作者: lxdsh2009    时间: 2010-8-30 23:40
哦哦,我也正需要这种脚本
作者: kpgzzc    时间: 2010-8-31 00:01
好多啊,我不会脚本的,我先试试啊.不管怎么样,先谢谢你.辛苦了.
作者: kpgzzc    时间: 2010-8-31 00:18
本帖最后由 kpgzzc 于 2010-8-31 00:30 编辑

不行啊,姐姐,是我不会用还是怎么回事.不起作用啊.
能告诉我,具体的用法吗?
我加了一个NPC,对话后,执行事件.可出现了18行,错误,还给我存档文件清空了.0字节了.
再读不出来了.呵呵.这是咋回事啊?
作者: 八云紫    时间: 2010-8-31 09:39
我测试了下,感觉没错误啊。

那个用法啊 ,先把交通工具自己手动移动到前一个记录的某个位置, 默认的位置就无所谓了。然后调用脚本就可以了。

记得备份啊~~~~~·

作者: kpgzzc    时间: 2010-8-31 14:11
我在试试.
作者: kpgzzc    时间: 2010-8-31 14:22
还是不行啊.
游戏运行后,就这样.

存档文件就被清0了.

作者: 八云紫    时间: 2010-8-31 14:32
那个,文件要有内容才对, 拿旧的文档来测试。注意备份。

然后是,里面的名字不要填错了。

最后,把旧的文档丢到新版本的工程里,然后再测试。

PS: 请说明你的脚本用法。
PS2:这不是游戏机。 出错原因是文件没有数据可以读取~~~
作者: kpgzzc    时间: 2010-8-31 17:55
本帖最后由 kpgzzc 于 2010-8-31 18:01 编辑

晕,你没明白我的意思,我的存档是正常的,当然是能用了,是用了脚本以后才被弄成0字节的.
至于脚本的用法,就是我从昨天晚上一直想请教你的.
我就是在地图上加了个自动运行的事件.插入脚本:old_to_new

不知道这样用,对不对?
作者: kpgzzc    时间: 2010-8-31 18:14
另外,旧存档名,和新存档名,我都写成一样的时候,就出错.
旧的写Save1.rvdata
新的写Save2.rvdata
就不出错,不过,2的存档,也不显示我新增的交通工具.和原来旧存档一样.
作者: 八云紫    时间: 2010-8-31 19:04
回复 kpgzzc 的帖子

脚本调用一次就好.

交通工具需要自己手动移动. 谁也不知道你想把交通工具丢哪里~~~
作者: kpgzzc    时间: 2010-8-31 19:35
我就把交通工具放在人物出生的地方啊.可是去了,看不到啊.
作者: 八云紫    时间: 2010-8-31 19:37
我测试的时候是可以用的啊~~~奇怪~~~
作者: 巧克力猫咪    时间: 2010-8-31 20:54
你应该有开关设剧情进度吧,把需要用到的开关边上设个事件把他们开了应该就可以了吧
作者: kpgzzc    时间: 2010-8-31 23:17
没有任何开关.
我现在用一个图测试.
新建一个空地图,放上主角.然后,运行游戏.存档.
然后,打开这个地图,在主角旁边放上交通工具.加上自动运行的事件脚本.
重新运行游戏,读档进入游戏,然后生成了一个新存档.
退出游戏,用新存档进入游戏后,仍然看不到交通工具.
作者: 八云紫    时间: 2010-9-1 08:57
回复 kpgzzc 的帖子


    我测试的时候,可以看得到的说。不知道为什么~~~,还有就是, 转换存档的那个事件不要自动运行。
作者: kpgzzc    时间: 2010-9-1 15:11
和自动运行没关系啊,我加个NPC对话触发事件,也是一样的结果.
能给个范例工程吗.给一个没有加交通工具的存档,然后,我用你的加有交通工具和事件脚本的工程生成新的存档,看看能不能看到交通工具.
作者: 八云紫    时间: 2010-9-1 15:42
好吧,我错了,贴错脚本了~~~
换这个~~, 只初始化交通工具~~
  1. #==============================================================================
  2. # ■ Game_Interpreter
  3. #------------------------------------------------------------------------------
  4. #  执行事件命令的解释器。本类在 Game_Map 类、Game_Troop 类、与
  5. # Game_Event 类的内部使用。
  6. #==============================================================================

  7. class Game_Interpreter
  8.   def old_to_new
  9.     # 旧版本的记录文件名
  10.     old_save_name = "Save1.rvdata"
  11.     # 新版本的记录文件名
  12.     new_save_name = "Save3.rvdata"

  13.     old_file = File.open(old_save_name , "rb")
  14.     new_file = File.open(new_save_name , "wb")
  15.    
  16.     characters           = Marshal.load(old_file)
  17.     frame_count          = Marshal.load(old_file)
  18.     last_bgm             = Marshal.load(old_file)
  19.     last_bgs             = Marshal.load(old_file)
  20.     game_system          = Marshal.load(old_file)
  21.     game_message         = Marshal.load(old_file)
  22.     game_switches        = Marshal.load(old_file)
  23.     game_variables       = Marshal.load(old_file)
  24.     game_self_switches   = Marshal.load(old_file)
  25.     game_actors          = Marshal.load(old_file)
  26.     game_party           = Marshal.load(old_file)
  27.     game_troop           = Marshal.load(old_file)
  28.     game_map             = Marshal.load(old_file)
  29.     game_player          = Marshal.load(old_file)
  30.    
  31.     game_map.create_vehicles
  32.     Marshal.dump(characters,           new_file)
  33.     Marshal.dump(frame_count,          new_file)
  34.     Marshal.dump(last_bgm,             new_file)
  35.     Marshal.dump(last_bgs,             new_file)
  36.     Marshal.dump(game_system,          new_file)
  37.     Marshal.dump(game_message,         new_file)
  38.     Marshal.dump(game_switches,        new_file)
  39.     Marshal.dump(game_variables,       new_file)
  40.     Marshal.dump(game_self_switches,   new_file)
  41.     Marshal.dump(game_actors,          new_file)
  42.     Marshal.dump(game_party,           new_file)
  43.     Marshal.dump(game_troop,           new_file)
  44.     Marshal.dump(game_map,            new_file)
  45.     Marshal.dump(game_player,          new_file)
  46.    
  47.     old_file.close
  48.     new_file.close
  49.   end
  50. end
复制代码

作者: kpgzzc    时间: 2010-9-1 17:35
:victory::victory::victory::victory::victory:
谢谢!~谢谢!~
我爱死你啦.谢谢!~铃仙·优昙华院·因幡
作者: 八云紫    时间: 2010-9-1 19:13
回复 kpgzzc 的帖子


    那个啊, 能解决就好. 不过感觉还是有点问题的样子~~~
作者: kpgzzc    时间: 2010-9-1 22:19
回复 铃仙·优昙华院·因幡 的帖子

有点问题,啥问题啊?请前辈指点,免得以后,我再出错.
   




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1