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


อยากถามเรื่องการตีมอนเตอร์

Share

golfwat
มือใหม่เพิ่งสมัคร
มือใหม่เพิ่งสมัคร


จำนวนข้อความ : 6
ความนิยม : 2
เข้าร่วมเมื่อ : 08/06/2011

อยากถามเรื่องการตีมอนเตอร์

ตั้งหัวข้อ by golfwat on 12/06/11, 01:35 pm

ต้องขอบอกไว้ก่อนเลยมือใหม่จริงๆ แต่พอมีความรู้เรื่อง if else อยู่บ้าง

หลังจากที่ได้ทำการศึกษาดูการใช้ต่างๆก็เริ่มทำ

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)
MouseClick("left",275,187,1,10)
Sleep(6000)
MouseClick("left",578,446,2,10)
Sleep(2000)
Send("TEST")
Sleep(1000)
Send("{ENTER}")
Sleep(2000)
MouseClick("left",835,396,2,10)
Sleep(6000)


#$coord = PixelSearch( 0, 0, 20, 300, 0xD38C6E )
#If Not @error Then
#MouseClick("",$coord[0] , $coord[1])
#Send ("1")

#While PixelGetColor("",$coord[0] , $coord[1]) = 0xAF867F

#Send ("1")
#WEnd
#EndIf


หลังจากทดลองแล้ว การเข้าเกมส์เลือกตัวละครได้ปกติดี

แต่พอเข้าเกมส์มาแล้วตัวละครกับยืนนิ่งทำไมมันไม่ตีมอนเตอร์อ่าครับ

ที่จะให้ดูก็คือส่วนที่ # ไว้ข้างหน้าอ่า มันคือเช็คค่าสีมอนเตอร์ถูกไหม

แล้วทำไมมันไม่เข้าไปตีละครับ

ต่อๆไหนก็ถามแล้ว

1. อยากได้ตัวอย่างให้มันเดินในแมพไปเรือยๆใช้คำสั่งนี้ MouseClick ถูกไหมเซตพิกัดเอา

2. แล้วถ้ามันวนตามที่เราเซตพิกัดแล้ว แล้วมันเจอค่าสีที่เราเช็คไว้บอทมันจะตีไหม

3. แล้วจะให้มันเก็บของต้องเช็คค่าสีให้มันเก็บไงหรอ(อันนี้ถามดู autoit จะทำได้ป่าว)

ส่วนเรื่องเช็คค่าสี hp นั้นเท่าที่อ่านๆจากกระทู้มาอันนี้พอทำได้

POS
PSsix
PSsix


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

Re: อยากถามเรื่องการตีมอนเตอร์

ตั้งหัวข้อ by POS on 12/06/11, 08:03 pm

เช็คสีคุณต้องดูด้วยว่า ค่าสีถูกต้องหรือไม่ ปัญหาจริงๆ ในคำสั่งของคุณคือ การกำหนดขอบเขตค้นหาสีค่อนข้างแคบมาก PixelSearch( 0, 0, 20, 300, 0xD38C6E )ผมเคยอธิบายหลักการกำหนดขอบเขตค้นหาสีลองหาอ่านในกระทู้ในฟอรัมดูครับ (อย่างไรก็ตามในบทความเรื่องการทำบอทตอนที่ 3 จะอธิบายไว้ รอสักสามสี่วันก่อนก็ได้ครับ)


1. mouseclick ถูกแล้วครับ ถ้าจะกำหนดให้เดินสุ่มไปเรื่อยๆ ก็ต้องเขียนฟังก์ชันให้คลิกสุ่ม

2. เจอก็คลิกแต่อย่างที่บอกไว้ปัญหาคือ คุณยังไม่เข้าใจวิธีการตั้งขอบเขตการค้นหาสี

3. หมายถึงสีของที่หล่นตามพื้นหรือเปล่าครับ ถ้าใช่ก็ต้องจับสีของให้ค้นหาด้วย แต่ถ้าของมีสีหลายๆ แบบจะค่อนข้างหายาก และเสียเวลาในการเขียนโค้ด


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

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

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

golfwat
มือใหม่เพิ่งสมัคร
มือใหม่เพิ่งสมัคร


จำนวนข้อความ : 6
ความนิยม : 2
เข้าร่วมเมื่อ : 08/06/2011

Re: อยากถามเรื่องการตีมอนเตอร์

ตั้งหัวข้อ by golfwat on 13/06/11, 10:18 am

ครับ

ตอนนี้ผมได้หาข้อมูลเพิ่มเติมเรื่องขอบเขตสีมา

PixelSearch( 0, 0, 20, 300, 0xD38C6E )

0 0 20 300 ก็คือPixel สีที่เป็นกรอบสี่เหลี่ยม

แล้วถ้าผมเพิ่มหรือลดในเลข 4 เลข นี้ถูกไหม


ไหนๆพี่จะเขียนบทความบทที่3 ผมอยากได้ข้อมูลเกี่ยวกับ

1. วิธีหาค่าสีของitem ที่ล่นลงพื้นแล้วให้มันเก็บ เท่าที่ดูสีของ item ของเกมส์ที่ผมเล่น สีไม่ซับซ้อนเลย

2. หาค่าสีของมอนเตอร์ที่จะให้ตัวบอทตีอย่างละเอียดกว่านี้ หรือเพิ่ม EX ให้มากกว่านี้
-แต่โค๊ดด้านบนถูกใช่ไหมแต่ผิดตรงค่าสีหรอ

3. จากโค้ดด้านบนช่วยดูทีผมมาถูกทางหรือป่าว

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


ขอบคุณครับ

POS
PSsix
PSsix


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

Re: อยากถามเรื่องการตีมอนเตอร์

ตั้งหัวข้อ by POS on 14/06/11, 09:45 am

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


1. ใช้โปรแกรม AutoIt Window Info ตรวจดูสีครับ (ดูวิธีในบทความตอนที่ 2 หน้าบล็อก)

2. เหมือนข้อหนึ่ง แต่ละเกมส์จะสีจะไม่เหมือนกัน คุณต้องหาเองครับ ไม่ใช่ให้คนอื่นหาให้ ต้องลงมือทำ

3. ไม่ทราบครับ ต้องเอาหน้าต่างเกมส์ มาสอง 2 แบบมาให้ดูด้วย แบบที่ไม่ได้คลิกมอนเตอร์ กับแบบที่คลิกแล้ว

4. พิมพ์คำสั่งใน google ครับ จะมีตัวอย่างคำสั่งที่คนอื่นใช้ออกมาให้ดู





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

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

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

scanditionx
PSsix Member Class III
PSsix Member Class III

PSsix Game Coder
จำนวนข้อความ : 51
ความนิยม : 0
เข้าร่วมเมื่อ : 02/10/2010
อายุ : 28
ที่อยู่ : ดาวโลก

Re: อยากถามเรื่องการตีมอนเตอร์

ตั้งหัวข้อ by scanditionx on 18/06/11, 03:13 am

ใช้กับเกมออนไลน์รึเปล่าครับ

golfwat
มือใหม่เพิ่งสมัคร
มือใหม่เพิ่งสมัคร


จำนวนข้อความ : 6
ความนิยม : 2
เข้าร่วมเมื่อ : 08/06/2011

Re: อยากถามเรื่องการตีมอนเตอร์

ตั้งหัวข้อ by golfwat on 18/06/11, 06:41 am

ออนไลครับ

flapjack
PSsix Member Super Class III
PSsix Member Super Class III

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

Re: อยากถามเรื่องการตีมอนเตอร์

ตั้งหัวข้อ by flapjack on 18/06/11, 10:04 am

เกมน่าจะมี Keyเก็บของ ของตัวเกมอยู่แล้วน่ะครับ(ส่วนใหญ่ที่เป็นเกมแบบ MMORPG)
สมุมติว่าเก็บ itme หมด
หลังจากตีมอนเสร็จ

ไม่ต้องหาสี itme ให้ยุ่งยาก
Code:

#$coord = PixelSearch( 0, 0, 20, 300, 0xD38C6E )
#If Not @error Then
#MouseClick("",$coord[0] , $coord[1])
#Send ("1")

#While PixelGetColor("",$coord[0] , $coord[1]) = 0xAF867F

#Send ("1")
sleep(1000)<------- เพิ่ม Sleep นิสหนึ่ง
Send("5")<----------เพิ่ม Send เป็นคีย์ เก็บ ตรงนี้สมุมติว่าเป็น 5
#WEnd
#EndIf

    เวลาขณะนี้ 08/12/16, 02:47 pm