Ресивер IF (менеджер флагов и сообщений)
!!IF:XXXX;
- менеджер условных флагов (1..1000), вопросов, показ сообщений и картинок.
Используется для менеджмента условных флагов, вопросов к игроку, показа
сообщений и картинок, выбор героя для использования w-переменных, расширенные
окна диалогов.
* Команды [A], [R] и [S] данного ресивера работают только с первыми 10-ю флагами.
* Любой триггер и ресивер может зависеть от максимум 16 условий.
* Флаг 1000 принимает значение "Игрок" (0 = ИИ, 1 = человек) при выполнении
практически любых действий. Может быть использован во всех ресиверах и
триггерах.
Примечание (показать)
Также следует указать на возможность выделения текста внутри диалога с помощью круглых скобок (они не отображаются в диалоге): {текст}. Стоит лишь заключить в эти скобки ваш текст (или отдельные его слова), и слова окрасятся в золотисто-жёлтый цвет. Однако здесь стоит сказать, что "выделение текста" работает тогда, пока обе скобки находятся на одной строке внутри диалога, или же вы сами не внесли перенос текста. В этом случае "выделение" перенесённой части предложения сбросится. Учитывайте данный момент при оформлении своих диалогов. Чтобы избежать подобные проблемы с вашим текстом, можно прибегнуть к такому способу выделения:
Помимо этого, вы можете дополнительно окрашивать ваш текст в диалоге с помощью особого синтаксиса: см. детали…
См. также: подробнее по ресиверу IF, доп.информация по диалогам
Axxxxxxxxxx
Установить значения первых десяти флагов.
Линия XXXX содержит 10 нулей и/или единиц, соответственно, "1" для флага, который нужно установить как «Истина», и "0" - «Ложь»
Пример:
В начале игры все флаги установлены на "0"
B#/$1/$2
Установка или изменение одиночного
изображения или анимации для показа командой IF:P.
# – номер диалога (1..100)
$1 – номер текстовой переменной, где
записано имя файла/изображения (BMP/GIF/JPG или AVI)
$2 – для AVI – повторять снова
(1) или нет (0)
D#/$1/$2/$3/$4/$5/$6/$7/$8/$9/$10/$11/$12/$13/$14/$15
Установка или изменение расширенных диалогов для показа командой IF:E.
# – номер диалога (1..100)
*$ = номер переменной z, в которой установлен текст для использования
$1 – титульный текст (белый) сверху
диалогового окна (текст выравнивается по центру; допускается несколько строк)
$2 – левое описание (жёлтое) выше
окна ввода (29 символов максимум, дальше обрезается)
$3 – правое описание (жёлтое) об окне
выбора (29 символов максимум, дальше обрезается)
$4 – картинка/AVI 1 (левый), файл в папка_героев/maps
$5 – картинка/AVI 2, файл в папка_героев/maps
$6 – картинка/AVI 3, файл в папка_героев/maps
$7 – картинка/AVI 4 (правый), файл в папка_героев/maps
$8 – описание картинки 1 (при
наведении мыши)
$9 – описание картинки 2 (при
наведении мыши)
$10 – описание картинки 3 (при
наведении мыши)
$11 – описание картинки 4 (при
наведении мыши)
$12 – выбор 1 (окно ввода) – текст
кнопки
$13 – выбор 2 (окно ввода) – текст
кнопки
$14 – выбор 3 (окно ввода) – текст
кнопки
$15 – выбор 4 (окно ввода) – текст
кнопки
Комментарий (показать)
E$1/$2
Показ расширенного диалога,
установленного ранее командой
IF:D
(возможно IF:F).
$1 – номер v-переменной для
сохранения выбора
$2 – номер диалога
Комментарий: переменная будет равна 1, 2, 3 или 4 соответственно, если сделан выбор, либо -1, если нажат выход.
Текст с окна ввода автоматически занесётся в z1, даже если окна нет.
F$1/$2/$3/$4/$5/$6
Добавление текста подсказок в окно выбора
в расширенном диалоге. Расширение команды IF:D.
#1 – номер диалога (1..100)
$2 – номер z-переменной с текстом для
1ого выбора
$3 – номер z-переменной с текстом для
2ого выбора
$4 – номер z-переменной с текстом для
3его выбора
$5 – номер z-переменной с текстом для
4ого выбора
$6 – разрешить кнопку выхода (1) или
нет (0)
Комментарий: установочная информация не будет сохранена при
сохранении, поэтому всегда делайте установки перед использованием команды
IF:E
G#1/#2/#3/#4/#5/#6/#7/#8/#9/#10/#11/#12/#13/#14/#15/#16
Установить диалог выбора (до 12 вариантов)
#1 – тип диалога:
1 –
однокнопочный (один выбор)
0 –
мультикнопочный (несколько выборов)
#2 – номер v-переменной, куда
занесётся результат
#3 – начальный статус кнопок
#4 – номер z-переменной – титульной
(верх окна; рекомендуется не более 3-х строк)
#5 – номер z-переменной с именем 1ого
предмета (0 – не показывать)
#6 – номер z-переменной с именем 2ого
предмета (0 – не показывать)
…
#16 – номер z-переменной с именем
12ого предмета (0 – не показывать)
Комментарий (показать)
L^Текст^
Добавить сообщение в лог на экране.
L^Текст^ – добавит "текст"
L$ – добавит значение переменной z$
Комментарий (показать)
M^Текст^
Показать сообщение (текст). Сообщение может содержать любые символы,
кроме "^" и ";"
Пример (показать)
Расширение синтаксиса:
M0/4/^Подсказка^
Позволяет показать сообщение без картинок и кнопок (при обычном щелчке ). Может быть использовано
для подсказок в триггерах !?CM.
M1/$
Установить или получить текст сообщения
$ – номер текстовой z-переменной
N#1/#2/#3/#4/#5/#6/#7/#8/#9/#10/#11/#12/#13/#14/#15/#16
Сообщение с текстом и до 8 картинок любого типа, имеющихся в игре.
Похожее вы можете увидеть, установив глобальное событие с несколькими ресурсами
Синтаксис таков:
!!IF:N…
Диалог не показывается, это лишь подготовительная фаза.
Если вы установите более трёх параметров, интерпретатор поймёт их как
тип и подтип
картинок так же, как и в команде IF:Q.
Вы можете установить до 8 картинок (16 параметров), но минимум 2 картинки (4 параметра).
Пример (показать)
Другой синтаксис:
Если вы имеете менее четырёх параметров, интерпретатор поймёт это как
команду для показа диалога, который был приготовлен предыдущим синтаксисом.
Единственный параметр здесь - это текст для показа:
!!IF:N^Текст^ - прямой текст, или
!!IF:N1/z1 - текст из z1.
Если вы укажите другую z-переменную, в диалог всё-равно попадёт значение z1.
Комментарий (показать)
Пример показа готового диалога с использованием IF:N см. здесь
P#
Показа одиночного изображения/анимации в
расширенном окне диалога, предварительно установленном командой IF:B
# – номер диалога
Q#^Вопрос^
Спросить игрока (вопрос). Ответ (да = 1, отмена = 0) заносится во
флаг # (1..1000). Вопрос может содержать любые символы, кроме "^" и ";"
Пример (показать)
Q#1/#2/#3/#4^текст^
Показать сообщение или вопрос с одной картинкой
#1 – номер флага
#2 –
тип картинки
#3 –
подтип картинки
#4 – тип сообщения
1 – сообщение
2 – вопрос типа да/нет (устанавливается во флаг)
4 – сообщение без кнопок (используйте этот формат с триггером !?CM для сообщений по правому клику и используйте значение -1 для типа и подтипа картинки, если она вам не нужна)
Примечание: вы должны использовать параметр ^текст^, или команда не будет
работать.
Если вы не хотите использовать текст, используйте ^^.
Пример (показать)
Q#1/#2/#3/#4/#5/#6^текст^
Показать сообщение или вопрос с двумя картинками
#1 – номер флага
#2 –
тип картинки 1
#3 –
подтип картинки 1
#4 –
тип картинки 2
#5 –
подтип картинки 2
#6 – тип сообщения
1 – сообщение
2 – вопрос типа да/нет (устанавливается во флаг)
4 – сообщение без кнопок (используйте этот формат с триггером !?CM для сообщений по правому клику и используйте значение -1 для типа и подтипа картинки, если она вам не нужна)
7 – выбор одной из картинок:
0 = правая
1 = левая
10 – выбор из двух картинок + кнопка отмены: результат будет занесён в v-переменную #. Она сможет принять такие значения:
0 = нажат выход
1 = левая картинка выбрана
2 = правая картинка выбрана
Примечание: вы должны использовать параметр ^текст^, или команда не будет
работать.
Если вы не хотите вводить текст, используйте ^^.
Пример (показать)
Q#1/#2/#3/#4/#5/#6/#7/#8^текст^
Показать сообщение или вопрос с тремя картинками
#1 – номер флага
#2 –
тип картинки 1
#3 –
подтип картинки 1
#4 –
тип картинки2
#5 –
подтип картинки 2
#6 –
тип картинки 3
#7 –
подтип картинки 3
#8 – тип сообщения
1 – сообщение
2 – вопрос типа да/нет (устанавливается во флаг)
4 – сообщение без кнопок (используйте этот формат с триггером !?CM для сообщений по правому клику и используйте значение -1 для типа и подтипа картинки, если она вам не нужна)
Здесь так же (как и для диалога с двумя картинками) можно указывать тип 7 и 10, и тогда игрок сможет выбирать из первых двух картинок диалога, в то время, как третья будет просто декоративной :)
Примечание: вы должны использовать параметр ^текст^, или команда не будет
работать.
Если вы не хотите вводить текст, используйте ^^.
Вместо любого ^текст^ можно использовать номер z-переменной.
Синтаксис таков:
Q…/#/z#
где # – тип сообщения, z# – номер z-переменной с текстом.
Sxxxxxxxxxx
Установить некоторые флаги на истину (синтаксис, обратный R)
Пример:
Rxxxxxxxxxx
Установить некоторые флаги на ложь (синтаксис, обратный S)
Пример:
V#1/#2
Установить условный флаг #1 (1..1000) в значение #2 (1 или 0)
W$
Каждый герой имеет 200 индивидуальных переменных.
Они называются w# (# = 1..200)
Они могут быть использованы везде, где и переменные f…t.
Вы должны установить героя, у которого и будут проверяться эти значения ($ =
0..155, -1 = текущий)
Каждый раз, когда вы применяете эту команду, вы обращаетесь к переменным определённого героя.
Пример (показать)
X$
Задать игроку вопрос Сфинкса
$ – номер вопроса (-1 – случайный)
Комментарий (показать)
В ERM-сообщениях (M- и Q-команды) вы можете использовать специальный синтаксис показа:
“%%” → знак процентов “%”
“%Dd” → текущий день недели
“%Dw” → текущую неделю
“%Dm” → текущий месяц
“%Da” → текущий день с начала игры
“%Gc” → цвет текущего игрока (текстом)
См. также показ переменных в сообщениях.
Иногда вы будете знать номер монстра, артефакта, здания, вторичного навыка или заклинания, но не будете знать его название (особенно при случайной генерации). В таких ситуациях используйте команду просмотра названия - UN:N. Эта команда позволит вам, указав номер, получить название (имя), записанное в конкретную z-переменную, которую уже можно будет вставить в вашем диалоге.
Игра "переводит" некоторые значения в IF:Q немного по другому: отрицательные
значения как "кол-во в день", поэтому таким образом вы не можете показать
отрицательное кол-во золота. Но! Если вы отнимете от такого числа ещё 100000, то всё
будет работать корректно.
Так:
Так же для денег:
Для монстров же вы можете задавать кол-во так:
[подтип картинки] = [кол-во монстров]×65536 + тип монстра