Опции IF:   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Ресивер IF (менеджер флагов и сообщений)


!!IF:XXXX;
- менеджер условных флагов (1..1000), вопросов, показ сообщений и картинок.

Используется для менеджмента условных флагов, вопросов к игроку, показа сообщений и картинок, выбор героя для использования w-переменных, расширенные окна диалогов.
* Команды [A], [R] и [S] данного ресивера работают только с первыми 10-ю флагами.
* Любой триггер и ресивер может зависеть от максимум 16 условий.
* Флаг 1000 принимает значение "Игрок" (0 = ИИ, 1 = человек) при выполнении практически любых действий. Может быть использован во всех ресиверах и триггерах.

Примечание (показать)

Поскольку ресивер IF включает текстовые сообщения, в них не допускается использовать символы ";" и "^".
Пример:

Также следует указать на возможность выделения текста внутри диалога с помощью круглых скобок (они не отображаются в диалоге): {текст}. Стоит лишь заключить в эти скобки ваш текст (или отдельные его слова), и слова окрасятся в золотисто-жёлтый цвет. Однако здесь стоит сказать, что "выделение текста" работает тогда, пока обе скобки находятся на одной строке внутри диалога, или же вы сами не внесли перенос текста. В этом случае "выделение" перенесённой части предложения сбросится. Учитывайте данный момент при оформлении своих диалогов. Чтобы избежать подобные проблемы с вашим текстом, можно прибегнуть к такому способу выделения:

Помимо этого, вы можете дополнительно окрашивать ваш текст в диалоге с помощью особого синтаксиса: см. детали

См. также: подробнее по ресиверу 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 (окно ввода) – текст кнопки
Комментарий (показать)

Если вы используете 0 или пустой параметр, это означает пропуск. Полный путь к файлу, включая имя (до 256 символов) может быть изменён, но помните, что он начинает обработку с Maps, поэтому можно делать так: ^../data/mypic.bmp^. Максимальный размер картинки 100*100, но может быть меньше (выравнивание по центру автоматически). Поддерживает форматы JPG, BMP. Из видео - поддерживает небольшие AVI. Установочная информация не сохраняется при сохранении игры, так что всегда делайте установку перед использованием IF:E


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 – не показывать)
Комментарий (показать)

Статус выбранного исчисляется побитно.
выбор 1 = 1
выбор 2 = 2
выбор 3 = 4
выбор 4 = 8
выбор 5 = 16..
Так, все предметы будут равны = 4095. Для установки предмета 2, 4, 5, 8 и 10 значение будет 2+8+16+128=154. Всё отключено = 0.
Пример:


L^Текст^
Добавить сообщение в лог на экране.
L^Текст^ – добавит "текст"
L$ – добавит значение переменной z$
Комментарий (показать)

Похоже на то, что вы нажали Tab, ввели сообщение, и нажали Enter.
Сообщение всплывает под предыдущим.
Возможно до 20 сообщений на экране.
Каждое сообщение остаётся на экране 20 секунд.
Работает и в экране приключений, и в бою.
Когда вы входите или выходите из битвы, сообщение остаётся на экране.


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 параметра).
Пример (показать)

Означает, что будут показаны: 3/8 – ресурс - сера, кол-во 8, следующий – флаг коричневого игрока (10/2), потом Удача и т.д. Как вы можете увидеть, здесь 7 картинок.

Другой синтаксис:
Если вы имеете менее четырёх параметров, интерпретатор поймёт это как команду для показа диалога, который был приготовлен предыдущим синтаксисом.
Единственный параметр здесь - это текст для показа:
!!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 – случайный)
Комментарий (показать)

Происходит вызов диалогового окна со Сфинксом. Все вопросы и ответы берутся из файла ZSphinx.txt. Если у вас нет TxtEditor, вы можете использовать CmdEditor для каких-либо добавлений. Первая колонка - вопросы, вторая - ответы. Сейчас совпадение написанного игроком с ответом означает корректность ответа. Флаг 1 устанавливается на истину (1), если ответ правилен, на ложь (0), если неправилен.


Дополнительная информация для ресивера IF

В ERM-сообщениях (M- и Q-команды) вы можете использовать специальный синтаксис показа:
“%%” → знак процентов “%”
“%Dd” → текущий день недели
“%Dw” → текущую неделю
“%Dm” → текущий месяц
“%Da” → текущий день с начала игры
“%Gc” → цвет текущего игрока (текстом)
См. также показ переменных в сообщениях.

Просмотр названия

Иногда вы будете знать номер монстра, артефакта, здания, вторичного навыка или заклинания, но не будете знать его название (особенно при случайной генерации). В таких ситуациях используйте команду просмотра названия - UN:N. Эта команда позволит вам, указав номер, получить название (имя), записанное в конкретную z-переменную, которую уже можно будет вставить в вашем диалоге.

Интерпретация значений в IF:Q

Игра "переводит" некоторые значения в IF:Q немного по другому: отрицательные значения как "кол-во в день", поэтому таким образом вы не можете показать отрицательное кол-во золота. Но! Если вы отнимете от такого числа ещё 100000, то всё будет работать корректно.
Так: Так же для денег: Для монстров же вы можете задавать кол-во так:
[подтип картинки] = [кол-во монстров]×65536 + тип монстра