Berserker
Posts: 16657
|
|
16.02.2020 01:49 |
|
Berserker
Posts: 16657
|
|
17.02.2020 05:37 |
|
Berserker
Posts: 16657
|
|
17.02.2020 05:40 |
|
XEPOMAHT
Posts: 2356
|
(17.02.2020 11:27)Algor Wrote: Такое чувство, что либо не успевает обновиться, либо на этапе OnLoadHeroScreen уже все закэшировано.
Немного теории. В отрисовке любого окна происходит 3 стадии:
1. Грузятся все элементы окна с данными, дефами и прочим. Создаётся готовый диалог.
2. Что-нибудь проверяется игрой и вызывается функция рендера готового диалога.
3. Выгрузка диалога и уничтожение его данных в памяти игры.
OnLoadHeroScreen установлен на вторую стадию, т.е. на непосредственное открытие окна. Т.е. подмену ресурса нужно делать где-то ранее (т.е. установкой перехвата первой стадии - подготовительной), а восстановление оригинального ресурса - после 3-й стадии.
(This post was last modified: 17.02.2020 11:49 by XEPOMAHT.)
|
|
17.02.2020 11:46 |
|
Algor
Posts: 3881
|
(17.02.2020 05:37)Berserker Wrote: Осталась битва за ?i^...^ в параметрах ресиверов.
триггеров
За ресиверы уже спасибо
&s^...^=^bla-bla^, надо понимать, тоже работает?
ЗЫ а в оригинальных макросах сейчас вообще есть смысл?
|
|
17.02.2020 13:34 |
|
Algor
Posts: 3881
|
(17.02.2020 11:38)igrik Wrote: Если хоть как то поможет, то определение языка (английский или русский) можно использовать так (Подробнее):
Если нет и не будет штатного функционала, то поможет, спасибо.
А так хотелось бы иметь не только ru/en, но и прочие языки, если это технически возможно. В идеале, чтобы это стандартно устанавливалось в какой-нить предопределенный s^Lang^, чтобы все во всех модах могли на него ссылаться.
(17.02.2020 11:38)igrik Wrote: Примеров то и нет. Во всяком случае я таких не видел.
Но вообще конечно же можно. Чуть позже опишу как.
ES 1.42 подождет
XEPOMAHT Wrote:OnLoadHeroScreen установлен на вторую стадию, т.е. на непосредственное открытие окна. Т.е. подмену ресурса нужно делать где-то ранее.
Спасибо, за теорию.
Нужен хук ( Берс, или On BeforeLoadHeroScreen).
|
|
17.02.2020 13:46 |
|
igrik
Posts: 2819
|
(17.02.2020 11:27)Algor Wrote: ...можно ли, получив id-кнопки как-то управлять ее параметрами (положение/подсказки/активность)? Че-то не нашел инфы/примеров.
Algor, я опишу только те параметры, с которыми ERM по нормальному сможет работать.
Для DL нижеприведенный код актуален (например в DL нет способа отобразить картинку или деф зеркально)
Code:
; параметры любого элемента диалога
; текст, картинки, кнопки и т.д.
+20 (2 байта) флаги;
+22 (2 байта) состояние;
+24 (2 байта) x;
+26 (2 байта) y;
+28 (2 байта) ширина;
+30 (2 байта) высота;
+32 (4 байта) указатель на текст в статус_баре;
+36 (4 байта) указатель на текст по ПКМ;
; только для дефов и кнопок
+48 (4 байта) указатель на структуру defа;
+52 (4 байта) номер кадра дефа;
+56 (4 байта) номер кадра дефа при нажатии (если кнопка);
+60 (4 байта) отобразить зеркально: 0-нет, 1-да;
+68 (2 байта) закрывает ли диалог: 0-нет, 1-да;
Добавил в тему по UN:C
game bug fixes extended.dll || My Plugins || My GitHub
|
|
17.02.2020 14:21 |
|
igrik
Posts: 2819
|
|
17.02.2020 15:09 |
|
Berserker
Posts: 16657
|
(17.02.2020 11:27)Algor Wrote: Berserker, еще вопрос:
При открытии окна героя надо подменить ресурс.
Делаю
Но b.def появляется только после 2го открытия окна героя, а при первом открытии отображается a.def.
Такое чувство, что либо не успевает обновиться, либо на этапе OnLoadHeroScreen уже все закэшировано.
Есть вариант решения?
Подменять нужно в OnOpenHeroScreen, иначе основные ресурсы будут загружены.
(17.02.2020 11:27)Algor Wrote: И можно ли, получив id-кнопки как-то управлять ее параметрами (положение/подсказки/активность)? Че-то не нашел инфы/примеров.
Кнопка — просто элемент чужого диалога. С ходу не подскажу. Нужно вызывать обычные методы, которые в !!DL-командах используются, но самостоятельно через SN:E и от объекта диалога.
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
17.02.2020 15:47 |
|
Berserker
Posts: 16657
|
|
17.02.2020 15:55 |
|