电力连锁2.0
相信大家在看到这篇文章之前已经看过了竹蜻蜓的高级触发教程:电力连锁[1],文中提到:
在战略任务制作过程中,为了方便进行条件判断、战区规划、建筑重建、超武复制等操作,使用若干个颜色相同的敌人作战方是一种常用的障眼法:地图上的敌人看起来颜色都是相同的,但它们实际上属于不同的、相互结盟的若干个作战方。 但这样也带来了一个问题:虽然它们颜色相同,但它们的一些属性没有完全共享,比如电力。在使用间谍、飞碟等方式切断其中一个作战方的电力以后,就会出现“相同颜色的敌人一半断电了,而另一半没有”的迷惑现象,玩家也难以判断“我究竟能切断哪部分敌人基地的电力”。所以从游戏体验上而言,相同颜色的作战方的电力也应该是连锁的,其中一方断电,另一方也要跟着一起断电,这样才是符合直觉的。 然而,竹蜻蜓前辈所提供的触发组(后文称为电力连锁1.0)只能解决“飞碟断电”、“间谍偷电”这样的问题。试想一下,如果你的任务中有两个所属方,在使用了电力连锁1.0后,就有可能看到这样一个现象: 其中一个作战方被打掉了所有的电厂而断了电,另一个作战方则被触发强制断电——即使这个所属方有再多的电厂……这可就是更严重的穿帮了( 因此,“电力连锁2.0”为了解决这一问题而被设计出来,除了可以解决“电力连锁1.0”的一些局限性问题外,也可以在玩家没有间谍、飞碟时单独使用,效果比仅使用“电力连锁1.0”时更好一些。 首先,为了使电力连锁1.0不受到影响,于是我采用了在地图外放置保证本作战方在通常情况下不断电的建筑(通常是核电厂)——建筑的作战方则是对应的国家。在所有被连锁的作战方的所有电厂全部被消灭后,这些建筑就会被修改为平民,让被连锁的国家自然断电。如果作战方有机会能造出电厂,则场外的发电建筑所属则会被重新更改回来。 “电力连锁2.0”所需要的触发组依旧需要4组,此外,还需要n+2个局部变量(n为作战方数量): 这里以2个作战方为例,局部命名为<A Power,1>,<B Power,1>,<Power On,1>和<Power Off,0>。这里的默认值随初始情况而定。 A组:电力的给予和切断 给予电力 默认禁止,类型为2-重复 关联触发:对应作战方的“切断电力”触发 条件:13-流逝时间-0( 8-任何事件 也可以) 结果:14-更改所属方-本作战方,54-禁止触发-本触发自身 之后,将“给予电力”触发关联到场外的对应建筑。 切断电力 默认禁止,类型为2-重复 条件:13-流逝时间0( 8-任何事件 也可以) 结果:14-更改所属方-平民,54-禁止触发-本触发自身 B组:检测作战方是否存在电厂 电厂存在 默认允许,类型为2-重复 条件:本作战方-32-建筑存在-发电厂,13-流逝时间-0 结果:56设置局部<A Power>,53-允许触发对应的“电厂不存在”触发,54-禁止触发-本触发自身 电厂不存在 默认允许,类型为2-重复 条件:本作战方-57-建筑不再存在-发电厂,13-流逝时间-0 结果:56-清除局部<A Power>,53-允许触发对应的“电厂存在”触发,54-禁止触发-本触发自身 C组:检测是否至少有一个作战方存在电厂 此时某所属方电厂存在 默认允许,类型为2-重复 条件:36-局部设置<A Power>,37-局部清除<Power On>,36-局部设置<Power Off> 结果:55-设置局部<Power On>,56-清除局部<Power Off>,53-允许触发“D组 给予电力开关 触发” 此时所有所属方电厂不存在 默认允许,类型为2-重复 条件:37-局部清除<A Power>,37-局部清除<B Power>,36-局部设置<Power On>,37-局部清除<Power Off> 结果:55-设置局部<Power Off>,56-清除局部<Power On>,53-允许触发“D组 切断电力开关 触发” D组:电源总开关 给予电力开关 默认禁止,类型为2-重复 条件:36-局部设置<Power On> 结果:53-允许触发所有A组“给予电力”触发,54-禁止触发-本触发自身 切断电力开关 默认禁止,类型为2-重复 条件:36-局部设置<Power Off> 结果:53-允许触发所有A组“切断电力”触发,54-禁止触发-本触发自身 本触发组的工作原理如下: A组和D组提供了给予额外电力和切断额外电力的单元操作,D组触发的存在是为了防止多次触发同一个触发组。 B组触发是检测作战方是否有电厂,如果这个作战方没有电厂,那么就清除对应的局部变量,为C组触发提供判定条件。这里的条件加入一个“13-流逝时间-0”是因为“32-建筑存在”和“57-建筑不再存在”属于国家事件,游戏每8帧检测一次,加入13号条件后,游戏就会每帧检测一次,从而达到理想的0延迟触发。 C组就是在电工里很常见的或门了。它的触发原理就是“只要有任意一个作战方存在电厂,那么所有作战方都可以获得额外电力”(如下表)。 | 作战方A | 作战方B | 是否有额外电力 | | 1 | 1 | 1 | | 1 | 0 | 1 | | 0 | 1 | 1 | | 0 | 0 | 0 |
如果将其拓展到3个作战方,那么情况就是这样的: | 作战方A | 作战方B | 作战方C | 是否有额外电力 | | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | | 1 | 0 | 1 | 1 | | 1 | 0 | 0 | 1 | | 0 | 1 | 1 | 1 | | 0 | 1 | 0 | 1 | | 0 | 0 | 1 | 1 | | 0 | 0 | 0 | 0 |
当然,“电力连锁2.0”在某些情况下也有达不到的效果——例如间谍和飞碟的断电。此时的作战方存在电厂,触发根本检测不到……不过,“电力连锁2.0”也可以与“电力连锁1.0”打出一套不错的combo:“电力连锁1.0”负责解决“电力连锁2.0”检测不到的间谍和飞碟,而“电力连锁2.0”则是为“电力连锁1.0”突破使用上的限制。 当然,感兴趣的朋友可以看看这张示例地图: (使用方法:点击上方的厕所拆除盟军电厂,点击下方的厕所重建盟军电厂,然后观察科技电厂的变化)
补充内容 (2025-12-27 22:59):
参考文献链接:https://021996.xyz/forum.php?mod=viewthread&tid=204435&highlight=%B5%E7%C1%A6%C1%AC%CB%F8 |