Current time: 04.11.2026, 06:32 Hello There, Guest! (Login — Register)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Ваши вопросы по ERM-скриптам
Author Message
Berserker Offline
Administrators

Posts: 16807
Post: #9376

Лучше так не делать внутри папки мода. Можно так делать во вне Mods, но зачем?


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.01.2026 03:25
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1418
Post: #9377

Berserker, это всё из-за лени Lazy3
Некоторые ребята изъявили желание стримить мою карту на YouTube. А у меня, в моде, есть музыка, которая максимально подходит под некоторые бои и некоторые локации, но!!! - она с авторскими правами.
Равноценной замены без АП я так и не нашёл. Потому решил, что оставлю два варианта, а при загрузке игры дам игроку выбор, какую музыку слушать. Треки, лежащие в моём моде, в папке mp3, имеют приоритет над основной папкой mp3, а потому при одинаковых именах треков, будут звучать именно они. Вот я и подумал, что если я заменю имя папки в моём моде с mp3 на, скажем, track, то ERA не будет её видеть, а значит будет читать имена треков с основной папки. То есть: одной строчкой кода можно было создать опциональность. А так пришлось инициализировать переменную, хранящую выбор игрока и выставлять на каждый трек с АП условие.

Но я это уже сделал. Самое смешное, что на это ушло меньше времени, чем на объяснение всем, кто захотел помочь, зачем мне это надо 96


Карта-мод "Война на Холсте"
11.01.2026 04:32
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16807
Post: #9378

RedirectFile на mp3? )


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.01.2026 06:03
Find all posts by this user Quote this message in a reply
ArKan Offline

Posts: 251
Post: #9379

Изменил ежедневный доход зданий.

Подскажите, как изменить описание, чтобы соответствовало?
30.10.2026 02:05
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2509
Post: #9380

(30.10.2026 02:05)ArKan Wrote:  Изменил ежедневный доход зданий.

Подскажите, как изменить описание, чтобы соответствовало?

Золотой доход города можно изменить в коде игры (например с Тифоном учитываются налогоплательщики из гарнизона города в рассчёте недельного дохода от конкретного города, а так же функционал банка Бастиона), в ERM такого нет - только какими-то костылями менять соответсвующие цифры в обзоре королевства и самом экране города. Новый ресивер в !!СА добавить можно, но делать наверное никто не будет.
(This post was last modified: 30.10.2026 16:27 by XEPOMAHT.)
30.10.2026 16:25
Find all posts by this user Quote this message in a reply
ArKan Offline

Posts: 251
Post: #9381

Но есть же файл, где прописано описание зданий? Его же можно в моде подменить вроде.
30.10.2026 18:34
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2509
Post: #9382

(30.10.2026 18:34)ArKan Wrote:  Но есть же файл, где прописано описание зданий? Его же можно в моде подменить вроде.

Описания зданий, одинаковых для всех городов - в BLDGNEUT.TXT
Описания спец. зданий - в BLDGSPEC.TXT
Описания жилищ обитателей городов - в Dwelling.txt
30.10.2026 23:26
Find all posts by this user Quote this message in a reply
ArKan Offline

Posts: 251
Post: #9383

Спасибо!

Ещё мне нужно сделать, чтобы битва проходила на облачном ландшафте, но не могу этого добиться.
Как вариант - перед битвой разместит его на земле - это легко, но не получается его убрать после битвы.
Хотелось бы, конечно, обойтись без этого костыля.
01.11.2026 23:58
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2509
Post: #9384

(01.11.2026 23:58)ArKan Wrote:  Ещё мне нужно сделать, чтобы битва проходила на облачном ландшафте, но не могу этого добиться.
Как вариант - перед битвой разместит его на земле - это легко, но не получается его убрать после битвы.
Хотелось бы, конечно, обойтись без этого костыля.

В вог-триггере настройки поля боя получаешь комбат-менеджер:

Code:
mov eax, dword [699420h]

и пишешь в его структуру номерок магических облаков:

Code:
mov dword [eax+53C0h], Магические_Облака

Магические_Облака    = 9

