因为mod问题导致游戏上古卷轴5防跳出mod怎么解决?

拒绝访问 | www.1mod.org | 百度云加速
请打开cookies.
此网站 (www.1mod.org) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(fa43bf-ua98).
重新安装浏览器,或使用别的浏览器游戏跳出的解决办法-----修改脚本,无需再为大量的mod带来的不定时跳出烦恼 『3DM游戏网』
我的图书馆
游戏跳出的解决办法-----修改脚本,无需再为大量的mod带来的不定时跳出烦恼 『3DM游戏网』
01:51:34 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&N网论坛原址&作者 steve40 修改了原版游戏的一个脚本:fxDustDropRandomSCRIPT首先先用在skyrim.ini 的 papyrus下添加数据的方法查出导致你游戏跳出CTD的错误脚本,如果不知道怎么做,参考这个帖子:如果发现导致游戏跳出的脚本就是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 3Dstack:[ (0001E68C)].Sound.Play() - "&native&" Line ?[ (0004624F)].fxDustDropRandomSCRIPT.OnLoad() - "&savegame&" Line ?[08/02/2012 - 11:59:53PM] error: Object reference has no 3DThis 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" []"HonningbrewMeadery02" [] or [] or []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 3Dstack:[ (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个脚本文件。下面是修正脚本的下载地址:最后,感觉有用就顶下吧~谢谢
TA的推荐TA的最新馆藏
喜欢该文的人也喜欢&>&&>&&>&正文
《上古卷轴5》防跳出方法及原因解析 怎么防跳出
18:37:50 来源:上古卷轴吧 作者:零杀十一死
  《上古卷轴5》怎么防跳出?很多玩家不清楚跳出的具体原因,今天小编带来“零杀十一死”分享的《上古卷轴5》防跳出方法及原因解析,希望对大家有帮助,跟小编一起来看吧。
1.首先,要开启papyrus的log记录功能,否则你的老滚不会生成日志文件。
  上面红色箭头表示文件目录以及文件叫什么。
  下面紫色箭头和框体表示:找到[papyrus](若没有,则在底部新建一个),然后寻找框体内的三个参数(若没有,在papyrus下新建),然后把它们三个改成1)
  如果你使用的是MO,你起效果的skyrim.ini在这个目录:ModOrganizer\profiles\你的配置文件
2.找到你的日志文件
  当你做完第一步之后,无论你的游戏过程是否ctd,是否bug,只要你进入了游戏,就会生成日志文件。
  文件在这个位置:Users\你的用户名\Documents(这玩意是我的文档)\MyGames\Skyrim\Logs
  同一时间,最多记录4个log文件。最近一次游戏的日志是Papyrus.0.log,上一次的是1,再上一次是2,最多到3,每一次是指你开启tesv.exe,到tesv.exe结束。
  分析log的基础就是让log存在,上面的步骤是让log存在的教程。
  下面开始讲一讲如何分析
