«Расширенные Жилища»
Автор: 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).
Наконец то! Теперь можно по человечески запилить скрипт найма 8-уровня в городах

Клёво, но ложку дегтя вынужден сунуть:
1. Было бы шикарно, если б в окошках под именем города тоже отображались измененные существа (существо из слота с макс. номером, например).
2. Как ИИ покупает существ из расширенных жилищ? По максимально возможному FV*количество? Учитывает ли имеющихся у него в армии?
Т.к. существа альтернативны и не грейдятся друг в друга, это может стать причиной серьезного ослабления ИИ - тупо не соберёт максимально сильную армию.
3. Появление альтернатив же никак не связано с имеющимися постройками? Т.е. как раньше необходимо было построить грейд здания для появления грейженных существ в жилище. Т.е. да, для нормального добавления существ 8го уровня все есть (хотя и там я уже вижу несколько подводных камней), а вот полноценный 3й грейд (типа Фанатики) еще под вопросом - там надо запиливать функционал для полноценной работы с деревом отстройки.
Algor, это понятные ложки, мод — не самоцель, скорее инструмент, который занял макс. отведённое время и дал определённый результат.
1. В окошке отображается существо из 0 слота, так как оно же назначается основным через UN:T.
2. ИИ покупает только основных существ, улучшенных, если построено улучшенное строение.
3. К постройкам привязано только в плане обычное жилище — улучшенное. Дерево построек и структура зданий в виде бит оригинальная. Мод целиком на ЕРМ.
igrik, да, можно.
Не, это понятно, что мод лишь демонстрирует возможности нового функционала, просто уточняю механику.
1. При отстроенном грейде здания картинка будет браться из 1го слота, как я понимаю?
2. 2-3 слоты просто не использует?
3. Постройка улучшенного автоматически раскрывает 1й слот? А если там уже были назначенные альтернативные существа, перезатирает? Или в таком случае отстройка просто бесполезна?
4. Что будет если назначить существ только в 0й и 3й слоты? Я про графическое отображение.
1. Из 0-го. В оригинале же улучшенных всегда слева, то есть в слоте 0. Просто это уже слот 0 улучшенного жилища.
2. ИИ их не видит, они именно в диалоге, да. Но в теории с хуком на ЕРМ может и начать видеть однажды.
3. Скажем так, настройка слотов для обычного жилища и улучшенного никак не пересекается. То есть у тебя может быть только 3-й слот в обычном жилище и 1, 2 в улучшенном. И с разными монстрами. Потому лучше настраивать сразу обычное и улучшенное, если нужно, чтобы один и тот же монстр присутстовал и там и там.
4. Всё, как с !!RD. Пустые слоты игнорируются, а видимые отображаются слева-направо.
Протестировал с ERA+. Работает некорректно - ERM-мом невозможно установить количество (там всегда либо 0, либо 1, правильные значения только у тех, которые в городах ставит Тифон). Сами добавленные монстры в добавленных городах появляются. Но если нанять добавленного монстра, то у основного изначальное количество тоже сбрасывается на 0 или 1. Так же, если ставить монстра в слот апгрейда основного, то установленный апгрейд почему-то замещает основного (т.е. происходит раздвоение монстров сразу в двух слотах, соответственно, максимум можно установить 3 слота, 4 - не получится). В общем, пока что заглушка в ERA+, выключающая эровское окно найма, остаётся - для использования "Расширенных Жилищ" вместе с Тифоном 3.1 необходимо править все эти баги в окне найма монстров ЭРА.

(06.02.2020 11:27)igrik Wrote: [ -> ]Наконец то! Теперь можно по человечески запилить скрипт найма 8-уровня в городах 
Предвкушаю этот же момент
Но есть вопрос:
менять основной портрет существа в левом нижнем окне состояния города надо будет вручную, или мод предусмотрит этот момент и подхватит сам номер кадра CrSmall.def, соответсвующего номеру существа?
daemon_n, в нижем левом окне автоматом из CrSmall.def показываются монстры, назначенные в 0-й слот. Я ничего не трогаю.
Berserker, меня смутила 1-ая картинка в шапке - там всё-таки не Горынычи.
UPD: а как будут влиять на прирост внешние жилища, артефакты легиона и грааль(с ним всё просто, по идее).
Имеем по 12 нычек эльфов и кентавров -
в замке оба стоят на 1-ый слот в соотноешении 1 эльф = 3 кентавра
Как будет увеличен прирост?
по +12 к каждому после рассчёта 1 к 3 или прсто +12 к кентаврам, так как нычка эльфов увеличит лишь прирост 3 уровня существа оплота?
daemon_n, это потому, что я там использовал функцию установки не альтернативных, а дополнительных монстров. Так что в жилище копятся гоблины, но набрать их нельзя. Все 4 слота отображаются доп. существа со счётчиками, не привязанным к жилищам.
Berserker, вроде полностью выкурил changelog на предмет RD и Recruit-событий, но не нашел ответа.
Задача: до покупки существа требуется:
1. Получить id и количество покупаемых существ. RD - не позволяет получить текущий слот? OnOpenRecruitDlg дает только слот, который был при открытии диалога? OnRecruitDlgRecalc тоже слот не возвращает?
2. При нажатии на кнопку "купить" запросить подтверждение найма, и на основании ответа купить или не купить существ.
1. !!RD:I?$dialogId[/?$townId/?$dwellingId/?$selectedSlot];
Не проверял?
"OnRecruitDlgAction" при покупке
x1 - number of hired creatures.
2. Событие возникает уже после расчётов, его нельзя отменить. А в каких случаях нужно?
1. Не проверял. Написано !!RD:C#slot/$type...
2. Надо перед покупкой проверить кой-чего по типу и кол-ву покупаемых существ и запросить доп.подтверждение. Т.е. по хорошему нужно отловить момент после клика на кнопке купить, но до списания и с возможностью отменить нажатие по типу CM:R. Какой-нить OnRecruitMouseClick
OnRecruitDlgMouseClick есть и работает, но текущее выбранное число монстров пока не получить, насколько я помню.
C - configure, настройка слотов
I - info, 4-й параметр должен подходить.
Могу для 3.0.0 посмотреть число выбранных монстров.