เนื้อหาบทความนี้สืบเนื่องมาจากเรื่อง Autoit Info แต่เนื่องจากเนื้อหาบทความนั้นเป็นแบบภาพนิ่งบทความนี้จะแนะนำแบบเป็นภาพเคลื่อนไหวแล้วกันครับสำหรับใครยังไม่ดูเรื่องก่อนหน้านี้ก็เข้าไปดูได้ที่ รู้จักกับ Autoit Info โปรแกรมเช็คค่าพิกัดค่าสีค่าหน้าต่าง ก่อนอื่นเรามาออกแบบโปรแกรมกันก่อน
ออกแบบโปรแกรม
โจทย์ : ต้องการเขียนโปรแกรมเช็คค่า สีตามตำแหน่งที่ระบุ โดยจะนำไปใช้กับเกม Cabal เซิฟเวอร์เถื่อนซักเซิฟนึง ตำแหน่งที่เลือกเช็คคือเลือดของ มอนเตอร์
เงื่อนไข : ถ้าเจอให้เด้ง MsgBox ว่าพบมอนเตอร์แล้ว
เอาโจทย์แบบง่ายๆก่อนครับ ไว้ใช้ต่อยอดในภายหลังได้
การตั้งค่าสำหรับหน้าจอเกมแบบ Client
**การตรวจเช็คสีเช็คพิกัดในหน้าต่างเกมเราจะเซ็ตให้เป็นแบบ Client นะครับโดยตั้งค่าดังนี้
ส่วน Magnify คือการดูสีขณะเราใช้ Finder Tool ตัวอย่างดังภาพข้างล่าง
ลงมือ
- หาเกมหรือโปรแกรมที่จะนำมาทดสอบ สำหรับผมจะใช้เป็นเกม Cabal เถื่อนเซิฟเวอร์นึง ทำการเปิดเข้าเกมและหามอนเตอร์เตรียมรอไว้เลย
- เปิด Autoit Info และ SciTE Script Editor จากนั้นตั้งค่าตรวจสีแบบ Client ตามที่แนะนำไปด้านบน
- สคริปที่จะเขียนมีดังนี้
#RequireAdmin;รันโปรแกรมแบบ Admin Opt("PixelCoordMode", 2);โหมดเช็คสีแบบ Client Global $hWnd = WinGetHandle("CABAL","");สร้างตัวแปรชื่อ hWnd เพื่อใช้เก็บชื่อเกมของเรา While 1;คำสั่งวนลูปไม่สิ้นสุด วนทำไปเรื่อยๆ $moncheck = PixelGetColor(671, 16,$hWnd);สร้างตัวแปรชื่อ moncheck และใช้คำสั่ง PixelGetColor ในการเช็คสีที่ตำแหน่ง 617,16ของเกมCABAL If WinActive($hWnd) Then;สร้างเงื่อนไขว่า ถ้าหน้าต่างเกมถูกเปิดให้ทำเงื่อนไขข้างล่างต่อ If $moncheck = 0xE53D3D Then;เงื่อนไข ถ้าตัวแปรเช็คสี moncheck มีค่าสีเท่ากับ 0xE53D3D จะทำตามเงื่อนไขต่อไป MsgBox(0,"เช็คมอนเตอร์","พบ Monster!!");เมื่อสีตรงแล้วจะเข้าคำสั่งนี้คือ แสดงหน้าต่างเด้งขึ้นมาว่า "พบ Monster!!" EndIf;จบคำสั่งเช็คสี EndIf;จบคำสั่งเช็คหน้าต่าง WEnd;จบลูปสรุปการทำงานของโปรแกรม
เมื่อ RUN โปรแกรมแล้วพอคลิกไปที่มอนเตอร์ ถ้าพบว่ามีแถบหลอดเลือดที่มีสีเท่ากับค่า 0xE53D3D จะเด้งหน้าต่าง MsgBox ว่า พบ Monster!! ออกมา
0 ความคิดเห็น