找回密码
 点一下
查看: 1457|回复: 11

减速塔AI系统(求算法)

[复制链接]
发表于 2009-7-18 01:22:48 | 显示全部楼层 |阅读模式
减速塔需要和一般塔不一样的AI系统(求算法)

它们的攻击优先顺序一般为(射程内):
没有被减速的+最近的
减速buff剩余持续时间最短的
血最少的

现在求一套有效的减速塔AI系统 移植性什么的无所谓 思路最重要
发表于 2009-7-18 02:45:45 | 显示全部楼层
集火目标最先
对于没有buff的血量高、伤害大、移动速度快的优先,其中血量高优先级大于伤害大大于移动速度快
对于有buff的持续时间短的优先
大概罢恩恩……
回复

使用道具 举报

发表于 2009-7-18 06:50:29 | 显示全部楼层
问题的所在是你如何获取一个单位的BUFF可持续时间?
回复

使用道具 举报

发表于 2009-7-18 11:17:01 | 显示全部楼层
引用楼主n多无名人士于2009-07-18 01:22发表的 减速塔AI系统 :
减速塔需要和一般塔不一样的AI系统

它们的攻击优先顺序一般为(射程内):
没有被减速的+最近的
减速buff剩余持续时间最短的
.......

就按部就班得来呗

首先获取攻击目标后触发

选取射程内所有的敌军单位,设为单位组A

再进行分类,有BUFF的加入A1组,无BUFF的加入A2组

接着,如果A2里有单位,做一个点到点判断,选取到最短距离单位,射击;

如果A2内无单位,就再检测A1.

这里麻烦点的是BUFF剩余时间,这里先采用自定值法

建立一个新触发,当单位被减速技能作用时,每秒设定其自定值+1,到BUFF上限为止,清0.

还要记得加上,检测BUFF情况,如果没了,也要及时清0.

有了这个触发,检测A2,首先里面单位数>0,然后就做它们之间自定值比较,最大值单位,射击;

最后一步检测,生命值最低

已知A2里有单位,就执行A2了;A2没有,就执行A1了;

因为,单位要不有BUFF,要不就没有。

所以,你这个执行顺序是不是有问题?根本轮不到最后一个最小生命判断。

或者,我理解错了你的意思。

大致先说这些
回复

使用道具 举报

发表于 2009-7-18 11:27:18 | 显示全部楼层
如果LZ的第一条检测是,没BUFF的,且必须最近,那第三条就有意义了

但我感觉,这样的优先设计,开销大不说,而且效果也存疑问。特别是塔的范围不大的话,最近这种检测意义很小。

就个人理解,减速塔的优先权,是:
攻击范围内:
1.生命低于塔一次攻击的单位,任意
2.无BUFF的单位,任意
3.有BUFF的单位,任意

这样开销减少,效果可能更好

个人建议,呵呵
回复

使用道具 举报

 楼主| 发表于 2009-7-18 14:04:05 | 显示全部楼层

Re:减速塔AI系统

现在的问题是性能问题...
至于buff的时间 只是随便提到一下理论上应该判断
回复

使用道具 举报

发表于 2009-7-18 14:29:19 | 显示全部楼层

Re:Re:减速塔AI系统

引用第5楼n多无名人士于2009-07-18 14:04发表的 Re:减速塔AI系统 :
现在的问题是性能问题...
至于buff的时间 只是随便提到一下理论上应该判断
这个有太多性能问题么
去掉BUFF时间
这个AI部分不是满简单的么……

自认写的AI比这个复杂不少
但运行起来也就那样,屏蔽掉也还差不多

至于算法,我在某楼提的算法有什么问题么
回复

使用道具 举报

发表于 2009-7-19 04:27:45 | 显示全部楼层
楼主要做什么?

我也要做减速塔AI。
回复

使用道具 举报

 楼主| 发表于 2009-7-19 17:49:15 | 显示全部楼层
实际上niqize你写的虽然很用心
但是一般来做没有逃脱单位组的话我认为性能上不能算优秀 而且这样用单位组来判断是WEer都会用的 所以我也没有对你的回复进行讨论

而且之前我就采用的 单位组判断法

T事件为单位被攻击  
C如果单位有buff的话
A首先判断周围有没有不带buff的
如果没有了就随机攻击一个周围的 有的话

只不过个人认为这样还是太简单了  希望得到一套高智能高效的AI算法
回复

使用道具 举报

发表于 2009-7-19 18:02:07 | 显示全部楼层
引用第8楼n多无名人士于2009-07-19 17:49发表的  :
实际上niqize你写的虽然很用心
但是一般来做没有逃脱单位组的话我认为性能上不能算优秀 而且这样用单位组来判断是WEer都会用的 所以我也没有对你的回复进行讨论

而且之前我就采用的 单位组判断法

.......
那个也的确只是常规写法

希望你能举个类似例子?

不用单位组。

或者你不反对单位组,只是要效率高。
回复

使用道具 举报

发表于 2009-7-20 14:55:52 | 显示全部楼层
只要选个没有被减速的单位就好了吧。。
回复

使用道具 举报

 楼主| 发表于 2009-7-23 20:54:51 | 显示全部楼层
好吧 不得已用单位组也可以
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-7-22 02:24 , Processed in 0.177740 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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