【技术教程】剑灵游戏副本和掉落修改教

2021年11月17日02:00:28
评论
1.1K

简单说一下怎么改副本 boss 属性和掉落。学会的大佬可来帮忙维护下群服。在没有付费修改工具的提下,我们需要一个文本编辑神器:Notepad++自己去下载一个即可。这篇文章不涉及客户端修改,仅限服务端。客户端只是显示给玩家看的,具体副本属性和掉落这些都是直接改服务端就可以了。篇章一:副本 boss 属性更改首先要明确,世界所有怪物、装备、奖励等配置都在 services/GameDaemon/data文件夹下的 GameData_GARENA.zip 这个压缩包里(原版配置)。画眉和新时代则在 D 盘根目录的 Data 文件夹下(解密的),是一大堆 xml 文件。全世界所有怪物的血量攻击等属性,都是 npcdata_xxx.xml 的文件名形式:

【技术教程】剑灵游戏副本和掉落修改教

简单盲猜翻译一下,baekcheong-白青;daesmak-大漠;soweol-水月;dungeon-副本;其他的 winter 应该是雪原类的地图,summer 应该指热带类的地图。我们要改的副本 BOSS 属性大部分都在npcdata_dungeon.xml 这个文件里。用notepad++打开,里面每一行都是一个怪的属性。

【技术教程】剑灵游戏副本和掉落修改教

要修改副本,首先要定位 boss 在配置文件中的位置。方法 1:通过 boss 的血量搜索实际上游戏去看一下,比如说,雪域宫修罗王血量是 30 亿,那么我们在文件里ctrl+F 搜索 max-hp=”3000000000”(别打成中文引号了)

【技术教程】剑灵游戏副本和掉落修改教

按 home 键 回 到 这 行 开 头 , 看 到 boss 修罗王的 alias( 别 称 ) ME_C3_SeolOkGungBoss_0005

【技术教程】剑灵游戏副本和掉落修改教

盲猜一下,seolOkGung 指的是雪域宫,Boss0001-0003 指的是前三个 boss,这样我们就定位到了 boss 在配置文件里的地址。方法 2:通过翻译文件搜索进入客户端的 contents\Local\GARENA\THAI\data 文件夹下,会有一个 local.dat文件。用解包打包 dat 工具解包,得到一个 local.dat.files 文件夹。这个文件夹里有一个 datafile.bin。接着用解包打包 bin 工具解包,得到一个 localfile.bin.files 文件夹,里面有一个很大的文件 datafile_255.xml。用 notepad++打开它(警告,千万别用自带的记事本打开!会卡死!)。同样 ctrl+F 搜索修罗王这个关键词,同时选择在当前文件查找

【技术教程】剑灵游戏副本和掉落修改教

直接就 get 到了修罗王的名字:ME_C3_SeolOkGungBoss_0005(电脑配置不佳会导致搜索极其卡慢,等一会就好了。)上面方法任选其一,我们定位到了修罗王的配置文件的位置,那么怎么改呢?改本往往不是简单的改最大血量就行,这样意味着 boss 就是个血多点的沙包。这边我具体测试如下:攻击属性 : "attack-concentrate-value", "attack-counter-damage-modify","attack-perfect-parrydamagemodify", "attack-power-creature-max","attackpower-creature-min", "hate-powermodify"防御属性 : "defend-counter-reduce-modify", "defend-dodge-valuemodify","defend-force-value-modify","defend-parry-value-modify","defendperfectparryreduce-modify","defend-physical-value-modify","defend-powercreature-value","defend-resist-power-creature-value", "hp-regen","hregencombat","max-hp"其他:level,reward-exp另外,改副本的话,得把副本所有的大怪小怪 boss 都一起改了,难道所有的怪都要一条一条去搜?当然不是的,我们可以总结下规律的。熟悉配置文件的大佬应该发现了,有这么一些配置文件:

【技术教程】剑灵游戏副本和掉落修改教

翻译一下就是地区 NPC 生成数据_xxx.xml。那么以我们改雪域宫为例,找到雪域宫这个地区 NPC 数据生成配置,提取出里面的所有 NPC 别名(alias)就行了。下面就是 notepad++展示全文件搜索的时候了。用 notepad++打开任意配置文件,ctrl+F 搜索,切换到文件搜索,选择要搜索的文件夹,文件类型简单正则一下,把雪域宫 boss 的 alias 填进去,然后全部查找:

【技术教程】剑灵游戏副本和掉落修改教

找到结果:

【技术教程】剑灵游戏副本和掉落修改教

就在这个文件里,盲猜一下翻译:区域 NPC 生成数据_白青_雪域宫这个配置文件里每一行都有一个 npc 属性,对应的就是雪域宫的每一个怪:

【技术教程】剑灵游戏副本和掉落修改教

雪域宫的所有怪物名字和配置文件都定位到了,每个怪都那么多属性,难道一个个手动改? 当然不的,如果你手动改一个副本能改一天一夜。这种简单重复的工作,写个脚本就能批量改掉了,耗时 0.1 秒都不到。好了接下来祭出我们的 python 大法。
Python 自带一个 xml 解析库,可以把 xml 里的配置项读出来,修改,写回去,
非常非常好用。
那么我们简单介绍下怎么来实现这个脚本的。(不想看的可以跳过,后面放源码)

