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


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

Share

toto2tor
PSsix Member
PSsix Member


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

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

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

First topic message reminder :

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

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

toto2tor
PSsix Member
PSsix Member


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

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

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

flapjack พิมพ์ว่า:
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:23 pm

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






นี่คือตำแหน่งภาพป๊อบอัพที่จะให้สั่งปิดครับซึ่งตัวเกมที่เล่นจะอยู่ด้านหลังป๊อบอัพครับ POS
แต่ที่ผมอยากทำให้มันปิดคือตำแหน่งแบบภาพแรกก่อนครับตรงกากบาท อันล่างไม่ค่อยมีเท่าไร
ตามโค๊ดแล้วมันไม่ยอมปิดคับ
หรือว่าผมวางฟังฌั่นผิดที่ครับ หรือมันต้องวางไว้ที่เริ่มหัวของautoitครับ

POS
PSsix
PSsix


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

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

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

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




Code:


While sleep(100)
   game()
clickclose()

WEnd

    Func clickclose()
         If WinActive("แฮปปี้คนเลี้ยง") Then
            Sleep(1000)
   If PixelGetColor(xxx, xxxx) = 0xFF0000 Then MouseClick("left",xxx,xxxx,1,0) ;สีและพิกัดที่ตรวจ และสั่งคลิก
   If PixelGetColor(xxx, xxxx) = 0xFF0000 Then MouseClick("left",xxx,xxxx,1,0)
   If PixelGetColor(xxx, xxxx) = 0xFF0000 Then MouseClick("left",xxx,xxxx,1,0)
   EndIf
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 16/07/11, 03:26 pm

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




Code:


While sleep(100)
   game()
clickclose()

WEnd

    Func clickclose()
         If WinActive("แฮปปี้คนเลี้ยง") Then
            Sleep(1000)
   If PixelGetColor(xxx, xxxx) = 0xFF0000 Then MouseClick("left",xxx,xxxx,1,0) ;สีและพิกัดที่ตรวจ และสั่งคลิก
   If PixelGetColor(xxx, xxxx) = 0xFF0000 Then MouseClick("left",xxx,xxxx,1,0)
   If PixelGetColor(xxx, xxxx) = 0xFF0000 Then MouseClick("left",xxx,xxxx,1,0)
   EndIf
EndFunc


POS ครับ อันนี้คือ สคริปท์ที่ผมเขียน


พอคอมไพลืแล้ว มันก็ให้คับแต่พอกดใช้มันขึ้นอย่างนี้ หาสาเหตุเท่าไรก็ไม่เจอคับ


POS
PSsix
PSsix


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

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

ตั้งหัวข้อ by POS on 17/07/11, 09:13 am

ลบบรรทัด game()

บรรทัด game() นี้ผมใส่ให้ดูเป็นตัวอย่างว่า ถ้าจะให้ทำงานสองฟังก์ชันต้องใส่แบบในต้วอย่างนี้




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

กลุ่ม 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 17/07/11, 02:40 pm

ขอบคุณครับ POS ผมไม่รอบคอบเอง ทำตามแล้วมันไม่เกิดป๊อบอัพดังกล่าวแล้วครับ แต่พอกดใช้มันไม่วิ่งอะไรเลยครับ พอแทรก
Code:
While sleep(100)
  game()
clickclose()

WEnd

อันนี้เข้าไปครับ ไม่วิ่งเลยซักอย่างครับ แต่พอเอาออกมันก็กลับมาวิ่งเหมือนเดิม แต่เวลาป๊อบอัพขึ้นมันก็ไม่ยอมกดตาม คำสั่ง
Code:
Func clickclose()
        If WinActive("แฮปปี้คนเลี้ยง") Then
            Sleep(1000)
  If PixelGetColor(xxx, xxxx) = 0xFF0000 Then MouseClick("left",xxx,xxxx,1,0) ;สีและพิกัดที่ตรวจ และสั่งคลิก
  If PixelGetColor(xxx, xxxx) = 0xFF0000 Then MouseClick("left",xxx,xxxx,1,0)
  If PixelGetColor(xxx, xxxx) = 0xFF0000 Then MouseClick("left",xxx,xxxx,1,0)
  EndIf
