仇恨公式

来自PRTS
跳到导航 跳到搜索
  • 仇恨公式相关的内容最近一次更新时,参考的游戏客户端版本号为1.8.01(简体中文版客户端)。该版本客户端中共有45个仇恨过滤器,5个二次过滤器。其中有10个占位用的仇恨过滤器(未实装进游戏或从未被使用过)。
  • 游戏中的仇恨筛选分为两个部分:权重计算和规则排序。权重计算又分为“仇恨过滤器(postFilter)规则计算”和“仇恨值计算”。
  • 首先计算仇恨值,根据实体类型选用不同的计算式:
敌人类可以在地图上游走的单位,包括一般的敌人、平民等目标的仇恨值 = 1000 * 嘲讽等级 - 敌人距离终点距离
角色类可以在地图上以格为最小单位部署的单位,包括一般的我方单位、装置等目标的仇恨值 = 10000 * 嘲讽等级 + 创建时间(一个绝对的值,单位为秒,被限制在[0, 10000],小数部分取最多1位)
  • 然后代入仇恨过滤器(postFilter)规则二次计算并排序:
过滤器类型(Filtertype)及计算逻辑
序号 名称 解释 典型使用者 权重计算逻辑
0 ALL 全部 溅射攻击
1 DIST_TO_EXIT_ASC 距离终点距离,升序 距离终点距离
2 HP_RATIO_ASC 血量比例升序 苦艾一技能 血量百分比,不使用仇恨
3 HP_RATIO_NOT_FULL_ASC 满生命值目标以外,血量比例升序 各类治疗 血量百分比,不使用仇恨
4 HATRED_DES 仇恨,降序 一般攻击都是这个 仇恨值相反数
5 HP_RATIO_NOT_FULL 只选血量未满目标
6 HATRED_DES_FLY_FIRST 优先飞行目标,仇恨降序 安德切尔,一般狙击不使用 仇恨值相反数,非飞行单位+1000000权重
7 HATRED_DES_RANGED_FIRST 优先远程单位,仇恨降序 仇恨值相反数,非远程单位+1000000权重
8 DEF_DES 防御降序 史都华德刻俄柏二技能 防御值相反数*1000-仇恨值
9 DEF_ASC 防御升序 守林人 防御值*1000-仇恨值
10 DIST_TO_SOURCE_DES 距离来源距离降序 钩索师技能常见索敌 距离来源距离平方的相反数
11 DIST_TO_SOURCE_ASC 距离来源距离升序 阿消 距离来源距离平方
12 NOT_STUNNED_HATRED_DES 只选未眩晕目标,仇恨降序 萨卡兹术师的捆绑技能 仇恨值相反数
13 DIRECTIONAL_DIST_TO_SOURCE_ASC 距离来源垂直距离升序 食铁兽二技能 来源到敌人的向量在来源朝向方向上的投影
14 RANDOM 随机 刻刀一技能。(非火山与精神爆发)
15 HP_DES 血量降序 W三技能 血量相反数*1000-仇恨值
16 HP_ASC 血量升序 血量*1000-仇恨值
17 ATK_DES 攻击力降序 攻击力相反数*1000-仇恨值
18 ATK_ASC 攻击力升序 攻击力*1000-仇恨值
19 MAX_HP_DES 最大血量降序 鼠王唱沙 最大血量相反数*1000-仇恨值
20 MAX_HP_ASC 最大血量升序 鼠王沙暴 最大血量*1000-仇恨值
21 FORWARD_FIRST_MANHATTAN_ASC 优先正前方,曼哈顿距离升序 的两个爆发剂技能 1000*曼哈顿距离[1]-仇恨值。非正前方时1000变为1000000
22 HATRED_DES_UNBLOCKED_FIRST 优先未阻挡目标,仇恨降序 刻俄柏一技能 仇恨值相反数,被阻挡单位+1000000权重
23 HP_NOT_FULL_RANDOM 血量未满目标中随机 清流二技能
24 HATRED_DES_INVISIBLE_FIRST 优先隐身目标,仇恨降序 极境二技能 仇恨值相反数,非隐身单位+1000000权重
25 HATRED_DES_DIST_FARTHER_FIRST 优先最远,仇恨降序 爱国者投枪 -1000000*距离-仇恨值
26 HATRED_DES_DIST_NEARER_FIRST 优先最近,仇恨降序 1000000*距离-仇恨值
27 MASS_DES 重量降序 早露 重量等级相反数*1000-仇恨值
28 MASS_ASC 重量升序 重量等级*1000-仇恨值
29 HATRED_DES_SLEEPING_FIRST 优先沉睡单位,仇恨降序 瑕光 仇恨值相反数,不持有沉睡异常效果组合: 沉睡
这是一个异常组合,包含了以下异常效果
无法行动+无敌+不可阻挡
的单位+1000000权重
30 HP_RATIO_ASC_CONTAINS_STATUS_RESISTABLE_BUFF_FIRST 优先剩余血量比例低的单位,仇恨升序 絮雨 仇恨替换为剩余血量比例,不含有可抵抗状态的单位+1000000权重
31 HATRED_DES_IMMUNE_SLEEPING_EXCLUDE 忽略睡眠目标,仇恨降序 爱丽丝2技能 仇恨值相反数
32 EP_DES 元素值降序 首言者侵蚀液泡 全种类元素中的最低值降序
33 HATRED_DES_BLOCKED_FIRST 仇恨降序,被阻挡优先 歌蕾蒂娅2技能 仇恨值相反数,未被阻挡单位+1000000权重
34 CREATED_TIME_DES 创建时间降序 创建时间降序
35 CREATED_TIME_ASS 创建时间升序 创建时间升序
36 HP_RATIO_NOT_FULL_ASC_MY_TOKEN_OR_ME_FIRST 满生命值目标以外,包含设定召唤物的血量比例升序 凯尔希 血量百分比,自身与设定的召唤物单位以外+1000000权重,不使用仇恨
37 EP_MIN_ASC_HP_RATIO_ASC_FIRST_NOT_ALL_FULL “自身全种类元素值中的最低值”升序(出现同值时以生命值百分比升序优先),仅全种类元素值与生命值不完全为满 行医特性
38 HP_RATIO_ASC_EP_MIN_ASC_FIRST_NOT_ALL_FULL 生命值百分比升序(出现同值时以“自身全种类元素值中的最低值”升序优先),仅全种类元素值与生命值不完全为满 行医技能
39 HP_RATIO_ASC_CREATED_TIME_DES_FIRST 血量百分比升序(出现同值时以创建时间降序优先) 琴柳2技能
40 HATRED_DES_COLD_FIRST_THEN_NOT_FROZEN 仇恨降序,寒冷状态者优先,然后是没冻结的 灵知3技能
41 GRIDPOS_BY_SMALL_COL_BIG_ROW
42 BLOCK_COUNT_DES 阻挡数降序
43 HP_RATIO_ASC_CONTAINS_STATUS_RESISTABLE_BUFF 血量百分比升序(仅持有抵抗耐性:可抵抗者)
44 MASS_DES_SLEEPING_FIRST 重量降序,沉睡者优先
  • 通常算出的结果为32bit的float型变量的一份列表,并对列表进行冒泡排序,最后列表中最靠前(即结果最小)的数个单位将会被优先选中
  • 目前有数个索敌上的特殊情况:
