Wake of Gods Forum | Форум Во Имя Богов
Мод «Расширенные Жилища» - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Герои Меча и Магии 3.5 WoG/ERA (/forumdisplay.php?fid=99)
+--- Forum: Моды (/forumdisplay.php?fid=104)
+--- Thread: Мод «Расширенные Жилища» (/showthread.php?tid=5453)


Мод «Расширенные Жилища» - Berserker - 06.02.2020 04:55

Image: c35d373a59a7.png

«Расширенные Жилища»

Автор: Berserker
Версия: 1.0.0
Требует: Era 2.9.9+
Скачать: Extended Dwellings

Мод позволяет настроить до 4-х слотов на каждое городское жилище.
Каждый слот может быть как альтернативным существом, так и дополнительным.

Альтернативное существо использует тот же счётчик населения, что и родное. Однако может быть задано произвольное соотношение между оригинальным числом существ и альтернативным.
Например, 1 голем может быть куплен взамен населения в 12 гремлинов. Такие слоты называются альтернативными, так как невозможно купить максимум существ из всех альтернативных слотов. Покупка существ в одном из слотов пропорционально снижает число существ в остальных.

Дополнительные слоты не связаны с основным населением жилищ. Их население может быть установлено вручную через ЕРМ
или может расти автоматически еженедельно, как это происходит с родными обитателями жилищ.

Используйте следующие документированные ЕРМ функции:
"dex_DwellingPopulation" чтобы установить/изменить население в дополнительном слоте.
"dex_SetDwellingSlotByTownType" для настройки слота для всех городов определённого типа.
"dex_GetDwellingSlotByTownType" для получения настройки слота для всех городов определённого типа.
"dex_SetDwellingSlotByTownId" для настройки слота в конкретном городе (имеет приоритет над dex_SetDwellingSlotByTownType).
"dex_GetDwellingSlotByTownId" для получения настройки слота в конкретном городе (имеет приоритет над dex_GetDwellingSlotByTownType).

Для старых модов, зависящих от плагина battery.dll, есть функция "dex_CA_D" с почти идентичным CA:D синтаксисом.
Рекомендуется по возможности всё же использовать новое API для более точной и упрощённой настроки слотов, включая альтернативы и
авторастущее население.

Пример:
Для каждого типа города назначает в неулучшенное жилище 1-го уровня дополнительный слот с авторастущим населением в 7 псих. элементалей в неделю (14 с замком, 21 с Граалем).
То же самое, но элементали являются АЛЬТЕРНАТИВАМИ родным существам и могут быть наняты в соотношении 1 элементаль вместо 20 родных существ (5% = 1/20).


RE: Мод «Расширенные Жилища» - igrik - 06.02.2020 11:27

Наконец то! Теперь можно по человечески запилить скрипт найма 8-уровня в городах Spiteful


RE: Мод «Расширенные Жилища» - Algor - 06.02.2020 15:46

Клёво, но ложку дегтя вынужден сунуть:

1. Было бы шикарно, если б в окошках под именем города тоже отображались измененные существа (существо из слота с макс. номером, например).

2. Как ИИ покупает существ из расширенных жилищ? По максимально возможному FV*количество? Учитывает ли имеющихся у него в армии?
Т.к. существа альтернативны и не грейдятся друг в друга, это может стать причиной серьезного ослабления ИИ - тупо не соберёт максимально сильную армию.

3. Появление альтернатив же никак не связано с имеющимися постройками? Т.е. как раньше необходимо было построить грейд здания для появления грейженных существ в жилище. Т.е. да, для нормального добавления существ 8го уровня все есть (хотя и там я уже вижу несколько подводных камней), а вот полноценный 3й грейд (типа Фанатики) еще под вопросом - там надо запиливать функционал для полноценной работы с деревом отстройки.


RE: Мод «Расширенные Жилища» - Berserker - 06.02.2020 16:07

Algor, это понятные ложки, мод — не самоцель, скорее инструмент, который занял макс. отведённое время и дал определённый результат.
1. В окошке отображается существо из 0 слота, так как оно же назначается основным через UN:T.
2. ИИ покупает только основных существ, улучшенных, если построено улучшенное строение.
3. К постройкам привязано только в плане обычное жилище — улучшенное. Дерево построек и структура зданий в виде бит оригинальная. Мод целиком на ЕРМ.

