Инструменты пользователя

Инструменты сайта


help:main

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

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