3D8E4D0E82301484CB8F14A26161E2C21D0770A13750ABC4850924625C233CA4115B529E47F34C5E4328C25BCD2433F33E621092C4E19A26EC184AF5B2AF8770639FA140AB309C13F04789E6CE4A646D7DC8E4C6732CADAD41595A2397C2D1F119AB38081CC2D3DE8ED948B04A3640BD6E5F4B37960DEFFAD4AFE525530082B50D50C46B31F66F4429BC41F434E66A80597630E6E2CFF22523CB5C6F0758F226409572014AFFE6D993FAE39AF66E92DE23958332497B3F function trainerscript() -- set this to the max number of batteries to regenerate local batteries = 5; local addr = "[[[[dxhr.exe+01723728]+14]+44]+11c]+1fc"; local f = createForm( true ); local t = createTimer( f, true ); timer_setInterval( t, 1000 ); timer_onTimer( t, function( ) local energy = readFloat(addr); if math.abs(energy % 30.0) < 0.005 and energy < 30*batteries then writeFloat(addr, energy + 0.01); end end ); end function CEButton1Click(sender) closeCE() --closes ce when executed end function onOpenProcess(processid) --called whebn ce opens a process reinitializeSymbolhandler() --Needed to dxhr.exe+xxxx interpretation trainerscript() --execute the script end form_show(UDF1) --show the 'trainer' --the following two lines will cause ce to open dxhr.exe when it sees it's open al=getAutoAttachList() strings_add(al,"dxhr.exe") function FormClose(sender) closeCE() return caHide --hide, not destroy end