| 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: 5452
 
 | 
			| 
 
				 (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: 5452
 
 | 
			| 
 
				Zur13, так в справке так и написано, то в !?BA этой командой не проверить, хотя как по мне это баг WoG
 ERM-Help Wrote:Правильное значение вы получите в триггере !?BR или позже. В триггере !?BA0 значение не определено. 
Надо просто уточнить что во всех !?BA
 
Как вариант, либо проверять координаты битвы: 
1. битва с героем справа - проверять наличие героя в городе по координатам 
2. битва без героя справа - просто проверить наличие города в координатах
 А если проверять уже в самой битве, до фазы сражения? по наличию слева катапульты? там же уже работает, чёт увлёкся
			 |  | 
	| 02.08.2020 22:08 |  | 
	
		| SergOz   
   Posts: 1359
 
 | 
			| 
 
				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: 5452
 
 | 
			| 
 
				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: 5452
 
 | 
			| 
 
				XEPOMAHT, а если смотреть тип объекта под героем? или это не сработает для города?
 igrik Wrote: |  | 
	| 03.08.2020 01:52 |  | 
	
		| Bes   
   Posts: 5452
 
 | 
			| 
 
				 (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 |  |