ฟอรั่มของบล็อก http://pssix.blogspot.com


รบกวนพี่ๆเพื่อนๆหน่อยครับ ผมอยากให้มันทำซ้ำแต่ใช้กับคำสั่งชุดนี้ไม่ได้

Share

pssixlover
สมาชิกทั่วไป
สมาชิกทั่วไป


จำนวนข้อความ : 15
ความนิยม : 0
เข้าร่วมเมื่อ : 12/02/2012

รบกวนพี่ๆเพื่อนๆหน่อยครับ ผมอยากให้มันทำซ้ำแต่ใช้กับคำสั่งชุดนี้ไม่ได้

ตั้งหัวข้อ by pssixlover on 12/02/12, 06:08 pm

สวัสดีพี่ Admin รวมถึงพี่ๆเพื่อนๆทุกท่านครับ ผมมือใหม่นะครับ เพิ่งเข้ามาดูได้วัน2 วัน ก็ขออนุญาติ ยืมสคริปบางส่วน จากในบล๊อค มาลองดัดแปลงหรือประยุกต์ใช้ดูหน่อยนะครับ เพราะเพิ่งอ่านไปไม่กี่บทเอง คำสั่งต่างๆยังไม่ค่อยรู้จักครับ ยังไงขออนุญาติยืมสคริปบางส่วนจาก

pssix.blogspot.com/2011/06/autoit-1.html เพื่อใช้ทดสอบด้วยนะครับ



สคริปชุดนี้นะครับ ใช้งานได้ปกติ




Hotkeyset("{Esc}","stop")



Global $GameHD

Func _PSsixLoadH($gtitle)
$GameHD = WinGetHandle($gtitle)
If @error Then
MsgBox(4096, "Error", "ไม่พบหน้าต่างเกม")
Else
Return 1
EndIf
EndFunc

If _PSsixLoadH("[#] xxxx") Then WinActivate($GameHD)

MouseClick("left",1319, 678,1,10)
Sleep(5000)


Global $GameHD

Func _BBtest($gtitle)
$GameHD = WinGetHandle($gtitle)
If @error Then
MsgBox(4096, "Error", "ไม่พบหน้าต่างเกม")
Else
Return 1
EndIf
EndFunc

If _BBtest("xxxx") Then WinActivate($GameHD)

MouseClick("left",984, 552,1,10)


Func Stop()
Exit
EndFunc



แต่พอจะให้มันทำซ้ำตามกระทู้ของพี่ Pos ในกระทู้นี้

pssix.blogspot.com/2009/05/scriptwriter-autoit.html

5. พิมพ์คำสั่งWhile 1 และ WEnd ครอบชุดคำสั่งที่ต้องการให้ทำซ้ำๆ วนไปเรื่อยๆ (ถ้าไม่ใช้ชุดคำสั่งนี้ โปรแกรมจะทำซ้ำครั้งเดียวแล้วหยุด)

พอครอบ While 1 และ WEnd ตามที่พี่ Pos แนะนำ มันใช้ไม่ได้กับสคริปชุดนี้ครับ

มันขึ้นแบบนี้

D:\autoitit\testlonetime.au3(8,1) : ERROR: missing Wend.
Func
^
D:\autoitit\testlonetime.au3(4,1) : REF: missing Wend.
While
^
D:\autoitit\testlonetime.au3(38,1) : ERROR: syntax error
WEnd
^
D:\autoitit\testlonetime.au3(2,25) : ERROR: stop(): undefined function.
Hotkeyset("{Esc}","stop")
~~~~~~~~~~~~~~~~~~~~~~~~^
D:\autoitit\testlonetime.au3 - 3 error(s), 0 warning(s)

ท่านใดพอรู้ หรือ พี่ Pos รบกวนสอบถามหน่อยครับว่าเพราะอะไร หรือผมทำอะไรผิด

หรือมีคำสั่งอื่นๆที่สั่งให้ทำซ้ำ เหมือนคำสั่ง Repeat หรือ Loop อะไรพวกนั้น ไหมครับ

