(12.12.2019 22:11)XEPOMAHT Wrote: [ -> ]Нужно будет выбрать нераспакованный файл кампаний. Папка с картами создастся сама там же рядом.
Над импортом не работал (да и не просил никто - народ предпочитает ждать хотовский редактор кампаний).
Я даже не знал, что такая прога есть) Спасибо огромное - намного легче теперь будет.
Однако порядковые номера им не присваиваются. Хотя я понимаю, какая и за какой должна быть.
(12.12.2019 22:36)daemon_n Wrote: [ -> ]Однако порядковые номера им не присваиваются. Хотя я понимаю, какая и за какой должна быть.
В "операциях" перед экспортом карт есть галочка "переименование карт". Без неё экспорт пройдёт под стандартными именами. С ней - под теми, которые нужны Берсеркеру.
Great a new ERA version! Thanks for your hard work.
On the weekend I have some time to test and report if I find anything.
PerryR, thank you! It would be great!
XEPOMAHT, большое спасибо, опробую утилиту. Ты тоже разобрал формат кампаний методом тыка? ) В Heroes 3\Help\h3c format.txt мои изыскания.
XEPOMAHT, отличная программа! А как ты определяешь индекс карты/зоны в кампании?
(13.12.2019 00:01)Berserker Wrote: [ -> ]Ты тоже разобрал формат кампаний методом тыка?
Просто давно ещё, лет 5 назад, заинтересовали отличия хотовского формата компаний от содовского и причины, почему они не выкладывают редактор. Пошурсил по интернету, нашёл какой-то текстовый описатель (хорошо, что на русском языке, в английском точно ничего бы не понял бы и не сделал бы программу), прошелся с его помощью по содержимому *.h3c шестнадцатеричным редактором, дописал чего не хватало, потом в Дельфе оформил в программном виде... По большей части методом тыка я написал эту программу (т.к. программировать умею в очень общих чертах), по разбору форматов разных игр у меня опыта поболее, поэтому особых сложностей не было. Помню, что написана была за три недели после нового года. В общем, дела давно минувших дней, придания старины глубокой.... Хотел ещё чтение карт написать, но (при том, что формат карт так же разобран на 100%) не стал - нет ни готовой бесплатной 2Д-среды, функционирующей под седьмой дельфой без танцев с бубном, ни времени всё это перегонять в код (а там объёмы данных не хилые, плюс ещё повторять весь функционал оригинального редактора - это дело только профессионального программиста, а не меня).
В итоге: хотовский формат полностью соответствуют соду, а почему не выкладывают - скорее всего потому что у них несколько таблиц в формате кампаний так и не были расширены (чтобы картоделы не наклепали кучу кампаний раньше времени).
(13.12.2019 00:04)daemon_n Wrote: [ -> ]Результат не меняется.
Должен меняться. Странно.
(13.12.2019 00:05)Berserker Wrote: [ -> ]А как ты определяешь индекс карты/зоны в кампании?
Вроде бы никак. Там обычная таблица данных для всех карт кампании, номер строки из неё и есть этот самый индекс. Соответственно, данные идут последовательно и таблица может содержать пустые данные (которые проверяются традиционным для Третьих Героев нулём перед каждым блоком данных).
Точно, как я мог забыть! Спасибо )
Code:
:
TZone = record
FileName: TString;
if FileName.Length > 0 then
FileSize: integer;
RequiredZones: byte; // Zone prerequisites; bitmask: 1 bit for each zone
ZoneColor: byte;
DifficultyLevel: byte;
RegionRmbText: TString; // Right mouse button hint
Prologue: TZonePrologue;
Epilogue: TZoneEpilogue;
HeroesRetain: byte; // Bitmask of Experience (bit 0), Primary Skills (bit 1), Secondary Skills (bit 2), Spells (bit 3), Artifacts (bit 4)
CrossoverCreatures: array of 19 bytes; // 1 bit for every creature. Creature ID: 0..159
CrossoverArts: array of 18 bytes; // 1 bit for every artifact. Artifact ID: 0..143
StartingOpts: TStartingOpts;
end;
end;
Начал ставить 2.9.0 - вопрос возник:
не должен ли файл erm_hooker.dll быть erm_hooker.era?
у меня он именно во втором формате.
upd: .dll вариант вызывает ошибки, .era не вызывает - вывод очевиден.
Также плагин
fast upgrade stacks in town.dll был недавно обновлён
igrik'ом (ещё раз спасибо) - ныне существа не теряют весь накопленный опыт, а лишь 25%, как и задумано изначально.
Вот ссылка
Ооооо, гештальт закрыт!!! Спасибо,
Berserker! Наконец, щелчок ЛКМ на окне состояния работает - плагин просто бомба!

Я даже не понял по его названию, что он делает - просто в игре нажал на окно состояния по привычке. Я, кажется, становлюсь солидарным с
Algor'ом в реакции на обновление

Очень странное поведение при 3 активных скриптах: "Поместья I" , "Поместья II" и "Искусство Войны" (все боевые машины в один навык). Именно такая комбинация скриптов

На экране героя возникает при клике в любом месте вот что:
Однако нажатие ПКМ или ЛКМ на область названия имеющихся вторичных навыков даёт такую картину:
СейвНаЯД
Проверил на 2.8.8 - такого не было раньше. Видимо, скрипт теперь читается как "клик везде, кроме..."
UPD: нашёл такую штуку в скрипте 14 wog - tobyn's scripts.erm - видимо, не работает теперь фикс к этому багу (строка 833):
daemon_n, спасибо, нужно будет отлаживать.
Berserker, для 2.9:
- нарушение обратной совместимости скриптов из-за наименования хукера в era->dll. Ранее все скрипты писались под проверку с расширением era. Они не видят хукер с расширением dll
- необходим функционал !#UN:P5/4; - грузить скрипты только из скриптов внутри карты. Я всё не пойму - ты намерено выпилил опцию "только внутрикартовые скрипты", чтобы скрипты карты из грузились? Например: в таком случае я не понимаю до конца механизм как правильно сделать работающую обучающую карту.
- скорость циклов конечно дико радует: DO как и SN:G у меня показывает скорость 60ms (тест на тобой приложенного скрипта пару страниц назад). На 2.8.9 показатели были ~600 и ~280 ms соответственно.
igrik, расширением ошибся, исправлю на .era. Функционал !#UN:P проверю в первую очередь. И сейв daemon_n.
Здорово. Значит изменю рекламный буклет на 5-10х увеличение скорости по цене 1х ))
daemon_n, скрипт нужно менять. Он рассчитывает, что по старой механике перед каждым триггером y1..y100 или y-1...y-100 будут обнуляться. А они обнуляются перед первым триггером указанного типа теперь (перед самым первым !?CM2 из всех скриптах). Код же написан в расчёте на подобную неявную инициализацию нулём.
Строка 821.
y-6 изменяется только на 1 по условию, считается, что 0. Но выше ещё в паре мест тоже в !?CM2 изначальная y-6 уже изменена с 0 на 1.
Нельзя полагаться на состояние временных переменных в триггерах до первого присвоения значений этим переменным.
Исправление бага: в начале таким !?CM2: !!VRy-6:S0;
Berserker, просто добавить данную строку сверху?
Я просто пока ничего не понимаю с этими переменными.