找回密码
 点一下
查看: 1029|回复: 6

关于电脑的智能模拟

[复制链接]
发表于 2009-9-3 16:19:55 | 显示全部楼层 |阅读模式
同样是英雄无敌的,对战的系统已经做好了,包括反击和弓箭手被阻挡,行动力的顺序也没问题,但是这个时候是2支部队都是我控制的,于是我想做一组野怪,需要设计下他们的智力。当然不能像HERO3里那么猥琐的人工智能,最起码要能战斗的

一开始 这么做的,轮到某个单位后,判断他的主子是不是中立敌对,如果是,就进入控制脚本,本来开始就简单点弄,让他随机攻击我方的一个单位,随机选择我方一支部队,然后移动攻击到那个点,在此之前把它的主动攻击范围用T改为500,我想他在向目标走去的过程中,看到谁了就转换目标砍他。结果实战了一次,实在是不能理解,先不说他们很多次舍近求远的砍,有时候甚至紧贴我的部队了,就是不动刀子,只往我的憎恶身上蹭。然后我改为攻击地面,还是一样的效果。。。最后我烦躁了,改为攻击目标,那样他们就砍得很犀利了,但是如果他们和目标之间有敌人,他们也不会绕弯,宁可卡在那,也要去砍他的目标,  真是无语,于是我就关电脑了~~来这里救助下~~~~

另外,所有的单位的主动攻击范围我都改为1了,是为了避免出现乱动的情况,如果是电脑的单位 就在控制之前改回了500.

另外,单位的移动距离 就和DOTA里血魔的大一样,移动一段距离就动不了了,攻击的伤害虽然是模拟的,但是最开始那下攻击是实际的命令,应该不会影响AI吧?
发表于 2009-9-3 16:22:53 | 显示全部楼层
这个是高难度。
呼叫猪头。。
回复

使用道具 举报

发表于 2009-9-3 17:12:39 | 显示全部楼层
“另外,所有的单位的主动攻击范围我都改为1了,是为了避免出现乱动的情况,如果是电脑的单位 就在控制之前改回了500.”
这个明显有问题。
主动攻击范围变成1…………单位还怎么打?
如果你想控制单位能否攻击,可以尝试以下代码:
[jass]
call UnitAddAbility( <unit>, 'Abun' )
//禁止攻击
call UnitRemoveAbility( <unit>, 'Abun' )
//禁止后再恢复攻击。
[/jass]
要不然……主动攻击范围1的话,单位在移动中(也就是你放弃对其控制之后)由于主动攻击范围是1,所以单位除非有和他距离是1的敌对单位,否则他只能向你的目标攻击过去。
这样问题应该就可以了。
回复

使用道具 举报

 楼主| 发表于 2009-9-3 21:41:59 | 显示全部楼层
不,当轮到他行动时,主动攻击范围已经用T变成500了~~~但是还是没有效果。。

哎 好吧 我明白把图拿上来
回复

使用道具 举报

发表于 2009-9-3 22:27:15 | 显示全部楼层
单位编辑器里设置的主动供给范围会影响设成,触发设置的不会

小血也说了,用兽族地洞的那个技能吧
回复

使用道具 举报

发表于 2009-9-3 22:29:18 | 显示全部楼层
既然伤害是模拟的……
那么整个攻击过程也模拟吧
自己选取路径,然后播放攻击动画就行
反正魔法门不需要考虑伤害和动画的同步
仔细点说
就是
比如你需要某个单位进攻
那么就选一个路径走过去
然后播放攻击动画
然后计算伤害……

关于移动路径
你可以这样选择
类似魔法门
将战场分为M*N的格子
然后从攻击单位开始
计算出坐标差(横向差多少格,竖向多少格)
然后按照直线方向计算
(横向差与纵向差的比值,横向移动几个,竖向移动几个,例如如果横向为7格纵向围3格,那么大约就是一比二的关系,
我们按照使余数最小的方法来走,那么就是横计算2纵计算1,横计算2……这样的方法)
每个格子是否能通行
如果不能,那么就拐弯,
拐弯的算法你可以自己规定
是向哪个方向绕
用个点数组记录下路径上的所有格子
按顺序发布移动命令或模拟移动依次到格子的中心
最后走到目标砍一下就行了
回复

使用道具 举报

 楼主| 发表于 2009-9-4 09:39:45 | 显示全部楼层
谢谢大家了 已经解决掉了,其实我想复杂了,该它行动时就A过去好了 那么麻烦干嘛
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-22 04:23 , Processed in 0.034917 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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