Сообщений: 677
Тем: 16
Зарегистрирован: Dec 2002
В этой теме я хочу собрать все способы которые каждый знает по улучшению аи противников.
Мой способ улучшения аи это различные скрипты которые позже нужно будет вставить в мобы.
Ну например скрипт :если здоровье противника стало на 50-60% меньше то он
а)пытается себя вылечить спеллом если таковой имеется
б)начинает убегать от перса к ближайшему юниту враждебному к персу
Так же я хотел бы узнать у Sun 'а возможно ли скриптами реализовать выбор у монстра типа атаки то есть в корпус в голову и тд.?
Вобще я считаю что аи требует улучшения так как монстры достаточно тупы и у них только одно действие при виде перса это атаковать его.Улучшением аи я полагаю будет свобода выбора монстров.
То есть чтоб они при виде перса смогли оценивать ситуацию:напасть им или побежать за подмогой.
Ваши предложения господа ?
"{}•••®/A//P][R[$®•••{}"
Сообщений: 1,563
Тем: 96
Зарегистрирован: Dec 2001
24.06.2003, 19:32
(Сообщение последний раз редактировалось: 24.06.2003, 20:03 Jet.)
«Чтобы перс себя лечил и товарищей», такое в ПЗ есть, это тип монстров Шаманы, нужно только дать закл в арсенал монстру. Поведение: «убегать к ближайшему монстру и вызывать подмогу», тоже есть, но не так прямолинейно. Свойство: скрыться, убежать, обладают такие юниты как Орк с тайной запиской убить Избранного на карте «Река и Острова» и другие монстры, например «Батраки».
Отдать команду «скрываться» можно командой: «UMRevenge». Чтобы вернуть монстра в прежнее состояние, нужно отдать две команды юниту: «UMClear», «UMStandard», или новую команду, появившуюся после сервиспаков из-за «Циклопа»: «ResetTarget»
Заготовки функций (процедур) в ПЗ так же есть, правда многие из них просто не используются или в последствии замещены одной командой. Например, раньше (в бета-версиях ПЗ) ловушка: «Пирамида» на игровой зоне «Предгорья» была реализована вот так:
Код: Script VCheck#0#15
(
if
(
IsLess( DistanceUnitPoint( this, 194, 69 ) , 40 )
IsAlive( this )
)
then
(
KillScript( )
VTriger#0#19( this )
)
)
Script VTriger#0#19
(
if
(
)
then
(
KillScript( )
CreateLightning( GetObjectID( this ) , 193.5, 77, 20.5, GetX( this ) , GetY( this ) , GetZ( this ) , 4 ) /показать молнию бьющую в юнита
InflictDamage( this, 10 ) /нанести урон в 10 единиц
Sleep( 15 ) /задержка для визуализации молнии на 1 секунду
DeleteLightning( GetObjectID( this ) ) / удалить объект Молния
Sleep( 100 ) /задержка между ударами молнии, как бы пирамида заряжается
VCheck#0#15( this ) / снова запустить процедуру проверки, находится ли юнит в зоне досягаемости Пирамиды
)
)
нужно отметить, что этот скрипт многопоточный, и для каждого объекта открывается свой поток и инициализируется переменная: «this», то есть, молния будет бить в каждого юнита индивидуально. Потоки активируется в момент входа на игровую зону. Индивидуальность не совсем логична, так как получается, что молния перезаряжается для каждого юнита персонально, а должна была бы перезаряжаться сама по себе и бить на всех, кто попал в зону одновременно…
В нынешнем исполнении, этот метод убран, и вместо него, есть так называемый объект: «Ловушка» (MagicTrap), который можно установить как объект на карту и активировать/деактивировать его (объект ловушку). Эти два скрипта можно объединить в одну процедуру и сделать локальную, на уровне модуля моб-файла процедуру. Такой метод так же есть в ПЗ, на зоне 19 – эффект бегущих огней в портале. К слову сказать, можно сделать и свои собственные эффекты…
Сообщений: 677
Тем: 16
Зарегистрирован: Dec 2002
2Sun
Спасибо тебе.
А вот скажи что ты думаеш про улучшение аи монстров.С улучшенным аи ведь будет интереснее играть чем просто так ходить и месить всех без особо сложных тактик.
"{}•••®/A//P][R[$®•••{}"
Сообщений: 1,563
Тем: 96
Зарегистрирован: Dec 2001
Пожалуйста!
Думаю «улучшения враг имеющемуся». Неблагодарное это дело улучшать. Новое нужно придумывать…
Сообщений: 677
Тем: 16
Зарегистрирован: Dec 2002
А что ты имееш ввиду новое , если можно то по конкретней.
"{}•••®/A//P][R[$®•••{}"
Сообщений: 13
Тем: 4
Зарегистрирован: May 2003
Дать противникам 2 оружия (например колье и меч) и пусть юзают их толково
Сообщений: 677
Тем: 16
Зарегистрирован: Dec 2002
Думаю движок не позволит противникам юзать два оружия одновременно.
Да я думаю что балланс только усилит или уменьшит сложность игры а не улучшит аи.Нужно искать новые способы.
"{}•••®/A//P][R[$®•••{}"
Сообщений: 13
Тем: 4
Зарегистрирован: May 2003
16.08.2003, 23:10
(Сообщение последний раз редактировалось: 31.08.2003, 20:26 Jaroslav.)
Реплика Сана в похожей теме "Нужно детально описать поведение врага"
Предлагаю вариант
Все монстры, кроме зверей и мертвецов, оценивают силу противника, но не все правильно; это зависит от интеллекта
Причем оценка не только в начале, но и во время боя каждые 15-20 с, с учетом своего HP и прибывающих подкреплений, своих и чужих
Бывают еще абсурдные ситуации, когда на тесно стоящую группу нападают, некоторые из группы видят, но не предупреждают товарищей криком - это надо исправить
Итак
Гоблины вероятность неверной оценки велика, скорее переоценят и убегут
Орки немного умнее, но склонны недооценивать противника, яростно сражаться до конца
Шаманы умны, они не только усиливают лечат и стреляют, они в первую очередь командиры, отдающие правильные приказы: атаковать, отступить, разойтись(в случае применения противником сильной площадной магии), заманивать и т д, могут послать одного из группы за подкреплением Шаманы никогда не ходят без охраны, причем, стоят они или идут, охрана ведет себя так, чтобы по возможности видеть все вокруг. Однако из-за своей свирепости орки иногда не слушаются шаманов и бьются когда надо бежать.
Люди на Гипате и простолюдины на Ингосе более-менее трезво оценивают ситуацию и действуют по стандартной схеме (биться или бежать) Рабы на Сусле убегают всегда
Воины на Ингосе и Сусле умнее гипатян, но главное что они - солдаты и не занимаются оценкой, а исполняют приказы офицеров
Задача часовых и патрулей - поднять тревогу, а не геройски погибнуть
Задача телохранителей принять удары, охраняемый не сражается, а бежит за помощью
В лагере или казарме всегда должны быть офицеры, которые действуют подобно шаманам, но гораздо умнее и имеют большой радиус обзора, ~ на 7-10 м больше чем у перса с орлиным взглядом и зрением мертвеца Они должны 100% правильно оценивать картину боя и зная + и - каждого подчиненного эффективно командывать, не вступая в драку. Кстати ББ воинов одного типа могут различаться % на 30, как и бывает в жизни.
Варианты действий офицеров
Стандарт Главное - сохранить свой отряд. Если враги гораздо слабее - нападать всем отрядом (в первую очередь нападать на вражеских магов и лучников), иначе уклоняться. Если враг силен и наступает, отступать на позицию, где защитники имеют преимущество,например в узкий проход, где можно сражаться 1 на 1, вперед ставить самого сильного, магов и лучников назад в безопасное место, самого слабого/быстрого послать за помощью, если возможно
При отступлении можно кем-то пожертвовать, приказав ему атаковать вражеского мага. Это должно 100% задержать наступающих.
Еще вариант: всем бежать врассыпную
Охрана ворот Здесь главное умереть, но не пропустить И конечно послать кого нибудь за помощью.
Засада обычная, как у цветка
Ночная ловушка Выставить одинокого стражника в виде приманки. Офицер со своим отрядом находится рядом, все лежат у всех в доспехах невидимость, а у офицера еще и нчное зрение. Он должен оценить, нападать ли Утром все уходят в лагерь отсыпаться
Заманивание 1-2 воина с зельем телепорта заманивают в закрытое пространство (в ущелье, во двор) и телепортируются
Окружение см ниже
Лесовики видят далеко, как офицеры, поэтому стараются не сражаться небольшими группами, отступают, следуют на расстоянии, окружают, потом нападают со всех сторон в большом количестве с единорогами
Остальные монстры действуют стандартно
На первый взгляд невозможно все это реализовать, тем более не перегрузив скриптами mob.
Но если для каждого отряда и каждой местности тщательно продумать варианты действий, то в бою все будет сводиться к выбору набора команд. Например каждый отряд имеет одну-две фиксированных позиции для обороны и по команде отступать все юниты занимают прописанные в mobe позиции.
Представьте как изменится игра если хоть половина этого будет реализована
Сообщений: 13
Тем: 4
Зарегистрирован: May 2003
Никто не отвечает...
Сан, я совсем ахинею нереальную написал?
Сообщений: 49
Тем: 10
Зарегистрирован: Aug 2003
Я извеняюсь, что немного не в тему, но улутшение аи - будет слишком, по-моему, если враг тебя увидел, но ты при этом успел отбежать на солидное расстояние, враг будет тебя преследовать, постоянно, и побежит за тобой, хоть на край карты :angry: .... И от него не скроешся.... никак.... Я представляю что будет если улутшить аи..... Наверное натравит всех монстров карты на тебя, пока будет за тобой бежать..... И еще одно: далеко от него не убежиш, по скольку у монстров не заканчивается стамина .........
Если пацан сказал - пацан сделал, если пацан не сделал - у пацана не получилось... :о)
Сообщений: 1,563
Тем: 96
Зарегистрирован: Dec 2001
Почему же ахинея? Очень правильно и грамотно ты написал. Можно поэкспериментировать со скриптом, и реализовать твои задумки. Главное, это играбельность!
В ПЗ для каждого юнита зарезервировано 5 позиций тревоги. Первая позиция – это обычно поведение, а остальные практически не используются. Можно сделать как бы 5 уровней интеллектуальной сложности на игровой зоне, которые динамически могут изменяться в процессе игры. Например, чем больше убиваешь врагов тем тревожнее у них поведение, и так далее. Это я так, к размышлению написал…
Вообще, Нивал не использовал огромное количество возможностей движка ПЗ. Например, есть три параметра чувств не использованных у персонажа игрока: Обоняние, Слух, Предчувствие…. И многое другое, в том числе и баланс скорости передвижения.
Сообщений: 351
Тем: 10
Зарегистрирован: Feb 2004
а вот еще что:
почему бы не сделать некие разные группировки у разных категорий врагов ( такое реыльно - клан ШайВаров и Ящеры в сингле)
Например, разбойников стравливать с лягушками. Вообще всех животных со всеми разумными.
Кабаны только с теми кто на него самого нападает.
Банбш и стражу.
Тигров и простолюдинов....
И т. д.
Очень поможет...
Поднимите мне веки
(с) Гоголь
Откройте мне веки...
(с) ВиЙd
************************************************
Моя фотка - логотип Царства Магии
*************************************************
Зак forever, Ат-Зако в отстой....
Сообщений: 677
Тем: 16
Зарегистрирован: Dec 2002
13.04.2004, 23:23
(Сообщение последний раз редактировалось: 14.04.2004, 09:06 sun.)
Это реализуется очень легко. В пз есть дипломатические группы, вроде от 0-31.
Между ними может быть три состояния: враждебное, не враждебное, нейтральное. Таким образом, как выразился ВиЙd, можно будет стравливать монстров на карте. Я попробую это реализовать, а точнее отредактировать скрипт. Ждите результатов.
"{}•••®/A//P][R[$®•••{}"
Сообщений: 351
Тем: 10
Зарегистрирован: Feb 2004
прально, так намного реалестичнее будет - но:
1) Оставь нейтрал между лесовиками и всякой живностью, кроме единорогов, так же с троллями...
2) У хищников поставь ВРАГ с зайцами и оленями....
3) сам подумай...
Спасибо
Поднимите мне веки
(с) Гоголь
Откройте мне веки...
(с) ВиЙd
************************************************
Моя фотка - логотип Царства Магии
*************************************************
Зак forever, Ат-Зако в отстой....
Сообщений: 677
Тем: 16
Зарегистрирован: Dec 2002
Для тех кто собирается работать в направлении улучшения аи.
Процедуры AI
SetDiplomacy ( nPlayerA , nPlayerB , flDiplomacy )
Изменяет дипломатию - кем является игрок nPlayerB для игрока nPlayerA. Возможные значения flDiplomacy:
1 - союзник
0 - нейтрал
-1 - враг
См. также SetPlayer(), GetDiplomacy() и GetPlayer().
Примеры:
SetDiplomacy(0,
SetPlayer ( objUnit , nPlayer )
Объявляет юнит objUnit принадлежащим игроку nPlayer. См. также SetDiplomacy(), GetDiplomacy() и GetPlayer().
Подробнее здесь http://www.eicheats.hotbox.ru/
"{}•••®/A//P][R[$®•••{}"
Сообщений: 117
Тем: 7
Зарегистрирован: May 2004
11.06.2004, 17:27
(Сообщение последний раз редактировалось: 11.06.2004, 17:29 Morgot.)
Я тут темку про тактику толкал, правда в Посёлке:
http://gipat/forum/viewtopic.php?t=3191
Так вот.. Если реализовывать некие тактические фишки: Даже на Гипате в сингле, расставив Гоблинов пограмотнее(Когда разбойники предали Зака. надо было помощника Атамана мочить), то Зака там Могли ой завалить!
Сообщений: 65
Тем: 3
Зарегистрирован: Feb 2005
Циклопы ( Выход из укрытия опасен!) Ваще наглые
Папа то еще по правилам беьтся, а мелкие ноги
уносят, но камнями кидаются!
А что сверх всего этого, сын мой, того берегись: составлять много книг - конца не будет, и много читать - утомительно для тела.
Выслушаем сущность всего: бойся Бога и заповеди Его соблюдай, потому что в этом все для человека;
Ибо всякое дело Бог приведет на суд, и все тайное, хорошо ли оно, или худо.
|