Что нового

[Автоматизация] Поиск Offset'ов с помощью Art Money и применение их на HP моба Martial Empire

lirikmel

Продвинутый
Сообщения
226
Репутация
84
Данное руководство пригодится тем ,у кого интелект для написания ботов все еще на уровне табуретки(вопщем как у меня ;D) И при написании бота он прибегает к единственному правилу - посмотрю как сделали другие и сделаю также.

Что нам понадобится:
-ArtMoney
-Время

1. Скачиваем ArtMoney
-ищем значение которое нас интересует
-открываем Help - Руководство пользователя -10 раздел - к пункту Использование указателей
-читаем и делаем все "по картинкам"
Итак в конечном счете мы получаем некое значение с указателем в таблице ,которое всегда корректно отображает Hp моба при перезагрузках.
То что у вас примерно должно получиться в спойлере
75745731.jpg
2."Засовываем" все это в код.
Код:
#include <nomadmemory.au3>
Global $ProcessName = "Martial Empires" ;Собственно...Название окна
Global $ProcessID = WinGetProcess($ProcessName,"") ;Ну или $Pid кому как нравится 
Global $HP = 0x00E87C40 ; Указатель (см.картинку выше)
Global $DllInformation = _MemoryOpen($ProcessID) 
If $ProcessID = -1 Then
	MsgBox(4096, "#Error4", "Сперва запустите игру.")
	Exit
EndIf





		$CurrentHP = (_MemoryRead($HP, $DllInformation, 'ptr')) 
		$Cur = $CurrentHP + 308 ; 308 - думаю тоже понятно откуда берется... по картинке 
		$Curr =  (_MemoryRead($Cur, $DllInformation, 'ptr')) ;получаем Адрес (ну понятно ,опять же ,по той же картинке что у нас  должно получиться)
			$RHP =dec(StringTrimLeft($Curr, 2)) ; извлекаем значение
			MsgBox (1,"проверь",$RHP ,"") ; тадаам, вот оно значение HP моба


Вопщем все просто, как два пальца ....

ЗЫ. Спасибо xamd за пример кода в соседней теме
 

spider_xr

Знающий
Сообщения
14
Репутация
7
Re: [Автоматизация] Поиск Offsetot'ов с помощью Art Money и применение их на HP моба Martial Empir

$Curr = (_MemoryRead($Cur, $DllInformation, 'ptr'))
если например вместо "ptr" сделать "short" для 2байтного значения то в этой строке
$RHP =dec(StringTrimLeft($Curr, 2))
не будет необходимости.(в хэлпе есть примеры для разных "бат", функция DllStructCreate )

небольшое пример:
я курочил Icewind Dale - Heart of Winter(v1.4) и значение хп храница в 4байтном виде, но первые 2байта отвечают за максимальное хп, а последние 2 за текушее хп персонажа (помогает инженерный калькулятор;))

зы; ты вроде строку "Global $DllInformation = _MemoryOpen($ProcessID)" лишний раз написал.
 

kry

Новичок
Сообщения
14
Репутация
4
Re: [Автоматизация] Поиск Offsetot'ов с помощью Art Money и применение их на HP моба Martial Empir

У меня сложилось впечатление, что нифига не работает )
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Автоматизация] Поиск Offsetot\'ов с помощью Art Money и применение их на HP моба Martial Empi

Вы бы хоть на игру ссылку дали штоле, мне вот тоже стало интересно, а яндекс ни на один русский сервер не отправляет, а на английских сидеть и ичитать требования клиента лень
pick.png



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

Все, полуркал, мой нетбук ето не потянет, да и выглядит это как очередной клон ладвы
wats.png
 

kry

Новичок
Сообщения
14
Репутация
4
Re: [Автоматизация] Поиск Offsetot\'ов с помощью Art Money и применение их на HP моба Martial Empi

Belfigor сказал(а):
Вы бы хоть на игру ссылку дали штоле, мне вот тоже стало интересно, а яндекс ни на один русский сервер не отправляет, а на английских сидеть и ичитать требования клиента лень
pick.png



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

Все, полуркал, мой нетбук ето не потянет, да и выглядит это как очередной клон ладвы
wats.png




Не совсем ладва, есть свои интересные замуты, давай присоединяйся )))
 
Автор
L

lirikmel

Продвинутый
Сообщения
226
Репутация
84
Re: [Автоматизация] Поиск Offsetot'ов с помощью Art Money и применение их на HP моба Martial Empir

kry сказал(а):
У меня сложилось впечатление, что нифига не работает )
Все работает -)) правда этот пример для XP в семерке 64х во эта строчка
Код:
$RHP =dec(StringTrimLeft($Curr, 2))

выглядит вот так
Код:
$RHP =dec(StringTrimLeft($Curr, 10))
 
Верх