Current time: 18.04.2024, 14:19 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA II
» WoG Era 2: Русская и Английская версии
Author Message
XEPOMAHT Online
Moderators

Posts: 2265
Post: #4036

(16.02.2020 00:47)Berserker Wrote:  ЕРМ 2.0 (прекомпиляция для локальных именованных переменных и, при возможности, ограниченная поддержка глобальных именованных в командах и условиях).

Наконец-то в скриптах можно будет поддержка констант? Например вместо 0 можно написать CR_Копейщик?
16.02.2020 01:34
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16476
Post: #4037

В качестве не самого скоростного варианта да, но как и в множестве динамически языков, реально в роли констант выступают переменные:


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

Posts: 16476
Post: #4038

Переписан ещё кусок ядра ЕРМ интерпретатора. Прекрасно работают оригинальные макросы $...$ везде, где ранее не работали. Где-то синтаксис строже в интерпретации переменных и значений, где-то универсальнее. Сбылась и мечта Алгора. Осталась битва за ?i^...^ в параметрах ресиверов.


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

Posts: 16476
Post: #4039

Вот как бы мне передать WoG Scripts мод в цепкие лапы сообщества? professornova появился с идеей и сразу исчез.


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

Posts: 4338
Post: #4040

(17.02.2020 11:27)Algor Wrote:  Berserker, еще вопрос:
При открытии окна героя надо подменить ресурс.
Делаю
Но b.def появляется только после 2го открытия окна героя, а при первом открытии отображается a.def.
Такое чувство, что либо не успевает обновиться, либо на этапе OnLoadHeroScreen уже все закэшировано.
Есть вариант решения?

Algor, может, OnOpenHeroScreen, или нужен другой функционал?


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
17.02.2020 11:29
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Online
Moderators

Posts: 2265
Post: #4041

(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
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3880
Post: #4042

(17.02.2020 05:37)Berserker Wrote:  Осталась битва за ?i^...^ в параметрах ресиверов.
триггеров

За ресиверы уже спасибо 132
&s^...^=^bla-bla^, надо понимать, тоже работает?

ЗЫ а в оригинальных макросах сейчас вообще есть смысл?


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
17.02.2020 13:34
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3880
Post: #4043

(17.02.2020 11:38)igrik Wrote:  Если хоть как то поможет, то определение языка (английский или русский) можно использовать так (Подробнее):
Если нет и не будет штатного функционала, то поможет, спасибо.
А так хотелось бы иметь не только ru/en, но и прочие языки, если это технически возможно. В идеале, чтобы это стандартно устанавливалось в какой-нить предопределенный s^Lang^, чтобы все во всех модах могли на него ссылаться.

(17.02.2020 11:38)igrik Wrote:  Примеров то и нет. Во всяком случае я таких не видел.
Но вообще конечно же можно. Чуть позже опишу как.
ES 1.42 подождет 118

XEPOMAHT Wrote:OnLoadHeroScreen установлен на вторую стадию, т.е. на непосредственное открытие окна. Т.е. подмену ресурса нужно делать где-то ранее.
Спасибо, за теорию.
Нужен хук ( Берс, или OnBeforeLoadHeroScreen).


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
17.02.2020 13:46
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2814
Post: #4044

(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
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3880
Post: #4045

igrik, спасибище! А если в стандартный диалог добавлена btn-кнопка, её id полученные через !!SN:F^GetButtonID^/^имя_кнопки^; можно использовать как id_элемента указанные выше способом?


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
17.02.2020 14:58
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2814
Post: #4046

Точно не скажу - не проверял, но думаю что можно.


game bug fixes extended.dll || My Plugins || My GitHub
17.02.2020 15:09
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16476
Post: #4047

(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
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16476
Post: #4048

(17.02.2020 13:34)Algor Wrote:  &s^...^=^bla-bla^, надо понимать, тоже работает?

ЗЫ а в оригинальных макросах сейчас вообще есть смысл?

Algor, нет, только числовые переменные. Поддержку s^^ пока нет, ЕРМ везде со строками работает методом копипасты обработки стандартных типов z, z-, z/ert.
В условиях триггеров — да, уже работает.


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

Posts: 3880
Post: #4049

(17.02.2020 15:55)Berserker Wrote:  В условиях триггеров — да, уже работает.
Dance3Жду 2.9.11 Dance3


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
17.02.2020 17:17
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3880
Post: #4050

(17.02.2020 15:47)Berserker Wrote:  Подменять нужно в OnOpenHeroScreen, иначе основные ресурсы будут загружены.
OnOpenHeroScreen не вызывается при переключении между героями из окна героя. Попробую обойтись.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
17.02.2020 18:12
Visit this user's website 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-2024 MyBB Group