EndFunc


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

POS
PSsix
PSsix


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

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

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

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





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

กลุ่ม 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 18/07/11, 05:23 pm

ประมาณนี้ครับ POS แต่พอผมใส่คำสั่ง Func clickclose เข้าไป ของเดิมที่เคยเก็บเหรียญก็ไม่เก็บเลยครับแล้วก็ไม่คลิกปิดป๊อบอัพด้วยครับ หรือว่ามันจะใช้คำสั่ง win active ไม่ได้ครับ เพราะว่ามันเป็นหน้าต่างในแฟลชครับ POS และคำสั่งปิดท้ายผมก็ใส่ครบแล้วครับ แต่ไม่ได้ยกมาครับ POS

Code:
Global $color1,$color2
Global $PAUSE = -1
Global $UP = 0
Global $PAGE1 = 0
Global $PAGE2 = 0
Global $STR = 666
Global $STR2 = 666
Global $X = 66
Global $Y = 66
Global $CURRENT = 66
Global $FRIEND8 = 40
Global $NEW = 0
Global $LOOP = 0
Global $COORDINATES[2]
Global $COORDINATES2[2]
Global $CONPOS[4]
Sleep(1000)
TrayTip("  Hi BangPunKhonLiangMoo  ", "wanna stop press ESC NaJa", 20, 0)
Sleep(1000)
WinActivate("????????????????")
Sleep(1000)
Opt("MouseCoordMode", 0)
Opt("PixelCoordMode", 0)
Opt("MouseClickDelay", 0)
Opt("MouseClickDownDelay", 0)
$CONPOS = ControlGetPos("????????????????", "", "[CLASS:NativeWindowClass; INSTANCE:2]")

HotKeySet("{ESC}", "stop")

Func stop()
ToolTip('Happy KhonLiangMoo', 0, 0)
Sleep(500)
Exit
EndFunc

While sleep(100)
clickclose()
WEnd

Func clickclose()
        If WinActive("????????????????") Then
            Sleep(1000)
  If PixelGetColor(826, 146) = 0x68573D Then MouseClick("left",803,145,1,0)
  If PixelGetColor(576, 379) = 0x718B30 Then MouseClick("left",576,379,1,0)
  If PixelGetColor(758, 181) = 0xC14738 Then MouseClick("left",758,181,1,0)
  EndIf
EndFunc


  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

POS
PSsix
PSsix


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

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

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

คำสั่งอีกชุด ก็ใส่อีกฟังก์ชัน ตามตัวอย่างด้านล่างนี้


Code:
Global $color1,$color2
Global $PAUSE = -1
Global $UP = 0
Global $PAGE1 = 0
Global $PAGE2 = 0
Global $STR = 666
Global $STR2 = 666
Global $X = 66
Global $Y = 66
Global $CURRENT = 66
Global $FRIEND8 = 40
Global $NEW = 0
Global $LOOP = 0
Global $COORDINATES[2]
Global $COORDINATES2[2]
Global $CONPOS[4]
Sleep(1000)
TrayTip("  Hi BangPunKhonLiangMoo  ", "wanna stop press ESC NaJa", 20, 0)
Sleep(1000)
WinActivate("????????????????")
Sleep(1000)
Opt("MouseCoordMode", 0)
Opt("PixelCoordMode", 0)
Opt("MouseClickDelay", 0)
Opt("MouseClickDownDelay", 0)
$CONPOS = ControlGetPos("????????????????", "", "[CLASS:NativeWindowClass; INSTANCE:2]")

HotKeySet("{ESC}", "stop")

Func stop()
ToolTip('Happy KhonLiangMoo', 0, 0)
Sleep(500)
Exit
EndFunc

While sleep(100)
game()
clickclose()
WEnd

