Что нового

[Автоматизация] Martial Empires bot alpha -)

lirikmel

Продвинутый
Сообщения
226
Репутация
84
Вот решил поделится альфа версией бота для Martial empires (полностью работоспособен на идущем ОБТ)
! на клавише 1 должна быть обычная атака
! на клавише 3 подбор
! на клавише 9 реген
! на клавише 6 баф
....а остальное раскидывайте как хотите


Код:
#include <nomadmemory.au3>
#Include <HotKey.au3>




Opt("SendKeyDelay", 0)
Opt("SendKeyDownDelay", 10)  
TrayTip("Сервис готов",0,0)

Global $ProcessName = "Martial Empires"
Global $ProcessID = WinGetProcess($ProcessName,"")

Global $DllInformation = _MemoryOpen($ProcessID)
SetPrivilege("SeDebugPrivilege", 1)
Global $HP = 0x0CBDFB8
Global $OffsetMHP = 0x00CC6DF8
Global $MxHP = 0x0CC0A40
Global Const $VK_F11 = 0x7A
Global Const $VK_F12 = 0x7B
Global $Proverka 
Global $Current1
Global $Current
Global $MbHP1
Global $MbHP
_HotKeyAssign($VK_F12, 'TogglePause')
_HotKeyAssign($VK_F11, 'Terminate')

Opt("SendKeyDownDelay", 300)  
WinActive ("Martial Empires")

WinActivate ("Martial Empires")





Global $CurrentmHP = (_MemoryRead($OffsetMHP, $DllInformation, 'ptr')) 
Global $MHP = $CurrentmHP + 356



target()

Func target()
$hWnd1 = WinGetHandle('Martial Empires')
Opt("SendKeyDownDelay", 100)  
$DllInformation = _MemoryOpen($ProcessID)
		$CurrentHP = (_MemoryRead($HP, $DllInformation, 'ptr'))
			$CurrentHP = dec(StringTrimLeft($CurrentHP, 10))

Sleep (100)
if $CurrentHP < 1700 Then
	sleep (1000)
	regen()
	EndIf


Do
  
Send ("{TAB}")
	sleep (300)
	$MobHP = (_MemoryRead($MHP, $DllInformation, 'ptr'))		
$MobHP = dec(StringTrimLeft($MobHP, 10))
Send ("6")
sleep (300)
Send ("{x}")
	Until $MobHP < 2000

			$Current = (_MemoryRead($MHP, $DllInformation, 'ptr'))		
$Current1 = dec(StringTrimLeft($Current , 10))

While $MobHP = $Current1 
	Send("1")
sleep (10)

		$Current = (_MemoryRead($MHP, $DllInformation, 'ptr'))		
$Current1 = dec(StringTrimLeft($Current , 10))
	
	
WEnd
	$DllInformation = _MemoryClose($ProcessID)
ataka()

EndFunc

Func ataka()
Do 
	$DllInformation = _MemoryOpen($ProcessID)
		$MobHP1 = (_MemoryRead($MHP, $DllInformation, 'ptr'))		
$MbHP1 = dec(StringTrimLeft($MobHP1, 10))
		$DllInformation = _MemoryClose($ProcessID)
			TrayTip("атака",$MbHP1 ,0)
	send ("0")
			Send ("4")
Sleep (300)
		Send("2")
      Sleep (300) 	
      Send("5")
	Sleep (300) 
	  Send ("1")
	  send ("7")
	  $DllInformation = _MemoryOpen($ProcessID)
		$MobHP = (_MemoryRead($MHP, $DllInformation, 'ptr'))		
$MbHP = dec(StringTrimLeft($MobHP, 10))
	$DllInformation = _MemoryClose($ProcessID)
Sleep (400)
Until $MbHP1  = $MbHP

loot ()

EndFunc	


Func loot()
  TrayTip("подбираем",0,0)
  Send("3")
	    sleep (200)  
		  Send ("3")
sleep (100)  
target()

EndFunc

func regen()
	sleep (1000)	
	send ("9")
	sleep (1000)	
	Do
	$DllInformation = _MemoryOpen($ProcessID)
	$CurrentHP = (_MemoryRead($HP, $DllInformation, 'ptr'))
	$CurrentHP = dec(StringTrimLeft($CurrentHP, 10))
     $hp1 = $CurrentHP 
	$DllInformation = _MemoryClose($ProcessID)
	TrayTip("Хилимся",$hp1,0)
    
	sleep (1000)	 

$DllInformation = _MemoryOpen($ProcessID)
	$MaxHP = (_MemoryRead($MxHP, $DllInformation, 'ptr'))
			
			$MaxHP = dec(StringTrimLeft($MaxHP, 10))
    $hp2 = $MaxHP 
	$DllInformation = _MemoryClose($ProcessID)
	TrayTip("Хилимся",$hp2,0)
	sleep (2000)
	Until $hp1 = $hp2
	
	target()
EndFunc
Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("продолжить",0,0)
    target ()
 EndFunc


Func Terminate()
    Exit 0
EndFunc


Строго не судите так как это первый мой жизненный опыт в написании бота -)


P/S Очень был бы рад помощи в написании GUI.

P/S/S Так же никак не могу создать Waypoint ,потому как координаты и ротация оч странные,
-1-Координаты X Y инвертированы
-2-Ротация воопще представляет из себя что то нечто ..... 0 - на севере (это единственная радость для понимания) при повороте на лево - положительное значение , на право отрицательное , при этом 90 град поворот равняется числу Пи до 4 знака (к значению из памяти)

...Нуу офсеты ротации и координат я все таки нашел..., как бы их теперь использовать ? -)



...Совсем забыл эта версия для windows 7 64x ....но пользователи ХРюши не отчаивайтесть просто изманените в коде dec(StringTrimLeft($Что то там , 10)) на dec(StringTrimLeft($Что то там , 2))
 

kry

Новичок
Сообщения
14
Репутация
4
Re: Martial Empires bot alpha -)

Отпиши сюда оффсеты координат и ротации, сам их еще не искал, пока особо не нужны были.
Может что-нить и придумаю , как их использовать.
Кстать я тоже бота пишу )))
Тоже первый раз )
Результат уже устраивает )


Кстати дайте ссыль на последнюю версию NomanMemory, ибо с моей не компилится твой бот.
 
Автор
L

lirikmel

Продвинутый
Сообщения
226
Репутация
84
Re: Martial Empires bot alpha -)

kry сказал(а):
Отпиши сюда оффсеты координат и ротации, сам их еще не искал, пока особо не нужны были.
Может что-нить и придумаю , как их использовать.
Кстать я тоже бота пишу )))
Тоже первый раз )
Результат уже устраивает )


Кстати дайте ссыль на последнюю версию NomanMemory, ибо с моей не компилится твой бот.
держи




Добавлено:
Сообщение автоматически объединено:

Кстати что касается нажатий в неактивное окно до сих пор Epic FAIL -(((
 

kry

Новичок
Сообщения
14
Репутация
4
С нажатием в неактивное окно я тоже пока не стал заморачиваться,
Нужно найти решение ,а поправить это дело нескольких минут.
 
Верх