《全面战争:战锤3》详解(3):射击篇

目录
1,面板远程威力
2,远程威力
3,爆炸威力
4,魔法远程射击与带火焰的远程射击
5,远程反射
6,装填速度
7,小型弹丸与否和盾牌格挡
8,全方位远程防御
9,高度优势
10,穿透能力
11,穿透抗性
12,震击半径
13,反弹和滚动
14,预判射击启用
15,精度
16,弹丸速度对精度的影响
17,prefer central
18,跟踪能力
19,植被无视时间
1,面板远程威力:面板远程威力在面板上查看,指兵牌中一个模组平衡射速后在十秒钟的预期伤害。

结论依据:看一看面板
2,远程威力:将鼠标放在远程威力的绿条上查看,指兵牌中单模组在一次射击中会造成的伤害。
同时会显示该射击中基础伤害与破甲伤害的具体值(护甲规则详见基础近战篇),基础伤害会受到护甲的减免,破甲伤害哪怕是面对最重的护甲时都能造成全额伤害。

附1:远程射击的反大和反步数值会提高射击对应体型单位时的远程威力,提高部分的破甲比例与原射弹相同。
结论依据:data.pack/db/projectiles_tables/Damage和Ap Damage。
3,爆炸威力:有些单位发射的弹丸带爆炸性质,会在消失时发生爆炸,造成一定半径的AOE伤害

除了游戏中显示的爆炸伤害外,爆炸半径对于评估爆炸的破坏力也尤为重要,但这个数据游戏中不会显示,爆炸伤害会从中心向外衰减。
据个人的不完全计算,衰减公式应该为:实际爆炸伤害=远程爆炸伤害×(1-0.9×(受伤者离爆炸中心距离/ 爆炸半径))
用人话来解释就是,爆炸最中心伤害为1.0倍,最边缘伤害为0.1倍,从最中心到最边缘之间伤害为线性衰减。
附1:同一兵牌火枪手没有办法射伤自己那个兵牌的战友,因为直接命中弹丸会直接穿模。
但如果发射的是爆炸性弹丸,并且当弹丸爆炸时同一个兵牌的其他战友或者自己在爆炸半径内的话,是会被自己兵牌发射的弹丸的爆炸击伤的。
结论依据:data.pack/db/projectiles_explosions_tables中可以查看弹丸爆炸时的的各种属性。
4,魔法远程射击与带火焰的远程射击:此条目和近战篇对应条目几乎完全相同,可考虑酌情跳过
普通单位使用物理性质的远程武器进行战斗,但很多单位的普通射击带有特殊属性,比物理武器更为强大。
1,魔法性质远程武器

魔法远程武器造成的远程伤害是魔法伤害,物理远程武器在抗性计算上受特殊保护,物理抗性远程抗性影响,魔法远程武器仅受特殊保护,远程抗性影响,相比物理远程武器提高了对有物理抗性单位的伤害。(抗性详见整体规则篇)
2,带火焰的远程武器
火焰不是一个独立存在的属性,必须是物理火焰远程武器或者魔法火焰远程武器


带火焰武器造成的武器威力伤害带火,“优势”在三方面
1)起火!带火焰武器会在击中后点燃你的对手!起火将会削弱对手再生的能力,身上带有起火BUFF的单位受到治疗时效果减弱50%

2)火焰抗性与惧怕火焰的对决
带火焰的武器相比不带火焰的会多吃一种抗性“火焰抗性”,游戏中抗性不能为负数。(抗性详见整体规则篇)
但是对火焰伤害,游戏中还有“惧怕火焰”属性,会按百分比加深单位受到的火焰伤害。
可以说:实战中就是一场对面给自己火焰抗性的能力和你给敌人施加惧怕火焰能力的对决,如果你能拼赢,敌人就会按百分比受到火焰伤害加深,如果敌人赢了,你的武器相比不带火,输出还会降低。所以如果大量使用火焰武器,请务必成体系的携带施加火焰惧怕的技能。
3)建筑伤害加成
带火焰的武器在攻击建筑物时会获得50%的伤害加成。