Func clickclose()


  If PixelGetColor(826, 146) = 0x68573D Then MouseClick("left",803,145,1,0)
  If PixelGetColor(576, 379) = 0x718B30 Then MouseClick("left",576,379,1,0)
  If PixelGetColor(758, 181) = 0xC14738 Then MouseClick("left",758,181,1,0)

EndFunc


  Func game()

    $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
  EndIf

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 20/07/11, 10:50 am

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

Code:
Global $color1,$color2
Global $PAUSE = -1
Global $UP = 0
Global $PAGE1 = 0
Global $PAGE2 = 0
Global $STR = 666
Global $STR2 = 666
Global $X = 66
Global $Y = 66
Global $CURRENT = 66
Global $FRIEND8 = 40
Global $NEW = 0
Global $LOOP = 0
Global $COORDINATES[2]
Global $COORDINATES2[2]
Global $CONPOS[4]
Sleep(1000)
TrayTip("  Hi BangPunKhonLiangMoo  ", "wanna stop press ESC NaJa", 20, 0)
Sleep(1000)
WinActivate("????????????????")
Sleep(1000)
Opt("MouseCoordMode", 0)
Opt("PixelCoordMode", 0)
Opt("MouseClickDelay", 0)
Opt("MouseClickDownDelay", 0)
$CONPOS = ControlGetPos("????????????????", "", "[CLASS:NativeWindowClass; INSTANCE:2]")

HotKeySet("{ESC}", "stop")

Func stop()
ToolTip('Happy KhonLiangMoo', 0, 0)
Sleep(500)
Exit
EndFunc

While sleep(100)
pickcoin()
pickfruit()
pickfruitp()
pickfruitc()
pickfruits()
clickclose()
WEnd

Func clickclose()

    $color1 = PixelSearch(803, 145, 818, 159, 0xC14738)
If IsArray($color1) Then
While PixelGetColor ($color1[0], $color1[1]) =  0xC14738
     MouseClick("left", $color1[0], $color1[1], 1, 0)
      Sleep(200)
;~      PixelGetColor(576, 379) = 0x718B30 Then MouseClick("left",576,379,1,0)
;~      PixelGetColor(758, 181) = 0xC14738 Then MouseClick("left",758,181,1,0)
     WEnd
     EndIf
EndFunc

Func pickcoin()

    $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
  EndIf
EndFunc

Func pickfruit()
    $color1 = PixelSearch(292, 80, 1037, 620,0x695289);grape
If IsArray($color1) Then
While PixelGetColor($color1[0], $color1[1]) =  0x695289
      MouseClick("left", $color1[0], $color1[1], 1, 0)
     Sleep(200)
  WEnd
  EndIf
EndFunc

Func pickfruitp()
$color1 = PixelSearch(292, 80, 1037, 620, 0xA06711);PINE
If IsArray($color1) Then
While PixelGetColor($color1[0], $color1[1]) =  0xD99416
      MouseClick("left", $color1[0], $color1[1], 1, 0)
     Sleep(200)
  WEnd
  EndIf
EndFunc

Func pickfruitc()
    $color1 = PixelSearch(292, 80, 1037, 620, 0xD7001E);CHERRY
If IsArray($color1) Then
While PixelGetColor($color1[0], $color1[1]) =  0xD7001E
      MouseClick("left", $color1[0], $color1[1], 1, 0)
     Sleep(200)
  WEnd
  EndIf
EndFunc

Func pickfruits()
    $color1 = PixelSearch(292, 80, 1037, 620, 0xD51429);STRAWB
If IsArray($color1) Then
While PixelGetColor($color1[0], $color1[1]) =  0xD51429
      MouseClick("left", $color1[0], $color1[1], 1, 0)
     Sleep(200)


POS
PSsix
PSsix


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

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

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

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

ลองเอาไปรันดู เอาคำสั่ง

ConsoleWrite("xxxxx"& @crlf)

