姨夫下午告诉我说,最近大家对新上线的马良的技能产生了不小的争议,重点在于“打出”的【杀】到底什么时候收,以及术爸刘备和马良的无限激将问题。大家普遍认为是程序员写错代码产生了bug,对此姨夫和程序员们感到非常的无辜啊!
对于“打出”在代码中具体如何实现,服务端里的操作流程到底是怎样,其实我们不必深究,对于玩家而言,只要客户端上反馈到的信息都是正确的,那就说明没问题。所以,我们关键就得看OL玩出来的结果是否有问题。
根据《三国杀官方规则集》所载,打出事件的流程如下:
看起来有点复杂。其实简单来说,我对你【决斗】,你打出一张【杀】,产生了一个打出事件,插入到【决斗】的使用事件中,程序要先处理打出结算。这张【杀】 首先会从原本所在的地方,比如你的手里,或者装备区里(if你是二爷),移动到处理区里,也就是大家通常所谓的“现实生活中的桌面”或者“OL界面的中央 位置”。然后这个时候你可以发动一些“打出牌时”,“失去牌后”能发动的技能,前者如〖明哲〗,后者如〖连营〗。至此强势插入的打出事件结算完毕,程序会 将处理区里的【杀】置入弃牌堆,继续游戏,也就是恢复处理【决斗】的使用结算,现在轮到我打出【杀】了,如果我打出了【杀】,那么就会继续循环上述过程。
而马良发动〖纳蛮〗发动的时机是在打出的【杀】“置入弃牌堆后”,这属于移动流程中出现的时机,如下图:
当然严谨的流程看起来还是比较复杂,说得简单点,一张【杀】从处理区移动到弃牌堆,就是一次移动结算,在“移动(以置入的方式)到弃牌堆后”,正是马良发动〖纳蛮〗的时机。
我把上面那段话复制过来,大家就明白了:至此强势插入的打出事件结算完毕,程序会将处理区里的【杀】置入弃牌堆(然后马良能〖纳蛮〗),继续游戏,也就是 恢复处理【决斗】的使用结算,现在轮到我打出【杀】了,如果我打出了【杀】,那么就会继续循环上述过程。
所以按照规则,无论是【决斗】还是【南蛮入侵】,每打出一张【杀】,就会有一张【杀】置入弃牌堆,而不是等所有【杀】都打出,使用的锦囊都结算完了,再一起从处理区置入弃牌堆的。
也正因为如此,术爸刘备和马良的无限激将问题确实会存在。但这属于设计层面出的问题,设计师在设计时没考虑到这个情况,而非程序员写的不对。当然程序员也 告诉我说会尽快寻找到妥善的解决方案,但我从规则角度也无法给他们任何建议,因为按照官方规则,就是会无限循环的,除非改设计,但这也基本不可能……不过 我相信以边锋程序员的实力,一定会找到对策的,我们就先耐心等待下,顺便故意凑这么一桌来试试这个屌炸天的“正确案例“,再做成视频去骗一点点击量什么的 也不错……