Главное, чтобы твой код срабатывал до записи имени pcx-а картинки боевого поля в BackPcxName, иначе придётся менять это поле в структуре самому (ну и выгружать из памяти pcx для подзагрузки pcx от магических облаков).
02.11.2026 18:16
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1418
Post: #9385

(01.11.2026 23:58)ArKan Wrote:  Спасибо!

Ещё мне нужно сделать, чтобы битва проходила на облачном ландшафте, но не могу этого добиться.
Как вариант - перед битвой разместит его на земле - это легко, но не получается его убрать после битвы.
Хотелось бы, конечно, обойтись без этого костыля.
В Хелпе же есть:
!!BA:B#
Установить фон # поля битвы.


Карта-мод "Война на Холсте"
02.11.2026 22:02
Find all posts by this user Quote this message in a reply
ArKan Offline

Posts: 251
Post: #9386

* Ищет в структуре CombatManager вокруг 0x53C0 буфер BackPcxName с префиксом "CMBK"
* и заменяет его на "CMBKCLD.PCX" — 1145851196 в 4-байтовом виде для "CLD.":
!?FU(air_SetCombatMgrMagicClouds);
!!FU&i^air_active_battle^=0:E;
!!UN:C6919200/4/?(cmbMgr:y);
!!if&(cmbMgr)<>0:;
    * 1. Записываем 9 = Магические Облака в поле specialTerrain по смещению 0x53C0 = 21440:
    !!UN:C(cmbMgr)/21440/4/9;

    * 2. Находим буфер BackPcxName "CMBK....PCX" рядом с 21440 и меняем середину имени на "CLD.":
    !!re (off:y)/21360/21480:;
    !!UN:C(cmbMgr)/(off)/4/?(sig:y);
    * "CMBK" в little-endian = 0x4B424D43 = 1262636355:
    !!if&(sig)=1262636355:;
    !!VR(midOff:y):S(off) +4;
    * Записываем "CLD." = 0x2E444C43 = 776227907:
    !!UN:C(cmbMgr)/(midOff)/4/776227907;
    !!VR(extOff:y):S(off) +8;
    * Записываем "PCX\0" = 0x00584350 = 5784400:
    !!UN:C(cmbMgr)/(extOff)/4/5784400;
    !!br:;
    !!en:;
    !!en:;
!!en:;

!?FU(OnSetupBattlefield)&i^air_active_battle^=1;
!!FU(air_SetCombatMgrMagicClouds):P;
!!BA:B20;




Гляньте, что не так.
Yesterday 02:36
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2509
Post: #9387

(Yesterday 02:36)ArKan Wrote:      * 2. Находим буфер BackPcxName "CMBK....PCX" рядом с 21440 и меняем середину имени на "CLD.":
    !!re (off:y)/21360/21480:;
    !!UN:C(cmbMgr)/(off)/4/?(sig:y);
    * "CMBK" в little-endian = 0x4B424D43 = 1262636355:
    !!if&(sig)=1262636355:;
    !!VR(midOff:y):S(off) +4;
    * Записываем "CLD." = 0x2E444C43 = 776227907:
    !!UN:C(cmbMgr)/(midOff)/4/776227907;
    !!VR(extOff:y):S(off) +8;
    * Записываем "PCX\0" = 0x00584350 = 5784400:
    !!UN:C(cmbMgr)/(extOff)/4/5784400;

Вместо этой колбасы, поставь хук на 463833h, создай строку в памяти и записывай вместо оригинального кода:

Code:
mov dword [esi+_CombatMan_.BackPcxName], eax

что-то вроде этого:

Code:
mov dword [esi+_CombatMan_.BackPcxName], Твой_баттелфилд

Твой_баттелфилд db 'CMBKCLD.PCX',0
Yesterday 03:02
Find all posts by this user Quote this message in a reply
ArKan Offline

Posts: 251
Post: #9388

Спасибо!
Yesterday 14:00
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2026 MyBB Group

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'threadviews' (errno: 2)
Query:
INSERT INTO threadviews (tid) VALUES('541')