visual.player-marker通过注册接口在玩家飞机周围绘制本地装饰圆环,自定义颜色和半径;不改变机型、碰撞范围、护盾或战斗数值。
作者声明:只影响本地表现
《NEON STRIKE · 霓虹突袭》创意工坊
收藏用于稍后查找;“开启”决定下次启动时加载哪些 Mod。所有已开启 Mod 会一起进入游戏。
推荐方式 · 不需要懂编程
Prompt 只注入作品、能力、依赖和你的 Mod ID,并要求 Agent 实时读取唯一官方 Skill;固定命令与规则不再复制到任务文本中。
发布 Mod 时必须声明使用哪些能力。以下内容是作者约定,平台不会扫描或限制 Mod 代码;只安装你信任的内容。
联机策略:游戏进入联机前应禁用全部 Mod
visual.player-marker通过注册接口在玩家飞机周围绘制本地装饰圆环,自定义颜色和半径;不改变机型、碰撞范围、护盾或战斗数值。
作者声明:只影响本地表现
hud.readout读取不可变战斗快照和生命周期事件,注册额外文字仪表;不修改私有DOM、输入、存档、分数或游戏规则。
作者声明:只影响本地表现
Agent 会同时收到下面这份本游戏专属规范。
项目 slug:neon-strike。公共 API:window.NeonStrikeMods,API 版本 1.0.0,适用于 v1.7.0 的工坊更新及保持 API v1 的后续版本。旧 v1.7.0 安装包没有此接口,必须检测 apiVersion,不能只检测游戏版本。游戏目前是单机,没有房间或联机入口。
visual.player-marker:飞机装饰光环,可用不同颜色和半径组合制作定位圈。装饰不代表护盾或碰撞范围。hud.readout:EMP 倒计时、生命摘要、分数或波次文字仪表。可用事件实现仅存在当前页面内的统计。当前角色、武器、道具、关卡、伤害、AI 和音频均由现有内部模块管理,尚无稳定注册协议,因此不开放这些扩展。能力目录是开发约定,不是安全沙箱;平台不扫描 Mod 源码,也不能保证阻止越权代码。只启用可信 Mod。
所有注册 ID 必须为作者命名空间,例如 alice.emp-clock;3–96 个小写字母、数字、点、横线或下划线,首字符为字母或数字。注册函数返回注销函数,可重复调用。参数不合法、重复 ID 或超出容量会抛错。
| 方法/属性 | 参数与行为 |
|---|---|
apiVersion | 当前为字符串 1.0.0;破坏性变更升级主版本,不重新解释旧能力 ID。 |
gameVersion | 当前游戏版本字符串。 |
getSnapshot() | 初始化前为 null;初始化后为最近的只读快照,通常约每 100ms 更新,状态变化立即更新。 |
registerPlayerMarker(id, {color, radius}) | color 为六位十六进制色值(如 #55ffff),radius 为 18–60 的有限数值,单位为 CSS 像素。只在战斗中跟随飞机绘制,不改变碰撞。 |
registerReadout(id, render) | render(snapshot) 同步返回文字字符串,空字符串隐藏。本地战斗中调用;最多显示三个非空仪表,每项截取前 48 个 UTF-16 单元,固定绘制于左下方,不能返回 HTML。不要在回调内注册、发请求或执行耗时任务。 |
on(event, id, callback) | 监听 ready、state 或 snapshot,参数均为只读快照;返回取消监听函数。初始化后订阅 ready 会立即调用一次。 |
assertMultiplayerAllowed() | 未来任何联机入口必须先调用。官方 Loader 存在已启用 Mod,或本地仍有任一注册时抛错,提示关闭全部 Mod 后重新启动;否则返回 true。这不创建联机连接。 |
快照字段:state(start/playing/paused/upgrade/decision/gameover/victory)、mode(endless/campaign/roguelike/challenge/bossrush)、difficulty、score、wave、level、width、height、empCooldown(剩余秒)。player 为 null 或 {x,y,hp,lives,shield,ship,weaponId};boss 为 null 或 {kind,hp,maxHp,phase}。坐标为画布 CSS 像素。快照和内嵌对象已冻结,是复制数据,不是可写战斗对象。部分主菜单字段保留上一局数值,判断时应先看 state。
事件顺序:初次启动依次派发 ready、state、snapshot;随后状态发生变化时先派发 state,再派发 snapshot。仅游戏派发事件,没有公共 emit 接口。回调抛错时注销对应回调并输出控制台警告,不中断游戏循环。异常处理不能阻止恶意无限循环。
游戏依次载入 core、logic、bosses、entities、audio、render、input、hangar,建立 NeonStrikeMods API,再定义尚未执行的游戏启动函数。VibeHub 托管版本等待官方 Loader 及 beforeStart,然后初始化 DOM、输入、渲染器、机库和主循环,调用 markGameReady(),最后等待 afterStart。ready 表示主菜单可用,不表示玩家已经开始一局。
before-start:注册初始光环、只依赖快照的仪表或基础工具。此时快照可能为 null;回调应在调用时再读取状态。after-start:注册仪表、订阅状态或统计事件;ready 会立即回放当前快照。两类注册均支持两个阶段,不允许依赖私有 DOM。独立目录包含下面两个 UTF-8 文件,使用官方 Mod 发布流程。它会增加一个紫色装饰圈和 EMP 文字仪表,不需要图片或远程资源。
vibehub.mod.json:
{
"title": "霓虹导航仪",
"summary": "装饰光环与 EMP 倒计时",
"description": "仅改变本地显示,不修改游戏数值。",
"version": "1.0.0",
"releaseNotes": "首次发布",
"entry": "main.js",
"entryType": "classic",
"styles": [],
"loadPhase": "before-start",
"dependencyIds": [],
"capabilities": ["visual.player-marker", "hud.readout"]
}
main.js:
(() => {
const api = window.NeonStrikeMods;
if (!api || api.apiVersion.split('.')[0] !== '1') throw new Error('需要 NeonStrikeMods v1');
api.registerPlayerMarker('example.navigator-ring', { color: '#cc88ff', radius: 28 });
api.registerReadout('example.emp-clock', s => s ? 'EMP ' + s.empCooldown.toFixed(1) + 's' : '');
})();
NeonStrikeMods 是游戏自带前置 API,不需要作为平台 Mod 依赖。公共基础 Mod 可以封装只读快照格式化等函数,发布独立的带版本全局命名空间(例如 window.AliceNeonToolsV1),并在其开发说明写明接口;不能覆写 NeonStrikeMods 或其他 Mod 的命名空间。下游须显式声明该基础 Mod 的平台 ID,并遵守上述阶段限制。游戏不提供任意代码插件管理器,也不承诺第三方基础库兼容性。
光环、仪表、事件订阅各允许最多 32 个注册,分别检查唯一 ID;事件订阅 ID 在全部事件之间也须唯一。重复注册抛错,不覆盖既有项;注销后才可复用。光环按注册顺序叠加;仪表按注册顺序只显示前三个非空项。作者应少量注册,必要时合并文字;该上限不代表平台限制启用 Mod 数量。返回的注销函数只注销原注册,不会误删后来复用同 ID 的新项。
local 的显示 Mod。当前无联机功能,不能把这个检查描述成已有联机系统或防作弊系统。DFJ / __DFJ_PROBE 等私有或测试接口、修改私有 DOM、劫持键鼠触摸输入、修改伤害碰撞或替换游戏主循环。登录后可以上传完整 Mod 包或单脚本。
登录反馈渠道
有任何问题、建议或反馈,请加 VibeHub 官方支持群:
QQ 752883513
进群后请直接在群里提反馈,我们会及时关注并处理。