ไปแทรกบรรทัดที่ต้องการตรวจดูการทำงานครับ xxx เป็นข้อความอะไรก็ได้ เขียนใหม่ให้รู้ว่าทำงานอยู่ในขั้นตอนไหน ถ้าขั้นตอนไหนติดเราก็จะตรวจดูได้ง่ายขึ้น


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

กลุ่ม 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/07/11, 11:34 am

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

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


จำนวนข้อความ : 7
ความนิยม : 0
เข้าร่วมเมื่อ : 19/07/2011

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

ตั้งหัวข้อ by zaqqq12341 on 26/07/11, 01:00 am

มือใหม่ถอดด้าม ผมอีกคนที่สนใจเขียนสคลิปเกมเลี้ยงหมู ได้อ่านกระทู้แล้วก็เลย ก็อปนั้นหน่อย แปะนี้นิด จากกระทู้ของผู้รู้ทุกท่าน ทั้งของAdmin ของคุณ Toto2 tor ได้ code และมีปัญหาดังนี้
; Press Esc to terminate script, Pause/Break to "pause"

Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage") ;Shift-Alt-d

Func findpopup();ปิดpopup 1 คุณสมบัติหมู เมื่อคลิกที่ตัวหมู 2 ห้องโถงแข่งหมู 3.ชักชวนเพื่อนเล่น ๔ ประกาศของระบบ และpopup อื่นๆที่มีพิกัดกากะบาทที่นี่
$whitex = PixelSearch( 687, 135, 720, 184, 0xC14738);กำหนดพิกัดและสีขาวกากะบาทpopup
If IsArray($whitex) Then;ถ้าข้อมูลเป็นอาเรย์
MouseClick("",695, 159,3,2);ให้กดปิดตามพิกัดที่กำหนดนี้ ๓ ครั้ง
Sleep(1000)
MouseClick("",695, 159,3,2);กดครังที่ 2 (ครั้งแรกอาจจะปิดไม่ได้)เดาเอา
EndIf
EndFunc

Func findcoin();หาและเก็บเหรียญG
$gcoin = PixelSearch( 161, 623, 792, 299, 0xE2A447) ;กำหนดพิกัด สีทองของเหรียญG
If IsArray($gcoin) Then;ถ้าข้อมูลเป็นอาเรย์
MouseClick("",$gcoin[0],$gcoin[1],3,2);ให้กดเก็บเหรียญ ๓ ครั้งติดกัน(กดครั้งเดียวกลัวมันไม่เก็บ)
EndIf
EndFunc

Func suggest() ;ปิดpopupชักชวนเพื่อน (รูปแก้วนมมีปิกบิน)
$colsuggest = PixelSearch( 473, 462, 585, 499, 0x67CF32);กำหนดพิกัดและหาสี(สีเขียว)
If IsArray($colsuggest) Then;ถ้าข้อมูลเป็นอาเรย์
MouseClick("",378, 486,2,2);ให้กดปุ่มยกเลิกตามพิกัดที่กำหนด ๒ ครั้ง
EndIf
EndFunc

Func findcloseOK();ปิดpopup ที่ขึ้นตรงกลางเกม เช่น ใบอนุญาติ แปรรูป ฟาร์มสอง ฯลฯ
$colorok = PixelSearch( 408, 390, 523, 424, 0x7C9838);กำหนดพิกัดค้นหา กำหนดสี(สีเขียว)
If Not @error Then;กำหนดพิกัดไม่ผิดพลาด
MouseClick("",$colorok[0],$colorok[1],2,3);ให้กดปิด
EndIf
EndFunc

Func permitcard();เก็บใบอนุญาติแปรรูป
$pcard = PixelSearch( 660, 502, 721, 559, 0xEBBE94);กำหนดพิกัดและหาสี
If Not @error Then;กำหนดพิกัดไม่ผิดพลาด
MouseClick("",$pcard[0],$pcard[1],2,3);ให้เก็บใบอนุญาต
EndIf
EndFunc

