Project1
标题:
消除存档类脚本的这两行会不会对游戏造成严重影响?
[打印本页]
作者:
怪蜀黍
时间:
2011-9-20 13:31
标题:
消除存档类脚本的这两行会不会对游戏造成严重影响?
本帖最后由 protosssonny 于 2011-9-20 18:44 编辑
进入游戏之后,只要和敌人打几仗,再保存进度就会弹出这样的错误提示:
123.PNG
(5.4 KB, 下载次数: 7)
下载附件
保存到相册
2011-9-20 13:21 上传
游戏用了很多其他非默认脚本,我又修改了不少脚本,所以难以找到错误的根源。为了消除这个错误,我想到消除错误提示的这两行:
# Marshal.dump($game_troop, file) #=>这行就是1398行
# $game_troop = Marshal.load(file)
就不 知道这样会不会对游戏造成严重影响。按照我的分析,$game_troop类的数据一般都是敌人的数据,而每次打仗,敌人都是不同的,数据也应该相应地重新读取,应该不会造成什么严重的影响。不知道我这样分析对不对,请大家来评价一下。
删除两行之后的脚本贴一下,我的储存进度定义在“随机属性”类里面。
#==============================================================================
# ■ Scene_File
#==============================================================================
class Scene_File < Scene_Base
#--------------------------------------------------------------------------
# ● 写入存档数据
# file : 写入文件用对象 (已经打开)
#--------------------------------------------------------------------------
def write_save_data(file)
characters = []
for actor in $game_party.members
characters.push([actor.character_name, actor.character_index])
end
$game_system.save_count += 1
$game_system.version_id = $data_system.version_id
@last_bgm = RPG::BGM::last
@last_bgs = RPG::BGS::last
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
Marshal.dump(@last_bgm, file)
Marshal.dump(@last_bgs, file)
Marshal.dump($game_system, file)
Marshal.dump($game_message, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, 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)
Marshal.dump($data_weapons, file)
Marshal.dump($data_armors, file)
end
#--------------------------------------------------------------------------
# ● 读取存档数据
# file : 读取文件用对象 (已经打开)
#--------------------------------------------------------------------------
def read_save_data(file)
characters = Marshal.load(file)
Graphics.frame_count = Marshal.load(file)
@last_bgm = Marshal.load(file)
@last_bgs = Marshal.load(file)
$game_system = Marshal.load(file)
$game_message = Marshal.load(file)
$game_switches = Marshal.load(file)
$game_variables = Marshal.load(file)
$game_self_switches = 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)
$data_weapons = Marshal.load(file)
$data_armors = Marshal.load(file)
if $game_system.version_id != $data_system.version_id
$game_map.setup($game_map.map_id)
$game_player.center($game_player.x, $game_player.y)
end
end
end
复制代码
请大家说说自己的看法吧,删除这两行会不会对游戏造成严重影响? dsu_plus_rewardpost_czw
作者:
月夜神音
时间:
2011-9-20 14:56
是使用了随机敌人脚本吗?
还有…………打仗……是战斗吗?
作者:
怪蜀黍
时间:
2011-9-20 15:23
用了随机敌人脚本,但是随机敌人脚本在我第一个游戏中也使用了,没有任何问题。
打仗就是战斗。
我估计凭我现阶段的水平是修复不了,所以想放弃修改,直接删除这2行。不知道可以不。
作者:
flyfairy
时间:
2011-9-20 20:26
我只知道你删掉这两行,错误就会到其他的行了- -
作者:
Kimu
时间:
2011-9-20 22:49
f1中应该有关于Marshal的介绍吧
啥?蝌蚪文看不懂?找谷哥
作者:
月夜神音
时间:
2011-9-21 05:36
试试全局搜索$game_troop 看看(加个空格在后面)
作者:
精灵使者
时间:
2011-9-21 11:12
$game_troop肯定是队伍的问题。
检查下有没有空的队伍,或者是已经删除掉的敌人组成的队伍,如果有请删除 by精灵
作者:
怪蜀黍
时间:
2011-9-27 11:36
我找到问题的根源了,是由于无法储存自定义变量@enemy_state造成的。
于是把我的自定义变量@enemy_state全部改成$enemy_state,即是不需要储存,问题得到完美的解决。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1