一个面向文字局的血染钟楼房间工具。
第一版目标是让 9-15 人可以真实开局:
- 开房、加入房间、入座
- 导入脚本
- 随机配版或说书人手动配版
- 玩家盲抽身份
- 公聊、私聊、临时群聊
- 提名和按顺序投票
- 玩家只看到公开座位和死亡状态
- 说书人后台维护身份、状态、备注和阶段
系统不自动判定任何技能效果,也不根据投票结果自动处决。所有技能、信息、醉酒、中毒、保护、转身份、夜晚行动、投票结果裁决都由说书人手动处理。
小程序工程在 miniapp。
当前第一阶段已包含:
- 创建房间
- 加入房间
- 城镇广场 / 游戏进行中 / 聊天 三 Tab
- 环形座位图
- 玩家落座 / 站起
- JSON 导入
- 开始游戏 / 抽身份
- 大聊天室消息
- 说书人阶段控制
- 云函数:
createRoom、joinRoom、chooseSeat、standUp、importScript、startGame、drawRoleCard、setPhase、sendMessage
打开和云开发配置见 miniapp/README.md。
当前原型是移动端优先的 Web 版本:
- 城镇广场:环形座位,显示死亡/存活;说书人可点击玩家标记隐藏状态。
- 玩家可在城镇广场选择位置落座,也可以站起来退出游戏。
- 说书人开始游戏后生成身份牌,玩家选择牌号后获得对应身份。
- 说书人座位详情可写备注,记录 N1/D1,并可继续添加 N2/D2 等记录。
- 房间:当前阶段、大聊天室、提名/投票流程都在这里。
- 聊天:私聊/群聊列表,可用加号选择玩家拉新聊天。
- 说书人:可导入脚本 JSON、随机配版、发放身份。
- 玩家:只可看到自己的身份和公开死亡状态。
- 投票:按座位顺序记录投/不投,只统计票数,不自动处决。
运行:
npm install
npm run dev -- --port 5173生产预览:
npm run build
npm run preview -- --port 4173实时后端已开始接入,详见 移动端网页实时版方案。 部署说明见 移动端网页部署。
房间状态已支持 SQLite 持久化,默认数据库文件在 data/nini-wenran.sqlite。
本地启动后端:
npm run dev:server默认地址:
http://127.0.0.1:8787
前端连接地址可用环境变量覆盖:
VITE_REALTIME_URL=https://your-realtime-server.example.com npm run build