WorldCheats Forum

Форум
Форум посвященный главным образом MMORPG играм. Никаких ХАЙДОВ!

 
ФорумПорталЧаВоПоискПользователиГруппыРегистрацияВход

Поделиться | 
 

 Концепция создания бота.

Предыдущая тема Следующая тема Перейти вниз 
АвторСообщение
Archy26
Пользователь
Пользователь
avatar

Мужчина Количество сообщений : 73
Возраст : 35
Награда :  
Дата регистрации : 2009-06-01

СообщениеТема: Концепция создания бота.   Вс Июн 14, 2009 4:00 am

Здесь, я постараюсь подробно изложить свои умозаключения на тему создания бота для EVE-online на AutoIT 3.

Глава 1.
Концептуальная проработка бота.

Начнём с того, что вам, дорогой ботописатель, нужно определиться с тем какой это будет бот.
1) Будет ли это многозадачный бот, написаный для использования с количеством ботов больше двух, или это будет бот опрашивающий и производящий действия только в одном окне.
2) Ответьте для себя на вопрос - Для каких целей создаётся Ваш бот? Он будет универсален, или он создаётся только под хант или майн или ещё что либо одно? (Стоит ли говорить, что в первом случае количество работы по написанию и модификации а так же дополнению предложеных автором ветки форума Belfigor`ом модулей возрастает в десятки раз?)
3) Насколько умным вы хотите получить бота? Или он будет постоянно опрашивать окна (окно) и "осматривать его" в целях выяснения изменения окружающих условий, либо он будет просто тупо выполнять какие-то макросы, раз в секунду проглядывая локал на предмет врагов? А может быть вам вообще не нужно проглядывать локал на предмет врагов, но нужно постоянно куда-то кликать и что-то набивать в появляющихся окошках (как в случае например с автоторговлей)?
Обдумайте всё это и изложите в письменном виде для себя.
Глава 2.
Создание плана действий бота.
Если вы плохо представляете, что вы хотите от бота, то, я думаю, вы потратите НУ ОЧЕНЬ МНОГО ВРЕМЕНИ, на его создание. Вам необходимо как минум знать что будет делать бот. Это звучит немного забавно, но часто, создатели разнообразных (частенько и платных) ботов просто не до конца понимают что должен делать бот в той или иной игре и деньги покупателья оказываются потрачеными зря. Бот делает что-либо не так как нужно, или и того хуже, не то, что должен. Именно для меня, плюсом в создании собственного бота является то, что мой бот будет делать именно то, что я в него вложу, и именно так, как я ему скажу это делать Smile
Итак:
В случае однозадачного (выполняющего действия только с одним окном) бота, нужно проделать как минимум следующее:
1) создайте план действий, что именно выделаете в клиенте евы для достижения желаемого результата.
2) разбейте план на этапы. Приведу пример как бы я писал план действий для хант бота:
После старта бота:
1. проверяем находимся ли мы в хантерском корабле
2. Проверяем, что у нас в карго.
3. проверяем есть ли в карго боеприпасы.
4. проверяем есть ли в локале враги.
5. Андок со станции, ждём окончания прогрузки в космос.
. проверяем есть ли в локале враги.
6. Проверяем находимся ли мы в той системе, где нужно хантить.
7. отправляемся в нужную систему
8. прибыв в систему выбираем белт.
. проверяем есть ли в локале враги.
9. Варпаемся в выбраный белт.
. проверяем есть ли в локале враги.
10. проверяем наличие написи
. проверяем есть ли в локале враги.
11. проверяем расстояние до неписи.
. проверяем есть ли в локале враги.
12. Выбираем цели.
. проверяем есть ли в локале враги.
13. Лочим цели
. проверяем есть ли в локале враги.
14. Стреляем в первую залоченую цель
. проверяем есть ли в локале враги.
. проверяем количество хп шилда
. проверяем количество хп брони
. проверяем количество капы
. проверяем состояние цикла модулей оружия
. проверяем наличие целей
. проверяем количество целей
. проверяем есть ли в локале враги.
15. Стреляем в следующую залоченую цель.
---\\ \\---
19. определяем наличие белых вреков.
. проверяем есть ли в локале враги.
. проверяем количество хп шилда
. проверяем количество хп брони
. проверяем количество капы
. проверяем количество оперативного боезапаса (снаряды\ракеты загруженные в модули оружия. не для аммаров)
. проверяем общее количество боеприпасов
. проверяем есть ли в локале враги.
20. подлетаем к вреку
. проверяем есть ли в локале враги.
21. сальважим врек. (если нужно)
. проверяем есть ли в локале враги.
. проверяем количество капы
22. лутаем врек (если нужно)
. проверяем есть ли в локале враги.
23. летим в следующий белт.
. проверяем есть ли в локале враги.
ну и так далее. Вплоть до возвращения на станцию или на пос.
Список проверок, которые я бы постарался применить в хантерском боте здесь далеко далеко и ещё много раз далеко не полный. Каждая проверка имеет под собой условие для выполнения, ну и так далее.
И это далеко не всё, но, тем не менее, представление о том, что нужно сделать в для написания плана бота - даёт вполне достаточное для понимания.

Глава 3.
ДЕТАЛИЗАЦИЯ.

Теперь у вас есть полное понимание (с вашей точки зрения), плана того, что должен делать бот.
Настала пора улучшить это понимание, и заодно, немного получить представление о том, какое количество работы нас ждёт при написании бота.

Детализуйте каждый пункт плана действий бота, о котором я попытался вам рассказать в предыдущей главе, и внимательнейшим, самым детальным образом разберите каждое отдельное действие на составляющие. Стоит оговориться, что вы должны это делать, как бы с точки зрения компьютера. Если вам трудно понять о чём я говорю, попытайтесь представить себя челоеком, в задачи которого входит только слежение за курсором мыши, за нажатиями на кнопки мыши, за нажатиями на клавиатуру, и сочетаниями этих действий. Подробно разберите (а лучше даже запишите) что и куда, и в каком случае вы нажали, куда и в каком случае смотрели (это для проверок), и т.д.

Если вы успешно справились с поставленой в этой главе задачей, значит вы МЕГАКРУТЫ.
У Вас есть КОНЦЕПТУАЛЬНЫЙ ПЛАН БОТА. Жму вашу руку. Вы сделали как минимум четверть работы. Теперь пора приниматься за программирование.
Успехов Вам!

Спасибо за то, что дочитали.
Вернуться к началу Перейти вниз
Посмотреть профиль
Archy26
Пользователь
Пользователь
avatar

Мужчина Количество сообщений : 73
Возраст : 35
Награда :  
Дата регистрации : 2009-06-01

СообщениеТема: Re: Концепция создания бота.   Пт Июн 26, 2009 10:14 am

Глава 4.
проект-документ.

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

Итак, набросаем названия функций, одновременно описывая задачи.

Func MainLoop() ;- главный цикл
должен поочерёдно выполнять заранее заданные макросы, один из которых я опишу для примера ниже.
Результатом работы должна стать бесперебойная копка льда.
Dim $Enemy1, $Enemy2, $Enemy3 ;- цвета "врагов"
Dim $BelntNum ;- номер белта куда надо варпать.
Dim $StationNum ;- номер станции, куда надо варпать.
Dim $R1, $R2 ;- номера астеров (подразумевают строки в овервью, которые нужно залочить\рыть.
Dim $MinerCycleNum ;- Переменная для счётчика циклов.

ScanLocal($Enemy1, $Enemy2, $Enemy3)
LoadingIntoSpace()
ScanLocal($Enemy1, $Enemy2, $Enemy3)
WarpToBelt($BelntNum)
ScanLocal($Enemy1, $Enemy2, $Enemy3)
TargetIceRoids($R1, R2)
ScanLocal($Enemy1, $Enemy2, $Enemy3)
MinerCycle($MinerCycleNum)
ScanLocal($Enemy1, $Enemy2, $Enemy3)
WarpToStation($StationNum)
ScanLocal($Enemy1, $Enemy2, $Enemy3)
DocingStation($StationNum)
ScanLocal($Enemy1, $Enemy2, $Enemy3)
UnloadCargo()
EndFunc ;==> MainLoop()

Итак мы сделали набросок главного цикла,

Теперь, нам нужно дать самому себе пояснения каждой переменной и каждой функции что мы задали в главном цикле.

Func ScanLocal()
Функция сканирования локала. Я предполагаю, что она должна быть реализована через стандартную функцию PixelSearch(), и должна реагировать на цвета нейтрала, красного и оранжевого минусов.
Переменные $Enemy1, $Enemy2, $Enemy3 подразумевают обозначеные(заранее определённые) цвета иконок нейтрала, красного и оранжевого минусов.
EndFunc

И вот таким вот, текстовым образом вы "наполняете" тело каждой функции, вписывая все свои предположения или хотелки того, что вы планируете получить от данной функции. Не забывайте по-максимум упрощать каждую хотелку. В идеале каждая функция должна возвращать минимум значений. Лучше написать огромную кучу простых макросов и функций, чем одну огромную и крайне сложную конструкцию, в которой не то что вы - проффесионалы программирования с трудом разберутся.

О, да я вижу у вас уже половина схемы готова? Отлично! Продолжайте в том же духе. Скоро вы начнёте автоматизировать не только еву, но и вообще всё подряд, в том числе и просмотр почты.

Интересно? Хехехе, ещё бы. Мне тоже Smile
Вернуться к началу Перейти вниз
Посмотреть профиль
 
Концепция создания бота.
Предыдущая тема Следующая тема Вернуться к началу 
Страница 1 из 1

Права доступа к этому форуму:Вы не можете отвечать на сообщения
WorldCheats Forum :: Лаборатория Читера :: EVE Online-
Перейти: