触发原理概论——4.2一个触发中多个触发条件的判定
我们来探究一个问题:当一个触发中存在多个条件时,触发结果的触发与各条件以及触发类型的关系。测试结果如下:
当触发类型选择0(任意关联物体,单次触发)时(触发结果均为刷一枚核弹):
对于单条件延时0秒,刷出的核弹在15秒后爆炸。
对于三个条件均为延时0秒,刷出的核弹在15秒后爆炸。
对于三个条件分别为延时0,10,20秒,刷出的核弹在15秒后爆炸。
对于三个条件分别为延时10,20,30秒,刷出的核弹在25秒后爆炸。
对于三个条件分别为延时30,20,10秒,刷出的核弹在45秒后爆炸。
对于三个条件分别为延时20,10,0秒,刷出的核弹在35秒后爆炸。
对于三个条件分别为延时20,10秒和科技类型AHMV(悍马车)不存在,刷出的核弹在AHMV不存在后15秒且游戏时间至少经过35秒爆炸。
对于三个条件分别为延时20秒,科技类型AHMV和ETNK(斗牛犬轻型坦克)不存在,刷出的核弹在AHMV和ETNK均不存在(两条件缺一不可)后15秒且游戏时间至少经过35秒爆炸。
对于三个条件分别为延时20秒,金钱超过500和600,刷出的核弹在金钱超过600且游戏时间至少经过35秒爆炸。
得出结论:对于通常使用的各种条件来说,在单触发多条件的情况下,只有当每个条件均被满足后触发结果才会被触发。另外,目前出现了一个例外情况,对13号条件延时X秒,在同一个触发中使用多次时,只有条件序号最靠前的一个条件能够生效,余下所有13号条件均无效,不排除有更多例外条件的可能性。
当触发类型选择1(全部关联物体,单次触发),重新进行上述测试,结果则完全不同:所有测试条件均无法触发测试结果。经过排查,只有当地图上存在单位或建筑带有该触发的标记(使用作战小队挂上该标记及刷出该小队均无效)时,该触发的结果才能被正常触发。在地图上增加一个与触发无关且挂了该标记的单位后,之前的数组测试结果与触发类型选择0时的结果完全相同,即在排除上述bug后,触发类型不影响触发条件的判定。
当触发类型选择2或3(重复触发)时,经过测试,该触发每轮触发时也均需要同时满足所有条件。当所有条件同时满足后,该触发触发一次,然后继续对所有条件的判定以准备触发第二次。但有些条件可能会影响触发的重复触发。
关于有些条件在同一个触发中使用同号条件多次而只有一次生效以及有些条件可能会影响触发的重复触发的问题,预计将在第三章条件测试部分中逐个排查。