3.根据LOG内容出现的时间,我把LOG内容分为三种。
  运行游戏,读档,出现的LOG:这个所谓的档,最好是在吸烟室,并且保证吸烟室只有你自己,没有其他NPC,尸体,以及多余的物品。这部分LOG内容中的ERROR,建议大家弄懂它们的意思。如果明确知道这些error是无所谓的,或者有所谓,但是你可以无视它,那么就可以不解决,放着它。如果明确知道它会造成未来的某个严重问题,建议立即解决。
  游戏过程中,不会引起CTD的LOG:这些log多造成逻辑问题。比如一个给冰怨灵绑定摇尾巴动作的函数找不到object,只会造成冰怨灵没摇尾巴,而不能ctd。这些error也是一样,如果你觉得它无所谓,那么不解决也是可以的。
  引起CTD的LOG:这些error出现在papyrus0.log的后部,也就是你发生CTD时间戳的地方。在这里必须多说几句,ctd的原因有三种:文件缺失或者错误,当前游戏环境超过你的计算机处理能力,脚本严重错误。而你ctd之后查看log,ctd时间戳上的脚本错误,不一定是这次ctd的罪魁祸首,因为还可能是第二种原因引起的ctd....分辨的方法就是多次试验,100%跳的就是脚本原因。如果知道是脚本原因了,就要排查这个错误。时刻记住,找到发生错误的mod,就卸掉它,这是不可取的,至于原因,我后面会说,当然也可能忘掉了....
  warning:警告。如果你不蛋疼,警告可以无视,因为它任何时候都不会引起ctd。但是你分析error的时候可能会借鉴一下这些警告。关于warning的解决方法,我在以前的帖子有所介绍。
  /p/这篇帖子讲的是warning:脚本不存在某属性的解决方法。相当的基础。
  补充:我们买游戏,是为了玩游戏。虽然玩游戏的动机可能有很多,但是以编程和修改游戏内容为乐趣的人并不多,绝大多数人玩游戏还是纯粹为了游戏。我也是。所以说技术和游戏要平衡好....虽然我很尊敬DK大,但是她那样研究技术会占用很多时间(她的每一个mod的每一个文件都知道作用--).....我个人不会选择这样做。每个人都有每个人的看法,你们想怎么玩,怎么做,都是你们自己的选择。
4.如果CTD了,并且你已经确定某一条error或者某一堆error是引起这次ctd的原因,那么怎么办呢?
  我随便找个脚本错误的例子....
  [11/02/:22AM]Error:(000C6984):cannotfindvariablenamedfToggleBlend.
  stack:
  [(000C6984)].FXSetBlendVariableScript.SetAnimationVariableFloat()-""Line?
  [(000C6984)].FXSetBlendVariableScript.OnLoad()-"FXSetBlendVariableScript.psc"Line38
  [11/02/:22AM]:时间戳,你可以通过ctd发生的时间找到对应的脚本错误区域。一般引起ctd的error就是ctd时间戳,也就是最后的那个时间点上的错误。有时候也和稍微靠前的error有关。
  Error:(000C6984):cannotfindvariablenamedfToggleBlend.:错误,括号里如果不是00或者uskp,smpc的序号,那么可以明确知道是哪个mod出现的错误。如果是00或者uskp,smpc的错误,就比较蛋疼,你不知道哪个mod出问题了。就算你知道哪个mod出问题,直接删掉是完全不可取的,因为删mod会坏档呀,好吧也可以用savetool或者pdt清一下存档,但是不一定能完全清理干净....后面是说究竟发生什么错误了,比如不能找到object,object的类型不对呀等等等.....
  [(000C6984)]:这是发生错误的referenceID。关于referenceID的相关知识,我在后面会讲一下。
  FXSetBlendVariableScript:这是发生错误的脚本。在data/scripts(或者某bsa下)一定会有一个同名的PEX文件,开源的mod或者原版(要安装ck),会有psc源码文件。
  SetAnimationVariableFloat():这是发生错误的函数指令。这个函数可以是native类型(也就是不需要在psc中中定义的函数,这些函数是游戏本身就识别的),也可以是psc内定义的新函数,也可以是skse扩展的函数。
  ""Line?:这是被编译的psc内,发生错误的函数的行数。注意,反编译之后的psc不能用这个行数找到函数。
  OnLoad()-"FXSetBlendVariableScript.psc"Line38:这里,分别是发生错误的event,以及发生错误的文件,以及event所在的行数。所谓事件,就是告诉游戏什么时候执行事件下面的语句。