igrik, да, можно.


RE: Мод «Расширенные Жилища» - Algor - 06.02.2020 16:23

Не, это понятно, что мод лишь демонстрирует возможности нового функционала, просто уточняю механику.

1. При отстроенном грейде здания картинка будет браться из 1го слота, как я понимаю?
2. 2-3 слоты просто не использует?
3. Постройка улучшенного автоматически раскрывает 1й слот? А если там уже были назначенные альтернативные существа, перезатирает? Или в таком случае отстройка просто бесполезна?
4. Что будет если назначить существ только в 0й и 3й слоты? Я про графическое отображение.


RE: Мод «Расширенные Жилища» - Berserker - 06.02.2020 16:58

1. Из 0-го. В оригинале же улучшенных всегда слева, то есть в слоте 0. Просто это уже слот 0 улучшенного жилища.
2. ИИ их не видит, они именно в диалоге, да. Но в теории с хуком на ЕРМ может и начать видеть однажды.
3. Скажем так, настройка слотов для обычного жилища и улучшенного никак не пересекается. То есть у тебя может быть только 3-й слот в обычном жилище и 1, 2 в улучшенном. И с разными монстрами. Потому лучше настраивать сразу обычное и улучшенное, если нужно, чтобы один и тот же монстр присутстовал и там и там.
4. Всё, как с !!RD. Пустые слоты игнорируются, а видимые отображаются слева-направо.


RE: Мод «Расширенные Жилища» - XEPOMAHT - 06.02.2020 18:29

Протестировал с ERA+. Работает некорректно - ERM-мом невозможно установить количество (там всегда либо 0, либо 1, правильные значения только у тех, которые в городах ставит Тифон). Сами добавленные монстры в добавленных городах появляются. Но если нанять добавленного монстра, то у основного изначальное количество тоже сбрасывается на 0 или 1. Так же, если ставить монстра в слот апгрейда основного, то установленный апгрейд почему-то замещает основного (т.е. происходит раздвоение монстров сразу в двух слотах, соответственно, максимум можно установить 3 слота, 4 - не получится). В общем, пока что заглушка в ERA+, выключающая эровское окно найма, остаётся - для использования "Расширенных Жилищ" вместе с Тифоном 3.1 необходимо править все эти баги в окне найма монстров ЭРА.

Image: OQpbi9gRv_g.jpg


RE: Мод «Расширенные Жилища» - daemon_n - 15.02.2020 04:27

(06.02.2020 11:27)igrik Wrote:  Наконец то! Теперь можно по человечески запилить скрипт найма 8-уровня в городах Spiteful

Предвкушаю этот же моментAb

Но есть вопрос:
менять основной портрет существа в левом нижнем окне состояния города надо будет вручную, или мод предусмотрит этот момент и подхватит сам номер кадра CrSmall.def, соответсвующего номеру существа?


RE: Мод «Расширенные Жилища» - Berserker - 15.02.2020 04:50

daemon_n, в нижем левом окне автоматом из CrSmall.def показываются монстры, назначенные в 0-й слот. Я ничего не трогаю.


RE: Мод «Расширенные Жилища» - daemon_n - 15.02.2020 04:51

Berserker, меня смутила 1-ая картинка в шапке - там всё-таки не Горынычи.

UPD: а как будут влиять на прирост внешние жилища, артефакты легиона и грааль(с ним всё просто, по идее).

Имеем по 12 нычек эльфов и кентавров -
в замке оба стоят на 1-ый слот в соотноешении 1 эльф = 3 кентавра
Как будет увеличен прирост?
по +12 к каждому после рассчёта 1 к 3 или прсто +12 к кентаврам, так как нычка эльфов увеличит лишь прирост 3 уровня существа оплота?


RE: Мод «Расширенные Жилища» - Berserker - 15.02.2020 05:12

daemon_n, это потому, что я там использовал функцию установки не альтернативных, а дополнительных монстров. Так что в жилище копятся гоблины, но набрать их нельзя. Все 4 слота отображаются доп. существа со счётчиками, не привязанным к жилищам.


RE: Мод «Расширенные Жилища» - Algor - 29.02.2020 00:54

