LastWarBot 是一款面向 Windows 的《Last War: Survival》自动化辅助工具。
当前版本重点支持:
- 自动等待并检测
LastWar.exe - 自动激活游戏窗口
- 自动识别并点击同盟帮助
- 自动识别挖掘机,并可通过
OpenClaw发送通知 - OCR 识别资源信息:等级、体力、粮食、铁矿、金币、战力、钻石
- 从基地界面进入车站,搜索货车,识别
UR碎片 - 根据
UR碎片数量和货车战力条件筛选目标货车 - 在不同窗口尺寸、不同 DPI 缩放下做自适应识别
- Windows 11
- 《Last War: Survival》PC 版
- Python
3.13 - OCR:
PaddleOCR + PaddlePaddle
当前项目已经按 Python 3.13 路线适配。
lastwar_bot/:主程序源码images/templates/:模板图像images/samples/:本地调试样本sounds/:提示音logs/events/:事件日志logs/LastWarBot_latest.log:最近一次运行的控制台日志config.yaml:主配置文件release/LastWarBot/:发布目录
pip install -e .
python -m lastwar_bot --config config.yaml也可以直接运行:
start.bat如果你使用发布版,可以直接运行:
release/LastWarBot/LastWarBot.exerelease/LastWarBot/start.bat
发布时请保留整个 release/LastWarBot/ 目录。
- 程序默认不再强制把游戏窗口改成
1920x1080 - 当前要求最小客户区不低于
1024x728 - 识别逻辑会根据当前客户区尺寸动态缩放
- 货车界面会先识别中间浮层,再在浮层内部识别货车与刷新按钮
这意味着程序不再只适配单一的 4K + 150% DPI 环境,而是尽量兼容不同显示器、不同 DPI 缩放、不同窗口尺寸。
- 控制台日志每次运行都会同步保存到:
- logs/LastWarBot_latest.log
- 每次启动会覆盖上一次的
LastWarBot_latest.log - 同盟帮助、挖掘机等事件日志仍保存在:
logs/events/YYYY-MM-DD.log
F12:暂停 / 恢复主循环F5:从基地界面重新定位车站并开始货车搜索F6:货车搜索中用于暂停 / 继续,或跳过当前目标货车F2:开启 / 停止鼠标当前位置极速连点Ctrl-C:退出程序
- 只有在
F12已经让主循环暂停时,F2才会生效 - 如果主循环恢复运行,连点会自动停止
这样可以避免 F2 连点和 F12 主循环同时操作鼠标,互相干扰。
- 在基地界面按下
F5 - 程序自动缩小地图并查找车站图标
- 如果车站图标置信度过低,会自动平移地图重试
- 如仍不足,会再回拉一点缩放后重试
- 进入货车界面后,程序先识别货车浮层,再只在浮层内识别货车
- 逐辆进入详情页,先识别
UR碎片 - 只有
UR碎片数量达到阈值时,才执行战力 OCR 核实 - 若当前页没有目标货车,则点击刷新按钮并继续搜索
process_name:进程名,默认LastWar.exetitle_contains:窗口标题关键字min_client_width/min_client_height:最小客户区要求resize_enabled:是否自动调整窗口大小force_foreground_each_cycle:每轮是否强制激活窗口
images_dir:模板目录thresholds.*:各模板识别阈值regions.*:各识别区域
enabled:OCR 总开关stats_enabled:资源 OCR 开关interval_seconds:资源 OCR 周期language:OCR 语言use_gpu:是否启用 GPU
min_target_power_m:允许的货车战力上限,单位百万ur_fragment_alert_count:提醒所需的UR碎片数量max_refresh_attempts:最多刷新次数inspection_wait_seconds:点击货车详情后的等待时间refresh_wait_seconds:刷新后的等待时间enter_wait_seconds:进入货车界面后的首轮等待时间enter_retry_count:进入货车界面后的稳定性重试次数sample_attempts:每轮货车采样次数sample_interval_seconds:采样间隔empty_result_retry_rounds:空结果延迟重试次数
enabled:调试总开关log_environment_once:启动时输出一次环境信息log_cycle_state:输出每轮状态log_failed_detections:输出识别失败探针日志log_ocr_regions:输出 OCR 实际裁剪区域
- 本项目仍然是视觉自动化,不是直接读游戏内部数据
- 某些极端窗口布局、遮挡、动画过场、跑马灯横幅仍会影响识别稳定性
- 车站图标、货车详情热区、刷新按钮等逻辑已经增加了回退策略,但仍不保证所有环境下零误差
如果要分发给更多用户,建议:
- 保留默认
config.yaml - 保留
images/templates/ - 保留
sounds/ - 保留
logs/目录 - 先用
F12暂停模式配合F2连点测试基础输入是否正常
建议上传:
lastwar_bot/images/templates/sounds/README.mdLICENSEconfig.yamlpyproject.tomlLastWarBot.specstart.bat
建议不要上传:
.venv/build/dist/release/logs/images/samples/