ทดลองมาหลายวันแล้วครับ
ชื่อเกมที่ทดสอบ [You must be registered and logged in to see this link.]
ลำดับขั้นตอนแบบคร่าวๆ
1กดบัฟ
2หามอนแล้วคลิกโจมตี (ใส่หน่วงเวลา)
3หามอนเพื่อกดเก็บของ
4กดเก็บของ
อยากให้ช่วยแนะนำเพิ่มเติมสคริปต์ครับในส่วนของ
1เมื่อกดโจมตีมอนแล้ว อยากให้เช็คเลือดมอน( 0x732626 )ถ้าตายแล้วจะได้ไปฟังชั่นต่อไปโดยไม่ต้องใช้วิธีเดิมคือใส่หน่วงเวลาไว้
2หลังจากมอนตายแล้ว มอนเกมนี้ไม่เปลี่ยนสี จึงสั่งให้กดคลิกที่ตัวมอนไม่ได้ เพราะอาจจะไปกดโจมตีมอนตัวต่อไปแทนที่จะกดเพื่อเก็บของ ผมจึงแก้ปัญหาโดยการใช้คำสั่งหาสีแทน โดยลดระยะกรอบในการหาให้แคบลง...มีวิธีอื่นที่ดีกว่านี้ไหมครับ (ที่คิดไว้คือ ในคำสั่งหาสีมอน อยากให้เริ่มหาจากจุดตรงกลางของตัวเกมแล้วขยายขอบเขตที่ละนิดคับ) หรือมีวิธีอื่นดีกว่านี้ โปรดชี้แนะด้วยครับ
ชื่อเกมที่ทดสอบ [You must be registered and logged in to see this link.]
ลำดับขั้นตอนแบบคร่าวๆ
1กดบัฟ
2หามอนแล้วคลิกโจมตี (ใส่หน่วงเวลา)
3หามอนเพื่อกดเก็บของ
4กดเก็บของ
อยากให้ช่วยแนะนำเพิ่มเติมสคริปต์ครับในส่วนของ
1เมื่อกดโจมตีมอนแล้ว อยากให้เช็คเลือดมอน( 0x732626 )ถ้าตายแล้วจะได้ไปฟังชั่นต่อไปโดยไม่ต้องใช้วิธีเดิมคือใส่หน่วงเวลาไว้
2หลังจากมอนตายแล้ว มอนเกมนี้ไม่เปลี่ยนสี จึงสั่งให้กดคลิกที่ตัวมอนไม่ได้ เพราะอาจจะไปกดโจมตีมอนตัวต่อไปแทนที่จะกดเพื่อเก็บของ ผมจึงแก้ปัญหาโดยการใช้คำสั่งหาสีแทน โดยลดระยะกรอบในการหาให้แคบลง...มีวิธีอื่นที่ดีกว่านี้ไหมครับ (ที่คิดไว้คือ ในคำสั่งหาสีมอน อยากให้เริ่มหาจากจุดตรงกลางของตัวเกมแล้วขยายขอบเขตที่ละนิดคับ) หรือมีวิธีอื่นดีกว่านี้ โปรดชี้แนะด้วยครับ
- Code:
Opt("MouseCoordMode", 2)
Opt("PixelCoordMode", 2)
Opt("CaretCoordMode", 2)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HotKeySet ( "{ESC}" ,"Terminate")
HotKeySet ( "{F4}" , "Pause")
Global $Paused
Func Terminate()
ConsoleWrite(' bot exit ' & @error & @crlf)
Exit
EndFunc
Func Pause()
$Paused = NOT $Paused
ConsoleWrite(' bot pause ' & @error & @crlf)
sleep(100)
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Global $GameHD ;ประกาศตัวแปร $GameHD เพื่อนำไปใช้ทั้งเกม
Global $begin = TimerInit(), $B1 = 1200, $B2 = 1800, $B3 = 1200, $B4 = 1200, $B5 = 1800,$B6 = 1780
AdlibRegister("buff", 200)
Global $monster[1] = [ 0x00FE00];สีมอน
Global $loot[4] = [ 0xA9A9A9,0x939393,0x3D0303,0x300850];สีไอเทมที่จะเก็บ
Func _PSsixLoadH($gtitle) ;ฟังก์ชันสำหรับตรวจหาหน้าต่างเกม
$GameHD = WinGetHandle($gtitle) ;ดึงเอาค่า Handle ของหน้าต่างเกมเก็บไว้ในตัวแปร $GameHD
If @error Then
MsgBox(4096, "Error", "ไม่พบหน้าต่างเกม") ;ถ้าไม่เจอหน้าต่างเกมแสดงกรอบหน้าต่างแจ้งให้ทราบ
Else
Return 1
EndIf
EndFunc
If _PSsixLoadH("Fantasy Online - The Epic Free MMORPG - Google Chrome") Then WinActivate($GameHD) ;ส่งค่าชื่อไตเติลเกมเข้าไปยังฟังก์ชัน หากตรวจพบก็จะสั่งให้เด้งหน้าต่างเกมขึ้นมา
While Sleep(100)
SearchMon() ;ค้นหา
Sleep(2000) ;หน่วงเวลาในการโจมตีมอนต่อ1ตัว
HP()
pickmon() ;เลือกมอนที่จะเก็บของ
Sleep(1000)
loot() ;เก็บของ
Sleep(100)
WEnd
;;;;;;;;;;;;;;;;;;;;;;ALL Function;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func SearchMon()
Sleep(100)
For $i = 0 To UBound($monster)-1
$coord = PixelSearch( 310,185,746,539, $monster[$i] )
If IsArray($coord) Then
ConsoleWrite(_GetTodaysDate() & 'Atkmon at' & $coord[0]&'x' & $coord[1] & @error & @crlf)
MouseClick("",$coord[0] , $coord[1],2,0) ;สั่งกดมอน
Sleep(100)
EndIf
Next
EndFunc
Func pickmon()
Sleep(100)
For $i = 0 To UBound($monster)-1
$coord = PixelSearch( 490,290,570,375, $monster[$i] )
If IsArray($coord) Then
MouseClick("",$coord[0] , $coord[1],1,0) ;สั่งกดมอน
Sleep(100)
EndIf
Next
EndFunc
Func loot()
For $i = 0 To UBound($loot)-1
$coord = PixelSearch( 568,382,654,469, $loot[$i] )
If IsArray($coord) Then
ConsoleWrite(_GetTodaysDate() & 'lootItem at' & $coord[0]&'x' & $coord[1] & @error & @crlf)
MouseClick("",$coord[0] , $coord[1],1,0) ;สั่งกดมอน
Sleep(1000)
EndIf
Next
EndFunc
Func HP()
sleep (100)
If PixelGetColor( 266,135) = 0x590000 Then ;หลอดเลือด 187-286
MouseClick("",552, 570,1,0)
sleep(3000)
MouseClick("",552, 570,1,0)
sleep(3000)
MouseClick("",552, 570,1,0)
sleep(3000)
EndIf
EndFunc
Func _GetTodaysDate($iReturnTime = 1)
Local $aMDay[8] = [7, "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat"], _
$aMonth[13] = [12, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], $aTime[2]=["",''&@HOUR&':'&@MIN&' =']
Return $aMDay[@WDAY]&',['&@MDAY&'/' & $aMonth[@MON] & '/' & @YEAR &']'& $aTime[$iReturnTime]
EndFunc ;==>_GetTodaysDate
func buff()
$Diff = Int(TimerDiff($begin)/1000)
If mod( $Diff, $B1) = 0 Then
;Send("2") ;ช่องสกิลที่ 2
MouseClick("",321, 570,1,0)
sleep(3000)
EndIf
If mod( $Diff, $B2) = 0 Then
;Send("3") ;ช่องสกิลที่ 3
MouseClick("",354, 570,1,0)
sleep(3000)
EndIf
If mod( $Diff, $B3) = 0 Then
;Send("4") ;ช่องสกิลที่ 4
MouseClick("",387, 570,1,0)
sleep(4000)
EndIf
If mod( $Diff, $B4) = 0 Then
;Send("5") ;ช่องสกิลที่ 5
MouseClick("",420, 570,1,0)
sleep(4000)
EndIf
If mod( $Diff, $B5) = 0 Then
;Send("8") ;ช่องสกิลที่ 8
MouseClick("",519, 570,1,0)
sleep(4000)
EndIf
If mod( $Diff, $B6) = 0 Then
;ไอเทมในช่องเก็บของช่องแรก
MouseClick("",772, 419,2,0)
sleep(2000)
EndIf
EndFunc
; พิกัดปุ่มกด
; 1 = 288, 570
; 2 = 321, 570
; 3 = 354, 570
; 4 = 387, 570
; 5 = 420, 570
; 6 = 453, 570
; 7 = 486, 570
; 8 = 519, 570
; 9 = 552, 570
; 0 = 585, 570