| Berserker   
   
   Posts: 16785
 
 |  | 
	| 16.02.2020 01:49 |  | 
	
		| Berserker   
   
   Posts: 16785
 
 |  | 
	| 17.02.2020 05:37 |  | 
	
		| Berserker   
   
   Posts: 16785
 
 |  | 
	| 17.02.2020 05:40 |  | 
	
		| XEPOMAHT   
   
   Posts: 2481
 
 | 
			| 
 
				 (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: 3883
 
 | 
			| 
 
				 (17.02.2020 05:37)Berserker Wrote:  Осталась битва за ?i^...^ в параметрах ресиверов.триггеров 
За ресиверы уже спасибо   &s^...^=^bla-bla^ , надо понимать, тоже работает?
 
ЗЫ а в оригинальных макросах сейчас вообще есть смысл?
			 
 
 |  | 
	| 17.02.2020 13:34 |  | 
	
		| Algor   
   
   Posts: 3883
 
 | 
			| 
 
				 (17.02.2020 11:38)igrik Wrote:  Если хоть как то поможет, то определение языка (английский или русский) можно использовать так (Подробнее):
 
Если нет и не будет штатного функционала, то поможет, спасибо. 
А так хотелось бы иметь не только ru/en, но и прочие языки, если это технически возможно. В идеале, чтобы это стандартно устанавливалось в какой-нить предопределенный s^Lang^, чтобы все во всех модах могли на него ссылаться.
  (17.02.2020 11:38)igrik Wrote:  Примеров то и нет. Во всяком случае я таких не видел.Но вообще конечно же можно. Чуть позже опишу как.
 
ES 1.42 подождет    XEPOMAHT Wrote:OnLoadHeroScreen установлен на вторую стадию, т.е. на непосредственное открытие окна. Т.е. подмену ресурса нужно делать где-то ранее. 
Спасибо, за теорию. 
Нужен хук ( Берс , или OnBefore LoadHeroScreen).
			 
 
 |  | 
	| 17.02.2020 13:46 |  | 
	
		| igrik   
   Posts: 2821
 
 | 
			| 
 
				 (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: 2821
 
 |  | 
	| 17.02.2020 15:09 |  | 
	
		| Berserker   
   
   Posts: 16785
 
 | 
			| 
 
				 (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: 16785
 
 |  | 
	| 17.02.2020 15:55 |  |