ฟอรั่ม 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


3 posters

    คำสั่งเมื่อเกมถูกปิดแล้วให้เปิดขึ้นใหม่

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


    คำสั่งเมื่อเกมถูกปิดแล้วให้เปิดขึ้นใหม่ Empty คำสั่งเมื่อเกมถูกปิดแล้วให้เปิดขึ้นใหม่ Empty
    จำนวนข้อความ : 3
    ความนิยม : 0
    เข้าร่วมเมื่อ : 28/09/2012

    คำสั่งเมื่อเกมถูกปิดแล้วให้เปิดขึ้นใหม่ Empty คำสั่งเมื่อเกมถูกปิดแล้วให้เปิดขึ้นใหม่

    ตั้งหัวข้อ by sos007ok02 03/04/13, 07:02 pm

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

    Opt("MouseCoordMode", 2)
    Opt("PixelCoordMode", 2)
    Opt("CaretCoordMode", 2)
    Global $GameHD ;ประกาศตัวแปร $GameHD เพื่อนำไปใช้ทั้งเกม
    Global $number[3] = [ 0x666666, 0x888888 ,0x999999];ใส่รหัสสีที่จะหา
    Global $gameX1, $gameY1

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

    While 1
    if($GameHD)=0 then Run (""D:\Program Files\Maple\MapleStory\ExtaliaMS.exe"")
    while ($GameHD)=1
    If _PSsixLoadH("ExtaliaMS")Then
    WinActivate($GameHD) ;ส่งค่าชื่อไตเติลเกมเข้าไปยังฟังก์ชัน หากตรวจพบก็จะสั่ง
    Sleep(100)
    Else
    Run (""D:\Program Files\Maple\MapleStory\ExtaliaMS.exe"")
    Sleep(100)
    EndIf
    WEnd

    if PixelGetColor(526,161)=0xBB2200 Then
    Sleep(3000)
    ControlSend($GameHD, "", "","0487682596")
    Sleep(1000)
    MouseClick("",477,304,1,1)
    Sleep(5000)
    MouseClick("",158,58,1,1)
    Sleep(2000)
    MouseClick("",321,353,2,10)
    Sleep(2000)
    MouseClick("",670,451,1,1)
    Sleep(200)
    Else

    EndIf
    WEnd

    Func stop()
    Exit
    EndFunc

    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 05/04/13, 07:45 pm

    ใส่สคริ๊ปนี้ตรวจดูครับท่าน

    if ProcessExists("notepad.exe") Then ;เปลี่ยนชื่อ notepad.exe เป็นชื่อเกมส์
    Sleep(100)
    Else
    Run("notepad.exe") ;สั่งรันโปรแกรม
    EndIf
    avatar
    sos007ok02
    มือใหม่เพิ่งสมัคร
    มือใหม่เพิ่งสมัคร


    คำสั่งเมื่อเกมถูกปิดแล้วให้เปิดขึ้นใหม่ Empty คำสั่งเมื่อเกมถูกปิดแล้วให้เปิดขึ้นใหม่ Empty
    จำนวนข้อความ : 3
    ความนิยม : 0
    เข้าร่วมเมื่อ : 28/09/2012

    คำสั่งเมื่อเกมถูกปิดแล้วให้เปิดขึ้นใหม่ Empty Re: คำสั่งเมื่อเกมถูกปิดแล้วให้เปิดขึ้นใหม่

    ตั้งหัวข้อ by sos007ok02 08/04/13, 02:22 am

    คำสั่งที่เหลือก็ถูกแล้วใช่ไหมครับ ผมไม่ค่อยเข้าใจกับคำสั่ง while ($GameHD)=1 พวกนี้เลย เขียนเอง งงเอง พอจะอธิบายหน่อยได้ไหมครับ รูปแบบมันคือยังไง เงื่อนไขมันใช้แบบไหนอะครับ
    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/04/13, 04:05 pm

    sos007ok02 พิมพ์ว่า:คำสั่งที่เหลือก็ถูกแล้วใช่ไหมครับ ผมไม่ค่อยเข้าใจกับคำสั่ง while ($GameHD)=1 พวกนี้เลย เขียนเอง งงเอง พอจะอธิบายหน่อยได้ไหมครับ รูปแบบมันคือยังไง เงื่อนไขมันใช้แบบไหนอะครับ


    ผมก็ไม่รู้รูปแบบของเกมน่ะครับว่าจะต้องทำอะไรบ้าง...
    จะอธิบายคร่าวๆน่ะครับ
    Code:

    while ($GameHD)=1

    เป็นคำสั่ง loop โดยมีเงื่อนไขจากตัวแปร $GameHD ที่มีค่า = 1 (ซึ่งต้องเป็นจริงจะทำคำสั่ง ข้างใน loop)
    ตัวแปร $GameHD จะมีค่าได้จาก
    Code:
     Func _PSsixLoadH($gtitle)
    (โดยมีการเรียก _PSsixLoadH("ExtaliaMS"))

    แต่โค๊ดของคุณ sos007ok02 ในส่วนของ Func _PSsixLoadH($gtitle)
    Code:

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

    while ($GameHD)=1
    .....
    .....
    WEnd
     
    เปลี่ยนเป็น
    Code:

    While (  _PSsixLoadH("ExtaliaMS") = 1)
    ....
    ....
    WEnd
    ถ้ามีอะไรผิด ผู้รู้ช่วยแนะนำด้วยน่ะครับ

      เวลาขณะนี้ 27/04/24, 10:06 am