找回密码
 立即注册
查看: 6701|回复: 20

亡者之夜II中怪物的攻击判定

[复制链接]
发表于 2009-7-26 18:47:40 | 显示全部楼层 |阅读模式
首先需要说明的是,亡者之夜II的怪物并没有自定义的AI,也就是说J里面并没有特别对怪物设定单独的AI,所以所有怪物的攻击判定是按照魔兽默认的攻击顺序来进行的。

魔兽默认的攻击顺序优先级:
1、打正在攻击自己的单位
2、打离自己最近的单位
3、打血最少的单位

这是亡者里怪物攻击的最基本原则。

其次,我需要先列举一些WE设置里的一些项目的说明。

主动攻击范围 : 单位会对该范围内的敌人进行主动攻击. 另该值还起到限制射程的作用,单位射程不会大于其主动攻击范围.同时也影响到一些自动选取目标技能的施法距离,例如:召唤骷髅.
最小攻击范围 : 单位无法对小于该值的范围内的敌人进行主动攻击.
攻击 - 攻击范围 : 相当于射程,当如果主动攻击范围小于该值,则会取主动攻击范围作为射程.
攻击 - 攻击范围缓冲 : 近战单位攻击移动中的单位,因为发动攻击需要时间,目标可能跑出了射程以外,该值表示允许的缓冲范围值,只要目标没跑出该范围(射程+缓冲范围)则仍会受到伤害.

所谓怪物的视野是一个不确切的描述,因为视野是为玩家准备的,以便你能“真正的看见”地图上的东西。正确的描述就是主动攻击范围。除了追踪者和嗜血猎食者的主动攻击范围为4000外,其他的所有怪物的主动攻击范围为19999。而所有的怪物的最小攻击范围为0。

所以,亡2里所有怪物的攻击判定都一目了然了。19999的范围几乎是全地图了。当刷波时,怪物被放置到地图上以后,根据主动攻击范围的设置,加上魔兽默认的攻击顺序,怪物先找攻击自己的单位,没有就找离自己最近的单位,最后找血少的单位。

由于除侦查和外出埋包的火兵以外,所有玩家对于怪的相对位置基本一样,且侦查离大队伍的距离相对于怪物离队伍的距离有时候可以忽略不计,所以怪物会直接奔向大队伍。而通常指挥会要求队伍里某个人不读军衔而保持低血量,以保证在外侦查的安全,实际是在一个相对距离的情况下,怪物根据判定1和2,通常会直接找队伍而不去找侦查,且在3的判定下,侦查相对血量高而被攻击的概率小。

这就能解释一个问题,假设侦查在跑到4点方向高地旁的小路时刷波,上下两个路口都出怪,通常是去找侦查,而侦查在没有火力掩护的情况下通常必死的原因。因为在此时怪物离侦查的距离比离队伍的距离小,所以就算队伍存在血量少的情况,怪物也只会直接找侦查而不攻击队伍。

同时也说明一个问题,为什么刷鸟时侦查一般需要归队,因为鸟是直线飞向目标,所以此时存在侦查的位置在鸟和队伍之间的情况,此时侦查只能成为鸟的食物。

再说说追踪狗。由于4000的主动攻击范围设置,所以在队伍超出其攻击范围时,它不会一出来就直奔大队伍,此时表现出来的就是在地图上随机的游走(根据J中的设定,每20秒在地图上随机选择一个点并执行攻击的命令,相当于对战中的A过去)。当落单的侦查或者大队伍出现在4000攻击范围内时,追踪狗就会直奔目标。当然,4000的范围超过了1800的视野范围,所以给人一种追踪狗会直奔落单的侦查的错觉。

以下蓝色部分不具有理论支持,仅为猜想:
为什么在攻击判定下,被攻击的怪物行进中被单位挡住时会破坏原有的判定攻击被挡住的单位呢?可能是被阻挡的时候攻击判定会进行重新设定,此时优先攻击离的近的单位。这个有条件的话可以在对战中进行如下设定。玩家A控制近战单位1,用A键攻击某一点。玩家B控制远程单位2攻击单位1,此时根据攻击判定单位1应该会去攻击单位2,但是此时玩家B用单位3手动控制用走Z字挡住单位1的行进路线,若单位1放弃攻击单位2改为攻击单位3,则说明我的假设是正确的。

