|
本帖最后由 xtstar@tx 于 2013-7-7 14:17 编辑
做SX1,机器人的判断思路往往是这样的流程:
Killer来了,先id here,抓killer的id name然后叫杀,杀完了挨个点名,killer1死了就kill killer2,killer2死了就kill killer1,直到出现“这里没有这个人”的描述,机器人判断killer都杀完了,于是get xin走人。
这种判断逻辑如果2个killer同时到达,那么一定是同时被击杀,机器就不会出错。然而也有少量的情况是第二个killer会慢半拍甚至一拍才到,这时候就有问题了,尤其对许多拥有高合气首饰的玩家,第一个killer几乎是瞬秒的,这时候第2个killer还没出现,机器人在杀掉第一个killer之后会自动叫杀第2个,可第2个此时还没出现,根本就没有正确的id name,于是就出现“这里没有这个人”的描述,这样就形成一个误触发,并没有杀掉第2个killer,而机器却判断为2个都杀光了,于是get xin走人,由于pfm之后往往是有短暂的行动busy的,所以需要等busy过了才能get xin,就在这个当口,killer2杀到了,这时候你针对killer2的触发已经关闭了,于是。。。悲剧了。要么你这时已经走起alias准备去送信,于是Killer2一路在你屁股后面追杀,在你准备渡河渡江的时候猛揍你,要么你刚要走killer2就到了,于是你被一把拦住,一顿好打。
解决这个问题其实也很简单,我的思路是设置一个抓killer数量的判断变量,比如叫做killer_num,当第一个killer出现的时候“小子乖乖把密函叫出来吧什么什么”,这时killer_num=1,表示来了一个killer,然后用“糟糕,又有一个人冲了上来”做触发,killer_num=2,当killer1被放倒之后,做一个killer数量的判断,#if @killer_num=2 {kill killer2},有了这个判断之后,如果killer2晚到而killer1已经被杀,因为killer_num没有等于2,所以就不会执行kill killer2这个命令,而是无命令的发呆状态,过了一会,“糟糕,又有一个人冲了上来”,killer2来了,此时你的kill_killer(控制战斗环节的触发项)触发项还没有关闭,而且wimpycmd也没有重设,于是killer2正常放倒,这时候再判断kill killer1,这里没有这个人,机器就正常跑了。
当然了,如果第二个killer一直没出现,那你就等到天荒地老吧{:soso_e120:} |
|