【科普】万象物语 队列与监听机制
游戏双队列机制
这篇文章所讲的内容有点抽象,我尽量用最容易理解的方式讲并配图,如果有看不懂的地方可以直接提出。
相信大多数人已经知道了这游戏的技能发动顺序是由【队列】实现的,也就是说由于联动同时出现多个技能时,这些技能会在一个【队列】中排队,先进入队列的优先施展技能,若队列中某个技能会联动其他技能(比如公主一消),那么新出现的技能会排在【队列】末尾,等原先在【队列】中的技能都释放后才能施展。
我这篇攻略也提到了队列的实现
如果看不懂可以看图示:
不过一个队列并不能解释被动的执行顺序,在游戏中,还有【监听】机制同样会影响场上角色的行动顺序。
——————监听机制——————
以夏洛克的被动为例,夏洛克的被动是【我方施展造成魂盘变动的技能时,赋予其三回合强化】。意味着夏洛克必须一直注意场上是不是有人在魂盘上捣乱。那么夏洛克有两种选择:
1:全程注意我方角色的行动,有人动一下就检测魂盘是不是被纂改了。
2:其他人施展技能后主动告诉夏洛克他刚刚做了什么(艾利欧:那个。。白色魂芯-3 |・ω・`))
显然,夏洛克这么吝啬肯定不会采用第一种方法(划掉),在游戏中很明显采用第二种更划算,因为第一种方法不仅会占用很多游戏资源,而且同步也会出现问题(比如别人技能没放完强化就给了或过了半天还没给)。游戏中实际会采用一个【监听(listener)】集中处理这些被动事件:
还是以夏洛克为例,每场战斗开始时夏洛克把自身被动登记在监听上。艾利欧一消后,会向监听告知自己做了什么,然后监听会通知所有登记过的角色,夏洛克收到通知后检测到魂盘变动便把(赋予金位3回合强化)加入队列中。
但是由于监听被动的角色可能有多个,因此监听同样需要一个队列来决定这些技能的顺序,即【被动队列】,这就是这篇攻略所说的[双队列机制]。其中,场上角色被动,参谋被动(如黯月sp参谋),buff(如再生,撕裂)都会在【被动队列】中进行处理。
【被动队列】的特性:
1. 被动队列与场上队列相互阻塞,即同时只能执行一个队列中的技能(为了同步以免引起顺序混乱)
2. 场上队列每执行一次就会暂停,被动队列开始执行,等被动队列结束后,就会关掉被动队列回到场上队列