Current time: 14.04.2024, 14:53 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Master of Puppets v. 4
» новая версия, находящаяся в разработке
Author Message
MOP Offline
Moderators

Posts: 1468
Post: #136

Очень жаль, но, судя по всему, внешняя Таверна имеет околонулевой приоритет посещения ИИ-игроком. Примерно как вог-объекты, только ещё хуже. Даже непонятно, что произойдёт, если ИИ её всё-таки посетит - ничего или он всё же наймёт героя.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
02.10.2023 00:59
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 118
Post: #137

Quote:А ещё меня давно интригует идея корованов, как в AoW. С помощью какого-либо артефакта или навыка - свернуть и сунуть город в карман, а потом развернуть в другом, более отдалённом от врагов месте.

Интересно, как комп будет пользоваться. Постройка городов компом добавляла гемора. Компы часто строили города в пустых местах, выручало наличие всяких телепортов и полетов в книге заклинаний. Тут чтоб игру в погоню не превратить случайно. Для игрока-человека польза понятна, смыться в безопасное местно в начале игры, если враги щимят, либо приближаться к врагу на позднем этапе, особенно если есть портал города. А какое условие компу придумать?
Мне напомнило замок гремлина в Kings Bounty, там был артефакт такой, только там героя уменьшали, чтоб в замок попасть.
А реализовать караваны по аналогу пятерки не было желания? Чтоб была возможность скупать войска с других городов и внешних жилищ. Или считаешь что это сильно упростит игру?

Quote: Таверна имеет околонулевой приоритет посещения ИИ-игроком.

Может это в Вог-е случайно изменили? Ты в Сод-е не проверял? Вроде в памяти что комп пользовался, хотя может я с тюрьмой путаю, да и память это ещё та штука.
Сейчас бегло посмотрел в FAQ Хот-ы и HD мода, там такой баг не фиксили, походу ещё не знают про него.
(This post was last modified: 03.10.2023 02:20 by StasPV.)
03.10.2023 01:45
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #138

(03.10.2023 01:45)StasPV Wrote:  Интересно, как комп будет пользоваться.
А никак. Ему проще построить ещё один город. Да и не располагаю я таким межушным ганглием, чтобы просчитать алгоритм, когда и куда компу нужно перенести целый замок. Впрочем, в AoW2 комп этим тоже не пользуется.
Так что будет чисто людская фишка.
(03.10.2023 01:45)StasPV Wrote:  Постройка городов компом добавляла гемора. Компы часто строили города в пустых местах, выручало наличие всяких телепортов и полетов в книге заклинаний.
Непонятно, что это за места такие. Пустые? Так они и должны быть достаточно пусты. Труднодоступные? Город может основать только герой, а раз он туда добрался - значит, доберётся и другой.
(03.10.2023 01:45)StasPV Wrote:  А реализовать караваны по аналогу пятерки не было желания? Чтоб была возможность скупать войска с других городов и внешних жилищ. Или считаешь что это сильно упростит игру?
Я в Пятёрку не играл, но в MoP же есть заклинание "Сбор Войск", так что к чему плодить лишние сущности...
(03.10.2023 01:45)StasPV Wrote:  Может это в Вог-е случайно изменили?
Сильно вряд ли.
(03.10.2023 01:45)StasPV Wrote:  Вроде в памяти что комп пользовался, хотя может я с тюрьмой путаю, да и память это ещё та штука.
Скорее всего, спутал. Судя по тому, что таверны и на карте не генерируются, разработчиками предполагалось, что это объект для игрока-человека. А жаль. Вместо удалённых городов я хотел ставить именно таверны (подопция).
Image: image.png


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
03.10.2023 02:23
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 118
Post: #139

Quote:А никак. Ему проще построить ещё один город.

Я как раз хотел такой вариант предложить, чтоб не мотаться за компом.

Quote:Я в Пятёрку не играл, но в MoP же есть заклинание "Сбор Войск", так что к чему плодить лишние сущности...

