Что нового

[AWplanet] Последовательное нажатие горячих клавиш

awCMIT

Новичок
Сообщения
7
Репутация
0
Имеется игра http://awplanet.ru/
Необходимо, чтобы при падении значения жизней ниже необходимого автоматически юзалась комбинация горячих клавиш АЛЬТ+1, если значение все равно меньше, тогда АЛЬТ+2 и т.д., пока не восстановятся жизни до необходимого значения. Пробовал следующий вариант
Код:
#include <GUIConstants.au3>
#include <NomadMemory.au3>
Global $ProcessName = "www.awplanet.com   Portal to Another World     v 1.26"
Global $ProcessID = WinGetProcess($ProcessName,"")
SetPrivilege("SeDebugPrivilege", 1)
Global $HP = 0x00da6a88 ; Указатель (см.картинку выше)
Global $DllInformation = _MemoryOpen($ProcessID)
Global $hWnd = WinGetHandle("www.awplanet.com   Portal to Another World     v 1.26", "")
Global $CurrentHP = (_MemoryRead($HP, $DllInformation, 'ptr'))
Global $CurHP = Int($CurrentHP) ;переход 10чной системе

While 1
$CurrentHP = (_MemoryRead($HP, $DllInformation, 'ptr'))
$CurHP = Int($CurrentHP) 
If $CurHP < 100 Then 
   Send ("!1")
  Sleep (1000)
	  If $CurHP < 100  Then 
		 Send ("!2")
		 Sleep (500)
		 If $CurHP < 100  Then 
		 Send ("!3")
		 Sleep (500)
		 If $CurHP < 100  Then 
		 Send ("!4")
		 Sleep (500)
		 If $CurHP < 100  Then 
		 Send ("!5")
		 Sleep (500)
		 If $CurHP < 100  Then 
		 Send ("!6")
		 Sleep (500)
	  EndIf
   EndIf
EndIf
EndIf
	  EndIf
EndIf		 
WEnd


работает, но кривовато... иногда даже после полного восстановления ХП продолжает дальше юзать горячие клавиши...
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Потому что нужно проверять НР перед каждым нажатием Alt+
Код:
While 1
	For $i = 1 To 6
		$CurrentHP = (_MemoryRead($HP, $DllInformation, 'ptr'))
		$CurHP = Int($CurrentHP)
		If $CurHP < 100 Then
			Send ("!" & $i)
			Sleep (1000)
		EndIf
	Next
WEnd
 
Автор
A

awCMIT

Новичок
Сообщения
7
Репутация
0
Спасибо, помогло! :smile:
Только вылезла новая пролема, первые четыре значения адреса ХП после перезапуска клиента меняются...
 
Верх