[会长讲故事]轻松成为大地图自动战斗操盘手
本帖最后由 AnyIDElse 于 2021-6-2 18:04 编辑以下内容均以完全原版条件作为大前提
以下计算公式均以实际情景做出了合理的简化
以下计算公式均按照基本计算顺序进行
大地图中无玩家参与的AI自动战斗的行为看似是刻板却毫无规律的,其中本质到底为何呢?
我们可以基于BattleAutoresolverPluginImpl等文件解析这个过程。
AI会首先调用相应方法获取它们的战斗倾向,主要是通过对比双方的舰队点数以及平均CR等,决定是否交战,然后就是本篇的开始。
————————————————————————————————————————
引入“品质”概念
如果一艘船是空间站,则其品质为1
否则,品质=1 - (0.2 x D船插的数量)
引入“舰船强度“概念
舰船强度=舰船点数(csv里的fleet pts,并非部署点) x (0.2 + 0.8 x 已经使用的装配点 / 最大装配点)
如果舰船的CR小于40%,那么舰船强度还将 x (0.2 + 0.8 x 舰船当前CR / 40%)
引入“舰船战斗力“概念
如果一艘船是民用船,或因故无法参战,则其战斗力直接无视下列机制、被视为0.25
否则,战斗力=舰船强度 x (0.5 + 品质) x (0.5 + 0.5 x 舰船当前结构/舰船总结构) x (1 + 船长等级/游戏舰长等级上限) x 一个在0.85到1.15之间的随机数
如果战斗力低于0.25,则被视为0.25
如果这艘船没有船长,则默认船长等级为0
对于一个舰队里的每一艘船,将其战斗力相加,则为该舰队的舰队战斗力。
多舰队交战的情况下,将同一侧的各舰队视为同一个舰队进行计算。
对交战双方的战斗力进行简单的大小比较,即决出赢家。
如果双方战斗力完全相等,则随机一方获胜。
————————————————————————————————————————
引入“胜者优势”概念
胜者优势=获胜者的舰队战斗力/失败者的舰队战斗力,被强制限定在10到0.1之间
引入“损伤”概念
获胜者的损伤=0.25 * 失败者的舰队战斗力/胜者优势
失败者的损伤=0.25 * 获胜者的舰队战斗力*胜者优势
然后开始反复对获胜者的舰队和失败者的舰队中的随机舰船造成伤害,机制如下:
根据舰船大小不同,这艘船初始获得30/15/10/5的“无伤”权重。
引入“损伤比”概念
损伤比=该舰队的损伤/该舰队的舰队战斗力
如果损伤比大于0.8,则这艘船获得20“停机”权重,10“重伤”权重,10“损伤”权重,5“轻伤”权重。
否则,如果损伤比大于0.6,则这艘船获得5“停机”权重,20“重伤”权重,10“损伤”权重,5“轻伤”权重。
否则,如果损伤比大于0.4,则这艘船获得10“重伤”权重,20“损伤”权重,10“轻伤”权重。
否则,如果损伤比大于0.2,则这艘船获得10“损伤”权重,20“轻伤”权重。
否则,这艘船获得5“损伤”权重,10“轻伤”权重。
如果这艘船所在的舰队持“逃脱”姿态,则这艘船“无伤”权重x2,“轻伤”权重x1.5
如果这艘船的敌舰队持“逃脱”姿态,则这艘船“轻伤”权重x0.8,“损伤”权重x0.7,“重伤”权重x0.6,“停机”权重x0.6
如果这艘船所在的舰队获胜,则“无伤”权重与“轻伤”权重均乘胜者优势,否则,“无伤”权重与“轻伤”权重均除以胜者优势
引入“护盾比”概念
如果这艘船没有护盾,则其护盾比为0
如果这艘船为民用船且拥有护盾,则其护盾比为0.5
如果这艘船为空间站,则其护盾比为0.5
否则,护盾比 =1 / (1 + (舰船结构 + 舰船装甲 x 10) / ((舰船幅能容量 + 舰船幅能耗散 x 10) / 护盾效率))
进行计算:
“无伤”权重x(0.9 + 护盾比 x 0.2)
“轻伤”权重x(1.2 - 护盾比 x 0.4)
“损伤”权重x(1.3 - 护盾比 x 0.6)
“重伤”权重x(1.4 - 护盾比 x 0.8)
“停机”权重x(1.5 - 护盾比)
如果这艘船是空间站,那么其“停机”权重全部转化为“重伤”权重,因为其停机与否是在其他部分进行判定的。
最后,根据权重随机产生结果,分别对这艘舰船的 结构/船体 大致造成0%/20%/45%/75%/100%损伤,并正相关地降低CR。
————————————————————————————————————————
因上述过程而被施加的损伤会被记录,以便反复进行上述过程,直至这些舰队的损伤被施加完全或舰队被摧毁为止。
战斗结束,进行其他部分结算。
一些简单的结论:
舰船的具体属性不会决定谁胜谁负,只决定胜负后受到什么程度的损伤
由于AI必然拉满装配点,CR也往往很高,因此它的fleet pts往往直接决定胜负
护盾越好损失越少,因此给殖民地带满强盾船可以在一定程度上提高止损能力
规模差距导致的战力差距是非线性的
舰队的迎战姿态将显著影响损伤
原来是这样,我完全(bu)明白了! https://www.fossic.org/forum.php?mod=image&aid=1123&size=300x300&key=e7aa29e183bede9f&nocache=yes&type=fixnone
{:5_127:}也就是说哪怕魔改一个机枪到秒伤几亿自动战斗也不会增加哪怕一丁点胜率咯 嗯,我懂了( 嗯,我懂了( 和所想的差不多,感谢电工喵{:5_126:} 原来是这样!我完全明白了【其实什么都没明白】
适用于AI,还是副舰长指挥作战(直接出结果)? ::L::L::L 问一下用副官追击的时候是怎么计算的?为什么追击的时候玩家的船从来不掉血?
比如说我拦住了一队中规模海盗舰队,他们是满状态的,但是想脱离(玩家是一个非常大的舰队)
这个时候我派几艘小船,一般是几艘护卫舰让副官追击然后几艘暴雨征伐之类的反而可以干掉几倍数量的敌舰,甚至可以是主力舰
然而在正常状态下是绝对不可能打得过这些船的
难道追击的时候有加成? KalanCole 发表于 2020-4-6 14:52
问一下用副官追击的时候是怎么计算的?为什么追击的时候玩家的船从来不掉血?
比如说我拦住了一队中规模海盗 ...
玩家参与的战斗获得十倍进攻加成 有点像数学公式:D 问一下大佬,殖民地的舰队规模和巡逻队的关系是啥样的啊,大佬有研究过吗?是根据这里的战斗力算还是根据造价或者部署点之类的? 明白~这就魔改一个加装配点的模块~然后装配模板减少到一个~AI尽可能随机到我魔改的模块装配及~~然后商队就不会老被人抢劫了~ 多喝凉水 发表于 2020-6-16 20:28
问一下大佬,殖民地的舰队规模和巡逻队的关系是啥样的啊,大佬有研究过吗?是根据这里的战斗力算还是根据造 ...
可以看一下这个 https://www.fossic.org/thread-501-1-1.html 详细啊~~ 完全明白了(什么都没看懂←)(bushi) 感觉极其需要一个能自己设定巡逻队以及空间站装配的功能或者mod啊!然后进阶为自定义舰队,派遣舰队去指定星系执行指定任务(贱民去给老子刷粽子!),然后……整个游戏过程我只负责see,哈哈哈{:tieba_50:}{:tieba_43:} 求教大佬,文件我也看了,其他的都能理解,但是关于舰船强度这个基础数值,我文件里找了半天也只能找到开发者注释里面写了与cr,部署点,装配点相关,但是没有具体公式,请问这个具体是怎么算的,或者在哪个文件能找到? https://fossic.oss.jnxyp.cn/forum/201910/11/131013zti86mib.jpg
谢谢猫猫!我懂了(){:5_124:} 好像在战斗中AI不会首先把民用船派上去,所以是否可以推论出除非其他船只损耗殆尽或者战斗失败被追击,否则损害机制不会优先对民用船造成伤害。 额,好复杂,头好痒,我是要长脑子了吗?{:tieba_12:}
页:
[1]