Блин, забыл за это заклинание, согласен, будет лишним. В пятерке в любом городе в окне найма можно было открыть список других городов и внешних жилищ, и нанимать там войска, после чего они двигались по карте в город, соответственно тем дольше чем дальше от города, и по карте двигался караванчик, который враги могли атаковать и грабануть. Это то что помню.

Quote:Непонятно, что это за места такие. Пустые?

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

Quote:Судя по тому, что таверны и на карте не генерируются, разработчиками предполагалось, что это объект для игрока-человека.

А ты пробовал изменить ценность для ИИ? Даже если не пользуется, ну и фиг с ним, чем оно мешает реализовать такую опцию? Я б наверно не включал ее, даже если б вместо таверны был другой объект, просто чтоб можно было перенести обратно город. С другой стороны может прийти ИИ, и построить на этом месте свой.
(This post was last modified: 03.10.2023 03:20 by StasPV.)
03.10.2023 02:56
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #140

(03.10.2023 02:56)StasPV Wrote:  А ты пробовал изменить ценность для ИИ?
Навскидку не знаю, где это задаётся, а поступать аналогично команде !!AI точно не буду. Возможно, ответ где-то там:
sergroj Wrote:Вычисляет ценность объекта для AI:
.text:00528520 ; int __fastcall AICalculateMapPosWeight(_Hero_ *hp, signed int *moveDist, int packedmapitem)
moveDist - расстояние до объекта,
packedmapitem - координаты объекта,
hp - герой.
(03.10.2023 02:56)StasPV Wrote:  Даже если не пользуется, ну и фиг с ним, чем оно мешает реализовать такую опцию?
Я попробовал, но даже с максимальным множителем армии ИИ ведёт себя очень вяло. Думал, возможность найма новых героев ему поможет.
(03.10.2023 02:56)StasPV Wrote:  Я б наверно не включал ее, даже если б вместо таверны был другой объект, просто чтоб можно было перенести обратно город.
Обратно? Какой город? Все же удалены. Разве что новопостроенный, если вторая подопция не включена.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
03.10.2023 14:27
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 118
Post: #141

Quote:Вместо удалённых городов я хотел ставить именно таверны (подопция).
Quote:Я попробовал, но даже с максимальным множителем армии ИИ ведёт себя очень вяло. Думал, возможность найма новых героев ему поможет.

А что за множитель армии? Я увидел скрин в предыдущем посте, на ночь гладя спутал его с окном усиления компа. Просто увеличение количества армии в стеках стартовых героев у всех?
Не могу понять, что ты подразумеваешь под "вяло"? ИИ стал вялым по сравнению с доступной версией МОР, или ты его хочешь сделать более активным чем он есть? Поэтому и не понимаю в чем проблема поставить таверну на месте города в таком виде в каком она реализована в СОД.
03.10.2023 22:47
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #142

(03.10.2023 22:47)StasPV Wrote:  А что за множитель армии? Я увидел скрин в предыдущем посте, на ночь гладя спутал его с окном усиления компа. Просто увеличение количества армии в стеках стартовых героев у всех?
Да.
(03.10.2023 22:47)StasPV Wrote:  Не могу понять, что ты подразумеваешь под "вяло"?
Позахватывав лесопилки и рудники, подобрав ресурсы поблизости, герои ИИ просто замирают на месте, хотя имеют в наличии армии, достаточные для пробития нейтралов и перехода в другую локацию. Развитие останавливается.
(03.10.2023 22:47)StasPV Wrote:  Поэтому и не понимаю в чем проблема поставить таверну на месте города в таком виде в каком она реализована в СОД.
В чём смысл её ставить, если ИИ, как я уже сказал, не заходит в неё?


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
03.10.2023 23:14
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 118
Post: #143