附1:目前版本中,攻击附魔只会影响远程攻击直接命中部分的伤害性质,爆炸伤害的性质不会被攻击附魔改变。
结论依据:data.pack/db/projectiles_tables/Is Magical和Ignition Amount
5,远程反弹:一些法术或者技能拥有偏折射弹的效果,可以将敌人射出的子弹向射击者身上反弹,这种法术是施加在射击者而不是被射击者身上的。

如果一个射手在被施加了“远程反弹”的效果时射击,他发射的子弹就会在一定秒数后偏折,射回自己身上。
目前所有projectiles表格中注册过的射弹都被独立设置了反射时间,在0.4~0.8秒不等(射弹会在发射后的0.4~0.8秒时反射)
“所有”意味着远程反射的生效范围不但包括所有普通射击,还包括魔法射击(无论使不使用魔法之风),吐息以及轰击。
但在实验中,轰击类是无法被反弹的(尽管它们都有独立设置的反射时间)。不知道是本意如此还是某种BUG。
附1:在到达反射时间点前,子弹还是向原定目标飞行的,所以你如果离射击者太近,或者对方子弹的弹道速度很快,即使那个射手被施加了远程反弹的效果他可以击中你。
结论依据:data.pack/db/projectiles_tables/Missile Mirror Start Time
6,装填速度:每个单位都有自己的基础装弹时间(即游戏中的白板数据)减少装填时间的值被称为“装填技能+Y”或“装填时间减少Y%”,但只要Y值相等这两个表述没有实际上的区别,Y值每提高一点,装弹速度减少基础装填时间的1%,即实际装填时间=基础装填时间*(100%-装填技能%)。比如基础装填10秒,20装填技能,实际射速便是10*(100%-20%)=8s。
同时无论装填技能多高,装弹时间不会少于两秒,如果你的装填时间已经达到两秒,再增加装填技能不会继续减少时间。
另外如果单位装弹动画时长长于装弹时间,那必须等动画放完才会开始下一轮射击,那这些单位的极限装弹时间就会长于两秒。
有些玩家可能会注意到,游戏中实际装填时间最低为4秒,小于4秒时就不会减少了,所以会质疑上文2秒的数据是否是错的,实际并不是错的。
因为射击间隔还包括抬手动画,实际射击动画等等,根据CA自己的测试,就算装弹已经压到了2秒,实际射击间隔还是4秒左右,所以用户界面上最低间隔只会到4秒,但实际上的最低装弹时间为两秒。
结论依据:data.pack/db/projectiles_tables/Base Reload Time,其余规则通过自制mod实验所得,关于4秒和2秒的问题详见2022年8月31日B站官方专栏。
7,小型弹丸与否和盾牌格挡:装备盾牌的单位有概率格挡正前方射来的小型弹丸,如果格挡成功,就可以完全无视该次射击的直接命中伤害

