.. 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张闪响应”=此【杀】不可被【闪】响应。 注意:此语句只能在“确定目标后”这一时机使用。