Guru105 
 
 
		
		
		
			
			
			 
			
Posts: 835 
	
		
	 | 
	
		
 | 
	| 26.07.2020 10:39 | 
	
		
	 | 
	
		
		Elzivir 
 
 
		
		
		
			
			
			 
			
Posts: 263 
	
		
	 | 
	
		
			
			 
			
				daemon_n, wessonsm, SergOz, спасибо за советы! Кстати, смещение по x-координате действительно решило проблему. 
 
P/S: остался еще открытым вопрос с правильным отображением жилищ Порождений зла и Ифритов в обзоре королевства (сейчас они почему-то поменяны местами).
			 
			
			
			
		 |  
	 
 | 
	| 26.07.2020 17:57 | 
	
		
	 | 
	
		
		Bes 
 
 
		
		
		
			
			
			
 
 
			
Posts: 5453 
	
		
	 | 
	
		
			
			 
			
				 (25.07.2020 19:48)XEPOMAHT Wrote:   (25.07.2020 19:39)Bes Wrote:  а от кого исходники по WoG с дополнительными комментариями и описанием адресов/действий? от ShadowTheAge? 
 
От CoreWoG наверное. Что нашлось в исходниках, то и выложил. 
самое интересно, посидел я тут пару-тройку часов ночью на работе, местами одни исходники противоречат другим, в одном смещение указано на единицу раньше, в других позже... где-то одно описание, а смотришт в другом - другое. 
приходится проводить тесты, ищя правильность того или другого описания.
 
короче, постараюсь в стилистике исходников Славы (мне его подача больше подошла) на днях выложить более-менее полный вариант этих двух структур, адаптированных под ерм-справочник
			  
			
			
			
		 |  
	 
 | 
	| 31.07.2020 21:25 | 
	
		
	 | 
	
		
		Zur13 
 
 
		
		
		
			
			
			
 
 
			
Posts: 223 
	
		
	 | 
	
		
			
			 
			
				А кто-то сталкивался с тем что !!BA:S?y1; возвращает неправильное значение внутри !?BA триггера? У меня непонятно что происходит в осадах возвращает 0, при битве с монстрами возвращает 1, очень похоже что возвращает значение для предыдущей битвы. Можно ли как-то внутри BA триггера проверить осада или нет? 
			 
			
			
			
		 |  
	 
 | 
	| 02.08.2020 21:30 | 
	
		
	 | 
	
		
		Bes 
 
 
		
		
		
			
			
			
 
 
			
Posts: 5453 
	
		
	 | 
	
		
			
			 
			
				Zur13, так в справке так и написано, то в !?BA этой командой не проверить, хотя как по мне это баг WoG
 ERM-Help Wrote:Правильное значение вы получите в триггере !?BR или позже. В триггере !?BA0 значение не определено. 
Надо просто уточнить что во всех !?BA
 
Как вариант, либо проверять координаты битвы: 
1. битва с героем справа - проверять наличие героя в городе по координатам 
2. битва без героя справа - просто проверить наличие города в координатах
 А если проверять уже в самой битве, до фазы сражения? по наличию слева катапульты? там же уже работает, чёт увлёкся
			  
			
			
			
		 |  
	 
 | 
	| 02.08.2020 22:08 | 
	
		
	 | 
	
		
		SergOz 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1361 
	
		
	 | 
	
		
			
			 
			
				Zur13,  не знаю как в МП-игре, но в обычной я проверял это значение через !?BR-1; 
Выдаёт правильные результаты.
			 
			
			
  
Карта-мод "Война на Холсте"
			
		 |  
	 
 | 
	| 02.08.2020 22:10 | 
	
		
	 | 
	
		
		Zur13 
 
 
		
		
		
			
			
			
 
 
			
Posts: 223 
	
		
	 | 
	
		
			
			 
			
				 (02.08.2020 22:08)Bes Wrote:  Zur13, так в справке так и написано, то в !?BA этой командой не проверить, хотя как по мне это баг WoG 
ERM-Help Wrote:Правильное значение вы получите в триггере !?BR или позже. В триггере !?BA0 значение не определено. 
Надо просто уточнить что во всех !?BA 
 
Как вариант, либо проверять координаты битвы: 
1. битва с героем справа - проверять наличие героя в городе по координатам 
2. битва без героя справа - просто проверить наличие города в координатах 
А если проверять уже в самой битве, до фазы сражения? по наличию слева катапульты? там же уже работает, чёт увлёкся 
BR-1 мне уже слишком поздно откатывать патч. В общем я вроде придумал себе обходной вариант именно для этого случая, но плохо, что тип битвы не проверить в БА, обдумывал другой мод там это нужно.  А вообще динамический патчинг кода из ЭРМ открывает столько возможностей, ух, еще бы можно было бы динамически колбеки так же вешать из геройских функций в ЭРМ функции, а то через UN:C много кода не напишешь...
 
