12 KiB
GaCy-Srtool 🌌
网页端在线访问:Vercel 部署版 GaCy Srtool。打开设置页面即可连接正在运行的本地或远程服务端 SDK。
在 GaCy 模式下的 角色设置 / 特殊系统开关 页面,可选择开启 Freecam(自由视角)或 FaceCam(面部跟随视角),并预设 FaceCam 的初始视距。保存后在游戏内按下 Tab 键即可开启或关闭镜头;鼠标滚轮可临时调节视距,重新开启时将恢复设定值。
Unstuck / 紧急解卡(解除转圈卡死)
连接 GaCy GO 服务端后,可直接在 GM 命令控制台点击 Unstuck 按钮或输入 /unstuck 指令。网页端会等待客户端响应确认后提示成功。此操作需在游戏运行且连接服务端时生效。该指令通过心跳机制安全清除等待网络数据包的全屏 UI 阻断,不重置 CW 进度、不切换地图,也不会伪造通关状态;主要用于解救协议等待导致的 UI 卡死。服务端需支持 /api/client/unstuck 接口。
本工具为 100% 纯客户端运行的 Web 应用,可直接通过浏览器访问,无需在本地安装额外的复杂依赖环境。支持管理角色数据、配队编排、遗器/光锥属性定制、实战伤害分析,以及深度编辑管理 GaCy GO(及标准 FreeSR)的存档文件(freesr-data.json, persistent)。
⚡ 核心功能 (Features)
📊 1. 实时仪表盘与编队管理 (Live Dashboard & Lineup)
- 实时连接状态监测: 实时检测与服务端的连通状态,并展示低延迟 Ping 监控指示条。
- 4 人队伍编排管理: 直观展示当前队伍成员的星魂阶数、专属武器、等级及在大世界场景中的坐标位置。
- 动态 Git 分支显示: 在页面顶栏与浏览器标头中准确展示当前运行的服务端/前端分支名称(如
main,test-gay)。 - 资产概览统计: 统计并展示仓库内的角色总数、光锥储备及遗器收藏规模。
⚔️ 2. 实战伤害分析系统 (Real-time Damage Analyst)
- 实时拉取战斗报告: 从服务端直接获取最新一轮战斗统计日志 (
/api/battle_report)。 - 核心伤害维度统揽: 全队总伤害 (Total DMG)、每秒平均伤害 (DPS)、总行动轮次与行动频次 (Action Count)。
- 伤害流派深度解析:
- 常规伤害 (Normal DMG)
- 弱点击破伤害 (Break DMG)
- 超击破伤害 (Super Break DMG)
- 持续伤害 (DoT / Damage over Time)
- 暴击与期望分析: 统计单角色的实际暴击率 (CRIT Rate) 与暴击伤害 (CRIT DMG) 表现。
- 可视化图表与队员贡献比: 柱状图直观呈现各角色的伤害占比。
👤 3. 角色全属性检视 (Character Inspector)
- 真实面板属性计算: 计算并展示基础属性与遗器/光锥加成后的综合面板(生命上限、攻击力、防御力、速度、双暴、效果命中、击破特攻等)。
- 行迹与技能等级调整: 完整支持普攻、战技、终结技、天赋以及额外能力分支等级的检视与调节。
- 一键极品配置: 提供一键满级、满命座 (E6) 及满行迹的便捷配装通道。
🛡️ 4. 遗器与光锥深度定制 (Relic & Light Cone Customizer)
- 遗器属性自选打造: 自由选择遗器套装、主词条与副词条组合,并支持自定义副词条强化点数。
- 光锥叠影与等级配置: 自由设定光锥等级与叠影等阶 (S1–S5)。
🌌 5. 差分宇宙 / 模拟宇宙系统扩展
- 祝福图鉴与奇物库检视,支持直接为当前存档写入特定玩法增益。
🎒 6. 背包材料与怪物配置 (Monster Setting & Materials)
- 背包道具批量调整: 支持直接从服务端提取的客户端道具目录中搜索物品 ID,批量设定数量后单次提交保存。
- 数据安全隔离: 仅修改
freesr-data.json中的materials字段,不破坏或覆盖已有的角色、光锥、遗器与战斗配置。 - 怪物场景与波次自选 (Monster Setting):
- 支持分别查看混沌回忆 (MoC)、虚构叙事 (PF)、末日幻影 (AS) 与幽影歧路 / 裁决之巅 (AA) 的关卡/怪物图鉴与数据。
- 支持在黄金之茧与赤红之茧 (Calyx) 中自定义敌人波次。
- 历战余响、凝滞虚影、侵蚀隧洞及常规高难本保持官方资源配置,避免非法波次导致逻辑紊乱。
💾 7. GaCy 专属持久化与存档管理 (Persistent & FreeSR Data)
- 主角开拓者定制: 自由切换性别(星 Stelle / 穹 Caelus)与命途属性(物理、火、虚数、记忆)。
- 三月七命途切换: 随时切换存护(冰)与巡猎(虚数)形态。
- EX 星魂特权开关: 管理特定角色(如景元 [1204]、丹恒·饮月 [1213]、黄泉 [1308])的专属 EX 扩展星魂能力。
- 原始 JSON 在线编辑器: 实时查看、格式化校验、修改并导出
freesr-data.json及persistent存档。
💻 8. GM 调试控制台 (GM Command Console)
- 网页内集成交互式 GM 指令输入框,支持直接向服务端发送管理调试命令并查看实时响应回执。
🌐 9. 全球 13 种语言国际化支持 (Multi-Language Support)
- 无需刷新页面即可即时切换语言:中文(简体/繁体)、英语、泰语、日语、韩语、越南语、印尼语、西班牙语、法语、德语、俄语、葡萄牙语。
THERES ONLY DARK MODE IF U ASK FOR LIGHT GO AWAY FROM ME
💻 本地运行指南 (Local Usage)
- 直接双击运行: 直接使用现代浏览器打开项目根目录下的
index.html即可。 - 或通过本地静态服务器启动:
或使用 Python 内置 HTTP 服务:
npx serve .python -m http.server 3000
🔗 与 GaCy GO 服务端连接机制
GaCy-Srtool 通过 REST API 与 GaCy GO 服务端保持通讯:
| 接口端点 (Endpoint) | 请求方法 | 作用说明 |
|---|---|---|
/api/status |
GET | 获取服务状态、当前队伍、角色信息及场景坐标 |
/api/freesr |
GET, POST | 读取或完整写入更新 freesr-data.json |
/api/inventory/materials |
GET, POST | 读取客户端物品清单并指定更新材料数量(不覆盖其他字段) |
/api/freesr/avatars |
GET, POST | 查询或保存角色数据与养成状态 |
/api/persistent |
GET, POST | 读取或持久化写入 persistent 扩展存档 |
/api/battle_report |
GET, POST | 获取实时战斗伤害报告与历史战斗结果 |
/api/battle_report/reset |
POST | 清空当前已记录的战斗数据统计 |
/api/exrank/toggle |
POST | 开启或关闭 EX-Rank 特权扩展状态 |
/api/avatar/rank |
POST | 变更指定角色的星魂阶数 |
/api/avatar/max_all |
POST | 一键将全角色设为满命 (E6) 及全技能满级 |
/api/command |
POST | 派发 GM 调试指令至游戏服务器 |
角色与行迹数据保存机制
伤害分析模块根据真实战斗回执中的 report.avatars[].slot 对角色卡片进行排序,不跟随大世界预设队伍顺序变动。包含欢愉伤害、真实伤害等细分维度的统计需配合服务端 SDK 及注入了 StatisticsComponent 的 damage_analyst_live.lua 探针脚本共同使用。
在角色详情页面进行保存时,会通过 /api/freesr 单次请求打包提交整套角色数据,包括行迹树对应的 data.skills 与 data.skills_by_anchor_type,避免行迹数据写入中途被服务端的星魂同步打断。
配装推荐与数据来源说明
角色详情中的 配装指南 / 推荐方案 展示了基于 Prydwen 统计的当期深渊实战高频配装、遗器主副词条取向,并标注了样本采集日期。该数值代表高难环境中的实用占比统计,并非绝对强度的官方定义。
js/build-guides-data.js 内置数据基于 MIT 协议引用自 LvlUrArti/MocDataProcessed。使用或二次分发时请保留对 LvlUrArti 的致谢。可通过执行 npm run sync-build-guides 自动拉取上游最新发布版本并与本地 js/avatars-data.js 的角色 ID 进行索引对齐。
📖 物品图鉴 (Item Book)
Item Book 深度扫描了固定游戏数据版本中所有带 ItemConfig 命名的定义数据表。在当前版本中,扫描了 26 个候选表并成功解析出 18 个包含物品定义的表:共计 5,472 行数据对应 5,414 个独立物品 ID。带有 GaCy supported 徽标的物品直接与 Go 服务端的 InventoryItemConfig.json 保持联动;其余条目仅供图鉴浏览。
点击物品图标可唤起详情弹窗,查看其专属 ID、来源数据表、类别分类、游戏内原版文本描述以及数量选择器。在图鉴弹窗内选择的数量属于本地交互,不会自动调用服务端或直接增发物品。若原版数据表定义了 PileLimit(堆叠上限),选择器将严格受限于该上限值。
物品的名称与描述文本覆盖了 Srtool 支持的全部 13 种本地化语言。图标资产直接引用自对齐版本的 StarRailRes 索引库。
可通过以下命令根据 Go 服务端的库存配置重新生成 assets/item-catalog.json:
python tools/build-item-catalog.py --inventory-config <path-to-GaC-hkrpg-go>/resources/InventoryItemConfig.json
⚔️ 货币战争 (CW) GM 调试指令
在已连接的 GM 控制台中,支持输入:/cw status, /cw gold <总额>, /cw hp <总额>。
修改值仅对当前正在进行的 CW 局内生效。指令会被放入队列并在 Preparation(备战)阶段统一消费执行;战斗期间将保持等待。金币指令会直接设定当前总额,而非循环递增。HP 设定值不得超出当局关卡上限。可在服务端日志中确认 CW_GM applied 确认下发状态,或通过控制台输入 /help 与联想提示进行查看。
⌨️ GM 智能命令助手 (Command Assistant)
控制台输入框内置了指令实时语法预览与参数即时提示功能。完整支持官方 GM 命令、/unstuck、/faketime 以及当前 SDK 支持的所有 /cw 子命令:
- 使用 ↑ / ↓ 键可在候选联想列表中导航。
- 按
Tab键可自动补全当前高亮参数并跳转至下一参数位。 - 按
Shift + Tab可回退列表选择,按Esc键可快速关闭补全提示。 - 也可直接使用鼠标点击补全项填充。
Tab仅用于补全,需按下Enter回车键或点击Run按钮发送命令。
输入角色名称或数字 ID 即可模糊检索对应角色。物品清单、大地图 Plane 与 Floor 索引以及 CW 专属数据均实时拉取自 SDK 的 GET /api/command-completions 接口。CW 角色星级也会根据已选定的 Role 动态收窄过滤范围。
无游戏运行时单元测试命令:node --test tools/command-assistant.test.mjs
📜 许可证与修改声明要求 (License & Attribution Notice)
本项目遵循 Apache License 2.0 与 GNU General Public License v3 (GPL-3.0) 许可证规范,严格执行 原始出处署名 (Attribution) 与 修改内容声明 (State Changes Notice) 要求。
任何个人或组织若引用、Fork、修改、二次开发或重新分发本项目的任何代码、脚本或工具组件,必须严格遵守以下条款:
-
强制保留原作者署名与原始出处 (Attribution):
- 必须在项目显著位置明确注明本项目名称,并附带指向本原始仓库的有效链接。
- 必须在源码及所有副本中完整保留原有的版权声明、作者名单及原始许可证声明文件。
-
必须明确注明修改内容与变更记录 (State Changes Notice):
- 依照 Apache-2.0 第 4(b) 条及 GPL-3.0 第 5(a) 条之规定,凡对原有文件或代码进行过任何修改、增删、重构或补充的部分,必须在相关文件中附带显著的修改通知(Prominent Notice),明确说明修改了哪些内容及修改时间。
- 严禁隐瞒原作者出处、抹除原作者信息或谎称修改后的衍生版本为独立原创作品。
-
非商业用途与免责声明 (Non-Commercial Purpose):
- 本项目仅供网络协议逆向、学术研究与个人学习交流使用,严禁用于任何商业牟利、付费打包或转售行为。