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

    รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error

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


    รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty
    จำนวนข้อความ : 2
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/02/2012

    รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error

    ตั้งหัวข้อ by inloveonline 08/02/12, 04:04 pm

    รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error

    Code:
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=AsCabal Breaker 1.3.2.exe
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Res_Comment=~dNkN!
    #AutoIt3Wrapper_Res_Description=AsCabal Breaker Hack
    #AutoIt3Wrapper_Res_Fileversion=1.3.2.0
    #AutoIt3Wrapper_Res_LegalCopyright=~dNkN!
    #AutoIt3Wrapper_Res_Language=1045
    #AutoIt3Wrapper_Run_Obfuscator=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;~  #NoTrayIcon
    #cs ----------------------------------------------------------------------------

     AutoIt Version: 3.3.0.0
     Author:        ~dNkN! aka AutoItDude

     Script Function:
       Breaker Hack.

    #ce ----------------------------------------------------------------------------

    ; Script Start - Add your code below here
    $trayRUNCLIENT=TrayCreateItem("Launch Game")
    $trayATTACH=TrayCreateItem("Patch Game")

    ; =================================================================
    ; SCRIPT OPTIONS
    ; =================================================================
    Opt("TrayAutoPause",0)
    Opt("SendKeyDownDelay",1)
    Opt("SendKeyDelay",1)

    ; =================================================================
    ; AUTOIT INCLUDES
    ; =================================================================
    #include <Misc.au3>
    #include <Array.au3>

    ; =================================================================
    ; MY INCLUDES
    ; =================================================================
    #include <include\_NomadMemory.au3>
    #include <include\_ProcessGetChildren.au3>
    #include <include\_ProcessControl.au3>


    ; =================================================================
    ; GLOBAL VARIABLES
    ; =================================================================
    Global $hProc, $MEM_BASEADDR=0
    Global $AURAMODE=0
    Global $UNIT_KIND, $UNIT_ID, $UNIT_RMB
    Global $MEM_ADDR_NOCD
    Global $MEM_ADDR_UNITID
    Global $MEM_ADDR_UNITKIND
    Global $MEM_ADDR_CHATOPEN
    Global $MEM_ADDR_RANGEHACK
    Global $MEM_ADDR_AOEHACK
    Global $MEM_ADDR_WALK
    Global $MEM_ADDR_WALK_SPEED
    Global $MEM_ADDR_AURAMODE
    Global $MEM_ADDR_UNITRMB
    Global $MEM_ADDR_MAP[4]



    RunAsCABAL()
    AttachProcToClient()




    ; =================================================================
    ; MAIN LOOP
    ; =================================================================
    While 1
       TrayMsgProc()

       SetAOEHack()   ; F9
       SetRangeHack()   ; F10
       SetWalkSpeed()    ; F11
       MapHack()      ; F12

       SelectUnitRMB()   ; MOUSE WHEEL

       AuraMode()
       Sleep(20)
    WEnd







    ; =================================================================
    ; Testing things
    ; =================================================================
    Func SelectUnitRMB()
       If _IsPressed("04") Then
          _MemoryWrite($MEM_ADDR_UNITID,$hPROC,$UNIT_RMB,"DWORD")
          _MemoryWrite($MEM_ADDR_UNITKIND,$hPROC,0,"DWORD")
       EndIf
    EndFunc

    Func AuraMode()
       If $AURAMODE=1 And ($UNIT_KIND=0 Or $UNIT_KIND=1) Then
          If Not ChatEnabled() Then Send(1)
       EndIf
    EndFunc

    Func ChatEnabled()
       Return _MemoryRead($MEM_ADDR_CHATOPEN,$hPROC,"DWORD")
    EndFunc



    ; =================================================================
    ; Message Procedures
    ; =================================================================
    Func GameMSG($sMSG,$iDelay=500)
       If WinActive("CABAL") Then
       Opt("SendKeyDownDelay",20)
       Opt("SendKeyDelay",1)
          If Not ChatEnabled() Then Send("{ENTER}")
          ClipPut($sMSG)
          If ChatEnabled() Then
             Send("^v")
             Sleep($iDelay)
             Send("{ESC 2}")
          EndIf
       Opt("SendKeyDownDelay",1)
       Opt("SendKeyDelay",1)
       EndIf
    EndFunc

    Func TrayMsgProc()
       $msg = TrayGetMsg()
          Select
             Case $msg=$trayRUNCLIENT
                RunAsCABAL()
             Case $msg=$trayATTACH
                AttachProcToClient()
          EndSelect
    EndFunc




    ; =================================================================
    ; Hacks
    ; =================================================================
    Func ASM_ReplaceCode($hADDRESS,$hPROCESS,$sCODETOFIND,$sCODETOREPLACE)
       Local $LEN=BinaryLen($sCODETOFIND)
       If BinaryLen($sCODETOFIND)=BinaryLen($sCODETOREPLACE) Then
          ConsoleWrite("0x" & Hex(_MemoryRead($hADDRESS,$hPROCESS,"BYTE["&$LEN&"]")) & @CRLF)
          If ("0x" & Hex(_MemoryRead($hADDRESS,$hPROCESS,"BYTE["&$LEN&"]"),$LEN*2))=$sCODETOFIND Then
             _MemoryWrite($hADDRESS,$hPROCESS,$sCODETOREPLACE,"BYTE["&$LEN&"]")
             Return 1
          Else
             Return 0
          EndIf
       Else
          Return -1
       EndIf
    EndFunc

    Func PatchGameClient()
       Local $RETURN=0
          $RETURN+=ASM_ReplaceCode(0x004E0F05,$hPROC,"0xD998E4010000","0x909090909090")        ; CPlayer.StoreWalkSpeed
          $RETURN+=ASM_ReplaceCode(0x0047CA97,$hPROC,"0x89bed0010000","0x909090909090")       ; pseudo NoCD - skill used
          $RETURN+=ASM_ReplaceCode(0x0048C08F,$hPROC,"0x898a90330000","0x909090909090")      ; pseudo NoCD - walk ability

          ; faster dmg cast
          $RETURN+=ASM_ReplaceCode(0x00614A05,$hPROC,"0xc700000080bf","0x909090909090")      ; mov [eax],bf800000
          $RETURN+=ASM_ReplaceCode(0x00614A1B,$hPROC,"0x8908","0x9090")                  ; mov [eax],ecx

          ; no cooldown
          $RETURN+=ASM_ReplaceCode(0x006952E9,$hPROC,"0x8b442404894120","0xc7412001000000")   ; mov eax,[esp+04]
                                                                         ; mov [ecx+20],eax

          _MemoryWrite($MEM_ADDR_NOCD,$hProc,1,"DWORD")
          _MemoryWrite($MEM_ADDR_WALK,$hProc,1,"DWORD")

          $RETURN=Round($RETURN/6,1)
          If $RETURN>0.95 Then
             Return "Succeded and finished"
          Else
             Return "Failed to patch"
          EndIf
    EndFunc





    ; =================================================================
    ; Launcher
    ; =================================================================
    Func RunAsCABAL()
       If Not WinExists("CABAL") Then
          Local $PID = Run("AdikDefense.exe ADFlag")
          Local $PROCTOKILL[1]

          If $PID=0 Then
             MsgBox(0,"Error","Could not start AdikDefense.exe")
             Exit
          EndIf

          WinWait("CABAL")
          _ProcessNT($PID,1)
          $PROCGETCHILDER   =_ProcessGetChildren($PID)

          For $PROC=1 To UBound($PROCGETCHILDER)-2
             _ArrayAdd($PROCTOKILL,$PROCGETCHILDER[$PROC][0])
          Next

          For $i=0 To UBound($PROCTOKILL)-1
             _ProcessNT($PROCTOKILL[$i],1)
          Next
          For $i=0 To UBound($PROCTOKILL)-1
             ProcessClose($PROCTOKILL[$i])
          Next
          ProcessClose("AdikDefense.exe")
       EndIf
    EndFunc

    Func AttachProcToClient()
       Local $MSG=""
       TrayTip("Patch Game Client","Looking for client process...",1,1)
       WinWait("CABAL")
       $hProc = _MemoryOpen(WinGetProcess("CABAL"))
       AdlibEnable("_MemoryProc",100)

       $MEM_BASEADDR      =_MemoryRead(0x00842070,$hProc,"dword")
       $MEM_ADDR_NOCD      =$MEM_BASEADDR+0x01D0      ; DWORD
       $MEM_ADDR_CHATOPEN   =0x00C5A7C8               ; DWORD
       $MEM_ADDR_RANGEHACK   =0x00C60AA0               ; DWORD
       $MEM_ADDR_AOEHACK   =0x00C60AA4               ; DWORD
       $MEM_ADDR_UNITID   =$MEM_BASEADDR+0x2D94      ; DWORD
       $MEM_ADDR_UNITKIND    =$MEM_BASEADDR+0x2D98      ; DWORD
       $MEM_ADDR_UNITRMB   =$MEM_BASEADDR+0x2E0C      ; DWORD
       $MEM_ADDR_WALK      =$MEM_BASEADDR+0x3390      ; DWORD
       $MEM_ADDR_WALK_SPEED=$MEM_BASEADDR+0x01E4      ; FLOAT
       $MEM_ADDR_AURAMODE  =$MEM_BASEADDR+0x1C60      ; DWORD
    Dim   $MEM_ADDR_MAP[4]    =[0x00C2C5A8, _            ; DWORD
                        0x00C37FB4, _            ; DWORD
                          $MEM_BASEADDR+0x2E94, _   ; DWORD
                        $MEM_BASEADDR+0x339C]    ; DWORD

       $PATCHING=PatchGameClient()
       TrayTip("Patch Game Client",$PATCHING,1,1)
    EndFunc




    ; =================================================================
    ; In-game switches
    ; =================================================================
    Func SetAOEHack()
       If _IsPressed("78") Then
          Local $AOE=_MemoryRead($MEM_ADDR_AOEHACK,$hProc,"DWORD")
          Switch $AOE
             Case 0
                $AOE=5
             Case 5
                $AOE=25
             Case 25
                $AOE=1000
             Case 1000
                $AOE=0
          EndSwitch
          _MemoryWrite($MEM_ADDR_AOEHACK,$hPROC,$AOE,"DWORD")
          GameMSG("AOEHack = " & $AOE)
          Sleep(200)
       EndIf
    EndFunc

    Func SetRangeHack()
       If _IsPressed("79") Then
          Local $RANGE=_MemoryRead($MEM_ADDR_RANGEHACK,$hProc,"DWORD")
          Switch $RANGE
             Case 0
                $RANGE=5
             Case 5
                $RANGE=25
             Case 25
                $RANGE=1000
             Case 1000
                $RANGE=0
          EndSwitch
          _MemoryWrite($MEM_ADDR_RANGEHACK,$hPROC,$RANGE,"DWORD")
          GameMSG("RangeHack = " & $RANGE)
          Sleep(200)
       EndIf
    EndFunc

    Func SetWalkSpeed()
    If _IsPressed("7A") Then
       Local $SPEED=_MemoryRead($MEM_ADDR_WALK_SPEED,$hProc,"FLOAT")
       Switch $SPEED
          Case 380
             $SPEED=720
          Case 720
             $SPEED=1100
          Case 1100
             $SPEED=5500
          Case 5500
             $SPEED=380
       EndSwitch
       _MemoryWrite($MEM_ADDR_WALK_SPEED,$hProc,$SPEED,"FLOAT")
       GameMSG("SpeedHack = " & $SPEED)
       Sleep(200)
    EndIf
    EndFunc

    Func MapHack()
       Local $MAP_ID=-1
       Local $MAPNAME[11]=["","1-Bloody Ice","2-Desert Scream","3-Green Despair","4-Port Lux","5-Fort Ruina","6-Lake Side","7-Undead Ground","8-Forgotten Ruin","9-Mutant Forest","0-Pontus Ferrum"]
       If _IsPressed("7B") Then
          GameMSG("MapHack - Select map by pressing key 0-9",1000)
          Do
             For $n=30 To 39
                If _IsPressed($n) Then
                   If $n=30 Then
                         $MAP_ID=10
                      Else
                         $MAP_ID=$n-30
                   EndIf
                   ExitLoop
                EndIf
             Next
          Until $MAP_ID<>-1

       For $x=0 To 3
          _MemoryWrite($MEM_ADDR_MAP[$x],$hProc,$MAP_ID,"DWORD")
       Next
       GameMSG("MapHack - " & $MAPNAME[$MAP_ID])
       EndIf
    EndFunc




    ; =================================================================
    ; MemoryProc
    ; =================================================================
    #Region MemoryProc
    Func _MemoryProc()
       $UNIT_RMB      =_MemoryRead($MEM_ADDR_UNITRMB,$hProc,"DWORD")
       $UNIT_ID      =_MemoryRead($MEM_ADDR_UNITID,$hProc,"DWORD")
       $UNIT_KIND      =_MemoryRead($MEM_ADDR_UNITKIND,$hProc,"DWORD")
       $AURAMODE      =_MemoryRead($MEM_ADDR_AURAMODE,$hPROC,"DWORD")
    EndFunc
    #EndRegion MemoryProc

    ผิดพลาดตรงไหนช่วยแนะนำทีครับ
    max30012540
    max30012540
    PSsix Member High Class
    PSsix Member High Class


    รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty PSsix Program Coder
    จำนวนข้อความ : 98
    ความนิยม : 10
    เข้าร่วมเมื่อ : 10/10/2011
    อายุ : 26

    รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty Re: รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error

    ตั้งหัวข้อ by max30012540 08/02/12, 05:03 pm

    em228
    Code:
    #Include <Misc.au3>
    #Include <Array.au3>

    Global $hProc, $MEM_BASEADDR=0
    Global $AURAMODE=0
    Global $UNIT_KIND, $UNIT_ID, $UNIT_RMB
    Global $MEM_ADDR_NOCD
    Global $MEM_ADDR_UNITID
    Global $MEM_ADDR_UNITKIND
    Global $MEM_ADDR_CHATOPEN
    Global $MEM_ADDR_RANGEHACK
    Global $MEM_ADDR_AOEHACK
    Global $MEM_ADDR_WALK
    Global $MEM_ADDR_WALK_SPEED
    Global $MEM_ADDR_AURAMODE
    Global $MEM_ADDR_UNITRMB
    Global $MEM_ADDR_MAP[4]

    RunAsCABAL()
    AttachProcToClient()

    While 1
      SetAOEHack()  ; F9
      SetRangeHack()  ; F10
      SetWalkSpeed()    ; F11
      MapHack()      ; F12

      SelectUnitRMB()  ; MOUSE WHEEL

      AuraMode()
      Sleep(20)
    WEnd

    Func SelectUnitRMB()
      If _IsPressed("04") Then
          _MemoryWrite($MEM_ADDR_UNITID,$hPROC,$UNIT_RMB,"DWORD")
          _MemoryWrite($MEM_ADDR_UNITKIND,$hPROC,0,"DWORD")
      EndIf
    EndFunc

    Func AuraMode()
      If $AURAMODE=1 And ($UNIT_KIND=0 Or $UNIT_KIND=1) Then
          If Not ChatEnabled() Then Send(1)
      EndIf
    EndFunc

    Func ChatEnabled()
      Return _MemoryRead($MEM_ADDR_CHATOPEN,$hPROC,"DWORD")
    EndFunc

    Func GameMSG($sMSG,$iDelay=500)
      If WinActive("CABAL") Then
      Opt("SendKeyDownDelay",20)
      Opt("SendKeyDelay",1)
          If Not ChatEnabled() Then Send("{ENTER}")
          ClipPut($sMSG)
          If ChatEnabled() Then
            Send("^v")
            Sleep($iDelay)
            Send("{ESC 2}")
          EndIf
      Opt("SendKeyDownDelay",1)
      Opt("SendKeyDelay",1)
      EndIf
    EndFunc

    Func ASM_ReplaceCode($hADDRESS,$hPROCESS,$sCODETOFIND,$sCODETOREPLACE)
      Local $LEN=BinaryLen($sCODETOFIND)
      If BinaryLen($sCODETOFIND)=BinaryLen($sCODETOREPLACE) Then
          ConsoleWrite("0x" & Hex(_MemoryRead($hADDRESS,$hPROCESS,"BYTE["&$LEN&"]")) & @CRLF)
          If ("0x" & Hex(_MemoryRead($hADDRESS,$hPROCESS,"BYTE["&$LEN&"]"),$LEN*2))=$sCODETOFIND Then
            _MemoryWrite($hADDRESS,$hPROCESS,$sCODETOREPLACE,"BYTE["&$LEN&"]")
            Return 1
          Else
            Return 0
          EndIf
      Else
          Return -1
      EndIf
    EndFunc

    Func PatchGameClient()
      Local $RETURN=0
          $RETURN+=ASM_ReplaceCode(0x004E0F05,$hPROC,"0xD998E4010000","0x909090909090")        ; CPlayer.StoreWalkSpeed
          $RETURN+=ASM_ReplaceCode(0x0047CA97,$hPROC,"0x89bed0010000","0x909090909090")      ; pseudo NoCD - skill used
          $RETURN+=ASM_ReplaceCode(0x0048C08F,$hPROC,"0x898a90330000","0x909090909090")      ; pseudo NoCD - walk ability

          ; faster dmg cast
          $RETURN+=ASM_ReplaceCode(0x00614A05,$hPROC,"0xc700000080bf","0x909090909090")      ; mov [eax],bf800000
          $RETURN+=ASM_ReplaceCode(0x00614A1B,$hPROC,"0x8908","0x9090")                  ; mov [eax],ecx

          ; no cooldown
          $RETURN+=ASM_ReplaceCode(0x006952E9,$hPROC,"0x8b442404894120","0xc7412001000000")  ; mov eax,[esp+04]
                                                                        ; mov [ecx+20],eax

          _MemoryWrite($MEM_ADDR_NOCD,$hProc,1,"DWORD")
          _MemoryWrite($MEM_ADDR_WALK,$hProc,1,"DWORD")

          $RETURN=Round($RETURN/6,1)
          If $RETURN>0.95 Then
            Return "Succeded and finished"
          Else
            Return "Failed to patch"
          EndIf
    EndFunc

    Func RunAsCABAL()
      If Not WinExists("CABAL") Then
          Local $PID = Run("AdikDefense.exe ADFlag")
          Local $PROCTOKILL[1]

          If $PID=0 Then
            MsgBox(0,"Error","Could not start AdikDefense.exe")
            Exit
          EndIf

          WinWait("CABAL")
          _ProcessNT($PID,1)
          $PROCGETCHILDER  =_ProcessGetChildren($PID)

          For $PROC=1 To UBound($PROCGETCHILDER)-2
            _ArrayAdd($PROCTOKILL,$PROCGETCHILDER[$PROC][0])
          Next

          For $i=0 To UBound($PROCTOKILL)-1
            _ProcessNT($PROCTOKILL[$i],1)
          Next
          For $i=0 To UBound($PROCTOKILL)-1
            ProcessClose($PROCTOKILL[$i])
          Next
          ProcessClose("AdikDefense.exe")
      EndIf
    EndFunc

    Func AttachProcToClient()
      Local $MSG=""
      TrayTip("Patch Game Client","Looking for client process...",1,1)
      WinWait("CABAL")
      $hProc = _MemoryOpen(WinGetProcess("CABAL"))
      AdlibRegister("_MemoryProc",100)

      $MEM_BASEADDR      =_MemoryRead(0x00842070,$hProc,"dword")
      $MEM_ADDR_NOCD      =$MEM_BASEADDR+0x01D0      ; DWORD
      $MEM_ADDR_CHATOPEN  =0x00C5A7C8              ; DWORD
      $MEM_ADDR_RANGEHACK  =0x00C60AA0              ; DWORD
      $MEM_ADDR_AOEHACK  =0x00C60AA4              ; DWORD
      $MEM_ADDR_UNITID  =$MEM_BASEADDR+0x2D94      ; DWORD
      $MEM_ADDR_UNITKIND    =$MEM_BASEADDR+0x2D98      ; DWORD
      $MEM_ADDR_UNITRMB  =$MEM_BASEADDR+0x2E0C      ; DWORD
      $MEM_ADDR_WALK      =$MEM_BASEADDR+0x3390      ; DWORD
      $MEM_ADDR_WALK_SPEED=$MEM_BASEADDR+0x01E4      ; FLOAT
      $MEM_ADDR_AURAMODE  =$MEM_BASEADDR+0x1C60      ; DWORD
    Dim  $MEM_ADDR_MAP[4]    =[0x00C2C5A8, _            ; DWORD
                        0x00C37FB4, _            ; DWORD
                          $MEM_BASEADDR+0x2E94, _  ; DWORD
                        $MEM_BASEADDR+0x339C]    ; DWORD

      $PATCHING=PatchGameClient()
      TrayTip("Patch Game Client",$PATCHING,1,1)
    EndFunc

    Func SetAOEHack()
      If _IsPressed("78") Then
          Local $AOE=_MemoryRead($MEM_ADDR_AOEHACK,$hProc,"DWORD")
          Switch $AOE
            Case 0
                $AOE=5
            Case 5
                $AOE=25
            Case 25
                $AOE=1000
            Case 1000
                $AOE=0
          EndSwitch
          _MemoryWrite($MEM_ADDR_AOEHACK,$hPROC,$AOE,"DWORD")
          GameMSG("AOEHack = " & $AOE)
          Sleep(200)
      EndIf
    EndFunc

    Func SetRangeHack()
      If _IsPressed("79") Then
          Local $RANGE=_MemoryRead($MEM_ADDR_RANGEHACK,$hProc,"DWORD")
          Switch $RANGE
            Case 0
                $RANGE=5
            Case 5
                $RANGE=25
            Case 25
                $RANGE=1000
            Case 1000
                $RANGE=0
          EndSwitch
          _MemoryWrite($MEM_ADDR_RANGEHACK,$hPROC,$RANGE,"DWORD")
          GameMSG("RangeHack = " & $RANGE)
          Sleep(200)
      EndIf
    EndFunc

    Func SetWalkSpeed()
    If _IsPressed("7A") Then
      Local $SPEED=_MemoryRead($MEM_ADDR_WALK_SPEED,$hProc,"FLOAT")
      Switch $SPEED
          Case 380
            $SPEED=720
          Case 720
            $SPEED=1100
          Case 1100
            $SPEED=5500
          Case 5500
            $SPEED=380
      EndSwitch
      _MemoryWrite($MEM_ADDR_WALK_SPEED,$hProc,$SPEED,"FLOAT")
      GameMSG("SpeedHack = " & $SPEED)
      Sleep(200)
    EndIf
    EndFunc

    Func MapHack()
      Local $MAP_ID=-1
      Local $MAPNAME[11]=["","1-Bloody Ice","2-Desert Scream","3-Green Despair","4-Port Lux","5-Fort Ruina","6-Lake Side","7-Undead Ground","8-Forgotten Ruin","9-Mutant Forest","0-Pontus Ferrum"]
      If _IsPressed("7B") Then
          GameMSG("MapHack - Select map by pressing key 0-9",1000)
          Do
            For $n=30 To 39
                If _IsPressed($n) Then
                  If $n=30 Then
                        $MAP_ID=10
                      Else
                        $MAP_ID=$n-30
                  EndIf
                  ExitLoop
                EndIf
            Next
          Until $MAP_ID<>-1

      For $x=0 To 3
          _MemoryWrite($MEM_ADDR_MAP[$x],$hProc,$MAP_ID,"DWORD")
      Next
      GameMSG("MapHack - " & $MAPNAME[$MAP_ID])
      EndIf
    EndFunc

    Func _MemoryProc()
      $UNIT_RMB      =_MemoryRead($MEM_ADDR_UNITRMB,$hProc,"DWORD")
      $UNIT_ID      =_MemoryRead($MEM_ADDR_UNITID,$hProc,"DWORD")
      $UNIT_KIND      =_MemoryRead($MEM_ADDR_UNITKIND,$hProc,"DWORD")
      $AURAMODE      =_MemoryRead($MEM_ADDR_AURAMODE,$hPROC,"DWORD")
    EndFunc

    Func _ProcessNT($iPID, $iSuspend = True)
        If IsString($iPID) Then $iPID = ProcessExists($iPID)
        If Not $iPID Then Return SetError(2, 0, 0)
        Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $iPID)
        If $iSuspend Then
            Local $i_sucess = DllCall("ntdll.dll","int","NtSuspendProcess","int",$ai_Handle[0])
        Else
            Local $i_sucess = DllCall("ntdll.dll","int","NtResumeProcess","int",$ai_Handle[0])
        EndIf
        DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
        If IsArray($i_sucess) Then Return 1
        Return SetError(1, 0, 0)
    EndFunc

    Func _ProcessGetChildren($i_pid)
        Local Const $TH32CS_SNAPPROCESS = 0x00000002

        Local $a_tool_help = DllCall('Kernel32.dll', 'long', 'CreateToolhelp32Snapshot', 'int', $TH32CS_SNAPPROCESS, 'int', 0)
        If IsArray($a_tool_help) = 0 Or $a_tool_help[0] = -1 Then Return SetError(1, 0, $i_pid)

        Local $tagPROCESSENTRY32 = _
                DllStructCreate _
                ( _
                'dword dwsize;' & _
                'dword cntUsage;' & _
                'dword th32ProcessID;' & _
                'uint th32DefaultHeapID;' & _
                'dword th32ModuleID;' & _
                'dword cntThreads;' & _
                'dword th32ParentProcessID;' & _
                'long pcPriClassBase;' & _
                'dword dwFlags;' & _
                'char szExeFile[260]' _
                )
        DllStructSetData($tagPROCESSENTRY32, 1, DllStructGetSize($tagPROCESSENTRY32))

        Local $p_PROCESSENTRY32 = DllStructGetPtr($tagPROCESSENTRY32)

        Local $a_pfirst = DllCall('Kernel32.dll', 'int', 'Process32First', 'long', $a_tool_help[0], 'ptr', $p_PROCESSENTRY32)
        If IsArray($a_pfirst) = 0 Then Return SetError(2, 0, $i_pid)

        Local $a_pnext, $a_children[11] = [10], $i_child_pid, $i_parent_pid, $i_add = 0
        $i_child_pid = DllStructGetData($tagPROCESSENTRY32, 'th32ProcessID')
        If $i_child_pid <> $i_pid Then
            $i_parent_pid = DllStructGetData($tagPROCESSENTRY32, 'th32ParentProcessID')
            If $i_parent_pid = $i_pid Then
                $i_add += 1
                $a_children[$i_add] = $i_child_pid
            EndIf
        EndIf

        While 1
            $a_pnext = DllCall('Kernel32.dll', 'int', 'Process32Next', 'long', $a_tool_help[0], 'ptr', $p_PROCESSENTRY32)
            If IsArray($a_pnext) And $a_pnext[0] = 0 Then ExitLoop
            $i_child_pid = DllStructGetData($tagPROCESSENTRY32, 'th32ProcessID')
            If $i_child_pid <> $i_pid Then
                $i_parent_pid = DllStructGetData($tagPROCESSENTRY32, 'th32ParentProcessID')
                If $i_parent_pid = $i_pid Then
                    If $i_add = $a_children[0] Then
                        ReDim $a_children[$a_children[0] + 10]
                        $a_children[0] = $a_children[0] + 10
                    EndIf
                    $i_add += 1
                    $a_children[$i_add] = $i_child_pid
                EndIf
            EndIf
        WEnd

        If $i_add <> 0 Then
            ReDim $a_children[$i_add + 1]
            $a_children[0] = $i_add
        EndIf

        DllCall('Kernel32.dll', 'int', 'CloseHandle', 'long', $a_tool_help[0])
        If $i_add Then Return $a_children
        Return SetError(3, 0, 0)
    EndFunc

    Func _MemoryOpen($iv_Pid, $iv_DesiredAccess = 0x1F0FFF, $iv_InheritHandle = 1)

        If Not ProcessExists($iv_Pid) Then
            SetError(1)
            Return 0
        EndIf

        Local $ah_Handle[2] = [DllOpen('kernel32.dll')]

        If @Error Then
            SetError(2)
            Return 0
        EndIf

        Local $av_OpenProcess = DllCall($ah_Handle[0], 'int', 'OpenProcess', 'int', $iv_DesiredAccess, 'int', $iv_InheritHandle, 'int', $iv_Pid)

        If @Error Then
            DllClose($ah_Handle[0])
            SetError(3)
            Return 0
        EndIf

        $ah_Handle[1] = $av_OpenProcess[0]

        Return $ah_Handle

    EndFunc

    Func _MemoryRead($iv_Address, $ah_Handle, $sv_Type = 'dword')

        If Not IsArray($ah_Handle) Then
            SetError(1)
            Return 0
        EndIf

        Local $v_Buffer = DllStructCreate($sv_Type)

        If @Error Then
            SetError(@Error + 1)
            Return 0
        EndIf

        DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')

        If Not @Error Then
            Local $v_Value = DllStructGetData($v_Buffer, 1)
            Return $v_Value
        Else
            SetError(6)
          Return 0
        EndIf

    EndFunc

    Func _MemoryWrite($iv_Address, $ah_Handle, $v_Data, $sv_Type = 'dword')

        If Not IsArray($ah_Handle) Then
            SetError(1)
            Return 0
        EndIf

        Local $v_Buffer = DllStructCreate($sv_Type)

        If @Error Then
            SetError(@Error + 1)
            Return 0
        Else
            DllStructSetData($v_Buffer, 1, $v_Data)
            If @Error Then
                SetError(6)
                Return 0
            EndIf
        EndIf

        DllCall($ah_Handle[0], 'int', 'WriteProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')

        If Not @Error Then
            Return 1
        Else
            SetError(7)
            Return 0
        EndIf

    EndFunc
    POS
    POS
    PSsix
    PSsix


    รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty
    จำนวนข้อความ : 1152
    ความนิยม : 326
    เข้าร่วมเมื่อ : 19/07/2010

    รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty Re: รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error

    ตั้งหัวข้อ by POS 10/02/12, 08:26 am

    ไฟล์ไม่ครบนะครับ คุณต้องหาไฟล์
    NomadMemory.au3
    ProcessGetChildren.au3
    ProcessControl.au3

    ไปวางไว้ในโฟลเดอร์เดียวกับสคริปต์ แล้วแก้ไขบรรทัดสคริปต์

    #include <include\_NomadMemory.au3>
    #include <include\_ProcessGetChildren.au3>
    #include <include\_ProcessControl.au3>

    เป็น

    #include "NomadMemory.au3"
    #include "ProcessGetChildren.au3"
    #include "ProcessControl.au3"

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


    และคอมไพล์ผ่าน AutoIt Version: 3.3.0.0 ด้วยนะครับ (เวอร์ชั่นใหม่ๆ จะมีปัญหากับไฟล์ NomadMemory.au3 )



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


    รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty
    จำนวนข้อความ : 2
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/02/2012

    รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error  Empty Re: รบกวนพี่adminช่วยดู สริปต์ ให้ผมหน่อยคับมัน error

    ตั้งหัวข้อ by inloveonline 10/02/12, 10:38 am

    ขอบคุณครับ

      เวลาขณะนี้ 09/05/24, 05:47 pm