盾牌(远程格挡)会依给定的概率(将鼠标放在护甲栏的盾牌上查看)格挡正前方120度范围内命中的小型弹丸的直接命中伤害。
游戏中弹丸共有8种类型,分别为:arrow(弓箭),artillery(炮击),axe(投斧),grenade(手雷),javelin(标枪),misc(技能),musket(火枪),sling(投石索)。
其中arrow(弓箭,axe(投斧),javelin(标枪),,musket(火枪),sling(投石索)五种为小型弹丸,可以被盾牌格挡,其余三种(手雷,技能,炮击)会无视盾牌。
结论依据:data.pack/db/land_units_tables/shield中可以检索护盾类型,data.pack/db/projectiles_tables/Category决定是否会被盾牌格挡,盾牌格挡角度在data.pack/db/_kv_rules_tables/shield_defence_angle_missile,原数据为半角,将之乘以2是实际的盾牌格挡角度。
8,全方位远程防御:有些单位天生皮糙肉厚,有概率完全免疫命中他们的小型弹丸所造成的伤害。
“全方位远程防御”被动可以将该兵牌所有模组的盾牌防御角度修正至360°,可以概率抵挡所有命中他们的小型射弹——无论是从哪个方向射中的。

附1:“全方位远程防御”被动的作用是修正防御角度,不是提供盾牌格挡概率,所以如果获得被动的单位本身没有盾牌格挡概率,那修正度数也没有意义。
附2:同样鉴于“全方位远程防御”的作用是修正防御角度,所以和盾牌格挡在同一个单位身上不存在叠加问题。
结论依据:测试,这是一个新被动,代码为can_block_missiles_360。
9,高度优势:隐藏数据,当一发射弹命中目标时,会计算射击模组与受击模组的高度差(这儿的高度差计算的是模组脚站立的位置,而不是谁长的更高)。当射击模组相对于受击模组有高度优势时,弹丸的直接命中伤害会依据高度获得伤害加成,当高度大于等于40米时,伤害加成到达最高30%。
当射手相对于被射击单位有高度劣势(地势更低)时,弹丸的直接命中伤害会依据高度获得伤害减成,当高度大于等于40米时,伤害减成到达最高30%。
附1:该加成(减成)是计算完反大反步后再计算的,比如100破甲,100反大,拥有40米高度优势时,对0抗性大型伤害为260
附2:地形适应单位处于高度劣势时伤害不会降低
附3:飞行单位默认飞行高度为16米,所以假设地面平整的情况下,他们射击地面单位时会有12%的直接命中伤害加成,地面单位射击他们时的直接命中伤害会降低12%。
结论依据:data.pack/db/_kv_rules_tables/missile_height_damage_modifier_max_coefficient和missile_height_damage_modifier_max_difference
10,穿透能力:隐藏数据,一些高动能弹丸会在彻底失去动力前击穿几个,甚至十几个敌方模组,对每个击穿的模组造成一次直接命中伤害
穿透能力由两个属性组成:穿透体积与穿透上限组成。
穿透体积为该弹丸所能击穿目标的最大体型等级,超过该体积弹丸就会立刻停止。(体型等级详见整体规则篇)
即使击中的目标一直符合击穿体积,也并不能一直击穿,穿透上限代表了该弹丸能击穿单位的点数上限,点数大于上限时就算目标符合体型等级弹丸也会立刻停止。
比如写作版本中,猎巫人手枪射击穿透体积为小,穿透上限为5,那用他的手枪射击体积为“小”及以下的单位(步兵及以下)时,猎巫人一枪最多可以射死6个步兵模组,但如果子弹射中骑兵及以上体积,弹丸会被立刻停止
附1:爆炸性弹丸有些也有穿透能力,但只会在弹丸停止时发生爆炸,这意味着在射击一些体型小的单位时可能会发生现实中的过穿现象,炮弹直接穿透了目标并没有发生爆炸,这样只会受到直接命中伤害而不会受到爆炸伤害。
附2:是否被击穿和是否被盾牌格挡的判定是独立的,所以会出现某个单位被击穿,但是盾牌格挡成功的现象:子弹穿透了那个模组,继续伤害他身后的单位,但那个模组没受到任何伤害。
结论依据:data.pack/db/projectiles_tables/Projectile Penetration中检索,对应data.pack/db/projectiles_tables/projectile_penetration_junctions_tables中查看对应的击穿体积与击穿上限。
11,击穿抗性:隐藏数据,击穿一个牛头人和击穿一个鼠鼠所需的动能明显不一样,高击穿抗性会提高弹丸击穿模组的难度,击穿抗性由两个值组成
击穿点数与穿透速度比例:
击穿点数:击穿点数代表弹丸击穿这个模组时消耗的点数,步兵通常是1,巨魔为3,巨人为5,毁灭巨轮为20,但后两个目前没有实际意义,因为只有一种击穿代码可以击穿体型等级为very large 的单位,但那种弹丸的击穿上限为正无穷,这个点数没卵用,而面对正常弹丸,very large 单位靠体型等级已经必定将弹丸停住了,也无需消耗对方点数。
穿透速度比例:你把我打穿了,但我要最后恶心你一把,弹丸击穿每个模组时都会损失当前速度一定比例的速度,穿透速度比例为剩余速度的比例,大于0小于1。弹丸飞行时有自己的下坠速度,但私以为这个属性除了某些无限击穿能力的弹丸之外,效果实在不明显。
大部分步兵的击穿速度比例为0.9,一些特殊单位为0.95,除去极少的极端单位之外,最低的速度比例为0.75。
以写作版本帝国巨型加农炮为例,它的穿透体积为大(怪兽步兵,蝠狼等小型巨兽以及以下体积),穿透上限为9
那么他的炮弹射中真正的巨兽,比如巨人时会立即被停止(或偏折)
射击步兵时(穿透点数一般为1)在偏折前依最多可以直接命中10个步兵
在射击骑兵(穿透点数一般为2)时,可以直接命中5个骑兵
在射击怪兽步兵(穿透点数一般为3)时,可以直接命中4个
结论依据:data.pack/db/battle_entities_tables/Projectile Penetration Resistence和Projectile Penetration Speed Change。
12,震击半径:炮弹并不一定要打中人才会造成直接命中伤害,震击半径大于0的弹丸在飞行时,所有处于震击半径内,但是没有被炮弹直接命中的单位也会受到直接命中伤害,并且用该种方式命中不会消耗击穿点数,也没有体积限制。
手枪弓箭小型投射武器的震击半径通常是-1,即没有震击半径,但基本上所有的炮弹都有自己的震击半径,允许炮弹对擦身而过的敌人也造成直接命中伤害
结论依据:data.pack/db/projectiles_tables/Shockwave Radius,如果将坦克的震击半径改成100,往人员密集处的一炮就能打出上千杀
13,反弹和滚动:隐藏数据,实体非爆炸性炮弹(坦克,巨型加农炮,加农炮,卡隆炮等)拥有反弹能力,can bounce属性打钩弹丸就拥有这种能力,炮弹在第一次因为穿透点数耗尽或者击中无法穿透物体时不会消失,而是会进行一次反弹,在反弹过程中继续造成伤害。
发生反弹之后的弹丸依然可能有穿透力,但究竟是继承反弹之前没有用完的穿透点数,还是反弹后会刷新穿透点数目前不明
一些单位,比如坦克的主炮依靠震击,反弹可以打出比实际上的9个穿透上限更高的杀伤数,个人记录是一炮17个,但请注意反弹有时候会乌龙,比如你家的矛兵在围着一个巨人打,你用巨型加农炮向巨人开火,打中会对巨人造成一次直接伤害,但炮弹有相当高的概率会反弹回来砸在你的兵堆里,砸死一定数量的倒霉鬼🐵。
拥有滚动能力的弹丸会在地上滚,但个人没有注意到这种滚动造成实际的伤害。
附1:爆炸性弹丸无法反弹,即使你赋予他们反弹能力,爆炸和反弹这两种能力是互斥的。
如果同时给予一个单位,结果就是在那种弹丸应该反弹的时候它就直接爆炸了。
令人困惑的是原版有一些既有爆炸又有反弹能力的弹丸,比如写作版本的恐虐颅骨炮,实际在击穿能力耗尽时就会直接爆炸, Ca给它的反弹能力是无效的,只有删掉爆炸代码之后才能正常反弹,不知道ca是有爆炸代码所以那个勾打不打觉得无所谓,还是干脆不知道这两个东西是互斥的
结论依据:data.pack/db/projectiles_tables/Can Roll和Can Bounce。
14,预判射击启用
隐藏数据,绝大部分射手会根据对方的移动状态调整自己的射击提前量,这个状态是可以通过Lock on Multiple Fire Pos开启或者关闭的,原版只有极少部分的射击,比如龙息是关闭的,这样龙息只会瞄准对方的当前位置,而不会打提前量。
结论依据:data.pack/db/projectiles_tables/Lock on Multiple Fire Pos。
15,精度:游戏中,单位射击时的“散布面”决定了单位在射击敌方单位时的精准程度,散布面越小,代表射击越为精准
单位的散布面由三个属性决定:
1)基础散布距离:散布面正好为基础散步面的距离,大于这个距离时,实际散布面大于基础散布面,小于这个距离时,实际散布面小于基础散布面。
2)基础散布面:在基础散布距离,0精度时的散布面,提高单位的精度就可以缩小基础散步面。
3)精度:唯一一个游戏中可以提高的属性,会缩小单位的基础散布面,个人测试对半径的影响应该是非线性的。
实战中要将三个属性综合考虑,比如写作版本中,帝国臼炮精度20,加农炮35,这个精度差距是很近的,但两者散布距离差不多的情况下,臼炮散布面380,加农炮8.5,实际的精度差距有目共睹。哪怕将臼炮精度修改至1000,射的还是没有加农炮准,反正如果感觉射手射不中,有精度往上叠就行了,肯定不嫌多。
结论依据:data.pack/db/projectiles_tables/Calibration Distance和Calibration Area为校准区域与校准半经,data.pack/db/projectiles_tables/MarkSmanship Bonus是弹药提供的命中,data.pack/db/land_units_tables/Accuracy为射手提供的命中
16,弹丸速度对精度的影响:精度仅指射击运动状态不发生变化(站着不动,或一直往一个地方跑)的单位时的效果,如果箭已离弦,对方却忽然来了个急刹车或急转弯,很高的精度依然无法保证高命中率,对于特别是PVP中喜欢晃来晃去躲箭的玩家,弹丸速度快才是保证对方没有操作空间,稳定的高命中率的属性.所以对于精度要求高的射击,弹丸速度慢的弓箭是有极限的。
结论依据:观察,弹丸速度可参考data.pack/db/projectiles_tables/Muzzle Velocity。
17,prefer central:隐藏数据,打勾后部队会更倾向射击敌方部队正中心,不打勾会更倾向于射击两侧,大部分时候没什么卵用,但是如果你射击的是对方炮兵时请注意:打钩单位瞄准的是对方炮架,不打勾单位瞄准的是对方操炮的小兵,所以没有prefer central的单位是非常不擅长对炮的!
结论依据:data.pack/db/projectiles_tables/Prefer Central Targets。
18,跟踪能力:在homing属性下有代码的弹丸在游戏中有追踪能力,在飞行过程中自行校准弹道,比如混沌勇士的地狱炮和绿皮的俯冲毁灭弹射器,但请注意转弯速率是有限的,所以高速单位可以通过机动或者突然转弯的方式躲开这些追踪弹丸

附1:追踪主要是魔法射击的属性,在常规武器中比较少见。
结论依据:data.pack/db/projectiles_tables/Homing Params代码可以检索到原表中的追踪能力数据。
19,植被无视时间:远程弹丸有植被无视时间这个属性,意为弹丸在刚刚被发射的一段时间内可以无视植被的碰撞体积。
所以如果射手被布置在森林的边缘,他们在向森林外的单位射击时就可以几乎无视森林的阻挡效果。
与此同时如果有森林外的单位向他们还击,对方的射击就会被树木阻挡,使布置在森林边缘的射手获得优势。
植被无视时间是每种弹丸独立设置的,大部分射手的无视时间在0.5秒到2秒不等。
大部分大炮的植被无视时间都是0,所以请不要进行炮口怼树干的操作,你射不出去的,不要想了。
附1:木精灵的植被无视时间相比其他种族并无优势,结合他们树林内射击精度加成的战场特性,我觉得这个设计是非常不合理的,是我我就给他们全部改个100秒。
结论依据:data.pack/db/projectiles_tables/Vegetation Ignore Time