鸑鷟67 发表于 2017-8-4 22:12:05

如何制作一个英雄的无敌技能?

我在制作一个英雄(设定是圣骑士之类的职业)的技能。
理想中的效果是:
回车,输入XX(数字),英雄变为无敌(血量0/X),过2秒,英雄恢复正常并且血量全满,技能冷却,冷却120秒可以再次使用。回车,输入XX……
我设置的触发是:
触发一:(不显示,开启,不重复)
条件1:AI信号XX,条件2:区域内的对象、Q区域,单位A,数量1。
效果1:改变目标生命值、英雄、-XX(此处XX为英雄血上限)。效果2:损坏目标、英雄、-1。效果3:改变目标生命值、英雄、1。
效果4:杀死对象、Q区域,单位A。效果5:激活触发、触发2。效果6:激活触发、触发3。
触发二:(不显示,关闭,不重复)
条件1:定时器、2秒。
效果1:杀死对象、英雄。效果2:损坏目标、英雄、-1。效果3:改变目标生命值、英雄、XX-1(此处XX为英雄血上限)
触发三:(不显示,关闭,不重复)
条件1:定时器、120秒
效果1:产生目标、位置为Q区域中一点,单位A。

测试结果是这个技能被做成了一次性的……用过一次后再输入31就无效了。{:146:}
所以我想请教一下各位dalao,麻烦大家看看这个触发的问题出在哪里。{:158:}

cxt 发表于 2017-8-4 23:04:18

啊!我测试了一下楼主这个玻璃人恢复正常单位的方法,完全可行!我是真的才知道玻璃人可以恢复原状!(以前我都是通过大幅度增加近防、远防和相应的特定类型防御+维持最低血线来实现伪无敌的效果)
楼主能否把对应的AI语句传上来看看?问题也许在那儿。

cxt 发表于 2017-8-4 23:29:29

本帖最后由 cxt 于 2017-8-4 23:32 编辑

用楼主的接收AI信号法确实有问题,在恢复后目标单位会反复闪烁,也就是说目标在循环执行从玻璃人到正常单位的效果,即使输入数字进入玻璃人状态,也会立刻变为正常状态,面板属性上显现不出来,因此导致楼主所说“无法使用第二次”的情况,楼主可以在发动技能的触发里添加一个送出交谈信息的语句,发动之后你发现交谈信息确实送出来了,也就是说问题确实出在AI上。
我对于“AI信号”这个条件不熟悉,平常没用过,但是我用双资源法可以确确实实让这个技能成功重复发动,大概触发如下:
(输入1发动)

触发1:
条件1 玩家x堆积属性黄金1
条件2 玩家x堆积属性石料255
效果1 效果2 效果3 无敌效果
效果4 激活触发 触发2
效果5 激活触发 触发4

触发2:
条件1 计时器 2秒
效果1-3 恢复效果
效果4 激活触发 触发3

触发3:
条件1 计时器 120秒
效果1 激活触发 触发1

触发4:
效果1 玩家x向盖亚进贡99999黄金
效果2 玩家x向盖亚进贡99999石料

均不循环,触发1开启,2-4关闭
玩家x使用的AI里包含以下语句:
(defrule
(taunt-detected 1 1);
=>
(acknowledge-taunt 1 1);
(cc-add-resource gold 1);
(cc-add-resource stone 255);
)


我是谁004 发表于 2017-8-4 23:55:56

首先,ai信号是一次性的,只要激活了就一直保持激活的状态,所以可循环使用的就不能以它为条件了,得用资源值之类的条件(ai可以改变自己的资源值)。
其次,从无敌状态恢复没必要那么复杂,1.4版直接用“改变单位生命值,数目2”就可以达到不超上限的增加生命值效果,在还原过程中只需要一个效果,即数量为0,就会让无穷大的生命值截断,变成最大生命值。
此外,转变为无敌的效果0也不需要“-XX”,直接用“数目1,数量0”就可以了。当然,效果3的数量不能为1,而应为原来的最大生命值。
页: [1]
查看完整版本: 如何制作一个英雄的无敌技能?