Current time: 11.04.2025, 23:35 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Вопросы по моддингу
» (обсуждаем моддинг здесь)
Author Message
V_Maiko Offline

Posts: 610
Post: #1471

igrik, I wish you could release wog native dialogs from daemon_n's assembly to work independently, that version has many significant improvements that can help ERA in general, including counting how many creatures can be killed by a unit (feature of yona mod) and quick recruit all creatures into dwellings (missing feature in HC mod for WoG). Ab
26.07.2020 07:49
Find all posts by this user Quote this message in a reply
wessonsm Offline

Posts: 815
Post: #1472

V_Maiko, это не оно?
http://wforum.heroes35.net/showthread.ph...8#pid99728
Или же можно просто скопировать dll из сборки.
26.07.2020 10:39
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4356
Post: #1473

wessonsm, V_Maiko, copy dll from assembly and take wog native dialogs.pac from data folder of wog mod - killed creatures described im txt, quick battle by q as well.


Image: widget.png?style=banner2

Новейший Heroes Launcher
26.07.2020 12:33
Visit this user's website Find all posts by this user Quote this message in a reply
Elzivir Offline

Posts: 263
Post: #1474

daemon_n, wessonsm, SergOz, спасибо за советы! Кстати, смещение по x-координате действительно решило проблему.

P/S: остался еще открытым вопрос с правильным отображением жилищ Порождений зла и Ифритов в обзоре королевства (сейчас они почему-то поменяны местами).
26.07.2020 17:57
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5459
Post: #1475

(25.07.2020 19:48)XEPOMAHT Wrote:  
(25.07.2020 19:39)Bes Wrote:  а от кого исходники по WoG с дополнительными комментариями и описанием адресов/действий? от ShadowTheAge?

От CoreWoG наверное. Что нашлось в исходниках, то и выложил.
самое интересно, посидел я тут пару-тройку часов ночью на работе, местами одни исходники противоречат другим, в одном смещение указано на единицу раньше, в других позже... где-то одно описание, а смотришт в другом - другое.
приходится проводить тесты, ищя правильность того или другого описания.

короче, постараюсь в стилистике исходников Славы (мне его подача больше подошла) на днях выложить более-менее полный вариант этих двух структур, адаптированных под ерм-справочник
31.07.2020 21:25
Visit this user's website Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1476

А кто-то сталкивался с тем что !!BA:S?y1; возвращает неправильное значение внутри !?BA триггера? У меня непонятно что происходит в осадах возвращает 0, при битве с монстрами возвращает 1, очень похоже что возвращает значение для предыдущей битвы. Можно ли как-то внутри BA триггера проверить осада или нет?

  1. !?BA52;
  2. !!BA:S?y1; [y1, is siege combat]
  3. !!IF:M^Is siege = %Y1^;
02.08.2020 21:30
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5459
Post: #1477

Zur13, так в справке так и написано, то в !?BA этой командой не проверить, хотя как по мне это баг WoG
ERM-Help Wrote:Правильное значение вы получите в триггере !?BR или позже. В триггере !?BA0 значение не определено.
Надо просто уточнить что во всех !?BA

Как вариант, либо проверять координаты битвы:
1. битва с героем справа - проверять наличие героя в городе по координатам
2. битва без героя справа - просто проверить наличие города в координатах
А если проверять уже в самой битве, до фазы сражения? по наличию слева катапульты? там же уже работает, чёт увлёкся
02.08.2020 22:08
Visit this user's website Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1332
Post: #1478

Zur13, не знаю как в МП-игре, но в обычной я проверял это значение через !?BR-1;
Выдаёт правильные результаты.


Карта-мод "Война на Холсте"
02.08.2020 22:10
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1479