Func findFarm2() ;กดไปฟาร์มหมูสอง
$colorf2 = PixelSearch( 676, 331, 775, 394, 0x754E00);กำหนดพิกัดและสีป้าย
If Not @error Then;กำหนดพิกัดไม่ผิดพลาด
MouseClick("",$colorf2[0],$colorf2[1],1,2);ให้กดป้ายฟาร์มสอง
EndIf
EndFunc

Func ClickNext();กดปุ่มสามเหลี่ยมเขียวเพื่อวนลูป
$colorcn = PixelSearch( 763, 717, 789, 751, 0x82B130);กำหนดพิกัด, สีเขียว
If PixelGetColor($colorcn[0],$colorcn[1]) =0xD2B587then ;ถ้าเป็นสีน้ำตาลให้ออกจากสคลิป
Exit
Else
MouseClick("",$colorcn[0],$colorcn[1],1,1);เป็นสีเขียวให้กดตามนั้น
MouseClick("",654, 703,1,5);กดตามพิกัดเพื่อให้ตัวชี้เมาส์ออกจากสามเหลี่ยม

sleep(1000)
EndIf
EndFunc

;เมื่อได้ชุดคำสั่งตามต้องการแล้วผมเริ่มให้มันทำงานดังนี้

while 1;ให้วนเมื่อคลิกเพื่อนครบ ๘ คน
For $i= 166 To 620 Step 62;ให้ทำงาน ๘ ครั้ง กำหนดพิกัดรูปเพื่อนที่เรียงกันด้านล่างของเกม ๘ รูป ทั้ง ๘ รูปแกนy ไม่เปลี่ยน แกน x เปลี่ยน กำหนด ตัวแปร$iแทนแกนx
;เริ่มจากเพื่อนคนแรก พิกัด 166,718 คนที่สองพิกัดแกนxห่างจากคนแรก 62 pixel (จากกึ่งกลางรูป)ให้วนจนถึง 620pixel
If PixelGetColor($i,718) =0xF0EBDB or PixelGetColor($i,718) = 0x9B734A then;ถ้ารูปใดเป็นเครื่องหมายคำถามที่มีสีพื้นและสีเครื่องหมาย?ตามที่กำหนด
Exit;ให้ออกจากสคลิป
Else
MouseClick("",$i,718,2,0);ถ้าไม่ให้กดเพื่อนถัดไป
EndIf
Sleep(4000) ;ให้หน่วงเวลาไว้ 4วินาที บางครั้ง เน็ต ช้า รอเหรียญGโผ่
$color1 = PixelSearch( 645, 132, 756, 205, 0xC14738);ปิดpopup ประการข่าวเพื่อน popup จะขึ้นหลังจากกดรูปเพื่อนในบางคนที่มีกิจกรรมพิเศษ เช่น ซื้อหมู มีคนให้ของขวัญ
If Not @error Then;กำหนดพิกัดไม่ผิดพลาด
MouseClick("",$color1[0],$color1[1],1,0);กดปิดตามพิกัดนั้น
Sleep(20)
MouseClick("",$color1[0],$color1[1],1,0) ;ให้กดอีกกลัวไม่ได้ยิน
EndIf
Sleep(333)

;เมื่อเข้าหน้าต่างเพื่อนแล้วให้ทำภาระกิจเหล่านี้

;#############################################################