МОР, не очень понятно с твоего сообщения про ИИ. Такое происходит на разных картах, на разных этапах игры, на всех уровнях сложности со всеми ИИ игроками? Ну иногда такое поведение бывает, но это дело случая. Я б попробовал разные карты и разные уровни сложности, посмотрел бы есть ли разница, но думаю ты и так эти вещи исследовал. Ещё бы попробовал туже карту на последней третьей версии мода запустить, может это баг такой из какого-то патча.
А в гильдии воров что пишет про компов, какое поведение у них, "строитель"?
Помню ещё кто то писал про радиус ИИ, который на производительность и длительность хода влияет, ты его не менял?
04.10.2023 00:05
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #144

(04.10.2023 00:05)StasPV Wrote:  МОР, не очень понятно с твоего сообщения про ИИ. Такое происходит на разных картах, на разных этапах игры, на всех уровнях сложности со всеми ИИ игроками? Ну иногда такое поведение бывает, но это дело случая.
Тут даже не в этом проблема, а в том, что если ИИ не будет нанимать новых героев, игра практически сведётся к типу "арена". Убил героя = убил игрока. Карта останется просто неисследованной.
(04.10.2023 00:05)StasPV Wrote:  А в гильдии воров что пишет про компов, какое поведение у них, "строитель"?
Чтобы в Гильдии Воров была какая-то более или менее подробная информация - должно быть побольше городов под контролем игрока... 96
(04.10.2023 00:05)StasPV Wrote:  Помню ещё кто то писал про радиус ИИ, который на производительность и длительность хода влияет, ты его не менял?
Да сменил я его на содовский ещё в первой версии мода. Толку от него как от козла молока. Можно было без проблем оставить воговский, умнее это ИИ не делает.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
04.10.2023 14:25
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 118
Post: #145

Блин, я походу понял о чем речь96-copy. Последние страницы ты говоришь про новый режим без городов, а я при этом говорю про обычные ванильные режимы с городами, поэтому и не мог выехать в проблему с таверной и все вытекающее.

Инфы про ИИ особо в сети немного, тут больше личные наблюдения. В последнюю неделю игры, когда комп остаётся без городов, то он либо тупит, занимается захватом всяких шахт и дохнет, либо сломя голову мчит всеми оставшимися героями на какой-то город, с заведомо проигрышный результатом, убивается и тоже дохнет. Тут бы тоже поизучать логику ИИ. А есть возможность сделать скрипт, чтоб в какой-то момент поставить один единственный город на карте, и посмотреть как ИИ отреагирует? В зоне его видимости. Может там алгоритм какой на случай если городов у компа не осталось. Иначе придется что то костылить, например генерировать в процессе игры на карте героев компу, с армией соответствующей армии героя человека или что то подобное.
(This post was last modified: 04.10.2023 21:39 by StasPV.)
04.10.2023 19:56
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #146

Quote:В чём смысл её ставить, если ИИ, как я уже сказал, не заходит в неё?

Я думаю, нужно поставить хук в 528553. В еах будет лежать тип объекта - если это таверна, и у текущего игрока (указатель на структуру в 69CCFC, смещение - 1 байт, размер - 1 байт) меньше 8 героев, то в качестве возвращаемого значения (еах) можно записать: ценность армии лучшего из двух доступных героев (считается с помощью функции 44A950) + какой-то бонус за специфику карты (отсутствие городов) и за параметры героя - ценность 2500 золотых для текущего игрока (указатель на структуру в 69CCFC, смещение - 0x128, по одному double на каждый ресурс - соответственно, ещё + 0x30, чтобы дойти до ценности золота. Эту ценность нужно умножить на 2500, это число сохранено в самой игре в дробном виде как 8 байт по адресу 6405C0). В качестве адреса возврата в код подойдёт 5285A1.

Скорее всего, этого будет достаточно для того, чтобы ИИ начал воспринимать таверны. В функции, где я предлагаю поставить хук, рассчитываются ценности объектов на карте, и таверна просто не учтена (результат всегда 0). Если он будет положительным, ИИ будет посещать объект.


