winstan
Эксплотатор)
- Сообщения
- 406
- Репутация
- 79
Код:
; Script Start - Add your code below here
#RequireAdmin
#include <nomadmemory.au3>
#include <GUIConstantsEx.au3>
#include <GuiButton.au3>
Opt("MustDeclareVars", 1)
Global $result, $pointer, $LVLming, $LVLmaxg, $btn[10], $iRand, $menuvalue, $hWnd1, $Process, $memory, $hWnd1, $LVLmax, $LVLmin, $baseadr, $z, $lvlmobac, $baseadrq, $guin
Global $manamin, $beginmana, $resultlvl, $lvlmoba
Global $Process = "12345.exe" ;название процесса канешно не совсем такое это какбы чтобы в поиске поисковиков на эту страничку не выходили по имени процесса
Global $hillmin
Global $manamin
Global $a = "0"
Global $z = "0"
Global $baseadrhil = 0x106b1f40
Global $offsethil = 0x00109320
Global $baseadrmana = 0x106b1f40
Global $offsetmana = 0x00109328
Global $baseadr = 0x106b1f40
Global $baseadrq = 0x00109098
Global $memory = _MemoryOpen(ProcessExists($Process))
Global $hWnd1 = _ProcessGetWindow($Process)
Global $begin = TimerInit()
;~ ==========================
Global $pointerr = _MemoryRead($baseadr, $memory)
$lvlmoba = ($pointerr + $baseadrq)
Global $pointerhil = _MemoryRead($baseadrhil, $memory)
Global $hill = $pointerhil + $offsethil
Global $pointermana = _MemoryRead($baseadrmana, $memory)
Global $mana = $pointermana + $offsetmana
;~ ==========================
$guin = GUICreate("Buttons", 225, 100)
$LVLmaxg = GUICtrlCreateEdit("105", 115, 5, 110, 20, 1)
$LVLming = GUICtrlCreateEdit("103", 5, 5, 110, 20, 1)
Global $manaming = GUICtrlCreateEdit("2900", 115, 25, 110, 20, 1)
Global $hillming = GUICtrlCreateEdit("4200", 5, 25, 110, 20, 1)
$btn[0] = GUICtrlCreateButton("Старт", 5, 60, 100, 30)
$btn[1] = GUICtrlCreateButton("Выход", 120, 60, 100, 30)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $btn[0]
$LVLmax = GUICtrlRead($LVLmaxg, 1)
$LVLmin = GUICtrlRead($LVLming, 1)
$hillmin = GUICtrlRead($hillming, 1)
$manamin = GUICtrlRead($manaming, 1)
ExitLoop
Case $btn[1]
Exit
EndSwitch
WEnd
GUIDelete()
;~ ==========================
While 1
Sleep(100)
$resultlvl = _MemoryRead($lvlmoba, $memory)
If $LVLmin < $resultlvl Then
If $resultlvl < $LVLmax Then
Sleep(100)
ControlSend($hWnd1, "", "", "{F9}")
_point()
Sleep(100)
;~ ==============================================
If $z = "0" Then
ControlSend($hWnd1, "", "", "{F1}")
$z = "1"
Else
ControlSend($hWnd1, "", "", "{F5}")
EndIf
;~ ==============================================
ControlSend($hWnd1, "", "", "{F9}")
Sleep(1000)
Else
ControlSend($hWnd1, "", "", "{TAB}")
$z = "0"
EndIf
Else
ControlSend($hWnd1, "", "", "{TAB}")
$z = "0"
EndIf
_point()
WEnd
;~ ==============================================
Func _point()
_hill()
_Mana()
EndFunc ;==>_point
;~ ==============================================
Func _hill()
Global $dif = TimerDiff($begin)
If $dif > "14000" Then
$result = _MemoryRead($hill, $memory)
If $result < $hillmin Then
Sleep(1000)
ControlSend($hWnd1, "", "", "{F7}")
$begin = TimerInit()
Else
EndIf
Else
EndIf
EndFunc ;==>_hill
Func _Mana()
Global $difmana = TimerDiff($beginmana)
If $difmana > "14000" Then
$result = _MemoryRead($mana, $memory)
If $result < $manamin Then
Sleep(1000)
ControlSend($hWnd1, "", "", "{F8}")
$beginmana = TimerInit()
Else
EndIf
Else
EndIf
EndFunc ;==>_Mana
Func _ProcessGetWindow($iPID, $iRet = 1)
Local $aWinList = WinList()
Local $aRet[2]
If IsString($iPID) Then
$iPID = ProcessExists($iPID)
EndIf
For $i = 1 To UBound($aWinList) - 1
If WinGetProcess($aWinList[$i][1]) = $iPID Then
$aRet[0] = $aWinList[$i][0] ;Title
$aRet[1] = $aWinList[$i][1] ;WinHandle
If $iRet = 0 Then
Return $aRet[0]
EndIf
If $iRet = 1 Then
Return $aRet[1]
EndIf
Return $aRet
EndIf
Next
Return SetError(1, 0, $aRet)
EndFunc ;==>_ProcessGetWindow
В общем это бот - макрос (не знаю как его лучше класифицировать) для игры Ласт Хаос http://www.lcgame.ru он рабочий , вернее работал до последнего обновления в котором появилсась защита от эмуляции нажатий кнопок как мыши так и клавиатуры , теперь собственно вот что я и прошу
Нужно все функции
Код:
ControlSend()
преобразовать в
Код:
dllcall()
сам я пока не разбираюсь в этой функции