สร้างบอทเกม Cabal ตีเองทับจอได้

 สำหรับใครที่เข้ามาคงรู้จักเกม Cabal กันอยู่แล้วนะครับ Serverที่นำมาใช้ทดสอบคือเถื่อนเซิฟเวอร์นึงนะครับ เอาหละไปลงมือทำกันเลย

สิ่งที่คาดหวังจะทำได้

  1. โปรแกรมจะทำงานก็ต่อเมื่อคลิกเมาส์เข้าไปยังเกมก่อน หรือคือ ต้อง Activeหน้าเกมก่อน
  2. เช็คเลือดมอนเตอร์ได้เมื่อสั่งตี เพื่อไม่ให้วิ่งตีมั่วสลับไปๆมาๆ
  3. กดสกิว แบบพับจอได้
  4. กดเลือกมอนเตอร์ใกล้ตัว แบบพับจอได้
  5. จากข้อ 3และ4 ถ้าใช้แบบพับจอผมได้ทดลองแล้ว แต่จะเช็คสีแบบพับจอไม่ได้จึงทำให้อาจจะต้องตีมั่วหรือตั้งหน่วงเวลาเอาได้แทน
  6. เก็บของได้

สิ่งที่ต้องมี

  1. Autoit Script Editor และ Autoit Windows Info
  2. ตัวเกม Cabal เซิฟเวอร์เถื่อนซักเซิฟนึง

ลงมือทำ

  • การทำเช็คหลอดเลือด มอนเตอร์ อ้างอิงบทความ : การหาค่าตำแหน่งพิกัด และ เช็คสี Autoit Info x,y color เบื้องต้น
  • Tips เล็กน้อยในการเลือกมอนเตอร์ การเลือกมอนเตอร์ในเกม Cabal ค่า Defaultดั้งเดิมคือ กดตัว Z แต่การใช้คำสั่ง ControlSend ไม่สามารถใช้ได้ตอนพับจอ สามารถใช้ได้แต่เมาส์เท่านั้น ดังนั้นให้เพื่อนๆไปที่การตั้งค่าปุ่มจากนั้นปรับจาก Z เป็นปุ่มลูกกลิ้งกลางเมาส์ใช้การกดคลิกลงไปนะครับจะกลายเป็นคำว่า WheelDown
  • การใช้งานสกิลแบบพับหน้าจอก็เช่นเดียวกันครับ ให้ใช้คำสั่ง ControlClick แทน ControlSend ทำการหาค่าพิกัดโดยใช้ Autoit Windows Info หาตั้งแต่สกิว 1-6 แล้วกัน ขนาดหน้าต่างเกมของผมคือ 1280x1024 ครับ เผื่อใครจะทำตาม
  • พิกัด x,y ของช่องสกิลของผมมีดังนี้ครับ
    1 = 517, 891
    2 = 566, 887
    3 = 612, 889
    4 = 657, 891
    5 = 706, 889
    6 = 753, 889
  • ทดสอบการกดแบบ ControlClick ทั้ง 6ตำแหน่งด้วย Code ดังนี้

  • ต่อไปลองสั่ง คลิกลูกกลิ้งกลางเมาส์ ด้วย ControlClick middle กดตำแหน่ง x,y ผมแนะนำให้เลือกตัวแหน่งนี่ไม่มีอะไรบัง ไม่รู้เกี่ยวป่าวนะครับ แต่ผมเลือกใช้ตำแหน่งกลางจอเลยได้เป็นตำแหน่ง 830, 389 จากนั้นทดสอบกันครับ
  • จากนั้นนำ code ทั้ง 3 คือ 1.เช็คเลือดมอนเตอร์ 2.คลิกขวาSkill 3.เลือกมอนเตอร์ มาผสมกันตามแต่การออกแบบก็จะได้โค้ดดังข้างล่างนี้ครับ
#RequireAdmin
Opt("PixelCoordMode", 2)

HotKeySet("{ESC}","exitpg")
$Game = WinGetHandle("XTRA CABAL (NORMAL MODE)","")

While 1
	$colmon = PixelGetColor(672, 27,$Game)
	If $colmon = 0xFEB50F Then
		ControlClick($Game,"","","right",1,566, 887)
		Sleep(1000)
		ControlClick($Game,"","","right",1,612, 889)
		Sleep(1000)
		ControlClick($Game,"","","right",1,657, 891)
		Sleep(1000)
		ControlClick($Game,"","","right",1,706, 889)
		Sleep(1000)
		ControlClick($Game,"","","right",1,753, 889)
		Sleep(1000)
	Else
		ControlClick($Game,"","","middle",1,830, 389)
	EndIf
WEnd

Func exitpg()
	Exit
EndFunc

แบบนี้สามารถทับจอได้แต่ห้ามมีอะไรมาบังหลอดเลือดนะครับ โปรแกรมเช็คสีไม่เจอ

แสดงความคิดเห็น

0 ความคิดเห็น