杰拉鲁星人 发表于 2018-6-20 14:28:02

如何制作一个不断跟随大部队的攻击AI?

本帖最后由 杰拉鲁星人 于 2018-6-20 14:29 编辑

我个人摸索的预期效果:
该英雄有两个光环:
第一个光环是给周围友军一个行为,每个持有该行为的单位,在选择攻击目标时(无论是否抵达或开火,只是选择目标),会对该目标提前施加BUFF,施加BUFF层数取决于该单位的补给数(越大的单位权重越高)

第二个光环是周期性扫描全图敌人,对持有该BUFF层数最多的敌人进行攻击

问题:
1:选择目标就加BUFF这一逻辑怎么做?
2:以上方案能否有更节省运算量的优化?


杰拉鲁星人 发表于 2018-7-9 21:49:46

e…………好像沉了

yxxiaobin 发表于 2018-7-10 18:25:06

如果你是用触发器发布的指令,可以直接获得某个单位周围有多少单位, 如果给每种单位一个权重值,就能求出这一团单位的权重。然后选择权重最高的一团就好。

yxxiaobin 发表于 2018-7-14 20:48:22

本帖最后由 yxxiaobin 于 2018-7-14 20:51 编辑

就是不用加buff啊。
比如让单位U跟随玩家P的大部队,制作的大致思路如下:
预先定义每种单位的权重,最好是一个实数值,如果认为都一样,也可以默认为1。然后:

定义变量:预选目标<单位>
当前权重<实数>
最大权重<实数>
其他略

动作:
选取玩家P的所有单位形成单位组Ug1
挑选Ug1中的每一个单位U1
      选取被U1周围一定范围内的玩家P的单位形成单位组Ug2
      挑选Ug2中的每一个单位U2
                将U2的权重增加到“当前团队权重”
      如果当前团队权重>最大团队权重,那么
                将当前团队权重设为最大团队权重
                将U1设为“预选目标”

这样,当循环结束后,预选目标记录的单位就是我们想要的权重最大的目标。考虑到单位很多很密的情况下,套嵌循环可能会超上限,所以建议把循环做成单独的动作组,并启用独立现成,然后调用它就行了。

               


页: [1]
查看完整版本: 如何制作一个不断跟随大部队的攻击AI?