焚风之爱莉琰 发表于 2016-4-17 11:07:58

浅谈帝国时代中的挡枪系统

本帖最后由 风火之炎岩 于 2016-4-25 21:21 编辑

以前做单位时就发现帝国时代里面有“挡枪”这个系统的存在。

当我用一个弹道平直的远程单位向一群单位射击时,目标单位前面的敌方单位就会替目标单位“挡枪”。后来我发现,直接攻击本来是可以秒杀挡枪的单位,却因此变得需要两下才能打死的,这就表明挡枪的单位只会受到一部分伤害。

以下是今天要登场的主角,是我自己做的一个单位,攻击方式为弓箭,攻击力60。由于我修改了投掷物弧度,所以她的箭的轨迹与普通弓箭手不同——并不是抛物线而是直线。目标单位是两个前后站立的国王,因为国王不吃克制属性,而且防御力为0,并且我将其生命用触发修改为1000。(如下图)


金鹿酱直接攻击前面一个国王(国王甲)之后,国王甲此时的血量为940,受到的伤害为60,即受到100%的伤害。(如下图)


接下来攻击国王乙,这时候由于弹道的原因,国王甲会为国王乙挡箭,这时候还是倒霉的国王甲受伤。他血量为970,受到的伤害为30,即只受50%的伤害。(如下图)


以上是弓箭测试结果。

那么其他单位是否也是如此呢?

接下来我又用火枪手做了测试。该火枪手攻击力为17+83=100。(如下图)


火枪手直接攻击倒霉的国王甲,他受到100点伤害,伤害比例100%。(如下图)


火枪手又试图攻击国王乙【这里失败了几次,因为火枪的偏差有点大;不过一般情况下,单位密集地列队站立应该问题不大】但是国王甲还是仁义地为国王乙挡了一枪。但他仍然只受到50点伤害,伤害比例50%。(如下图)



以上是没有防御力状态下的单位挡枪情况。但是帝国时代中的大多数单位都是有一定防御力的;那么,对于有防御力的单位,挡枪伤害怎么计算呢?我想到了两个公式:
一:(攻击力-防御力)×50%
二:攻击力×50%-防御力
如果防御力不为0,那么这两个公式计算出来的结果完全不一样。【换句话说,就是那50%是乘在伤害上还是攻击力上了?】
举个例子,攻击力为60,防御力为10,那么用公式一算出来的结果是25,公式二的结果是20。

做完以上测试,国王甲非常不爽:“凭什么受伤的总是我?这次我穿上盔甲,看你怎么办!”于是他穿上了特制的御用铠甲,甲和盾+10


金鹿酱直接攻击带防国王的结果如下,国王受到50点伤害。


带防国王挡枪的结果如下,国王受到了25点伤害。


因此可以得出结论是伤害降低而不是攻击力降低了。
接下来是下面@Redapple 和@阴阳白鹤 提到的关于盟友和船等大物件抵挡伤害的问题,实验如下:
当玩家对黄绿国王都是敌对关系时,无论黄双绿方是何关系,都是前面的国王受伤。(绿国王:为什么我要替你背锅!)


当玩家对绿国王是盟友时,无论黄绿双方是何关系,金鹿酱的箭都会穿过去,命中黄色国王。(黄色国王:卧槽,到底还是轮到我膝盖中箭了,好痛!)


龟船这样的大体积单位也会影响抵挡的角度哦!



一个新的发现:高塔墙可以挡平射箭!【但是对于有一定弧度的子弹,那么只有一定概率可以阻挡】


【结论】如果远程单位的弹道平直且攻击单位与目标单位之间有其他敌方单位,那么这些单位会为目标单位抵挡攻击,且只受50%的伤害。

【挡枪系统的应用】以上结论,可以应用在一些战役尤其是RPG类的战役中,让一些单位交替挡枪,可以有效降低伤害总量。比如两个主角需要交替为对方挡枪才能通过某些区域;或者反派BOSS要受到致命一击的时候拉了一个喽啰当挡箭牌之类的。如果不用MOD,也可以借助火枪手、或者高地+箭塔等等方式实现。

希望能对大家有所帮助。












qs 发表于 2016-4-17 11:56:14

我们对帝国系统的理解,还是可以继续挖掘的啊

郁闷之神 发表于 2016-4-17 12:26:53

讲的很棒,希望能继续努力~

Boston30 发表于 2016-4-17 16:10:55

