wessonsm
Posts: 792
|
|
26.07.2020 10:39 |
|
Elzivir
Posts: 263
|
daemon_n, wessonsm, SergOz, спасибо за советы! Кстати, смещение по x-координате действительно решило проблему.
P/S: остался еще открытым вопрос с правильным отображением жилищ Порождений зла и Ифритов в обзоре королевства (сейчас они почему-то поменяны местами).
|
|
26.07.2020 17:57 |
|
Bes
Posts: 5422
|
(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: 5422
|
Zur13, так в справке так и написано, то в !?BA этой командой не проверить, хотя как по мне это баг WoG
ERM-Help Wrote:Правильное значение вы получите в триггере !?BR или позже. В триггере !?BA0 значение не определено.
Надо просто уточнить что во всех !?BA
Как вариант, либо проверять координаты битвы:
1. битва с героем справа - проверять наличие героя в городе по координатам
2. битва без героя справа - просто проверить наличие города в координатах
А если проверять уже в самой битве, до фазы сражения? по наличию слева катапульты? там же уже работает, чёт увлёкся
|
|
02.08.2020 22:08 |
|
SergOz
Posts: 1315
|
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: 5422
|
Quote:P.S. Наличие города по координатам в ЕРМ не проверишь нормально, если запрашивать объект по координатам, а на желтой клетке города стоит герой, то вернет не ИД объекта город, а ИД объекта герой, я уже попадался на таком. Да и там начинаются танцы если есть и герой в гарнизоне и герой на желтой клетке, то вообще жесть.
Zur13, так зачем тебе проверять тип объекта по координатам битвы, если сразу проверяй !!CAx/y/l:H0/?$ H1/?$
просто предварительно отключай вывод ошибок через !!UN:P904/1 P905/0; (если города в координатах нет) и проверяй с каким именно героем идёт битва справа... например:
как-то так...
|
|
03.08.2020 01:15 |
|
XEPOMAHT
Posts: 2356
|
(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: 5422
|
XEPOMAHT, а если смотреть тип объекта под героем? или это не сработает для города?
igrik Wrote:
|
|
03.08.2020 01:52 |
|
Bes
Posts: 5422
|
(03.08.2020 03:46)XEPOMAHT Wrote: (а команду !!OB:Z в ЭРУ так и не добавили, увы...
ну так ты ж не ванговал за неё, вот и не добавили
Бери пример с igrik'а - он бензопилой в течение дня и HE:Z/BM:Z и прокачанную UN:C выбил
|
|
03.08.2020 03:50 |
|
XEPOMAHT
Posts: 2356
|
(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 |
|