รบกวนพี่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
ผิดพลาดตรงไหนช่วยแนะนำทีครับ