babalae/better-genshin-impact · warning · TpPointNotActivate

地图图标绝对坐标匹配失败

Error message

地图图标绝对坐标匹配失败

What it means

TpPointNotActivate thrown from the absolute-coordinate click path after AbsoluteMapClickRetryCount attempts. The message is the runtime failureReason string (the prompt labels it '地图图标绝对坐标匹配失败'). Each attempt tries ConvertGenshinMapCoordinatesToImageCoordinates + click; if the click never lands on the TP icon within the budget, the last failureReason is surfaced.

Source

Thrown at BetterGenshinImpact/GameTask/AutoTrackPath/TpTask.cs:881

            if (attempt + 1 >= AbsoluteMapClickRetryCount)
            {
                break;
            }

            await MoveTeleportTargetTowardZoomCenter(currentClickView);
            var currentZoomLevel = GetCurrentBigMapZoomLevel();
            var recoveryZoomLevel = Math.Max(MinTeleportZoomLevel, currentZoomLevel - AbsoluteMapClickZoomRecoveryStep);
            if (_tpConfig.MapZoomEnabled && !IsZoomCloseEnough(currentZoomLevel, recoveryZoomLevel))
            {
                await AdjustMapZoomLevel(currentZoomLevel, recoveryZoomLevel);
            }

            await Delay(TeleportClickableAreaRetryDelayMs, ct);
            currentClickView = await PrepareTeleportClickView(target);
        }

        Logger.LogWarning("目标传送点绝对坐标定位失败:{Reason}", failureReason);
        throw new TpPointNotActivate(failureReason);
    }

    private double GetTeleportFinalClickZoomLevel(double nearestTpDistance, string mapName)
    {
        var targetZoomLevel = Math.Max(nearestTpDistance / TeleportFinalZoomDistanceFactor, MinTeleportZoomLevel);
        return ClampTeleportFinalZoomLevel(targetZoomLevel, mapName);
    }

    private double GetTeleportTravelZoomLevel()
    {
        return GetTeleportMaxZoomLevel();
    }

    private static double GetTeleportMaxZoomLevel()
    {
        return TeleportMaxZoomLevel;
    }

View on GitHub (pinned to a7cb36712d)

Solutions

  1. Enable _tpConfig.MapZoomEnabled so the recovery zoom stabilizes clicks between attempts.
  2. Run at 1920x1080 so the big-map coordinate transform is calibrated correctly.
  3. Retry (TpWithRetries catches TpPointNotActivate and retries up to 3 times).
  4. If a specific TP always fails, verify its coordinates in tp.json still match the live map (post-patch drift).
  5. Increase AbsoluteMapClickRetryCount for slow map loads.
Defensive patterns

Strategy: retry

Try / catch

try { await TpOnce(...); }
catch (TpPointNotActivate e) { /* TpWithRetries handles; verify tp.json coords post-patch */ }

Prevention

When it happens

Trigger: Big-map coordinate transform producing click positions that miss the TP icon (zoom/pan mismatch between detected and actual map rect); the TP icon template not matching after the click; map panning drift between attempts; recovery zoom step not applied because MapZoomEnabled is off.

Common situations: Map zoom config disabled (_tpConfig.MapZoomEnabled=false) so AbsoluteMapClickZoomRecoveryStep never runs; coordinate transform off due to wrong bigMapInAllMapRect; new game patch shifted map coordinates; template for the TP icon changed.

Related errors


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