XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Желтая пресса: обучающие статьи
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
Maroder
Вредитель...
offline
Опыт: 1,209
Активность:
Создание простейшего AI для карт типа Arena
Я хочу в этой статье представить способ создания простейшего AI, который будет управлять вражескими героями и\или героями ваших союзников.
Этот материал направлен на то, чтобы помочь новичкам создать свой первый AI.

----------

Для начала давайте разберёмся, за что будет отвечать каждый триггер по отдельности.
Триггер 1 – отвечает за патрулирование случайной точки карты.
Триггер 2 – отвечает за атаку противников, находящихся в небольшом радиусе от героя.
Триггер 3 – отвечает за движение героя к источнику жизни, если у него менее 100 здоровья.
И, наконец, триггер 4 – отвечает за воскрешение героя, в случае его внезапной смерти… :)
Хочу добавить, что если в вашей карте много героев, то процесс воскрешения можно делать не отдельно для каждого героя, а уместить в один общий триггер.

----------

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

----------

Итак, начнём-с!

Выберем на панели инструментов какого-нибудь героя (например, повелитель огня). Пусть он будет нашим врагом. Заходим в редактор триггеров. Создаём там отдельную категорию, в которой будет находиться AI для вражеского героя. Назовём её “PovelFireAI”. Внутри этой категории создаём четыре триггера: “Patrul”, “Attack”, “Life” и “Voskreshenie”. А также создадим переменную “Vrag” с типом “Боевая единица”, она нам понадобится чуть позже.

* Patrul * - пишем событие для первого триггера:
Время – Every 10 seconds of game time
Действие:
Боевая единица – Order <вражеский герой> to Патрулировать (Random point in (Playable map area))
//<вражеский герой> - герой, для которого вы пишете AI

* Attack *
Событие:
Боевая единица – A unit comes within 1700.00 of <вражеский герой>
Действие:
Set <переменная “vrag”> = (Entering unit)
Боевая единица – Order <вражеский герой> to Атаковать <переменная “vrag”>
//<переменная “vrag”> - переменная, которую вы создавали чуть ранее, не забыли про неё???
//<вражеский герой> - герой, для которого вы пишете AI


* Life *
Событие:
Время – Every 5 seconds of game time
Действие:
If
Здоровье <вражеского героя> меньше 100
Then
Триггер - Turn off Patrul
Триггер - Turn off Attack
Боевая единица – Order <вражеский герой> to Двигаться (Center of <созданная область возле источника>)
Wait 60.00 seconds
Триггер - Turn on Patrul
Триггер - Turn on Attack
Else
Триггер - Turn on Patrul
Триггер - Turn on Attack
//<созданная область возле источника> - небольшая область, которую нужно создать возле источника жизни

* Voskreshenie *
Событие:
Боевая единица – <вражеский герой> умирает
Действие:
Герой - Instantly revive <вражеский герой> at (Random point <созданная область возле источника>) Показать revival graphics

----------
Вы можете скачать маленькую карту, в которой демонстрируется пример вышеприведённого AI.

Вот и всё. Пользуйтесь и наслаждайтесь!!! Но слишком не критикуйте - я же не профессионал и делал статью, соответственно, не для пофессионалов!

Добавил к статье карту, в которой не только тестируется AI. Но это пока только DEMO версия, в ней пока мало что особо интересного. Посмотрите, увидите сами!!!
:end:
Прикрепленные файлы
Тип файла: w3x BlackShart.w3x (991.9 Кбайт, 224 просмотров )

Отредактировано Maroder, 08.06.2006 в 11:20.
Старый 06.06.2006, 18:02
Warer
ИИИИИИИ
offline
Опыт: 2,138
Активность:
Отличная статья!
Я как раз сейчас создаю АРЕНУ на 20 героев, все никак не знал с чего начать делать триггеры!
Старый 06.06.2006, 18:11
Soul reAver
Мертвый вампир
offline
Опыт: 1,542
Активность:
Уж слишком он простой...
Зачем в триггере life проверяешь жизнь героя опять. Ведь в триггер гарантированно попадет только тот герой, жизни которого меньше 100.
Где покупка/подбор предметов??
А вообще самое главное, это взаимодействие АИ с остальными фичами. Надо было начать с того, как АИ выберет героя ИМХО.
Старый 06.06.2006, 18:27
senatus
тихий и скромный...
offline
Опыт: 7,423
Активность:
Наман, наман. Он подсказал идею. Дальше уж кому что.
Старый 06.06.2006, 18:56
N.Sy.Prophet
Йа Байан
offline
Опыт: 13,122
Активность:
Уф...
У тебя тут стока ошибок, причём очень глупых... проверь все триггеры :D
Старый 06.06.2006, 19:26
Maroder
Вредитель...
offline
Опыт: 1,209
Активность:
Я предупреждал, что это AI для новичков, и кто первый раз решилсоздать свой собственный AI. Естесственно, мегапрофессионалам статья не поможет

