ก่อนอื่นต้องขอขอบคุณ คุณ POS และท่านผู้รู้ในบล็อกนี้ ที่ได้ให้ความรู้และแนวคิดต่างๆ ที่สามารถเอาไปประยุกต์ใช้ ได้อย่างดีเยื่ยม
หลังจากที่ได้ศึกษาในแต่ละบท และใน forum จากหลายๆท่าน แล้วนำมาทดลองเขียน script เพื่อทำบอทช่วยเล่น ซึ่งตอนนี้ มีข้อสงสัยเบื้องต้นที่จะรบกวนสอบถาม อยู่ประมาณนี้ครับ
1. หน้าต่างโปรแกรมที่ได้ ใส่รูปไว้และ skin พอ compile แล้วก็ยังแสดงอยู่ปกติ แต่ถ้าย้ายไป folder อื่นไม่ได้ ภาพก็จะหายไป พอจะมีแนวทางแก้ได้ ภาพ และ skin แอดไปใน exe เพียง file เดียวได้ไหมครับ เพื่อสะดวกในการนำไปใช้กับเครื่องอื่น
2 ปัญหาที่พบจากการเขียน script ที่ใช้คำสั่ง PixelGetColor, PixelSearch เมื่อนำไปทดลองใช้ ใน VM workstation พบว่าเมื่อเปิดพร้อมเกมส์แล้วภาพกระตุกมาก ทั้งๆที่ ปกติ เปิดเกมส์พร้อม Auto keyboard auto click CE หรือ WPE ก็สามารถเล่นได้ แต่เพียงแค่เปิด script ไปเปิดพร้อมเกมส์ เท่านั้นไม่ได้เปิดอย่างอื่น กลับกระตุกมากครับ รบกวนบอกสาเหตุและวิธีการแก้ พอจะได้ไหมครับ เคยลองทั้ง fix script และ แบบมี GUI ก็กระตุกทั้งคู่ (จอหลักใช้ได้ปกติครับ)
นี่เป็นตัวอย่าง script ที่ผมทดลองเขียนครับ ส่วนนี้สำหรับ เติมยาเมื่อหลอด status ลด
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("PSsix", 300, 191, 192, 124)
GUICtrlCreatePic(@ScriptDir& "\team.jpg",0,0,300,191, $WS_EX_TRANSPARENT )
$Label1 = GUICtrlCreateLabel("เลือกช่องยา ชนิดและ%ที่ต้องการ", 8, 8, 150, 17)
$Combo1 = GUICtrlCreateCombo("Q", 8, 70, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Combo2 = GUICtrlCreateCombo("W", 8, 102, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Combo3 = GUICtrlCreateCombo("E", 8, 134, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Combo4 = GUICtrlCreateCombo("A", 180, 70, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Combo5 = GUICtrlCreateCombo("S", 180, 102, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Combo6 = GUICtrlCreateCombo("D", 180, 134, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Checkbox1 = GUICtrlCreateCheckbox("HP 80%", 48, 70, 60, 20)
$Checkbox2 = GUICtrlCreateCheckbox("MP 80%", 48, 102, 60, 20)
$Checkbox3 = GUICtrlCreateCheckbox("SP 80%", 48,134, 60, 20)
$Checkbox4 = GUICtrlCreateCheckbox("HP 50%", 220, 70, 60, 20)
$Checkbox5 = GUICtrlCreateCheckbox("MP 50%", 220, 102, 60, 20)
$Checkbox6 = GUICtrlCreateCheckbox("SP 50%", 220,134, 60, 20)
$Button1 = GUICtrlCreateButton("START", 220, 8, 75, 25)
$Button2 = GUICtrlCreateButton("STOP", 220, 38, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$Dll = DllOpen (@ScriptDir& '\SkinH_EL.dll' )
DllCall ( $Dll, "int", "SkinH_AttachEx", "str",@ScriptDir &"\Skins\itunes.she", "str", "mhgd" )
Global $GameHD
Func _PSsixLoadH($gtitle)
$GameHD = WinGetHandle($gtitle)
If @error Then
MsgBox(4096, "Error", "ไม่พบหน้าต่างเกม")
Else
Return 1
EndIf
EndFunc
If _PSsixLoadH("Online") Then WinActivate($GameHD)
Opt("PixelCoordMode", 2)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
While Sleep(100)
If GUIGetMsg() = -3 Then Exit
If PixelGetColor(183, 7,$GameHD) = 0x262626 and GUICtrlRead($Checkbox1)=1 Then send (GUICtrlRead($Combo1))
If PixelGetColor(183, 21,$GameHD) = 0x262626 and GUICtrlRead($Checkbox2)=1 Then send (GUICtrlRead($Combo2))
If PixelGetColor(183, 35,$GameHD) = 0x262626 and GUICtrlRead($Checkbox3)=1 Then send (GUICtrlRead($Combo3))
If PixelGetColor(141, 7,$GameHD) = 0x262626 and GUICtrlRead($Checkbox4)=1 Then send (GUICtrlRead($Combo4))
If PixelGetColor(141, 21,$GameHD) = 0x262626 and GUICtrlRead($Checkbox5)=1 Then send ( GUICtrlRead($Combo5))
If PixelGetColor(141, 35,$GameHD) = 0x262626 and GUICtrlRead($Checkbox6)=1 Then send (GUICtrlRead($Combo6))
If GUIGetMsg()= $Button2 Then ExitLoop
If GUIGetMsg()= $GUI_EVENT_CLOSE Then Exit
WEnd
EndSwitch
WEnd
ขอขอบคุณล่วงหน้าด้วยครับ
หลังจากที่ได้ศึกษาในแต่ละบท และใน forum จากหลายๆท่าน แล้วนำมาทดลองเขียน script เพื่อทำบอทช่วยเล่น ซึ่งตอนนี้ มีข้อสงสัยเบื้องต้นที่จะรบกวนสอบถาม อยู่ประมาณนี้ครับ
1. หน้าต่างโปรแกรมที่ได้ ใส่รูปไว้และ skin พอ compile แล้วก็ยังแสดงอยู่ปกติ แต่ถ้าย้ายไป folder อื่นไม่ได้ ภาพก็จะหายไป พอจะมีแนวทางแก้ได้ ภาพ และ skin แอดไปใน exe เพียง file เดียวได้ไหมครับ เพื่อสะดวกในการนำไปใช้กับเครื่องอื่น
2 ปัญหาที่พบจากการเขียน script ที่ใช้คำสั่ง PixelGetColor, PixelSearch เมื่อนำไปทดลองใช้ ใน VM workstation พบว่าเมื่อเปิดพร้อมเกมส์แล้วภาพกระตุกมาก ทั้งๆที่ ปกติ เปิดเกมส์พร้อม Auto keyboard auto click CE หรือ WPE ก็สามารถเล่นได้ แต่เพียงแค่เปิด script ไปเปิดพร้อมเกมส์ เท่านั้นไม่ได้เปิดอย่างอื่น กลับกระตุกมากครับ รบกวนบอกสาเหตุและวิธีการแก้ พอจะได้ไหมครับ เคยลองทั้ง fix script และ แบบมี GUI ก็กระตุกทั้งคู่ (จอหลักใช้ได้ปกติครับ)
นี่เป็นตัวอย่าง script ที่ผมทดลองเขียนครับ ส่วนนี้สำหรับ เติมยาเมื่อหลอด status ลด
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("PSsix", 300, 191, 192, 124)
GUICtrlCreatePic(@ScriptDir& "\team.jpg",0,0,300,191, $WS_EX_TRANSPARENT )
$Label1 = GUICtrlCreateLabel("เลือกช่องยา ชนิดและ%ที่ต้องการ", 8, 8, 150, 17)
$Combo1 = GUICtrlCreateCombo("Q", 8, 70, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Combo2 = GUICtrlCreateCombo("W", 8, 102, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Combo3 = GUICtrlCreateCombo("E", 8, 134, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Combo4 = GUICtrlCreateCombo("A", 180, 70, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Combo5 = GUICtrlCreateCombo("S", 180, 102, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Combo6 = GUICtrlCreateCombo("D", 180, 134, 35, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Q|W|E|A|S|D")
$Checkbox1 = GUICtrlCreateCheckbox("HP 80%", 48, 70, 60, 20)
$Checkbox2 = GUICtrlCreateCheckbox("MP 80%", 48, 102, 60, 20)
$Checkbox3 = GUICtrlCreateCheckbox("SP 80%", 48,134, 60, 20)
$Checkbox4 = GUICtrlCreateCheckbox("HP 50%", 220, 70, 60, 20)
$Checkbox5 = GUICtrlCreateCheckbox("MP 50%", 220, 102, 60, 20)
$Checkbox6 = GUICtrlCreateCheckbox("SP 50%", 220,134, 60, 20)
$Button1 = GUICtrlCreateButton("START", 220, 8, 75, 25)
$Button2 = GUICtrlCreateButton("STOP", 220, 38, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$Dll = DllOpen (@ScriptDir& '\SkinH_EL.dll' )
DllCall ( $Dll, "int", "SkinH_AttachEx", "str",@ScriptDir &"\Skins\itunes.she", "str", "mhgd" )
Global $GameHD
Func _PSsixLoadH($gtitle)
$GameHD = WinGetHandle($gtitle)
If @error Then
MsgBox(4096, "Error", "ไม่พบหน้าต่างเกม")
Else
Return 1
EndIf
EndFunc
If _PSsixLoadH("Online") Then WinActivate($GameHD)
Opt("PixelCoordMode", 2)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
While Sleep(100)
If GUIGetMsg() = -3 Then Exit
If PixelGetColor(183, 7,$GameHD) = 0x262626 and GUICtrlRead($Checkbox1)=1 Then send (GUICtrlRead($Combo1))
If PixelGetColor(183, 21,$GameHD) = 0x262626 and GUICtrlRead($Checkbox2)=1 Then send (GUICtrlRead($Combo2))
If PixelGetColor(183, 35,$GameHD) = 0x262626 and GUICtrlRead($Checkbox3)=1 Then send (GUICtrlRead($Combo3))
If PixelGetColor(141, 7,$GameHD) = 0x262626 and GUICtrlRead($Checkbox4)=1 Then send (GUICtrlRead($Combo4))
If PixelGetColor(141, 21,$GameHD) = 0x262626 and GUICtrlRead($Checkbox5)=1 Then send ( GUICtrlRead($Combo5))
If PixelGetColor(141, 35,$GameHD) = 0x262626 and GUICtrlRead($Checkbox6)=1 Then send (GUICtrlRead($Combo6))
If GUIGetMsg()= $Button2 Then ExitLoop
If GUIGetMsg()= $GUI_EVENT_CLOSE Then Exit
WEnd
EndSwitch
WEnd
ขอขอบคุณล่วงหน้าด้วยครับ