仇恨公式
跳到导航
跳到搜索
- 仇恨公式相关的内容最近一次更新时,参考的游戏客户端版本号为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为识别目标)的单位 |
- ↑ 两点在南北方向上的距离加上在东西方向上的距离,即两点的横坐标之差的绝对值+纵坐标之差的绝对值。