Skip to content

YOUSTHEONE/FH6Auto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FH6Auto

一个基于 Python + 图像识别 + 输入自动化 的 FH6 视觉脚本工具。
支持 循环跑图 / 批量买车 / 超级抽奖 / 移除车辆 / 多模块串联 / 无限循环挂机

仅供 Python 自动化技术交流与学习使用,请勿用于商业用途或破坏游戏平衡。
因使用本工具造成的任何后果(包括但不限于封号、异常、损失等),由使用者自行承担。


项目简介

FH6Auto 是一个围绕游戏界面自动识别与流程控制设计的桌面自动化工具。
项目以 图像识别 作为流程引导核心,尽量避免纯按键脚本“盲操作”带来的失控风险。

工具通过以下方式实现自动执行:

  • 截图识别当前游戏状态
  • 动态判断是否进入目标页面
  • 触发键盘 / 鼠标操作
  • 在出错时自动尝试恢复运行环境

相比传统纯按键脚本,本项目在稳定性、适应性和可控性方面更好。


功能模块

1. 循环跑图

  • 自动进入菜单
  • 自动切换创意中心 / EventLab
  • 自动输入蓝图分享代码
  • 自动匹配目标车辆
  • 自动循环开始赛事
  • 支持按设定次数重复执行

2. 批量买车

  • 自动进入车辆收藏
  • 自动定位目标品牌
  • 自动选择指定车辆
  • 自动重复购买
  • 支持按设定次数批量执行

3. 超级抽奖

  • 自动进入买车流程
  • 自动定位目标车辆
  • 自动进入升级 / 熟练度界面
  • 自动按技能矩阵点技能
  • 支持技能点耗尽后自动结束模块

4. 大循环挂机

支持模块串联形成完整流水线:

跑图 → 买车 → 抽奖 → 重置计数 → 下一轮

可配置:

  • 是否继续到下一模块
  • 是否在三模块完成后重新循环
  • 总循环次数
  • 近似无限挂机执行

使用方法

1. 启动前准备

车辆准备

请先购买一辆用于跑图的 斯巴鲁 Impreza 22B-STi Version,并完成以下准备:

  • 调校至 S2 900
  • 将该车辆加入收藏
  • 不要有任何涂装

使用前建议确认

  • 关闭任何滤镜、HDR等影响色彩的内容
  • 游戏已经正常启动
  • 游戏设置为 简体中文
  • 键盘输入法切换为 英文键盘
  • 游戏内建议设置为 自动转向 , 自动挡 ,难度 所向披靡
  • 游戏界面尽量保持稳定
  • 不要随意切换到其他窗口,以免影响识图结果

2. 配置参数

在程序主界面中可设置:

  • 跑图次数
  • 买车次数
  • 抽奖次数
  • 蓝图分享代码
  • 总循环次数
  • 是否串联下一模块
  • 是否启用三模块大循环
  • 是否开启自动重启机制
  • 自动重启命令

3. 设置技能路径

在“超级抽奖”模块区域中:

  • 点击方向按钮添加技能路径
  • 点击“清除矩阵”重置路径
  • 蓝色格子表示当前技能行走路径

4. 启动单个模块

可独立启动任意模块:

  • 循环跑图
  • 批量买车
  • 超级抽奖

程序会从对应模块开始执行。


5. 启动串联流程

如果勾选箭头处的“继续”选项,则模块会自动串联,例如:

  • 跑图完成后继续买车
  • 买车完成后继续抽奖

如果再勾选 LOOP -> 循环清零,则三模块完成后会自动进入下一轮。


6. 停止脚本

可通过以下方式停止:

  • 点击界面中的停止按钮
  • 按下键盘 F8

停止后程序会尽量:

  • 停止当前线程
  • 释放所有已按下的按键
  • 恢复主界面状态

图片模板说明

项目支持替换主要识图模板,常见自定义图片如下:

  • CCbrand.png:消耗品车辆品牌
  • consumablecar.png:用于点技能拿超级抽奖的消耗品车
  • newCC.png:标记新车的消耗品车
  • skillcar.png:用于跑图刷技能点的车辆

    该车辆必须已加入收藏,并在图中显示收藏图标

