外交术算法
外交术是一个通过计算多种参数,动态判定野外生物是否加入、以及加入时是否收费的技能。其核心是一个基于战力比较和敌意判定的数学系统。
核心影响要素:
英雄外交术等级:初级/中级/高级,直接影响判定公式。
野兵敌意值:游戏开始时,每队野兵会被分配一个 1~10 的隐藏敌意值。敌意值越低,越容易加入。此值由地图编辑器中设定的“敌意级别”决定其随机范围:
- 屈服的:固定为0(无条件加入)。
- 友善的:1~7。
- 好斗的:1~10。
- 敌对的:4~10。
- 野蛮的:固定为 10(绝不加入)。
同种兵判定:
- 有同种兵:英雄队伍中有与野兵同类的兵种(升级/未升级都算)。
- 多数同种兵:同种兵的数量超过队伍中其他所有兵种数量的总和。这是外交成功与否及是否免费的关键。
- 英雄综合战力:包括英雄所带部队的基础战力,以及英雄攻击力和防御力带来的百分比加成。
外交术算法原理详解
游戏通过以下步骤计算并判定野兵行为:
第一步:计算英雄综合战力比(k)
- 英雄攻防修正系数 = sqrt( (1 + 0.05 * 攻击) * (1 + 0.05 * 防御) )
- 英雄部队总战力 = 英雄攻防修正系数 * 部队基础战力(所有兵种 AI量分 之和)
- 战力比 k = 英雄部队总战力 / 野兵基础战力
第二步:根据战力比(k)确定“战力系数”
- k ≥ 7:战力系数 = 11
- 1 ≤ k < 7:战力系数 = 向下取整(2 * (k - 1))
- 0.5 < k < 1:战力系数 = -1
- 0.333 < k ≤ 0.5:战力系数 = -2
- k ≤ 0.333:战力系数 = -3
第三步:计算英雄的“魅力值”
- 同种兵系数:无同种兵 = 0,有同种兵,但非多数 = 1,多数同种兵 = 2
- 外交等级:无 = 0,初级 = 1,高级 = 2,专家 = 3
- 英雄魅力值 = 战力系数 + 外交等级 + 同种兵系数
第四步:判定结果(与野兵敌意值X比较)
- 战斗:如果 英雄魅力值 < 野兵敌意值X,则野兵选择战斗。
- 加入:如果 英雄魅力值 >= 野兵敌意值X,则进入下一级判断:
- a) 免费加入:如果 同种兵系数 + 外交等级 + 1 >= 敌意值X,则野兵免费加入。
- b) 花钱加入:如果上一条不满足,但 同种兵系数 + 2 * 外交等级 + 1 >= 敌意值X,且英雄有足够金币,则野兵收费加入。
- c) 拒绝加入的后果:如果英雄拒绝收费加入的提议,野兵会逃跑(如果可以)或转为攻击。
结论与技巧
基于上述算法,可以得出以下要点:
外交术收益巨大:它能显著降低所需的战力门槛,并提高可招募野兵的敌意值上限。简单记忆:为招降大多数野兵,所需英雄对野兵的最低战力比约为:无外交1.5倍,初级2倍,高级2.5倍,专家3倍。
“同种兵”是核心杠杆:携带同种兵,尤其是形成“多数同种兵”,能大幅提升魅力值,是达成免费招募的关键,有时甚至是能否招募的唯一条件。
高级兵种是“战力放大器”:由于战力计算是累加的,携带少数高级兵(如天使)能快速提升总战力,从而更容易满足战力比要求,同时还能利用低级同种兵来满足“同种兵”条件。
敌意值决定概率:对于“友善的”野兵,专家外交带多数同种兵,免费招募概率高达6/7。即使是对“有敌意的”野兵,也有一定概率招募。
属性加成不可忽视:英雄的攻击和防御力通过公式修正部队战力,因此培养高攻防的英雄对外交术同样有积极影响。