Skip to content

根据血条寻找敌人#1931

Open
iris10086 wants to merge 4 commits intobabalae:mainfrom
iris10086:findenemy
Open

根据血条寻找敌人#1931
iris10086 wants to merge 4 commits intobabalae:mainfrom
iris10086:findenemy

Conversation

@iris10086
Copy link
Contributor

根据血条寻找敌人

BetterGenshinImpact\GameTask\AutoFight\findEnemy.cs

逻辑

  1. 选择性扫描屏幕(xstep = 5,ystep = 2)。
  2. 找到像素值为(255,90,90) 的像素(偏差10也算相等),再向其上下左右延申。若最后延申得到的上下大于5 左右大于10 则表示为怪物血条。
  3. 返回所有满足条件的,左上Point 右下Point,代表血条方框。
image

不足

  1. 对旋转类技能比较不友好,但是旋转类技能可能不需要这种面向敌怪或者寻找敌怪的这种操作。针对机动性强的敌怪可能也比较难追踪。
  2. 血量较低的敌怪可能需要放宽判定条件才能判定准确。但是放宽条件我怕筛选出错。上述判定条件 是我用脚填的,待优化。

实例

这是代码示例。
var findEnemy = Task.Run(async () => {
while (!cts2.Token.IsCancellationRequested)
{
await Delay(1000, cts2.Token);
ImageRegion ra = CaptureToRectArea();
findEnemyTask.AimToCenterEnemy(ra);
}

    }, cts2.Token);

这是效果
https://github.com/user-attachments/assets/5fd4fd09-8b2d-47b9-aba6-5f22f77a2cb9

@iris10086
Copy link
Contributor Author

#1925

@huiyadanli
Copy link
Member

huiyadanli commented Jul 30, 2025

是一个思路,早期GIA就是这么干的。可以作为一种战斗是否还在进行中的标识。

至于追怪的话,从GIA的实践来说,即便是平坦的秘境,效果也一般

这个代码可以暂放,是有参考价值的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants