| Zur13   
   Posts: 223
 
 | 
			| 
 
				Как в ЕРМ скрипте обнаружить нажатия на кнопки Передачи всех артефактов/артефактов куклы героя или обмена всеми артефактами/обмена артефактами с кукол героев на экране встречи героев?
			 |  | 
	| 07.07.2020 00:43 |  | 
	
		| igrik   
   Posts: 2821
 
 |  | 
	| 07.07.2020 00:45 |  | 
	
		| Zur13   
   Posts: 223
 
 | 
			| 
 
				 (07.07.2020 00:45)igrik Wrote:  Кнопки которые HD-шные? 
Да, они же вроде только HD модом добавляются, в оригинале их небыло.
			 |  | 
	| 07.07.2020 01:13 |  | 
	
		| igrik   
   Posts: 2821
 
 |  | 
	| 07.07.2020 01:28 |  | 
	
		| Guru105   
 Posts: 835
 
 | 
			| 
 
				Zur13, daemon_n , проверил, !?CM3 действительно срабатывает для HD-шного окна встречи героев. 
Id кнопок можно проверить вот так (по правому клику):
 
Кнопки передачи артов 450-452.
			 
				
(This post was last modified: 07.07.2020 08:42 by Guru105.)
 |  | 
	| 07.07.2020 08:42 |  | 
	
		| Zur13   
   Posts: 223
 
 | 
			| 
 
				 (07.07.2020 03:27)daemon_n Wrote:  А CM:I?y1; ? Если не ошибаюсь, Id этих кнопок статичный. Я пытался данный код улучшить для передачи военных машин. Есть даже эрм скрипт для этого в вог скриптс. Там много авторов, но сделано через позицию курсора на экране в момент клика. Вполне все отслеживалось. Могу, конечно, путаться, но проверить стоит.
 Как пример - без hd mod id кнопок героев на кп 39-43, с - 39-46. Справка содержит инфо лишь о первых 5. Так что данный момент работает.
  (07.07.2020 08:42)wessonsm Wrote:  Zur13, daemon_n, проверил, !?CM3 действительно срабатывает для HD-шного окна встречи героев.Id кнопок можно проверить вот так (по правому клику):
 Кнопки передачи артов 450-452.
 
Подумал что в первый раз когда сам проверял что-то накосячил, но нет, проверил только что еще раз, у меня для правой кнопки мыши срабатывает перехват, а для левой - нет.
			 
				
(This post was last modified: 07.07.2020 12:50 by Zur13.)
 |  | 
	| 07.07.2020 12:48 |  | 
	
		| igrik   
   Posts: 2821
 
 | 
			| 
 
				 (07.07.2020 12:48)Zur13 Wrote:  Подумал что в первый раз когда сам проверял что-то накосячил, но нет, проверил только что еще раз, у меня для правой кнопки мыши срабатывает перехват, а для левой - нет. 
Поэтому я и написал, что для ERMа это практически неподъемная задача. Для ЛКМ.
 
Проблема вот в чём: 
- HD мод ставит перехват на функцию обработки событий в окне встречи героев и запускает свою функцию, скажем "Heroes_Meet_Proc", и выполняет сначала свои действия, а лишь потом запускает оригинальный обработчик (и то не всегда). Например, обработав действия своих кнопок, HD выходит из функции и НЕ запускает орининальный обработчик. Именно поэтому не ловится ЛКМ по нажатию на HD-шные кнопки
 
Выглядит это так:
 
Code:
 0x5B0100_Hook Heroes_Meet_Proc () {
 - сначала идет обработка действий HD по новым кнопкам. И если это кнопки HD, то выполняются действия с артами или монстрами, а потом идет возврат из этой функции минуя нижеследующую строку.
 - а только потом запускается оригинальный обработчик действий, на котором висят хуки Вога, которые и дают возможность работать ERMу
 }
 
В итоге чтобы сделать обработку ERMа до действий HD, нужно выловить динамический адрес функции Heroes_Meet_Proc (что легко сделать), и найти в ней место для ERM хука (вот в этом самая большая сложность)
 
Но я попробую что то придумать. Хотя и не обещаю, что получится.
			 
 game bug fixes extended.dll  ||  My Plugins  ||  My GitHub
 |  | 
	| 07.07.2020 13:16 |  | 
	
		| Zur13   
   Posts: 223
 
 | 
			| 
 
				 (07.07.2020 13:16)igrik Wrote:   (07.07.2020 12:48)Zur13 Wrote:  Подумал что в первый раз когда сам проверял что-то накосячил, но нет, проверил только что еще раз, у меня для правой кнопки мыши срабатывает перехват, а для левой - нет.Поэтому я и написал, что для ERMа это практически неподъемная задача. Для ЛКМ. 
 Проблема вот в чём:
 - HD мод ставит перехват на функцию обработки событий в окне встречи героев и запускает свою функцию, скажем "Heroes_Meet_Proc", и выполняет сначала свои действия, а лишь потом запускает оригинальный обработчик (и то не всегда). Например, обработав действия своих кнопок, HD выходит из функции и НЕ запускает орининальный обработчик. Именно поэтому не ловится ЛКМ по нажатию на HD-шные кнопки
 
 Выглядит это так:
 
 
