找回密码
 注册
搜索
查看: 715|回复: 6

提供一个sx1 2个killer不同步的解决思路

[复制链接]
门派:不明
发表于 2013-7-7 14:11:51 | 显示全部楼层 |阅读模式
本帖最后由 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:}
门派:不明
发表于 2013-7-7 14:32:37 | 显示全部楼层
这个问题好像已经解决了,你费心了。
发表于 2013-7-7 14:37:04 | 显示全部楼层
这个问题N年之前就解决了               
门派:不明
 楼主| 发表于 2013-7-7 15:26:00 | 显示全部楼层
哦,反正我自己是最近才琢磨出来的,以前没怎么碰到这个问题,而且我的机器人本来确实也没有针对这个问题的解决方案,大家都用上很先进的机器人了啊,看来我是后知后觉了
门派:不明
发表于 2013-7-7 17:06:52 | 显示全部楼层
呵呵,楼主很用心
经常看到楼主发些很有用的东西
支持下
门派:不明
发表于 2013-7-7 22:43:16 | 显示全部楼层
  其实楼主是很用心的玩家  要顶下
门派:不明
发表于 2013-7-8 20:56:59 | 显示全部楼层
其实,这个问题稍微先进点的rbt早已经解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-27 04:18 , Processed in 0.039182 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表