3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 132120|回复: 189
打印 上一主题 下一主题

[分享] 如何完整的从存档中移除脚本-教程-解决CTD问题

  [复制链接]

173

主题

3993

帖子

7062

积分

游戏精英

Rank: 8Rank: 8

贡献度
923
金元
33598
积分
7062
精华
1
注册时间
2009-6-1
跳转到指定楼层
主题
发表于 2013-4-20 21:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ldfxf 于 2013-5-30 12:21 编辑

带有问题脚本的存档可能会让你的游戏突然卡顿或者随机跳出,而在“PCB”(见下文)和通过等待31天清理存档这种小把戏都无法解决问题的时候,你可以尝试使用以下办法挽救存档。

脚本(Script)是什么:它们是MOD作者自己编写并利用SKSE以及游戏制定的规则运行的【游戏外挂】(当然原版游戏也有很多脚本),能实现原版游戏没有的功能和特效(比如一键换装),通常都存在于Plugin或Script文件夹或者.BSA文件里


如何完整的从存档中移除脚本-教程-解决CTD问题Second Edition第二版(文字描述很多,实际操作大概10分钟)


作者:flexcreator
需要的工具:
1) TESV ESSFiles Editor (http://skyrim.nexusmods.com/mods/27119)
2) PapyrusDataTransfer(已包括)
首先,请在使用本方法前先尝试在控制台输入SKSE的新命令:ClearInvalidRegistrations,这个方法也可以清理你的存档中的脚本。

这个命令是干嘛的:
SKSE 1.6.7更新:
- 增加了新的控制台指令ClearInvalidRegistrations,可移除无效的OnUpdate()事件注册(即无效脚本的持续运行)
  这个命令能阻止失去宿主MOD的脚本制造OnUpdate()事件,以及因此导致的卸载MOD时损坏存档以及存档文件臃肿问题
  当对一个已经臃肿的存档使用这个命令时,该命令会阻止存档继续变大,同时通过游戏逐步处理完成所有队列中的事件而压缩存档大小。这一过程可能需要数个小时的时间,取决于存档的大小程度
  如果需要在每次重新读取时自动处理,将以下内容添加到 \Data\SKSE\skse.ini(没有请自己建一个文本文档保存并改称.ini):
        [General]
        ClearInvalidRegistrations=1


请使用第二版的PapyrusDataTransfer(附件压缩包已包括)
新的PapyrusDataTransfer工具能让下面的操作更加更加安全,但是注意它仍然是一个实验项目,不保证没有问题。

介绍
众所周知,天际游戏中任何运行的脚本都是嵌入在.ess(存档文件)中的。不像湮灭或辐射3,在天际中你不能靠删除MOD来停止脚本的运作。这导致了很多问题,包括处理事件时脚本的延迟(游戏卡顿)和随机的游戏跳出。你只能对已装的MOD不爽,但你又不敢卸载它(否则读取存档时会跳出)
我遇到的情况是SerananSecret瑟拉娜的秘密这个MOD,这个MOD会在不正确的更新后破坏存档。“PCB”和31天等待这种小把戏对我都没用了,因为它们不会清理脚本。只要我想移除这个MOD游戏就会跳出。

PS:什么是PCB,PCB是一个控制台命令,它是Purge cell buffer(清理区域缓冲)的缩写,这个命令会清理出已用的内存,通常会加倍提高帧数。但是,由于它清理的是缓存,任何你过去已经访问的区域都必须在重新进入后使用该命令才能生效。参考:http://www.uesp.net/wiki/Skyrim:Console

这种时候许多玩家都会放弃记录然后从海尔根从头开始,浪费了无数个小时的游戏时间,珍藏的装备以及在天际世界中留下的足迹。但是请等一等!还有一种解决办法……
你需要的是彻底将所有嵌入的脚本从你的存档中移除


免责申明
备份你的旧存档!对任何因遵循此教程操作而导致的问题我概不负责。只有在遇到很严重的问题后再照这个说明操作。不要靠这个方法提高游戏性能。不要只是因为好玩这么做!
移除脚本你不会失去:
1)体验(任务目前进行的阶段和标记)
2)你背包里的物品
3)所有其他游戏中的物品(包括你扔掉的东西,死尸,等等)还有它们的位置信息
4)你在派系中的等级。你的贵族头衔
5)你的结婚对象
6)和NPC的关系
7)以前记录的可以招募的随从
8)等等其他……和没执行操作前几乎差不过
你会失去:
1)你会失去一些物品的状态(基本都会恢复到默认状态,比如给武器的附魔会消失)
2)领主和配偶都不知道你有房子
3)你房子里的装饰品可能会有点显示问题(可以手动修正)
4)你对一些MOD做的设置
但是,几乎所有东西的状态都能被PapyrusDataTransfer记录下来

工作进程:

准备工作
1.1)如果你已经无法读取你的存档了,请跳过这一段内容到下一节的清理环节。
1.2)通过在MOD管理器里逐个取消MOD的激活并运行游戏来确定问题MOD。强烈建议先知道你的游戏是因为哪个MOD出问题的(运行或未安装的)。

注意:某些MOD将脚本文件压缩在了BSA文件里,请使用解包程序BSAOpt(论坛搜索下载)来解压BSA文件确认它们是否包含脚本。

1.3)读取记录。等脚本运行比较多的场景完成(比如说你正在做某些任务的途中)
1.4) RELEASE ALL FOLLOWERS!解散所有的随从!
1.5)某些MOD需要用反安装方法才能卸载。照做!
1.6)变回人类形态(狼人和吸血鬼形态是基于脚本产生的!)
1.7)脱下所有带有魔法效果(乌木锁甲是有脚本信息的)武器装备
1.8)打开控制台并输入:save dirtysave
1.9)退出游戏

