|
发表于 2008-6-7 21:21:36
|
显示全部楼层
我在以前考虑过一点点AI...
把一个单位分成3种动作,攻,防,特殊.
攻: 打人, 放技能
防: 逃跑,吃药,技能加血等
特殊: 移动到某个地方,买物品,给盟友加血,各其它人发信号等.
设想一个最简单的环境,一个英雄,没有技能,比如dota地图吧.
那么
攻: 1. A人而己
防: 2. 吃树或吃药 3 逃跑
特殊: 4.无事可做时要选择一条路进攻 5. 升级时要加技能 6. 钱多时回家买物品 7.有人打塔要飞过去.
先定义这7种事件的权重,再定义每一种关心的事件的重量,之后算出权重关系,再去执行.
比如,在和一个单位1V1中, 会关心2种事件,一个是当前双方血量比例,一个是交手近几秒内掉血速度.
比如,计算出来双方的血是: 敌: 500 我:400
掉血情况 : 敌: 50点/秒 我: 20点/秒
攻击权重为 1 则: 攻击重量 (500/50)*1=10
防守权重为1 则: 防守重量 (400/20) *1=20
则认为敌弱我强,杀之.
然而,如果这个英雄是一个法师呢,我们知道PK它不行,于是改变权重:
攻击权重为 1 则: 攻击重量 (500/50)*1=10
魔足够多,技能CD好: 防守权重为 2 则: 防守重量 (400/20) *2=40
魔不足,或是技能CD没好: 防守权重为 0.4 则: 防守重量 (400/20) *0.4=8
这样,开始会选择进攻,技能放完了就要选择逃跑了..
(这只是一个简单的东西,如果进攻,技能怎么用,如何逃跑,如何选路,怎么利用逃跑技能,如回城等...) |
|