Berserker, вроде полностью выкурил changelog на предмет RD и Recruit-событий, но не нашел ответа.
Задача: до покупки существа требуется:

1. Получить id и количество покупаемых существ. RD - не позволяет получить текущий слот? OnOpenRecruitDlg дает только слот, который был при открытии диалога? OnRecruitDlgRecalc тоже слот не возвращает?

2. При нажатии на кнопку "купить" запросить подтверждение найма, и на основании ответа купить или не купить существ.


RE: Мод «Расширенные Жилища» - Berserker - 29.02.2020 01:40

1. !!RD:I?$dialogId[/?$townId/?$dwellingId/?$selectedSlot];
Не проверял?

"OnRecruitDlgAction" при покупке
   x1 - number of hired creatures.

2. Событие возникает уже после расчётов, его нельзя отменить. А в каких случаях нужно?


RE: Мод «Расширенные Жилища» - Algor - 29.02.2020 01:58

1. Не проверял. Написано !!RD:C#slot/$type...
2. Надо перед покупкой проверить кой-чего по типу и кол-ву покупаемых существ и запросить доп.подтверждение. Т.е. по хорошему нужно отловить момент после клика на кнопке купить, но до списания и с возможностью отменить нажатие по типу CM:R. Какой-нить OnRecruitMouseClick


RE: Мод «Расширенные Жилища» - Berserker - 29.02.2020 02:45

OnRecruitDlgMouseClick есть и работает, но текущее выбранное число монстров пока не получить, насколько я помню.
C - configure, настройка слотов
I - info, 4-й параметр должен подходить.
Могу для 3.0.0 посмотреть число выбранных монстров.


RE: Мод «Расширенные Жилища» - Algor - 29.02.2020 10:55

С подтверждением вопрос решил, осталось с количеством нанимаемых...
Странно, что в OnRecruitDlgRecalc есть только цена, ни суммы ни количества нет Bad


RE: Мод «Расширенные Жилища» - Algor - 29.02.2020 11:24

Ладно, а если зайти чрез жопу с другой стороны:
у меня есть номер диалога y1 и номер элемента-текстового поля y2, как мне получить текущий текст в в этом поле?
Синтаксис получения значения !!DLy1:Ay2/3/?z3; не работает


RE: Мод «Расширенные Жилища» - igrik - 29.02.2020 12:46

Можно и не совсем через заднее место

Но данный код работает для ВСЕХ! игровых диалогов покупки монстров.

Но лучше бы такой хук добавить в саму эру:
!!RD:B?[тип]/?[кол-во];


RE: Мод «Расширенные Жилища» - Algor - 29.02.2020 14:38

Спасибо!
Добавить в Эру действительно стоит, !!RD:B решил бы все проблемы с рекрут-диалогом.


RE: Мод «Расширенные Жилища» - Berserker - 29.02.2020 20:14

Решит вопрос и возможность получения текущего выбранного и максимального числа монстров. А обработку кнопки покупки через событие щелчка можно оставить.
Я закруглялся с !!RD, хотя хотел добавить этот функционал ещё раньше.


RE: Мод «Расширенные Жилища» - Algor - 01.03.2020 00:31

Максимальное число и так можно получить из параметров жилища/замка. Не хватает только текущего покупаемого числа.

И да, очень важное замечание:
Quote:Но данный код работает для ВСЕХ! игровых диалогов покупки монстров.

Сейчас для скупки существ через диалог массового найма в городе (который просто мастхэвный) каких-либо средств управления просто нет.


RE: Мод «Расширенные Жилища» - Berserker - 01.03.2020 00:45

Algor, получить точно нельзя. Диалог может быть настроен как угодно и вызван откуда угодно, предположений быть не может. Нужны актуальные значения прямо из диалога. Имхо.
--------
Естественно, нет. И универсального быть просто не может. !!RD — просто диалог, который и вообще вручную на !!DL сделать можно. Может у тебя разрешена бесконечная покупка отрядов при спец. шелчке на строении. Как такое учитывать и зачем? Задача кнопки макс. скупки проста: скупить обычное население жилищ. Если будет поддерживаться мод Extended Dwellings, то там есть функции для получения настроек по каждому слоту. Можно, соответственно, написать сложный скрипт с его учётом.


