Video: Bài 5: Click hình ảnh và Đợi hình ảnh
Mở trên YouTube ↗🖱️ Click hình ảnh (click_image)
Nhóm palette: Hình ảnh · type: click_image · cổng: 1 vào · 2 ra (Click / Không thấy)
Mục đích
Tìm ảnh mẫu trên cửa sổ/màn; nếu thấy thì click tâm (cộng offset). Không thấy → cổng dưới, không dừng job.
Capture vs chuộtCùng hệ tọa độ client / Preview. Đợi hình / OCR / Preview dùng
WGC hoặc PrintWindow (behind_safe) — vẫn lấy được buffer cửa sổ khi app bị cửa sổ khác che (tùy app/GPU; một số game/DX có thể đen → tool focus rồi chụp lại). Vào node nhận diện không cướp focus (chỉ restore + nâng z-order). Click sau khi thấy ảnh vẫn dùng chuột hệ thống (SendInput). Cửa sổ đổi size: engine thử tỉ lệ ~0.50–2.20 rồi map tọa độ về client.Cách dùng
- Dùng khi nút bấm vị trí đổi (list, popup) hoặc nhiều độ phân giải — ổn hơn click tọa độ cố định.
- Cắt template từ Preview (có thể Thêm ảnh, tối đa 10). Nút Thử check ảnh ngay = popup khoanh khớp + dấu + điểm click (không click lên app). Nút Test node này = chạy node và click thật trên cửa sổ đã chọn.
- Trước khi chạy:
prepare_target(steal_focus=False)— restore + nâng cửa sổ, không focus. Chỉ khi đã thấy và click mới SendInput + focus. - Thấy → cổng Click tại
(match_x + offset_x, match_y + offset_y). Không thấy → cổng Không thấy.
Từng setting
| Ô trên Properties | Key | Mặc định | Ý nghĩa / cách dùng |
|---|---|---|---|
| Delay sau (ms) | delay_after_ms | 130 | Sau click hoặc sau nhánh không thấy. |
| Ảnh mẫu | asset_id / asset_ids | bắt buộc ≥ 1 | Không có ô path thủ công. Cắt từ Preview → danh sách PNG trong .apc (script cũ một asset_id vẫn đọc được). Trạng thái: Chưa có ảnh mẫu (tối đa 10) / Đã có n/10 ảnh mẫu — khớp ảnh nào cũng được + thumbnail. Nút Cắt ảnh từ view lớn, Thêm ảnh từ view lớn (tối đa 10), Gỡ ảnh, Thử check ảnh ngay (popup khoanh khớp + điểm click), Test node này. Template: nhỏ gọn, phần không đổi (icon, chữ nút). Tránh nền animation / số máu. Nhiều theme: cắt thêm ảnh thay vì hạ threshold quá thấp. |
| Ngưỡng match | threshold | 0.75 | Score 0–1. Cao = khó khớp hơn (ít nhầm). |
| (ẩn UI) Vùng tìm | region | null | Engine hỗ trợ region (x, y, w, h); catalog có region: null. Properties hiện không có ô region — mặc định quét cả client. File cũ nếu có region vẫn được dùng. |
| Timeout (ms) | timeout_ms | 0 | 0 = quét một lần. >0 = lặp tới khi thấy hoặc hết giờ. |
| (ẩn UI) Retry | retry_ms | 200 | Nghỉ giữa lần quét khi timeout > 0. Không hiện ô trên Properties. |
| Lệch X / Y | click_offset_x / click_offset_y | 0 | Cộng vào tâm match trước khi click (đơn vị client px). |
| Nút | button | left | left / right / middle. |
| Số click | clicks | 1 | ≥ 1. 2 = double. |
| Delay giữa click (ms) | click_gap_ms | 50 | Giữa các lần down-up khi clicks > 1. |
| (ẩn UI) Giữ chuột | down_ms | catalog 80 | UI không hiện; executor luôn dùng 80 ms (DEFAULT_DOWN_MS), không đọc ô data. |
Ví dụ thực tế
- A. Nút Login. Cắt icon Login, threshold 0.75, timeout 5000, retry 200. Cổng Click → Gõ user. Cổng Không thấy → Telegram “không thấy Login” → End.
- B. Click mép nút (tránh badge). Offset Y = +12 để bấm phần dưới icon.
- C. Double-click item. clicks = 2, gap 50–80.
- D. Timeout 0. Màn đã chắc chắn hiện: quét 1 lần, không thấy thì rẽ nhánh (giống Check rồi click). Muốn chờ UI load: timeout 3000–8000.
Lưu ý
Biến sau matchGhi
match_found, match_score; nếu thấy thêm match_x, match_y (tâm trước offset). Click tại (match_x + offset_x, match_y + offset_y).Resize / theme / multi-scaleTemplate cắt lúc 1280×720 rồi chạy cửa sổ khác size: engine thử multi-scale (~0.50–2.20) rồi map tọa độ về client. Vẫn nên Resize trước cho ổn định. Theme game đổi màu → thêm ảnh mẫu thứ 2, hoặc hạ threshold 0.68–0.72, thử check ảnh xem hộp khoanh đúng chỗ. Quá thấp (0.5) dễ click chỗ nhầm. Test: xanh = thấy, đỏ = không; dấu + vàng = điểm click.
Thứ tự điển hình
Chọn App → Resize
→ Đợi hình “logo game” (timeout 20000)
→ Check ảnh popup
├ Thấy → Click ảnh X
└ Không → (bỏ qua)
→ Click ảnh Play (hoặc Tìm chữ OCR “Bắt đầu”)
→ OCR vàng → If / TelegramXem thêm: Cắt ảnh & Preview · Đợi hình (timeout 0 = check cũ) · Tìm chữ OCR