$Count=1;ที่ผมต้องกำหนดตัวแปรด้วยเป็นเพราะว่าถ้าผมใช้ While 1 แล้วไม่ยอมออกจากลูปWhile #### ใคร่ขอความกรุณาช่วยจุดนี้ด้วยจักเป็นพระคุณ#####
While $Count<80 ;หมูหนึ่งคอกให้เหรียญG สูงสุด 30เหรียญ แต่ให้วนลูป 80 ครั้ง เพราะว่าบางครั้งเจอpopup ไม่ยอมเก็บเหรียญ ###ปัญหาคือ บางคอกไม่มีเหรียญ
;ต้องรอให้วนครบ80รอบ เสียเวลามาก
findcoin();เก็บเหรียญG
findpopup();ปิดป๊อปอัป
findcloseOK();ปิดป๊อปอัปกลางหน้าจอเกม
permitcard();เก็บใบอนุญาต
suggest();ปิดป๊อปอัปชวนเพื่อน
$Count=$Count+1
Sleep(300)
WEnd;เมื่อเสร็จภาระกิจแล้ว
Sleep(33)
MouseClick("",109, 430,3,10);ให้น้ำหมู๑ครั้ง
Sleep(111)
MouseClick("",109, 430,3,10);ให้น้ำหมู๑ครั้ง เพื่อให้หมูทุกตัวมากินน้ำที่ราง เพราะมีบางตัวยืนฉี่บังป้ายฟาร์มสอง เลยสั่งกดไม่ได้
Sleep(2000);รอหมูเข้ามาตรึงกำลังที่รางกินน้ำสองวิ
findFarm2();กดป้ายฟาร์มสองตามชุดคำสั่ง บางคอกยังไม่มีฟาร์มสองจะมีป๊อปอัปขึ้น ไม่เป็นปัญหาสั่งปิดตามภาระกิจต่อไปแล้ว
Sleep(4000) ;ให้หน่วงเวลาสี่วินาที่เพราะรอเหรียญGฟาร์มสองปรากฏ ขึ้นอยู่กับความเร็วเน็ต

;ภาระกิจฟาร์มสองเหมือนฟาร์มแรกดังนี้

$Count=1
While $Count<80
findcoin();เก็บเหรียญG
findpopup();ปิดป๊อปอัป
findcloseOK();ปิดป๊อปอัปกลางหน้าจอเกม
permitcard();เก็บใบอนุญาต
suggest();ปิดป๊อปอัปชวนเพื่อน
$Count=$Count+1
Sleep(300)
WEnd
Sleep(2000)
Next;ให้กลับไปคลิกรูปเพื่อนคนถัดไป ถ้าเจอรูป ? ให้ออกจากสคลิป

ClickNext();เมื่อคลิกเพื่อนครบทั้ง 8 รูป ให้กดปุ่มสามเหลี่ยมสีเขียวตามชุดคำสั่ง ถ้าไม่ใช่สีเขียวให้ออกจากสคลิป
Sleep(2000)
WEnd

Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc

Func Terminate()
Exit 0
EndFunc

Func ShowMessage()
MsgBox(4096,"","This is a message.")
EndFunc


ปัญหาคือดังนี้

1.while loop ที่ Admin แนะนำ
while 1
คำสั่ง1
คำสั่ง2
.
.
คำสั่ง n
wend

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

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

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


แก้ไขล่าสุดโดย zaqqq12341 เมื่อ 26/07/11, 01:56 am, ทั้งหมด 4 ครั้ง (Reason for editing : พิมพ์ผิดและเพิ่มเติม)

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


จำนวนข้อความ : 7
ความนิยม : 0
เข้าร่วมเมื่อ : 19/07/2011

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

ตั้งหัวข้อ by zaqqq12341 on 26/07/11, 01:38 am

อีก 1 ปัญหาคือผมใช้ PSsix Auto Click Path 1.2 โปรแกรมช่วยคลิกเม้าส์ตามตำแหน่งที่ต้องการ ของAdmin

พบว่า

เมื่อปิดโปรแกรมแล้ว มันยังรันโปรแกรมเฉยเลย ต้องไปปิดที่ task manager แท็ป processes บางครั้งก็ปิดไม่ได้ ทำอะไรไม่เป็น รีสตาร์ทเครื่องอย่างเดียว

คำถาม เกิดจากอะไร และต้องแก้ไขตรงใหน อย่างไร

POS
PSsix
PSsix


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

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

ตั้งหัวข้อ by POS on 26/07/11, 02:21 pm

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




Code:
Global $a = 1



While Sleep(100)

   Switch $a
      Case 1
         PSsix01()
      Case 2
         PSsix02()
      Case 3
         PSsix03()
      Case 4
         PSsix04()
   EndSwitch

WEnd


