2023-04-09 05:35:35 +00:00
|
|
|
|
.. SPDX-License-Identifier: GFDL-1.3-or-later
|
|
|
|
|
|
2023-04-01 15:07:15 +00:00
|
|
|
|
主动技能
|
|
|
|
|
========
|
|
|
|
|
|
|
|
|
|
主动技能概述
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
所谓主动技能,就是那些可以在出牌阶段时主动发动的技能,例如制衡、仁德、强袭等等。在三国杀移动版中,主动技能通常在技能列表中显示为一个可以按下的按钮。
|
|
|
|
|
|
|
|
|
|
在fkparse中,创建主动技能的语法格式为:
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
主动技 条件:<代码块> 选牌规则:<代码块> 选目标规则:<代码块>
|
|
|
|
|
可以点确定:<代码块> 使用后:<代码块>
|
|
|
|
|
|
|
|
|
|
这里需要注意的是,上面所描述的格式,隶属于前面所说过的\ ``<技能主体内容>``\ 中,也就是说要创建主动技能的话,仍然需要补充前面的“导语部分”。
|
|
|
|
|
|
|
|
|
|
下面来一一叙述各个\ ``代码块``\ 的意义。
|
|
|
|
|
|
|
|
|
|
条件
|
|
|
|
|
~~~~
|
|
|
|
|
|
|
|
|
|
条件指的是主动技能不能被使用。更加确切的说,“条件”是指技能按钮需要被点亮的一系列条件,如果这些条件不能满足的话,技能按钮就会显示为灰色。例如技能“制衡”是出牌阶段限发动一次,那么在没有发动之前它是绿色按钮,发动之后就变成灰色按钮了,需要等待到下一个出牌阶段。
|
|
|
|
|
|
|
|
|
|
在\ ``条件:``\ 后面跟随的\ ``<代码块>``\ 中,玩家可以使用以下预定义的变量名:
|
|
|
|
|
|
|
|
|
|
- ``你``\ :玩家自己。
|
|
|
|
|
|
|
|
|
|
选牌规则
|
|
|
|
|
~~~~~~~~
|
|
|
|
|
|
|
|
|
|
选牌规则指的是技能按钮按下之后,哪些手牌/装备区的牌可以被选择,哪些不能。“选牌规则”会在玩家每次点击技能按钮,或者点选一张卡牌后,对每张未被选择的卡牌各自进行一次判断,根据判断的结果来确定要不要将卡牌点亮。
|
|
|
|
|
|
|
|
|
|
在\ ``选牌规则:``\ 后面跟随的\ ``<代码块>``\ 中,玩家可以使用以下预定义的变量名:
|
|
|
|
|
|
|
|
|
|
- ``你``\ :玩家自己。
|
|
|
|
|
|
|
|
|
|
- ``'已选卡牌'``\ :已经被选中的卡牌,类型为卡牌数组。
|
|
|
|
|
|
|
|
|
|
- ``'备选卡牌'``\ :每一张未被选择的卡牌,类型为卡牌类型。
|
|
|
|
|
|
|
|
|
|
选目标规则
|
|
|
|
|
~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
选目标规则指的是,在技能按钮被按下,或者卡牌/目标的被选择状态改变后,对场上的每名角色(包括你自己)分别进行的一次判断。根据判断结果,游戏程序会决定要不要将对应的角色点亮/暗淡。
|
|
|
|
|
|
|
|
|
|
在\ ``选目标规则:``\ 后面跟随的\ ``<代码块>``\ 中,玩家可以使用以下预定义的变量名:
|
|
|
|
|
|
|
|
|
|
- ``你``\ :玩家自己。
|
|
|
|
|
|
|
|
|
|
- ``'已选目标'``\ :已经被选中的角色,类型为玩家数组。
|
|
|
|
|
|
|
|
|
|
- ``'备选目标'``\ :每一名未被选择的角色,类型为玩家类型。
|
|
|
|
|
|
|
|
|
|
- ``'已选卡牌'``\ :已经被选中的卡牌,类型为卡牌数组。在判断目标是否可选时,已选卡牌是判断的必要依据之一。比如“缔盟”就需要选择两名角色的手牌差值等于自己已经选择的卡牌的数量。
|
|
|
|
|
|
|
|
|
|
可以点确定
|
|
|
|
|
~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
顾名思义,“可以点确定”指的是技能按钮已经被激活后的某一个时刻下,确定按钮能否被点击。
|
|
|
|
|
|
|
|
|
|
在\ ``可以点确定:``\ 后面跟随的\ ``<代码块>``\ 中,玩家可以使用以下预定义的变量名:
|
|
|
|
|
|
|
|
|
|
- ``你``\ :玩家自己。
|
|
|
|
|
|
|
|
|
|
- ``'已选目标'``\ :已经被选中的角色,类型为玩家数组。
|
|
|
|
|
|
|
|
|
|
- ``'已选卡牌'``\ :已经被选中的卡牌,类型为卡牌数组。
|
|
|
|
|
|
|
|
|
|
使用后
|
|
|
|
|
~~~~~~
|
|
|
|
|
|
|
|
|
|
使用后,自然就是技能本身的效果了。玩家可以在这里编写自己想要执行的种种代码。
|
|
|
|
|
|
|
|
|
|
在\ ``使用后:``\ 后面跟随的\ ``<代码块>``\ 中,玩家可以使用以下预定义的变量名:
|
|
|
|
|
|
|
|
|
|
- ``你``\ :玩家自己。
|
|
|
|
|
|
|
|
|
|
- ``'选择的目标'``\ :已经被选中的角色,类型为玩家数组。
|
|
|
|
|
|
|
|
|
|
- ``'选择的卡牌'``\ :已经被选中的卡牌,类型为卡牌数组。
|
|
|
|
|
|
|
|
|
|
为什么和前面的不太相同,这个我也不太懂 = =
|
|
|
|
|
|
|
|
|
|
有一点需要注意的是,在技能效果中,用来发动技能的卡牌不会被自动弃置掉。可以使用动作语句“因发动技能而弃牌”去手动选择弃掉的卡牌数量。
|
|
|
|
|
|
|
|
|
|
主动技中部分判断的局限性
|
|
|
|
|
------------------------
|
|
|
|
|
|
|
|
|
|
主动技和触发技不同,有一部分判断是在玩家的视角下进行的,而非像触发技那样全知全能。也就是说如果你试图在“选目标规则”中判断目标的身份时,游戏可能会对你报错。同样的,在自己视角下也不能执行摸牌、回血之类的动作,尽管fkparse不会给你指出来。
|
|
|
|
|
|
|
|
|
|
| (其实就是ServerPlayer和ClientPlayer的区别,懒得展开说了)
|
|
|
|
|
| (记住在除了“使用后”的其他代码块里面别去做一些奇怪的事情就行,到时候写个附录)
|
|
|
|
|
|
|
|
|
|
主动技和触发技同时使用
|
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
|
|
有些技能既有主动部分也有被动部分,对于这样的技能,可以在技能下面同时定义触发技和主动技。参见示例文本。
|