การหาค่าตำแหน่งพิกัด และ เช็คสี Autoit Info x,y color เบื้องต้น

 เนื้อหาบทความนี้สืบเนื่องมาจากเรื่อง Autoit Info แต่เนื่องจากเนื้อหาบทความนั้นเป็นแบบภาพนิ่งบทความนี้จะแนะนำแบบเป็นภาพเคลื่อนไหวแล้วกันครับสำหรับใครยังไม่ดูเรื่องก่อนหน้านี้ก็เข้าไปดูได้ที่ รู้จักกับ Autoit Info โปรแกรมเช็คค่าพิกัดค่าสีค่าหน้าต่าง ก่อนอื่นเรามาออกแบบโปรแกรมกันก่อน

ออกแบบโปรแกรม

โจทย์ : ต้องการเขียนโปรแกรมเช็คค่า สีตามตำแหน่งที่ระบุ โดยจะนำไปใช้กับเกม Cabal เซิฟเวอร์เถื่อนซักเซิฟนึง ตำแหน่งที่เลือกเช็คคือเลือดของ มอนเตอร์
เงื่อนไข : ถ้าเจอให้เด้ง MsgBox ว่าพบมอนเตอร์แล้ว
เอาโจทย์แบบง่ายๆก่อนครับ ไว้ใช้ต่อยอดในภายหลังได้
การตั้งค่าสำหรับหน้าจอเกมแบบ Client
**การตรวจเช็คสีเช็คพิกัดในหน้าต่างเกมเราจะเซ็ตให้เป็นแบบ Client นะครับโดยตั้งค่าดังนี้
ส่วน Magnify คือการดูสีขณะเราใช้ Finder Tool ตัวอย่างดังภาพข้างล่าง

ลงมือ

  1. หาเกมหรือโปรแกรมที่จะนำมาทดสอบ สำหรับผมจะใช้เป็นเกม Cabal เถื่อนเซิฟเวอร์นึง ทำการเปิดเข้าเกมและหามอนเตอร์เตรียมรอไว้เลย
  2. เปิด Autoit Info และ SciTE Script Editor จากนั้นตั้งค่าตรวจสีแบบ Client ตามที่แนะนำไปด้านบน
  3. ให้สังเกต แถบหลอดเลือดของมอนเตอร์ทางด้านซ้ายให้ใช้ Autoit Info มาจับสีบริเวณด้านซ้ายให้มากที่สุด
  4. สิ่งที่ต้องใช้ถัดไปก็คือ ตามที่วงเขียวไว้ครับ มีดังนี้ Title, Position, Color ซึ่งของผมจะมี Title="CABAL", Position="671,16", Color="0xE53D3D"
  5. สคริปที่จะเขียนมีดังนี้
#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 ความคิดเห็น