游戏介绍
无主之地2机械术士DeathTrapAI改善修正补丁是玩家为射击游戏《无主之地2》专门制作的一款补丁工具。
无主之地2整合版(Borderlands 2)是2K Games发行的一款策略射击游戏,这是一款没多少剧情的游戏,游戏主要凭借着大胆的将第一人称射击跟角色扮演策略布局的玩法完美的整合到了一起从而取得了巨大的成功。这里小编为大家带来无主之地2萝莉AI修正补丁,为机械萝莉的Deathtrap制作的AI修正补丁,现在DT的行动将会更加的智能化,不像之前那么蠢了。喜欢的玩家快来下载吧。
【补丁介绍】
这个补丁都做了什么?
首先 体现最明显的:
1. dt现在不会对着某些敌人(尤其是boss 比如威尔海姆或者武士)傻傻一直放电了,而是会使用能用的各种攻击,优先级为狂暴 激光 击掌 电球 普通近战 放电。其中,dt不会对空中的敌人使用狂暴 击掌 电球和普通近战,因为太慢了。
2. 把放电这样一个距离远 能对地的技能优先级置后,直接触发了dt的一个bug(我不清楚原来有没有,如果没有 是因为被优先级更高的射电覆盖了)。就是近战(包括狂暴和普通近战)有时候会卡住dt。具体触发是:dt追着敌人想要近战,而敌人正在移动 然后敌人突然停止并不再位移,正在追赶的dt就会一脸撞上 然后卡住。直到双方有一个先移动位置,否则就会一直卡着。这个bug我尝试了各种办法修复,但是全部然并卵。触发的几率不是非常高 但是着实让人讨厌。这个修复占用了大概十几个小时的时间(当然现在已经弄好了)。
3. 想要进行近战时(包括狂暴和普通近战),dt会优先绕到萝莉和敌人成的直线上,萝莉的另一侧。这么做原因有二 一是某种程度上防卡,二是有些敌人的判定很奇葩,比如威尔海姆 dt飞到他的腰后面近战攻击 是打不到的。这时玩家就可以通过自身的位移 来一定程度上控制dt的位置。
然后是一些细枝末节,玩得细的dalao们可能需要这些信息:
1. 不再傻傻对着某些敌人一直放电的原理是:dt的ai其实是在一直重复检查一个按优先度排序的队列,队列中的项是dt的不同行动。排得越靠前,这个动作的优先级越高。一旦它可以被执行(cd好了且执行条件满足),就会被优先执行。原版中,这个队列为:被召唤/时间到了消失/射电攻击/回盾/随机队列1/随机队列2/闲置/巡逻。其中,随机队列1包括四种特殊攻击:狂暴 激光 击掌和电球。随机队列2包括6种动画不同实质相同的普通近战攻击。问题就出在射电攻击上。一来 它排得实在是太靠前了,它cd一好,条件一满足就会被执行。二来,它的发动条件有问题,原版的条件是“目标是飞行的 或 目标不可以被相位锁定”。我反正是没看懂这个条件要表达什么...单是“或目标不可被相位锁定”,就足以让dt对着大部分boss一直放电了。在这个补丁中,射电攻击被调整到了相当低的优先级,它的条件也被改为了“目标不是友好的”。
2. 原本四种特殊攻击是包含在随机队列1里的,而随机队列1的发动条件是“目标不是友好的”。也就是说 最外层的优先排序队列从前到后,一遍一遍重复检查各个项目的发动条件是否满足,检查到随机队列1,发现dt现在的目标确实是个敌人,就会进入这个随机队列1,按权重(原版4个特殊攻击的权重相同)选择一个项目执行。这导致了dt在一部分情况下卡住。比如根据目标不是友好的这个条件进入了随机队列1,然后这四个攻击全正在冷却 或者条件都不满足,dt就会卡住一段时间。在这个补丁中,直接把这四项从随机队列1提出来 放到了最外层的优先度队列里。顺序是狂暴 激光 击掌和电球。这时,这个队列从前到后检查项目时,就会一并检查这技能到底在不在cd,能不能用了。这样修改给这四种攻击加了优先级,这跟原版不一样了。比如狂暴和激光都能用,dt会先想要执行狂暴。但是这实在是没办法......
3. 如果看下附带的excel文件 或者自己进游戏dump一下dt的ai设定,就会看到dtai的构成。其实是最外层一个优先队列,套着一些小的优先队列/顺序执行队列和随机执行队列。其中所有顺序执行队列(包括电球和狂暴)都会在某种程度上对dt的流畅攻击有卡的效果。具体原因我也解释不了,但是实验就是这样的。所以把电球从一个“电球-停顿”的小顺序队列中拿了出来,直接放到了外层优先队列里。这样做跟原版也是有区别的,失去了放电球之后的那个(说实话还挺长的)停顿。狂暴因为涉及过程太多,拿不出来。
4. 在射电攻击后调后,dt最严重的卡顿出现了。触发条件就是上面第二条说的,在面对一些喜欢“突然移动 然后停着好久不动”的敌人时很容易触发。在尝试了4天之后,终于找到了一个解决方案 就是给所有攻击都添加一个失败时间,就是如果dt要做这个动作,而因为什么原因 失败时间过了还没做成功,就算作这次攻击失败,dt顺着优先队列找其他能用的。起手快的技能设定的失败时间短,起手慢的技能设定的失败时间长。现在dt是这么应对卡顿的:敌人突然快速移动,dt因为正在放激光或者类似的原因,没跟上。然后dt追着敌人想要近战,敌人停下了。dt追上敌人并一脸撞上(然后本应该卡住的)并近战不出来。然后dt开始计时,失败时间到了还没近战出来,这次攻击算作失败,dt顺着优先队列找其他能用的技能。如果是狂暴卡住了,下一个能用的一般是激光或者拍掌,这俩默认攻击距离都比狂暴远,dt就会后撤。一后撤,狂暴(优先度更高)就能用了。如果是普通近战卡住了,下一个能用的是放电。放电攻击几乎没有什么限制,优先低,距离也远,电几下 甚至还没电,其他优先级更高的技能就好了。这时距离又因为放电被拉开,一般就能顺利执行了。失败时间设置得都很短,比如普通近战是0.3秒,特殊攻击是1到2秒。这些数字是经验值,很可能有改进的空间。而且这样会多多少少降低dt的攻击频率,不过就观察来看 基本就是理论上会降低,实际看不出延迟。
5. 现在的dt依旧会面临两个很大的问题,而这两个问题都是我自认解决不了的...一是碉堡和血翼。这两个敌人虽然是飞行敌人,但是由于停滞时间长,理论上是可以使用狂暴等近战攻击的。不过如果为了这个 允许狂暴攻击空中敌人,dt又会在其他地方满地图飞着想怼小飞机。两害相较取其轻,所以dt现在不会使用狂暴 电球 拍掌和普通近战攻击空中敌人。二是判定奇葩的敌人,尤其是体型巨大的,比如鲨虫/武士。dt面对这些敌人很可能出现近战攻击打不出伤害的情况,这是因为攻击的位置确实不是hitbox的判定范围...这个真是没办法,碰撞箱之类的东西肯定都是写死在游戏里的。尽力通过调整自身位置,调整dt攻击方位吧。
6. 所有攻击的范围/伤害/攻击方式 都没有修改。连dt小得可怜的索敌范围也没改(站在平台下 检测不到碉堡233)。准确地说,dt索敌范围是4096,但是射电攻击最远能打到9999。射电攻击的优先级一后移,现在可能给人一种“dt扫描距离变近了”的感觉,有时候需要萝莉引导一下 dt才会开始打人。但是本着依照原版的原则,所有攻击的范围都没改,所以也只能这样。好在并没有近到贴脸才能识别,使用起来也没有明显的不适。大概距离是:站在三角地带分隔 传送点正对着的马路中间,能检测到并主动攻击对面的猿兽。
【使用说明】
1. 如果你现在的游戏是原版,啥mod也没装,这是最简单的。请使用包里的DTAIFix.txt,并按装mod的一般方法安装,改为要替换的文件名即可。安装方法2. 如果你现在的游戏装了社区补丁,也请下载网盘链接里的DTAIFix.txt。然后打开你的Filtertool,在菜单栏里选择Profiles,选择New Profile,随便起个名字,作为你社区mod的备份。然后再新建一个Profile,选择这个Profile,然后在菜单栏的DeveloperTool里选择Add Single Mod,选择DTAIFix.txt并在添加好后打勾。这样第一个Profile代表原本的社区mod,第二个代表加了DTAIFix的社区mod。选择第二个,然后File菜单-SavePatch。这样DTAIFix就被打包进你的社区mod了。想去掉就选择原来的Profile然后savePatch即可。
3. 如果你装过一些mod,但不包括社区补丁...推荐你装一个社区补丁,然后按2操作,把你以前的mod以及这个dtaifix全部添加进社区补丁,然后反选(取消)所有社区补丁本身的内容。如果你不愿意这么做,可以手动合并。方法是:打开你之前的那些mod,看其中有哪些的内容形似set Transient.SparkServiceConfiguration_6 Keys (....)以及set Transient.SparkServiceConfiguration_6 Values(....),然后把他们的Keys后面括号中的内容,以及Values后面括号中的内容,全部依次复制到DTAIFix.txt的这两个括号中,添在末尾就行。这两个括号中的内容一般均为多项,引号括起来为一项,逗号分隔。注意格式即可。
另外多说一点。这个Transient.SparkServiceConfiguration_6是原本无主之地2的一个micropatch,原本人家是有内容的,大概有十几条吧。如果有内容为set Transient.SparkServiceConfiguration_6 Keys这样的mod,开头与DTAIFix.txt的开头不一样,那就是它图方便直接覆盖掉了原本的micropatch的一些或者全部内容。DTAIFix.txt里已经在开头集成了原本官方Transient.SparkServiceConfiguration_6补丁中的内容。
网友评论