Базовые функции языка QSP

Содержание  Previous  Next

CURLOC - возвращает название текущей локации.

 

RAND([#выражение 1],[#выражение 2]) - возвращает случайное число между числами [#выражение 1] и [#выражение 2]. Параметр [#выражение 2] может отсутствовать, при этом он принимается равным 0.

 

RND - возвращает случайное значение от 1 до 1000.

 

INPUT([$выражение]) - выводит окно ввода с приглашением [$выражение]. Возвращает введённый играющим текст, либо '' (пустая строка), если была нажата кнопка "Отмена".

 

USER_TEXT и USRTXT - возвращают текст, находящийся в строке ввода.

 

MAX([выражение 1],[выражение 2], ...) - возвращает максимальное из значений выражений-аргументов. Если передан один аргумент, то считается, что указано имя массива - в этом случае поиск максимального элемента происходит среди строковых (если название массива указано со знаком "$") или среди числовых значений элементов массива. Например:

 

 MAX(1,2,5,2,0) - вернёт 5

 MAX(a,b,c) - вернёт максимальное из значений переменных

 MAX('aa','ab','zz') - вернёт 'zz'

 MAX('a') - вернёт максимальное из числовых значений элементов массива "A"

 MAX('$b') - вернёт максимальное из строковых значений элементов массива "B"

 

MIN([выражение 1],[выражение 2], ...) - возвращает минимальное из значений выражений-аргументов. Если передан один аргумент, то считается, что указано имя массива - в этом случае поиск минимального элемента происходит среди строковых (если название массива указано со знаком "$") или среди числовых значений элементов массива.

 

IIF([#выражение],[выражение_да],[выражение_нет]) - возвращает значение выражения [выражение_да], если [#выражение] верно, иначе значение выражения [выражение_нет].

 

RGB([#выражение 1],[#выражение 2],[#выражение 3]) - возвращает код цвета на основе 3-х числовых аргументов. [#выражение 1], [#выражение 2] и [#выражение 3] определяют соответственно уровни красного, зелёного и синего цветов. Все значения аргументов должны быть в отрезке [0, 255]. Данная функция используется совместно с системными переменными "BCOLOR, FCOLOR, LCOLOR".

 

ISPLAY([$выражение]) - проверяет, проигрывается ли файл с заданным названием в текущий момент времени и возвращает -1, если файл воспроизводится, иначе 0.

 

MSECSCOUNT - возвращает количество миллисекунд, прошедших с момента начала игры.

 

DESC([$выражение]) - возвращает текст базового описания локации с заданным в [$выражение] названием.

 

MAINTXT - возвращает текст, находящийся в основном окне описаний.

 

STATTXT - возвращает текст, находящийся в окне пользователя.

 

QSPVER - возвращает версию интерпретатора в формате "X.Y.Z".

 

FUNC([$выражение],[параметр 1],[параметр 2], ...) - обработка локации с названием [$выражение]. Указанные параметры передаются в массиве ARGS. Результат функции равен значению $RESULT при возврате строкового значения или RESULT при возврате числового значения. Если при обработке локации были установлены и RESULT, и $RESULT, то предпочтение отдаётся строковому значению. После обработки локации предыдущие значения ARGS и RESULT восстанавливаются. Примеры:

 

 PL 4 + FUNC('функция') - обработка локации "функция" как функции. Массив ARGS пуст. Результат передается через $RESULT или RESULT, в зависимости от кода обрабатываемой локации.

 PL FUNC($name, 1) * 78 - обработка локации с названием в $name как функции. ARGS[0] равен 1.

 MSG "text" + FUNC($name, "строка", 2) - обработка локации с названием в $name как функции. $ARGS[0] содержит строку "строка", ARGS[1] равен 2.

 

DYNEVAL([$выражение],[параметр 1],[параметр 2], ...) - возвращает значение указанного выражения. Функция позволяет вычислять значения динамически сгенерированных выражений. Указанные параметры передаются в массиве ARGS, а после вычисления выражения предыдущие значения ARGS восстанавливаются. Примеры:

 

 DYNEVAL('3+4')

 PL DYNEVAL('mid("abcd",2,1)+"qwerty"')

 PL DYNEVAL($test + ' + val("<<$test>>")')

 проход=DYNEVAL(" $args[0] <> 'текст' ", 'строка')