找回密码
 点一下
查看: 682|回复: 1

单位获取特定buff游戏弹出的问题

[复制链接]
发表于 2012-2-16 19:54:55 | 显示全部楼层 |阅读模式
我做了一个技能,单位每发布一次指定点/单位/物品命令都对它发布一次新的干扰命令,间隔时间0.05秒。虽未完全测试,但是单位在获取BPSE时可能会出现游戏弹出的问题,可以肯定受到战争践踏是会弹出的,风暴之锤和重击也可能弹出,其他情况和是否其他buff也有此问题尚不得知。我检查了这个技能发现只能举手提问了。
Angles.w3x (24 KB, 下载次数: 4)
 楼主| 发表于 2012-2-18 04:44:36 | 显示全部楼层
感谢“GA版 遗失的记忆”以及头目大人的帖子http://bbs.islga.org/read-htm-tid-11002.html,只须加一个条件GetIssuedOrderId()!=851973问题即解绝了。851973的确是个很有意思的隐藏命令,我经过测试发现OrderId2String(851973)返回的是null,此外还有更有趣的现象。单独注册EVENT_UNIT_ISSUED_POINT_ORDER的单位在干扰光环下获取BPSE时眩晕且不能移动,而单独注册EVENT_UNIT_ISSUED_TARGET_ORDER的单位在干扰光环下获取BPSE时假晕且不用DropOrder也可以直接响应移动命令中断851973的效果,测试这里的TARGET就是眩晕来源,两种情况下游戏都不会出错。通过用马甲作瞬时眩晕来源进一步发现这个TARGET可以为空,但这时不能假晕。已经可以确定851973是一个指定单位命令,问题的另一个解决办法或许更加可靠,就是提前删除标志技能再发布干扰命令(这时是假晕),这难道是说851973具有使接下来的干扰命令直接触发事件陷入无限循环而延迟其后语句执行的特殊功能,果然如此的话这应该是游戏弹出的原因。值得一提的是,BPSE这个buff是不会取消你接下来的命令的,这可能才是关键,同时也是851973比stop命令的优点。
       可以得到的结论是:测试结果显示851973是一个单一的指定单位命令(它本身不包含指定点命令),这里指定的单位可以为空,不然则可以制造假晕(你只需捕捉这个命令即可),猜测镜像攻击时目标的假晕可能与此有关,而BPSE的buff和851973之间存在一定间隙,这个时间很可能大于0.05秒。按说dota中是没有假晕的,但我见过单位拥有回音重踏buff(就是上面的buff的马甲)而行走自如的,这不知是否和同时拥有两个眩晕buff而删除一个有关。
       以上,所谓的问题究竟都是时间问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-25 13:43 , Processed in 0.126341 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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