ขอบพระคุณมากครับ




avatar
max30012540
PSsix Member High Class
PSsix Member High Class

PSsix Program Coder
จำนวนข้อความ : 98
ความนิยม : 10
เข้าร่วมเมื่อ : 10/10/2011
อายุ : 19

Re: รบกวนพี่ๆเพื่อนๆหน่อยครับ ผมอยากให้มันทำซ้ำแต่ใช้กับคำสั่งชุดนี้ไม่ได้

ตั้งหัวข้อ by max30012540 on 12/02/12, 07:14 pm

ห้ามใช้ฟังก์ชั้นทำซ้ำ Func และ HotKeySet ครับ em234 ดังนั้น โค้ดจะเป็นตามนี้ครับ em218
Code:
Hotkeyset("{Esc}","stop")
Global $GameHD
While 1
If _PSsixLoadH("[#] xxxx") Then WinActivate($GameHD)
MouseClick("left",1319, 678,1,10)
Sleep(5000)
Global $GameHD
If _BBtest("xxxx") Then WinActivate($GameHD)
MouseClick("left",984, 552,1,10)
WEnd
Func _BBtest($gtitle)
$GameHD = WinGetHandle($gtitle)
If @error Then
MsgBox(4096, "Error", "ไม่พบหน้าต่างเกม")
Else
Return 1
EndIf
EndFunc
Func _PSsixLoadH($gtitle)
$GameHD = WinGetHandle($gtitle)
If @error Then
MsgBox(4096, "Error", "ไม่พบหน้าต่างเกม")
Else
Return 1
EndIf
EndFunc
Func Stop()
Exit
EndFunc

pssixlover
สมาชิกทั่วไป
สมาชิกทั่วไป


จำนวนข้อความ : 15
ความนิยม : 0
เข้าร่วมเมื่อ : 12/02/2012

Re: รบกวนพี่ๆเพื่อนๆหน่อยครับ ผมอยากให้มันทำซ้ำแต่ใช้กับคำสั่งชุดนี้ไม่ได้

ตั้งหัวข้อ by pssixlover on 12/02/12, 07:47 pm

ได้แล้วครับ ขอบคุณมากนะครับ สคริปผมมั่วมากเลยนะครับ จากที่ดูที่พี่max30012540 แก้มาให้

แต่ก็งงนิดๆ มันมั่ว เรียงกันไม่ถูกต้องแต่มันก็ทำงานได้หรอครับ em228

แล้วผมรบกวนสอบถามอีกข้อนะครับ เวลาสั่งคลิกจุดที่สคริปไว้ บางทีมันคลิกติดบ้างไม่ติดบ้าง

มันเป็นเพราะอะไรครับ


pssixlover
สมาชิกทั่วไป
สมาชิกทั่วไป


จำนวนข้อความ : 15
ความนิยม : 0
เข้าร่วมเมื่อ : 12/02/2012

Re: รบกวนพี่ๆเพื่อนๆหน่อยครับ ผมอยากให้มันทำซ้ำแต่ใช้กับคำสั่งชุดนี้ไม่ได้

ตั้งหัวข้อ by pssixlover on 12/02/12, 07:56 pm

โอย ลืมครับรบกวนพี่ๆอีกคำถามครับ

ถ้าผมทดสอบ สคริปในเกมส์ออนไลน์ ผมสามารถเขียนให้มัน คลิกหรือเลือกทำงานตามข้อความที่ปรากฏบนหน้าจอเหมือนในกระทู้นี้ได้ไหมครับ

pssix.blogspot.com/2008/09/autoit-2.html

ตัวอย่าง สคริปจากในกระทู้นั้นนะครับ

Code:
Run("kmp")
WinWaitActive("Installer","")
Send("{ENTER}")
WinWaitActive("","Welcome")
Send("{ENTER}")
WinWaitActive("","License Agreement")
Send("{ENTER}")
WinWaitActive("","Choose Components")
send("{TAB}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{SPACE}{ENTER}")
WinWaitActive("","Install Location")
Send("C:\KMPlayer")
Send("{ENTER}")
WinWaitActive("","Completing")
Send("{SPACE}{ENTER}")

