## Wardogs 战术雷达(自备内存读取模块)
浏览器地图 + C++ 提供程序。将你的读取模块接入 `IMemory`,程序会遍历游戏数据并把结果发送到地图。
## 设置
1. 解压发布包。
2. 找到 `extract_maps.py`(位于压缩包或附件中),针对 Wardogs 的 Paks 文件夹和 `.usmap` 文件运行。需要 Python 3.10 或更高版本以及 .NET SDK。脚本会把地图瓦片写入 `public/maps`;发布包有意不包含地图文件。
```text
cd wardogs-radar-byom
python extract_maps.py --paks "E:\SteamLibrary\steamapps\common\Wardogs\Wardogs\Content\Paks" --usmap "C:\path\to\507_Wardogs_release.usmap"
npm install
npm run dev
```
打开 <http://127.0.0.1:3000>,或者运行 `START_MAP_FAST.bat`。
## 提供程序(Provider)
在 x64 Visual Studio 命令提示符中运行:
```text
cd provider
build.bat
build\wardogs-provider.exe
```
项目自带一个基础的 RPM(读取进程内存)后端。可以在 `main.cpp` 中将它替换成你自己的实现。
### 你的后端接口
```cpp
bool read(u64 address, void* dst, size_t size);
u64 module_base(const char* module_name);
```
示例桩代码:`provider/backends/YOUR_BACKEND.cpp.example`
### 当前已实现
- `UWorld -> GameState -> PlayerArray`
- 名称、Pawn、世界坐标、阵营、小队、生命值(HP)
- 从本地控制器判断 `isSelf`
- 以约 20Hz 的频率 POST 到 `/api/ingest`
载具、FOB 和热点区域的偏移量位于 `offsets.hpp`。需要时可扩展 `discovery.cpp`。
要修改偏移量,请更新 `provider/include/offsets.hpp`。
如果只需要 JSON,请参阅 `INGEST.md`。
## 地图提取脚本说明
这个 Python 脚本会从游戏中提取全部图像(约 550MB,几千张;请按实际情况修改目录)。
`extract_maps.py` 是一个可分享的一次性脚本:它从游戏 Paks 中读取 Wardogs 战术地图的虚拟纹理和图标,并在 `public/maps` 与 `public/icons` 下生成雷达所需的瓦片金字塔。
发布包**不包含**地图瓦片。解压后运行一次脚本,浏览器地图即可使用本地 JPEG 文件。AES 密钥已嵌入脚本,也可以通过 `--aes` 或环境变量 `WARDOGS_AES` 覆盖。
### 运行要求
- Python 3.10 或更高版本
- .NET SDK(`dotnet` 必须位于 PATH 中;首次运行会还原 NuGet 包)
- Wardogs 的 `Content/Paks` 文件夹
- 与当前游戏版本匹配的 `.usmap` 文件(默认位置为 `Desktop/507_Wardogs_release.usmap`)
### 用法
```text
python extract_maps.py
python extract_maps.py --paks "E:/SteamLibrary/steamapps/common/Wardogs/Wardogs/Content/Paks"
python extract_maps.py --usmap "C:/path/to/507_Wardogs_release.usmap"
python extract_maps.py --maps Kavkazi NorthAmerica --skip-icons
```
环境变量覆盖项:`WARDOGS_PAKS`、`WARDOGS_USMAP`、`WARDOGS_AES`。
脚本中的 C# 工作程序负责挂载 IoStore、解码虚拟纹理和图标,并生成 JPEG 地图瓦片金字塔。原文中的 Python/C# 源码、NuGet 版本、AES 密钥、路径和命令均应保持原样,以确保脚本能够运行;其中英文注释的含义如下:
- `mapsOut` / `iconsOut`:地图和图标输出目录。
- `TileFromBitmap`:把普通方形位图切成 512×512 瓦片并生成各级缩略层。
- `ExportLargeVt`:从大型虚拟纹理的 mip0 数据生成瓦片,再向下构建低级别地图。
- `overview`:生成 4096×4096 的总览图。
- `skip-icons`:只提取地图,跳过图标。
- `keep-build`:保留临时 C# 构建目录以便调试。
完成后,脚本会显示地图和图标目录,随后运行 `npm install && npm run dev`(或 `START_MAP_FAST.bat`)。
12游戏吧 » Wardogs《战狗》本地雷达透视源码