触发原理概论——4.3关联触发
对于很多触发条件和结果,触发标记可以确定它们的作用对象。我们每建立一个触发,就会同时建立一个与其关联的触发标记。而对于可以增加触发标记的小队、单位、建筑等,它们同时只能挂上一个触发标记。所以如果我们想让多个触发对同一个或数个对象生效,我们就需要关联触发来让一个标记与多个触发关联起来。
建立两个触发A、B,条件均使用48号关联对象被摧毁,结果均使用95号路径点刷新核弹,类型均为任意关联对象单次触发,在地图上放置两个带A、B触发对应标记(记为a、b)的单位进行测试。
当A为B的关联触发,B为A的关联触发时:
程序卡死,无法进入游戏,但不弹窗。
当A为B的关联触发,A的关联触发为<none>时:
摧毁带标记a的单位触发触发A的结果,摧毁带标记b的单位触发触发A、B的结果。
当B为A的关联触发,B的关联触发为<none>时:
摧毁带标记a的单位触发触发A、B的结果,摧毁带标记b的单位触发除非B的结果。
当A为A的关联触发,B为B的关联触发时:
程序卡死,无法进入游戏,但不弹窗。
由此可以得出结论:当触发A的关联触发为触发B时,触发A的标记a也可视为触发B的标记b,但标记b不可视为标记a。简单来说,标记a关联的对象,只有触发A和触发A的关联触发,即一个标记相当于关联了两个触发。同时,如果关联触发的编写中,出现了触发和关联触发形成循环(如测试中的A和B互为关联触发A→B→A,或A、B的关联触发为本身A→A,B→B)的情况,则会出现地图无法加载完成卡死的bug,需要注意。
下面测试关联触发的效果能否在多个触发之间进行传递,即一个标记能否对两个以上的触发生效。
建立四个触发A、B、C、D,条件均使用48号关联对象被摧毁,结果均使用95号路径点刷新核弹,类型均为任意关联对象单次触发,在地图上放置四个带A、B、C、D触发对应标记(记为a、b、c、d)的单位进行测试。
当A为B的关联触发,B为C的关联触发时:
摧毁带标记a的单位触发触发A的结果,摧毁带标记b的单位触发触发A、B的结果,摧毁带标记c的单位触发触发A、B、C的结果。
当A为B的关联触发,B为C和D的关联触发时:
摧毁带标记a的单位触发触发A的结果,摧毁带标记b的单位触发触发A、B的结果,摧毁带标记c的单位触发触发A、B、C的结果,摧毁带标记d的单位触发触发A、B、D的结果。
由此可以得出结论:关联触发的效果是可以正向传递的。试验中,标记b可视为标记a触发触发A、B,标记c可视为标记b也可视为标记a触发触发A、B、C。单个触发可以作为数个触发的关联触发,但这数个触发本身并不存在关联关系,关联触发的效果逆向是不能传递的。试验中,标记b可视为标记a触发触发A、B,标记c可视为标记b也可视为标记a触发触发A、B、C,但标记d不可视为标记c只能视为标记b或a,只能触发触发A、B、D。也就是,标记c和d都可视为标记b,但标记c不可视为标记d,标记d也不可视为标记c。