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

注册 登录

QQ登录

只需一步,快速开始

查看: 72467|回复: 174
打印 上一主题 下一主题

[分享] 【N网转载】游戏跳出的解决办法-----修改脚本,无需再为大量的mod带来的不定时跳出烦恼(已经更新下载地址)~~~~~~

  [复制链接]

117

主题

6125

帖子

2万

积分

天际委员会

回归了!

Rank: 12Rank: 12Rank: 12

贡献度
5562
金元
59209
积分
28169
精华
0
注册时间
2012-6-8
跳转到指定楼层
主题
发表于 2012-8-7 01:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lzx-0812 于 2012-11-17 21:07 编辑

N网论坛原址 http://forums.nexusmods.com/inde ... cript-errors-fixed/


作者 steve40 修改了原版游戏的一个脚本:fxDustDropRandomSCRIPT
首先先用在skyrim.ini 的 papyrus下添加数据的方法查出导致你游戏跳出CTD的错误脚本,如果不知道怎么做,参考这个帖子: http://bbs.3dmgame.com/thread-3219949-1-3.html
如果发现导致游戏跳出的脚本就是fxDustDropRandomSCRIPT的话,那么恭喜,以下的方法可以近乎完美的解决跳出(确定不是由于内存不足而跳出的)
在N网上看了好久,发现这个脚本导致跳出的很多人,所以估计可能大家也有一部分会有这样的问题
主要表现为不定时的跳出,比如野外跑路莫名其妙的跳出,或者固定地点容易跳出。原因就是游戏在读取某几个cell的时候(因人而异),通过这个脚本会经常出错,尤其对于mod装的很多的玩家。


以下为作者原文:
Anyone who's had a look in their Papyrus logs has probably found that fxDustDropRandomSCRIPT.psc is spamming the log with errors like this every 30 seconds or so:

[08/02/2012 - 11:59:48PM] error: Object reference has no 3D
stack:
[ (0001E68C)].Sound.Play() - "<native>" Line ?
[ (0004624F)].fxDustDropRandomSCRIPT.OnLoad() - "<savegame>" Line ?
[08/02/2012 - 11:59:53PM] error: Object reference has no 3D

This is due to the script having a timed loop, with the possibility of the cell unloading while the script is still waiting for the timer to finish. The most common references that generate these errors are located in cells:

"KilKreathRuins02" [0004624F]
"BrokenTowerRedoubt01" [00072EF6]
"BrokenTowerRedoubt02" [00076126]
"HonningbrewMeadery02" [00044580] or [00044585] or [00044586]

I've fixed the bug by adding some extra safety checks to test if the 3D is still loaded before the loop tries to run.

INSTALLATION
============

1) copy the file "fxDustDropRandomSCRIPT.pex" to your Skyrim "DATA\SCRIPTS" folder, overwriting any existing script.
2) copy the file "fxDustDropRandomSCRIPT.psc" to your Skyrim "DATA\SCRIPTS\SOURCE" folder, overwriting any existing script.

The above steps will prevent any new locations from bugging out.
To fix any existing locations that are generating errors, follow these extra steps:

3) You will need to identify the game location(s) where the buggy script is running. Look at the Papyrus log example above. The number in front of "fxDustDropRandomSCRIPT.OnLoad()" is "0004624F" which means that the buggy script is in cell "KilkreathRuins02". So in this case, at STEP 4 below, you will need to COC to that location. If the number is not in the list given above, you can find the cell name by using the Creation Kit. Simply use "Edit->Find Text" from the top menu and type in the number and click "Find Text". Click the "Objects" tab and you should see the cell name in the search results. If you have any difficulty with this, just PM your log to me and I'll look up the number for you.

4) start the game, enter the console any type "COC KilkreathRuins02" to fast travel to the cell that contains the faulty activator.
5) explore the Kilkreath Catacombs area for a couple of minutes.

Repeat steps 4 and 5 for any other locations that have buggy "fxDustDropRandomSCRIPT" scripts running.

6) enter the console and type "COW Tamriel 0 0" to leave the area, then save your game.
7) quit the game then start the game again and load your new savegame.
8 ) play the game for a few minutes, then check your papyrus logs. The "fxDustDropRandomSCRIPT.pex" errors should be gone.
9 ) note that if you ever reinstall the CK or update it, you will need to recopy my fixed scripts to your scripts folders.

Edit: note that after applying this fix, it is still possible that you will find an occasional (rare) "fxDustDropRandomSCRIPT.psc" error in your log when the reference to which the script is attached unloads its 3D. However this is OK as the script will trap the error almost immediately and stop the loop from running indefinitely.



鉴于论坛有很多童鞋看不懂英文~所以简单翻译下
首先,在你修改了skyrim.ini之后,在papyrus.0里面如果发现出现类似的话:[08/02/2012 - 11:59:48PM] error: Object reference has no 3D
stack:
[ (0001E68C)].Sound.Play() - "<native>" Line ?
[ (0004624F)].fxDustDropRandomSCRIPT.OnLoad() - "<savegame>" Line ?
[08/02/2012 - 11:59:53PM] error: Object reference has no 3D

那么按照以下步骤来做:
(1)下载作者的修复的脚本文件(迅雷快传分流~在最后)
fxDustDropRandomSCRIPT.pex放在DATA\SCRIPTS文件夹
fxDustDropRandomSCRIPT.psc放在DATA\SCRIPTS\SOURCE文件夹
(2)找到导致你跳出的物件或者模型的名称
具体做法就是对应到
[ (0004624F)].fxDustDropRandomSCRIPT.OnLoad() 这句话前面的代码0004624F,因为由于这个脚本导致的跳出问题很多,代码不一定相同,所以我们需要找到这个代码对应的物件或模型,打开你的CK,然后在Edit->Find Text->Objects(编辑--查找文本--物品)里面输入你的papyrus里面显示的代码,查找对应的名称,比如。0004624F对应的物件名称是KilKreathRuins02
(3)启动游戏,开始修复存档
那么进入游戏,控制台输入coc KilKreathRuins02(其他情况就是coc xxxxxxxxxx。xxxxxxxxxx为你所查找出的名称),这样你会到达游戏的一个模型场景,和qasmoke一样的地方,类似测试场景,然后在里面跑上十几分钟,尽量保证这个测试场景的每个地方都跑上2-3遍,以便于每个cell都能保证修复一遍。如果有这个脚本对应有多个代码导致跳出的话,那么就一个一个的查,然后依次修复。
(4)保存游戏
在场景中跑动10几分钟后,控制台输入cow Tamriel 0 0   (是零)跳出测试场景,然后保存游戏,这样你的新存档基本就被修复完成了
(5)测试游戏稳定性
之后就是测试方法是否有效了~反正楼主感觉十分有效,以前狂跳出的问题基本解决了
(6)CK的问题
如果你更新了CK,那么需要重新复制粘贴作者的修复文件,因为CK里面包含了这2个脚本文件。

下面是修正脚本的下载地址:
http://kuai.xunlei.com/d/MMMYCJVAAYBL

最后,感觉有用就顶下吧~谢谢

评分

18

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-4 07:52 , Processed in 0.033815 second(s), 19 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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