ผมสามารถดัดแปลง จากตัวหนังสือที่ปรากฏในเกมส์แทนได้ไหมครับ เช่น สคริป

Code:
Run("kmp")
WinWaitActive("Hpอยู่ในระดับต่ำ","")  <======มันตรวจจับตัวหนังสือที่แสดงในเกมส์ได้ไหมครับ
Send("{ENTER}")
WinWaitActive("","Spอยู่ในระดับต่ำ")  <======มันตรวจจับตัวหนังสือที่แสดงในเกมส์ได้ไหมครับ
Send("{ENTER}")
WinWaitActive("","คุณกำลังเหนื่อยล้า") <======มันตรวจจับตัวหนังสือที่แสดงในเกมส์ได้ไหมครับ
Send("{ENTER}")
WinWaitActive("","Choose Components")
send("{TAB}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{SPACE}{ENTER}")
WinWaitActive("","Install Location")
Send("C:\KMPlayer")
Send("{ENTER}")
WinWaitActive("","Completing")
Send("{SPACE}{ENTER}")

ผมก็พอเข้าใจว่าจริงๆใช้การตรวจจับสีได้อยู่แล้ว ถ้าต้องการให้สคริปทำงานในการเติม hp mp เวลาถึงขีดที่กำหนด แต่อยากทราบว่าเราสามารถประยุกต์แบบนี้แทนการจับสีได้ไหมครับ ถ้าต้องการ ให้ สคริปสั่งกดเติมHp Mp หรือ นั่ง เวลา ตรวจจับตัวหนังสือเตือนต่างๆภายในเกมส์ได้ เหมือนที่ใช้ auto install kmp อะไรแบบนั้นน่ะครับ

ผิดถูกหรือผมมั่วอะไรตรงไหนรบกวนช่วยชี้แนะด้วยนะครับ ขอบพระคุณมากครับ
avatar
max30012540
PSsix Member High Class
PSsix Member High Class

PSsix Program Coder
จำนวนข้อความ : 98
ความนิยม : 10
เข้าร่วมเมื่อ : 10/10/2011
อายุ : 19

Re: รบกวนพี่ๆเพื่อนๆหน่อยครับ ผมอยากให้มันทำซ้ำแต่ใช้กับคำสั่งชุดนี้ไม่ได้

ตั้งหัวข้อ by max30012540 on 12/02/12, 08:53 pm

pssixlover พิมพ์ว่า:โอย ลืมครับรบกวนพี่ๆอีกคำถามครับ

ถ้าผมทดสอบ สคริปในเกมส์ออนไลน์ ผมสามารถเขียนให้มัน คลิกหรือเลือกทำงานตามข้อความที่ปรากฏบนหน้าจอเหมือนในกระทู้นี้ได้ไหมครับ

pssix.blogspot.com/2008/09/autoit-2.html

ตัวอย่าง สคริปจากในกระทู้นั้นนะครับ

Code:
Run("kmp")
WinWaitActive("Installer","")
Send("{ENTER}")
WinWaitActive("","Welcome")
Send("{ENTER}")
WinWaitActive("","License Agreement")
Send("{ENTER}")
WinWaitActive("","Choose Components")
send("{TAB}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{SPACE}{ENTER}")
WinWaitActive("","Install Location")
Send("C:\KMPlayer")
Send("{ENTER}")
WinWaitActive("","Completing")
Send("{SPACE}{ENTER}")

ผมสามารถดัดแปลง จากตัวหนังสือที่ปรากฏในเกมส์แทนได้ไหมครับ เช่น สคริป