Func PSsix01()
   ConsoleWrite("ขั้นตอนที่ 1" & @CRLF)
   ;คำสั่ง
   ;ทำงานเสร็จสิ้น
   ;เปลี่ยนค่าตัวแปร เพื่อทำงานในขั้นต่อไป
   $a = 2
EndFunc

Func PSsix02()
   ConsoleWrite("ขั้นตอนที่ 2" & @CRLF)
   ;คำสั่ง
   ;ทำงานเสร็จสิ้น
   ;เปลี่ยนค่าตัวแปร เพื่อทำงานในขั้นต่อไป
   $a = 3
EndFunc

Func PSsix03()
   ConsoleWrite("ขั้นตอนที่ 3" & @CRLF)
   ;คำสั่ง
   ;ทำงานเสร็จสิ้น
   ;เปลี่ยนค่าตัวแปร เพื่อทำงานในขั้นต่อไป
   $a = 4
EndFunc

Func PSsix04()
   ConsoleWrite("ขั้นตอนที่ 4" & @CRLF)
   ;คำสั่ง
   ;ทำงานเสร็จสิ้น
   ;เปลี่ยนค่าตัวแปร เพื่อทำงานในขั้นต่อไป
   $a = 1
EndFunc


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

กลุ่ม 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 26/07/11, 02:22 pm

ส่วนคุณ zaqqq12341 จะถามคำถามใหม่ที่ไม่เกี่ยวกับเนื้อหากระทู้เดิม ต้องไปตั้งกระทู้ใหม่ครับ

ปุ่มตั้งกระทู้อยู่มุมขวาบน


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

กลุ่ม 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 22/12/11, 09:51 am

POS สวัสดีครับ ผมเพิ่งมีเวลากลับมาทำบอท ติดธุระนาน
ยังทำไม่เสร็จเลยครับ คือผมอยากทราบว่าหากเราต้องการให้
คำสั่งนี้
Code:
Func SeekFarm2() ;Farm 2
   
    $color1 = PixelSearch(837, 384, 779, 385, 0x754E00);Farm 2 color
If IsArray($color1) Then
While PixelGetColor($color1[0], $color1[1]) =  0x754E00
    MouseClick("left", $color1[0], $color1[1], 1, 0)
    Sleep(200)
  WEnd
  EndIf
EndFunc   

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

POS ครับ คือลักษณะเกมที่ทำมันจะเป็นแบบว่าเริ่มแรก
เข้ามาหน้าเกมแฟลช เราจะเจอobject เคลื่อนไหวไปมาทั่วจอ
เราจะเก็บของที่อยู่บนจอแต่object เหล่านั้นขวางเราอยู่ เราต้อง
กดปุ่มทำให้มันเลื่อนมาอยู่ที่เดียวกันหใ้หมดเราถึงเก็บได้

เกมมี2หน้าครับ
หน้าแรก
1.กดปุ่มให้วัตถุเคลื่อนไหวเคลื่อนไปรวมกันตรงจุดอื่น
2.เก็บของที่ตกอยู่ที่พื้นให้หมด มีหลายสี
3.ระหว่างเก็บอาจพลาดเจอป๊อบอัพที่ขึ้นต่างกัน3ตำแหน่ง
จากนั้นไปหน้าที่2
1.กดปุ่มให้วัตถุเคลื่อนไหวเคลื่อนไปรวมกันตรงจุดอื่น
2.ก็เก็บของที่ตกอยู่กับเพื้อนให้หมด มีหลายสี
3.ระหว่างเก็บอาจพลาดเจอป๊อบอัพที่ขึ้นต่างกัน3ตำแหน่ง
4.จะไปด่านของเพื่อนเรา ซึ่งเรียงแถวกันอยู่8คน หากว่าไปจนครบ8คนแล้วอยากจะให้เจอ
อีก8คนที่ใหม่กว่าจะมีลูกศรเลื่อนอยู่ข้างๆ ให้กดตรงนั้น

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

    เวลาขณะนี้ 03/12/16, 02:56 am