传火
我们想想这个模式是怎么玩的?带着“火”的玩家通过攻击别的玩家(不论是何种方式),就可以把“火”传给别人。
那么,这个过程用规则怎么描述?我们可以这样说:当一名玩家受到伤害,并且他自己没有火,但是攻击他的玩家有火的时候,就把火传给这名玩家。
从上面的描述不难看出,我们应该选择“玩家受到伤害”事件。但是,我们如何知道玩家有没有“火”呢?不知道大家是否记得艾什的“延时雷管”——我们可以用点燃状态来表示火。通过翻阅手册,我们可以找到“具有状态”和“设置状态”、“清除状态”几个东西。这样,我们就可以把条件组合出来。
条件是受伤的玩家没有火,而攻击方有火。因为我们使用了“玩家受到伤害”事件,因此,我们使用“事件玩家”表示前者,“攻击方”表示后者。条件便是:
具有状态(事件玩家, 点燃) == 假
具有状态(攻击方, 点燃) == 真
动作是把火“传给”另一名玩家。“传”的过程,又分为一名玩家“失去”火,和一名玩家“得到”火。因此,规则有两条:
设置状态(事件玩家, 无, 点燃, 9999)
清除状态(攻击方, 点燃)
另外,“点燃”只是效果——能看不能用,所以,我们还得再加上一个“伤害”的动作:
开始持续伤害(事件玩家, 无, 9999, 50)
设置玩家变量(事件玩家, A, 上一个持续伤害效果ID)
停止持续伤害(玩家变量(攻击方, A))
这里我们用到了变量。大家可以结合上面的变量小节,想一想为什么要这样做。(PS:你可以把变量想象成一个“盒子”,设置就是往“盒子”里放东西)
最终的规则如图所示:
加分
俗话说“万事开头难”。既然我们已经把最基本的东西做出来了,那么我们就可以做下一个东西了:胜利判断。我们的逻辑是:剩下一名玩家的时候,就给这名玩家加一分。
我们不知道什么时候会剩下一名玩家——可能是某位玩家死亡后,但也可能是某位玩家退出游戏后。我们没办法确定到底是什么时候,但我们条件非常清楚:只剩下一名活着的玩家。因此,我们使用持续事件+条件来做这件事。我们翻阅手册,可以找到一个叫做“存活玩家数量”的值。我们直接使用它:
事件:持续 - 全局
条件:存活玩家数量(所有队伍) == 1
而我们要做的,就是给他加一分。我们在手册中找到一个叫“所有存活玩家”的内容,但注意:它是一个数组。因为游戏中可能有很多玩家存活,也可能一个都没有。游戏没有那么智能,它并不知道我们的规则一定只有一个玩家。因此,我们需要使用“数组中的值”:
修改玩家分数(数组中的值(所有存活玩家(所有队伍), 0), 1)
接下来,我们要复活所有玩家,开始一局新的比赛:
重生(所有玩家(所有队伍))
最终的规则如图所示: