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


สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

Share

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 25/06/11, 09:25 pm

ผมเพิ่งจะเริ่มศึกษาการเขียนสคริปท์ และนี่เป็นเกมแรกที่ผมจะลองทำดู แต่ลองทำมันก็ไม่สำเร็จ
ผมเริ่มด้วยคำสั่ง while
mouseclick ....

ไปเรื่อยๆพอคอมไพล์ออกมาปรากฎว่าใช้ไม่ได้ครับ ไม่รู้ว่าผมจะต้องเริ่มอย่างไรครับ
หรือว่าผมจะหาพิกัดหน้าจอผิดไปครับ

POS
PSsix
PSsix


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

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by POS on 25/06/11, 09:40 pm

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

ถ้าไม่ใช่ลองใช้ AutoIt Window Info ส่องดูหน้าต่างเกมส์ แล้วก๊อปปี้รายละเอียดหน้าต่าง หรือเซฟภาพ AutoIt Window Info ตอนที่มีรายละเอียดหน้าต่างมาลงในกระทู้นี้อีกทีครับ จะได้แนะนำได้ถูก


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

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

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

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 25/06/11, 09:53 pm

ขอบคุณมากครับ เดี๋ยวผมขอตัวทำก่อนนะคับเดี๋ยวเอามาลงให้ครับ

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 25/06/11, 09:59 pm



แบบนี้ใช่ไหมครับ มันเป็นเกมที่เล่นผ่านเว็บครับ

POS
PSsix
PSsix


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

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by POS on 26/06/11, 10:25 am

คุณต้องหาจุดอ้างอิงหน้าต่างเกมส์ในหน้าจอก่อน
โดยหาสีที่มุมซ้ายบนก่อน แล้วเก็บเข้าไปใส่ในตัวแปร
จากนั้นหาสีมุมขวาล่าง เก็บเข้าไปในตัวแปร

เมื่อได้มุมทั้งสองแล้ว ก็ใช้คำสั่ง PixelSearch หาสีทีต้องการในขอบเขตจากตัวแปรทั้งสอง (2 ตัวแปรที่หาสี จะได้พิกัดตัวแปรละ 2 พิกัด)


ถ้าจะใช้คำสั่งอื่นเช่น PixelGetColor ก็อ้างอิงจากตัวแปรที่หาจากมุม โดยใส่เครื่องหมาย + จำนวนพิกเซลเข้าไป เช่น สั่งคลิกมุมขวาบนไปอีก 100 พิกเซล

MouseClick("",$color1[0]+100,$color1[1])

การกำหนดจุดพิกัดต่าง สั่งคลิกก็ต้องอ้างอิงตัวแปรดังกล่าวทุกครั้ง

และต้องมีการอัปเดทพิกัดด้วย เพราะถ้าขยับหน้าเว็บ จุดพิกัดที่อ้างอิงก็จะเปลียนไปตลอด

ด้วยการเขียนเป็นฟังก์ชั่นเอาไว้


ตัวอย่างหาสีที่มุมซ้ายบนและขวาล่างในหน้าเว็บ และเก็บใส่ตัวแปร

Code:

    Global $color1,$color2

While 1

    $color1 = PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, รหัสสีมุมซ้ายบน)
If IsArray($color1) Then
MouseClick("",$color1[0],$color1[1])


$color2 = PixelSearch(0, 0, @DesktopWidth, @DesktopHeight,รหัสสีมุมขวาล่าง)
If IsArray($color2) Then
MouseClick("",$color2[0],$color2[1])
ExitLoop
EndIf

EndIf
Sleep(100)

WEnd



หมายเหตุ

ถ้าไม่เข้าใจที่ผมอธิบาย ก็รอบทความตอนต่อไป


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

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

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

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 26/06/11, 11:40 am

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



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

POS
PSsix
PSsix


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

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by POS on 28/06/11, 02:40 pm

AutoIt Window Info ไม่สามารถแยกส่วนประกอบในไฟล์แฟลช

ดังนั้นถ้าจะเขียนคำสั่งควบคุมต้องใช้คำสั่งที่ตรวจสอบสีเท่านั้น เช่น PixelGetColor, PixelSearch แล้วก็สั่งคลิกโดยใช้คำสั่ง MouseClick ไปยังตำแหน่งที่ต้องการ


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

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

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

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 29/06/11, 03:44 pm

POS พิมพ์ว่า:AutoIt Window Info ไม่สามารถแยกส่วนประกอบในไฟล์แฟลช

ดังนั้นถ้าจะเขียนคำสั่งควบคุมต้องใช้คำสั่งที่ตรวจสอบสีเท่านั้น เช่น PixelGetColor, PixelSearch แล้วก็สั่งคลิกโดยใช้คำสั่ง MouseClick ไปยังตำแหน่งที่ต้องการ

ใช้ประมาณ 3 คำสั่งนี้ใช่ไหมครับ แล้วหาก จอเลื่อนผมต้องใช้คำสั่งไหนเพื่อให้มันอัพเดทพิกัดตลอดเวลาดีครับ จะเป็นไปได้ไหมคับหากผมจะไช้ pixelsearch ทั้งหน้าเลย อีกอย่างนะครับหากว่าสิ่งที่ผมสั่งให็โปรแกรมคลิกแต่ขณะนั้น มีสิ่งอื่นที่เคลื่อนไหวในตัวเกมมาขวางไว้แล้วเกิดคลิกลงไปที่ไม่ใช่เป้าหมายที่กำหนดไว้ แล้วป๊อบอัพเด้งขึ้นมาซักอย่าง ผมจะทำอย่างไรให้มีการตรวจสอบและคลิกออกแล้วเลือกเป้าหมายเดิม รบกวนขอดูตัวอย่าง คำสั่ง pixelsearch 1หรือ pixelgetcolor แล้ว mouseclick ได้ไหมครับ หากไม่ได้ไม่เป็นไรครับ ทุกอย่างอาจเกิดขึ้นได้จากการเรียนรู้ ขอบคุณ POS มากๆ นะครับ

POS
PSsix
PSsix


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

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by POS on 29/06/11, 07:59 pm

รอบทความการทำบอทบทที่ 4 (อีกหลายวัน ช่วงนี้ไม่ค่อยว่างครับ)


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

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

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

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 30/06/11, 03:06 pm

ขอบคุณมากๆครับ ที่ช่วยมาตอบคำถามของผม

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 04/07/11, 06:04 pm

ผมจะทำยังไงดีให้มันคลิกตลอดเวลา จนวัตถุนั้นไม่เหลือแล้วที่จะให้คลิก ก็จะให้ไปที่อื่นต่อ
Global $color1,$color2

While 1

$color1 = PixelSearch(292, 80, 1037, 620, 0xE2A447);coin
If IsArray($color1) Then
MouseClick("left",$color1[0],$color1[1])

$color2 = PixelSearch(292, 80, 1037, 620,0xE2A447);coin
If IsArray($color2) Then
MouseClick("left",$color2[0],$color2[1])
ExitLoop
EndIf

EndIf
Sleep(1500)
WEnd
[code]

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

POS
PSsix
PSsix


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

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by POS on 04/07/11, 08:00 pm

1. แทรกคำสั่ง While ซ้อนไปอีกครับ เอาคำสั่งด้านล่างนี้ไปวางต่อ If IsArray($color1) Then