清理
2.1)下载(并点支持):TESV ESS Files Editor运行
2.2)打开dirtysave.ess(或你已无法打开的坏存档,记得备份),位置在”My Games\Skyrim\Saves”文件夹
2.3) 找到 "Global data table 3" -> Papyrus -> Data
如图,你现在看到的就是你存档中记录的脚本信息。
2.4)点击左边上面的dirtysave.ess(以后每次导出前请先点击一下),然后点击下面中间的Export导出,命名为PapyrusSource.bin,把文件放到tutorial文件夹所在目录(就是你解压后的PapyrusDataTransfer.exe所在的文件夹)
2.5)PapyrusSource.bin先备份一下,然后改名为PapyrusBlank.bin
2.6)运行批处理文件zero.bat,如果系统要你确认的的话请输入”understand”
2.7) 现在刚才看到的那些脚本动态数值都已经被这个批处理文件改成0了。不要移除PapyrusSource.bin,稍后还要用的!
2.8)再次打开dirtysave.ess,到Papyrus -> Data点击Import并选择PapyrusBlank.bin。在TESVESS中先选择任何一个其他的序列(改变光标位置,这样可以重置一下显示)再点击回到Papyrus -> Data。确保他的值都是0。之后将保存修改的ess文件(可以起名叫blanksave.ess)存到你的存档所在的文件夹"MyGames\Skyrim\Saves" 。
2.9)关闭TESVESS编辑器,再次打开并重新读取blanksave.ess来确认一下Data区域全部都变成了0(其实是因为有时候这东西会导入数据失败)。如果你看到旧的脚本数值,就回到2.2全部再做一次。
2.10)打开天际然后试试读取blanksave.ess来确认它没有问题(比如不会跳出)。如果有什么问题就再会2.2重新操作。
2.11)如果一切都正常,就不要存档退出游戏。
2.12)现在你有一个没有任何脚本信息的干净存档了!是时候决定把不想要的MOD扔掉了。别急,想想清楚,如果你在1.2时找到了问题MOD,现在做决定就很简单了!
2.13)不要删除MOD的文件。暂时把它们移动到一个备份文件夹。最后再删除。
2.14)整理好你想要的MOD,开始游戏并读取blanksave存档,打开控制台输入save cleansave.游戏会将所有的已安装脚本再次记录到你的存档中。
2.15)现在我们需要恢复动态数值。备份cleansave.ess
2.16)在TESVESS中打开Cleansave.ess并导出Papyrus Data部分的内容("Global data table 3" -> Papyrus -> Data)取名为PapyrusClean.bin文件
2.17)备份PapyrusClean.bin
2.18)PapyrusClean.bin复制到tutorial所在文件夹(PapyrusDataTransfer.exe文件所在的文件夹)
2.19)复制PapyrusSource.bin到tutorial所在文件夹
2.20)会跳出一个CMD的DOS批处理窗口。等它自己完成(请耐心等待,运行可能需要很长时间,大概30分钟或更长;这全依赖于你装的MOD的数量)
2.21) CMD窗口在运行完成后会自动关闭。现在你的PapyrusClean.bin有一个更新过的版本了(这里面都是新的脚本,但它们还有以前从PapyrusSource.bin中提取出来的旧存档里的数值)你会看到tutorial所在文件夹里有一个RestoreReport.txt。如果你愿意可以测试一下。
2.22)接下来,我们要确保这次操作没有什么差错。将RestoreReport.txt移除或者删除。再次打开恢复的文件。
2.23)等一切完成后打开新的RestoreReport。到文件最下面,可以看到”Found 0 differences invariable values”
2.24)TESVESS中打开cleansave.ess
2.25)将新的PapyrusClean.bin导入到”Global data table 3”->Papyrus -> Data
2.26)随便点一下其他区域,然后再次选择"Global data table 3" -> Papyrus -> Data
2.27)把获得的存档保存为MyGames\Skyrim\Saves\restoredsave.ess”
2.28)现在打开游戏读取restoredsave。然后检查是不是一切都正常了。如果你上面操作正确,就不需要再用控制台读取那些特定的任务变量了(一切都已就位)。

收尾工作
3.1)修复显示问题。武器架上显示的武器的变化数值都是储存在脚本变化中的。所以在移除脚本后,你会无法从架子上拿起以前放的武器。要修正这个问题,只需把其他武器放在原来那个架子上。然后拿走所有武器后问题就解决了。
3.2)你的个人住宅里不会显示之前放的东西。只要把东西拿下来再放回去就行了。

请保留你的旧存档以防万一


必备文件分流(请尽量去原地址下载半小时以后点击Endorsment支持以下作者):tutorial压缩包
tutorial.part1.rar (290 KB, 下载次数: 1492) tutorial.part2.rar (290 KB, 下载次数: 1335) tutorial.part3.rar (290 KB, 下载次数: 1273) tutorial.part4.rar (290 KB, 下载次数: 1258) tutorial.part5.rar (290 KB, 下载次数: 1387) tutorial.part6.rar (290 KB, 下载次数: 1319) tutorial.part7.rar (290 KB, 下载次数: 1207) tutorial.part8.rar (33.28 KB, 下载次数: 1023)


TESVESS editor
TESVESSE.part01.rar (290 KB, 下载次数: 1485) TESVESSE.part02.rar (290 KB, 下载次数: 1162) TESVESSE.part03.rar (214.91 KB, 下载次数: 1082)



中文教程WORD2010版本
Skyrim Tutorial - Remove SCRIPTS from ESS.rar (236.88 KB, 下载次数: 1036)





评分

26

查看全部评分

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-4-1 02:39 , Processed in 0.031268 second(s), 19 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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