RE: Мод «Расширенные Жилища» - Algor - 01.03.2020 00:48

(01.03.2020 00:45)Berserker Wrote:  Algor, получить точно нельзя.
Ок, будет возможность получения максимума прямо из диалога покупки - я только за.

Если что, мне совершенно не горит. Это из разряда экспериментов "на будущее".


RE: Мод «Расширенные Жилища» - V_Maiko - 03.03.2020 07:21

I understand that it is still an experimental project, but I would like to know if in the future you can create an interface for dummies to be able to use the mod without any problem, an interface like the one that MOP has with Towns Editor.


RE: Мод «Расширенные Жилища» - Berserker - 03.03.2020 16:05

Not by me, sorry. But propose an example like: I want to have 3 red dragons as alternative for 100 master-gremlins in dwelling 1 of Tower town. I will write 1-liner code and describe, what you can add yourself. You will need only Help\Erm Help 2.81\index.html and Tools\Erm_Editor_Sublime\sublime_text.exe.


RE: Мод «Расширенные Жилища» - V_Maiko - 12.08.2020 20:49

Berserker, I have a problem that I always had in my mod and that I didn't want to say so as not to bother you if you are busy with more important things, it's about cerberus and dendroid dwellings, the third slots don't appear to select my third creatures in their respective dwellings, I already looked at my entire written line and everything will be correct, so I think it is a bug in the Extended Dwellings code


RE: Мод «Расширенные Жилища» - Berserker - 12.08.2020 21:31

Please, pack your latest TUM mod and Extended Dwellings mod and upload anywhere. I'll try to check.


RE: Мод «Расширенные Жилища» - V_Maiko - 12.08.2020 21:45

You can use my most recent link to my mod, I haven't made any changes as of today and the problem remains the same


RE: Мод «Расширенные Жилища» - Archer30 - 26.11.2020 14:19

Berserker, there is an incompatibility with this mod and HD mod. Since Baratorth is very active in the ERA community these days, it might be a good idea to raise the topic.

Issue:
The HD fast recruit dialogue always has the original unit no matter what's been set with this mod. For example, in The Tides of War for ERA by VMaiko,
Illithid is the alternative unit to Minotaur. Minotaur shouldn't be allowed to recruit in a town if Illithid is selected.
But it ends up with both available. Recruit Minotaur from the fast recruit dialogue and recruit Illithid from its dwelling. Balance is non-existent. 102



RE: Мод «Расширенные Жилища» - daemon_n - 26.11.2020 14:28

cthulhu fhtagn



RE: Мод «Расширенные Жилища» - Sea - 26.11.2020 14:59

Илитиды, прикольно. Это какой-нибудь город тёмных эльфов? Точнее альтернативная тёмноэльфийская ветка для темницы


RE: Мод «Расширенные Жилища» - XEPOMAHT - 26.11.2020 15:19

(26.11.2020 14:19)Archer30 Wrote:  there is an incompatibility with this mod and HD mod.

Данный диалог поддерживает только оригинальных городских монстров и только работает с оригинальными городами от SoD. При использовании модов на новых (например ERA+) или заменённых монстров в городах его необходимо выключать в твиках HD-мода (baratorch никогда не будет делать поддержку Тифона, сколько б ему мы об этом ни говорили).


RE: Мод «Расширенные Жилища» - Raistlin - 26.11.2020 22:24

Sea, Илитиды, ЕМНИП, происходят из D&D и с эльфами точно никак не связаны - по образу они походят скорее на Ктулху. В WoG Ultra Edition, кстати, командиром Темницы является Иллитид.


RE: Мод «Расширенные Жилища» - Archer30 - 04.10.2021 01:21

Is there a fast way to restore the original recruit dialogue? Or do we have to redefine everything?


RE: Мод «Расширенные Жилища» - Berserker - 04.10.2021 11:18

If you used mod API functions, you obviously changed settings globally and have to apply right the opposite settings. We could also add some function like resetSlotSettingsByTownId and resetSlotSettingsbyTownType.


RE: Мод «Расширенные Жилища» - Archer30 - 04.10.2021 12:18

Ah, I see. I mimicked the style in TUM and wrote one for myself



RE: Мод «Расширенные Жилища» - Berserker - 04.10.2021 12:55

Nice!