babalae/better-genshin-impact · error · Exception

寻找地脉花失败:未在地图上识别到地脉花图标

Error message

寻找地脉花失败:未在地图上识别到地脉花图标

What it means

Same end-state as 263 — LocateLeyLineOutcrop found no blossom icon across all positions — but thrown when _taskParam.UseAdventurerHandbook is false. Without the handbook hint, only the generic 'no blossom icon recognized' message is given.

Source

Thrown at BetterGenshinImpact/GameTask/AutoLeyLineOutcrop/AutoLeyLineOutcropTask.cs:857

        for (var i = 1; i < positions.Count; i++)
        {
            var pos = positions[i];
            _logger.LogInformation("尝试定位地脉花: {Name}", pos.Name ?? $"{pos.X},{pos.Y}");
            await _tpTask.MoveMapTo(pos.X, pos.Y, MapTypes.Teyvat.ToString());
            if (await LocateLeyLineOutcrop(type))
            {
                return;
            }
        }

        await EnsureExitRewardPage();
        if (_taskParam.UseAdventurerHandbook)
        {
            _logger.LogWarning("寻找地脉花失败:当前已勾选“不使用冒险之证寻路”,可尝试关闭该选项后重试!");
            throw new Exception("寻找地脉花失败:未在地图上识别到地脉花图标。当前已勾选“不使用冒险之证寻路”,可尝试关闭该选项后重试!");
        }

        throw new Exception("寻找地脉花失败:未在地图上识别到地脉花图标");
    }

    private async Task<bool> LocateLeyLineOutcrop(string type)
    {
        await Delay(500, _ct);
        double currentZoom;
        using (var zoomCapture = CaptureToRectArea())
        {
            currentZoom = _tpTask.GetBigMapZoomLevel(zoomCapture);
        }
        await _tpTask.AdjustMapZoomLevel(currentZoom, 3.0);

        var iconPath = type == "启示之花"
            ? "Assets/icon/Blossom_of_Revelation.png"
            : "Assets/icon/Blossom_of_Wealth.png";

        using var ra = CaptureToRectArea();
        var iconRo = BuildTemplate(iconPath);

View on GitHub (pinned to a7cb36712d)

Solutions

  1. Verify a ley-line blossom is present in the region.
  2. Improve recognition: correct big-map zoom (LocateLeyLineOutcrop adjusts toward 3.0), remove UI overlays.
  3. Enable the adventurer-handbook search path (set UseAdventurerHandbook) to get the handbook fallback.
Defensive patterns

Strategy: try-catch

Try / catch

try { await FindLeyLineOutcrop(country, type); }
catch (Exception ex) when (ex.Message.Contains("寻找地脉花失败"))
{
    _logger.LogWarning("未识别到地脉花图标: {Msg}", ex.Message);
}

Prevention

When it happens

Trigger: All positions scanned, none matched, EnsureExitRewardPage executed, and _taskParam.UseAdventurerHandbook is false → falls through to the second throw.

Common situations: No blossom spawned; recognition failure due to zoom/UI overlay; map panned to wrong tiles.

Related errors


AI-assisted analysis of babalae/better-genshin-impact@a7cb36712d (2026-08-13). Data as JSON: /api/errors/ae6ad417ff406232. Report an issue: GitHub.