[-=XQUEST=-]
   Впервые у меня зародилась идея написать собственный тестовый квест ещё
в 2001 году поиграв в Fallout II. Очень понравилась идея создания
динамических диалогов. После были игры Torment, Baldurs Gate, Neverwinter
и т.д.. Но руки дошли только после игры Rangers I, которая меня поразила
своими текстовыми квестами...


[Принцип создания квеста]
  Принцип работы прост: создаёте текстовый скрипт [*.scp], пишете свой
квест, после чего компилируете его при помощи Flat Assembler. Файл с
макросами лежит в дирректории /script/inc. Там лежат макросы-комманды
моего вымышленного процессора. Скомпиленый файл передаёте в параметрах
моей программе XQuest.exe...


[Работа с XQuest]
  Экран программы XQuest разделён на 2 части:
   - Сверху отображается история
   - Снизу отображается элементы меню
  Перемещение по меню производится стрелками ВВЕРХ, ВНИЗ. Выбор нужного
элемента клавишей ВВОД. Также можно задействовать клавиши 1-9, они соот-
ветствуют номеру элемента меню.


[Архитектура]
  Имеется всего 10 команд, но поверьте этого Вам будет более чем достаточно,
а уж если мало, то дописывайте свои сами.

Описание команд:
  1. message msg
       msg - сообщение
       Это сообщение будет выводиться в верху экрана.

  2. clrscr
       Очищает экран, восстанавливает аттрибуты символа и перемещает курсор
       в позицию (2,0)

  3. clearmenu
       Убирает все элементы меню

  4. addmenuitem msg,labl
       msg  - сообщение (вариант совершения действия)
       labl - метка перехода в случае выбора этого пункта
       Добавляет элемент меню.
       ВНИМАНИЕ: Максимальное число элементов 9!!!

  5. getmenuitem
       Разделяет экран на 2 части (см. [Работа с XQuest]), выводит элементы
       меню и ждёт до тех пор пока Вы не выберите элемент.
       Когда выбирается элемент, происходит переход по метке (см п.4)

  6. EndQuest
       Завершает квест

  7. xgoto labl
       labl - метка
       Бузусловный переход по метке

  8. prisvoit var,value
       var   - номер переменной
       value - значение
       Присвоение переменной var значения value
       Кол-во переменных ограничено 100!!!
       Хотите больше, редактируйте (cpu.h--)

  9. ifpervalue var,oper,value,labl
       var   - номер переменной
       oper  - условие
       value - число
       labl  - метка
       Сравнение переменной и числа.
       Условный переход по метке.
       oper должен равняться одному из значений:
            ravno   = 0  '='
            bolshe  = 1  '>'
            menshe  = 2  '<'
            neravno = 3  '!='
            bolshe_ili_ravno = 4  '>='
            menshe_ili_ravno = 5  '<='

  10. ifperper var1,oper,var2,labl
       var1  - номер 1 переменной
       oper  - условие
       var2  - номер 2 переменной
       labl  - метка
       Сравнение двух переменных.
       Условный переход по метке.
       oper должен равняться одному из значений. (см.9)


Автор: Кривошеин Александр
       Беларусь, г.Минск
       e-mail: logosman@mail.ru
       web:    http://www.bsuiric.narod.ru