For the complete documentation index, see llms.txt. This page is also available as Markdown.

StoryTeller 交互故事系统

StoryTeller 是一个交互故事系统,允许用户添加自己的剧本、管理和游玩他人文本冒险游戏。系统支持多种平台(Discord、Line、Telegram、WhatsApp),并希望以丰富的功能来创造沉浸式的交互体验。你可以用它来设计抉择丛书式游戏或知识测验等等。

制作这个功能的目的,是因为小时候玩的抉择丛书,明明它好像一本小说,却可以让自己选择行动。长大后还是念念不忘,希望有一天自己也可以再玩到这种类型的游戏。

快速开始

基本指令

# 启动剧本
.st start <alias|title> [alone|all|poll
 x]  
 
 # 查看可玩剧本清单
.st list     

# 游戏控制
.st pause                                   # 暂停目前进行中的剧本
.st continue [runId]                        # 继续暂停中的剧本
.st end                                     # 结束目前剧本

游戏进行

.st goto <page>                             # 跳至指定页面/选项
.st set <var> <value>                       # 设置变量

详细功能说明

1. 剧本管理

添加和更新剧本

Discord 专用功能:

支持的文件格式:

  • .json - 完整的 StoryTeller 格式

  • .txt - RUN_DESIGN 语法格式

剧本管理指令

2. 权限管理

3. 游戏设置

参与权限选项:

  • alone - 仅发起者可交互

  • all - 任何人可参与

  • poll x - 激活 Discord 投票 x 分钟(默认 3,仅 Discord)

4. 状态查看

RUN_DESIGN 语法

StoryTeller 支持 RUN_DESIGN 语法,这是一种简洁的文本格式来定义交互故事。

基本语法结构

语法元素说明

元数据

  • [meta] title "标题" - 设置故事标题

简介

  • [intro] 内容 - 设置故事简介

玩家变量

  • [player_var] key "提示文本" "默认值" - 定义玩家需要设置的变量

统计值定义

  • [stat_def] key min max "标签" - 定义游戏统计值(如生命值、攻击力等)

变量定义

  • [var_def] key min max "标签" - 定义游戏变量

页面结构

  • [label] id - 定义页面 ID

  • [title] 标题 - 设置页面标题

  • [text] 内容 - 显示文本内容

  • [text|if=条件] 内容 - 条件性文本

  • [text|speaker=角色] 内容 - 指定说话角色

变量操作

  • [set] key=value - 设置变量值

  • [set|if=条件] key=value - 条件性设置变量

随机事件

  • [random] 百分比% - 设置随机触发几率

选项

  • [choice] - 开始定义选项

  • -> 选项文本 | 目标页面 | if=条件 | stat=统计变化

结局

  • [ending] - 标记为结局页面

变量系统

变量类型

  1. 玩家变量 (playerVariables)

    • 由玩家设置的角色相关信息

    • 例如:角色名称、职业等

  2. 统计值 (stats)

    • 游戏中的数值属性

    • 例如:生命值、攻击力、防御力等

  3. 游戏变量 (variables)

    • 故事进行中的状态变量

    • 例如:金币数量、任务进度等

变量操作

条件表达式

支持多种条件判断:

骰子系统

支持骰子表达式:

平台特定功能

Discord 专用功能

  1. 投票系统

  2. 文件上传

    • 支持拖拽上传 .json.txt 文件

    • 自动解析和验证文件格式

  3. 私讯功能

    • 可将剧本以私讯方式发送给用户

跨平台兼容性

  • Line/Telegram/WhatsApp: 支持基本功能,不支持投票和文件上传

  • Discord: 支持所有功能,包括投票、文件上传等

限制和规则

文件大小限制

  • 最大上传文件:1MB

  • 最大页数:400 页

  • 每段文本最大长度:500 字

用户限制

根据 VIP 等级有不同的限制:

VIP 等级
剧本数量限制
同时进行游戏数

0

3

3

1

10

10

2+

100

100

权限系统

  1. AUTHOR_ONLY: 仅作者可启动

  2. GROUP_ONLY: 仅指定群组可启动

  3. ANYONE: 任何人可启动

最佳实践

添加剧本

  1. 规划故事结构

    • 先设计主要情节和分支

    • 确定结局数量和多样性

  2. 变量设计

    • 合理设计统计值范围

    • 提供有意义的玩家变量

  3. 测试和验证

    • 使用 .st verify 检查格式

    • 测试所有分支和结局

游戏进行

  1. 角色设置

    • 鼓励玩家设置丰富的角色信息

    • 根据角色信息提供个性化内容

  2. 进度管理

    • 适时使用暂停功能

    • 记录重要的游戏状态

  3. 社群交互

    • 在 Discord 中使用投票功能增加参与感

    • 鼓励玩家分享游戏体验

故障排除

常见问题

  1. 找不到剧本

    • 检查 alias 是否正确

    • 确认权限设置

  2. 无法启动游戏

    • 检查是否已达同时进行游戏数限制

    • 确认剧本格式是否正确

  3. 变量设置失败

    • 检查变量名称是否正确

    • 确认数值范围是否合理

调试工具

范例剧本

简单冒险故事

这个范例展示了 StoryTeller 的基本功能,包括变量设置、条件判断、随机事件和多重结局。

更新日志

最新功能

  • 支持 RUN_DESIGN 语法

  • Discord 投票系统

  • 跨平台暂停/继续功能

  • 增强的角色统计系统

  • 改进的权限管理

已知限制

  • 投票功能仅限 Discord

  • 文件上传仅限 Discord

  • 某些高端功能需要 VIP 等级


StoryTeller 系统持续更新中,请关注最新版本的功能和改进。

最后更新于