Quote:Любой, можно без.
Серьезно? Окей. Правильно ли я понял, что создается событие
А в котором заложена моя команда:
!!AI:S-1/0/1/67/6/0/500000/1;
вместе с триггером
!?TM. Затем создается событие
Б, которые активирует событие
А с помощью рессейвера
!!TM. Всё верно?
Quote:А кто его знает этот ИИ, может он каждый ход пересчитывает.
Эм, вряд ли - я вообще думал, что в !!AI тупо стоит хук на внутреннюю функцию вычисления весов
Хмм, так и есть. Весь код этих пунктов назначения воговский. Ну тогда достаточно и один раз установить.
Я-то наивно полагал, что это интерфейс для геройских структур.
(03.09.2015 17:38)Картограф Wrote: [ -> ]Серьезно? Окей. Правильно ли я понял, что создается событие А в котором заложена моя команда:
!!AI:S-1/0/1/67/6/0/500000/1;
вместе с триггером !?TM. Затем создается событие Б, которые активирует событие А с помощью рессейвера !!TM. Всё верно?
Нет.
1. Сначала идет инструкция !#TM которая описывает таймер-событие - когда, как регулярно и для каких игроков оно срабатывает. Т.о. создается периодическое событие.
2. Далее, мы перехватываем событие через триггер !?TM и выполняем там все, что нам нужно.
К вопросу, почему лучше делать через таймер. Для более-менее продвинутого ИИ цели и их значимость для ИИ могут/должны меняться. Т.е. однократного их задания не достаточно и проверку/переопределение целей надо производить периодически, а периодичееские действия лучше всего выполнять как раз по таймеру.
Поясню примером: устанавливаем в качестве очень привлекательной цели начальный город игрока-человека. Но в процессе игры город может захватываться и отвоевываться, основным может становиться другой город. Т.е., по хорошему, "задание" для ИИ нужно ежедневно актуализировать.
Конечно для случая с одним городом, или если захват конкретного города означает победу, других задач можно и не ставить. Тут подойдет хоть !?PI, хоть инструкция. Таймер можно не использовать.
I used and tested a lot !!AI receiver. So far AI will do a good job if the target is at no more than 2-3 days, and possibly in rather straight line. If you set at higher distance, there are big chances the game crashes. When AI can't find a travel algorithm this will trigger unpleasant results.
For example in tew4 labyrinth I asked AI to go to destination. There were no blocks, no objects in the path, but a labyrinth design, with a lot of corners and dead ends. Game always crashed as soon as AI got the code. In 300 spartans, same code said to 60 AI heroes to do same ~straight line then attack, after a 2 days travel. That one worked perfectly.
So, imo, if you need a timer, it means the distance is big, and so will be the risk.
Algor, у меня цель для ИИ - отряд монстров.
Картограф, а ИИ сможет его победить со стартовой армией?
Или цель нужно будет обозначить, когда сила армии ИИ превысит некоторый силовой порог?
Если последнее, без триггера не обойтись.
Если нужно, в 2х словах перевод комментария Валеры: не стоит указывать цель находящуюся далеко - игра крашится или ИИ ведет себя неадекватно.
И лучше прокладывать путь несколькими значимыми точками - т.к. карта авторская, а не случайногенерёная, это сделать будет не трудно.
Здравствуйте "Algor".. Я по-прежнему нахожусь на 3,58f (во имя Богов) и пока никак не могу перейти на эру.. Я просмотрел скрипт и потом только прочитал, что он идёт на эру... Я пытался всячески присвоить ответный удар эмиссару, но всегда не получается.. Код, конечно не дал и карту саму загрузить.. Я пытался его откорректировать, убрав фазу регенерации, но сам код выдаёт ошибку уже при самом нанесении урона эмиссаром.. Видимо проблема где-то в самой поддержки кода игрой.. Я вообще не думал, что нужно в код использовать подобное
- до сих пор загадка для меня, где эти данные берут! А так спасибо, что пытаетесь разрешить проблемку мою...
(03.09.2015 23:11)fatsawhorse Wrote: [ -> ]до сих пор загадка для меня, где эти данные берут!
Находят в исполняемом файле игры адреса функций и структур данных. Понятно, не каждый этим занимается, просто результаты выкладывают в общий доступ.
Algor, нет, начальным войском никак не победит.
Отряд монстров находится недалеко, но в стороне. Хотя я конечно, не знаю точно, какое расстояние считать небольшим.
Валера писал: 2-3 дня. Т.е. расстояние 2х дней пути.
Имеет смысл каждый день проверять силу армии героев ИИ, и если сила достаточна (у монстров, кстати, численность растет со временем?) - задавать цель/ценность для одного конкретного героя, а не для всех.
Т.е. сначала определяете ежедневный триггер (таймер), можно, например, со 2го месяца, если раньше точно не надо будет, и только для нужного ИИ. Потом каждый день по этому триггеру проходитесь по его героям и смотрите силу армии. Если нашелся герой, способный осилить монстра - задаете ему ценность пункта назначения.
Расстояние не проверял, но думаю, что дня за 3 добраться можно. Численность не растет. 2 месяца - это слишком много, у меня в "условиях поражения" время ограничено. А можно попросить изложенное вами, в виде скрипта? Для меня это очень уж сложная задачка. Был бы очень признателен!
Сообщите номер(цвет) ИИ-игрока, координаты его столицы(стартового города, от которого недалеко монстр) и координаты монстра.