类幸存者游戏自定义AI教程四之玩家角色AI
这期是自定义AI最后一期,给角色添加AI。
举个例子,我们想实现一个玩家每隔5秒向周围敌人发射火球的技能,大家可能会用周期节点或者添加BUFF来实现。
这期提供另一种解决方案, 用AI来控制角色施放特定类型的技能。
优势:
1 更方便,技能本身就是个普通的主动技能。
2 假如你有暂停游戏不暂停通讯的需求时,周期节点其实是暂停不了的。BUFF有另外一个问题执行周期的时间没办法动态修改,例如我一开始添加一层BUFF每5秒执行一次的BUFF,中间想改成成3秒或2秒,需要先重新添加这个BUFF才行。相对麻烦。
3 更灵活,周期节点和BUFF这两种还有个问题,就是在没有敌人或者技能攻击范围不够的时候,还是会执行。例如当前没有敌人的时候,周期函数还是执行了,进如CD状态,下一秒敌人出现,相当于白白浪费了技能。
4 性能更好,这点没测试过,凭感觉哈哈。
以视频中的火球为例
火球设置为无目标,无动作,在技能生效时 去搜索单位。
技能标旗可以参考下面的图
AI参数表中的参数(key)解释
__ai_target :当前单位锁定的敌人,类型:单位。用于单位进行追击和攻击
__next_skill : 单位将要释放的技能,类型:技能。用于单位释放技能
角色AI有四个行为表,与其他不同的只有最后两个。
找到准备施放的技能:
1 如果有准备施放的技能就不找了
2 遍历单位身上所有的技能,找到玩家技能类型是1的(1是我设定的周期伤害型技能)且冷却好的技能
3 如果找了,就根据施放范围开始寻找目标(施法范围可以是技能单独施法范围,也可以是角色的施法范围,根据需求来决定要用哪种)
4 找的目标不为空则设置当前单位锁定的敌人和单位将要释放的技能,跳出循环。
5 进行一些判断 如果目标符合条件则跳出当前AI行为表,执行下一个行为表,不符合条清空当前单位锁定的敌人和单位将要释放的技能,结束当前AI行为树,开启一下轮行为树
找到技能就施放:
这个行为表,删除掉多余的,让AI所属单位施放无目标技能并清空单位将要释放的技能。就完成了。
这样玩家角色的自定义AI就完成了,大家可以根据自己需求在进行修改。
类幸存者AI的教程到此完结