热狗的帖子里提到没子弹还能拉BOSS的问题。根据JASS里的设置,当你子弹数为0时单位的命令为:
1、    停顿0.1秒。
2、    执行攻击命令。
3、    执行换弹命令。

要注意的是,这个攻击命令并不是说真的进行攻击,而是发起这个指令,但由于子弹数为0,并不能正常的执行出攻击兵伤害的命令。但是还在攻击是事实,这也是为什么重用A键前进时没子弹在换弹时不会放弃攻击继续前进而是呆在原地的原因。至于这样能不能拉到怪,让有心人去验证吧。

其实亡者里并没有AI设定,所有的数据都在上面罗列出来了,就这么简单,至于游戏里出现的各种情况,请自行推理。

最后说个题外话。

为什么亡者II里没有出现怪物的攻击miss?
僵尸攻击范围为100,攻击范围缓冲为200,动画伤害点及动画回复点为0.3秒。也就是说,在僵尸发起攻击后,你要在0.3秒内跑出100的范围才能出现miss,也就是说你的速度需要达到333以上才行,所有兵种的基本速度不超过200,加上ZT加上勋章、军衔的奖励,最高也只能达到375,算上每个人的反应时间,要在僵尸作出攻击动作后跑出100范围让僵尸出现攻击miss的可能性几乎为0。胖子的攻击范围和攻击范围缓冲都为200,那么也许能出现miss,这点待验证。关键是你能在胖子出现攻击动作的0.5秒内作出反应开始跑吗?

[ 本帖最后由 YC 于 2009-7-26 18:49 编辑 ]
 楼主| 发表于 2009-7-26 18:57:01 | 显示全部楼层
其实,亡2的怪里唯一设定了攻击AI的就是小强,当它被攻击的时候才会可能产生触发造成狂暴。在1.4里老纳又对这个设定做了加强,会有一定概率对8个方向释放地刺。

其实,在老纳的只言片语加上自己的长期判断作出那么多的结论,老鼠还是很用功的。[em25]
回复

使用道具 举报

发表于 2009-7-26 19:18:23 | 显示全部楼层
看了你的帖子
你对于怪物的攻击判定的解释与老鼠说的并无差异
只不过我认为这是wz设定的
你说这是魔兽本身具有的
你说我完全错了,我看不出来我是完全错了,对于怪物的攻击顺序,我还是说对了的。
你对于追踪狗的解释,有一点无法解释
为什么有的时候追踪明明追了过来,一个zd或者一个照明它又跑了,既然已经A到了单位,怎么又跑了?我想追踪的模式恐怕没你说的这么简单吧。
不过总体来讲,读了该贴让我受益匪浅,谢谢LZ的分享。
回复

使用道具 举报

发表于 2009-7-26 19:27:52 | 显示全部楼层
无子弹拉怪现象我很早就说过了,确有其事。另外胖子miss出现次数很多了,但是miss后还是会出现骨折等状态,只是不少血。,
回复

使用道具 举报

发表于 2009-7-26 19:29:35 | 显示全部楼层
追踪狗可能是攻击重新判定在了队伍身上,所以指示后逃跑了。
回复

使用道具 举报

发表于 2009-7-26 20:46:26 | 显示全部楼层
好像第一次看到YC的技术贴啊[em100] 支持一个。

我还有疑问

1、打正在攻击自己的单位
2、打离自己最近的单位
3、打血最少的单位
血少到一定程度的时候,怪会不顾一切攻击那个单位,这个究竟是以单位血少于一定数量还是以和其他单位血量差值达到一定值来判断的?而且通常,队伍里有人控血时虽然怪还是可以被其他人拉走,但怪更趋向于攻击队伍而不是侦查。

另外,经常看到狗从队伍旁边穿过而不攻击队伍,如果狗进入4000的攻击范围就执行攻击命令的话怎么解释这个现象。AND我一直最搞不懂的,狗开始追踪侦查以后被指示有一定几率逃跑,这是什么原因?
回复

使用道具 举报

 楼主| 发表于 2009-7-26 20:52:06 | 显示全部楼层

回复 3# godlikesme 的帖子

你要注意,我说的是在条件1和条件2不成立的情况下或者对所有兵种来说条件1和条件2相同的情况下才会出现找血少的单位。而你说的是有血少的单位时怪就会找这个单位,这完全是2种概念。

