═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ TACTICAL ═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ 2026-06-09 01:28:02.925 | INFO | <<< UI ENSURE >>> 2026-06-09 01:28:02.929 | INFO | UI get current page 2026-06-09 01:28:02.984 | INFO | [UI] page_commission 2026-06-09 01:28:02.987 | INFO | Goto page_reward 2026-06-09 01:28:02.991 | INFO | <<< UI GOTO PAGE_REWARD >>> 2026-06-09 01:28:03.029 | INFO | Page switch: page_commission -> page_reward 2026-06-09 01:28:03.033 | INFO | Click ( 57, 51) @ BACK_ARROW 2026-06-09 01:28:03.525 | INFO | Page arrive: page_reward ═══════════════════════════════════════════════ TACTICAL CLASS RECEIVE ════════════════════════════════════════════════ 2026-06-09 01:28:03.531 | INFO | TACTICAL CLASS RECEIVE 2026-06-09 01:28:03.831 | INFO | Click ( 462, 435) @ REWARD_2_WHITE 2026-06-09 01:28:04.138 | INFO | Click (1016, 654) @ GET_ITEMS_1 2026-06-09 01:28:04.440 | INFO | UI additional: EVENT_LIST_CHECK -> GOTO_MAIN 2026-06-09 01:28:04.444 | INFO | Click (1236, 38) @ GOTO_MAIN 2026-06-09 01:28:05.329 | INFO | Click ( 20, 233) @ MAIN_GOTO_REWARD_WHITE 2026-06-09 01:28:07.134 | INFO | Click ( 476, 435) @ REWARD_2_WHITE 2026-06-09 01:28:07.470 | INFO | <<< TACTICAL GET FINISH >>> 2026-06-09 01:28:07.474 | INFO | Tactical status: ['empty', 'empty', 'empty', 'empty'] 2026-06-09 01:28:07.477 | INFO | [TACTICAL_REMAIN 0.000s] [] 2026-06-09 01:28:07.480 | INFO | Tactical finish: [] 2026-06-09 01:28:07.737 | INFO | <<< TACTICAL GET FINISH >>> 2026-06-09 01:28:07.741 | INFO | Tactical status: ['running', 'empty', 'running', 'empty'] 2026-06-09 01:28:07.837 | INFO | [TACTICAL_REMAIN 0.093s] ['01:17:19', '01:17:25'] 2026-06-09 01:28:07.841 | INFO | Tactical finish: ['2026-06-09 02:45:26', '2026-06-09 02:45:32'] 2026-06-09 01:28:07.844 | INFO | Click ( 63, 55) @ BACK_ARROW 2026-06-09 01:28:08.983 | INFO | Click ( 813, 516) @ POPUP_CONFIRM_TACTICAL ──────────────────────────────────────────────── TACTICAL BOOKS CHOOSE ──────────────────────────────────────────────── 2026-06-09 01:28:09.577 | INFO | TACTICAL BOOKS CHOOSE 2026-06-09 01:28:09.587 | INFO | [Book_count] 10 2026-06-09 01:28:09.590 | 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-09 01:28:09.831 | INFO | [Book_count] 10 2026-06-09 01:28:09.835 | 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-09 01:28:09.838 | INFO | Book select Blue_T4 2026-06-09 01:28:09.923 | INFO | [OCR_SKILL_EXP 0.082s] 1600/4400 2026-06-09 01:28:09.926 | 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-09 01:28:09.930 | INFO | Book select Red_T3_Exp 2026-06-09 01:28:09.935 | INFO | Click ( 432, 349) @ BOOKS_GRID_1_0 2026-06-09 01:28:10.122 | INFO | _tactical_books_choose -> TACTICAL_CLASS_START 2026-06-09 01:28:10.125 | INFO | Click (1112, 628) @ TACTICAL_CLASS_START 2026-06-09 01:28:10.436 | INFO | Click ( 777, 518) @ POPUP_CONFIRM_TACTICAL ──────────────────────────────────────────────── TACTICAL BOOKS CHOOSE ──────────────────────────────────────────────── 2026-06-09 01:28:12.279 | INFO | TACTICAL BOOKS CHOOSE 2026-06-09 01:28:12.288 | INFO | [Book_count] 8 2026-06-09 01:28:12.292 | INFO | [Books] [Blue_T4, Red_T3, Red_T2, Blue_T2, Yellow_T2, Red_T1, Blue_T1, Yellow_T1] 2026-06-09 01:28:12.536 | INFO | [Book_count] 8 2026-06-09 01:28:12.542 | INFO | [Books] [Blue_T4, Red_T3, Red_T2, Blue_T2, Yellow_T2, Red_T1, Blue_T1, Yellow_T1] 2026-06-09 01:28:12.546 | INFO | Book select Blue_T4 2026-06-09 01:28:12.549 | INFO | Click ( 291, 359) @ BOOKS_GRID_0_0 2026-06-09 01:28:14.643 | INFO | Click ( 256, 371) @ BOOKS_GRID_0_0 2026-06-09 01:28:16.725 | INFO | Click ( 281, 329) @ BOOKS_GRID_0_0 2026-06-09 01:28:18.826 | INFO | Click ( 290, 333) @ BOOKS_GRID_0_0 2026-06-09 01:28:20.933 | INFO | Click ( 256, 316) @ BOOKS_GRID_0_0 2026-06-09 01:28:23.033 | INFO | Click ( 267, 343) @ BOOKS_GRID_0_0 2026-06-09 01:28:25.134 | INFO | Click ( 279, 313) @ BOOKS_GRID_0_0 2026-06-09 01:28:27.242 | INFO | Click ( 251, 362) @ BOOKS_GRID_0_0 2026-06-09 01:28:29.341 | INFO | Click ( 253, 332) @ BOOKS_GRID_0_0 2026-06-09 01:28:31.444 | INFO | Click ( 276, 346) @ BOOKS_GRID_0_0 2026-06-09 01:28:33.544 | INFO | Click ( 266, 345) @ BOOKS_GRID_0_0 2026-06-09 01:28:35.650 | 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-09 01:28:35.670 | WARNING | Too many click for a button: BOOKS_GRID_0_0 2026-06-09 01:28:35.674 | 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-09 01:28:35.681 | ERROR | GameTooManyClickError: Too many click for a button: BOOKS_GRID_0_0 2026-06-09 01:28:35.685 | WARNING | Saving error: ./log/error/1780939715685