(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
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5459
Post: #1480

Quote:P.S. Наличие города по координатам в ЕРМ не проверишь нормально, если запрашивать объект по координатам, а на желтой клетке города стоит герой, то вернет не ИД объекта город, а ИД объекта герой, я уже попадался на таком. Да и там начинаются танцы если есть и герой в гарнизоне и герой на желтой клетке, то вообще жесть.
Zur13, так зачем тебе проверять тип объекта по координатам битвы, если сразу проверяй !!CAx/y/l:H0/?$ H1/?$
просто предварительно отключай вывод ошибок через !!UN:P904/1 P905/0; (если города в координатах нет) и проверяй с каким именно героем идёт битва справа... например:
  1. !!BA:P?(X:y)/?(Y:y)/?(L:y);
  2. !!UN:P904/1 P905/0; отменить контроль ошибок
  3. !!CA(X)/(Y)/(L):H0/?(HeroDefender:y) H1/?(HeroGuest);
  4. !!UN:P905/?(ERROR:y); проверка на ошибку
  5. !!FU&(ERROR)=1:E; была ошибка это НЕ ОСАДА
  6. !!UN:P904/0 P905/0; вернуть контроль ошибок
  7. !!BA:H1/?(RightHero:y);
  8. !!if&(RightHero)>=0:;
  9. !!IF(HeroDefender)=(RightHero):M^ОСАДА 100%^;
  10. !!IF(HeroGuest)=(RightHero):M^НЕ ОСАДА^;
как-то так...
03.08.2020 01:15
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2418
Post: #1481

(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
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5459
Post: #1482

XEPOMAHT, а если смотреть тип объекта под героем? или это не сработает для города?
igrik Wrote:
  1. ; Иногда не возможно через команды OB:T и OB:U определить тип/подтип объекта,
  2. ; если на нем стоит герой. Для этого можно воспользоваться этой функцией
  3. ; Получение реального типа объекта на карте (например под героем)
  4. !?FU(GetRealObjectOnMap);
  5. ; x1/x2/x3 - координаты объекта на карте
  6. ; ?x4/?x5 - возврат значений: тип/подтип объекта
  7. !!VRx4:S-1; !!VRx5:S-1;
  8. !!UN:C6918840/4/?y1;
  9. !!VRy1:+92;
  10. !!UN:Cy1/4/?y2;
  11. !!SN:E4228816/2/y2/x1/x2/x3;
  12. !!VRy1:Sv1 +30; !!UN:Cy1/2/?x4;
  13. !!VRy1:+4; !!UN:Cy1/2/?x5;
03.08.2020 01:52
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2418
Post: #1483

(03.08.2020 01:52)Bes Wrote:  а если смотреть тип объекта под героем? или это не сработает для города?

Сработает. Там чтение непосредственно из _MapItem_ (а команду !!OB:Z в ЭРУ так и не добавили, увы... Bad , в MoP же вообще реализовано получение этой штуки ещё мудрёнее и хардкорнее) . ВоГ получает тип/подтип с учётом всех динамических объектов и накладных штук-дрюк - вызовом GetTerrainOverlayType.
03.08.2020 03:46
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5459
Post: #1484

(03.08.2020 03:46)XEPOMAHT Wrote:  (а команду !!OB:Z в ЭРУ так и не добавили, увы... Bad
ну так ты ж не ванговал за неё, вот и не добавили
Бери пример с igrik'а - он бензопилой в течение дня и HE:Z/BM:Z и прокачанную UN:C выбил 96
03.08.2020 03:50
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2418
Post: #1485

(03.08.2020 03:50)Bes Wrote:  ну так ты ж не ванговал за неё, вот и не добавили

Мне не особо было надо (в той же ERA+ я использовал hidehero и showhero для получения типа/подтипа под героем, а переделывать под !!OB:Z наверное не буду). В MoP есть готовая встроенная в exe функция получения _MapItem_, без костылей, там в ERM её добавить - совсем не сложно.

Ложиться костями и ставить ультиматумы не получается (та же просьба с базовыми адресами не нашла отражения в ЭРА) 105 . Берсеркер твёрд как орех.
(This post was last modified: 03.08.2020 04:12 by XEPOMAHT.)
03.08.2020 04:09
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2025 MyBB Group