ฟอรั่ม PSsix

Would you like to react to this message? Create an account in a few clicks or log in to continue.

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


4 posters

    ชี้แนะสคริปต์+การหาค่าสีทีครับ

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


    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty
    จำนวนข้อความ : 4
    ความนิยม : 0
    เข้าร่วมเมื่อ : 16/02/2013

    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty ชี้แนะสคริปต์+การหาค่าสีทีครับ

    ตั้งหัวข้อ by klenium 06/03/13, 04:32 pm

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

    ลำดับขั้นตอนแบบคร่าวๆ
    1กดบัฟ
    2หามอนแล้วคลิกโจมตี (ใส่หน่วงเวลา)
    3หามอนเพื่อกดเก็บของ
    4กดเก็บของ

    อยากให้ช่วยแนะนำเพิ่มเติมสคริปต์ครับในส่วนของ
    1เมื่อกดโจมตีมอนแล้ว อยากให้เช็คเลือดมอน( 0x732626 )ถ้าตายแล้วจะได้ไปฟังชั่นต่อไปโดยไม่ต้องใช้วิธีเดิมคือใส่หน่วงเวลาไว้
    2หลังจากมอนตายแล้ว มอนเกมนี้ไม่เปลี่ยนสี จึงสั่งให้กดคลิกที่ตัวมอนไม่ได้ เพราะอาจจะไปกดโจมตีมอนตัวต่อไปแทนที่จะกดเพื่อเก็บของ ผมจึงแก้ปัญหาโดยการใช้คำสั่งหาสีแทน โดยลดระยะกรอบในการหาให้แคบลง...มีวิธีอื่นที่ดีกว่านี้ไหมครับ (ที่คิดไว้คือ ในคำสั่งหาสีมอน อยากให้เริ่มหาจากจุดตรงกลางของตัวเกมแล้วขยายขอบเขตที่ละนิดคับ) หรือมีวิธีอื่นดีกว่านี้ โปรดชี้แนะด้วยครับ
    em229

    Code:
    Opt("MouseCoordMode", 2)
    Opt("PixelCoordMode", 2)
    Opt("CaretCoordMode", 2)
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    HotKeySet ( "{ESC}" ,"Terminate")
    HotKeySet ( "{F4}" , "Pause")
    Global $Paused

    Func Terminate()
    ConsoleWrite(' bot exit ' & @error & @crlf)
    Exit
    EndFunc
    Func Pause()
    $Paused = NOT $Paused
        ConsoleWrite(' bot pause ' & @error & @crlf)
    sleep(100)
    EndFunc
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    Global $GameHD  ;ประกาศตัวแปร $GameHD เพื่อนำไปใช้ทั้งเกม
    Global $begin = TimerInit(), $B1 = 1200, $B2 = 1800, $B3 = 1200, $B4 = 1200, $B5 = 1800,$B6 = 1780
    AdlibRegister("buff", 200)
    Global $monster[1] = [ 0x00FE00];สีมอน
    Global $loot[4] = [ 0xA9A9A9,0x939393,0x3D0303,0x300850];สีไอเทมที่จะเก็บ


    Func _PSsixLoadH($gtitle) ;ฟังก์ชันสำหรับตรวจหาหน้าต่างเกม
    $GameHD = WinGetHandle($gtitle) ;ดึงเอาค่า Handle ของหน้าต่างเกมเก็บไว้ในตัวแปร $GameHD
    If @error Then
    MsgBox(4096, "Error", "ไม่พบหน้าต่างเกม") ;ถ้าไม่เจอหน้าต่างเกมแสดงกรอบหน้าต่างแจ้งให้ทราบ
    Else
    Return 1
    EndIf
    EndFunc

    If _PSsixLoadH("Fantasy Online - The Epic Free MMORPG - Google Chrome") Then WinActivate($GameHD) ;ส่งค่าชื่อไตเติลเกมเข้าไปยังฟังก์ชัน หากตรวจพบก็จะสั่งให้เด้งหน้าต่างเกมขึ้นมา


    While Sleep(100)
      SearchMon() ;ค้นหา
      Sleep(2000) ;หน่วงเวลาในการโจมตีมอนต่อ1ตัว
      HP()
      pickmon() ;เลือกมอนที่จะเก็บของ
      Sleep(1000)
        loot() ;เก็บของ
    Sleep(100)

    WEnd

    ;;;;;;;;;;;;;;;;;;;;;;ALL Function;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    Func SearchMon()
    Sleep(100)
    For $i = 0 To UBound($monster)-1
        $coord = PixelSearch( 310,185,746,539, $monster[$i] )
        If IsArray($coord) Then

            ConsoleWrite(_GetTodaysDate() & 'Atkmon at' & $coord[0]&'x' & $coord[1] & @error & @crlf)
    MouseClick("",$coord[0] , $coord[1],2,0) ;สั่งกดมอน
    Sleep(100)
    EndIf
    Next
    EndFunc

    Func pickmon()
    Sleep(100)
    For $i = 0 To UBound($monster)-1
        $coord = PixelSearch( 490,290,570,375, $monster[$i] )
        If IsArray($coord) Then
        MouseClick("",$coord[0] , $coord[1],1,0) ;สั่งกดมอน
    Sleep(100)
    EndIf
    Next
    EndFunc

    Func loot()
     For $i = 0 To UBound($loot)-1
        $coord = PixelSearch( 568,382,654,469, $loot[$i] )
        If IsArray($coord) Then
            ConsoleWrite(_GetTodaysDate() & 'lootItem at' & $coord[0]&'x' & $coord[1] & @error & @crlf)
    MouseClick("",$coord[0] , $coord[1],1,0) ;สั่งกดมอน
    Sleep(1000)
    EndIf
    Next
    EndFunc


     Func HP()
        sleep (100)
      If PixelGetColor( 266,135) = 0x590000 Then ;หลอดเลือด 187-286
        MouseClick("",552, 570,1,0)
        sleep(3000)
        MouseClick("",552, 570,1,0)
        sleep(3000)
        MouseClick("",552, 570,1,0)
        sleep(3000)
        EndIf

    EndFunc

    Func _GetTodaysDate($iReturnTime = 1)
        Local $aMDay[8] = [7, "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat"], _
                $aMonth[13] = [12, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], $aTime[2]=["",''&@HOUR&':'&@MIN&' =']
        Return $aMDay[@WDAY]&',['&@MDAY&'/' & $aMonth[@MON] & '/' & @YEAR &']'& $aTime[$iReturnTime]
    EndFunc  ;==>_GetTodaysDate


    func buff()
    $Diff = Int(TimerDiff($begin)/1000)

    If mod( $Diff, $B1) = 0 Then
    ;Send("2") ;ช่องสกิลที่ 2
    MouseClick("",321, 570,1,0)
    sleep(3000)
    EndIf

    If mod( $Diff, $B2) = 0 Then
    ;Send("3") ;ช่องสกิลที่ 3
    MouseClick("",354, 570,1,0)
    sleep(3000)
    EndIf

    If mod( $Diff, $B3) = 0 Then
    ;Send("4") ;ช่องสกิลที่ 4
    MouseClick("",387, 570,1,0)
    sleep(4000)
    EndIf

    If mod( $Diff, $B4) = 0 Then
    ;Send("5") ;ช่องสกิลที่ 5
    MouseClick("",420, 570,1,0)
    sleep(4000)
    EndIf

    If mod( $Diff, $B5) = 0 Then
    ;Send("8") ;ช่องสกิลที่ 8
    MouseClick("",519, 570,1,0)
    sleep(4000)
    EndIf

    If mod( $Diff, $B6) = 0 Then
    ;ไอเทมในช่องเก็บของช่องแรก
    MouseClick("",772, 419,2,0)
    sleep(2000)
    EndIf
    EndFunc
    ; พิกัดปุ่มกด
    ;    1 = 288, 570
    ;    2 = 321, 570
    ;    3 = 354, 570
    ;    4 = 387, 570
    ;    5 = 420, 570
    ;    6 = 453, 570
    ;    7 = 486, 570
    ;    8 = 519, 570
    ;    9 = 552, 570
    ;    0 = 585, 570
    flapjack
    flapjack
    PSsix Member Super Class III
    PSsix Member Super Class III


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

    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty Re: ชี้แนะสคริปต์+การหาค่าสีทีครับ

    ตั้งหัวข้อ by flapjack 06/03/13, 10:32 pm

    ข้อ 1 น่ะครับ
    ต้องการลูปเข้าช่วยในการเช็ค(หลังจากคลิกโจมตีีแล้ว)
    Code:

    While PixelGetColor(แกน x,แกน y) = 0x732626

    WEnd
    ซึ่งต้องรู้พิกัดที่แน่นอน

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

    ท่านใดมีข้อเสนอหรือแนวทาง ก็ชี้แน่ะเลยน่ะครับ
    avatar
    klenium
    มือใหม่เพิ่งสมัคร
    มือใหม่เพิ่งสมัคร


    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty
    จำนวนข้อความ : 4
    ความนิยม : 0
    เข้าร่วมเมื่อ : 16/02/2013

    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty Re: ชี้แนะสคริปต์+การหาค่าสีทีครับ

    ตั้งหัวข้อ by klenium 06/03/13, 11:29 pm

    ข้อ1ได้ละครับ ขอบคุณ flapjack มากมาย... ตีไวกว่าเดิมเยอะเลย ชี้แนะสคริปต์+การหาค่าสีทีครับ 2432060446
    ส่วนข้อ2 มอนมันไม่นิ่งครับ มันจะขยับเข้ามาหาเราหลังจากเราสั่งโจมตีที่พิกัดสีครับ em246
    avatar
    loveapple244
    PSsix Member Super Class II
    PSsix Member Super Class II


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

    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty Re: ชี้แนะสคริปต์+การหาค่าสีทีครับ

    ตั้งหัวข้อ by loveapple244 07/03/13, 09:01 am

    PixelSearch มีการหาค่ามอนแล้วแต่จากที่ลองก๊อฟไปลองใช้มันไม่มีPixelSearchสำหรับทราบว่าPixelSearchยังตีมอนอยู่พอมีมอนอยู่ต้อง SearchMonหยดการทำงานและให้PixelSearchเพื่อให้ตีมอนแล้วถ้ามอนเป็นเท็จก็ให้กลับไปยัง SearchMonแล้วหน่วงเวลาในการค้นหาและคิ๊กควรเป็น700msมากกว่าเพราะเราลองเกมส์ออนไลน์มามันอยู่ที่700msนะแต่เราไม่เก่งแบบเธออะเลยไม่รู้เขียนยังไงแต่เกมส์ที่เราเขียนนะมันเขียนแบบว่าหาสีมอนแล้วมอนยังตีคือสีฟ้าแล้วตีมอนอยู่ถ้าสีฟ้าคือตีมอนหายไปให้หามอนต่อลองดูโค๊สเราก็ได้เผื่อเป็นแนวอันนี้ใช้ได้จิงๆนะเพราะใช้มา1ปีแล้วสคิปนี้
    HotKeySet("{ESC}", "stop")
    Global $GameHD ;ประกาศตัวแปร $GameHD เพื่อนำไปใช้ทั้งเกม
    Func _PSsixLoadH($gtitle)
    $GameHD = WinGetHandle($gtitle) ;ดึงเอาค่า Handle ของหน้าต่างเกมเก็บไว้ในตัวแปร $GameHD
    If @error Then
    MsgBox(4096, "Error", "ไม่พบหน้าต่างเกม") ;ถ้าไม่เจอหน้าต่างเกมแสดงกรอบหน้าต่างแจ้งให้ทราบ
    Else
    Return 1
    EndIf
    EndFunc

    If _PSsixLoadH("xxxx") Then WinActivate($GameHD)

    Func stop()
    Exit
    EndFunc

    AdlibRegister("atk", 1000)
    While 1

    Sleep(850)
    WEnd
    Func Mon()

    $le = PixelSearch(363, 365, 1120, 755, 0x16AABF ,10)
    If @error Then
    ToolTip('ไม่พบสีฟ้า', 0, 0)
    AdlibUnRegister("Mon")
    Sleep(850)
    AdlibRegister("atk", 100)
    EndIf
    EndFunc

    Func atk()
    $monster = 0xE64A00
    ;0x94514E
    ;0xB2A6C5
    ; $aa = 0x8E4C52
    ;0x1A2840

    $le = PixelSearch(363, 365, 1120, 755, $monster ,10)
    If Not @error Then
    ToolTip('111111', 0, 0)
    MouseMove($le[0], $le[1])
    Sleep(250)
    MouseClick("left",$le[0], $le[1],1)
    ToolTip('กำลังโจมตี', 0, 0)
    Sleep(350)
    AdlibUnRegister("atk")
    Sleep(350)
    AdlibRegister("Mon", 100)
    EndIf

    EndFunc
    avatar
    klenium
    มือใหม่เพิ่งสมัคร
    มือใหม่เพิ่งสมัคร


    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty
    จำนวนข้อความ : 4
    ความนิยม : 0
    เข้าร่วมเมื่อ : 16/02/2013

    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty Re: ชี้แนะสคริปต์+การหาค่าสีทีครับ

    ตั้งหัวข้อ by klenium 07/03/13, 06:41 pm

    คุณ flapjack ผมใส่codeผิดตำแหน่งรึเปล่า พอผมลองรันใหม่อีกรอบกลายเป็นว่า มันรอตามหน่วงเวลา(2วิ)แล้วมันไปคลิกตีตัวอื่นที่อยู่ใกล้ๆกันครับ ทำให้มอนมันรุมตาย

    Code:
    Func SearchMon()
    Sleep(100)
    For $i = 0 To UBound($monster)-1
        $coord = PixelSearch( 310,185,746,539, $monster[$i] )
        If IsArray($coord) Then

            ConsoleWrite(_GetTodaysDate() & 'Atkmon at' & $coord[0]&'x' & $coord[1] & @error & @crlf)
    MouseClick("",$coord[0] , $coord[1],2,0) ;สั่งกดมอน
    Sleep(100)
    EndIf
    Next
    While PixelGetColor(แกน x,แกน y) = 0x732626

    WEnd
    EndFunc

    คุณ loveapple244 ขอบคุณสำหรับโคดครับ
    ผมไม่ได้เก่งหรอกครับ อ่านในblog ทั้ง8บทของคุณ pos แล้วก็อ่านจากในบอร์ดนี้ทั้งหมด เอามาปรับใช้เอง อะครับ (อาศัยพออ่านโคดพอเข้าใจบ้าง ดูในhelpของโปรแกรมมันบ้าง ก็พอคลำๆไปได้) em228
    ยังไม่ได้ทำguiเลย กะว่าเอาให้มันเกือบสมบูรณ์ก่อนแล้วค่อยใส่gui อีกที
    avatar
    Fast
    PSsix Member Super Class III
    PSsix Member Super Class III


    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty PSsix Program Coder
    จำนวนข้อความ : 217
    ความนิยม : 54
    เข้าร่วมเมื่อ : 19/06/2011

    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty Re: ชี้แนะสคริปต์+การหาค่าสีทีครับ

    ตั้งหัวข้อ by Fast 07/03/13, 07:40 pm

    While PixelGetColor(แกน x,แกน y) = 0x732626
    Sleep(1000) ;ใส่ด้วยท่าน
    WEnd
    flapjack
    flapjack
    PSsix Member Super Class III
    PSsix Member Super Class III


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

    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty Re: ชี้แนะสคริปต์+การหาค่าสีทีครับ

    ตั้งหัวข้อ by flapjack 08/03/13, 05:42 am

    klenium พิมพ์ว่า:คุณ flapjack ผมใส่codeผิดตำแหน่งรึเปล่า พอผมลองรันใหม่อีกรอบกลายเป็นว่า มันรอตามหน่วงเวลา(2วิ)แล้วมันไปคลิกตีตัวอื่นที่อยู่ใกล้ๆกันครับ ทำให้มอนมันรุมตาย

    Code:
    Func SearchMon()
    Sleep(100)
    For $i = 0 To UBound($monster)-1
        $coord = PixelSearch( 310,185,746,539, $monster[$i] )
        If IsArray($coord) Then

            ConsoleWrite(_GetTodaysDate() & 'Atkmon at' & $coord[0]&'x' & $coord[1] & @error & @crlf)
    MouseClick("",$coord[0] , $coord[1],2,0) ;สั่งกดมอน
    Sleep(100)
    EndIf
    Next
    While PixelGetColor(แกน x,แกน y) = 0x732626

    WEnd
    EndFunc

    คุณ loveapple244 ขอบคุณสำหรับโคดครับ
    ผมไม่ได้เก่งหรอกครับ อ่านในblog ทั้ง8บทของคุณ pos แล้วก็อ่านจากในบอร์ดนี้ทั้งหมด เอามาปรับใช้เอง อะครับ (อาศัยพออ่านโคดพอเข้าใจบ้าง ดูในhelpของโปรแกรมมันบ้าง ก็พอคลำๆไปได้) em228
    ยังไม่ได้ทำguiเลย กะว่าเอาให้มันเกือบสมบูรณ์ก่อนแล้วค่อยใส่gui อีกที



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

    เพิ่มคำสั่งในลูปFor
    Code:
    ExitLoop
    หลังจากคลิกโจมตีแล้ว

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


    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty
    จำนวนข้อความ : 4
    ความนิยม : 0
    เข้าร่วมเมื่อ : 16/02/2013

    ชี้แนะสคริปต์+การหาค่าสีทีครับ Empty Re: ชี้แนะสคริปต์+การหาค่าสีทีครับ

    ตั้งหัวข้อ by klenium 08/03/13, 08:48 pm

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

      เวลาขณะนี้ 26/04/24, 02:55 pm