มือใหม่ถอดด้าม ผมอีกคนที่สนใจเขียนสคลิปเกมเลี้ยงหมู ได้อ่านกระทู้แล้วก็เลย ก็อปนั้นหน่อย แปะนี้นิด จากกระทู้ของผู้รู้ทุกท่าน ทั้งของ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 : พิมพ์ผิดและเพิ่มเติม)