Someday admin will turn on all functions for you
Did you saw somewhen teleserial "Due South" ?
Объявления | ||
---|---|---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Как создать плагин для HD модаSomeday admin will turn on all functions for you
Did you saw somewhen teleserial "Due South" ? |
|
Re: Как создать плагин для HD модаA few times, but I was not a big fan. Funny you know this series)
|
Re: Как создать плагин для HD модаЗаинтересовало, каким образом используются AI_value в SPTRAITS.txt.
Многим заклинаниям NWC справедливо поставили низкие оценки. Оказывается, они понимали, что многие заклинания не айс, но тем не менее, не стали их усиливать. Однако есть и заклинания, которым поставлены явно завышенные оценки - Воздушный щит, Гипноз, Вызов элементалов. А каким-то заклинаниям - заниженные оценки. Тут, возможно, есть потенциал, для того чтобы улучшить работу AI. Правда, не все так просто - например, Землетрясению сопоставлено минимальное AI_value, но AI его применяет, и очень даже неплохо, когда нужно. То есть каким образом используется AI_value, пока мало понятно. Кстати, для TownPortal, оказывается, AI value - 5/70/70 в зависимости от уровня Магии земли. Так что меняю в плагине и эти значения - на 40/50/60, чисто интуитивно. Обновил плагин NewTownPortal, добавил описания на русском. viewtopic.php?f=56&t=529&start=4 |
Re: Как создать плагин для HD модаУдалось подойти к пониманию того, как, например, можно вмешаться в процесс вычисления AI "выгоды" заклинания Blind, напишу позже.
|
Re: Как создать плагин для HD модаПроапдейтил viewtopic.php?f=56&t=532&p=16981#p16981
Смысл многих переменных стал понятен, есть очень интересные моменты. 1) Перед каждой битвой с участием AI комп вычисляет соотношение сил армий, причем чем ближе оно к 1, тем большее число сопоставляет компьютер. То есть он рассматривает эту величину приблизительно как ожидаемую продолжительность битвы (вернее, ее решающей фазы). 2) Комп создает и апдейтит набор битов (1 набор на всю армию - армию противника компа), отражающих возможность каждого отряда "дотянуться" до противника. Данная система использует поля _CombatMonster_ (это уже для своей армии - для каждого отряда): 0x544 - здесь набор битов, определяющих до каких номеров (отрядов) противника дотягивается данный наш отряд. 0x538 - адрес одного из отрядов, который наш отряд мог бы ударить. У отрядов, уже сделавших ход, бит 0x544 все равно ненулевой, если в следующий ход они смогли бы нанести удар, хотя бы гипотетически. Зато отряд, который в данный момент должен ходить имеет данный бит равным нулю. Только перед началом битвы данный отряд иногда имеет бит равный 1. Именно поэтому комп не может наложить Жажду крови, Палача и др. на юнита и сразу же пойти и ударить данным юнитом. Еще один момент - у стрелков 0x544 нулевой, за исключением случаев рукопашной, только перед началом битвы он ненулевой. Вообще, возможно, вся данная система далека от безупречной работы и, как и многие другие участки кода в игре, приводит к тому, что комп иногда делает не самые полезные для себя вещи (как говорится в народе, откровенно тупит). Во всяком случае, для процедур типа combatMan_00437D50_BloodlustWeightAI можно было бы безболезненно и с пользой заменить использование поля 0x538 на актуальный расчет возможности дотянуться до противника (такой код все равно в игре где-то есть). |
|
Re: Как создать плагин для HD модаAnyone up for re-creating Market of Time? Doing it for human is not too complicated but I don't know how to handle AI.
There are a few more things to do of course but this is base requirement. I added this function to _Hero_ struct to get started.
|
Re: Как создать плагин для HD модаFirstly, I never write code related to event when Hero enter some map object.
However, procedure UnlearnSkill will be the same for AI, I think (may be even no need to change secondary_skill_show[]). Simply, one should check is it AI or Human. Only interesing moment I see - which skill should be remembered by AI. It is related to one AI improvement which I would like to make in future - algorithm for AI to favorably choose sec. skills at Level-ups. It could be simple algorithm or simply set of number prioritets for sec. skills. If you want I can propose for you procedure
Do you need this ? BTW, do you really think that the aim of Market of time (in NWC plans) - forget sec. skill ? |
Re: Как создать плагин для HD модаAlso, one should introduce "weight" of this map object for AI.
Procedure should be changed a little bit - //----- (00528520) -------------------------------------------------------- int __fastcall AICalculateMapPosWeight(_Hero_ *hp, signed int *moveDist, int packedmapitem) However, it is strange a little bit for AI - consider Market of Time as valuable object if AI always choose sec. skills horrible So, I think if one introduce Market of Time into Game, one also should modify procedure for AI when it choose sec. skill at Level-ups. |
|
Re: Как создать плагин для HD модаYes, adding weight to the building for AI is part of the process.
We also need to add it to RMG function I guess. But this one is for later I guess It is difficult to be certain what Market of Time was supposed to be since NWC themselves were not sure (3rd post). Цитата: I believe it was going to be a marketplace that appeared and disappeared on the map according to a schedule. I'm 100% open to discuss what it does, but I think fans in general believe it was supposed to let you remove secondary skills. In the latter case, int getWorstSecSkill(*Hero) definitely makes sense - so that could help AI decide whether to go to the building in the first place. |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2