查看: 3116|回复: 1

[已经解决] 战斗后存档报错

[复制链接]
梦石
1
星屑
985
在线时间
231 小时
注册时间
2006-2-3
回帖
53
发表于 2019-11-23 10:30:59 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 zsefvv 于 2019-11-23 10:32 编辑

我这边是地图即时战斗roguelike.....
每个房间都会存一次档,只要有触发过战斗。
再次存档就会弹出如下错误。
5.png
3.png
4.png
已经全局搜索proc了,但是也不知道具体原因,也不像是bitmap没释放干净的锅。

要看工程的话加企鹅109955453,工程比较大.......
如果有大佬能帮忙解决掉这些BUG,可以有偿.....(至少300RMB左右)

存档脚本如下
[pre lang="ruby"]class Interpreter
def tosave   #存档事件脚本
    file = File.open("Save/save.rxdata", "wb")
        # 生成描绘存档文件用的角色图形
        characters = []
    for i in 0...$game_party.actors.size
      actor = $game_party.actors
      characters.push([actor.character_name, actor.character_hue])
    end
        # 写入描绘存档文件用的角色数据
        Marshal.dump(characters, file)
        # 写入测量游戏时间用画面计数
        Marshal.dump(Graphics.frame_count, file)
        # 保存魔法编号
        # (将编辑器保存的值以随机值替换)
        $game_system.magic_number = $data_system.magic_number
        # 写入各种游戏对像
        Marshal.dump($game_system, file)
        Marshal.dump($game_switches, file)
        Marshal.dump($game_variables, file)
        Marshal.dump($game_self_switches, file)
        Marshal.dump($game_screen, file)
        Marshal.dump($game_actors, file)
        Marshal.dump($game_party, file)
        Marshal.dump($game_troop, file)
        Marshal.dump($game_map, file)
        Marshal.dump($game_player, file)
        file.close  
      end

def toload    #读档事件脚本
        file = File.open("Save/save.rxdata", "rb")
        # 读取描绘存档文件用的角色数据
        characters = Marshal.load(file)
        # 读取测量游戏时间用画面计数
        Graphics.frame_count = Marshal.load(file)
        # 读取各种游戏对像
        $game_system        = Marshal.load(file)
        $game_switches      = Marshal.load(file)
        $game_variables     = Marshal.load(file)
        $game_self_switches = Marshal.load(file)
        $game_screen        = Marshal.load(file)
        $game_actors        = Marshal.load(file)
        $game_party         = Marshal.load(file)
        $game_troop         = Marshal.load(file)
        $game_map           = Marshal.load(file)
        $game_player        = Marshal.load(file)
        # 魔法编号与保存时有差异的情况下
        # (加入编辑器的编辑过的数据)
        if $game_system.magic_number != $data_system.magic_number
          # 重新装载地图
          $game_map.setup($game_map.map_id)
          $game_player.center($game_player.x, $game_player.y)
        end
        # 刷新同伴成员
        $game_party.refresh
        file.close
        # 还原 BGM、BGS
        $game_system.bgm_play($game_system.playing_bgm)
        $game_system.bgs_play($game_system.playing_bgs)
        # 刷新地图 (执行并行事件)
        $game_map.update
        # 切换到地图画面
        $scene = Scene_Map.new
        openmaps if $game_switches[MAP_SWI_ID]
        eval File.read('txt/lovestory.txt')
        eval File.read('txt/story1-1.txt') if $game_variables[152] == 1
        eval File.read('txt/story1-2.txt') if $game_variables[152] == 2
      end

def delsave   #删档事件脚本
    file = File.delete("Save/save.rxdata")
  end
end[/pre]
梦石
1
星屑
985
在线时间
231 小时
注册时间
2006-2-3
回帖
53
 楼主| 发表于 2019-11-23 11:47:18 | 显示全部楼层
已解决,感谢帮忙的大佬
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部