由于我方仇恨值在无嘲讽的情况下等同于创建时间,而创建时间限制在[0,10000]的区间内,因此可以认为10000s(≈2.78h)之后部署的所有我方单位是“同时部署”的,在相同嘲讽等级情况下拥有相同的仇恨值。
同时,由于创建时间只取小数点后1位,明日方舟作为一个30帧游戏,意味着每一个周期的3游戏帧内部署的相同嘲讽等级干员也拥有相同的仇恨值。
随机类以外的,计算时没有使用仇恨值或干脆没有仇恨公式的索敌方式与其同理。
由于装置属于角色类实体,因此拥有和我方单位类似的仇恨值计算系统,即使没有调整嘲讽等级也会因为过高的仇恨值而更容易被我方优先攻击(例如水汽汽水瓶)。
因为使用的排序算法只会对比相邻值是否大于或小于,并不会改变同值项的顺序,所以该类情况下,目标之间的顺序将会保持为实体创建顺序,故大部分的敌人将优先攻击更早创建(一般为部署)的单位
  • 公式标记为“无”的请根据其名字与游戏内实际表现进行判断,通常该索敌仅有逻辑而无计算公式。
  • 之后进行规则排序,有时是二次过滤器(secondaryFilter):
ID 名称  解释
0 FLY_FIRST 优先飞行(所有的对空狙击)
1 RANGED_APPLYWAY_FIRST 优先远程武器安德切尔
2 SPECIFIED_FILTER_TAG XXtag优先(需要配合filterTag变量填写对应的tag,例如格劳克斯)
3 SPECIFIED_BUFF 优先含有指定Buff(以BuffKey为识别目标)的单位
4 SPECIFIED_BUFF_PAIR_OR 优先含有复数指定Buff(以BuffKey为识别目标)的单位
  1. 两点在南北方向上的距离加上在东西方向上的距离,即两点的横坐标之差的绝对值+纵坐标之差的绝对值。