!!RD:XXXX;
- позволяет настраивать игровой диалог найма существ самостоятельно.
Помимо команд работы с диалогом найма, в ERA были реализованы специальные события по обслуживанию этого диалога:
x1 - выбранный/активный слот монстра (0..3)
х2 - флаги/опции, представляющие собой комбинацию битов, управляющих поведением диалога:
= 1 – CLOSE_ON_BUYДиалог закроется, когда будет нажата кнопка покупки.
Обычно используется в городах, когда есть только один слот рекрута.
Снимите этот флаг, чтобы принудительно закрывать диалог вручную.
= 2 – AUTO_UPDATE_ADVMAP
Экран карты приключений необходимо обновлять после найма любого рекрута (даже когда отображается диалоговое окно).
Этот флаг используется при найме рекрутов во внешнем жилище существ, что позволяет игроку видеть кол-во новых существ в окне статуса.
x3 - включить диалог (1) или не показывать его (0).
x1 - стоимость существа в золоте
x2 - идентификатор ресурса (0..5 или -1)
х3 - кол-во ресурса
x1 - кол-во рекрутов (только чтение)
Наглядный пример создания диалога найма см. ниже
C#1/$2[/$3/$4/#5]
Настроить диалог найма.
#1 - слот диалога (0..3)
$2 - тип существа для найма в указанном слоте (-1 = слот пуст)
$3 - текущее кол-во существ для найма
$4 - индекс источника/хранилища, где имеется доступное кол-во существ
#5 - модификатор (0 = использовать оригинальное кол-во существ)
Комментарии (показать)[Источник] = [Идентификатор города (см. CA:U)] × 14 + [уровень жилища существ в городе (0..6)] + [7 (только для улучшенных)].К примеру, источник 2го города на карте → 3-е улучш.жилище: 1 * 14 + 3 + 7 = 24.
F#/$
Перевести реальный номер слота в логический (используется с командой C)
# - реальный (видимый) слот (0..3)
$ - логический слот (0..3, -1 = пустой)
Комментарии (показать)I?$1/?$2/?$3/?$4
Получить информацию по текущему диалогу найма.
$1 - уникальный номер диалога. Используется для различения вложенных диалогов.
$2 - идентификатор города (см. CA:U), для которого открывается диалог (-1 = нет/неизвестно).
$3 - идентификатор городского жилища (0..6 - обычное, 7..13 - улучш.; -1 = нет/неизвестно)
Здания Орд (+ X прирост) рассматриваются как жилища, на которые они влияют.
$4 - номер выбранного логического слота.
Комментарий (показать)M#/$
Доступ к ассоциативной памяти текущего диалога.
# - либо целое число, либо уникальная строка. То же, что и SN:W $ - установить/получить значение переменной
Команда обеспечивает полнофункциональный эквивалент SN:W при работе с памятью, выделенной для каждого созданного диалога найма.
Память освобождается после OnCloseRecruitDlg для каждого диалога.
Пример:
O#1/#2/#3/#4[/#5]
Открыть новый диалог найма (предыдущие диалоги останутся в фоновом режиме).
#1 - идентификатор города (см. CA:U; -1 = пропустить). Город будет использоваться как источник слотов. #2 - идентификатор городского жилища (0..13; -1 = пропустить). Жилище будет использоваться как источник слотов. #3 - куда помещать рекрутов при найме (определяется сценарием Lua/ERM и обрабатыватся вручную): = 0 – в гарнизон города = 1 – в армию героя = 2 – своя реализация #4 - идентификатор цели (герой, город или спец. значение для сценария Lua/ERM) #5 - комбинация флагов CLOSE_ON_BUY и AUTO_UPDATE_ADVMAP (см. OnOpenRecruitDlg) Не устанавливайте этот параметр, если используете собственные/стандартные настройки.
S#
Сдвиг слотов на # позиций.
В диалоге найма можно сдвигать все слоты на указанное число позиций вправо (# > 0) или влево (# < 0).
Если слот выходит за пределы логических значений (0..3), он исчезает.
Сдвиг выполняется при сохранении всех настроек (тип, кол-во, источник)
Примеры (показать)
Демонстрационный скрипт применения !!RD от Berserker'а (показать)