Berserker
Posts: 16657
|
|
08.12.2021 18:27 |
|
AnT
Posts: 35
|
Если изменить доп. прирост существ в тифоне - то ничего не меняется при постройке строений. Проверял на грифонах и постройке Бастиона грифонов (так и осталось +3 грифона).
Кто-нибудь это смог исправить?
|
|
20.12.2021 20:45 |
|
major
Posts: 146
|
Появилось несколько отчетов по багам в тифоне. Не знаю, нужны ли и будут исправляться. Проверял на 2.7 и typhonz.
1. Не отображается кол-во доп. ресурсов при найме существ, т.е. кроме золота ничего не показывает, хотя при найме исправно списывает.
2. Сломалась способность Стрельбы вплотную, полученная через опыт. Врожденная, через галочку в тифоне, исправно работает.
3. Не работает Ответный выстрел. Один раз правда сработало, когда стрелок вместо выстрела подошел и ударил врукопашную.
|
|
22.03.2022 12:31 |
|
XEPOMAHT
Posts: 2356
|
(22.03.2022 12:31)major Wrote: 1. Не отображается кол-во доп. ресурсов при найме существ, т.е. кроме золота ничего не показывает, хотя при найме исправно списывает.
Исправлялось в Тифоне 3. Увы, Берсеркер обрабатывает структуру монстров в окне найма ещё до того, как таблица монстров переносится Тифоном.
(22.03.2022 12:31)major Wrote: 2. Сломалась способность Стрельбы вплотную, полученная через опыт. Врожденная, через галочку в тифоне, исправно работает.
В ВоГе она наглухо привязана к снайперству. Просто так работать не будет.
(22.03.2022 12:31)major Wrote: 3. Не работает Ответный выстрел. Один раз правда сработало, когда стрелок вместо выстрела подошел и ударил врукопашную.
В Тифоне 3 проверял - работает.
|
|
22.03.2022 13:00 |
|
major
Posts: 146
|
(22.03.2022 13:00)XEPOMAHT Wrote: В ВоГе она наглухо привязана к снайперству. Просто так работать не будет.
Проверял со всеми улучшениями стрельбы. Дистанция, преграды. Все равно не работает.
|
|
23.03.2022 06:14 |
|
Aln
Posts: 15
|
Исправлялось в Тифоне 3.
В Тифоне 3 проверял - работает.
Приветствую, я так понимаю Typhon v3, только для Era+, с новыми городами?
(This post was last modified: 07.08.2022 17:15 by Aln.)
|
|
07.08.2022 17:13 |
|
Berserker
Posts: 16657
|
|
07.08.2022 18:30 |
|
XEPOMAHT
Posts: 2356
|
(07.08.2022 17:13)Aln Wrote: я так понимаю Typhon v3, только для Era+, с новыми городами?
Да, Тифон 3 работает только в ЭРА+. Для добавления новых монстров в купе с новыми городами придётся установить ЭРУ+.
(07.08.2022 18:30)Berserker Wrote: Перенос происходит прямо перед показом диалога?
В AfterWoG-е. Т.е. сначала таблицу переносит ВоГ, увеличивая количество монстров до 197, затем её же второй раз переносит Тифон, увеличивая уже до 1000. Т.е. сама ЭРА похоже видит только самое первое увеличение структуры монстров, поэтому мне в Тифоне 3 пришлось "сказать" эровскому движку, что Тифоновский - первый перенос структуры, хотя на самом деле это не так и в короткий момент времени (т.е. до тифоновских патчей на новых монстров) era.dll будет при попытке обращения к структуре монстров попадать в молоко, точнее в незагруженные из mop-файлов данные в виртуальной памяти, т.к. в начале происходит перенос, а mop-файл с текстовиками монстров грузятся немного позже.
Использование базового адреса на структуру в era.dll решило бы эту проблему. Т.к. сама игра получает доступ к структуре монстров именно с базового адреса (но вот ВоГ да - грешен с использованием прямого адреса, из-за чего 99% всех адресов для переноса структуры монстров - на воговский код, в чистом SoD-е перенос структуры монстров - копейки, как будто сами разработчики в NWC предусматривали и добавление новых монстров в игру, и так же новых городов в игру без изменения кода игры, в отличии от ВоГа, в котором потребовалось сменить тонны кода - к сожалению Слава Сальников предусмотрел только добавление новых героев до лимита в 199, количество же монстров и городов в ВоГе жёстко закорочено воговским кодом).
|
|
08.08.2022 01:17 |
|
XEPOMAHT
Posts: 2356
|
(08.08.2022 02:59)Raistlin Wrote: а по какой причине число героев не может превышать 199?
Тогда ERM-триггеры, завязанные на номерах героев, придётся переделывать. Т.е. прощай ERM, здравствуй LUA. В том смысле, что ERM-скрипты, основанные на триггерах, завязанных на номерах героев, начнут срабатывать не для тех героев и вообще не в тех случаях, для которых они установлены. В общем, ERM-код без смены номеров соответствующих функций-триггеров, просто сойдёт сума. Например тот же ERM-триггер, катастрофически замедляющий ход ИИ-героев на карте, будет вызывать скрипты с соседних ERM-функций и приводить к фатальным ошибкам или просто к какой-нибудь охинее на карте.
|
|
08.08.2022 03:45 |
|
Berserker
Posts: 16657
|
|
08.08.2022 07:53 |
|
Berserker
Posts: 16657
|
Проверил. По коду ничего не игнорирует. А код Typhon 3 ты не публиковал.
В событии OnAfterStructRelocations (после релокаций структур), которое срабатывает после AfterWoG я получаю конечные адреса массивов:
Code:
procedure OnAfterStructRelocations (Event: GameExt.PEvent); stdcall;
begin
SecSkillNames := GameExt.GetRealAddr(SecSkillNames);
SecSkillDescs := GameExt.GetRealAddr(SecSkillDescs);
SecSkillTexts := GameExt.GetRealAddr(SecSkillTexts);
MonInfos := GameExt.GetRealAddr(MonInfos); // Вот здесь
ArtInfos := ppointer(ArtInfos)^;
Spells := GameExt.GetRealAddr(Spells);
end;
А в реализации перехвата диалога найма монстров использую сохранённый указатель:
Code:
function GetMonCost (MonType: integer; out ResType, ResCost: integer): integer;
var
i: integer;
begin
result := Heroes.MonInfos[MonType].CostRes[Heroes.RES_GOLD];
ResType := -1;
ResCost := 0;
for i := Heroes.RES_FIRST to Heroes.RES_LAST - 1 do begin
if Heroes.MonInfos[MonType].CostRes[i] <> 0 then begin
ResType := i;
ResCost := Heroes.MonInfos[MonType].CostRes[i];
exit;
end;
end;
end;
Quote:Как раз в TyphonZ оно и не работает так как нужно.
Примеров не было. У Third Upgrades Mod проблем вроде бы нет.
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
08.08.2022 10:53 |
|
XEPOMAHT
Posts: 2356
|
(08.08.2022 10:53)Berserker Wrote: В событии OnAfterStructRelocations (после релокаций структур), которое срабатывает после AfterWoG я получаю конечные адреса массивов:
Тифоновский патч на структуру монстров срабатывает сразу после загрузки era.dll в 701013h, скорее всего эровское событие OnAfterStructRelocations выполняется где-то в моменте загрузки era.dll, а его следует выполнять позднее, т.к. в эровском AfterWoG приоритет исполнения кода зашит в самой era.dll, поэтому единственное решение - выполнить код уже после era.dll. Так было сделано Мастером, я данную вещь в Тифоне не менял (т.к. все патчи в AfterWoG-е Тифона написаны именно под это место и в другом месте велик риск, что они будут затёрты другими патчами).
(08.08.2022 10:53)Berserker Wrote: Примеров не было. У Third Upgrades Mod проблем вроде бы нет.
Там Аметист, а не Тифон. В Аметисте была та же проблема, но Маячок вроде как-то исправил.
|
|
08.08.2022 11:35 |
|