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


ต้องเขียน Script ยังไงให้กด เติม Hp จนถึงค่าสีที่เรากำหนดแล้วจึงออกจากการทำงาน. . . .

Share

test_music
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 7
เข้าร่วมเมื่อ : 05/08/2013

ต้องเขียน Script ยังไงให้กด เติม Hp จนถึงค่าสีที่เรากำหนดแล้วจึงออกจากการทำงาน. . . .

ตั้งหัวข้อ by test_music on 25/12/13, 12:47 pm

Code:
#cs==========================
Ai xxx ออนไลน์
ทำเำพื่อศึกษา การใช้โปรแกรม Autoit เท่านั้น
Srcip ส่วนมากได้มาจาก Blog : http://pssix.forumotion.com
#ce==========================

HotKeySet("{ESC}", "stop")  ;เริ่มต้นฟั่งชั่นหยุดการทำงาร

Opt("MouseCoordMode", 2)
Opt("PixelCoordMode", 2)
Opt("CaretCoordMode", 2)

Global $gamexxx

Func _FindWindowGame($Title)
$gamexxx = WinGetHandle($Title)
If @error Then
MsgBox(0,"x_x ไม่พบหน้าต่างเกมส์", "ยังไม่ได้่เปิดเกมส์ Ai ไม่ทำงานนะ")
Else
Return 1
EndIf
EndFunc


If _FindWindowGame("xxx Online") Then WinActivate($gamexxx)
Sleep(1000)


Func CheckHp()
if PixelGetColor(177, 28) = 0xFFFF00 Then
Send("0")
Sleep(300)
EndIf
EndFunc

Func AttackMon()
Sleep(1000)
Send("{TAB}")
Sleep(2000)
ControlSend($gamexxx, "", "", "1")
Sleep(3000)
ControlSend($gamexxx, "", "", "2")
Sleep(1000)
ControlSend($gamexxx, "", "", "3")
Sleep(1000)
ControlSend($gamexxx, "", "", "4")
Sleep(2000)
ControlSend($gamexxx, "", "", "3")
Sleep(1000)
ControlSend($gamexxx, "", "", "4")
Sleep(1000)
ControlSend($gamexxx, "", "", "{SPACE}")
Sleep(2000)
ControlSend($gamexxx, "", "", "{SPACE}")
Sleep(2000)
EndFunc

While 1
CheckHp()
AttackMon()
WEnd

;จบฟั่งชั่นหยุดการทำงาน
Func stop()
MsgBox(0,"Stop Ai", "หยุดการทำงาน Ai เรียบร้อย")
Sleep(500)
Exit
EndFunc
 
จาก code ผมสั่งให้กด Tab แล้ว ส่งค่าโจมตีมอนนะ
แต่จะเขียน Scriptยังไงให้ เช็คค่า สีจากการกด TAB ก่อน แล้วค่อยให้ส่งค่าไปโจมตีมอนเตอร์น่ะครับ
และพอมอนตายแล้วผมควรจะเขียน Script ยังไงให้เช็คค่าสีหลังจากมอนตายแล้วค่อยไปเริ่ม กด Tab ต่อไป-*-/
 
การ เช็ค Hp ผมกำหนดจุดสีตอน Hp ลดไว้แล้วกด 0(ศูยน์)
เราจะเขียน Scipt ยังไงให้ กดเติม Hp ไปจนกว่าถึงจุดสีที่กำหนด(จุดสีที่กำหนดผมมีแต่เขียน script ไม่เป็น)
 
ปัญหาอีกอย่างคือ ผมอยากให้ ฟังชั่น CheckHp และ Attack ทำงานคู่กันไปน่ะครับ
แบบไม่ต้องรอให้จบ ฟังชั่นตีมอนแล้วค่อยเติมHp เพราะ ตัวละครจะเดี้ยงก่อน -*-