Code:
 0x5B0100_Hook Heroes_Meet_Proc () {
 - сначала идет обработка действий HD по новым кнопкам. И если это кнопки HD, то выполняются действия с артами или монстрами, а потом идет возврат из этой функции минуя нижеследующую строку.
 - а только потом запускается оригинальный обработчик действий, на котором висят хуки Вога, которые и дают возможность работать ERMу
 }
 В итоге чтобы сделать обработку ERMа до действий HD, нужно выловить динамический адрес функции Heroes_Meet_Proc (что легко сделать), и найти в ней место для ERM хука (вот в этом самая большая сложность)
 
 Но я попробую что то придумать. Хотя и не обещаю, что получится.
 
Буду очень благодарен, я уже на финальной стадии, осталось чуть ИИ научить пользоваться модом и выложу раннюю версию.
			 |  | 
	| 07.07.2020 13:24 |  | 
	
		| planetavril   
 Posts: 87
 
 | 
			| 
 
				someone could create a plugin to enable blocked buildings and be able to choose which ones to unlock?for example enable:mage guild 4 and 5 for all town,hrd2,hrd2upg for the castle,extra animation for tower and inferno,disable dock and boat for necropolis
			 |  | 
	| 07.07.2020 14:17 |  | 
	
		| Berserker   
   
   Posts: 16785
 
 |  | 
	| 07.07.2020 14:21 |  | 
	
		| XEPOMAHT   
   
   Posts: 2481
 
 | 
			| 
 
				 (07.07.2020 14:21)Berserker Wrote:  зависимости строения жёстко закодированы в коде? 
Нет, там простая таблица.
  (07.07.2020 14:21)Berserker Wrote:  Есть возможность их элегантно поменять плагином? 
Да хоть ERM-ом:
 ERM-HELP Wrote:СА:B#/$Настройка зданий города:
 # = 1 – построить здание $
 # = 2 – разрушить здание $
 # = 3 – проверить, построено ли здание $ (во флаг 1)
 # = 4 – разрешить для постройки здание $
 # = 5 – запретить для постройки здание $
 # = 6 – построить здание в городе, используя внутреннюю функцию
 Шестая опция - улучшение первой, она позволяет строить многоуровневые здания (гильдия магов, к примеру) без ошибок.
 
 CD:B0/#1/#2/$
 Глобальное разрешение/запрещение построек
 #1 – тип города
 #2 – номер здания
 $ – 0=запретить, 1=разрешить
 
 CD:B1/#1/#2/$1/$2
 Установить зависимость построек для здания.
 #1 – тип города
 #2 – номер здания
 $1 – первое значение (байты 0..3), см. номера зданий
 $2 – второе значение (байты 4..5), см. номера зданий
 
 CD:B2/#1/#2/#3/#4/#5/#6/#7/#8/#9/#10/#11/#12/#13/#14/#15/#16
 Установить зависимость построек для здания
 #1 – тип города
 #2 – тип здания
 #3…#16 – номера зданий, от которых зависит здание #2
 Можно использовать как инструкцию, опускать ненужные параметры. Нельзя проверить или получить.
 
 CD:B3/#1/#2/$1/$2
 Установить исключающие зависимости для здания.
 #1 – тип города
 #2 – номер здания
 $1 – первое значение (байты 0..3), см. номера зданий
 $2 – второе значение (байты 4..5), см. номера зданий
    Но перевод строений из декораций в постройки (и наоборот) - уже кодом в функции, которая их проверяет и указывает зависимости строительства декораций (например в определённых городах при строительстве Ратуши/Префектуры/Муниципалитета автоматически строятся "дочерние" им декорации и т.д.), в ERA+ за счёт этого и были добавлены новые объекты строительства.
			 
				
(This post was last modified: 07.07.2020 14:56 by XEPOMAHT.)
 |  | 
	| 07.07.2020 14:36 |  | 
	
		| planetavril   
 Posts: 87
 
 | 
			| 
 
				It should be so?
 ZVSE
 
 !!IF:M^Now^;
 
 CA-1:B1/1;
 CA-1:B3/1;
 CA-1:B4/3;
 CD:B0/0/4/1;
 CD:B1/0/4/4/2;
 CD:B2/0/4/3/2/1;
 
				
(This post was last modified: 07.07.2020 15:41 by planetavril.)
 |  | 
	| 07.07.2020 15:19 |  | 
	
		| daemon_n   
   
   Posts: 4366
 
 |  | 
	| 07.07.2020 15:35 |  |