v1.0.0 · 协议 1.72026-07-29
v1.0.0 正式版:酒馆卡真的能跑 · 事件钩子 · 内容包
第一个正式版。Release 页从此既有 v1.0.0 这样的正式版,也有随主干滚动的开发版;想装哪个,安装时用 TRPG_RELEASE_TAG 钉住对应 tag 就行,客户端和一键开服的服务器程序会来自同一个 Release。协议版本走到 1.7,协议 SDK 也发上了 npm(loreweaver-protocol,带类型的帧定义 + 自动重连的 WebSocket 客户端),想自己写客户端或机器人的可以直接用。
酒馆卡从「能导入」变成「真的能跑」。MVU 变量树导入([InitVar],重复导入不清进度)、<UpdateVariable> 五命令文本协议由引擎代码解析记账、完整 EJS 模板在 QuickJS 沙箱里跑(装 ejs extra 默认开启,循环/函数/lodash 都行)、世界书触发语义整套落地——副键四种逻辑、probability 真掷、sticky/cooldown/delay 挂游戏回合、分组抽选。{{user}}/{{char}}/{{roll:XdY}} 这些宏也认,其中 {{roll}} 走真骰子引擎。哪些地方和酒馆不一样,写在新的卡作者指南里。
模组有了自己的计分板。守秘人(或模组)可以声明类型化状态量——数值/布尔/文本/枚举,可设边界,可标「仅守秘人可见」——每次变动由引擎校验、钳位,不是模型拍脑袋。玩家可见的部分实时显示在 TUI 侧栏的状态量面板里,仅守秘人可见的在引擎内部就被过滤,永远不出服务器。
模组能带行为了。技能旁边放个 hooks.js,或者卡带上 extensions.loreweaver_hooks,就能在回合生命周期上挂沙箱 JavaScript:回合开始、回复就绪、掷骰、变量变更四个事件。钩子能记变量、往守秘人提示词里塞段落、追加或改写叙事,还能用 emitUI 画声明式 UI——进度条、徽章、选项按钮,走协议 1.7 的 ui 帧由客户端渲染。钩子只提请求,引擎校验后才落实;脚本写坏了顶多钩子失效,坏不了回合。写法见 hooks.js 作者参考。
.lwpack 内容包。技能、规则包、角色卡、世界书、媒体素材打成一个 zip:python -m app --pack 一行打包,--install 一行安装,装的来源可以是本地文件、直链或 gh:owner/repo@tag(直接从 GitHub Release 拉,没有中心商店)。装之前先看信任卡片——包里有多少技能/卡、带不带沙箱脚本、素材多大——确认了才落盘,每个文件都过完整性校验,打包结果字节级可复现。
Windows 安装器修复。此前安装脚本在系统自带的 Windows PowerShell 5.1 上会失败(issue #8),现已修复——不用先装 PowerShell 7 了。