① 什么是psc后缀的文件,怎样打开
后缀是psc就是指psc格式的文件
也就是文件名后面都是 .psc 的文件
这个格式好像是个备份用文件,不是用来打开而是用作备份软件还原用的,所以不管是在手机还是电脑尽量保持文件原位置和名字不要更改
要注意的是电脑上要是选了隐藏格式的选项的话直接看文件名是看不到点和后面的格式字母的
② 发售6年仍然火爆《上古卷轴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的解决方法,我在以前的帖子有所介绍。tieba..com/p/3873900066这篇帖子讲的是warning:脚本不存在某属性的解决方法。相当的基础。补充:我们买游戏,是为了玩游戏。虽然玩游戏的动机可能有很多,但是以编程和修改游戏内容为乐趣的人并不多,绝大多数人玩游戏还是纯粹为了游戏。我也是。所以说技术和游戏要平衡好.虽然我很尊敬DK大,但是她那样研究技术会占用很多时间(她的每一个mod的每一个文件都知道作用--)..我个人不会选择这样做。每个人都有每个人的看法,你们想怎么玩,怎么做,都是你们自己的选择。4.如果CTD了,并且你已经确定某一条error或者某一堆error是引起这次ctd的原因,那么怎么呢?我随便找个脚本错误的例子.[11/02/2014-12:21:22AM]Error:(000C6984):.stack:[(000C6984)].FXSetBlendVariableScript.SetAnimationVariableFloat()-""Line?[(000C6984)].FXSetBlendVariableScript.OnLoad()-"FXSetBlendVariableScript.psc"Line38[11/02/2014-12:21:22AM]:时间戳,你可以通过ctd发生的时间找到对应的脚本错误区域。一般引起ctd的error就是ctd时间戳,也就是最后的那个时间点上的错误。有时候也和稍微靠前的error有关。Error:(000C6984):.:错误,括号里如果不是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)。我说这么少的内容,是有原因的。因为错误有无数个,每个错误的解决方法都不一样,我怎么写呢?6.bugbug区别于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使用习惯好坏的问题。
③ PSC文件用什么软件打开
.psc文件是Mysql数据库备份文件格式,用navicat工具可打开提取SQL
④ psc是什么文件
psc格式文件是Adobe Photoshop简称“PS”软件的源文件,要打开psc文件必须要用PS软件才能打开。
Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片闹薯握编辑工作。ps有很多功能,在图像、图形、文字、视频、出版等各方面都有涉及。
2003年,Adobe Photoshop 8被更名为Adobe Photoshop CS。2013年7月,Adobe公司推出了新版本的Photoshop CC,自此,Photoshop CS6作为Adobe CS系列的最后一个版本被新的CC系列取代。
截止2019年1月Adobe Photoshop CC 2019为市场最新版本。
(4)psc文件编译扩展阅读:
功能
专业测评:Photoshop的专长在于图像处理,而不是图形创作。图像处液庆理是对已有的位图图像进行编辑加工处理以及运用一些特殊效果,其重点在于对图像的处理加工;图形创作软件是按照自己的构思创意,使用矢量图形等来设计图形。
平面设计:平面设计是Photoshop应用最为广泛的领域,无论是图书封面,还是招帖、海报,这些平面印刷品通常都需要Photoshop软件对图像进行处理。
广告摄影:广告摄影作为一种对视觉要求非常严格的工作,其最终成品往往要经过Photoshop的修改才能得到满意的效果。
影像创意:影像创意是Photoshop的特长,通过Photoshop的处理 可以将不同的对象组合在一起,使图像发生变化。
网页制作:网络的普及是促使更多人需要掌握Photoshop,因为在制作网页时Photoshop是必不可少的网页图像处理软件。
后期修饰:在制作建筑效果图包括许三维场景时,人物与配景包括场景的颜色常常需要在Photoshop中增加并调整。
视觉创意:视觉创意与设计是设计艺术的一个分支,此类设计通常没有非常明显的商业目的,但由于他为广大设计爱好者提供了广阔的设计空间,因此越来越多的设计爱好者开手纯始学习Photoshop,并进行具有个人特色与风格的视觉创意。
界面设计:界面设计是一个新兴的领域,受到越来越多的软件企业及开发者的重视。在当前还没有用于做界面设计的专业软件,因此绝大多数设计者使用的都是该软件。
⑤ 为什么我加的mod很少,画质调到最低,却经常ctd
1.配置方面
如果你用一台炸鸡玩老滚,还要作死一样装各种mod,好吧我拦不住你,我只能告诉你炸鸡玩老滚而导致ctd的原因。
脚本方面:
位于source下的PSC文件是纯Papyrus语言写出的脚本,我们可以看到文件内部是高级语言,类似C和C++。然后我们点击上一步,会看到很多PEX文件,这是初步编译的脚本,这些文件不能被游戏直接使用,在读档的时候,游戏要继续编译这些文件,让他们可以使用。如果你的电脑CPU很烂,那么面对大量脚本的时候(因为不是所有的脚本都有有用的,有些时候存档内会出现循环抛错误的脚本,这些脚本会把你CPU坑哭),会发生脚本没有编译完就进入游戏的情况。绝大多数时候,在进入游戏瞬间就会ctd。但有那么几个少数情况,脚本不存在也可以进入游戏,但游戏内部存在逻辑性bug,例如各种任务bug等等......
材质方面:这个和你的显卡和内存有关。老滚作为程序,运行的时候需要把硬盘内的数据载入内存(硬盘转耐烂速影响载入时间,但是不影响载入后的效果),如果你的内存不够大,那么会出现爆内存的情况。需要载入内存的数据不能被载入,只能ctd。显存也是一样,材质dds需要载入显存。如果你装的是4K材质,在你的画面上,表现的不全是4K,材质质量会随着距离的增大而降低。(你的远景不可能是4K,懂了吧)但是,这些4K文件要全部载入显存,然后通过显卡核心进行压缩,变成2K,变成1K,512.....所以说炸鸡用高材质既坑显存又坑核心。显存爆了,不一定会ctd,但是会非常非常卡,卡到不能正常游戏。当然也可能会ctd...
所以说,炸鸡,要么安心玩原版,要么不玩,好好工作,弄点钱换台新电脑。
不要总想着优化。你优化之后的老滚,和我们玩的根本不是一个游戏。花费相同的游戏时间,享受到不同的游戏体验,你们愿意吗?如果是我,我宁可选择去看高数,看大物....
本部分结束。
系统方面,建议用64位的win7或者以上系统进行游戏。32位系统最大识别3.几G内存,减去2G(一个32位程序默认最多只能使用2G内存,可以破解,使他们可以使用3G内存哦)
2.游戏本体方面
主要内容概括:无论你现在用的什么版本,去换成纯净的英文传奇版,昌型漏记住,是纯净,是英文。正版在steam下载前选择英文。盗版就自己去找吧,我确定3DM有。安装目录不允许有任何中文字符。注册表一定要完整,没注册表请用注册表工具恢复注册表。安装之前要保证你的以下地方纯净:你选择的安装位置,我的文档下My Games,C:\Users\用户名\AppData\Local\Skyrim(win8和8.1是这样的,其他系统不清楚,搜索skyrim就能找到,内部是几个租伏TXT文件,如果有请删除)。纯净英文传奇版安装之后,运行launcher,设置画质,退出。再进,设置画质,退出。再进,看你的画质设置成功了么?(正版表示每次都要进行两次,貌似第一次是把游戏目录中的prefs放到我的文档下,第二次是融合那些HIGH什么的画质ini...)然后再看看载入mod能不能点,如果灰色,照着置顶帖里的方法进行修改。记住,有用的,只有bEnableFileSelection=1一句,你只需要修改,或者在正确位置添加这一句内容,其他不需要动。汉化方面,有蒹葭7.0的蒹葭名词和中箭组修订的官方名词可以选择,你选择什么我不管,我只能告诉你蒹葭名词安装之后,一定要换个字体,那个40M(感谢光影S的提醒)字体,足以坑掉大部分电脑。对于本体esm的清理,我个人没有清理,我对于清理esm有自己的看法,这里不详解。
概括部分结束。下面进行解释。
首先说传奇版。注意到图片上的references,也就是引用。妈蛋我想想怎么说.....你们知道,插件列表里有esm和esp吧,es就是上古卷轴,the elder scroll,m,是master,p,是Plugin。esp可以引用esm的内容,而esm不能向下引用esp的内容。传奇版和低版本的update.esm(升级档)内容会有不同,包括增加减少和数据差异。低版本也比传奇版少dlc。
如果你的mod需要引用传奇版update.esm的内容,或者dlc的内容,你如果没有,直接ctd没商量。脚本告诉机器,我需要这个!机器:我没有。脚本:法克!换一种说法:女朋友:亲爱的我要这个! 你:没钱,别买了... 女朋友:分手吧.... 咳咳
PS.下面的esp也可以引用上面的esp内容。所有的espesm都是指文件内部标记,而不是扩展名。
下面解释本体esm里的dirty edit。
dirty edit,分为两种,一种叫itm,一种叫udr。
ITM:Identical to Master。
解释它的产生:官方编辑器ck是有很多bug的。下面模拟一下modder制作mod的过程。打开ck,看到很多项目,先改一下A,再改一下B,再改一下C..........卧槽,A不应该改,把A修改删掉删掉....但是CK不一定会真把他删掉,而是恢复成原版模样。这样保存出的esp就是带itm的。你只有这一个mod的话,itm有10000个都没关系。但这个mod如果排在其他mod后面的话...根据唯一性原则,这个A会覆盖掉前面所有mod对A的修改,导致其他mod对A的修改变得无效。如果这个修改是关于脚本的呢?你这就相当于禁止一个脚本的运行或者修改,ctd在所难免。
UDR:Undelete and Disable References。
恢复删除内容并且禁止该引用。你们可以去看上面的图。如果排在下面的mod需要引用上面mod的内容,而这些内容已经被禁止,ctd。
但是。我说的这些都是mod,大家常说的清理脏数据是esm。我们想想,排在本体esm前面的能有什么?uskp!smpc!
uskp的n网贴并没有说要清理这些itm和udr。推广到大多数modder。推广到大多数mod users。我们只是普通的玩家,买到这个游戏,是为了玩的,而不是研究什么脏数据!我可以认为绝大多数玩家都没有清理脏数据么?那么,modder会避免对这些数据进行修改。否则反馈信息一定是:我为什么装上这个mod就ctd呀?为什么全是bug呀?....
所以我的个人意见是:不需要清理本体esm的脏数据。如果你的mod有脏数据,一定要清理,必须要清理。
本部分结束。上面的看法和远古大神的看法不太一样。摊手。如果有懂的大神告诉我错在哪里,我会感动哭的。
⑥ 怎么将psc文件导入mysql数据库
1、首先打开phpstudy数据库安装目录,点击客户端扮宏戚中其他选项菜单中MySQL工具,点击打开数据库目录。
⑦ psc是什么文件
psc格式文件为Navicat系列软件的备份文件。
Navicat设计符合数据库管理员、开发人员及中小企业的需要。Navicat是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。
Navicat提供多达7种语言供客户选择,被公认为全球最受欢迎的数据库前端用户界面工具。
它可以用来对本机或远程的MySQL、SQLServer、SQLite、Oracle及PostgreSQL数据库进行管理及开发。
Navicat的功能足以符合专业开发人员的所有需求,而且对数据库服务器的新手来说又相当容易学习。有了极完备的图形用户界面(GUI),Navicat让你可以以安全且简单的方法创建、组织、访问和共享信息。
文件格式作用
有些文件格式被设计用于存储特殊的数据,例如:图像文件中的JPEG文件格式仅用于存储静态的图像,而GIF既可以存储静态图像橘答氏,也可以存储简单动画;Quicktime格式则可以存储多种不同的媒体类型。
文本类的文件有:text文件一般仅存储简单没有格式的ASCII或Unicode的文本;HTML文件则可以存储带有格式的文本;PDF格式则可以存储内容丰富的,图文并茂的文本。
同一个文件格式,用不同的程序处理可能产生截然不同的结果。例如Word文件,用MicrosoftWord观看的时候,可以看到文本的内容,而以无格式方式在音乐播放软件中播放,产生的则是噪声。一种文件格式对某圆散些软件会产生有意义的结果,对另一些软件来看,就像是毫无举郑用途的数字垃圾。
⑧ 有什么单纯的编译psc文件的工具么
1. 启动NetBeans 7。
2.点击Tools -> Plugins
3.当插件列表打开蚂唯时,点击settings选项卡。
4.在settings选项卡中点击add按告物侍钮袜吵
⑨ 《上古卷轴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的解决方法,我在以前的帖子有所介绍。
tieba..com/p/3873900066这篇帖子讲的是warning:脚本不存在某属性的解决方法。相当的基础。
补充:我们买游戏,是为了玩游戏。虽然玩游戏的动机可能有很多,但是以编程和修改游戏内容为乐趣的人并不多,绝大多数人玩游戏还是纯粹为了游戏。我也是。所以说技术和游戏要平衡好....虽然我很尊敬DK大,但是她那样研究技术会占用很多时间(她的每一个mod的每一个文件都知道作用--).....我个人不会选择这样做。每个人都有每个人的看法,你们想怎么玩,怎么做,都是你们自己的选择。
4.如果CTD了,并且你已经确定某一条error或者某一堆error是引起这次ctd的原因,那么怎么办呢?
我随便找个脚本错误的例子....
[11/02/2014-12:21:22AM]Error:(000C6984):.
stack:
[(000C6984)].FXSetBlendVariableScript.SetAnimationVariableFloat()-""Line?
[(000C6984)].FXSetBlendVariableScript.OnLoad()-"FXSetBlendVariableScript.psc"Line38
[11/02/2014-12:21:22AM]:时间戳,你可以通过ctd发生的时间找到对应的脚本错误区域。一般引起ctd的error就是ctd时间戳,也就是最后的那个时间点上的错误。有时候也和银旦晌稍微靠前的error有关。
Error:(000C6984):.:错误,括号里如果不是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)。
我说这么少的内容,是有原因的。因为错误有无数个,每个错误的解决方法都不一样,我怎么写呢?
6.bug
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使用习惯好坏的问题。