[[help:locations|Назад: Локации]]
====== Окно основного описания ======
Это то самое окно, которое используется чаще всего. В него выводятся практически все тексты игры, и оно не отключается.
**Окно основного описания** очищается автоматически, при переходе на локацию с помощью оператора **[[help:goto|GOTO]]** (**[[help:goto|GT]]**).
Чтобы вывести текст в **Окно основного описания**, нужно воспользоваться одним из следующих способов:
* Написать текст в поле “Описание” локации (Базовое описание локации) в Quest Generator. Тогда весь текст из этого поля автоматически будет выведен в **Окно основного описания** при переходе на локацию.
* Воспользоваться одной из команд для вывода текста, прописав эту команду в поле **Выполнить при посещении** локации в **Quest Generator**. При работе в текстовом редакторе у вас есть только этот способ.
===== Команды для работы с Окном основного описания =====
Под обозначением ''%%[$текст]%%'' ниже на странице понимается любая строка текста, число, значение выражения, переменной или функции.
==== Команды для вывода текста в Окно основного описания ====
* ''%%*P [$текст]%%'' - простой вывод текста. Выводит текст в **Окно основного описания** без перехода на новую строку. Пример:
*p 'Шла'
*p 'Саша'
*p 'По'
*p 'Шоссе'
После выполнения кода (если запустим игру) — в **Окне основного описания** мы увидим:
ШлаСашаПоШоссе
* ''%%*PL [$текст]%%'' - вывод текста, затем переход на новую строку. Пример:
*p 'Шла' & ! здесь выводим текст без перехода на новую строку
*p 'Саша' & ! и здесь тоже
*pl 'По'
*pl 'Шоссе'
После выполнения кода — в **Окне основного описания** мы увидим:
ШлаСашаПо
Шоссе
* Если не указать ''%%[$текст]%%'', то команда просто создаст переход на новую строку:
*p 'Шла Саша'
*pl
*p 'По шоссе'
В **Окне основного описания** мы увидим:
Шла Саша
По Шоссе
* Если не указать ''%%*pl%%'', а указать только ''%%[$текст]%%'', работа такой команды почти не будет отличаться от работы команды с операторм **''%%*pl%%''**. Это называется **[[help:keywords_operator|неявный оператор]]**:
'Во поле'
'берёзка'
'стояла'
! эквивалентно
pl 'Во поле'
pl 'берёзка'
*pl 'стояла'
* ''%%*NL [$текст]%%'' - переход на новую строку, а затем вывод текста. Пример:
*p 'Шла' & ! здесь выводим текст без перехода на новую строку
*p 'Саша' & ! и здесь тоже
*nl 'По'
*nl 'Шоссе'
После выполнения кода — в **Окне основного описания** мы увидим:
ШлаСаша
По
Шоссе
* Если не указать ''%%[$текст]%%'', то команда просто совершит переход на новую строку:
*p 'Шла Саша'
*nl
*p 'По Шоссе'
В **Окне основного описания** мы увидим:
Шла Саша
По Шоссе
==== Команды для очистки Окна основного описания ====
* **''%%*CLEAR%%''** или **''%%*CLR%%''** - очищает **Окно основного описания**. Пример:
*p 'Шла' & ! выводим текст без перехода на новую строку
*pl 'Саша' & ! выводим текст и переходим на новую строку
*nl 'По' & ! переходим на новую строку и выводим текст
*nl 'Шоссе' & ! переходим на новую строку и выводим текст
*clear & ! очищаем окно основного описания от всего текста
В результате работы этого кода **Окно основного описания** окажется пустым.
* **''%%CLS%%''** - эквивалентно конструкции “''%%CLEAR & *CLEAR & CLA & CMDCLEAR%%''”, т.е. очищает все окна, кроме списка предметов.
==== Функции для работы с Окном основного описания ====
* **''%%$MAINTXT%%''** - возвращает текст, выведенный в окно основного описания. Пример:
*p 'Ехал Грека Через Реку'
*nl 'Видит Грека В Реке Рак'
$text = $maintxt
В данном случае в переменную **''%%$text%%''** запишутся две строки текста:
Ехал Грека Через Реку
Видит Грека В Реке Рак
* ''%%$DESC([$локация])%%'' - возвращает текст базового описания локации с названием ''%%[$локация]%%''. Обратите внимание! Функция возвращает текст, написанный только в поле “Описание” (**Базовое описание**) редактора **Quest Generator**. При работе в текстовом редакторе данное поле вам недоступно и функция будет всегда возвращать пустую строку.\\ В **Базовом описании** можно использовать [[help:strings#podvyrazhenija|подвыражения]], функция **''%%$DESC%%''** автоматически “раскроет” их.
==== Системные переменные для управления Окном основного описания ====
* **''%%DISABLESCROLL%%''** - если значение переменной не равно ''%%0%%'', то запрещает автопрокрутку текста при его выводе в окно основного или дополнительное описания. **Что это значит**. Предположим, мы вывели на экран большой объём текста, а затем при нажатии на **действие** у нас выводится ещё один фрагментик текста. Если ''%%DISABLESCROLL = 0%%'', этот фрагментик текста при выводе заставит экран прокрутиться вниз. Если мы не хотим, чтобы экран прокручивался вниз в этом случае, мы присваиваем переменной **''%%DISABLESCROLL%%''** единицу.
* **''%%$BACKIMAGE%%''** - содержит путь к файлу фонового изображения для **Окна основного описания**.
* Фон в окне основного описания отображается в том случае, если значение данной переменной отлично от ''%%""%%'' (пустая строка) и файл изображения удалось загрузить.
* Необходимо указывать путь к изображению относительно файла игры:
! файл игры лежит в папке C:\QSP\myCoolGame
! файл изображения лежит в папке C:\QSP\myCoolGame\image и называется picture.png
! значит установить изображение фоном в окно основного описания мы можем так:
$backimage='image\picture.png'
* При этом фон вписывается в границы **Окна основного описания**, и управлять им в классическом плеере нельзя.
* Если вы хотите убрать фон, присвойте переменной **''%%$BACKIMAGE%%''** пустую строку:
$backimage = ''
===== Другие примеры =====
*P '1'
*PL '23'
*NL '456'
'78'
После выполнения кода в **Окно основного описания** будет выведено:
123
45678
Можно выводить не только строки, но и числа, и значения переменных, функций и результаты вычисления выражений:
*pl 'I ♥ QSP!'
*pl 256 / 12 * 9
137 + (2 * 9)
$curloc
*nl rand(999)
x = 15
*nl x
[[help:stat|Вперёд: Окно дополнительного описания]]