一种基于比较不同版本里的行为树的差异,达到版本自适应的方法。并非百分百修复,但是能快速修复绝大部分使用Toolkits制作MOD。
本人使用平均是一分钟修一个,毕竟只需要粘贴复制替换。
原理:每个版本里的NodeIndex,ActionIndex,ConditionIndex在其数值较大时,与其他版本对应的Index的差异基本一致。(event用的少,没看
因此可以通过选取某个版本的一组全武器的NodeIndex等作为参考,与当前版本进行差异对比,并且通过修改函数来弥补差异来直接达到lua类派生MOD与版本自适应的目的。
选取的为v15版本的NodeID为1541128569的骑狗节点里的actionindex,conditionindex,Nodeindex的组合。
前面的数字代表weapontype,具体代表的武器自行查询Toolkits里的表。
需要用到Toolkits1314与Redtool_update两个工具箱。
Toolkits1314为本人修改O佬的原版Toolkits后得到的魔改版。
Redtool_update为本人专门为这个更新方法写的工具箱lua。技术有限,写得依托答辩。大概就是减了一下而已。
参考下列的模板。(基于玄佬模板进行的修改)
将toolkits里的函数的传入参数进行修改,将差异值加上。这样得到一个版本自适应的函数。对于已经制作完成的MOD,点击搜索,替换函数即可,如下图。(注意不要替换了前面修改传入参数时用到的toolkits函数)
对于常用的toolkits函数的修改后的函数,会一起放在例子lua里面,直接粘贴复制即可,对于其他函数,自行修改。
更直接的使用方法:下载帖子下面的东西,然后解压游戏根目录,然后把模板里的需要的东西复制进来(上图模板的1-102行里的所有对象),或者把MOD里的东西复制到模板对应区域里去,然后点击搜索,替换原来的函数即可。
1.1更新
- 为ActionIndex,ConditionIndex,NodeIndex的版本差异弥补设置限制,防止在数值较小的时候进行弥补。
- 修复N多问题。更新模板
1.2更新
- 调整ActionIndex的版本差异弥补限制下限
注:如果conditionIndex为10737开头的高位数Index,请手动修改传入参数。然后再在传入参数后再加个'-dif_condition',防止修改后的函数影响正确的参数传入。例如下图:
本方法可以正常使用了,如果还是看不懂使用方法,去下我一个老版本MOD和更新后的MOD对照着看下。基本上我所有MOD都是这么更新的。(光速!)
这个修复方式并不是百分比精准,需要排查问题,对涉及event的需要手动修复。
另外,看到乐佬帖子下面有人犯贱泼冷水的:最后一次更新还发这个有什么意义?
我的回答是——你帮我更?