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

Project1

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

[已经解决] 怎样用事件脚本控制存取档

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1433
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
跳转到指定楼层
1
发表于 2012-1-13 19:31:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


具体说就是在事件里写一段脚本,效果是直接存档到X位置,同时存档名可以用那段脚本自定义,读档的时候同样利用脚本读取第X个档案

点评

已补充,请查看  发表于 2012-1-13 20:30
roguelike求生RPG研发中....

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

2
发表于 2012-1-13 20:03:14 | 只看该作者
本帖最后由 feizhaodan 于 2012-1-13 20:29 编辑

将Scene_File的do_save的q前三行挪过去,并且将write_save_data的内容也替换到刚才的第二行那里。


或者复制以下:
  1.     file = File.open("存档名字", "wb")
  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.     file.close
复制代码
读档请自行查找Scene_File仿照上面的。


读挡:
  1. file = File.open("存档名称", "rb")
  2.     characters           = Marshal.load(file)
  3.     Graphics.frame_count = Marshal.load(file)
  4.     @last_bgm            = Marshal.load(file)
  5.     @last_bgs            = Marshal.load(file)
  6.     $game_system         = Marshal.load(file)
  7.     $game_message        = Marshal.load(file)
  8.     $game_switches       = Marshal.load(file)
  9.     $game_variables      = Marshal.load(file)
  10.     $game_self_switches  = Marshal.load(file)
  11.     $game_actors         = Marshal.load(file)
  12.     $game_party          = Marshal.load(file)
  13.     $game_troop          = Marshal.load(file)
  14.     $game_map            = Marshal.load(file)
  15.     $game_player         = Marshal.load(file)
  16.     if $game_system.version_id != $data_system.version_id
  17.       $game_map.setup($game_map.map_id)
  18.       $game_player.center($game_player.x, $game_player.y)
  19.     end
  20.     file.close
  21.     $scene = Scene_Map.new
  22.     RPG::BGM.fade(1500)
  23.     Graphics.fadeout(60)
  24.     Graphics.wait(40)
  25.     @last_bgm.play
  26.     @last_bgs.play
复制代码

点评

貌似有点复杂啊....大概怎么写啊...  发表于 2012-1-13 20:54
事件脚本没法写那么多脚本...怎么办..  发表于 2012-1-13 20:40
读档还是不太懂啊...求解  发表于 2012-1-13 20:26
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1433
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
3
 楼主| 发表于 2012-1-13 20:28:59 | 只看该作者
feizhaodan 发表于 2012-1-13 20:03
将Scene_File的do_save的q前三行挪过去,并且将write_save_data的内容也替换到刚才的第二行那里。


或 ...
  1.   def read_save_data(file)
  2.     characters           = Marshal.load(file)
  3.     Graphics.frame_count = Marshal.load(file)
  4.     @last_bgm            = Marshal.load(file)
  5.     @last_bgs            = Marshal.load(file)
  6.     $game_system         = Marshal.load(file)
  7.     $game_message        = Marshal.load(file)
  8.     $game_switches       = Marshal.load(file)
  9.     $game_variables      = Marshal.load(file)
  10.     $game_self_switches  = Marshal.load(file)
  11.     $game_actors         = Marshal.load(file)
  12.     $game_party          = Marshal.load(file)
  13.     $game_troop          = Marshal.load(file)
  14.     $game_map            = Marshal.load(file)
  15.     $game_player         = Marshal.load(file)
  16.     if $game_system.version_id != $data_system.version_id
  17.       $game_map.setup($game_map.map_id)
  18.       $game_player.center($game_player.x, $game_player.y)
  19.     end
复制代码
读档是这个吗?要怎么控制读取哪个档呢?

点评

File.delete("文件名" )  发表于 2012-1-14 12:42
你可以把两个内容分别在Game_Interpreter里新定义一个方法,方法执行这些内容,之后在事件脚本内调用方法。  发表于 2012-1-13 20:41
roguelike求生RPG研发中....
回复

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

4
发表于 2012-1-13 21:05:32 | 只看该作者
在Game_Interpreter最后一个end上头插入:
  1. def do_load(file_name)
  2. file = File.open(file_name, "rb")
  3.     characters           = Marshal.load(file)
  4.     Graphics.frame_count = Marshal.load(file)
  5.     @last_bgm            = Marshal.load(file)
  6.     @last_bgs            = Marshal.load(file)
  7.     $game_system         = Marshal.load(file)
  8.     $game_message        = Marshal.load(file)
  9.     $game_switches       = Marshal.load(file)
  10.     $game_variables      = Marshal.load(file)
  11.     $game_self_switches  = Marshal.load(file)
  12.     $game_actors         = Marshal.load(file)
  13.     $game_party          = Marshal.load(file)
  14.     $game_troop          = Marshal.load(file)
  15.     $game_map            = Marshal.load(file)
  16.     $game_player         = Marshal.load(file)
  17.     if $game_system.version_id != $data_system.version_id
  18.       $game_map.setup($game_map.map_id)
  19.       $game_player.center($game_player.x, $game_player.y)
  20.     end
  21.     file.close
  22.     $scene = Scene_Map.new
  23.     RPG::BGM.fade(1500)
  24.     Graphics.fadeout(60)
  25.     Graphics.wait(40)
  26.     @last_bgm.play
  27.     @last_bgs.play
  28.   end
  29.   def do_save(file_name)
  30.   file = File.open(file_name, "wb")
  31.         characters = []
  32.     for actor in $game_party.members
  33.       characters.push([actor.character_name, actor.character_index])
  34.     end
  35.     $game_system.save_count += 1
  36.     $game_system.version_id = $data_system.version_id
  37.     @last_bgm = RPG::BGM::last
  38.     @last_bgs = RPG::BGS::last
  39.     Marshal.dump(characters,           file)
  40.     Marshal.dump(Graphics.frame_count, file)
  41.     Marshal.dump(@last_bgm,            file)
  42.     Marshal.dump(@last_bgs,            file)
  43.     Marshal.dump($game_system,         file)
  44.     Marshal.dump($game_message,        file)
  45.     Marshal.dump($game_switches,       file)
  46.     Marshal.dump($game_variables,      file)
  47.     Marshal.dump($game_self_switches,  file)
  48.     Marshal.dump($game_actors,         file)
  49.     Marshal.dump($game_party,          file)
  50.     Marshal.dump($game_troop,          file)
  51.     Marshal.dump($game_map,            file)
  52.     Marshal.dump($game_player,         file)

  53.     file.close
  54.   end
复制代码
之后在事件脚本内用:
  1. do_save(file_name)
  2. do_load(file_name)
复制代码
分别表示存档(上面的),读档(下面的)
在file_name处输入存档名称,要用""包着。

点评

谢谢  发表于 2012-1-14 17:25
不好意思在问下,清楚那个存档用什么命令  发表于 2012-1-14 12:29
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 08:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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