|
马上注册领取绝版勋章
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 arrowonmyass 于 2019-7-9 23:14 编辑
原作者:steve40 N网教程原址:https://forums.nexusmods.com/index.php?/topic/732051-fxdustdroprandomscript-errors-fixed/
首先你既然来到了我这个帖子这里,那么就默认你已经会开启游戏的Logs功能,并且会查看游戏的Logs.
你来到这里,必然是因为你在游戏中出现了CTD问题,并且通过查找logs时发现,logs记录里充斥着大量的fxDustDropRandomSCRIPT errors字样的报错,具体的文字表现大致如下所示:
[08/02/2012 - 11:59:48PM] error: Object reference has no 3D
stack:
[ (0001E68C)].Sound.Play() - "<native>" Line ?
[ (000375A1)].fxDustDropRandomSCRIPT.OnLoad() - "<savegame>" Line ?
[08/02/2012 - 11:59:53PM] error: Object reference has no 3D
如果你的logs里出现了这么一段文字,那么恭喜你中奖了!你成功触发了由于游戏灰尘掉落脚本(DustDropRandomSCRIPT)的定时循环(timed loop)功能而导致的问题!
根据steve40的说法,由于灰尘掉落脚本(DustDropRandomSCRIPT)的定时循环(timed loop)功能使得玩家有时在离开了某个场景(CELL),并关闭(unloading)场景之后,这个场景的灰尘掉落脚本(DustDropRandomSCRIPT)会仍在运行中。比如你离开了圣地镇要塞这个场景(CELL)之后,圣地镇要塞的灰尘掉落脚本(DustDropRandomSCRIPT)仍然在没完没了地不停地运行着,从而在你的Logs中留下了一堆报错并最终导致了CTD。而且因为Papyrus虚拟机(老滚的脚本系统)的特点,使得其不能修正没有3D建模的物体,从而无法自行对这些灰尘的报错进行有效修复,使得这个BUG会越滚越大,最终毁掉你的整个存档!
steve40大佬为了修复这个问题,他用的方法是 “adding some extra safety checks to test if the 3D is still loaded before the loop tries to run”(这段实在不会翻译了,有请各位大佬来帮忙),总之他通过增添了几个自己编制的脚本,从而修复了这个BUG。
详细解决方法及步骤(必须先做完第一步后再做第二步):
第一步
下载并安装由steve40大佬编制的修复用脚本。(注意,如果你之后安装或者更新升级了CK的话,则需要重新再安装此脚本。因为CK里面都带有同样名字的这两个脚本,因此会把原来的脚本给覆盖掉。)
安装方法:将下载好的压缩包解压到游戏根目录中(或者将里面的fxDustDropRandomSCRIPT.pex文件复制到游戏文件夹DATA\SCRIPTS里,里面的fxDustDropRandomSCRIPT.psc文件复制到游戏文件夹DATA\SCRIPTS\SOURCE里。)
链接:https://pan.baidu.com/s/1oSg7p-32tNiHqhKSt6bpzw
提取码:
第二步
找到出现这个灰尘掉落脚本(DustDropRandomSCRIPT)错误的场景(CELL)。正如上文所说,这个fxDustDropRandomSCRIPT errors 出现的原因是因为你的某个已经离开了的场景(CELL)里的灰尘掉落脚本(DustDropRandomSCRIPT)一直在不断的运行从而产生了报错。例如你的存档在之前曾经去过荒瀑神庙时,触发了那里的灰尘掉落脚本(DustDropRandomSCRIPT)的BUG,现在你即使已经离开了荒瀑神庙老远了,那里的灰尘掉落脚本(DustDropRandomSCRIPT)却仍然在不停地运行着,从而导致了报错。安装了修复脚本之后,它需要通过载入该场景的灰尘掉落脚本(DustDropRandomSCRIPT)后才能进行修复。
因此,第二步便是你要通过在Logs中查找一下,找到出现DustDropRandomSCRIPT BUG的场景(CELL)在哪里。
因此你需要在Logs里找到类似这样的一段文字:
[ (000375A1)].fxDustDropRandomSCRIPT.OnLoad() - "<savegame>" Line ?
而这段文字中这里的(000375A1)代码便指代着出现BUG的场景(CELL)代码,注意:这段代码你不一定会和我这里一样,由于出现BUG的场景不一样这里的代码都会有所不同。
然后,你找到了这段代码之后,就对照一下下面这个表,找到到底是哪个场景(CELL)出的问题,并用控制台COC指令传送到该场景(CELL)中
00020187 Mzulft01
000220D1 BlindCliffCave01
00029BFC HelgenKeep01
00033059 HagRockRedoubt01
000375A1 BleakFallsBarrow01
000375A2 BleakFallsBarrow01
000375AD BleakFallsBarrow01
000375AE BleakFallsBarrow01
000375AF BleakFallsBarrow01
00037ACE BleakFallsBarrow02
00037ACF BleakFallsBarrow02
00037AD0 BleakFallsBarrow02
00037AD1 BleakFallsBarrow02
00037AD2 BleakFallsBarrow02
00037AD3 BleakFallsBarrow02
00037AD4 BleakFallsBarrow02
00040197 Mzulft02
000401C9 Mzulft02
000401DD Mzulft02
00044580 HonningbrewMeadery02
00044585 HonningbrewMeadery02
00044586 HonningbrewMeadery02
00046336 KilkreathRuins01
0005372C Kagrenzel01
0005E982 Mzulft01
000621AA BilegulchMine
000621D5 BilegulchMine
0006567E SoljundsSinkhole01
0006D0BF Avanchnzel01
0007013B Harmugstahl01
0007019D Harmugstahl01
00071CA7 JaphetsFolly01
00072EF6 BrokenTowerRedoubt01
00076126 BrokenTowerRedoubt02
0007E280 PinemoonCave01
0007E287 PinemoonCave01
00080422 Angarvunde01
000837E3 E3demoBleakFallsBarrow
000837E4 E3demoBleakFallsBarrow
000837E5 E3demoBleakFallsBarrow
000837EE E3demoBleakFallsBarrow
000837EF E3demoBleakFallsBarrow
000852AB Angarvunde03
0008B352 MovarthsLair01
0008B35D MovarthsLair01
0008E52C Harmugstahl01
000911A0 E3demoBleakFallsBarrow
000911A2 E3demoBleakFallsBarrow
000911A3 E3demoBleakFallsBarrow
000911A5 E3demoBleakFallsBarrow
000911A6 E3demoBleakFallsBarrow
000911A7 E3demoBleakFallsBarrow
000911C0 E3demoBleakFallsBarrow
0009BEDE KilkreathRuins01
0009BF55 KilkreathRuins01
0009C024 KilKreathRuins02
0009E340 NorthwatchKeep01
000A2558 KnifepointRidge01
000A2559 KnifepointRidge01
000A2EE1 ReachcliffCave01
000AF2E6 Mzulft01
000B77B1 HelgenKeep01
000B77B2 HelgenKeep01
000B77B4 HelgenKeep01
000B77B5 HelgenKeep01
000B77B6 HelgenKeep01
000B77B7 HelgenKeep01
000B77B8 HelgenKeep01
000B77B9 HelgenKeep01
000BE102 ReachcliffCave01
000EBAA9 KolskeggrMine01
000EF1EE MzulftExterior
000EF1EF MzulftExterior03
黎明守卫:
02004FE1 DLC1Ruunvald01
02009B00 DLC1MolderingRuins01
02009B01 DLC1MolderingRuins01
02009B02 DLC1MolderingRuins01
02009B03 DLC1MolderingRuins01
02009B04 DLC1MolderingRuins01
02009AFF DLC1MolderingRuins01
0200F0DB DLC1Ruunvald01
020134BA DLC1Ruunvald01
020182AF DLC1Ruunvald01
020182B2 DLC1Ruunvald01
02018697 DLC1Ruunvald01
0201869D DLC1Ruunvald01
龙裔:
040394A5 DLC2RRBulwarkCave
0403955F DLC2RRBulwarkCave
比如我这里的(000375A1)对应的是BleakFallsBarrow01这个地方,就是在荒瀑神庙,但你的出现问题的地方不一定和我相同。之后我在控制台里输入coc BleakFallsBarrow01,就会传送到荒瀑神庙的入口处了。之后你需要在这个产生BUG的场景中四处走走并进行探索个大概十分钟,如果没有再出现CTD问题的话,就按COC RIVERWOOD(或者随便你COC传送到哪都行)离开这个场景并保存游戏。
注意:如果你的LOGS里.fxDustDropRandomSCRIPT.OnLoad() - "<savegame>" Line ?这段文字对应着有多个场景的代码的话,意味着你有多个场景都出现了BUG.那么你就需要COC前往所有的这些场景中,并在每个场景均重复上面的“四处走动探索十分钟”这个操作,
之后你退出游戏再读取存档,进游戏在原地待个十分钟左右后再退出游戏回到桌面。然后你打开你的LOGS,查阅一下你上次游戏时的LOGS记录,看看有没有再出现fxDustDropRandomSCRIPT 字样的文字,如果没有出现,那么恭喜你,你的问题已经成功修复了!
额外注意事项:
Q:如果在COC前往出现BUG的场景中,并在该场景中四处走动探索时仍然会出现CTD问题该怎么办?
A:恭喜你!你这个档可能真的彻底废了并且没救了! 不过你可以尝试读取一段时间之前的存档,并继续前往这个出现BUG的场景中探索,看看会不会再出现CTD问题,一般情况下你读取时间稍微往前一点的存档就还是有救的!
Q: 我修复好这个问题之后,隔一段时间又会在Logs里发现fxDustDropRandomSCRIPT字样的报错该怎么办?
A:这个一般不是什么问题,根据steve40大佬所说,新安装的修复脚本会立刻阻止这个灰尘掉落脚本(DustDropRandomSCRIPT)的定时循环(timed loop),因此只要没有再造成CTD,一般不会再有什么问题的。
|
-
评分
-
查看全部评分
|