Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Как создать плагин для HD модаХорошо, тогда выходит сейчас имея 1 Кристалл и 6000 Золота AI все же наймет 1 Древнее чудище и 2 обычных Чудища в последней версии Вашего кода?
|
Re: Как создать плагин для HD модаДа, наймёт. UPD: Не наймёт, потому что 6000 золота хватает на найм 3 Чудищ, а они сильнее с точки зрения игры. AI проходит по всему вектору доступных для найма существ и нанимает сильнейший отряд. Повторяет до тех пор, пока в векторе остаются существа (оригинальная механика). Так, AI предпочтёт нанять отряд существ 1-го уровня, если они сильнее отряда 7-го уровня, и у него могут закончиться деньги. Эту механику легко поменять, чтобы AI отдавал приоритет уровню существ, а не их суммарной силе. Можно попробовать сделать. Достигается простой заменой value на уровень существа в отряде (а лучше ввести 14 градаций уровня: для улучшенных и неулучшенных вариантов). Кажется, этот вариант будет более оптимальным при нехватке ресурсов (когда ресурсов хватает, AI всё равно купит всех, если для них есть место и нет проблем с Моралью).
Посмотрел код возврата ресурсов. Бага нет, просто необычная механика игры (см. участок, начиная с 0x43218F). Ресурсы возвращаются корректно. Осталось реализовать зависимость наличия грейда во внешних жилищах от наличия ул. двеллинга хотя бы в одном городе игрока и разбить плагин на два: обновлённые внешние двеллинги и найм AI неулучшенных существ при наличии ул. постройки. Второй плагин действительно что-то меняет, если AI испытывает постоянную нехватку ресурсов (например, в эндшпиле). С плагином игроку придётся столкнуться с более сильной армией AI. |
Re: Как создать плагин для HD модаAlexSpl писал(а): А можете разбор запостить ? |
Re: Как создать плагин для HD модаМожет быть позже. Там довольно просто, на самом деле. Проходимся по вектору; если нужно, меняем ресурсы, выбираем сильнейший отряд, смотрим, нужен ли он нам (проверки на Мораль армии). Только что детально разобрать, как именно считается value и как именно AI решает вопрос снижения Морали (кого забрать с собой, а кого оставить в гарнизоне)?
|
Re: Как создать плагин для HD модаПросто так сказать, чтоб было - подшить в папочку новую страничку
|
Re: Как создать плагин для HD модаДа, тема интересная Интересно понаблюдать за тем, как AI покупает отряды. Я рандомную карту запущу и смотрю будто фильм
Сейчас осталось реализовать: 1. Поддержку Mercenary Camp и Summoning Portal (в вектор не должны попадать неулучшенные версии существ). 2. AI не должен думать, что может нанять и улучшенные, и неулучшенные существа в двеллинге 0x11. Над вторым пунктом нужно подумать (как получить указатель на объект, о котором в данный момент думает AI; в функции есть только указатель на армию, это может быть город, а не двеллинг, например). |
Re: Как создать плагин для HD модаЯ помню, меня как-то интересовал вопрос, как отучить ИИ от набора в армию бесплатных юнитов-тихоходов 1-го уровня (особенно, если они не совпадают по фракции с основной армией). Может быть, данный разбор как-то сможет в будущем помочь улучшить ИИ в этом плане ?
|
Re: Как создать плагин для HD модаВ этой функции можно запилить любой алгоритм найма.
* * * Не умеет AI нанимать из Summoning Portal, к сожалению. Надо бы научить, но пока не в приоритете. |
Re: Как создать плагин для HD модаAlexSpl писал(а): AlexSpl писал(а): Это уже получилось исправить/побороть? AlexSpl писал(а): Как это 3 Чудища могут быть сильнее 1 Древнего + 2 обычных Чудища. Суммарный Fight_Value последней пары будет больше 3 Чудищ. Это тоже самое, что сравнивать 1 грейженное существо и 1 негрейженное одного уровня. Как я понял AI просто сравнивает силу именно того кол-ва, которое он может нанять по грейженным и негрейженным. То есть сравнивает суммарную силу 3 Чудищ и 1 Древнего Чудища. В таком случае 3 Чудища будут более выгодной покупкой. Получается, что он может выбрать что-то одно для покупки и сравнивает только так, как научили. В идеале было бы научить его брать в сравнение (и покупать, если это выгодно) и смешанный вариант макс по грейду + макс по негрейду. Чтобы он выбирал самый оптимальный из всех 3 вариантов по суммарному Fight_Value. Хотелось, чтобы в данном случае AI выбирал именно смешанный варинт 1 Древнее чудище + 2 обычных Чудища. AlexSpl писал(а): Многое зависит от ситуации. Но если судить так, как Вы написали, то получается вместо 1 Архангела, AI отдаст предпочтение 17 Королевским грифонам, так как их суммарный Fight_Value будет выше. В реальном же бою 1 Арх и 30-ку Королевских грифонов разобъет. В любом случае всегда выгодней покупать изначальномо самых высокоуровненых существ, а после уже на остаток более низкоуровневых, причем учитывая и негрейженные варианты существ одного уровня. Правда объединять такие армии сразу будет сложней ибо потребуються время и ресурсы на улучшения уже нанятых негрейженных существ, чтобы объединить их с основной армией грейженных существ. AlexSpl писал(а): 1. Поддержку Mercenary Camp и Summoning Portal (в вектор не должны попадать неулучшенные версии существ). 2. AI не должен думать, что может нанять и улучшенные, и неулучшенные существа в двеллинге 0x11. Над вторым пунктом нужно подумать (как получить указатель на объект, о котором в данный момент думает AI; в функции есть только указатель на армию, это может быть город, а не двеллинг, например). AlexSpl писал(а): ------------------------------------------------------------------------ Думаю, следует разделить данный плагин, как я писал ранее, на 4 плагина: 1) Дебаг-мод с макс инфой (каждое действие), которая будет выводится в окошко включая постройки, которые строит каждый герой AI в каждом своем городе. 2) Улучшенный алгоритм AI по скупке существ в городе. Это должен быть отдельный плагин для тех игроков, которым ненужны грейженные существа во внешних жилищах, но нужен более умный AI по скупке существ в городе (для наблюдения за изменениями и ходом мыслей AI 1-й и 2-й пункт можно объдинить при желании). 3) Плагин с грейженными существами во внешних жилищах на постоянной основе. Разумеется с улучшеным и максимально оптимальным алгоритмом по скупке существ (пример с Чудищами). 4) AlexSpl писал(а): Наличие грейда во внешнем жилище в зависимости от наличия ул. двеллинга хотя бы в одном городе игрока. ЗДЕСЬ ВАЖНО не в любом городе, а ИМЕННО в ТОМ ГОРОДЕ, к которому относится существо из захваченного жилища. То есть, например, если у нас один основной город Замок с отстроенным Ул. жилищем Башня лучников, а захватили мы Избушку гномов, то там должны быть только обычные Гномы. Другое дело, если у нас есть еще и город Оплот с Ул. постройкой Избушка гномов. Вот в таком случае мы и выводим грейд. Плюс теже алгоритмы по скупки существ в жилищах для AI, что в 3-м пункте. AlexSpl писал(а): Это, как и найм из Mercenary Camp, отправляем все в плагин по 2-му пункту, который прокачивает AI в плане найма в дефолтных объектах без модификаций. |
Re: Как создать плагин для HD модаЯ до сих пор не могу понять: если вставить хук по адресу, то команда, которая были по адресу, заменяется на наш хук, верно? Если хук вернет EXEC_DEFAULT, то это значит, что оригинальная команда выполнится? Если да, то в каком порядке: до или после нашего хука?
|
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1