Quote:Даже непонятно, что произойдёт, если ИИ её всё-таки посетит - ничего или он всё же наймёт героя.

Судя по коду, ничего - там стоит проверка, запрещающая ИИ нанимать героев. Адрес проверки: 4A9D5A. Думаю, её трогать не стоит, так как после меняются параметры мыши и вызывается диалог найма героев. Для ИИ можно просто снимать деньги (если они есть) и вызывать функцию создания героя поверх таверны - 4D7B00. Параметров 3: указатель на структуру нанимаемого героя, номер игрока и координаты, сохраненные в виде 4 байт. Чтобы отловить посещение таверны, можно поставить хук по адресу проверки и брать координаты из (ebp + 0x10). Является ли игрок ИИ, можно прочитать из регистра al.


Создал новый глобальный мод: WoG Ultra Edition
05.10.2023 05:18
Find all posts by this user Quote this message in a reply
XEPOMAHT Online
Moderators

Posts: 2271
Post: #147

(05.10.2023 05:18)Raistlin Wrote:  Я думаю, нужно поставить хук в 528553.

Хук-то зачем? Достаточно перенести сам кейс - обычный патч по 2-м адресам, с добавлением нового кода для ветки таверны вместо ухода в дефолтный код. Т.к. при хуке упадёт скорость обработки, незначительно, но всё же...

(05.10.2023 05:18)Raistlin Wrote:  Думаю, её трогать не стоит, так как после меняются параметры мыши и вызывается диалог найма героев.

А ещё проверяются координаты на занятость клетки таверны, т.е. проверку на ИИ-чность всё равно придётся сдвинуть, чтобы небыло дублежа кода.

Для ИИ можно вообще не заморичиваться с тавернами и давать орду халявных героев в зависимости от сложности на старте карты прямо на том месте, где был город.
05.10.2023 08:24
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #148

Quote:Хук-то зачем? Достаточно перенести сам кейс - обычный патч по 2-м адресам, с добавлением нового кода для ветки таверны вместо ухода в дефолтный код. Т.к. при хуке упадёт скорость обработки, незначительно, но всё же...

Согласен, так лучше. Я просто хотел подсказать, где стоит покопать, а сама реализация может быть любой.


Quote:А ещё проверяются координаты на занятость клетки таверны, т.е. проверку на ИИ-чность всё равно придётся сдвинуть, чтобы небыло дублежа кода.

Действительно, спасибо за уточнение. 132


Quote:Для ИИ можно вообще не заморичиваться с тавернами и давать орду халявных героев в зависимости от сложности на старте карты прямо на том месте, где был город.

Через пару месяцев игры орда всё-таки закончится, так что пусть лучше ИИ умеет нанимать героев. Расчёт, предложенный мной, сравним с расчётом ценности тюрьмы и не сложен в реализации. Можно его доработать, но для более-менее приемлемой игры этого должно хватить.


Создал новый глобальный мод: WoG Ultra Edition
05.10.2023 08:37
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #149

Какой образованный нынче мододел пошёл, пять очков форы старичкам даст. 166 В наше время тыкались в код как слепые котята...
Молодцы, даже не пришлось самому это искать 132 (повторно, так как я там вроде был - ещё когда делал функцию посещения любого объекта на расстоянии)
(05.10.2023 08:24)XEPOMAHT Wrote:  Хук-то зачем? Достаточно перенести сам кейс - обычный патч по 2-м адресам, с добавлением нового кода для ветки таверны вместо ухода в дефолтный код.
Ну это только если хотим изменить параметры приоритета и для других объектов. А для одного можно пока обойтись и хуком.
(05.10.2023 08:24)XEPOMAHT Wrote:  Т.к. при хуке упадёт скорость обработки, незначительно, но всё же...
Я бы сказал, настолько незначительно, что абсолютно ничтожно. Пара команд (cmp и je) никак не может хоть насколько-нибудь заметно перегрузить эту функцию.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
07.10.2023 22:54
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group