u can use the code as example 4 u bot. there is no while{} u have to implemented by u own. Perhaps u can write some function better (too drunk). But here is the code (seen too much asking about a bot in mining etc....)
Hope it will help someone to script his bot
U need the nomad.au3 extension to use the memory func
If u use it, please post u bot/solution (4 the community)!
Code:
; chit of me (schlat) ; there is no while -> create it 4 U ; chust to see some example ; controlsend is not working with hero only with chat #include <NomadMemory.au3> #include <Misc.au3> Opt("SendKeyDownDelay", 50) Opt("WinTitleMatchMode", 3) Global $ID = _MemoryOpen(ProcessExists ( "Hero.exe" )) Global $dll = DllOpen("user32.dll") Global $timer[12], $cooldown[12] ;init it Global $timer_health = TimerInit(), $timer_chi = TimerInit(), $timer_target ;init it Global $trig_chi, $trig_health, $trig_injury, $trig_tele_health ; init it ;static base memory -> check my .ct $static_mem = 0x009B3348 $static_pet =0x009B334c ;offsets $health_off = 1356;0x54c $chi_off = 1360;0x550 $injury_off = 1380;0x564 $chi_max_off = 1376;560 $health_max_off = 1372;55c Dim $test[2] = ['NULL',Dec("55C")] ;global read nemory $mem_base = _MemoryRead($static_mem,$ID) ;memory vars $health_addr = '0x' & Hex($mem_base + $health_off) $chi_addr = '0x' & Hex($mem_base + $chi_off) $injury_addr = '0x' & Hex($mem_base + $injury_off) $chi_max_addr = '0x' & Hex($mem_base + $chi_max_off) $health_max_addr = '0x' & Hex($mem_base + $health_max_off) ;Slots F1-F4 amount offsets $slot_base_off = 184 ;B8 $slot_end_off = 3086;C0E DIM $slot_1_off[4] = ['NULL',Dec("B8"),Dec("1DC"),Dec("c0e")];1DC DIM $slot_2_off[4] = ['NULL',Dec("B8"),Dec("1E0"),Dec("c0e")] DIM $slot_3_off[4] = ['NULL',Dec("B8"),Dec("1E4"),Dec("c0e")] ;Slot amount values Dim $slot_amount[16] ;pet Dim $pet_maxHealth_off[4] = ['NULL',Dec("410"),Dec("290"),Dec("1E4")] Dim $pet_Health_off[4] = ['NULL',Dec("410"),Dec("290"),Dec("1F4")] Dim $pet_injury_off[4] = ['NULL',Dec("410"),Dec("298"),Dec("1F4")] Func getALife() $health = _MemoryRead($health_addr,$ID) $chi = _MemoryRead($chi_addr,$ID) $injury = _MemoryRead($injury_addr, $ID) $value = _MemoryPointerRead($static_pet,$ID,$pet_Health_off,"Byte") $pet_health = $value[1] ;$pet_chi = $value = _MemoryPointerRead($static_pet,$ID,$pet_injury_off,"Byte") $pet_hunger = $value[1] $value = _MemoryPointerRead($static_pet,$ID,$slot_1_off,"Byte") $slot_amount[0] = $value[1] $value = _MemoryPointerRead($static_pet,$ID,$slot_2_off,"Byte") $slot_amount[1] = $value[1] $value = _MemoryPointerRead($static_pet,$ID,$slot_3_off,"Byte") $slot_amount[2] = $value[1] $value = _MemoryPointerRead($static_pet,$ID,$slot_4_off,"Byte") $slot_amount[3] = $value[1] EndFunc Func heal() If $chi < $trig_chi Then If TimerDiff($timer_chi) >=800 AND $slot_amount[1] > 0 Then Send("2") ;chi healing $timer_chi = TimerInit() EndIf EndIf If $health < $trig_health Then If TimerDiff($timer_health) >=800 AND $slot_amount[2] > 0 Then Send("3") ;health healing $timer_health = TimerInit() EndIf EndIf If $health <= $trig_tele_health OR $slot_amount[1] == 0 OR $slot_amount[2] == 0 Then ; lol its that really necessary what about else or funstion Send("1") $counter1=1 EndIf ;~ If $pet_hunger < 90 AND $slot_amount[3] > 0 Then ;~ If TimerDiff($timer[3]) >=800 Then ;~ Send("4") ;~ $timer[3] = TimerInit() ;~ EndIf ;~ EndIf EndFunc Func pick() Send("q") EndFunc Func simple_5_skill() If $skill Then ;u really wanna use skills -> yeah If TimerDiff($timer[3] >= $cooldown[3]) Then Send("4") ;the hotkey u want to use $timer[3] = TimerInit() ;cooldown init -> must set up first Send("{SPACE}") ;Select new target -> need to change if uz other key settings EndIf If TimerDiff($timer[4] >= $cooldown[4]) Then Send("5") $timer[4] = TimerInit() Send("{SPACE}") EndIf If TimerDiff($timer[5] >= $cooldown[5]) Then Send("6") $timer[5] = TimerInit() Send("{SPACE}") EndIf If TimerDiff($timer[6] >= $cooldown[6]) Then Send("7") $timer[6] = TimerInit() Send("{SPACE}") EndIf If TimerDiff($timer[7] >= $cooldown[7]) Then Send("8") $timer[7] = TimerInit() Send("{SPACE}") EndIf ;Send($Stack.Pop) Else $skill = True $timer[3] = TimerInit() $timer[4] = TimerInit() $timer[5] = TimerInit() $timer[6] = TimerInit() $timer[7] = TimerInit() ;~ $Stack.Push("4") ;~ $Stack.Push("5") ;~ $Stack.Push("6") ;~ $Stack.Push("7") ;~ $Stack.Push("8") Send("{SPACE}") EndIf Send("a") EndFunc