Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 16.02.2020 01:49 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 17.02.2020 05:37 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 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 установлен на вторую стадию, т.е. на непосредственное открытие окна. Т.е. подмену ресурса нужно делать где-то ранее. 
Спасибо, за теорию. 
Нужен хук (  Берс, или On BeforeLoadHeroScreen).
			  
			
			
  
			
		 |  
	 
 | 
	| 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: 16788 
	
		
	 | 
	
		
			
			 
			
				 (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: 16788 
	
		
	 | 
	
		
 | 
	| 17.02.2020 15:55 | 
	
		
	 |