═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ TACTICAL ═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ 2026-06-02 20:39:53.062 | INFO | <<< UI ENSURE >>> 2026-06-02 20:39:53.065 | INFO | UI get current page 2026-06-02 20:39:53.118 | INFO | [UI] page_commission 2026-06-02 20:39:53.121 | INFO | Goto page_reward 2026-06-02 20:39:53.126 | INFO | <<< UI GOTO PAGE_REWARD >>> 2026-06-02 20:39:53.161 | INFO | Page switch: page_commission -> page_reward 2026-06-02 20:39:53.164 | INFO | Click ( 52, 67) @ BACK_ARROW 2026-06-02 20:39:53.652 | INFO | Page arrive: page_reward ═══════════════════════════════════════════════ TACTICAL CLASS RECEIVE ════════════════════════════════════════════════ 2026-06-02 20:39:53.659 | INFO | TACTICAL CLASS RECEIVE 2026-06-02 20:39:53.962 | INFO | Click ( 466, 440) @ REWARD_2_WHITE 2026-06-02 20:39:54.288 | INFO | <<< TACTICAL GET FINISH >>> 2026-06-02 20:39:54.294 | INFO | Tactical status: ['empty', 'empty', 'empty', 'empty'] 2026-06-02 20:39:54.298 | INFO | [TACTICAL_REMAIN 0.000s] [] 2026-06-02 20:39:54.301 | INFO | Tactical finish: [] 2026-06-02 20:39:54.573 | INFO | <<< TACTICAL GET FINISH >>> 2026-06-02 20:39:54.576 | INFO | Tactical status: ['empty', 'empty', 'empty', 'empty'] 2026-06-02 20:39:54.579 | INFO | [TACTICAL_REMAIN 0.000s] [] 2026-06-02 20:39:54.581 | INFO | Tactical finish: [] 2026-06-02 20:39:54.867 | INFO | <<< TACTICAL GET FINISH >>> 2026-06-02 20:39:54.871 | INFO | Tactical status: ['empty', 'empty', 'empty', 'empty'] 2026-06-02 20:39:54.875 | INFO | [TACTICAL_REMAIN 0.000s] [] 2026-06-02 20:39:54.878 | INFO | Tactical finish: [] 2026-06-02 20:39:54.880 | INFO | Click ( 70, 45) @ BACK_ARROW 2026-06-02 20:39:55.168 | INFO | <<< TACTICAL GET FINISH >>> 2026-06-02 20:39:55.172 | INFO | Tactical status: ['empty', 'empty', 'empty', 'empty'] 2026-06-02 20:39:55.175 | INFO | [TACTICAL_REMAIN 0.000s] [] 2026-06-02 20:39:55.177 | INFO | Tactical finish: [] 2026-06-02 20:39:55.776 | INFO | Click ( 794, 514) @ POPUP_CONFIRM_TACTICAL ──────────────────────────────────────────────── TACTICAL BOOKS CHOOSE ──────────────────────────────────────────────── 2026-06-02 20:39:56.112 | INFO | TACTICAL BOOKS CHOOSE 2026-06-02 20:39:56.121 | INFO | [Book_count] 12 2026-06-02 20:39:56.125 | INFO | [Books] [Red_T4, Blue_T4, Yellow_T4_Exp, Red_T3, Blue_T3, Yellow_T3_Exp, Red_T2, Blue_T2, Yellow_T2_Exp, Red_T1, Blue_T1, Yellow_T1_Exp] 2026-06-02 20:39:56.371 | INFO | [Book_count] 12 2026-06-02 20:39:56.374 | INFO | [Books] [Red_T4, Blue_T4, Yellow_T4_Exp, Red_T3, Blue_T3, Yellow_T3_Exp, Red_T2, Blue_T2, Yellow_T2_Exp, Red_T1, Blue_T1, Yellow_T1_Exp] 2026-06-02 20:39:56.377 | INFO | Book select Red_T4 2026-06-02 20:39:56.453 | INFO | [OCR_SKILL_EXP 0.073s] 1800/5800 2026-06-02 20:39:56.456 | INFO | About to reach level 10; will remove detected books based on actual progress: 1800/5800; 4000 2026-06-02 20:39:56.460 | INFO | [Filtered] 0 2026-06-02 20:39:56.462 | INFO | [Books] [Red_T4, Blue_T4, Yellow_T4_Exp, Red_T3, Blue_T3, Yellow_T3_Exp, Red_T2, Blue_T2, Yellow_T2_Exp, Red_T1, Blue_T1, Yellow_T1_Exp] 2026-06-02 20:39:56.466 | INFO | [Book_sort] Yellow_T4_Exp > Yellow_T3_Exp > Blue_T3 > Red_T3 > Blue_T2 > Yellow_T2_Exp > Red_T2 > Blue_T1 > Yellow_T1_Exp > Red_T1 > first 2026-06-02 20:39:56.472 | INFO | Book select Yellow_T4_Exp 2026-06-02 20:39:56.474 | INFO | Click ( 556, 370) @ BOOKS_GRID_2_0 2026-06-02 20:39:56.653 | INFO | _tactical_books_choose -> TACTICAL_CLASS_START 2026-06-02 20:39:56.657 | INFO | Click (1144, 632) @ TACTICAL_CLASS_START 2026-06-02 20:39:56.965 | INFO | Click ( 774, 505) @ POPUP_CONFIRM_TACTICAL 2026-06-02 20:39:57.270 | INFO | <<< TACTICAL GET FINISH >>> 2026-06-02 20:39:57.274 | INFO | Tactical status: ['running', 'empty', 'empty', 'empty'] 2026-06-02 20:39:57.338 | INFO | [TACTICAL_REMAIN 0.062s] 12:00:01 2026-06-02 20:39:57.341 | INFO | Tactical finish: ['2026-06-03 08:39:58'] 2026-06-02 20:39:57.344 | INFO | Click ( 60, 65) @ BACK_ARROW 2026-06-02 20:39:58.474 | INFO | Click ( 781, 513) @ POPUP_CONFIRM_TACTICAL ──────────────────────────────────────────────── TACTICAL BOOKS CHOOSE ──────────────────────────────────────────────── 2026-06-02 20:39:58.823 | INFO | TACTICAL BOOKS CHOOSE 2026-06-02 20:39:58.832 | INFO | [Book_count] 11 2026-06-02 20:39:58.836 | INFO | [Books] [Red_T4_Exp, Blue_T4, Red_T3_Exp, Blue_T3, Yellow_T3, Red_T2_Exp, Blue_T2, Yellow_T2, Red_T1_Exp, Blue_T1, Yellow_T1] 2026-06-02 20:39:59.073 | INFO | [Book_count] 11 2026-06-02 20:39:59.079 | INFO | [Books] [Red_T4_Exp, Blue_T4, Red_T3_Exp, Blue_T3, Yellow_T3, Red_T2_Exp, Blue_T2, Yellow_T2, Red_T1_Exp, Blue_T1, Yellow_T1] 2026-06-02 20:39:59.083 | INFO | Book select Red_T4_Exp 2026-06-02 20:39:59.191 | INFO | [OCR_SKILL_EXP 0.105s] 4400/5800 2026-06-02 20:39:59.197 | INFO | About to reach level 10; will remove detected books based on actual progress: 4400/5800; 1400 2026-06-02 20:39:59.202 | INFO | [Filtered] 1 2026-06-02 20:39:59.206 | INFO | [Books] [Blue_T4, Red_T3_Exp, Blue_T3, Yellow_T3, Red_T2_Exp, Blue_T2, Yellow_T2, Red_T1_Exp, Blue_T1, Yellow_T1] 2026-06-02 20:39:59.211 | INFO | [Book_sort] Red_T3_Exp > Blue_T3 > Yellow_T3 > Blue_T2 > Yellow_T2 > Red_T2_Exp > Blue_T1 > Yellow_T1 > Red_T1_Exp > first 2026-06-02 20:39:59.216 | INFO | Book select Red_T3_Exp 2026-06-02 20:39:59.219 | INFO | Click ( 544, 336) @ BOOKS_GRID_2_0 2026-06-02 20:39:59.358 | INFO | _tactical_books_choose -> TACTICAL_CLASS_START 2026-06-02 20:39:59.361 | INFO | Click (1125, 623) @ TACTICAL_CLASS_START 2026-06-02 20:39:59.673 | INFO | Click ( 789, 516) @ POPUP_CONFIRM_TACTICAL ──────────────────────────────────────────────── TACTICAL BOOKS CHOOSE ──────────────────────────────────────────────── 2026-06-02 20:40:01.509 | INFO | TACTICAL BOOKS CHOOSE 2026-06-02 20:40:01.518 | INFO | [Book_count] 9 2026-06-02 20:40:01.521 | INFO | [Books] [Red_T4, Blue_T4, Yellow_T3, Red_T2, Blue_T2, Yellow_T2, Red_T1, Blue_T1, Yellow_T1] 2026-06-02 20:40:01.762 | INFO | [Book_count] 9 2026-06-02 20:40:01.765 | INFO | [Books] [Red_T4, Blue_T4, Yellow_T3, Red_T2, Blue_T2, Yellow_T2, Red_T1, Blue_T1, Yellow_T1] 2026-06-02 20:40:01.768 | INFO | Book select Red_T4 2026-06-02 20:40:01.773 | INFO | Click ( 228, 327) @ BOOKS_GRID_0_0 2026-06-02 20:40:03.866 | INFO | Click ( 287, 349) @ BOOKS_GRID_0_0 2026-06-02 20:40:05.961 | INFO | Click ( 222, 328) @ BOOKS_GRID_0_0 2026-06-02 20:40:08.062 | INFO | Click ( 262, 355) @ BOOKS_GRID_0_0 2026-06-02 20:40:10.164 | INFO | Click ( 265, 359) @ BOOKS_GRID_0_0 2026-06-02 20:40:12.268 | INFO | Click ( 273, 362) @ BOOKS_GRID_0_0 2026-06-02 20:40:14.373 | INFO | Click ( 266, 351) @ BOOKS_GRID_0_0 2026-06-02 20:40:16.471 | INFO | Click ( 268, 357) @ BOOKS_GRID_0_0 2026-06-02 20:40:18.572 | INFO | Click ( 279, 367) @ BOOKS_GRID_0_0 2026-06-02 20:40:20.683 | INFO | Click ( 255, 336) @ BOOKS_GRID_0_0 2026-06-02 20:40:22.786 | INFO | Click ( 267, 354) @ BOOKS_GRID_0_0 2026-06-02 20:40:24.891 | INFO | Function calls: threading.py L890 _bootstrap() threading.py L926 _bootstrap_inner() threading.py L870 run() threadbased.py L254 run() output.py L801 click_callback() app.py L457 process_manager.py L51 start() process.py L112 start() context.py L223 _Popen() context.py L277 _Popen() popen_fork.py L20 __init__() popen_fork.py L74 _launch() process.py L297 _bootstrap() process.py L99 run() process_manager.py L166 run_process() alas.py L570 loop() alas.py L70 run() alas.py L209 tactical() tactical_class.py L742 run() tactical_class.py L499 tactical_class_receive() tactical_class.py L327 _tactical_books_choose() tactical_class.py L267 _tactical_book_select() control.py L37 click() device.py L263 handle_control_check() device.py L299 click_record_check() device.py L43 show_function_call() 2026-06-02 20:40:24.903 | WARNING | Too many click for a button: BOOKS_GRID_0_0 2026-06-02 20:40:24.907 | WARNING | History click: ['BOOKS_GRID_0_0', 'BOOKS_GRID_0_0', 'BOOKS_GRID_0_0', 'BOOKS_GRID_0_0', 'BOOKS_GRID_0_0', 'BOOKS_GRID_0_0', 'BOOKS_GRID_0_0', 'BOOKS_GRID_0_0', 'BOOKS_GRID_0_0', 'BOOKS_GRID_0_0', 'BOOKS_GRID_0_0', 'BOOKS_GRID_0_0'] 2026-06-02 20:40:24.912 | ERROR | GameTooManyClickError: Too many click for a button: BOOKS_GRID_0_0 2026-06-02 20:40:24.916 | WARNING | Saving error: ./log/error/1780404024916