Code:
While PixelGetColor($color1[0], $color1[1) =  0xE2A447
       MouseClick("left", $color1[0], $color1[1])
WEnd

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

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

Code:
aaa()


Func aaa()
$aaa = PixelSearch( 0, 0, 20, 300, 0xFF0000 ) ;หาสีทีมุม เพื่ออัปเดทตำแหน่ง
   EndFunc


ปล. ถ้าถามหลายข้อ พยายามแยกคำถามออกเป็นข้อๆ จะดีกว่าครับ




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

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

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

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 06/07/11, 11:20 am

ขอบคุณ POS มากๆเลยครับ ผมลองนำคำสั่งไปลงแล้วดังนี้

[code]

Global $color1,$color2

While 1

$color1 = PixelSearch(292, 80, 1037, 620, 0xE2A447);coin
If IsArray($color1) Then
While PixelGetColor($color1[0], $color1[1]) = 0xE2A447
MouseClick("left", $color1[0], $color1[1], 1, 0)
WEnd

$color2 = PixelSearch(292, 80, 1037, 620,0xE2A447);coin
If IsArray($color2) Then
While PixelGetColor($color1[0], $color1[1]) = 0xE2A447
MouseClick("left", $color1[0], $color1[1], 1, 0)
WEnd
ExitLoop
EndIf

EndIf
Sleep(1500)
WEnd

ไม่รู้ว่าผิดตรงไหนหรือเปล่านะครับ มันวิ่งไปกดทีเดียวก็หยุดไม่ต่อเนื่องเลยครับ

POS
PSsix
PSsix


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

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by POS on 09/07/11, 07:19 pm

ตามปกติสคริปต์ก็จะค้นหาทั้งขอบเขตที่กำหนดอยู่แล้วนะครับ แต่คำสั่งอันที่ 2 ($color2) มีคำสั่ง exitloop อยู่

ลองเปลี่ยนเป็น

Code:
While 1

$color1 = PixelSearch(292, 80, 1037, 620, 0xE2A447);coin
If IsArray($color1) Then
While PixelGetColor($color1[0], $color1[1]) = 0xE2A447
MouseClick("left", $color1[0], $color1[1], 1, 0)
Sleep(200)
WEnd

wend

ปล. ตอนนี้จัดการปัญหาต่างๆ ภายในฟอรั่มเสร็จ คาดว่าอีกสองสามวันคงมีบทความบอทตอนที่ 4 ออกมาแล้วครับ


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

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

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

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 09/07/11, 10:48 pm

เย้ ขอบคุณมากเลยครับ ตอนนี้เริ่มมีความเข้าใจภาษามากขึ้นแล้วครับ พอจะเข้าใจบ้างแล้วว่าหากเอาโค้ดมาแล้วมันรันไม่ได้ต้องแก้อะไรตรงไหนบ้าง ขอบคุณ POS มากๆคับ ตอนนี้ผมก็ได้คลิกต่อเนื่องสมใจแล้วครับ ผมก็นั่งงงอยู่นานเป็นอาทิตย์ว่าจะเอาคำสั่ง exitloop ออกยังไงดี 555 ทีนี้ก็มีส่วนต่อไปอีกที่ผมจะต้องทำ

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

em218

POS
PSsix
PSsix


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

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by POS on 10/07/11, 07:46 am

การทำงานของสคริปต์ AutoIt จะทำในลักษณะต่อเนื่องเรียงจากบรรทัดบนลงล่าง ถ้าสคริปต์เกิดปัญหาหรือทำงานผิดพลาด ก็ลองไล่ตัดการทำงานจากล่างขึ้นบนครับ

วิธีการตัดการทำงานก็ลากแถบคลุมแถวที่ต้องการหยุดไม่ให้ทำงานแล้วกดปุ่มเครื่องหมายลบ (อยู่ที่ numpad มุมขวาบนสุด)บรรทัดที่ถูกตัดการทำงานก็จะเป็นสีเขียว และมีเครื่องหมาย ;~ อยู่หน้าบรรทัดนั้น ถ้าจะคืนให้ทำงานก็ทำแบบเดิมซ้ำอีกครั้ง

แต่ตอนตัดต้องระวังคำสั่งพวก if while หรือคำสั่งอื่นๆ ที่ใช้ 2 บรรทัดขึ้นไป ถ้าตัดต้องตัดให้ครบ อย่างตัด While ก็ต้องตัด WEnd ด้วย




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

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

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

POS
PSsix
PSsix


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

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by POS on 10/07/11, 08:15 pm

ตอนเช้าผมยังตอบไม่เสร็จ พอดีรับโทรศัพท์เลยลืมกลับมาตอบ

เรื่องบ็อปอัฟที่เด้งขึ้นมา ลองใช้ AutoIt Window Info ส่องดูครับ ถ้ามีรายละเอียดของหน้าต่างบ็อปอัฟก็สั่งตรวจและสั่งปิดได้



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

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

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

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 10/07/11, 09:27 pm

[code]Func POPUP()
ToolTip("Closing pop-up 1", 802, 154, "", 1)
$CONPOS = ControlGetPos("????????????????", "", "[CLASS:NativeWindowclass; INSTANCE:1]")
If PixelGetColor( + $CONPOS[0], 154 + $CONPOS[1]) = 0xFC9444 Then
$PAGE1 = PixelGetColor(802 + $CONPOS[0], 154 + $CONPOS[1])
Sleep(300)
ControlClick("????????????????", "", "[CLASS:NativeWindowclass; INSTANCE:1]", "left", 802, 154, )
Sleep(500)
$PAGE2 = PixelGetColor(802 + $CONPOS[0], 154 + $CONPOS[1])
While $PAGE2 = $PAGE1
ControlClick("????????????????", "", "[CLASS:NativeWindowclass; INSTANCE:1]", "left", 802, 154, )
Sleep(500)
$PAGE2 = PixelGetColor(802 + $CONPOS[0], 154 + $CONPOS[1])
Sleep(300)
WEnd
EndIf
ToolTip("Auto-Click Working . . .", 10, 10, "", 1)
EndFunc

ผมลองปิดป๊อปอัพไม่รู้ว่าเป็นอย่างไรแต่ที่ ลองแล้วมันไม่ได้ผลคับ เรื่องฟังฌั่นผมก็งูๆปลาๆเหมือนกัน
คับ มีผิดไหมคับ มันแจ้งว่า syntax error ช่วง [CLASS:NativeWindowclass; INSTANCE:1]", "left", 802, 154, ) หรือว่ามันมีคำสั่งที่ง่ายกว่านี้คับ

POS
PSsix
PSsix


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

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by POS on 11/07/11, 08:37 pm

คลิกในหน้าต่างเกมส์ให้บ็อปอัฟแสดงขึ้นมา
ใช้ AutoIt Window Info ส่องเอาชื่อไตเติลของบ็อปอัฟ
ก๊อปปี้ชื่อนำมาใส่โค้ดด้านลางนี้แล้วลองรันดู
ดูว่าปิดได้หรือไม่

ถ้าโค้ดด้านล่างนี้สามารถปิดบ็อปอัฟได้ ก็สามารถเขียนให้คอยตรวจบ็อปอัฟและปิดได้

Code:

While 1
WinWait("ชื่อไตเติล") ;เปลี่ยนชื่อไตเติลของหน้าต่างที่จะปิด
WinClose("ชื่อไตเติล")  ;เปลี่ยนชื่อไตเติลของหน้าต่างที่จะปิด
Sleep(100)
WEnd


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

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

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

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 13/07/11, 02:30 pm

POS พิมพ์ว่า:คลิกในหน้าต่างเกมส์ให้บ็อปอัฟแสดงขึ้นมา
ใช้ AutoIt Window Info ส่องเอาชื่อไตเติลของบ็อปอัฟ
ก๊อปปี้ชื่อนำมาใส่โค้ดด้านลางนี้แล้วลองรันดู
ดูว่าปิดได้หรือไม่

ถ้าโค้ดด้านล่างนี้สามารถปิดบ็อปอัฟได้ ก็สามารถเขียนให้คอยตรวจบ็อปอัฟและปิดได้

Code:

While 1
WinWait("ชื่อไตเติล") ;เปลี่ยนชื่อไตเติลของหน้าต่างที่จะปิด
WinClose("ชื่อไตเติล")  ;เปลี่ยนชื่อไตเติลของหน้าต่างที่จะปิด
Sleep(100)
WEnd

ขอบคุณมากครับ ผมได้ลองแล้วครับ แต่ไม่สามารถปิดได้

ที่ส่องแล้วได้มาคือ
Title: แฮปปี้คนเลี้ยงหม on Facebook - Google Chrome
Class: Chrome_WidgetWin_0
Position: -8, -8
Size: 1616, 876
Style: 0x17CF0000
ExStyle: 0x00000100
Handle: 0x000205DE

While 1
WinWait(" แฮปปี้คนเลี้ยงหม on Facebook - Google Chrome")
WinClose ("แฮปปี้คนเลี้ยงหม on Facebook - Google Chrome")
Sleep(100)
WEnd

ที่มันปิดไม่ได้เพราะว่าเราไม่ได้ใส่ตำแหน่งให้มันหรือเปล่าครับ
หรือว่าต้องใช้ control คับ POS

POS
PSsix
PSsix


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

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by POS on 13/07/11, 07:50 pm

ผมว่าหน้าต่างที่เด้งขึ้นมาเป็นบ็อปอัปน่าจะสร้างมาจากแฟลช เพราะดูข้อมูลที่ส่องออกมา ตรงส่วน Size: 1616, 876 ขนาดบ็อปอัปคงไม่ถึงพันพิกเซลแน่นอน น่าจะเป็นขนาดของหน้าต่างทั้งหน้าต่าง

แบบนี้ต้องใช้วิธีสร้างฟังก์ชันขึ้นมา 2 ฟังก์ชัน
อันแรกสุดหาสีแล้วคลิก (เป็นสคริปต์ปกติ นำมาใส่ฟังก์ชันนี้)
อันที่สองหาสีในบ็อปอัปถ้าเจอก็คลิกปิด (ผมไม่รู้ว่าบ็อปอัปขึ้นในตำแหน่งเดิมหรือไม่)

รูปแบบคำสั่ง

Code:
While Sleep(100)
   findcolor();หาสีเหรียญ
   findpopup();หาสีบ็อปอัป
   WEnd

Func findcolor()
   ;ใส่คำสั่ง
   EndFunc


Func findpopup()
   ;ใส่คำสั่ง
EndFunc








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

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

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

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 14/07/11, 10:27 pm

สวัสดีคับ POS ผมไม่รู้ว่าใส่ถูกไหมคับ ฟังฌั่นที่ POS ให้มา รบกวน POS ด้วยนะคับ ขอบคุณคับ

Code:


While Sleep(100)
    findpopup();หาสีบ็อปอัป
  WEnd

Func FINDPOPUP()
   $CONPOS = ControlGetPos("แฮปปี้คนเลี้ยงหม", "", "[CLASS:NativeWindowClass; INSTANCE:2]")
   $COORDINATES = PixelSearch(199 + $CONPOS[0], 78 + $CONPOS[1], 803 + $CONPOS[0], 146 + $CONPOS[1], 56000000, "", "", WinGetHandle("แฮปปี้คนเลี้ยงหม"))
   If IsArray($COORDINATES) Then
      ControlClick("แฮปปี้คนเลี้ยงหม", "", "[CLASS:NativeWindowClass; INSTANCE:2]", "left", 1, 803 ,146)
      Sleep(100)
      POPUP()
EndIf
EndFunc
em218

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 14/07/11, 11:41 pm

toto2tor พิมพ์ว่า:สวัสดีคับ POS ผมไม่รู้ว่าใส่ถูกไหมคับ ฟังฌั่นที่ POS ให้มา รบกวน POS ด้วยนะคับ ขอบคุณคับ

Code:


While Sleep(100)
    findpopup();หาสีบ็อปอัป
  WEnd

Func FINDPOPUP()
   $CONPOS = ControlGetPos("แฮปปี้คนเลี้ยงหม", "", "[CLASS:NativeWindowClass; INSTANCE:2]")
   $COORDINATES = PixelSearch(199 + $CONPOS[0], 78 + $CONPOS[1], 803 + $CONPOS[0], 146 + $CONPOS[1], 56000000, "", "", WinGetHandle("แฮปปี้คนเลี้ยงหม"))
   If IsArray($COORDINATES) Then
      ControlClick("แฮปปี้คนเลี้ยงหม", "", "[CLASS:NativeWindowClass; INSTANCE:2]", "left", 1, 803 ,146)
      Sleep(100)
      POPUP()
EndIf
EndFunc
em218

เปลี่ยนชื่อฟังชั่น Func FINDPOPUP() เป็นตัวพิมพ์เล็กด้วยครับ
ส่วนในโค๊ดรอผู้รู้มาตอบอีกที ครับ

POS
PSsix
PSsix


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

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by POS on 15/07/11, 08:38 am

ดูตามโค้ดแล้วไม่น่าจะมีปัญหา(ถ้าไม่ใส่รายละเอียดตรงหน้าต่างผิด) คลิกปิดได้หรือเปล่าครับ ถ้าไม่ได้ลองเอาภาพที่มีบ็อปอัปเด้งมาดู



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

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

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

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 15/07/11, 11:23 am

flapjack พิมพ์ว่า:
toto2tor พิมพ์ว่า:สวัสดีคับ POS ผมไม่รู้ว่าใส่ถูกไหมคับ ฟังฌั่นที่ POS ให้มา รบกวน POS ด้วยนะคับ ขอบคุณคับ

Code:


While Sleep(100)
    findpopup();หาสีบ็อปอัป
  WEnd

Func FINDPOPUP()
   $CONPOS = ControlGetPos("แฮปปี้คนเลี้ยงหม", "", "[CLASS:NativeWindowClass; INSTANCE:2]")
   $COORDINATES = PixelSearch(199 + $CONPOS[0], 78 + $CONPOS[1], 803 + $CONPOS[0], 146 + $CONPOS[1], 56000000, "", "", WinGetHandle("แฮปปี้คนเลี้ยงหม"))
   If IsArray($COORDINATES) Then
      ControlClick("แฮปปี้คนเลี้ยงหม", "", "[CLASS:NativeWindowClass; INSTANCE:2]", "left", 1, 803 ,146)
      Sleep(100)
      POPUP()
EndIf
EndFunc
em218

เปลี่ยนชื่อฟังชั่น Func FINDPOPUP() เป็นตัวพิมพ์เล็กด้วยครับ
ส่วนในโค๊ดรอผู้รู้มาตอบอีกที ครับ

ต้องขอโทษด้วยนะครับสำหรับข้อมูลที่ผิด em232
ผมคิดว่า ตัวอักขระตัวใหญ่กับตัวเล็กเป็นคนล่ะตัว ใน AutoiT em230

toto2tor
PSsix Member
PSsix Member


จำนวนข้อความ : 22
ความนิยม : 0
เข้าร่วมเมื่อ : 25/06/2011

Re: สอบถามเรื่องสคริปท์การคลิกเมาส์ สำหรับเกมหมู

ตั้งหัวข้อ by toto2tor on 15/07/11, 01:11 pm

flapjack พิมพ์ว่า:
toto2tor พิมพ์ว่า:สวัสดีคับ POS ผมไม่รู้ว่าใส่ถูกไหมคับ ฟังฌั่นที่ POS ให้มา รบกวน POS ด้วยนะคับ ขอบคุณคับ

Code:


While Sleep(100)
    findpopup();หาสีบ็อปอัป
  WEnd

Func FINDPOPUP()
   $CONPOS = ControlGetPos("แฮปปี้คนเลี้ยงหม", "", "[CLASS:NativeWindowClass; INSTANCE:2]")
   $COORDINATES = PixelSearch(199 + $CONPOS[0], 78 + $CONPOS[1], 803 + $CONPOS[0], 146 + $CONPOS[1], 56000000, "", "", WinGetHandle("แฮปปี้คนเลี้ยงหม"))
   If IsArray($COORDINATES) Then
      ControlClick("แฮปปี้คนเลี้ยงหม", "", "[CLASS:NativeWindowClass; INSTANCE:2]", "left", 1, 803 ,146)
      Sleep(100)
      POPUP()
EndIf
EndFunc
em218

เปลี่ยนชื่อฟังชั่น Func FINDPOPUP() เป็นตัวพิมพ์เล็กด้วยครับ
ส่วนในโค๊ดรอผู้รู้มาตอบอีกที ครับ


ขอบคุณ flapjack มากเลยนะคับ ไม่รู้มาก่อนว่าต้องพิมพ์เล็ก จะขอเก็บความรู้ไปเรื่อยๆนะคับ em218

    เวลาขณะนี้ 07/12/16, 12:53 am