It is activated when health falls below 30%
[F4] - Exit script
[F5] - Pause script
Actual 31.08.2015
Code:
#RequireAdmin
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include "NomadMemory.au3"
#include <TrayConstants.au3>
Global $PID
Global $cHP = 0x00B196F4
Global $mHP = 0x00B1BFB4
Global $Paused
While 1
TrayCreateItem("Trove - AutoHeal tool")
$PID = WinGetProcess("Trove", "")
HotKeySet("{f4}", Halt)
HotKeySet("{f5}", PauseScript)
NextS()
WEnd
Func NextS()
While 1
Refresh()
Sleep(1000)
WEnd
EndFunc ;==>NextS
Func Refresh()
$MEMID = _memoryopen($PID)
$sModule = 'trove.exe'
$MaxHPBase = _memoryread(_MemoryModuleGetBaseAddress($PID, $sModule) + $mHP, $MEMID, 'dword')
$mhpb = _memoryread($MaxHPBase + 0x48, $MEMID, 'dword')
$mhpb = _memoryread($mhpb + 0x208, $MEMID, 'dword')
$mhpb = _memoryread($mhpb + 0x8, $MEMID, 'dword')
$mhpb = _memoryread($mhpb + 0xb8, $MEMID, 'dword')
$CurrentHPBase = _memoryread(_MemoryModuleGetBaseAddress($PID, $sModule) + $cHP, $MEMID, 'dword')
$chpb = _memoryread($CurrentHPBase + 0x0, $MEMID, 'dword')
$chpb = _memoryread($chpb + 0x10, $MEMID, 'dword')
$chpb = _memoryread($chpb + 0x168, $MEMID, 'dword')
$chpb = _memoryread($chpb + 0x3c, $MEMID, 'Float')
If ($chpb*100/$mhpb < 30) Then
ControlSend("Trove", "", "", "Q")
EndIf
EndFunc ;==>Refresh
Func Halt()
Exit
EndFunc ;==>Halt
Func PauseScript()
$Paused = Not $Paused
While $Paused
Sleep(450)
ToolTip('AutoHeal is "Paused"', 0, 0)
WEnd
ToolTip("")
EndFunc ;==>PauseScript