แก้ไขล่าสุดโดย test_music เมื่อ 01/04/14, 03:16 pm, ทั้งหมด 1 ครั้ง (Reason for editing : แก้ไขเพื่อเซ็นเซอร์ชื่อเกมส์ ขอรับ)
avatar
kobtadam
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 6
เข้าร่วมเมื่อ : 28/12/2013

Re: ต้องเขียน Script ยังไงให้กด เติม Hp จนถึงค่าสีที่เรากำหนดแล้วจึงออกจากการทำงาน. . . .

ตั้งหัวข้อ by kobtadam on 05/01/14, 03:43 am

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

ส่วนตัว Attack ก็ ทำโปรแกรม ขึ้นมาอีกอัน คอมฟายออกมาเปน โปรแกรมเช็คเลือด และ โปรแกรม Attack เราว่าแบบนี้ง่ายก่านะ ถ้าเฮาไม่เทพเขียนโปรแกรมงะ T.T แบบนี้ก็จะช่วยปัญหาที่ ทำงานช้าของโปรแกรม ได้นะ

avatar
flapjack
PSsix Member Super Class III
PSsix Member Super Class III

PSsix Moderator PSsix Master PSsix Game Coder
จำนวนข้อความ : 313
ความนิยม : 74
เข้าร่วมเมื่อ : 05/10/2010

Re: ต้องเขียน Script ยังไงให้กด เติม Hp จนถึงค่าสีที่เรากำหนดแล้วจึงออกจากการทำงาน. . . .

ตั้งหัวข้อ by flapjack on 08/01/14, 01:13 am

เรื่องการเช็คสี ลองอ่านตามลิงค์นี้ดูน่ะครับ [You must be registered and logged in to see this link.]

ส่วนเรื่องจะทำยังไงให้มอนเตอร์ตีให้ตายก่อนแล้วค่อยตีตัวต่อไป และ เรื่องการเช็ค HP ตามพิกัด ลองดูลิงค์แล้วประยุกต์เอาน่ะครับ[You must be registered and logged in to see this link.]

และเรื่อง เช็ค HP พร้อมกันไประหว่างการ ตี (จะให้พร้อมกันจริงๆ ก็คงต้องแยกสคริป ออกเป็น 2 ไฟล์ ตามคุณ kobtadam )
แต่ถ้าอยากเช็คในสคริปเดียวกันก็ใส่ฟังก์ชั้นตอนระหว่างตีก็ได้ครับ (ถึงอาจจะไม่พร้อมกัน แต่การ Run สคริปก็มีความเร็วจนพอตัวเหมือนกัน ครับ)

loveapple244
PSsix Member Super Class II
PSsix Member Super Class II

PSsix Game Coder
จำนวนข้อความ : 160
ความนิยม : 9
เข้าร่วมเมื่อ : 15/07/2011

Re: ต้องเขียน Script ยังไงให้กด เติม Hp จนถึงค่าสีที่เรากำหนดแล้วจึงออกจากการทำงาน. . . .

ตั้งหัวข้อ by loveapple244 on 10/01/14, 11:30 am

นายใส่ตัวแปลผิดอะ นายประกาศ Global $gamexxx คุมสคิปแต่กลับใช้ $game400 เปลี่ยนใช้ $gamexxx
$game400 = WinGetHandle($Title) ด้วย เรียกหน้าต่างด้วย WinActivate($gamexxx)แต่กับประกาศ $game400ล
แล้วก็เช็กด้วยว่าเกมส์นั้นมันใช้ controlsend ได้หรือเปล่าถ้าไม่ได้ให้เลิกใช้ไปใช้ Sendทั้งหมดแทนครับ send มันจะใช้ได้เกือบทุกเกมส์แต่contronใช้ได้กับโปรแกรมเกมส์รองรับอะหรือไม่ไปดาวโหลดของพี่ pos ให้มองให้ comtrolแล้วยัดพวกนี้ใส่ลงไปแต่ถ้าวินโดว์ 64 ก็จะผ่านหมดนะเว้นติดตัวป้องกันWhile 1CheckHp()AttackMon()ให้เพิ่มsleep(ในนี้ใส่10-100เพราะเราลองแล้วมันเหมือนจะไวไปอ่า)WEndif PixelGetColor(177, 28) = 0xFFFF00 ThenSend("0")นี้ก็ตามที่flapjackระเอียดยิบที่นายใช้มันก็โอนะแต่เราว่าบางทีหน้าต่างวินโดว์ทุกคนๆไม่เท่ากันอะอาจจะไม่ใช้จุดนั้นที่ถาวรลองไล่อ่านดูแล้วก็พอเจอสีอะมันไม่ต้องใส่หน่วยsleepหรอกเราเคยแล้วมันไปขยายชั่วบางทีใน300โดดมอนลุมเยอะๆมันกดช่วง0-300ที่หายไปนี้ตัวละครตายได้เลยนะครับให้ใส่ในWhile 1CheckHp() ใส้ตรงนี้ว่า sleep(10)WEndแค่นี้ก็เพียงพอแล้ว-0-ยอมให้มันทำงานหนักกินแรมเพิ่ม1-20คงมะทำให้คอมพังหรือ- -*เราเคยเปิด2วันไม่เปิดที่sleep10ก็ไม่ทำให้เกิดอะไรขึ้นเลยแล้วก็CheckHp()AttackMon() 2คำสั่งนี้มันอยู่ในเหตุการณ์เ้ดียวกันไม่ต้องทำเป็น2ฟังก์ชั่นก็ได้ครับเพราะมันก็สั่งให้เช็คเลือดแล้วก็ตีมอน- -*จะทำ2เหตุการณให้ใส่ในรูปElseIf เพิ่มไปเลยเพราะไงมันก็ต้องเช็คเลือดก่อนที่จะตีมอนอยู่แล้วกำหนดแค่ว่าif PixelGetColor(177, 28) = 0xFFFF00 If @error Then คือไม่เจอให้เลิกตีแล้วถ้าเจอให้เป็นจริงให้ใส่ว่ากดถ้าจะเพิ่มว่าจะตีกี่ครั่งก่อนไปอีกคำสั่งก็ใส่ i
While $a > 0 ตัวนี้คือเพิ่มว่าจะทำกี่รอบ
Sleep(1000)
$a = $a - 1 ลดทีละ1
WEnd
อาจจะยังไม่เข้าใจให้ไปที่ [You must be registered and logged in to see this link.] โอเครมะ- -*แล้วก็ดูค่าสีที่
[You must be registered and logged in to see this link.] จากคำสั่ง If Not @error Then
แปลว่าถ้าคำสั่งนี้เป็นจริง ถ้าIf @error Then อันนี้คือเท็จแก้แค่เอาNot ออก-0-ง่ายมากมายลองไล่อ่านที่พี่ pos สอนทุกบรรทัดแล้วก็ทุกๆบทสุดยอดแห่งการสอนที่เข้าใจง่ายแล้วครับ

test_music
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 7
เข้าร่วมเมื่อ : 05/08/2013

Re: ต้องเขียน Script ยังไงให้กด เติม Hp จนถึงค่าสีที่เรากำหนดแล้วจึงออกจากการทำงาน. . . .

ตั้งหัวข้อ by test_music on 01/04/14, 03:07 pm

^^v ขอบคุณสำหรับคำแนะนำครับ พอดีไม่ค่อยได้เข้าบอร์ดเพราะเห็นเงียบๆ
ยังไงจะนำไปแก้ไขครับ


ป.ล เรื่องตัว แปลgame400 ผมตั้งใจปิดชื่อเกมส์โดยแก้ตัวแปลเป็น gamexxx ไว้น่ะเพราะทำเล่นๆ

    เวลาขณะนี้ 24/08/17, 02:00 pm