怪一出来时,通常不在玩家单位的攻击范围,所以条件1通常是不成立的。所以默认情况下,怪物是找距离最近的单位。

当然,你说的如果侦查不攻击鸟,鸟就会从他头上飞过而不攻击的情况。大家都知道在拉胖子的时候,或者是在溜狗的时候,你在攻击一个胖子,其他胖子也会转向攻击方,或者点狗的时候,其他的僵尸也会转向攻击者,我可以设想魔兽的默认攻击顺序不是对单个个体产生的作用,而是对进攻的对方单位产生的共同作用(待验证)。也就是说,通常刷鸟的时候,我们还会在攻击附近的怪,所以根据判定,鸟选择直接飞向正在开火的队伍而不是在外找物资的侦查,一旦侦查开枪,则鸟就会掉转枪头开始攻击侦查。这也能很合理的说明为什么侦查被堵在高地上以后,你攻击一个怪,其他怪就会追侦查去。而就算被怪攻击少了血,一旦外围有队友攻击怪,那些怪会放弃追侦查转向队伍前进。

我说你基本是错的,就是因为你们认为亡者里存在独立的AI设定,这会让你们忽视魔兽的AI而进行一些猜想,所以就算你们一些内容也许想对了,但实际上是从错误的角度出发想到的。程序的东西是死的,固定的,人的思维是多变的。人会根据一些现象去猜测一些问题,比如你们认为飞行怪的高度导致视野增大而增加了它们的攻击范围,实际是它们的主动攻击范围本来就大到足以覆盖地图。你们的臆测也许符合了一些现象,看起来很对,实际上确实错误的,容易让人产生错误的判断:那我们站高地上,怪物的视野是不是就变小了?实际上没变。

其实一些程序的设定可能很简单,但真正运行的时候可能会很复杂,多种条件同时出现时可能会这样发生,也可能会另一种情况出现。比如我说过,每隔20秒,怪物就会重新在地图上选择一个点并发起攻击命令,这个可能在地图里表现不出来,可以设想,在正常对战中,你控制英雄追一个兵时,只要攻击范围许可,就算你A到地图的任何一个地方,英雄都会选择攻击兵,而不是选择移动到那个点。但是这每一次攻击指令的下达很有可能会造成一个判定的变更,或者一个怪物攻击动作的停顿,这些都是未知的、不可预测的。所以你很难用普遍的现象来解释一些特例,也不能用一个攻击判定来概括亡者里的所有攻击现象,你也不能在进行游戏的时候DEBUG,确定事件发生时的临时状态

但是,亡者里没有怪的AI设定(当然也有可能是我疏忽了没找到),所以在你们的意识认知下的所有判断,出发点就是错的,且你们是在用现象来迎合假设,而不是用理论来解释现象,所以我才会说你们的解释基本是错的。

当然,热狗可以在我提出的这些信息的基础上重新组织一下你的那篇文章,我说的也不一定全对,也欢迎任何人提出更新的理论基础来支持大家的游戏实践。

[ 本帖最后由 YC 于 2009-7-26 20:58 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2009-7-26 20:54:04 | 显示全部楼层
可以看到亡2的AI设定几乎是没有(唯一发现的就是对小强被攻击时的AI设定),如果有人想更新亡者的话,其中一个途径就是改进或者添加亡者怪物的AI设定,变更原有的攻击判定,好让亡者产生新的变化。
回复

使用道具 举报

发表于 2009-7-26 23:18:08 | 显示全部楼层
技术贴写的相当不错啊,虽然没有很大的意义,至少我觉得对亡者游戏技术提高意义不大。


另外:你有时间长篇大论,没时间给我整我要东西么,我曰你丫的……

[ 本帖最后由 dari 于 2009-7-26 23:20 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2009-7-26 23:20:03 | 显示全部楼层

回复 9# dari 的帖子

啊,啊,我是顺道路过的啊~~~[em16]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|夜天使联盟论坛

GMT+8, 2025-9-23 06:44 , Processed in 0.083208 second(s), 17 queries .

Powered by Discuz! X3.5

© 2005-2025  技术支持 by 夜天使联盟.

快速回复 返回顶部 返回列表