#include <GUIConstants.au3>
Opt("SendKeyDownDelay", 6) ;1 millisecond
#Region ### START Koda GUI section ### Form=d:\aform1.kxf
$Form1 = GUICreate("AForm1", 474, 101, 193, 115)
$Label4 = GUICtrlCreateLabel("Hit Point", 8, 16, 44, 17)
$Label5 = GUICtrlCreateLabel("Mana Point", 8, 40, 58, 17)
$Input4 = GUICtrlCreateInput("", 72, 16, 57, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$Input5 = GUICtrlCreateInput("", 72, 40, 57, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$Label1 = GUICtrlCreateLabel("Status", 8, 64, 34, 17)
$Input1 = GUICtrlCreateInput("", 72, 64, 385, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;Ubah2 DISINI MOOOOO
$Start = True
$MinLife = 900
$MinMana = 150
$attack = false
$petout = true
$MinPetLife = 900
$MinPetMana = 100
;$PetHealth = 0x0095C770 ;pet ke 1
;$PetMana = 0x0095C772 ;pet ke 1
$PetHealth = 0x0095C7E4 ;pet ke 2
$PetMana = 0x0095C7E6 ;pet ke 2
;$PetHealth = 0x0095C858 ;pet ke 3
;$PetMana = 0x0095C85A ;pet ke 3
;$PetHealth = 0x0095C730 ;pet ke 4
;$PetMana = 0x0095C732 ;pet ke 4
;$PetHealth = 0x0095C730 ;pet ke 5
;$PetMana = 0x0095C732 ;pet ke 5
$Health = 0x0091DB18
$mana_address = 0x0091DB20 ; alamat mana (sejauh ini sama kalo di kompie gw dan client pertama domo)
;F78
$Process = "DOMO.EXE"
; TOLONG UBAH INI KALO DIPATCH ATAU LAIN2!!
$domo_title = "DOMO - Dream Of Mirror Online(Sep 4 2007)"
;AMPE SINI MOOOOO ok2?!!!!
$timer = 1
$beserk = 1
$beserk1 = 1
$beserk2 = 90
$beserk3 = 1
$to = 0
;mem read write
Global Const $MEM_O = 0x8
Global Const $MEM_R = 0x10
Global Const $MEM_W = 0x20
Func _MemOpen($i_dwDesiredAccess, $i_bInheritHandle, $i_dwProcessId)
$ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', $i_dwDesiredAccess, 'int', $i_bInheritHandle, 'int', $i_dwProcessId)
If @error Then
SetError(1)
Return 0
EndIf
Return $ai_Handle[0]
EndFunc ;==> _MemOpen()
Func _MemRead($i_hProcess, $i_lpBaseAddress, $i_nSize, $v_lpNumberOfBytesRead = '')
Local $v_Struct = DllStructCreate ('byte[' & $i_nSize & ']')
DllCall('kernel32.dll', 'int', 'ReadProcessMemory', 'int', $i_hProcess, 'int', $i_lpBaseAddress, 'int', DllStructGetPtr ($v_Struct, 1), 'int', $i_nSize, 'int', $v_lpNumberOfBytesRead)
Local $v_Return = DllStructGetData ($v_Struct, 1)
;DllStructDelete ($v_Struct)
Return $v_Return
EndFunc ;==> _MemRead()
Func _MemWrite($i_hProcess, $i_lpBaseAddress, $v_Inject, $i_nSize, $v_lpNumberOfBytesRead = '')
Local $v_Struct = DllStructCreate ('byte[' & $i_nSize & ']')
DllStructSetData ($v_Struct, 1, $v_Inject)
$i_Call = DllCall('kernel32.dll', 'int', 'WriteProcessMemory', 'int', $i_hProcess, 'int', $i_lpBaseAddress, 'int', DllStructGetPtr ($v_Struct, 1), 'int', $i_nSize, 'int', $v_lpNumberOfBytesRead)
;DllStructDelete ($v_Struct)
Return $i_Call[0]
EndFunc ;==> _MemWrite()
Func _MemClose($i_hProcess)
$av_CloseHandle = DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $i_hProcess)
Return $av_CloseHandle[0]
EndFunc ;==> _MemClose()
Func _HexadecimalToDecimal($var)
$Result = 0
$Sum = 0
$Power = 0
Do
$CurrentDigit = StringRight($var, $Power + 1)
$CurrentDigit = StringLeft($CurrentDigit, 1)
If $CurrentDigit = "A" Then
$CurrentDigit = 10
ElseIf $CurrentDigit = "B" Then
$CurrentDigit = 11
ElseIf $CurrentDigit = "C" Then
$CurrentDigit = 12
ElseIf $CurrentDigit = "D" Then
$CurrentDigit = 13
ElseIf $CurrentDigit = "E" Then
$CurrentDigit = 14
ElseIf $CurrentDigit = "F" Then
$CurrentDigit = 15
EndIf
$Result = $CurrentDigit * 16 ^ $Power
$Power += 1
$Sum += $Result
Until $CurrentDigit = "x"
Return $Sum
EndFunc ;==>_HexadecimalToDecimal
func get_health()
$v_Open = _MemOpen($MEM_R, False, ProcessExists($Process))
$v_Read = _MemRead($v_Open, $Health, 1)
;GUICtrlSetData($Input5,$ai_Handle[0])
$v_hex = $v_Read
$v_Read = _MemRead($v_Open, $Health + 1 , 1)
$v_Close = _MemClose($v_Open)
$v_hex = $v_Read + $v_hex
return _HexadecimalToDecimal($v_hex)
EndFunc
func get_mana()
$v_Open = _MemOpen($MEM_R, False, ProcessExists($Process))
$v_Read = _MemRead($v_Open, $mana_address, 1)
$v_hex = $v_Read
$v_Read = _MemRead($v_Open, $mana_address + 1 , 1)
$v_Close = _MemClose($v_Open)
$v_hex = $v_Read + $v_hex
return _HexadecimalToDecimal($v_hex)
EndFunc
func get_pet_health()
$v_Open = _MemOpen($MEM_R, False, ProcessExists($Process))
$v_Read = _MemRead($v_Open, $PetHealth, 1)
;GUICtrlSetData($Input5,$ai_Handle[0])
$v_hex = $v_Read
$v_Read = _MemRead($v_Open, $PetHealth + 1 , 1)
$v_Close = _MemClose($v_Open)
$v_hex = $v_Read + $v_hex
return _HexadecimalToDecimal($v_hex)
EndFunc
func get_pet_mana()
$v_Open = _MemOpen($MEM_R, False, ProcessExists($Process))
$v_Read = _MemRead($v_Open, $PetMana, 1)
;GUICtrlSetData($Input5,$ai_Handle[0])
$v_hex = $v_Read
$v_Read = _MemRead($v_Open, $PetMana + 1 , 1)
$v_Close = _MemClose($v_Open)
$v_hex = $v_Read + $v_hex
return _HexadecimalToDecimal($v_hex)
EndFunc
;end mem read write
Func Start()
if $Start Then
$Start= False
MsgBox(0,"stoped","stoped")
Else
$Start=True
MsgBox(0,"started","started")
EndIf
EndFunc
Func Terminate()
Exit 0
EndFunc
HotKeySet("{ESC}", "Terminate")
HotKeySet("!s", "Start") ;Shift-Alt-m
While 1
WinWaitActive($domo_title)
$CurrentLife = get_health()
GUICtrlSetData($Input4,$CurrentLife) ; tampilin health char
$currentMana = get_mana()
GUICtrlSetData($Input5,$currentMana) ; tampilin mana char
$CurrentPetLife = get_pet_health()
;GUICtrlSetData($Input4,$CurrentPetLife) ; tampilin health pet
$CurrentPetMana = get_pet_mana()
;GUICtrlSetData($Input5,$CurrentPetMana) ; tampilin mana pet
;send("{F5}") ;take item
;Sleep(500)
if $CurrentLife > $MinLife Then
send("{F5}") ;Skill Item
send("{F4}") ;Premo
EndIf
;Sleep(500)
If $currentMana <= 200 and $CurrentLife > $MinLife Then
send("{F2}") ; Adjust
Sleep(500)
EndIf
if $attack Then
if $CurrentLife > $MinLife Then
if $Start Then
send("!f")
sleep(100)
send("!a")
sleep(100)
EndIf
EndIf
if $currentMana >200 and $CurrentLife > $MinLife and not $petout Then
send("{F6}") ;sikil premo
send("{F7}") ;sikil premo
EndIf
EndIf
$healing = False
if $CurrentLife <= $MinLife Then
send("{F1}")
sleep(500)
send("!1")
sleep(100)
$healing = True
EndIf
if $currentMana <= $MinMana Then
send("{F3}")
sleep(100)
EndIf
if $petout Then
if $beserk2 >= 100 and not $healing Then
send("{F8}")
sleep(2000)
send("{F9}")
sleep(2000)
send("{F10}")
sleep(2000)
send("!{F8}")
sleep(2000)
send("!{F9}")
sleep(2000)
send("!{F10}")
sleep(2000)
$beserk2 = 1
EndIf
if $CurrentPetLife <= $MinPetLife Then
send("{F6}")
sleep(2000)
EndIf
if $CurrentPetMana <= $MinPetMana and not $healing Then
send("{F7}")
sleep(1000)
EndIf
$beserk2 = $beserk2 + 1
EndIf
if $beserk2 = -1 Then
if $to=0 Then
send("{UP down}")
sleep(800)
send("{UP up}")
$to=2
Elseif $to=2 Then
send("{DOWN down}")
sleep(800)
send("{DOWN up}")
$to=0
EndIf
$beserk2 = 1
EndIf
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
yg mw saya tanyakan fungsi f1-f10 itu apa aja yah???
yg buat healing itu f brp yah cc???
bingung kasih tau yah cc plzzz sory neh ngerepotin trus :lol: