本帖最后由 shpeee 于 2020-5-5 18:57 编辑
百级版本更新后一些之前用习惯的补丁失效或无法覆盖了,简单修复一下
1、赛利亚旅馆门树枝固定显示
链接: https://pan.baidu.com/s/1GeQuY4dYYGjb0RqenBkj5w
提取码: vcgw
2、阿拉德修理机改云幂
链接: https://pan.baidu.com/s/149JCACbseOQ87DQ6ttE0fg
提取码: qhv5
3、隐藏怪物死亡黑烟肉块
链接: https://pan.baidu.com/s/1bMzV82qcG1-x10EVubFQEQ
提取码: m9aa
4、关于制做补丁的小技巧
这些技巧我记得是七八年前在dnfex论坛看到的,随着论坛改版教程贴也不知丢到哪里去了,最近看到一些体积奇大无比的NPK,其实是可以通过简单的优化缩小体积的,遂作此教程,因为偏基础向,所以可能有点啰嗦,可以直接跳到4.3看步骤
4.1、客户端如何调用NPK
在进行优化补丁详细步骤讲解之前,首先我们要了解DNF是如何调用补丁的
以极光剑来举例,我们都知道25级极光剑的图标是,那么游戏是如何将这个图标显示在我们的游戏界面中的呢?
DNF的客户端文件中存在一个特殊的文件<script.pvf>,这个文件中存储了我们所有装备、技能、界面、图标、怪物的NPK路径以及其它一些代码
DNF客户端在运行时,会首先将其加载至内存中,此时假设我们在刷图时获得了一把极光剑,将其捡起至背包中,服务端会根据装备的代码向客户端进行请求来渲染该装备,客户端收到请求便会进入<script.pvf>文件中查找极光剑的详细代码,根据代码编写的NPK路径和坐标来渲染极光剑的装备图标
在<script.pvf>中,极光剑的代码存储为Equipment/character/swordman/wepon/beamsword目录下的n_beamswd_nothern.equ文件
此文件中记录着装备名、描述、边框信息、品级信息、掉落编号、使用限制等一些其它信息
在此文件的68行,记载着极光剑的装备图标路径:item/weapon/swordman/beamswd.img→1
那么客户端是如何调用该图标的呢?非常简单:
就是这么简单粗暴,转写一下即可获得文件图标,那么此时客户端就正确的找到了极光剑的装备图标,接下来将其渲染到我们的游戏窗口中,我们就可以看到它了
4.2、客户端如何处理错误
那么如果客户端没有找到正确的NPK文件,或者不存在该文件,如何来应对服务端的渲染请求呢?
如果我们直接在sprite_item_weapon_swordman.NPK中删除beamswd.img,客户端还能成功的渲染极光剑图标吗?
其实在游戏的制作之初,程序员便在DNF.exe这个主程序中内置了处理错误的方法:如果没有找到对应的文件,或文件类型错误,便直接在相对坐标0/0上渲染:interface/base/→91,也就是我们俗称的红叉
由于DNF的引擎是十几年前np小作坊自己捣鼓出来的,毛病确实很多,还拥有如此冗杂的游戏内容,所以游戏的执行效率是很低的(据说是套了VMP壳)
各位玩家应该经常会碰到爆内存的问题,具体表现为游戏卡屏、花屏或贴图出错,表现在渲染问题上就是贴图缺失、黑屏或满屏红叉,其实就是客户端在短时间内发送了大量的指令,由于CPU或硬盘瓶颈问题导致内存泄漏,执行渲染指令时出错调用了错误的NPK,一般通过重启游戏客户端来使其重新申请内存即可解决
4.3、针对该错误处理方法来优化补丁
进入正题,我们如何利用客户端渲染的错误处理方法来优化NPK呢?聪明的同学应该已经懂了,方法其实非常简单,拿前几天 @ミ血雉 同学发布的【闲】解决卡顿第五弹 剑宗三觉去除石头 来举个例子
原始补丁大小为14.4MB,打开该补丁查看内部,是直接将整个NPK拿来进行了修改,需要隐藏的石块部分替换为了空贴图
上文提到,客户端处理错误的方法为直接在相对坐标0/0上渲染:interface/base/→91文件
将需要替换的img保留,删除不需要替换的img,然后删除需要替换的img内部所有贴图即可,可能有点绕,但操作非常简单,如图所示:
只保留石块部分的img,删除石块img内部的所有贴图
若我们使用该NPK,释放剑宗三觉时,客户端会调用正常的技能贴图,而在渲染石块部分时,客户端发现groundrock、groundcrack等img内部不存在文件,则转而渲染interface/base/→91也就是红叉文件
此时我们可以看到肥鯮伴着一堆红叉在翩翩起舞那如果我们打了去红叉补丁来隐藏91号贴图呢? 肥鯮周身的红叉瞬间消失,我们使用简单的几个空文件就达到了隐藏石块的效果,此时文件的大小为:
4.3.1、其它事项
1、在某些情况下不能删除贴图:修改坐标的、存在索引的、文件同名的,但在大部分情况下,需要隐藏某些内容的NPK都可以通过此法来缩减文件大小
2、此方法没有提高FPS、使游戏顺畅、降低卡顿或深渊狂爆SS等作用
|