Отредактировано Maroder, 06.06.2006 в 21:38.
Старый 06.06.2006, 20:50
Aspid

offline
Опыт: 8,361
Активность:
Цитата:
Статья СЃРѕ временем будет соверС?енствоваться, Р° РѕС?РёР±РєРё исправляться. Еще раз напоминаю, что это только начальный AI, Р° РЅРµ РїРѕСЃРѕР±РёРµ РїРѕ созданию профессионального AI.


здравствуйте дедушка еврей вы меня извините но я вашъ язикъ не понимайтъ...

по поводу статьи....имхо это не статья а полный бред.
кто хотя бы недельку поработал с редактором тригеров все это знает...
ффтопку...
Старый 06.06.2006, 21:24
DioD

offline
Опыт: 45,134
Активность:
Это не а аи а просто бот, причём на одного игрока
Set <переменная “vrag”> = (Entering unit)
вотЪ ни масивов ни кеша.
Старый 06.06.2006, 21:33
Vedun

offline
Опыт: 2,809
Активность:
Проще скачать пример из моей карты (там и предметы берёт). Кстати,Maroder, расскажи кто тебе намекнул, как делать. :)
Чё то я не понял... Зачем ты два раза проверяешь здоровье героя?
И чё герой воскрешается в случайной позиции? Некрасыво-о получается!
И ещё...
Maroder, почему твой предел жизни - 100? А если уровень героев будет 500? Они эти 100 здоровья с одного удара снесут.

Кстати, DioD, совсем не обязательно использовать кеш.

Maroder, посмотри мою карту - там и спеллы испольузют и предметы берут.

ЗЫ. Avatar, чё у тебя с кодировкой?
Старый 06.06.2006, 22:00
DioD

offline
Опыт: 45,134
Активность:
Я не про кеш, а про синглинстантность.
Старый 06.06.2006, 22:11
Aspid

offline
Опыт: 8,361
Активность:
Vedun это не у меня кодировка это у Maroder-а сообщение закодировано было он потом исправил ;)
Старый 06.06.2006, 22:29
DioD

offline
Опыт: 45,134
Активность:
Есть прога для определения кодировки, ищу уже не один месяц, найти не могу, хотя она от майкрософт.
Старый 06.06.2006, 22:40
dk

offline
Опыт: 60,293
Активность:
ну конечно нечего хорошего в статье нет, но Maroder молодец.
Если уж и писать статью про АИ, то на всех игроков и с прокачкой, покупкой, кастованием и т.д.
Старый 07.06.2006, 02:32
ComotozNick
Активность: 666
offline
Опыт: 26,206
Активность:
Dead_knight ну что же для ПРОСТЕЙШЕГО АИ вполне пойдёт...
Старый 07.06.2006, 02:34
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
вот всем заинтересованным сюда
Старый 07.06.2006, 04:36
Vedun

offline
Опыт: 2,809
Активность:
Van Damm, но твоя статья написана для знающих jass, а обсуждаемая - для новичков.

Maroder, шпионом заделался? :) Чё стотью то кодировать? :)

Maroder, я решил стравить твой AI со своим (из моей карты - примера к статье, не ввёл ни единой строчки джаза), сёдня, часа через 2 выложу. Посмотрим, кто выиграет! :duel: :)

DioD, а как прога называется, может знаю...
Старый 07.06.2006, 08:21
Maroder
Вредитель...
offline
Опыт: 1,209
Активность:
Vedun Во-первых, у кого герои будут прокачиваться до 500 уровня, можно сделать, что каждые 10 уровней, максимальное здоровье, при котором герой идёт к источнику, будет увеличиваться на 100 единиц.
А статья закодировалась сама, когда я писал сообщение на форум со своего мобильника.
Старый 07.06.2006, 10:04
ComotozNick
Активность: 666
offline
Опыт: 26,206
Активность:
Maroder надо было не с мобилы писать, а не ленится и залезть нормальным образом.
Старый 07.06.2006, 11:27
DioD

offline
Опыт: 45,134
Активность:
Цитата:
Сообщение от Vedun
DioD, а как прога называется, может знаю...

Не могу найти потомучто забыл как называется, хотя она даже у меня на компе стояла, жаль что формат не щадит никого.
Старый 07.06.2006, 11:50
Vedun

offline
Опыт: 2,809
Активность:
Maroder, гораздо проще ставить: Максимальное здоровье героя * 0.1. Тогда никакой мороки не будет.

Кстати выкладываю на обозрение Дуэль.

ЗЫ.Плиз. Кто может помочь? Герой иногда останавливается посреди крты и до-о-олго стоит!
Прикрепленные файлы
Тип файла: w3x AI Arena 1x1.w3x (40.4 Кбайт, 78 просмотров )
Старый 07.06.2006, 12:37

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 16:27.