Что нового

поиск врагов

koalw

Новичок
Сообщения
5
Репутация
0
Здравствуйте господа.

(прошу извинений. если подобное есть, то пошлите меня туда:smile:
Меня интересует ботоводство, читаю теорию и исходники.
Как получать значения жизней, ман и прочих благ вроде понял.
Не пойму следующий момент:
каким образом бот детектит врагов, врагов "подходящих"(что уровень не выше игрока), смерть врага, падение лута?

Интересует не распознавание пикселей и тд. а работа с памятью.

Признателен за темы - поиск офсетов на примере Hp.. еще бы гайд- детектим монстров.

Спасибо.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
К несчастью сейчас лето, и все наши штатные телепаты в отпуске, поэтому мы ничем не можем посодействовать вам. Увы.
 
Автор
K

koalw

Новичок
Сообщения
5
Репутация
0
Belfigor сказал(а):
и все наши штатные телепаты в отпуске, поэтому мы ничем не можем посодействовать вам.
Ценю юмор, но, имхо, вопрос в сути затронутых вопросов не нуждается в доп детализациях.
Но для телепатов.
Интересует вопрос: общие алгоритмы по обнаружению врагов, врагов подходящего уровня, лутов и тд, в играх по типу pw, aion, при использовании технологий чтения памяти процесса.

Благодарю.
 

AxepoH

Новичок
Сообщения
16
Репутация
2
koalw сказал(а):
Интересует вопрос: общие алгоритмы по обнаружению врагов, врагов подходящего уровня, лутов и тд, в играх по типу pw, aion, при использовании технологий чтения памяти процесса.

Благодарю.

Чем не устраивают готовые боты? и на будущее в таких играх как АИОН и ПВ боты сканрующие оперативную память быстро вычисляются администраторами.

А по теме искать моба по пикселям - глупо, лучше водить мышкой по экрану и ждать изменение курсора мышки и как только курсор изменится, значит там моб. Причем насколько я знаю мобы примерно одного уровня пасуться на одной и той же локации, так что уровень моба вычислять необязательно

вот тебе програмка которая по нажатию клавиши Esc показывает ID курсора мышки - если конечно решишься с памятью не париться

while 1
HotKeySet ("{ESC}","mouse")
WEnd
func mouse()
$cursor = MouseGetCursor()
MsgBox(0, "ID курсора ", "ID курсора " & $cursor)
EndFunc
 
Автор
K

koalw

Новичок
Сообщения
5
Репутация
0
Спасибо.
Про вычисления ботов по процессам чтения - в курсе.

Готовые боты устраивают всем, кроме того что они не мои, и нет понимания как они работают:smile:

За вариант "водить мышкой", спасибо - как то сам не догадался.

Но есть желание именно "попариться" с памятью.
Вот читаю исходники Mhs-bot для PW.
Убей, не понимаю - боты, как и жизнь, вычисляются по офсету в памяти. Но жизнь - она "неподвижная" и из характеристик - только значение.
У бота есть и координаты, и его тип.
В исходниках mhspw указанно, что можно выбирать нужный тип бота. Наводишь курсор, жмешь F11 и вуала - враг сохранен в списках атакуемых типах.

Как понимать, куда смотреть в памяти когда выбираешь бота?
Как понимать, где бот находится географически?
Как понимать, что бот находится в пределах атакуемой площади?
Всего этого в исходниках найти не могу, меж тем, функционал такой есть.
Дайте плиз пинок в верном направлении мышления. Спасибо.

AxepoH, еще раз спасибо, за участие.:smile:
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
AxepoH сказал(а):
while 1 HotKeySet ("{ESC}","mouse") WEnd func mouse() $cursor = MouseGetCursor() MsgBox(0, "ID курсора ", "ID курсора " & $cursor) EndFunc
btw, в большинстве игр курсор прочитать этой командой нельзя. Разме что графически прочитать данные о курсоре и то это возможно не везде. P.S.В некоторых играх можно выделять мобов по кликам на миникарте.


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

Что ты собираешься смотреть в памяти выбрав бота? Бота пишешь ты, смотреть в память его процесса тебе не надо.
понять где бот находится географически можно по его координатам.
понять что бот находится в пределах его зоны атаки можно по его координатам.
 
Автор
K

koalw

Новичок
Сообщения
5
Репутация
0
блин. даже с учетом, того что ошибся в 3-м посте.. неужели из двух первых неясно, что не в памяти бота?:smile:

Есть игра - к примеру pw. Там бегают злые монстры.
Умный бот их детектит - не графическими средствами, а "понимает" что они рядом читая память процесса.
Как это делает бот?(обнаруживает что рядом монстр)
Как писатели бота вычисляют этот офсет? (выдели монстра, нажми Ф11, и мы сохраним, что этого монстра надо гасить)

Еще раз -я понимаю, как "посмотреть" количество жизни, что есть у меня. И принять решение- посидеть, восстановить.
Но не понимаю - увидеть монстра, "кликнуть атаковать" этого монстра.

Belfigor, каюсь - я проперся, будьте снисходительны.. боты\моды\персы\маны\хп - я не играю, но хочу поботоводить.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Вероятнее всего он обнаруживае их по ID которое сохраняется после нажатия на F11. Он сканирует память процесса на наличие в радиусе своего действия мобов с необходимым ID, далее как-то отправляет клиенту команду выделить его (а мб отсылает пакет на сервер), далее все происходит по уже известной схеме, нажать кнопочку, и тд и тп. Как проходит сам процесс "выделить моба" я не в курсе, никогда не пытался целенаправленно писать ботов под что-то кроме евы.
Как вычислять оффсет, очень доступно написано тут: http://www.chemax.ru/articles/tutorial_dma_nondma.php



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

тут валялся пример pathing бота для fly for fan. Там в коде описаны моменты когда бот понимает где он географически находится и куда ему надо попасть и как пройти. Самый лучший вариант когда для этого ты знаешь ротацию чара.


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

вот тут, как двигается чар через схему вейпоинтинга использующую только X и Y координаты чара.
http://www.youtube.com/user/Belfig#p/a/u/1/bGp-WOWhd30
http://www.youtube.com/user/Belfig#p/a/u/0/EnADLAoATCk
 
Автор
K

koalw

Новичок
Сообщения
5
Репутация
0
Belfigor, какая скромность - это же Ваш бот:smile:

Почему забросили?
И еще, как я понял, Вы не поклоник влезания чз память, а стремитесь все делать "визуально"?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
koalw сказал(а):
Belfigor, какая скромность - это же Ваш бот:smile: Почему забросили? И еще, как я понял, Вы не поклоник влезания чз память, а стремитесь все делать "визуально"?
Можно и на "ты" мы ж в ентернетах. Бота забросил потому что надоело и я в первую очередь игрок EVE Online, а это был лишь маленький пример написанный в целях наполнения контентом, создания рекламы и привлечения в раздел новых пользователь из вне :smile:, ну и оставить пример, авось кому пригодится. А "визуально" мне нравится больше потому что таки не оставляет меня мечта когда-нибудь войти в сферу разработки визуальных систем безопасности, хотя это таки все же просто мечта, а вторая причина - в том что это достаточно не сложно и эффективно для EVE :smile:


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

И еще у меня колом в одном месте встало желание попробовать написать pathing алгоритм для перемещения в двухмерном пространстве, увы особого успеха я не добился ибо не смог найти ротацию чара :smile:
 

Shaman

Знающий
Сообщения
33
Репутация
5
Что бы не парится с графикой (говорю про PW, там это тупо) нужный моб выбирается при пробеге по структуре мобов (в памяти клиента валяется токая). Там и лежит все про них что нужно: уровень, имя, расстояние до него (сразу сосчитанное), координаты, текущий таргет моба и т.п. Мощностей автоита не хватает, поэтому используется одна хитрость. В исходниках MHS нормального поиска нет - он выбирает только по ID. Ищешь ID моба и ковыряешь рядом в памяти, так и находишь что нужно (оффсеты).
 
Верх