Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Улучшение ИИСогласно декомпилятору, данные в ST(0) далее используются (передаются в функции дальше). Но на самом деле это неправда - не используются они дальше. Так что в целом вы правы - но были бы неправы, если бы декомпилятор был прав )))
|
Re: Улучшение ИИЦитата: This function modifies the floating-point rounding mode to 'truncate', performs the conversion, and then resets the rounding mode to its original state prior to the cast. This code sequence is a detriment to application performance because modifying the rounding mode requires use of the long-latency FLDCW (Floating Point Load Control Word) instruction. Так что _ftol() - это плохо |
Re: Улучшение ИИЦитата: Как это исправить? Думаю, нужно поставить брейкпоинт на Necromancy_GetPower и посмотреть, в чём там дело. На армию компа тоже можно поставить. |
Re: Улучшение ИИas239 писал(а): Как это исправить? RosеKavalier исправлял же. Я тоже правил, на свой манер. По Роузу (давно присылал, человеческим языком еще было написано):
А вот мой "багфикс" для исправления переоценки ИИ опасности крепостного рва:
|
Re: Улучшение ИИ2Ben80: По фиксу Necromancy всё понятно. Армия удалялась до расчёта поднимаемых существ. А почему оценку (?) опасности крепостного рва делим именно на 2?
|
Re: Улучшение ИИAlexSpl писал(а): Вопрос уместный. Можно было бы конечно делить на 4 (думаю, ты это имеешь в виду). Но, во-первых, это дань уважения оригиналу (все же мы остаемся к нему ближе). Во-вторых, это все-таки имеет смысл. Скажем, у нас (вернее, у ИИ) в штурмующей армии есть отряд, который имеет ХП в несколько раз больше, чем урон рва, а есть такой, ХП которого едва его превышает. Если у нас будет условие (ХП > Дамаг рва), то может быть ситуация, когда в ров к единственной дырке в стене идет слабый стек, толку от чего не будет никакого. А при условии (ХП / 2 > Дамаг рва) все получится правильно - в ров пойдет сильный стек. AlexSpl писал(а): Это не оценка, да. Это абсолютно строгое условие - монстры идут в ров, только если имеют ХП стека минимум в 4 раза больше, чем дамаг рва. Так в оригинале. Последний раз редактировалось Ben80 08 май 2020, 10:28, всего редактировалось 1 раз.
|
Re: Улучшение ИИВот еще маленький-маленький фикс для веса постройки Усилителя черной магии:
В оригинале ИИ смотрел только, есть ли у него Некроманты. А про Рыцарей Смерти забыл. То есть получается, если у ИИ-некра герои - только Рыцари Смерти, то Усилитель он строить вообще не будет. |
|
Re: Улучшение ИИBen80 писал(а): all those "protected", "public" and so on (object properties) ? In hacking all properties are public )) In principle we could use just C, not C++... Though, to tell the truth I have used sometimes some C++ abilities. For example, passing an array by reference to procedures. P.S. Thank you for H3API. I typically cast with DWORD() or (DWORD) but when I really want clarity I will use reinterpret_cast<> or similar. protected members in H3API are there to reduce clutter by hiding things that are either not necessary or unknown/undefined/mislabeled. Whenever I want to do an ASM hook, I prefer to write it directly in assembly myself rather than use the convenient-but-not-so-convenient patcher_x86 ASM hook. Suggestions and additions to H3API are always welcome) |
Re: Улучшение ИИПравильно я понимаю, что если ST(0) не "очищается" в коде, то декомпилятор при вызове далее вложенных функций всегда считает, что он туда передает "лишний" floating-point аргумент ?
Или я невнимательно читаю то, что AlexSpl пишет ? |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2