P.S. Наличие города по координатам в ЕРМ не проверишь нормально, если запрашивать объект по координатам, а на желтой клетке города стоит герой, то вернет не ИД объекта город, а ИД объекта герой, я уже попадался на таком. Да и там начинаются танцы если есть и герой в гарнизоне и герой на желтой клетке, то вообще жесть.
 
P.P.S. я просто русской версией справки почти не пользуюсь неудобно, потому не видел, сейчас проверил там действительно указана эта особенность.
			  
			
			
			
				
(This post was last modified: 03.08.2020 00:53 by Zur13.)
 
			 
		 |  
	 
 | 
	| 03.08.2020 00:52 | 
	
		
	 | 
	
		
		Bes 
 
 
		
		
		
			
			
			
 
 
			
Posts: 5453 
	
		
	 | 
	
		
			
			 
			
				Quote:P.S. Наличие города по координатам в ЕРМ не проверишь нормально, если запрашивать объект по координатам, а на желтой клетке города стоит герой, то вернет не ИД объекта город, а ИД объекта герой, я уже попадался на таком. Да и там начинаются танцы если есть и герой в гарнизоне и герой на желтой клетке, то вообще жесть. 
Zur13, так зачем тебе проверять тип объекта по координатам битвы, если сразу проверяй !!CAx/y/l:H0/?$ H1/?$ 
просто предварительно отключай вывод ошибок через !!UN:P904/1 P905/0; (если города в координатах нет) и проверяй с каким именно героем идёт битва справа... например:
 
как-то так...
			  
			
			
			
		 |  
	 
 | 
	| 03.08.2020 01:15 | 
	
		
	 | 
	
		
		XEPOMAHT 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 2481 
	
		
	 | 
	
		
			
			 
			
				 (03.08.2020 00:52)Zur13 Wrote:  Наличие города по координатам в ЕРМ не проверишь нормально, если запрашивать объект по координатам, а на желтой клетке города стоит герой, то вернет не ИД объекта город, а ИД объекта герой, я уже попадался на таком. Да и там начинаются танцы если есть и герой в гарнизоне и герой на желтой клетке, то вообще жесть. 
Если выдаёт героя на жёлтой клетке вместо города, то (2 способа на выбор):
 
1. Лезем в структуру героя и читаем там ИД/контрольное слово, в котором стоит герой. 
2. Запоминаем героя и вызываем функцию hidehero и читаем заново. После чтения для героя вызываем showhero (но этим способом - в крайнем случае, т.к. кривое использование вызовет любимый воговский баг - раздвоение героя).
			  
			
			
			
				
(This post was last modified: 03.08.2020 01:48 by XEPOMAHT.)
 
			 
		 |  
	 
 | 
	| 03.08.2020 01:47 | 
	
		
	 | 
	
		
		Bes 
 
 
		
		
		
			
			
			
 
 
			
Posts: 5453 
	
		
	 | 
	
		
			
			 
			
				XEPOMAHT, а если смотреть тип объекта под героем? или это не сработает для города?
 igrik Wrote: 
			 
			
			
			
		 |  
	 
 | 
	| 03.08.2020 01:52 | 
	
		
	 | 
	
		
		Bes 
 
 
		
		
		
			
			
			
 
 
			
Posts: 5453 
	
		
	 | 
	
		
			
			 
			
				 (03.08.2020 03:46)XEPOMAHT Wrote:  (а команду !!OB:Z в ЭРУ так и не добавили, увы...   
ну так ты ж не ванговал за неё, вот и не добавили 
Бери пример с  igrik'а - он  бензопилой в течение дня и HE:Z/BM:Z и прокачанную UN:C выбил   
			 
			
			
			
		 |  
	 
 | 
	| 03.08.2020 03:50 | 
	
		
	 | 
	
		
		XEPOMAHT 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 2481 
	
		
	 | 
	
		
			
			 
			
				 (03.08.2020 03:50)Bes Wrote:  ну так ты ж не ванговал за неё, вот и не добавили 
Мне не особо было надо (в той же ERA+ я использовал hidehero и showhero для получения типа/подтипа под героем, а переделывать под !!OB:Z наверное не буду). В MoP есть готовая встроенная в exe функция получения _MapItem_, без костылей, там в ERM её добавить - совсем не сложно.
 
Ложиться костями и ставить ультиматумы не получается (та же просьба с базовыми адресами не нашла отражения в ЭРА)    . Берсеркер твёрд как орех.
			  
			
			
			
				
(This post was last modified: 03.08.2020 04:12 by XEPOMAHT.)
 
			 
		 |  
	 
 | 
	| 03.08.2020 04:09 | 
	
		
	 |