5.分析和解决思路
  首先分两个路径,都要去做。一个是脚本,一个是入口。
  第一路径,通过psc文件的指示,去寻找起作用的那个psc文件。
  要知道,如果原版有A.psc文件,uskp也有A.psc文件,Xmod也有A.psc文件,那么起作用的一定是Xmod的。怎么才会起作用呢?排在相对后面,并且入口中要挂载这个脚本文件。
  找到psc文件之后,打开看,看懂它在做什么。
  看的第一遍,看一下每个event和function下的主要函数指令都在做什么。
  看的第二遍,针对出错的位置,进行分析。
  这需要papyrus语言的知识,我已经说过了。
  如果没有psc文件,那就只能找到pex文件,然后用TESVTranslator反编译。这个软件绝大多数时候是用来做汉化的。我这种懒比肯定不会去做汉化的。
  方法:首先打开软件,然后点击文件,loadpapyrusPEX,然后在下面的pexdata下就会有反编译的脚本内容。
  如果是一个20行以内的小脚本,用这个方法还稍微可以。但是1200行的脚本,就算你看懂,想修改也需要重写成正常的papyrus语法,否则无法通过ck编译。
  第二路径:根据出错的referenceID,寻找出错的入口。
  需要注意的是,referenceID是baseID实例化之后的id,在ck和edit下可能会找不到。
  什么时候能找到?这个reference在文件制作的时候就已经被实例化了,例如所有有名字的npc,放在某箱子里的钥匙等等。还有就是这个东西不需要实例化。
  什么时候找不到?这个reference是在游戏过程中实例化的。例如无名字的龙。
  那么对于找不到入口的referenceID怎么办呢?
  打开savetool最新版本,搜索这个ID,可能会找到这个reference的相关信息,你可以通过这些信息推断出它是什么入口实例化的。你还可以通过直接搜索出错的脚本,在所得的信息中推断入口是什么。
  不过有些时候依然找不到入口,为什么呢?
  因为实例化这个过程,在你上次存档到这次ctd之间......那就只能gg了。
  知道脚本内容和出错入口,大概就可以知道mod这个部分究竟在做什么。
  知道这些信息,如何解决呢?
  你要通过这些信息去想,为什么这个脚本会出错?
  然后针对原因,进行入口的修改/脚本的修改并且重新编译。之后再处理存档(一般来说是删掉出错脚本的相关内容,或者修改其中的value)。
  我说这么少的内容,是有原因的。因为错误有无数个,每个错误的解决方法都不一样,我怎么写呢?
  bug区别于ctd,它不会引起闪退,你的游戏还可以继续。
  不过bug也分为良性bug和恶性bug。
  良性bug只是类似武器架E不动了,冰怨灵卡着不动了等等.....这些bug你能忍的话就不需要去解决。
  恶性bug会让你的游戏无法继续,例如某任务卡住,某音乐播放不停止。
  解决bug的思路和ctd差不多。只是把ctd时间戳改成bug嘛。
  不过建议尝试看log之前,先读靠前的存档,多次试验,如果bug没了,就不用累死累活了....
7.log的局限性
  很多时候,log给出的信息,只是xxx不能xxx,因为xxx不能作用在一个noneobject上.....
  none是啥?
  为啥那玩意变成none了?
  这些log都不会给出。你需要自己分析,这个难度非常大....甚至modder都不一定能分析出来....毕竟游戏底层的东西只有b社员工知道。
  所以嘛,错误能避免尽量避免。说到底,还是一个mod使用习惯好坏的问题。
更多相关内容请关注:
责任编辑:墨池
本文是否解决了您的问题
用手机访问
扫一扫,手机浏览
相关攻略:
游戏制作:Bethesda
游戏发行:Bethesda
游戏平台:PC/Xbox360/PS3/NintendoSwitch
上市时间:
游戏特色:
单机游戏下载
综合热点资讯
游民星空联运游戏模拟人生3――跳出问题的解决办法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
模拟人生3――跳出问题的解决办法
|0|0|暂无简介
逗游网――中国领先的游戏门户网站,也是国...|
总评分0.0|
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 ck2冰与火之歌mod跳出 的文章

 

随机推荐