Вот решил поделится альфа версией бота для Martial empires (полностью работоспособен на идущем ОБТ)
! на клавише 1 должна быть обычная атака
! на клавише 3 подбор
! на клавише 9 реген
! на клавише 6 баф
....а остальное раскидывайте как хотите
Строго не судите так как это первый мой жизненный опыт в написании бота -)
P/S Очень был бы рад помощи в написании GUI.
P/S/S Так же никак не могу создать Waypoint ,потому как координаты и ротация оч странные,
-1-Координаты X Y инвертированы
-2-Ротация воопще представляет из себя что то нечто ..... 0 - на севере (это единственная радость для понимания) при повороте на лево - положительное значение , на право отрицательное , при этом 90 град поворот равняется числу Пи до 4 знака (к значению из памяти)
...Нуу офсеты ротации и координат я все таки нашел..., как бы их теперь использовать ? -)
...Совсем забыл эта версия для windows 7 64x ....но пользователи ХРюши не отчаивайтесть просто изманените в коде dec(StringTrimLeft($Что то там , 10)) на dec(StringTrimLeft($Что то там , 2))
! на клавише 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))