Code:
Run("kmp")
WinWaitActive("Hpอยู่ในระดับต่ำ","")  <======มันตรวจจับตัวหนังสือที่แสดงในเกมส์ได้ไหมครับ
Send("{ENTER}")
WinWaitActive("","Spอยู่ในระดับต่ำ")  <======มันตรวจจับตัวหนังสือที่แสดงในเกมส์ได้ไหมครับ
Send("{ENTER}")
WinWaitActive("","คุณกำลังเหนื่อยล้า") <======มันตรวจจับตัวหนังสือที่แสดงในเกมส์ได้ไหมครับ
Send("{ENTER}")
WinWaitActive("","Choose Components")
send("{TAB}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{SPACE}{ENTER}")
WinWaitActive("","Install Location")
Send("C:\KMPlayer")
Send("{ENTER}")
WinWaitActive("","Completing")
Send("{SPACE}{ENTER}")

ผมก็พอเข้าใจว่าจริงๆใช้การตรวจจับสีได้อยู่แล้ว ถ้าต้องการให้สคริปทำงานในการเติม hp mp เวลาถึงขีดที่กำหนด แต่อยากทราบว่าเราสามารถประยุกต์แบบนี้แทนการจับสีได้ไหมครับ ถ้าต้องการ ให้ สคริปสั่งกดเติมHp Mp หรือ นั่ง เวลา ตรวจจับตัวหนังสือเตือนต่างๆภายในเกมส์ได้ เหมือนที่ใช้ auto install kmp อะไรแบบนั้นน่ะครับ

ผิดถูกหรือผมมั่วอะไรตรงไหนรบกวนช่วยชี้แนะด้วยนะครับ ขอบพระคุณมากครับ
อันนี้ผมไม่ทราบจริงๆครับ เพราะผมไม่ได้เล่นเกมส์ คงต้องรอท่าน aut หรือท่นอื่นๆมาตอบครับ

pssixlover
สมาชิกทั่วไป
สมาชิกทั่วไป


จำนวนข้อความ : 15
ความนิยม : 0
เข้าร่วมเมื่อ : 12/02/2012

Re: รบกวนพี่ๆเพื่อนๆหน่อยครับ ผมอยากให้มันทำซ้ำแต่ใช้กับคำสั่งชุดนี้ไม่ได้

ตั้งหัวข้อ by pssixlover on 12/02/12, 09:12 pm

ครับผม ยังไงก็ขอบคุณมากเลยนะครับ

ท่านใดพอทราบรบกวนทีนะครับ em218
avatar
POS
PSsix
PSsix


จำนวนข้อความ : 1151
ความนิยม : 323
เข้าร่วมเมื่อ : 19/07/2010

Re: รบกวนพี่ๆเพื่อนๆหน่อยครับ ผมอยากให้มันทำซ้ำแต่ใช้กับคำสั่งชุดนี้ไม่ได้

ตั้งหัวข้อ by POS on 13/02/12, 11:01 am

ลักษณะนี้ต้องตรวจจาก memory ครับ โดยใช้ CE หาแอดเดรส แล้วเขียนสคริปต์ดึงเอาข้อมูลออกมา รายละเอียดการเขียนสคริปต์

[You must be registered and logged in to see this link.]


||----------------------------------------------------------------------------------------------------------------||

กลุ่ม AutoIt ในเฟสบุ๊ค
[You must be registered and logged in to see this link.]

++++++++++++++++++++++++++++++++++++++++++++
pssix.blogspot.com

pssixlover
สมาชิกทั่วไป
สมาชิกทั่วไป


จำนวนข้อความ : 15
ความนิยม : 0
เข้าร่วมเมื่อ : 12/02/2012

Re: รบกวนพี่ๆเพื่อนๆหน่อยครับ ผมอยากให้มันทำซ้ำแต่ใช้กับคำสั่งชุดนี้ไม่ได้

ตั้งหัวข้อ by pssixlover on 13/02/12, 01:30 pm

ขอบคุณพี่ Pos มากครับ สำหรับคำตอบ


ผมขออนุญาติตั้งคำถามอีกสักคำถาม แต่เป็นการตั้งกระทู้ใหม่นะครับ เพราะเนื้อหาและคำถามเรื่องคนละเรื่องกันแล้ว

ยังไงขอบคุณมากๆเลยครับสำหรับทุกคำตอบ em218



    เวลาขณะนี้ 25/03/17, 02:53 pm