其实不止是平射,比如弓箭手没有研发指环时的抛射,假如没有命中指定目标却打错了人,也是按50%扣。

也不一定是“挡”,比如火枪发射,没打中正对面的,飘到了斜对面的人,那还是50%。

弩炮穿透,指定目标受100%伤害,轨道上其余被打到的单位也是50%。

阳明白鹤 发表于 2016-4-17 17:21:07

超赞的!@Howerds

焚风之爱莉琰 发表于 2016-4-17 19:35:19

Boston30 发表于 2016-4-17 16:10
其实不止是平射,比如弓箭手没有研发指环时的抛射,假如没有命中指定目标却打错了人,也是按50%扣。

也 ...

原来如此。
也可以这样想,未命中是人为难以控制的,而挡枪是可以人为控制的。或许可以利用这个阻挡的动作做一些什么?

郁闷之神 发表于 2016-4-17 20:42:40

风火之炎岩 发表于 2016-4-17 19:35
原来如此。
也可以这样想,未命中是人为难以控制的,而挡枪是可以人为控制的。或许可以利用这个阻挡的动 ...
虽然理论上可行,但实际上让玩家故意去挡枪还是很难操作的,毕竟子弹什么的移动速度很快。因此,在我看来,若是所有单位都处在移动过程中,想要实现该效果的可能性不是很高。

Redapple 发表于 2016-4-17 21:03:00

Boston30 发表于 2016-4-17 16:10
其实不止是平射,比如弓箭手没有研发指环时的抛射,假如没有命中指定目标却打错了人,也是按50%扣。

也 ...

所以我认为更贴切的称呼应该是偏射伤害……

Howerds 发表于 2016-4-19 10:06:04

阳明白鹤 发表于 2016-4-17 04:21
超赞的!@Howerds

{:146:}有何吩咐?

阳明白鹤 发表于 2016-4-19 21:40:18

如果挡剑的是大号单位呢,比如大船,大车,大建筑?

Redapple 发表于 2016-4-19 22:12:10

如果挡枪为盟友,且为平射,那子弹会Miss掉吗?……{:146:}

牧兔犬 发表于 2016-4-20 15:56:20

投射物是靠模型触碰来判定伤害的吗?

楼主一定是死宅

焚风之爱莉琰 发表于 2016-4-20 18:55:40

牧兔犬 发表于 2016-4-20 15:56
投射物是靠模型触碰来判定伤害的吗?

楼主一定是死宅

目前来看好像是按照单位的体积来判定的

死宅无误

焚风之爱莉琰 发表于 2016-4-20 21:06:46

本帖最后由 风火之炎岩 于 2016-4-20 21:24 编辑

Redapple 发表于 2016-4-19 22:12
如果挡枪为盟友,且为平射,那子弹会Miss掉吗?……
不会,目标单位会受伤。如果你对目标单位和阻挡单位都是敌对的,那么,无论那两个单位是何关系,都是阻挡单位受伤。
如果你对阻挡单位是盟友,那么箭会穿过去击中目标单位。

焚风之爱莉琰 发表于 2016-4-20 21:07:27

本帖最后由 风火之炎岩 于 2016-4-20 22:43 编辑

阳明白鹤 发表于 2016-4-19 21:40
如果挡剑的是大号单位呢,比如大船,大车,大建筑?
建筑不能挡。这也是帝国的一大槽点,为什么兵躲在建筑后面还是会被射中、被看到?船可以倒是,而且因为船的体积,所以抵挡范围更大。

焚风之爱莉琰 发表于 2016-4-25 21:21:28

新发现:高塔墙竟然可以挡平射箭!!!

春田一九零三 发表于 2016-4-29 21:13:43

{:149:}有趣的发现

欧阳龙 发表于 2016-4-30 12:23:57

风火之炎岩 发表于 2016-4-25 21:21
新发现:高塔墙竟然可以挡平射箭!!!

对的,只要99999帧隐形了,就可以模拟建筑挡枪的效果

焚风之爱莉琰 发表于 2016-4-30 12:47:26

欧阳龙 发表于 2016-4-30 12:23
对的,只要99999帧隐形了,就可以模拟建筑挡枪的效果

这么说来,可以用来做类似于护盾的效果?

howfunlyqq2 发表于 2016-5-16 02:17:11

建筑地基也可以挡枪。。我记得我用打包机咋别人正在建城堡的农民时。100%被地基城堡挡了伤害。。。真是蛋疼。。。
页: [1]
查看完整版本: 浅谈帝国时代中的挡枪系统