Документация к Universal Ripsoft
Quest v1
(версия документации 21.03.2001)
Оглавление
Universal Ripsoft Quest v1.xx далее "програмный продукт" изготовлен компанией Ripsoft corporation и не является лицензионно защищенным програмным продуктом. Распространяется на правах "freeware", то есть абсолютно свободно. Автор не отвечает за какой-либо ущерб, либо упущенную выгоду полученные вследствии использования програмного продукта. Если вы по каким-либо причинам не согласны с этим лицензионным соглашением, то вы должны стереть со всех хранителей информации дистрибутивные пакеты програмного продукта и прекратить использование програмного продукта. Со всеми жалобами, претензиями и предложениями просьба обращаться по адресу ripos@mail.ru либо в гостевую книгу на официальном сайте компании в глобальной сети Internet по адресу www.ripsoft.narod.ru.
Файлы обрабатываемые движком это файлы с расширением qst, либо файлы qs1, созданные из файлов qst с помощью утилиты поставляемой вместе с программой. Опишем подробнее формат файлов qst: это текстовый файл, который выполняется построчно.
Если есть параметры командной строки, то если это квест, то он выполняется.
1) Вначале отбрасываются коментарии (символы после ";").
2) Строка разбивается на части символами "&" и для каждой
части выполняются операции начиная с первой. Исключение: если встречается
оператор "if" то последующая за ним строка на предмет "&"
не обрабатывается, эти операторы будут обрабатываться как "then" часть.
3) Все сочетания символов "#$" заменяются на пробелы. Все сочетания
#...$ заменяются на из значение, целое. Все сочетания символов #/$ заменяются
на перенос строки. Все сочетания ##число$ заменяются на сивол с кодом число.
4) Рассматривается первое слово (до первого пробела), если это оператор,
то он выполняется. Если это не оператор печати ("p" "pln"
"print" "println") или "if" и встречается символ
"=" то выполняется присвоение. Примечание: если это не оператор
(например метка) не делается ничего. Примечание: коментарии и метки с
символом = недопустимы
5) Рассматривается следующая строка и для неё выполняются аналогичные
процедуры.
Если строка начинается с символа ":" то это метка, то есть это метка с именем - вся оставшаяся часть строки. Примечание: метки с более чем двумя пробелами подряд, или с пробелами до или после запятой недопустимы, инструкции после метки недопустимо.
Регистр переменных, предметов, меток и операторов никакой роли не играет. Исключение: при работе с инвенторем если использовать разный регистр, то наименования предметовбудут отображаться согласно последним изменениям, но на работеу с инвенторем это никак не сказывается. Пример: "inv+ 2,Такелан & inv- такелан", то в инвенторе будет отбражаться "1шт. такелан"
Операторы "pause" "end" должны идти в отдельной строке.
При "клике" на инвентарь вызывается процедура Use_имяпредмета если кликнули на последней, пустой строке в инвентаре, то процедура Use_Inv
Теперь рассмотрим операторы:
Внимание: символы "<.[.]..>" написаны для более легкого
понимания текста и файле их нет, причем символы [ ] используются для обозначения
текста, который можно опустить. Пример: "print <строка>"
напечатает "<строка>", где символов " тоже нет.
Внимание: параметры операторов разделены запятыми, то есть в качестве
параметра берется строка от пробела после оператора до запятой, не включительно,
а в качестве второго параметра от запятой до конца, кроме последнего пробела.
Исключение: "if" имеет особый формат. Пример: "btn
^%$ ^%$^ &#&*$^,TH$&*Y(* *(&H " создаст кнопку с переходом
на локацию "^%$ ^%$^ &#&*$^" и надписью "TH$&*Y(*
*(&H"
p <строка>, print <строка>- печатают всю строку после
них.
pln <строка>, println <строка>- печатают всю строку после
них и переносит в конце строку.
cls - очищает окно, а именно текст, кнопки с выбором действий (см.
"btn").
btn <локация>,<надпись> - создает кнопку
для выбора вариантов действия с надписью на ней <надпись>, при клике на
ней будет осуществлен переход на локацию "Common", потом (когда встретиться
"end") на <метка>.
inv+ [<количество>,]<предмет> - добавляет <количество>
(1 по умолчанию) предметов к инвенторю. Примечание: в отличие от "inv-"
не проверяется, что кол-во предметов положительно, то есть если было 15 Рип
и "inv+ -20,Рип" то станет -5 Рип.
inv- [<количество>,]<предмет> - убавляет <количество>
(1 по умолчанию) предметов к инвенторю. Примечание: в отличие от "inv+"
проверяется, что кол-во предметов положительно, то есть если было 15 Рип и "inv+
-20,Рип" то станет Рип изчезнет из инвенторя.
invkill [<предмет>] - убирает из инвенторя все предметы <предмет>
(вообще все предметы по умолчанию).
perkill - уничтожает все переменные.
goto <метка> - передает управление на метку <метка>, то есть
инструкции квеста выполняются с метки <метка>.
proc <метка> - передает управление на метку <метка>, то есть
инструкции квеста выполняются с метки <метка>, но когда встречается "end"
возвращает управление обратно.
save [<метка>] - если <метка> не указана, то сохранение текста
локации, инвенторя, переменных, кнопок выбора в файле выбираемом пользователем,
если же <метка> указана, то сохранение инвенторя, переменных и локации
в которую нужно перейти при загрузке.
pause <время> - прекращение выполнения инструкций на <время>
в милисекундах, причем пользователь в это время может выбирать варианты с помощью
кнопок выбора и квест будет работать дальше, но по истечении <время> выполнение
квеста продолжиться, одновременно двух работающих "pause" не может
быть, новая затирает старую - движок о ней "забывает", забывает также
он о паузе при нажатии кнопки действия.
input <переменная> - заставляет пользователя ввести число в переменную
play <файл> - проигрывает файл <файл> из директории квеста,
на время прогрывания квест не приостанавливается.
if <условие> then <операторы> - если <условие> выполняется,
то выполняются <операторы>. Формат условия: комбинация boolean выражений
и ключевых слов "not" "and" "or" (в порядке убывания
приоритета), где boolean выражения либо вида <варажение><знак><выражение>,
где <знак> это ">" "<" "<>"
"=" ">=" "<="а выражение см.
=, либо вида [<количество>] <предмет>, которое принимает TRUE
если есть <количество> (по умолчанию 1) <предмет>.
<переменная>=<выражение> - значение <выражение>
присваивается <переменая>, где <выражение> - комбинация + -
| * / \ (где вертикальной чертой разделены операции разного приоритета),
переменных.
Системные переменные:
Rnd - случайное число от 0 до 0.99999999999 меняется при каждом вызове
Music - имя фоновой музыки вроде "104.mid" причем только Midi
файлы
Common - имя локации коммон вроде "Common_12" при Common=0
вызов просто "Common" (то есть вместо локации :Common используется
:Common_номер)
Image - имя файла с картинкой вроде "104.gif"
ImageType - тип картинки: 0-bmp 1-ico 2-rle 3-wmf 4-emf 5-gif 6-jpg
ИмяЛокации - хранит информацию о кол-ве заходов на эту локацию посредством
goto, proc, btn
Time - хранит число секунд прошедших с полуночи.
Все переменные - вещественные числа. Если переменная не инициализированна, то ее значение принимается равным 0.
Кодировка Windows (Cp 1251) везде.
A: Разберитесь с локацией "common" - полезная штука
Файлы OCX надо класть в директорию WINDOWS\SYSTEM либо в каталог к программе затем запустить "Regsvr32.exe Имя_Файла.OCX"
E: "COMDLG32" not correctly registred.
A: Скачайте COMDLG32.ocx
E: "MCI32" not correctly registred.
A: Скачайте MCI32.ocx
E: "MSDXM.OCX"...
A: Скачайте MSDXM.OCX
Q: Как нормально сделать голод в квесте?
A: Используте локацию Common например так:
:Common
Сытость=Сытость-1
if Сытость<=0 then PrintLn Вы голодны!!!
if Хлеб then Сытость=Сытость+10 & Inv- Хлеб
end
Q: Я пишу "
A: Символы
Q: Я пишу ":ккк & p ккк" , а в квесте нет ничего подобного???
A: Комманда ":<метка> &" недопустима, для меток надо отдельные строки.
Q: Я пишу "save & p ккк" , а в сохранении нет ничего подобного???
A: Сохранение идёт на текущий момент а "p ккк" идёт уже после
Q: Почему вопросов и советов так мало и они такие ... ?
A: Пишите свои вопросы и советы по адресу ripos@mail.ru
v1.3 Final Relise
- невозможны = в коментариях
- исправлен таймер на "как у Victor Korianov"
- обработка кликов на инвентарь
- фоновая музыка
- сделан механизм Мульти-Common
- включенна работа с любыми звуковыми файлами поддерживаемые системой
- работа с коммандной строкой
- полноценная работа с нецелыми числами
- возможность постановки любых пробелов и их комбинаций с запятыми
- включенна поддержка картинок (показ)
- возможность печати нескольких строк одновременно одним оператором
- убрана возможность Save на метку
- возможность печати любого символа
- считается кол-во заходов на локацию
- появился оператор ввода