Tư duy nền tảng cách hoạt động tool Clickermann
Code mẫu cuối bài đăng
Video giải thích chi tiết
Video 1: https://www.youtube.com/watch?v=XPus8qv-xNs
Video 2: https://www.youtube.com/watch?v=dGRnGsJW5bU
1. Gốc tọa độ của tool
Khi tool chạy nó sẽ quét từng điểm ảnh hay còn gọi là pixel (minh hoạt bằng các chấm đỏ). Mỗi điểm ảnh sẽ có 1 tọa độ và Mã màu riêng. Tool sẽ kiểm tra các điểm ảnh theo chiều từ trái qua phải, từ trên xuống dưới.
2. Cách hoạt động của tool
Giả sử mình có 1 file gồm các câu lệnh như trong hình, khi tool chạy nó sẽ bắt đầu kiểm tra các câu lệnh từ trên xuống dưới. Từ câu lệnh 1 => 2 => 3 =>... => Câu lệnh cuối, câu lệnh nào xảy ra thì thực hiện câu lệnh đó. Tool kiểm tra lần lượt từng câu lệnh chứ không kiểm tra đồng thời cùng 1 lúc tất cả các câu lệnh. Đối với các câu lệnh không thỏa mãn, tool vẫn kiểm tra nhưng khi thấy không thỏa mãn thì sẽ chuyển xuống câu lệnh dưới kiểm tra tiếp chứ không bỏ qua bất kỳ câu lệnh nào.Sau khi kiểm tra xong 1 vòng thì tool sẽ thực hiện một vòng kiểm tra mới từ đầu. Cứ như vậy lặp đi lặp lại đến khi nào dừng tool.
3. Tại sao lại cần GETSCREEN?
Lệnh GETSCREEN mang ý nghĩa: Chụp màn hình (lưu tạm vào bộ nhớ ảo, giống như chụp ảnh xong cầm tạm ở tay để kiểm tra chứ chưa cất hay lưu đi đâu cả)
Giả sử mình cho nhân vật di chuyển từ giữa màn hình qua trái màn hình. Từ lúc bắt đầu di chuyển tới khi di chuyển xong sang bên trái, nếu ở đầu tệp lệnh có đặt Getscreen thì nó sẽ chụp được ba ảnh như này (thực tế nó còn chụp được nhiều ảnh hơn thế này, mình chỉ lấy 3 hình để minh họa).
Bây giờ mình đặt lệnh Getscreen ngay ở đầu file, trong vòng chạy đầu, lệnh getscreen sẽ chụp màn hình cửa sổ hiện tại, sau đó sẽ dùng màn hình đó để kiểm tra lần lượt từng câu lệnh từ trên xuống dưới. Sau khi kiểm tra xong 1 vòng thì tệp lệnh sẽ chạy lại 1 vòng mới, lệnh getscreen đặt ở đâu sẽ chụp 1 màn hình mới, rồi dùng màn hình mới này để kiểm tra các câu lệnh phía dưới. Cứ như vậy lặp đi lặp lại Chụp ảnh màn hình => Kiểm tra lệnh => Chụp ảnh màn hình => Kiểm tra lệnh.... Khi nhân vật bò từ trái qua phải giả sử trong 10 giây thì tool đã chạy, chụp ảnh và kiểm tra được đâu đó khoảng 100 vòng.
NẾU KHÔNG ĐẶT LỆNH GETSCREEN Ở ĐÂU TỆP thì dù nhân vật có di chuyển hoàn toàn sang bên trái rồi nhưng màn hình dùng để kiểm tra các câu lệnh vẫn là màn hình Ảnh 1 tức lần chạy đầu tiên của tool chứ không phải màn hình Ảnh 3 do không được chụp mới màn hình
===> CHÚ Ý: Lệnh getscreen không được lạm dụng, phải hiểu được cơ chế chạy tool khi nào cần đặt getscreen để LÀM MỚI MÀN HÌNH. Đối với các tệp lệnh mà không cần sử dụng tới màn hình như : Click chuột, bấm phím,... thì không cần thiết dùng getscreen.
------------------------------- CODE MẪU -----------------------------
getscreen
if_pixel_in(450,389,450,389,255)
print("sang man")
lclick(1,1)
waitms(100)
end_if
if( pxl(628,287) =1603839 )
print("Chon pho ban")
LCLICK(590,214) // Chon pho ban
wait(1)
LCLICK(360,193) // Chon chuong
wait(1)
LCLICK(302,239) // Chon map
wait(1)
LCLICK(474,503) // Chon ai anh hung
wait(1)
LCLICK(496,566) // Dong y
wait(0.5)
end_if
if(pxl(945,569) =12515071 )
print("Sang sang")
waitms(100)
LCLICK(903,234) // Dan duong
waitms(100)
DBLCLICK(951,237) // kickpow
waitms(500)
LCLICK(952,487) // bat dau
waitms(500)
end_if
if_pixel_in(342,314,342,314,3523833) // Màu chữ Đến lượt bạn
print("TURN - ĐẾN LƯỢT BẠN")
keypress(#left)
waitms(200)
keydown(75)
wait(3)
keyup(75)
waitms(200)
getscreen
if( pxl(15,601) = 238) // -6 trai
// lenh ban 1
print("Goc -6 trai")
keypress(#right)
for($z=0,$z<20)
keypress(#up)
end_cyc
waitms(100)
keydown(68)
waitms(100)
keypress(#b)
keypress(#1)
keypress(#4)
keypress(#8)
wait(2)
keyup(68)
else
if( pxl(14,596) = 241)
print("Goc 0 trai")
keypress(#right)
for($z=0,$z<50)
keypress(#up)
end_cyc
waitms(100)
keydown(68)
waitms(100)
keypress(#b)
keypress(#1)
keypress(#4)
keypress(#8)
wait(2)
keyup(68)
end_if// Màu kim góc 0 trai
end_if// Màu kim góc 6 trai
end_if
Nhận xét
Đăng nhận xét