SnoopLawg/PyAutoRaid
GitHub: SnoopLawg/PyAutoRaid
面向《Raid: Shadow Legends》的全栈无头自动化平台,通过 BepInEx Mod 注入与 Python 工具链实现日常刷取、部落 Boss 模拟和装备优化。
Stars: 28 | Forks: 10
[][downloads-url]
[][contributors-url]
[][forks-url]
[][stars-url]
[][issues-url]
## 关于 PyAutoRaid 最初只是一个简单的 PyAutoGUI 屏幕点击器,后来演变成了一个完整的游戏数据自动化平台。它现在使用注入到 Unity 游戏进程中的 **BepInEx IL2CPP mod**,通过 HTTP API 读取并控制所有内容 —— 大多数任务无需进行屏幕抓取。 在 Windows 10 虚拟机 (QEMU/KVM) 上无头运行,通过 cron 计划任务实现完全自动化。 ### 技术栈   ` —— 将模拟输出与真实战斗日志进行比较
- 生存模型:HP 追踪、Gathering Fury、Lifesteal、Leech、Ally Protect
- 用于 RNG 方差测试的蒙特卡洛模式
### CB 团队优化器
- 评估达到满潜力的 3,600 多种团队组合
- 基于约束的装备分配与速度调优目标
- Myth Eater 速度调优预设(Maneater 287-290,Demytha 171-174 等)
- 从游戏技能数据中自动提取 343 位英雄的配置档案,包含精确的 StatusEffectTypeIds
### 战斗日志分析器
- 每个 Boss 回合的 UK/BD 覆盖缺口检测
- 带有逐回合状态转换的 buff/debuff 生命周期
- 基于冷却时间追踪的技能轮换推断
- 每个英雄按来源类型的伤害归因
### 内存读取器
- 通过 pymem 直接读取 IL2CPP 进程内存
- 资源、战斗状态、当前屏幕(497 个 ViewKeys)、竞技场对手
- 无需修改游戏 —— 只读观察
## 关于 PyAutoRaid 最初只是一个简单的 PyAutoGUI 屏幕点击器,后来演变成了一个完整的游戏数据自动化平台。它现在使用注入到 Unity 游戏进程中的 **BepInEx IL2CPP mod**,通过 HTTP API 读取并控制所有内容 —— 大多数任务无需进行屏幕抓取。 在 Windows 10 虚拟机 (QEMU/KVM) 上无头运行,通过 cron 计划任务实现完全自动化。 ### 技术栈   
(回到顶部)
## 功能 ### 游戏注入 —— BepInEx Mod - 端口 6790 上的 HTTP API,提供 30 多个 endpoint - 完整的英雄名册(包含属性、技能、精通、装备的 500 多位英雄) - 所有装备(包括仓库在内的 2,600 多件),包含副属性、glyphs、Divine 强化 - 账号数据(大殿堂、竞技场段位、部落等级) - 集成游戏自带的属性计算器以获取精确数值 - UI 控制:按钮点击、导航、关闭对话框、MVVM 上下文调用 - 装备装备/卸下/交换/批量装备 - 精通开启/重置 ### 战斗遥测 - 每回合所有英雄的状态快照(HP、TM、技能、状态标志) - **直接的 buff/debuff 追踪** —— 包含 StatusEffectTypeId、剩余回合数以及施放者的每一个活跃效果 - 完整的 StatusEffectTypeId 枚举(从 IL2CPP dump 映射出的 110 种效果:Unkillable=320、Block Damage=60、Poison=80、HP Burn=470 等) - 带有精确数值的属性修改效果(DEF Down、ATK Down、Weaken) - 按效果类型统计的吸收伤害 ### 日常自动化(11 项任务) - 宝石矿、商店奖励、定时奖励、任务、部落、收件箱 - 竞技场(通过内存读取锁定最弱对手进行 10 场战斗) - 部落 Boss(难度选择、即时战斗检测) - 市场碎片、装备自动出售、地下城刷取(20 次副本) - 三级控制:Mod API > 内存读取 > 屏幕回退 ### 部落 Boss 模拟器 - DWJ 精度的逐回合引擎(基于 tick 的 TM、平局判定、buff 时机) - 强制亲和力(Force-Affinity)伤害上限根据真实战斗数据进行校准 - `--use-current-gear` —— 使用英雄实际装备的装备以实现精确的属性匹配 - `--validate-against(回到顶部)
## 架构 ``` +-------------------+ | Cron Schedule | | 7am / 1pm / 7pm | +--------+----------+ | +--------v----------+ | hybrid_controller | (Python, Win10 VM) | 11 daily tasks | +--+------+------+--+ | | | +--------+ +---+---+ +--------+ | | | | +--------v---+ +---v----+ +v--------+ +--------+ | Mod API | | Memory | | Screen | | WinRM | | port 6790 | | Reader | | Fallback| | Deploy | +--------+---+ +--------+ +---------+ +--------+ | +--------v-------------------------------------------+ | BepInEx IL2CPP Plugin (C#) | | RaidAutomationPlugin.cs (~8K lines) | | - HTTP server, Harmony hooks, IL2CPP reflection | | - Battle telemetry, buff/debuff tracking | | - Artifact/mastery commands | +----------------------------------------------------+ | +--------v---------+ | Raid.exe | | Unity 6000.0.60 | +-------------------+ +-------------------+ +-------------------+ | CB Simulator | | Gear Optimizer | | cb_sim.py |<----->| gear_optimizer.py| +-------------------+ +-------------------+ | +--------v----------+ | Battle Analyzer | | battle_log_analyze | +-------------------+ ```(回到顶部)
## 快速开始 ### 前置条件 - 安装了 Raid: Shadow Legends 的 Windows 10 虚拟机(或裸机) - Python 3.12+ - BepInEx 6.0.0-be.755(用于支持 Unity 6000.0.60f1) - .NET 6.0 SDK(用于构建 mod) ### 安装 ``` # 克隆 git clone https://github.com/SnoopLawg/PyAutoRaid.git cd PyAutoRaid # 安装 Python deps pip install -r requirements.txt # 构建 BepInEx mod(在 VM 上) cd mod/bepinex dotnet build RaidAutomationPlugin.csproj -c Release # 复制 DLL 到 BepInEx/plugins/ ``` 有关完整的设置说明,包括 BepInEx 配置、端口转发和虚拟机部署,请参阅 `CLAUDE.md`。 ### 使用方法 ``` # 日常自动化(运行所有 11 个任务) python Modules/hybrid_controller.py # 从 mod API 获取最新游戏数据 python tools/refresh_data.py # 使用当前 gear 的 CB simulator python tools/cb_sim.py --team "Maneater,Demytha,Ninja,Geomancer,Venomage" --use-current-gear # 根据真实战斗记录验证 sim python tools/cb_sim.py --team "..." --use-current-gear --validate-against battle_log.json # 对所有可能的 CB team combos 进行排名 python tools/cb_potential.py # 为一个团队优化 gear python tools/gear_optimizer.py --team "..." # 分析捕获的战斗记录 python tools/battle_log_analyze.py battle_log.json ```(回到顶部)
## 路线图 - [x] 通过 PyAutoGUI 实现屏幕自动化 - [x] 通过 pymem 直接读取 IL2CPP 内存 - [x] 带有 HTTP API 的 BepInEx mod(30 多个 endpoint) - [x] 具有直接 buff/debuff 追踪的战斗遥测 - [x] 来自 IL2CPP dump 的完整 StatusEffectTypeId 枚举 - [x] CB 逐回合模拟器(DWJ 精度) - [x] CB 团队优化器(评估了 3,600 多种组合) - [x] 具有速度调优约束的装备优化器 - [x] 模拟器对照真实战斗日志进行验证 - [ ] Relic 加成计算 - [ ] 模拟器中的队长技能光环 - [ ] 装备优化器中的 4 件套加成 - [ ] 全自动地下城团队优化器(回到顶部)
## 许可证 无许可证。有关更多信息,请参见 `LICENSE.txt`。 ## 联系方式 项目链接:[https://github.com/SnoopLawg/PyAutoRaid](https://github.com/SnoopLawg/PyAutoRaid) ## 致谢 * [DeadwoodJedi](https://www.deadwoodjedi.com/) 提供的速度调优理论 * [BepInEx](https://github.com/BepInEx/BepInEx) 提供的 Unity IL2CPP mod 注入 * [Raid](https://plarium.com/) 对大忙人毫不友好的免费游玩机制(回到顶部)
标签:BepInEx, HTTP API, Python, 云资产清单, 多人体追踪, 无后门, 游戏自动化, 游戏辅助, 逆向工具, 逆向工程