那么,我们来看看无名杀AI编写的难点——主动技能的AI该如何写:
无名杀主动技能的AI格式是ai:{xxx:xxxx,yyy:yyyy},这种key:value的格式,也就是说,主动技能的ai本身就是一个对象,这个对象包含了很多key,通过key的value来控制各种效果,学主动技的AI,也就是学各种key的用法,这么说是不是好理解一点了呢
。
比如某一个主动技的ai这么写:
ai:{
expose:0.3,
threaten:8.8,
order:7,
result:{
player:1,
},
}
来让我们逐个看看这些key里有些什么好东西来控制这个技能
expose即身份暴露度,使用这个技能会给使用者加上0.3的身份暴露值(当暴露值为1时意味着所有ai完全明确你的身份),什么技能需要加这个key呢?比如晋贾充的“凶竖”就是必须得加的,因为凶竖是一个攻击技能,但他不会通过卡牌造成伤害,所以单独只发动这个技能,AI无法识别到技能使用者其实是你的对立面,达不到实际的效果(实际上别人对你使用凶竖,必定应该是你的对立面)
threaten即嘲讽值,嘲讽值越高的人越会成为AI优先攻击的对象,比如技能“英姿”就有这么个标签,通常你觉得你的技能很厉害,而被打又不会对对面造成什么负面影响时,可以给自己的技能加这个标签,模拟现实中技能厉害但没什么防御的武将很容易挨揍的情况
。当然threaten还有些其他的用途,因为threaten高一定程度代表拥有这个技能的武将“较为厉害”,所以“放权”之类的技能选择目标时也会参考目标的threaten值优先放权。
上面两个标签虽然有用,但是并不影响技能的实际使用,就算你不写也不会有大问题,但是下面两个标签就直接决定你技能能不能正确释放了。
order这个技能释放的时机,简单点说,值越高越优先放,order:7的话,基本属于AI装完装备就要开始使用技能了,如果order是10基本上一到可以用的时机就会立即先放技能,而order为1的话就是可以用技能的最后时机去用这个技能了,这个order标签是必填的,否则技能无法正常释放。
result,这个标签影响AI是否使用技能,里面又有player和target两个子标签。技能不需要选择目标时,只需要写player标签,返回值大于0,AI就会在order规定的时机发动技能,返回值小于等于0就不会发动技能。如果技能需要选择目标就用target标签,target返回正数选择队友发动,返回负数选择敌方发动。
无名杀主动技能的AI格式是ai:{xxx:xxxx,yyy:yyyy},这种key:value的格式,也就是说,主动技能的ai本身就是一个对象,这个对象包含了很多key,通过key的value来控制各种效果,学主动技的AI,也就是学各种key的用法,这么说是不是好理解一点了呢

比如某一个主动技的ai这么写:
ai:{
expose:0.3,
threaten:8.8,
order:7,
result:{
player:1,
},
}
来让我们逐个看看这些key里有些什么好东西来控制这个技能

expose即身份暴露度,使用这个技能会给使用者加上0.3的身份暴露值(当暴露值为1时意味着所有ai完全明确你的身份),什么技能需要加这个key呢?比如晋贾充的“凶竖”就是必须得加的,因为凶竖是一个攻击技能,但他不会通过卡牌造成伤害,所以单独只发动这个技能,AI无法识别到技能使用者其实是你的对立面,达不到实际的效果(实际上别人对你使用凶竖,必定应该是你的对立面)
threaten即嘲讽值,嘲讽值越高的人越会成为AI优先攻击的对象,比如技能“英姿”就有这么个标签,通常你觉得你的技能很厉害,而被打又不会对对面造成什么负面影响时,可以给自己的技能加这个标签,模拟现实中技能厉害但没什么防御的武将很容易挨揍的情况

上面两个标签虽然有用,但是并不影响技能的实际使用,就算你不写也不会有大问题,但是下面两个标签就直接决定你技能能不能正确释放了。
order这个技能释放的时机,简单点说,值越高越优先放,order:7的话,基本属于AI装完装备就要开始使用技能了,如果order是10基本上一到可以用的时机就会立即先放技能,而order为1的话就是可以用技能的最后时机去用这个技能了,这个order标签是必填的,否则技能无法正常释放。
result,这个标签影响AI是否使用技能,里面又有player和target两个子标签。技能不需要选择目标时,只需要写player标签,返回值大于0,AI就会在order规定的时机发动技能,返回值小于等于0就不会发动技能。如果技能需要选择目标就用target标签,target返回正数选择队友发动,返回负数选择敌方发动。