AlexSpl писал(а):
- Код: Выделить всё
[...]
result = *(char *)(this + 4) + a2 + 8 * *(char *)(this + 4) - 17;
[...]
?
(6A8344h - 6A8160h) / 1Ch = 17
Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
|
Re: Улучшение ИИAlexSpl писал(а):
? (6A8344h - 6A8160h) / 1Ch = 17 |
|
Re: Улучшение ИИThe branch is there, but there is indeed a decompilation error, you are right.
The -17 part is the error because the contiguous arrays are for building costs between 0 ~ 29... seems IDA tries to do a bit of optimization and gets it wrong. Correct decompilation could be...
It gets it right however in sub_5C1580
Puzzling, thanks for sharing! |
Re: Улучшение ИИА как проверить что здание может быть построено в городе?
По дереву отстройки. Пробую на 111 так:
Получаю всегда ложь, даже для ГМ1, BuildingID =0 . Пробую так:
Наоборот получаю всегда истина, даже для улучшенного 7 уровня, BuildingID = 43. |
Re: Улучшение ИИЭто будет метод IsBuildingBuilt:
И он работает верно, возвращает было ли построено это здание. |
Re: Улучшение ИИДа именно на текущем ходу, и без учета ресурсов, это я отдельно проверяю, там вроде все ок:
|
Re: Улучшение ИИТогда нужно проверять следующие поля: AlreadyBuiltThisTurn, BuiltShow, BuiltBonus, BMask. Конечно, хотелось бы найти уже существующую функцию.
Посмотрите на аналогичную для AI: CanAIBuildThis() (sub_5C1120). |
Re: Улучшение ИИКак-то она тоже странно работает, иногда выдает верные значения иногда нет:
... Исправил BOOL на bool и все заработало. |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1