Skip to content

编写新的 TRPG 规则

本节内容

本节将介绍如何为你的海豹核心编写和添加一个新的 TRPG 规则。包括编写规则模板和编写指令。

本文中将涉及使用 JavaScript 与 TypeScript 编写插件的内容。如果你尚未阅读 常见用法示例,请先阅读它。

在本节中,假设我们创建了一个叫做《摸鱼大赛》的 TRPG 规则,简称为 fish 规则。

补充:规则详细内容

角色属性

每个角色有 2 个关键属性,即脸皮厚度摸鱼技能等级。取值分别为 1 - 3,通过投掷 D3 来生成。

此外有生命值,生命值上限 = 脸皮厚度 * 2。

游戏规则

简单说:这是一个类 21 点游戏。

玩家的目标是尽可能使得自己的积分接近 21,但不能大于等于 22(因为摸到 22 就不存在了!)。

开始游戏时,每个玩家创建一个角色,可以互换交换一次属性点位置。

每一轮游戏中,每个玩家都要决定“摸鱼”和“不摸鱼”。如果选择摸鱼,获得 d6 + d(摸鱼等级) 的积分;如果选择不摸鱼,则跳过本回合。

如果选择摸鱼后累计积分超过 22,玩家自动消耗 1 点生命值、随机弃牌 1 张。如果累计积分仍大于 22,那么重复以上过程直到积分小于 22 或生命值归零。

如果生命值归零,此玩家就无法再摸鱼了。

当连续两轮所有玩家都选择不摸鱼时,游戏结束。积分最大的人取胜,如果积分相同,生命值更大的人取胜。

规则模板是什么?有什么功能?

规则模板是海豹核心中几种功能的整合发展,包括角色卡、属性同义词、自动修改群名片等。

具体地说,规则模板能为 fish 规则提供以下功能:

  1. set 指令 中注册这个游戏系统,可以直接使用 set fish 打开扩展并设定默认骰子为 D6;

  2. st 指令中添加 fish 规则的角色卡,这包括:(对于以下内容,可以参考海豹核心内置的 CoC 7th 系统与 D&D 5e 系统角色卡的功能)

    1. fish 规则自己的技能默认值
    2. fish 规则的二级属性计算公式
    3. fish 规则的属性同义词
    4. fish 规则的角色卡属性展示顺序
  3. sn 指令 中添加 fish 规则的自动群名片格式,可以使用 sn fish 来开启。

那么,要怎么做?

你需要根据规则编写规则模板,并把规则中的动作编写成指令。

对于 fish 规则来说,指令应该实现以下动作:

  1. 制卡:投掷 2 个 D3,生成角色的属性点;
  2. 摸鱼:投掷 D6 + D(摸鱼等级),计算总积分,按规则扣除生命值;
  3. 不摸鱼:跳过此轮;

另外,对于一个合适的指令,它也应提供帮助文本。

以上的规则模板和指令都可以在同一个 TypeScript 或 JavaScript 插件文件中完成。我们已经写了一个比较完善且有详细注释的示例,以供参考:

摸鱼大赛 TRPG 规则.ts

如果你希望直接尝试以上插件的效果,可以从以下链接获取经过编译的 JavaScript 文件:

摸鱼大赛 TRPG 规则.js