图片资源特点

项目中的 images 模板图支持:

  • 优先读取程序目录外部 images
  • 外部没有时再读取内置资源
  • 启动时可自动释放模板图到外部目录

这样做的好处是:

  • 用户可以自行替换模板
  • 可微调识图适配不同画质 / 分辨率 / UI 状态
  • 更方便维护与迭代

防错与恢复说明

如果执行过程中发生以下情况:

  • 图像识别失败
  • 当前界面异常
  • 流程中断
  • 游戏闪退

程序会优先尝试:

  1. 检查游戏进程
  2. 聚焦游戏窗口
  3. 退回漫游 / 菜单
  4. 自动恢复到可继续执行的状态

如果启用了自动重启:

  • 会尝试使用预设命令重新启动游戏
  • 并在识别到继续界面后恢复流程

自动恢复不能保证 100% 成功,但相比无保护脚本,稳定性会更高。


项目亮点

基于 Python 图像识别

本项目并不是简单的固定坐标点击器,而是结合以下技术进行界面识别:

  • pyautogui 截图
  • opencv-python (cv2) 模板匹配
  • numpy 图像处理

对当前游戏界面进行识别后,再决定下一步动作,因此相比纯脚本具有更高的适应性与可控性。

尽量减少“盲操”风险

传统脚本常见问题包括:

  • 不判断页面状态
  • 一直机械按键
  • 一旦卡界面就彻底跑偏

本项目尽量通过识图确认:

  • 当前是否在漫游界面
  • 是否进入主菜单
  • 是否找到指定按钮
  • 是否已进入升级页
  • 是否出现继续游戏 / 欢迎界面 / 重启页面

只有识别到正确状态,才执行后续动作。

多层防错误机制

项目内包含多层保护逻辑,例如:

1. 状态验证

关键步骤前会确认:

  • 是否成功进入菜单
  • 是否识别到目标页面
  • 是否找到指定图片模板
  • 是否仍在运行状态

2. 中断恢复

当模块执行失败时,会尝试:

  • 检测游戏进程是否仍存在
  • 自动聚焦游戏窗口
  • 自动尝试退回菜单 / 漫游
  • 从中断模块继续执行剩余流程

3. 自动重启机制(测试功能)

当检测到游戏进程不存在时,可选择:

  • 执行自定义启动命令
  • 等待游戏重新启动
  • 自动识别欢迎页 / 继续游戏界面
  • 尝试重新回到游戏并恢复执行

4. 按键强制释放

脚本停止时会主动释放:

  • 方向键
  • Enter / Esc / Backspace / Space
  • 持续按住的 W 键等

避免因为异常退出导致“卡键”。

支持无限循环挂机

你可以把它理解成一个可编排的小型挂机流水线:

  • 先跑图刷收益
  • 再自动买车
  • 然后自动点熟练度拿抽奖
  • 完成后进入下一轮

配合总循环数设置,可以长时间无人值守运行。
如果将循环次数设置得足够高,也可视作“无限循环挂机”。

技能矩阵可自定义

超级抽奖模块支持手动设置技能点路径。
用户可以通过 UI 中的方向按钮,自定义:

形成一条技能路径矩阵,用于适配不同车辆的熟练度树。


技术实现

本项目主要基于以下 Python 技术栈:

  • customtkinter:现代化桌面 UI
  • opencv-python:模板匹配 / 图像识别
  • numpy:图像数组处理
  • pyautogui:截图与基础自动化
  • pydirectinput:更适合游戏场景的输入模拟
  • ctypes / win32gui:窗口聚焦、DPI 适配、底层输入
  • threading:后台任务执行
  • PIL:资源图像加载
  • requests:版本更新检查

适用特点

  • 面向 Windows 环境
  • 支持不同分辨率下的模板缩放匹配
  • 使用 DPI 感知处理,减少高缩放显示下的坐标偏差
  • 支持主界面最小化执行逻辑
  • 支持热键 F8 紧急停止

About

Forza Horizon 6 Automation Tool / Super Wheelspin

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors