FreeKill/docs/fkp/ref/all_action.rst

654 lines
14 KiB
ReStructuredText
Raw Normal View History

.. SPDX-License-Identifier: GFDL-1.3-or-later
所有的动作语句
==============
先列出语句格式,再依次说明表达式类型需求,最后说返回值(如果有)。
前面有个没说过的动作语句也可以带额外参数毕竟一句话没法描述完全部的情况。因此对于一部分动作语句也提供了一些额外的参数像函数那样用就行了具体参考已有的txt。
摸牌
----
::
<表达式> 摸 <表达式> 张牌
玩家类型;数字类型
失去体力
--------
::
<表达式> 失去 <表达式> 点体力
玩家类型;数字类型
失去体力上限
------------
::
<表达式> 失去 <表达式> 点体力上限
玩家类型;数字类型
造成伤害
--------
::
<表达式> 对 <表达式> 造成 <表达式> 点伤害
| 玩家类型;玩家类型;数字类型
| 额外参数:
- ``'伤害属性'``\ :数字类型,默认为\ ``'无属性'``
- ``'造成伤害的牌'``\ :卡牌类型,默认为\ ``nil``
- ``'造成伤害的原因'``\ :字符串类型,默认为空字符串
受到伤害
--------
::
<表达式> 受到 <表达式> 点伤害
| 玩家类型;数字类型
| 额外参数同上。
回复体力
--------
::
<表达式> 回复 <表达式> 点体力
| 玩家类型;数字类型
| 额外参数:
- ``'回复来源'``\ :玩家类型,默认为\ ``nil``
- ``'回复的牌'``\ :卡牌类型,默认为\ ``nil``
回复体力上限
------------
::
<表达式> 回复 <表达式> 点体力上限
玩家类型;数字类型
获得技能
--------
::
<表达式> 获得技能 <表达式>
玩家类型;字符串类型
失去技能
--------
::
<表达式> 失去技能 <表达式>
玩家类型;字符串类型
获得标记
--------
::
<表达式> 获得 <表达式> 枚 <字符串> [隐藏] 标记
玩家类型;数字类型
<字符串>表示标记的名称。
注:“隐藏”可填可不填,如果写了是隐藏标记的话,获得标记将不会显示在战报中,也没有图片,可以借此实现技能发动次数控制等。
失去标记
--------
::
<表达式> 失去 <表达式> 枚 <字符串> [隐藏] 标记
玩家类型;数字类型
统计标记数量
------------
::
<表达式> <字符串> [隐藏] 标记数量
玩家类型
返回:数字类型
询问选择选项
------------
::
<表达式> 从 <表达式> 选择一项
| 玩家类型;数组(字符串类型)
| 额外参数:
- ``'选择的原因'``\ :字符串类型,默认为空字符串
返回:字符串类型
询问选择玩家
------------
::
<表达式> 从 <表达式> 选择一名角色
| 玩家类型;数组(玩家类型)
| 额外参数:
- ``'选择的原因'``\ :字符串类型,默认为空字符串
- ``'提示框文本'``\ :字符串类型,默认为默认的提示文本
- ``'可以点取消'``\ :布尔类型,默认为\ ````
- ``'提示技能发动'``\ :布尔类型,默认为\ ````
返回:玩家类型
询问发动技能
------------
::
<表达式> 选择发动 <字符串>
玩家类型
<字符串>是技能的中文名字,且只能是本文件中已经定义的技能。定义的先后顺序不重要
返回:布尔类型
获得卡牌
--------
::
<表达式> 获得卡牌 <表达式>
| 玩家类型;卡牌类型
| 额外参数:
- ``'公开'``\ :布尔类型,默认为\ ````
拥有技能
--------
::
<表达式> 拥有技能 <字符串>
玩家类型
<字符串>是技能的中文名字,且只能是本文件中已经定义的技能。定义的先后顺序不重要
返回:布尔类型
因发动技能而弃牌
----------------
::
<表达式> 因技能 <字符串> 弃置卡牌 <表达式>
玩家类型;卡牌数组
<字符串>是技能的中文名字,且只能是本文件中已经定义的技能。定义的先后顺序不重要
本语句只能用在主动技的效果中。
主动技的发动次数
----------------
::
<表达式> 发动主动技 <字符串> 的次数
玩家类型;卡牌数组
<字符串>是技能的中文名字,且只能是本文件中已经定义的技能。定义的先后顺序不重要
这种办法只能获取当前阶段里面发动那个技能的次数。如果想要做一回合发动多少次的技能,请使用隐藏标记实现。
令角色弃牌
----------
::
<表达式> 弃置 <表达式> 张牌
| 玩家类型;数字类型
| 额外参数:
- ``'技能名'``: 发起这次弃牌的技能名,默认为空字符串。
- ``'最小弃置数量'``: 数字类型,默认为要求弃牌数量的值。
- ``'可以点取消'``:
布尔类型,是否可以点击取消拒绝弃牌,默认为\ ````\ 。
- ``'可以弃装备'``: 布尔类型,是否可以弃置装备牌,默认为\ ````\ 。
- ``'提示信息'``: 字符串类型,默认为空字符串(默认的提示信息)。
- ``'弃牌规则'``: 字符串类型,默认为无限制。
返回类型:卡牌数组,即目标角色弃置了的牌,可能是空的数组。
播放台词
--------
::
<表达式> 说出 <字符串> 的台词
如果有多个编号完的音频还需要选择,在后面加上{’音频编号’: <编号>}。
交换座位
--------
::
<表达式> 与 <表达式> 交换座位
表达式均为玩家类型。
没有其他参数。
洗牌
----
::
<表达式> 洗牌
表达式均为玩家类型。
没有其他参数。
变身
----
::
<表达式> 变身为 <字符串>
表达式为玩家类型,字符串为要变身的武将,应使用内部标识。
其他参数:
- ``'是否满状态'`` 布尔类型,默认为\ ````
- ``'是否以开始游戏状态变身'`` 布尔类型,默认为\ ````
- ``'是否是变更副将'``
布尔类型,默认为\ ````\ (即变更主将,而且一般也只能变更主将)
- ``'是否发送信息'`` 布尔类型,默认为\ ````
判定
----
::
<表达式> 判定
| 玩家类型
| 额外参数:
- ``'技能名'``: 发起这次判定的技能名,默认为空字符串。
- ``'最小弃置数量'``: 数字类型,默认为要求弃牌数量的值。
- ``'判定规则'``:
字符串类型,表示判定牌需要的某种规则,默认为任意卡牌。
- ``'希望判定中'``:
布尔类型,是否希望获得\ ``'判定规则'``\ 中描述的判定结果,默认为\ ````\ 。
- ``'提示信息'``: 布尔类型,是否会播放打钩打叉动画,默认为\ ````\ 。
类观星技能
----------
适用于“将一些牌以任意顺序放在牌堆顶/牌堆底/两者都有”的场合。
::
<表达式> 对 <表达式> 进行观星
第一个表达式为执行观星的玩家,第二个表达式为此技能处理的牌列表。
额外参数:
- ``'观星类型'``:
指定卡组能够放置的位置,共三种选择:\ ``'顶部底部均放置'``\ 、\ ``'只放置顶部'``\ 、\ ``'只放置底部'``\ 。默认为\ ``'顶部底部均放置'``\ 。
选取牌堆顶X张牌
---------------
::
<表达式> 选择牌堆顶 <表达式> 张牌
第一个表达式为执行行动的玩家,第二个表达式为牌的数量。
额外参数:
- ``'是否不放回'``:
布尔类型,被选取的卡牌是否在处理结束后直接置入弃牌堆。默认为\ ``'真'``\ 。
改判
----
::
<表达式> 将判定结果修改为 <表达式>
第一个是玩家,第二个是要修改的牌。
额外参数:
- ``'技能名'``:
字符串类型,处理区改判牌显示的技能名。默认没有,但是建议写成技能的名字。
- ``'是否交换'``:
布尔类型,是否将原来的判定牌与改判的牌置换。默认为\ ``'假'``\ 。
特别注意:调用此语句需将时机设定为“改判前”。
要求选择自己一张牌
------------------
::
<表达式> 选择自己的一张牌
玩家类型
令玩家选择自己的任意一张牌。
额外参数:
- ``'选牌规则'`` 字符串类型,表示选牌的具体规则,默认为任意卡牌。
- ``'提示'`` 字符串类型,为选牌的提示信息,默认为默认的提示。
- ``'技能名'`` 字符串类型,默认为当前的技能。
要求使用一张牌
--------------
::
<表达式> 使用一张牌
玩家类型。
额外参数:
- ``'选牌规则'`` 字符串类型,表示选牌的具体规则,默认为任意卡牌。
- ``'提示'`` 字符串类型,为选牌的提示信息,默认为空。
- ``'目标'`` 玩家类型,本次要求使用卡牌需指定的目标。
- ``'技能名'`` 字符串类型,默认为空。
要求打出一张牌
--------------
::
<表达式> 打出一张牌
玩家类型。
额外参数:
- ``'选牌规则'`` 字符串类型,表示选牌的具体规则,默认为任意卡牌。
- ``'提示'`` 字符串类型,为选牌的提示信息,默认为空。
- ``'是否为改判'`` 布尔类型,默认为假。
- ``'技能名'`` 字符串类型,默认为空。
选择他人一张牌
--------------
::
<表达式> 选择 <表达式> 一张牌
两个参数均为玩家类型
用来令玩家1选择玩家2的一张牌像过河拆桥的弹窗那样。
额外参数:
- ``'位置'`` 数字数组,表示可以被选牌的区域,默认为只有手牌区。
- ``'原因'`` 字符串类型,表示被选牌的原因,默认为空。
- ``'是否可见手牌'`` 布尔类型,默认为假。
聊天
----
::
<表达式> 说出 <表达式>
玩家类型;字符串类型/数字类型
本语句可以让一名玩家在聊天框中发送一句话。
发送战报
--------
::
<表达式> 发送战报 <表达式>
| 玩家类型;字符串类型
| 额外参数:
- ``'%from'``:
玩家类型。将以玩家使用的武将名替换战报文本的所有“%from”。
- ``'%to'``: 玩家类型。将以玩家使用的武将名替换战报文本的所有“%to”。
- ``'%card'``:
卡牌类型。将以形如“杀[♣7]”的形式替换战报文本中的所有“%card”。
- ``'%arg'``: 任意类型。将替换战报文本中的所有“%arg”。
- ``'%arg2'``: 任意类型。将替换战报文本中的所有“%arg2”。
弃置牌
------
::
<表达式> 弃置牌 <表达式>
玩家类型;卡牌数组类型
| 本语句可以直接弃置某一名玩家的相应卡牌。
| 额外参数:
- ``'来源'``:
玩家类型本次弃牌的来源。比如A拆掉B的一张牌那么语句是B弃置牌xxx而来源是A。
- ``'技能名'``: 字符串类型,与本次弃牌相关的技能。默认为当前的技能。
换牌
----
::
<表达式> 与 <表达式> 换牌
| 玩家类型;玩家类型
| 额外参数:
- ``'区域'``: 要换牌的区域,可以为手牌区或装备区,默认为手牌区。
- ``'技能名'``: 字符串类型,与本次弃牌相关的技能。默认为当前的技能。
给牌
----
::
<表达式> 交给 <表达式> 牌 <表达式>
| 玩家类型;玩家类型;卡牌数组类型
| 额外参数:
- ``'公开'``: 布尔类型,本次给牌是否正面朝上。默认为不公开。
- ``'技能名'``: 字符串类型,与本次弃牌相关的技能。默认为当前的技能。
拼点
----
::
<表达式> 与 <表达式> 拼点
| 玩家类型;玩家类型
| 额外参数:
- ``'技能名'``: 字符串类型,与本次弃牌相关的技能。默认为当前的技能。
返回:拼点信息
参见“类型可以获取的属性”一章以详细了解如何处理拼点的结果。
翻面
----
::
<表达式> 翻面
玩家类型
进行额外回合
------------
::
<表达式> 进行额外回合
玩家类型
跳过阶段
--------
::
<表达式> 跳过 <表达式>
玩家类型;要跳过的阶段
注意:跳过阶段的语句只能用在自己回合内,且需要跳过的阶段还没有开始的情况下。我个人建议在上个阶段即将结束时去跳过想要跳过的阶段,不然战报会显得很奇怪。
检测在攻击范围内
----------------
::
<表达式> 在 <表达式> 攻击范围内
两个参数均为玩家类型,返回布尔类型:前者是否在后者攻击范围内。
额外参数:
- ``'距离修正'``\ 数字类型对距离结果的修正值默认为0。
两人距离
--------
::
<表达式> 到 <表达式> 距离
两个参数均为玩家类型,返回数字类型:前者到后者的距离。
额外参数:
- ``'距离修正'``\ 数字类型对距离结果的修正值默认为0。
检测座次是否相邻
----------------
::
<表达式> 与 <表达式> 相邻
两个参数均为玩家类型,返回布尔类型:前者是否与后者相邻。
获取其他角色
------------
::
<表达式> 之外的其他角色
玩家类型
获取所给的玩家的所有其他角色
获取技能的发动次数
------------------
::
<表达式> 本轮发动过 <表达式> 的次数
<表达式> 本回合发动过 <表达式> 的次数
<表达式> 本阶段发动过 <表达式> 的次数
玩家类型;字符串类型
获取某玩家在某个时间段内发动过某个技能的次数
只能获取使用fkparse自定义技能的发动次数其他的无法。同时也不提供对多个效果各自发动次数的支持。
设定【杀】需要的【闪】数
------------------------
::
<表达式>令对<表达式>使用的杀需<表达式>张闪响应
玩家类型,玩家类型,数字类型。
特别的“需0张闪响应”=此【杀】不可被【闪】响应。
注意:此语句只能在“确定目标后”这一时机使用。