dsh-ricewhale:DSH Web 上的鲸鱼女仆物理挂件

前言

在 DSH Web 里长时间盯对话和工具输出,界面往往偏功能化。社区里「趣味换装」类插件会在宿主页面注入轻量交互,不改变核心工作流,但能提供一个可拖、可玩的桌面级小挂件。下面介绍维护者 syx2bzd 发布的 dsh-ricewhale:在旧版 dsh-whale-charm 素材基础上重做的「拖动重写版」,面向 web profile,用物理模拟和 token 计分给 Web 界面加一层可配置的桌面宠物玩法。

这是什么

dsh-ricewhale 是 DSH Web 界面里的「鲸鱼女仆」物理挂件插件。按住拖动、松手甩出,本体在视口四边回弹、落地摩擦减速;静止一段时间会播放待机动作(呼吸、跳、挥手、换姿势)。屏幕上会撒 token 币(蓝币 1 分、黄币 3 分),撞到即吃,连吃按倍数翻分,每满 5 连触发一次高光时刻,累计分持久化。另有不可关闭的 白饭系统:每累计吃掉 500 个 token 会冒出一碗白饭,撞到则本局分与累计分各减半并播放吃白饭视频。

仓库:https://github.com/syx2bzd/dsh-ricewhale
社区目录页:https://www.skillhub.cn/plugins/syx2bzd/dsh-ricewhale
npm 包名:dsh-ricewhale,当前资料中版本为 1.0.0;代码许可证 MIT(图片、字体、音效等素材另有说明,见仓库 THIRD-PARTY.md)。

DeepSeek Harness 的生态思路是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,安装来源以目录页与 GitHub 说明为准。

核心功能

拖动与物理

拖动链路为:窗口捕获按下 → 跟手移动 → 松手时按最后约 90ms 位移计算冲量。物理边界为整个浏览器视口;本体边缘压在其它 DOM 上时会退让点击,中心区域始终可抓,避免和输入框、其它挂件抢焦点。

本版相对旧版重点修复「按一次后整页永久静止」类问题:每帧先安排下一帧再执行业务逻辑,并配有约 1.5s 看门狗;命中判定分中心可抓与边缘让位两段;pointerdown 同时挂在 window 捕获,且仅在真正抓住时才 stopPropagation。

Token 玩法与计分

  • 蓝币 1 分、黄币 3 分;连吃翻倍,满 5 连触发高光时刻。
  • 币不会撒在本体脚下,也不会撒进底部聊天栏区域。
  • 吃到 token 播放泡泡破裂音效(黄币音量为蓝币的 1.5 倍);撞屏幕四边或「地板」播放卡通碰撞音,力度越大略响。
  • 右键本体打开设置面板(主面板 + token 设置,标题栏可拖动);面板会自动躲开本体。面板打开期间本体物理冻结,但仍可拖动本体。

主面板可调:弹性(软/标准/弹)、大小、零重力、钉住、待机动作、判定框、token 玩法开关、重新撒币、清零重计、回原位、换个角落、收起等。token 设置可调玩法开关、漂浮动画、粒子、计分牌、连吃翻倍、高光时刻、不补位、判定圆、数量、补位时长、生成时长(0 为一次性撒满,大于 0 为渐出)、token 大小、黄币概率、combo 窗口、得分倍率等。

白饭系统

设置里没有白饭开关(刻意不可配置):

  • 累计吃掉 500 个 token 出现 1 碗,被吃掉或消失后,再满 500 个才出下一碗。
  • 场上停留 10 秒,最后 2 秒变淡,超时提示「白饭凉了」。
  • 宽度随「token 大小」滑块,约为 token 直径的 1.5 倍。
  • 关闭 token 玩法时白饭立即收走;重新打开后继续计数。
  • 撞到白饭:本局分与累计分各 -50%(四舍五入),连吃清零,中央弹出「白饭时刻」,随后播放内联路由提供的 eat-rice.mp4;播放期间其它音效静音,可点击或 Esc 跳过。

宿主侧实现要点(开发者向)

插件通过 Cordis patch 注入 Web 页面;宿主提供 /dsh-ricewhale/widget.js(实时读盘 client.dist.js)、字体与吃白饭视频(支持 Range)等路由。改客户端逻辑后执行 node mk.mjs 并刷新页面即可,不必重启宿主;若改动 lib/index.js 的路由或注入,需重启 DSH Web 宿主进程。

package.json 中 dsh.marketplace 标明:profiles: ["web"],requiresRestart: true。

安装与启用

从 npm 安装(README 推荐方式):

dsh plugin --profile web add dsh-ricewhale

装完后重启一次 DSH Web 宿主进程(Node 侧插件仅在启动时加载)。卸载:

dsh plugin --profile web remove dsh-ricewhale

与旧插件 dsh-whale-charm 可并存(两条鱼),也可先 remove dsh-whale-charm 只保留本插件。本地改代码开发时 README 提供 link:<仓库目录> 方式,需自行 clone 到本机目录后再 link;运行 npm 包不需要 clone。

典型用法

  1. 安装并重启 Web 宿主后,打开 DSH Web 页面,应看到鲸鱼挂件;按住本体拖动,松手观察回弹与减速。
  2. 在页面空白处右键鲸鱼本体,打开设置;按需开关 token 玩法、调整弹性与 token 数量,使用「重新撒币」刷新场面。
  3. 甩动鲸鱼撞向屏幕上的 token,观察计分牌与 5 连高光;长期游玩时注意 500 token 累计后的白饭机制,避免误撞导致总分减半。

若拖动或吃币异常,可在浏览器控制台使用 README 提供的诊断接口(全局名 __dshwc),例如:

__dshwc.state()          // 就绪/抓住/位置速度/token/白饭/面板
__dshwc.diag()           // 最近一次按下、松手与日志
__dshwc.selftest()       // 页面内跑一遍按下→移动→松手
__dshwc.dropTokenOnPet() // 在本体中心放一枚币并判定是否吃到

页面底部若出现红色「挂件循环出错」提示,可点击尝试重启渲染循环;正常情况下不应频繁出现。

适用场景与注意

适合谁:已在用 DSH web profile、希望在对话界面旁加一个可交互物理挂件、并愿意接受 token 计分与白饭惩罚机制的用户;分类上属于社区目录中的「趣味换装」,不改变 Harness 核心能力。

安装前请自行核对:

  • 插件在 当前 DSH 进程权限 下运行,注入脚本与静态资源由宿主路由提供;安装前应浏览 GitHub 源码与 LICENSE、THIRD-PARTY.md,确认素材与音效再分发策略是否符合你的环境。
  • 物理边界不避让侧边栏等布局,仅在本体边缘对其它元素退让;粒子与特效有上限(如粒子硬上限 120),以降低合成层压力。
  • 仓库 README 列出已知边界:姿势为静态 PNG 变换、计分牌固定在屏幕底部中间等。

维护与问题反馈可走 GitHub Issues:https://github.com/syx2bzd/dsh-ricewhale/issues。

结尾

dsh-ricewhale 把「拖得动、撞得响、吃得记分」和可选 token 参数收敛到一个 Web 挂件里,并用白饭机制给长期累计玩法加一层风险回报。若你在 DSH Web 里想要一条可甩、可撞边、可吃币的鲸鱼女仆,可按上文命令安装到 web profile,重启宿主后右键本体即可调参。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye