From 11186e2c7dcc2163769b37cfa0eed2b487a2c4ce Mon Sep 17 00:00:00 2001 From: alexpolo1 Date: Thu, 27 Aug 2026 21:37:33 +0200 Subject: [PATCH] fix(town): A5 waypoint HUD false-positive, safe merc-panel dismiss, Tyrael for resurrect MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three linked failures that together took the nightmare run from ~8% to ~37% failures. 1. A5_WP matched the HUD. main's recaptured a5_wp.png (14f5876, pulled in by my merge) scores 0.966 on the belt/mana-orb area at (980, 656) — above threshold and higher than the real stone — so every search locked onto the HUD, clicked it, and open_wp burned ~83s escalating through anchors before giving up. buy_consumables hit 222-253s and tripped the 240s maintenance timeout. Fix: search the waypoint within ui_roi[cut_skill_bar] so the HUD can never compete (select_by_template gained an optional roi for this), and search BOTH captures with best_match — main's new one and the pre-merge a5_wp_2.png, which reaches 0.73-0.98 here against the new one's 0.50-0.58. Neither setup has to lose. 222s -> 33s. 2. My own regression, introduced an hour earlier. The merc check pressed 'o' and closed the panel only when MercPanelText matched, leaving the CHRONICLE panel (what 'o' opens on this client) up all game. I "fixed" that with an unconditional esc — which is worse: with nothing open, esc opens the GAME MENU, which LeftPanel/RightPanel do not match, so nothing closed that either and every later search saw a menu instead of the town. Fix: always toggle 'o' back. 'o' opened it, so 'o' closes it, and it cannot open something new. Symmetry, not detection. 3. resurrect_npc=a4_tyrael (new config, mirrors repair_npc). Measured today: A4 Tyrael ok 8.2s, ok 24.9s - 0 errors, ever A5 Qual-Kehk fail 113.6s / 52.0s / 163.1s / 72.6s - 43 errors Tyrael stands on a fixed spot by the A4 waypoint; Qual-Kehk is the least reliable NPC in the route. Falls back to the current act if the trip to A4 fails. Verified live: 4 games, 0 failures, town 17-23s (was 178-230s), approach 11-15s. Co-Authored-By: Claude Opus 5 --- assets/templates/a5_wp_2.png | Bin 0 -> 68022 bytes config/params.ini | 9 +++++++++ src/bot.py | 25 ++++++++++--------------- src/char/i_char.py | 9 +++++++-- src/config.py | 1 + src/town/a5.py | 17 +++++++++++++++-- src/town/town_manager.py | 24 ++++++++++++++++++++++++ 7 files changed, 66 insertions(+), 19 deletions(-) create mode 100644 assets/templates/a5_wp_2.png diff --git a/assets/templates/a5_wp_2.png b/assets/templates/a5_wp_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6c2276ae9eb0141b12ac7627df63159d9bc7a992 GIT binary patch literal 68022 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 GksLCC8eKxh+=j7gU9 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 literal 0 HcmV?d00001 diff --git a/config/params.ini b/config/params.ini index 18ffde7..e3651c7 100644 --- a/config/params.ini +++ b/config/params.ini @@ -382,6 +382,15 @@ runs_per_repair=5 ; 2026-06-10: switched to a5_larzuk — session logs showed Halbu detection failing ; 100% (body score ~0.39) and each failed A4 trip desynced the bot's act state. repair_npc=a5_larzuk +; resurrect_npc: which NPC revives the mercenary. Blank = whichever act the character is +; already in. Set to a4_tyrael to always use Act 4 Tyrael. +; Measured 2026-08-27 on this setup: +; A4 Tyrael ok 8.2s, ok 24.9s - 0 errors, ever +; A5 Qual-Kehk fail 113.6s / 52.0s / 163.1s / 72.6s - 43 errors +; Tyrael stands on a fixed spot by the A4 waypoint; Qual-Kehk is the least reliable NPC in +; the route. A failed hunt costs more than the whole A5->A4 trip, and one 163s hunt pushed +; the town visit past max_maintenance_time_s and killed the game. +resurrect_npc=a4_tyrael ; runs_per_stash: stash/sell every X runs (blank/0 disables) runs_per_stash=4 ; sell_junk: 1 = vendor non-keep items automatically diff --git a/src/bot.py b/src/bot.py index ab7a74d..f196858 100644 --- a/src/bot.py +++ b/src/bot.py @@ -969,23 +969,18 @@ class Bot: keyboard.send("o") wait(0.3, 0.4) merc_panel_open = is_visible(ScreenObjects.MercPanelText) + # ALWAYS toggle 'o' back, whatever it opened. Symmetry is the only safe + # dismiss here: + # - closing only when MercPanelText matched left the CHRONICLE panel + # (what 'o' actually opens on this client) up for the whole game + # - "just send esc" is WORSE: with nothing open, esc opens the GAME MENU, + # which LeftPanel/RightPanel do not match, so nothing closes that either + # and every later template search sees a menu instead of the town + # 'o' opened it, so 'o' closes it, and it cannot open something new. + keyboard.send("o") + wait(0.25, 0.35) if merc_panel_open: - # Merc is alive - panel opened, close it - keyboard.send("o") - wait(0.2, 0.3) merc_visible = True - else: - # 'o' opened SOMETHING that is not the merc panel and nothing closed it. - # On this client it opens the CHRONICLE collection panel, which covers - # the screen and blanks every later template match — the run then dies - # on click_red_portal after ~66s of flailing at a covered screen - # (g90 2026-08-27). Always dismiss whatever appeared, then confirm. - keyboard.send("esc") - wait(0.25, 0.35) - if is_visible(ScreenObjects.LeftPanel) or is_visible(ScreenObjects.RightPanel): - Logger.warning("Merc check: a panel is still open after esc — sending esc again") - keyboard.send("esc") - wait(0.25, 0.35) gs = self._game_stats skip_until = getattr(gs, "_merc_resurrect_skip_until", 0) if not merc_visible and gs._game_counter < skip_until: diff --git a/src/char/i_char.py b/src/char/i_char.py index f67cd6e..0d98d0d 100644 --- a/src/char/i_char.py +++ b/src/char/i_char.py @@ -130,7 +130,8 @@ class IChar: success_func: Callable = None, timeout: float = 8, threshold: float = 0.68, - telekinesis: bool = False + telekinesis: bool = False, + roi: list = None ) -> bool: """ Finds any template from the template finder and interacts with it @@ -138,6 +139,10 @@ class IChar: :param success_func: Function that will return True if the interaction is successful e.g. return True when loading screen is reached, defaults to None :param timeout: Timeout for the whole template selection, defaults to None :param threshold: Threshold which determines if a template is found or not. None will use default form .ini files + :param roi: Optional [left, top, width, height] to restrict the search. Pass + ui_roi["cut_skill_bar"] for WORLD objects: the HUD is static, so a template + that happens to resemble part of it wins every frame and the real object is + never clicked. Cost a whole evening of A5_WP failures on 2026-08-27. :return: True if success. False otherwise """ templates = template_type if isinstance(template_type, list) else [template_type] @@ -148,7 +153,7 @@ class IChar: wait(0.2, 0.3) start = time.time() while timeout is None or (time.time() - start) < timeout: - template_match = template_finder.search(template_type, grab(), threshold=threshold) + template_match = template_finder.search(template_type, grab(), threshold=threshold, roi=roi) if template_match.valid: Logger.debug(f"Select {template_match.name} ({template_match.score*100:.1f}% confidence)") mouse.move(*template_match.center_monitor) diff --git a/src/config.py b/src/config.py index a9caf2b..bc3ed50 100644 --- a/src/config.py +++ b/src/config.py @@ -376,6 +376,7 @@ class Config: "runs_per_stash": False if not self._select_val("char", "runs_per_stash") else int(self._select_val("char", "runs_per_stash")), "runs_per_repair": False if not self._select_val("char", "runs_per_repair") else int(self._select_val("char", "runs_per_repair")), "repair_npc": self._select_optional("char", "repair_npc", "a4_halbu").strip().lower(), + "resurrect_npc": self._select_optional("char", "resurrect_npc", "").strip().lower(), "gamble_items": False if not self._select_val("char", "gamble_items") else self._select_val("char", "gamble_items").replace(" ","").split(","), "sell_junk": bool(int(self._select_val("char", "sell_junk"))), "protect_shields_from_sell": bool(int(self._select_optional("char", "protect_shields_from_sell", "1"))), diff --git a/src/town/a5.py b/src/town/a5.py index 392a44d..55fbc00 100644 --- a/src/town/a5.py +++ b/src/town/a5.py @@ -7,6 +7,7 @@ import template_finder from utils.misc import wait from ui_manager import ScreenObjects, is_visible from logger import Logger +from config import Config from input_layer import mouse @@ -146,11 +147,23 @@ class A5(IAct): deadline = time.time() + self._OPEN_WP_BUDGET_S found_wp_func = lambda: is_visible(ScreenObjects.WaypointLabel) + # The waypoint is a WORLD object, so never let the HUD compete. main's recaptured + # a5_wp.png matches the belt/mana-orb area at 0.966 — above threshold and higher + # than the real stone — so every search locked onto (980, 656), clicked the HUD, + # and open_wp burned ~83s escalating through anchors before giving up. That took + # buy_consumables to 222-253s and tripped the 240s maintenance timeout. + _wp_roi = Config().ui_roi["cut_skill_bar"] + # Search BOTH waypoint captures and take the best. main recaptured a5_wp.png + # (125x112); on this client it only reaches ~0.50-0.58 on the real stone while the + # older capture (a5_wp_2.png, 201x120) historically hit 0.73-0.98. Rather than pick + # a winner and break the other setup, let best_match decide per frame. + _wp_tpl = ["A5_WP", "A5_WP_2"] + def _try_click_wp(threshold: float = 0.55, require_visible: bool = False) -> bool: wait(0.4, 0.6) # Direct full-screen scan first — if the WP stone is on screen, walk onto # it and click, regardless of how we got here. - wp_match = template_finder.search("A5_WP", grab(), threshold=threshold) + wp_match = template_finder.search(_wp_tpl, grab(), threshold=threshold, roi=_wp_roi, best_match=True) if not wp_match.valid: # Nothing on screen. For the speculative pre-scan below, stop here: # calling select_by_template anyway just spins out its 4s timeout and @@ -163,7 +176,7 @@ class A5(IAct): else: self._char.move(wp_match.center_monitor, force_move=True) wait(0.4, 0.6) - return self._char.select_by_template("A5_WP", found_wp_func, threshold=threshold, timeout=4.0, telekinesis=True) + return self._char.select_by_template(_wp_tpl, found_wp_func, threshold=threshold, timeout=4.0, telekinesis=True, roi=_wp_roi) # 0) Immediate direct WP scan — after TP-back from Pindle the char often spawns # near the WP and a quick scan avoids all pathing issues from stale curr_loc. diff --git a/src/town/town_manager.py b/src/town/town_manager.py index 8472b0f..d57ebd8 100644 --- a/src/town/town_manager.py +++ b/src/town/town_manager.py @@ -297,6 +297,30 @@ class TownManager: if curr_act is None: Logger.error(f"resurrect: could not determine act from location {curr_loc}") return False + # Prefer A4 Tyrael over A5 Qual-Kehk when configured. Tyrael stands on a fixed spot + # next to the A4 waypoint and detects reliably; Qual-Kehk is the worst NPC in the + # route. Measured over 2026-08-27: + # A4 Tyrael ok 8.2s, ok 24.9s - 0 errors, ever + # A5 Qual-Kehk fail 113.6s, 52.0s, 163.1s, 72.6s - 43 errors + # A failed Qual-Kehk hunt costs more than the whole A5->A4 waypoint trip, and one + # 163s hunt took the town visit past the 240s maintenance timeout and killed the + # game outright. + resurrect_pref = (Config().char.get("resurrect_npc") or "").lower() + if curr_act == Location.A5_TOWN_START and resurrect_pref in ("a4_tyrael", "tyrael", "act4"): + Logger.info("Resurrect preference is Act 4 Tyrael — traveling from A5") + a4_loc = self.go_to_act(4, curr_loc) + if a4_loc: + set_panel_check_paused(True) + res = self._acts[Location.A4_TOWN_START].resurrect(a4_loc) + if res: + return res + set_panel_check_paused(False) + # Travelled but failed — leave the breadcrumb so the caller re-anchors to + # A4 rather than assuming A5 (Bug 9). + self.last_known_loc = a4_loc + Logger.warning("Resurrect: Tyrael failed after travelling to A4") + return False + Logger.warning("Resurrect: could not travel to A4 — falling back to the current act") # check if we can resurrect in current act if self._acts[curr_act].can_resurrect(): set_panel_check_paused(True)