【技术教程】剑灵游戏副本和掉落修改教

来,首先写个方法,把 xml 文件生成一个 N 叉树,从节点开始读取,每一条取属性。 在 zonenpcspawndata 里,只要取出所有的 npc 的属性,返回就可以了。

【技术教程】剑灵游戏副本和掉落修改教

下面的主方法先调用一下,取出 zonenpcspawndata 里的怪物名字大合集,再读取 npcdata_dungeon 的数据,同样遍历每一条数据的属性,如果 alias 存在于刚才读出来的怪物名字合集中,那么就修改这个怪物的属性。攻击和防御是分开修改的,简单粗暴改为多少多少倍就行。建议攻击和防御的倍率一致,因为官方数据一般来说配比你自己想出来的更加合理。好了,直接 run 一下这个脚本,你眨眼的功夫都没有,就直接改完了。当前目录下会写出一个 npcdata_dungeon.xml.output 的文件,自己把后缀去掉就行了。总结一下关键性流程:通过 BOSS 血量或者本地翻译找到任意 BOSS 的 alias,再通过这个 alias 查找副本的怪物生成配置文件,从文件中取出所有怪物的 alias,在回到 npcdata 配置文件里修改就行了。

篇章二 更改 boss 掉落

还是通过前面的方法,找到几个 BOSS 的 alias(血量搜索法还是翻译搜索法都行)。副本掉落的配置文件为:rewarddata_dungeon.xml。当然,所有的掉落配置都是一样的格式,rewarddata_xxx.xml 这样,具体自己去翻译。还是以改雪域宫的修罗王为例。打开 rewarddata_dungeon.xml,搜一下修罗王的alias:ME_C3_SeolOkGungBoss_0005。你说啥?搜不到? 搜不到那很正常,因为修罗王的奖励在茱莉叶的箱子里!那咋整呢?很简单,临近搜索法。配置项都是按顺序往下走的,金童银童的奖励是直接给的吧?所以搜一下金童银童的箱子,ME_C3_SeolOkGungBoss_0001

【技术教程】剑灵游戏副本和掉落修改教

OK 找到了。因为银童是不掉箱子的,所以这个 0002 直接省略掉了。盲猜一下,0003 是伊卡鲁RewardBox_0010 是火山冰河,RewardBox_0011 是茱莉叶的箱子。 你真不确定的话,把这个 alias 去翻译文件里搜一下,就知道了。那为啥有那么多的奖励项?仔细看,sextet 是六人奖励,quartet 是四人奖励,duo 是双人奖励,solo 是单刷奖励。目前只开放了六人本,所以其他的都不需要看的。我 们 再 仔 细 看 下 修 罗 王 的 奖 励 , 可 以 看 到 , 后 面 啥 都 没 有 :

【技术教程】剑灵游戏副本和掉落修改教

这是因为这个是公共奖励项,无论你刷六人四人二人都会有这个奖励。我们只要改六人奖励就可以了!下面说一下奖励的词条。你往后翻,会看到有这么几个词条:fixed-item-x,fixed-item-x-maxfixed-item-x-min,group-x-item-y,rare-itemx,rare-item-x-max,rare-item-x-min,rare-item-probweight-x,group-x-itemweight,group-x-y-probability,group-x-assured-count这种根据字面意思理解就可以了!Fix-item 当然是固定掉落了!加东西的话把后面的编号 x 次序增加就可以了,加完东西记得把加的东西的 max 和 min 定义一下,掉落的数量就在这个区间里。Group-item 当然就是分组掉落了! 这里固定 group-1-2 为一组,后面就是group-3 group-4 了。分组掉落啥意思?比如说八卦牌有 1-8 号,那把 1-8 号都加入这个组里,然后通过 group-x-assured-count 控制掉落多少个,设置 1 就随机掉 1 个,2 就随机掉 2 个。那 weight 是啥意思? 当然是权重了!权重怎么算?分组某个物品权重/分组所有物品权重之和 就是当前分组里这个物品掉落的概率了。另外,以 probability 结尾的这个就是百分概率!以 100 为基数。Rare-item 当然就是珍贵物品了!参数和 fixed-item 差不多,就是有一个权重的问题。权重也是那么算,比如 rare-item-1 权重是 10,rare-item-2 权重是 90,那么掉落 rare-item-1 的概率就是 10%。好了,那么 item 怎么定义呢?我们可以看到这样的:fixed-item-1="General_Grocery_SpecialMaterial_1067"这个时候你就需要一份 175 物品 ID 表了(群文件有下载)。

【技术教程】剑灵游戏副本和掉落修改教

改成你想要的就行了!另外,比如新时代,画眉等魔改的端,它的一些装备物品是更改原来 175 的物品,它会提供物品 ID 给你,在 175 物品 ID 表里搜一下这个物品的 ID 就行了!好了,差不多了。以上这些就是副本的简单修改。还有一些 NPC 或者副本,并没有在 npcdata_dungeon.xml 和 rewarddata_dungeon.xml 文件里。这个时候就要善用 notepad++的全文件搜索功能了。 举一反三,世界上任何有名字的怪物都能搜出来,都能改的!

以上都是自己慢慢摸索出来的一点经验,如果你有更好的方法,欢迎分享。