<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://ifwiki.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%95%D0%B2%D0%B3</id>
	<title>IFВики - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://ifwiki.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%95%D0%B2%D0%B3"/>
	<link rel="alternate" type="text/html" href="https://ifwiki.ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/%D0%95%D0%B2%D0%B3"/>
	<updated>2026-04-21T09:21:00Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://ifwiki.ru/index.php?title=SMSQuest&amp;diff=15760</id>
		<title>SMSQuest</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=SMSQuest&amp;diff=15760"/>
		<updated>2017-03-22T10:36:15Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Самый популярный редактор для [[URQ]]-игр, написанный [[Евг|Евгом]]. Поддерживает быструю вставку основных функций (загружаемых из редактируемого шаблона), динамически генерируемый список [[локация|локаций]] и предметов [[инвентарь|инвентаря]], предварительное выполнение кода в [[интерпретатор|интерпретаторе]] и др.&lt;br /&gt;
Написан на VB. Известный баг - при сохранении на флешку иногда сохраняет пустой файл.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://smsquest.plut.info/smsquest.shtm Официальный сайт SMSQuest] (историческая реконструкция сайта [http://smsquest.plut.info/ smsquest.by.ru])&lt;br /&gt;
[[Категория:Глоссарий]] [[Категория:Инструменты]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9923</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9923"/>
		<updated>2014-01-18T09:54:59Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Предопределенные функции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
=== Кнопки ===&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте кнопки. Кнопки всегда расположены после выведенного текста и используются для переходов по меткам.&lt;br /&gt;
Начиная с версии 1.9.1, формат кнопок таков:&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &amp;lt;локация&amp;gt;[(param1, param2, ...)][, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
Где &#039;&#039;&#039;&amp;lt;локация&amp;gt;&#039;&#039;&#039; - имя метки, на которую будет совершен переход, &#039;&#039;&#039;param1&#039;&#039;&#039;, &#039;&#039;&#039;param1&#039;&#039;&#039; и т.д.  - параметры, передаваемые в эту локацию, &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; - надпись на кнопке, которая отображается на экране. В случае если &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &amp;lt;nowiki&amp;gt;[[тропинка|trop]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &amp;lt;nowiki&amp;gt;[[тропинка]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы, в которые ведется запись, должны иметь расширение *.txt. Файлы создаются в той же папке, что и файл игры. В переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; учитывается только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Чтобы декоратор данного типа был активен, в переменной &#039;&#039;decor_&amp;lt;имя&amp;gt;_enabled&#039;&#039; должна стоять 1.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_enabled&#039;&#039;&#039; – если установлен в 0, то декоратор типа TEXTBUTTON неактивен. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
Функция &#039;&#039;&#039;_trim&#039;&#039;&#039; обрезает пробелы с начала и в конце строки, вызывается как proc _trim(str), где str — строка (строковая переменная или строка в кавычках).&lt;br /&gt;
&lt;br /&gt;
Функция &#039;&#039;&#039;_scopy&#039;&#039;&#039; копирует кусочек строки, вызывается как proc _scopy(str, start[, len]), где str — строка, start — номер символа в строке, с которого начинать копировать и len — количество копируемых символов. Если параметр len опущен, то строка копируется до конца.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
* Переменная &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержит имя файла, с которым работают команды &#039;&#039;&#039;fp&#039;&#039;&#039;, &#039;&#039;&#039;fpln&#039;&#039;&#039; и &#039;&#039;&#039;newfile&#039;&#039;&#039;.&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9922</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9922"/>
		<updated>2014-01-18T09:54:42Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Предопределенные функции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
=== Кнопки ===&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте кнопки. Кнопки всегда расположены после выведенного текста и используются для переходов по меткам.&lt;br /&gt;
Начиная с версии 1.9.1, формат кнопок таков:&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &amp;lt;локация&amp;gt;[(param1, param2, ...)][, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
Где &#039;&#039;&#039;&amp;lt;локация&amp;gt;&#039;&#039;&#039; - имя метки, на которую будет совершен переход, &#039;&#039;&#039;param1&#039;&#039;&#039;, &#039;&#039;&#039;param1&#039;&#039;&#039; и т.д.  - параметры, передаваемые в эту локацию, &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; - надпись на кнопке, которая отображается на экране. В случае если &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &amp;lt;nowiki&amp;gt;[[тропинка|trop]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &amp;lt;nowiki&amp;gt;[[тропинка]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы, в которые ведется запись, должны иметь расширение *.txt. Файлы создаются в той же папке, что и файл игры. В переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; учитывается только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Чтобы декоратор данного типа был активен, в переменной &#039;&#039;decor_&amp;lt;имя&amp;gt;_enabled&#039;&#039; должна стоять 1.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_enabled&#039;&#039;&#039; – если установлен в 0, то декоратор типа TEXTBUTTON неактивен. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
Функция &#039;&#039;&#039;_trim&#039;&#039;&#039;&#039; обрезает пробелы с начала и в конце строки, вызывается как proc _trim(str), где str — строка (строковая переменная или строка в кавычках).&lt;br /&gt;
&lt;br /&gt;
Функция &#039;&#039;&#039;_scopy&#039;&#039;&#039; копирует кусочек строки, вызывается как proc _scopy(str, start[, len]), где str — строка, start — номер символа в строке, с которого начинать копировать и len — количество копируемых символов. Если параметр len опущен, то строка копируется до конца.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
* Переменная &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержит имя файла, с которым работают команды &#039;&#039;&#039;fp&#039;&#039;&#039;, &#039;&#039;&#039;fpln&#039;&#039;&#039; и &#039;&#039;&#039;newfile&#039;&#039;&#039;.&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9921</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9921"/>
		<updated>2014-01-18T09:52:09Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Кнопки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
=== Кнопки ===&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте кнопки. Кнопки всегда расположены после выведенного текста и используются для переходов по меткам.&lt;br /&gt;
Начиная с версии 1.9.1, формат кнопок таков:&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &amp;lt;локация&amp;gt;[(param1, param2, ...)][, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
Где &#039;&#039;&#039;&amp;lt;локация&amp;gt;&#039;&#039;&#039; - имя метки, на которую будет совершен переход, &#039;&#039;&#039;param1&#039;&#039;&#039;, &#039;&#039;&#039;param1&#039;&#039;&#039; и т.д.  - параметры, передаваемые в эту локацию, &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; - надпись на кнопке, которая отображается на экране. В случае если &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &amp;lt;nowiki&amp;gt;[[тропинка|trop]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &amp;lt;nowiki&amp;gt;[[тропинка]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы, в которые ведется запись, должны иметь расширение *.txt. Файлы создаются в той же папке, что и файл игры. В переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; учитывается только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Чтобы декоратор данного типа был активен, в переменной &#039;&#039;decor_&amp;lt;имя&amp;gt;_enabled&#039;&#039; должна стоять 1.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_enabled&#039;&#039;&#039; – если установлен в 0, то декоратор типа TEXTBUTTON неактивен. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
* Переменная &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержит имя файла, с которым работают команды &#039;&#039;&#039;fp&#039;&#039;&#039;, &#039;&#039;&#039;fpln&#039;&#039;&#039; и &#039;&#039;&#039;newfile&#039;&#039;&#039;.&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9920</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9920"/>
		<updated>2014-01-18T09:51:51Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Кнопки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
=== Кнопки ===&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте кнопки. Кнопки всегда расположены после выведенного текста и используются для переходов по меткам.&lt;br /&gt;
Начиная с версии 1.9.1, формат кнопок таков:&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &amp;lt;локация&amp;gt;[(param1, param2, ...)][, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
Где &#039;&#039;&#039;&amp;lt;локация&amp;gt;&#039;&#039;&#039; - имя метки, на которую будет совершен переход, &#039;&#039;&#039;param1&#039;&#039;&#039;, &#039;&#039;&#039;param1&#039;&#039;&#039; и т.д.  - параметры, передаваемые в эту локацию, &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; - надпись на кнопке, которая отображается на экране. В случае если &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; не указана в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &amp;lt;nowiki&amp;gt;[[тропинка|trop]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &amp;lt;nowiki&amp;gt;[[тропинка]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы, в которые ведется запись, должны иметь расширение *.txt. Файлы создаются в той же папке, что и файл игры. В переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; учитывается только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Чтобы декоратор данного типа был активен, в переменной &#039;&#039;decor_&amp;lt;имя&amp;gt;_enabled&#039;&#039; должна стоять 1.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_enabled&#039;&#039;&#039; – если установлен в 0, то декоратор типа TEXTBUTTON неактивен. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
* Переменная &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержит имя файла, с которым работают команды &#039;&#039;&#039;fp&#039;&#039;&#039;, &#039;&#039;&#039;fpln&#039;&#039;&#039; и &#039;&#039;&#039;newfile&#039;&#039;&#039;.&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9919</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9919"/>
		<updated>2014-01-18T09:51:27Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Кнопки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
=== Кнопки ===&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте кнопки. Кнопки всегда расположены после выведенного текста и используются для переходов по меткам.&lt;br /&gt;
Начиная с версии 1.9.1, формат кнопок таков:&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &amp;lt;локация&amp;gt;[(param1, param2, ...)][, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
Где &#039;&#039;&#039;&amp;lt;локация&amp;gt;&#039;&#039;&#039; - имя метки, на которую будет совершен переход, &#039;&#039;&#039;param1&#039;&#039;&#039;, &#039;&#039;&#039;param1&#039;&#039;&#039; и т.д.  - параметры, передаваемые в эту локацию), &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; - надпись на кнопке, которая отображается на экране. В случае если &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; не указана в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &amp;lt;nowiki&amp;gt;[[тропинка|trop]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &amp;lt;nowiki&amp;gt;[[тропинка]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы, в которые ведется запись, должны иметь расширение *.txt. Файлы создаются в той же папке, что и файл игры. В переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; учитывается только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Чтобы декоратор данного типа был активен, в переменной &#039;&#039;decor_&amp;lt;имя&amp;gt;_enabled&#039;&#039; должна стоять 1.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_enabled&#039;&#039;&#039; – если установлен в 0, то декоратор типа TEXTBUTTON неактивен. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
* Переменная &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержит имя файла, с которым работают команды &#039;&#039;&#039;fp&#039;&#039;&#039;, &#039;&#039;&#039;fpln&#039;&#039;&#039; и &#039;&#039;&#039;newfile&#039;&#039;&#039;.&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9918</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9918"/>
		<updated>2014-01-18T09:51:07Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Кнопки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
=== Кнопки ===&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте кнопки. Кнопки всегда расположены после выведенного текста и используются для переходов по меткам.&lt;br /&gt;
Начиная с версии 1.9.1, формат кнопок таков:&lt;br /&gt;
 &#039;&#039;btn&#039;&#039; &amp;lt;локация&amp;gt;[(param1, param2, ...)][, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
Где &#039;&#039;&#039;&amp;lt;локация&amp;gt;&#039;&#039;&#039; - имя метки, на которую будет совершен переход, &#039;&#039;&#039;param1&#039;&#039;&#039;, &#039;&#039;&#039;param1&#039;&#039;&#039; и т.д.  - параметры, передаваемые в эту локацию), &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; - надпись на кнопке, которая отображается на экране. В случае если &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; не указана в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &amp;lt;nowiki&amp;gt;[[тропинка|trop]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &amp;lt;nowiki&amp;gt;[[тропинка]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы, в которые ведется запись, должны иметь расширение *.txt. Файлы создаются в той же папке, что и файл игры. В переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; учитывается только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Чтобы декоратор данного типа был активен, в переменной &#039;&#039;decor_&amp;lt;имя&amp;gt;_enabled&#039;&#039; должна стоять 1.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_enabled&#039;&#039;&#039; – если установлен в 0, то декоратор типа TEXTBUTTON неактивен. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
* Переменная &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержит имя файла, с которым работают команды &#039;&#039;&#039;fp&#039;&#039;&#039;, &#039;&#039;&#039;fpln&#039;&#039;&#039; и &#039;&#039;&#039;newfile&#039;&#039;&#039;.&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9917</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9917"/>
		<updated>2014-01-18T09:50:43Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Текст */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
== Кнопки ==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте кнопки. Кнопки всегда расположены после выведенного текста и используются для переходов по меткам.&lt;br /&gt;
Начиная с версии 1.9.1, формат кнопок таков:&lt;br /&gt;
 &#039;&#039;btn&#039;&#039; &amp;lt;локация&amp;gt;[(param1, param2, ...)][, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
Где &#039;&#039;&#039;&amp;lt;локация&amp;gt;&#039;&#039;&#039; - имя метки, на которую будет совершен переход, &#039;&#039;&#039;param1&#039;&#039;&#039;, &#039;&#039;&#039;param1&#039;&#039;&#039; и т.д.  - параметры, передаваемые в эту локацию), &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; - надпись на кнопке, которая отображается на экране. В случае если &#039;&#039;&#039;&amp;lt;надпись на кнопке&amp;gt;&#039;&#039;&#039; не указана в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &amp;lt;nowiki&amp;gt;[[тропинка|trop]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &amp;lt;nowiki&amp;gt;[[тропинка]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы, в которые ведется запись, должны иметь расширение *.txt. Файлы создаются в той же папке, что и файл игры. В переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; учитывается только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Чтобы декоратор данного типа был активен, в переменной &#039;&#039;decor_&amp;lt;имя&amp;gt;_enabled&#039;&#039; должна стоять 1.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_enabled&#039;&#039;&#039; – если установлен в 0, то декоратор типа TEXTBUTTON неактивен. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
* Переменная &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержит имя файла, с которым работают команды &#039;&#039;&#039;fp&#039;&#039;&#039;, &#039;&#039;&#039;fpln&#039;&#039;&#039; и &#039;&#039;&#039;newfile&#039;&#039;&#039;.&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9916</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9916"/>
		<updated>2014-01-18T09:41:01Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Создание декораторов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &amp;lt;nowiki&amp;gt;[[тропинка|trop]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &amp;lt;nowiki&amp;gt;[[тропинка]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы, в которые ведется запись, должны иметь расширение *.txt. Файлы создаются в той же папке, что и файл игры. В переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; учитывается только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Чтобы декоратор данного типа был активен, в переменной &#039;&#039;decor_&amp;lt;имя&amp;gt;_enabled&#039;&#039; должна стоять 1.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_enabled&#039;&#039;&#039; – если установлен в 0, то декоратор типа TEXTBUTTON неактивен. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
* Переменная &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержит имя файла, с которым работают команды &#039;&#039;&#039;fp&#039;&#039;&#039;, &#039;&#039;&#039;fpln&#039;&#039;&#039; и &#039;&#039;&#039;newfile&#039;&#039;&#039;.&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9915</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9915"/>
		<updated>2014-01-18T09:38:54Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Переменные декораторов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &amp;lt;nowiki&amp;gt;[[тропинка|trop]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &amp;lt;nowiki&amp;gt;[[тропинка]]&amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы, в которые ведется запись, должны иметь расширение *.txt. Файлы создаются в той же папке, что и файл игры. В переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; учитывается только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_enabled&#039;&#039;&#039; – если установлен в 0, то декоратор типа TEXTBUTTON неактивен. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
* Переменная &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержит имя файла, с которым работают команды &#039;&#039;&#039;fp&#039;&#039;&#039;, &#039;&#039;&#039;fpln&#039;&#039;&#039; и &#039;&#039;&#039;newfile&#039;&#039;&#039;.&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9233</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9233"/>
		<updated>2013-08-23T16:23:20Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Другое */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы, в которые ведется запись, должны иметь расширение *.txt. Файлы создаются в той же папке, что и файл игры. В переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; учитывается только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &lt;br /&gt;
&amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, &lt;br /&gt;
высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
* Переменная &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержит имя файла, с которым работают команды &#039;&#039;&#039;fp&#039;&#039;&#039;, &#039;&#039;&#039;fpln&#039;&#039;&#039; и &#039;&#039;&#039;newfile&#039;&#039;&#039;.&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9232</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9232"/>
		<updated>2013-08-23T16:21:10Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Вывод в текстовый файл */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы, в которые ведется запись, должны иметь расширение *.txt. Файлы создаются в той же папке, что и файл игры. В переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; учитывается только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &lt;br /&gt;
&amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, &lt;br /&gt;
высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9231</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9231"/>
		<updated>2013-08-23T16:20:25Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Вывод в текстовый файл */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы в которые ведется запись должны иметь расширение *.txt. Все файлы создаются в той же папке, что и файл игры, в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержится только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &lt;br /&gt;
&amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, &lt;br /&gt;
высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9230</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9230"/>
		<updated>2013-08-23T16:19:58Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Вывод в текстовый файл */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы в которые ведется запись должны иметь расширение *.txt. Все файлы создаются в той же папке, что и файл игры, в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержится только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &lt;br /&gt;
&amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, &lt;br /&gt;
высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9229</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9229"/>
		<updated>2013-08-23T16:19:31Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Вывод в текстовый файл */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039;, но только для записи текста в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;&#039;fp_filename&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы в которые ведется запись должны иметь расширение *.txt. Все файлы создаются в той же папке, что и файл игры, в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержится только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &lt;br /&gt;
&amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, &lt;br /&gt;
высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9228</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9228"/>
		<updated>2013-08-23T16:18:57Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Текст */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
===Вывод в текстовый файл===&lt;br /&gt;
&lt;br /&gt;
С версии 1.9 &#039;&#039;&#039;FURQ&#039;&#039;&#039; поддерживает вывод текста в текстовый файл. Делается это при помощи команд &#039;&#039;&#039;fp&#039;&#039;&#039; и &#039;&#039;&#039;fpln&#039;&#039;&#039;&#039; (аналог &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; только для записи в файл).&lt;br /&gt;
&lt;br /&gt;
Синтаксис:&lt;br /&gt;
 &#039;&#039;&#039;fprint &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fp &amp;lt;текст&amp;gt;&#039;&#039;&#039;&#039;&lt;br /&gt;
Оператор дописывает &#039;&#039;&#039;текст&#039;&#039;&#039; в файл, имя которого содержится в переменной &#039;&#039;&#039;&#039;fp_filename&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;fprintln &amp;lt;текст&amp;gt;&#039;&#039;&#039; или &#039;&#039;&#039;fpln &amp;lt;текст&amp;gt;&#039;&#039;&#039;&#039;&lt;br /&gt;
Оператор сохраняет &#039;&#039;&#039;текст&#039;&#039;&#039; и перевод строки в файл, имя которого содержится в переменной &#039;&#039;&#039;&#039;fp_filename&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Все файлы в которые ведется запись должны иметь расширение *.txt. Все файлы создаются в той же папке, что и файл игры, в переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; содержится только имя файла, любой путь автоматически игнорируется.&lt;br /&gt;
&lt;br /&gt;
Для работы с переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; существует команда &#039;&#039;&#039;newfile&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;newfile &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
Команда присваивает переменной &#039;&#039;&#039;fp_filename&#039;&#039;&#039; имя файла и стирает этот файл.  Если же просто присвоить переменную &#039;&#039;&#039;fp_filename&#039;&#039;&#039;, то новые записи будут добавляться к уже существующему файлу.&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &lt;br /&gt;
&amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, &lt;br /&gt;
высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9227</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9227"/>
		<updated>2013-08-23T16:07:44Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Создание декораторов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &lt;br /&gt;
&amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации для перехода в кавычках. &#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;&#039;Рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, &lt;br /&gt;
высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9226</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9226"/>
		<updated>2013-08-23T16:05:40Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Создание декораторов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &lt;br /&gt;
&amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке, &#039;&#039;&#039;рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки. Надпись на текстовой кнопке можно менять при помощи переменной &#039;&#039;&#039;decor_&amp;lt;имя&amp;gt;_text&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, &lt;br /&gt;
высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9225</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9225"/>
		<updated>2013-08-23T16:03:20Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Декораторы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039; - декоратор «текстовая кнопка»: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) TEXTBUTTON [&amp;quot;рамка&amp;quot;, ] &amp;quot;текст&amp;quot;, &lt;br /&gt;
&amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Текст&#039;&#039;&#039; — надпись на кнопке, &#039;&#039;&#039;рамка&#039;&#039;&#039; — это название рамки, которая должна быть определена в скине. Рамка применяется если нужно сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;CLICKAREA&#039;&#039;&#039; – это невидимый прямоугольник, который реагирует на нажатия мыши (клики): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) CLICKAREA ширина, высота, &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Целевая локация&#039;&#039;&#039; — имя локации в кавычках. Декоратор поддерживает модификаторы (см. раздел о ссылках), т.е. можно сделать выпадающее меню, переход или локальное действие.&lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; - декоратор «кнопка-картинка»:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (x, y[, z]) IMGBUTTON &amp;quot;файл-текстура&amp;quot;, [tx, ty, ширина, &lt;br /&gt;
высота,] &amp;quot;целевая локация&amp;quot;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;файл-текстура&#039;&#039;&#039; — это полноцветный PNG с прозрачностью, &lt;br /&gt;
&#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039; — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ, &lt;br /&gt;
&#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; — это ширина и высота одного КАДРА.&lt;br /&gt;
&lt;br /&gt;
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая.&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;tx&#039;&#039;&#039;, &#039;&#039;&#039;ty&#039;&#039;&#039;, &#039;&#039;&#039;ширина&#039;&#039;&#039; и &#039;&#039;&#039;высота&#039;&#039;&#039; не указаны, то вся текстура просто делится на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы FURQ. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.&lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_target&#039;&#039;&#039; - позволяет устанавливать имя &amp;quot;целевой локации&amp;quot;, если такая используется в декораторе&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9209</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=9209"/>
		<updated>2013-08-21T10:29:05Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Подстановки (#...$ и #%...$) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
Подстановка #...$ работает для числовых значений переменных, тогда как #%...$ для текстовых. Для подробностей см. [http://www.ifwiki.ru/FireURQ:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#.D0.92.D1.8B.D0.B2.D0.BE.D0.B4_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D1.85 руководство].&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=%D0%91%D1%8B%D1%87%D0%BA%D0%BE%D0%B2,_%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D0%B9&amp;diff=9207</id>
		<title>Бычков, Евгений</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=%D0%91%D1%8B%D1%87%D0%BA%D0%BE%D0%B2,_%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D0%B9&amp;diff=9207"/>
		<updated>2013-08-20T09:55:09Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известен как [[Евг]], [[brevno]].&lt;br /&gt;
Один из самых известных деятелей [[URQ]], разработчик [[SMSQuest]]. Бессменный член жюри на [[ЛОК]].&lt;br /&gt;
&lt;br /&gt;
== Общие факты ==&lt;br /&gt;
&lt;br /&gt;
Уроженец далекой и солнечной Латвии, Евг привнес в URQ-сообщество не только [[SMSQuest|смску]] и [[Белый_бычок|игру про белого бычка]], но и нездоровую долю здорового юмора.&lt;br /&gt;
Знаменит изощренной фантазией, выражающейся в темах для [[ЛОК]].&lt;br /&gt;
Самый популярный соавтор игр на URQ, особенно незаконченных. Из законченных и удавшихся разработок следует отметить серию [[Лифт|&amp;quot;Лифт&amp;quot;]], написанную совместно с [[Ларри Бэггинс]]ом; из закончившихся, но не удавшихся (по мнению второго автора) - легендарный [[ЗИФ]].&lt;br /&gt;
Завсегдатай канала, король латвийского уркинга.&lt;br /&gt;
Причастность к скандальным инцидентам с участием адских человекоподобных роботов отрицает.&lt;br /&gt;
Также крайне знаменит скандальным римейком песни &amp;quot;Хава Нагила&amp;quot;, спетый дуэтом со знаменитым участником URQ-сообщества, скрывающегося под псевдонимом [[ZombX]].&lt;br /&gt;
&lt;br /&gt;
== Любимые фразы (2004 года) ==&lt;br /&gt;
&lt;br /&gt;
* ж)&lt;br /&gt;
* О Джозеф&lt;br /&gt;
* Мой масса&lt;br /&gt;
* Вик, приват&lt;br /&gt;
* Вик, форум&lt;br /&gt;
* Вик, аплоад&lt;br /&gt;
* Вик, мыло&lt;br /&gt;
* Хрен ли нам, красивым теткам&lt;br /&gt;
&lt;br /&gt;
==Игры==&lt;br /&gt;
&lt;br /&gt;
* [[Белый бычок]] (2002, [[URQ]])&lt;br /&gt;
* [[Умоисступление]] (2009, [[Tweebox]]) -- победитель [[дуэль|дуэли]]&lt;br /&gt;
* [[Последнее тело]] (2009, [[URQ]]) -- второе место на [[ЛОК 2009]], победитель [[дуэль|дуэли]]&lt;br /&gt;
* [[Человек из никогда]] (2011, [[URQ]]/[[Instead]]) -- участник [[дуэль|дуэли]], лучший сюжет года по мнению публики ([[Золотой Хомяк 2011]])&lt;br /&gt;
&lt;br /&gt;
===В соавторстве===&lt;br /&gt;
* [[2Viс]] ([[Goraph]], [[Korwin]], [[Terracon]], [[Евг]], 2004, [[URQ]])&lt;br /&gt;
* [[ЗИФ]] ([[Евг]] и [[Goraph]], 2005, [[URQ]]) -- второе место на [[Новогодний Блиц-конкурс 2004-2005|Новогоднем Блице]]&lt;br /&gt;
* [[Хроники капитана Блуда: Тайна гипсовых фаллоимитаторов]] ([[Goraph]] &amp;amp; [[Евг]], 2008,[[Tweebox]])&lt;br /&gt;
* [[Во ржи: куча неприятностей]] ([[Евг]], [[Xlomid]] и [[MS Alzheimer]], 2009, [[URQ]]) -- лучший персонаж года ([[Золотой Хомяк 2009]])&lt;br /&gt;
* [[SHOOT YOUR EVIL TWIN BROTHER WHO HAS TRAPPED YOU IN A MIRROR ROOM AND WHO DRINKS PEOPLE&#039;S BLOOD]] ([[Евг]] и [[Xlomid]], [[URQ]]) -- 4е место на [[TWIFcomp]] 2010&lt;br /&gt;
* [[С новым годом, Алиса!]] ([[Аджента]], [[Вета]], [[Гораф]], [[Евг]], [[Чикаго]], идея [[Туголуков, Евгений|Корвина]], 2011, [[URQ]]) -- участник конкурса [[Буквица]]&lt;br /&gt;
&lt;br /&gt;
== Конкурсы ==&lt;br /&gt;
* [[ЛОК]] (создание/проведение, 2004 - ..)&lt;br /&gt;
* [[Вжж!]] (создание/проведение, 2010 - ..)&lt;br /&gt;
* [[КРИЛ]] (проведение, 2010 - 2012)&lt;br /&gt;
&lt;br /&gt;
==Ссылки==&lt;br /&gt;
* [[ifwiki-en:Evgeny Bychkov|Страничка Евга на ifwiki.org]]&lt;br /&gt;
* [http://www.urq.eclub.lv/EvgFAQ.html FAQ]&lt;br /&gt;
* [http://plut.info Сайт]&lt;br /&gt;
* [http://kril.ifiction.ru Блог КРИЛ]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=%D0%9F%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%BA%D0%BE,_%D0%AE%D1%80%D0%B8%D0%B9&amp;diff=9206</id>
		<title>Павленко, Юрий</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=%D0%9F%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%BA%D0%BE,_%D0%AE%D1%80%D0%B8%D0%B9&amp;diff=9206"/>
		<updated>2013-08-20T09:53:47Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Юрий Павленко&#039;&#039;&#039; (он же &#039;&#039;&#039;Goraph&#039;&#039;&#039;, он же &#039;&#039;&#039;Гораф&#039;&#039;&#039;, он же &#039;&#039;&#039;Гор&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== Общие факты ==&lt;br /&gt;
* Известный персонаж в мире русской [[ИЛ]], особенно в [[URQ]] сообществе.&lt;br /&gt;
* На рубеже 2005 и 2006 годов проводил и обозревал [[Зимний Конкурс 2005-2006|Зимний конкурс]].&lt;br /&gt;
* Автор множества замечательных игр на [[URQ|урке]], [[RTADS|Тадсе]] и других платформах (постоянно пробует новые). Среди наиболее известных его работ - незавершенная серия игр про [[Капитан Блуд|Капитана Блуда]] ([[Хроники капитана Блуда: Тайна левой ягодицы]] на [[URQ]], [[Хроники капитана Блуда: Тайна китайского чая со льдом]] на [[RTADS]]), серия игр про видру ([[Как видра, йожык и коъот бъолки памахали]] и др.).&lt;br /&gt;
* Будущий лучший начинающий писатель Украины. Уже имеет на своем счету опубликованный(ные) рассказ(ы) в сборнике начинающих авторов.&lt;br /&gt;
* Прекрасный импровизатор. Может за несколько минут во всех подробностях придумать увлекательный сюжет для игры, чтобы потом несколько лет откладывать её написание. А когда, наконец, начинает писать эту игру, понять, что уже забыл всё, что когда-то придумал.&lt;br /&gt;
* Имеет в запасе и в разработке не менее десятка сюжетов для игр одновременно. Не считая тех, о которых забыл вчера.&lt;br /&gt;
* Когда [[Гораф]]у необходимо быстро написать новую игру, он просто выкидывает лишние сюжетные линии из какой-нибудь недописанной старой и выкладывает то, что получилось.&lt;br /&gt;
* Вредные привычки скрывает. Неженат.&lt;br /&gt;
&lt;br /&gt;
==Игры==&lt;br /&gt;
===На URQ===&lt;br /&gt;
* [[Приключения Сары Фаерман: Мрачная тайна Катакомб Мрака]]&lt;br /&gt;
* [[Приключения Сары Фаерман: Темная тайна темного хлева]]&lt;br /&gt;
* [[Хроники капитана Блуда: Тайна левой ягодицы]] (серия &amp;quot;[[Капитан Блуд]]&amp;quot;)&lt;br /&gt;
* [[Демоны темной стороны: Черный маг Ностромо]]&lt;br /&gt;
* [[Рисовая биржа]]&lt;br /&gt;
* [[Как видра, йожык и коъот бъолки памахали]] (серия &amp;quot;[[Видра, йожык и коъот|Видра]]&amp;quot;)&lt;br /&gt;
* [[Адская суббота]]&lt;br /&gt;
* [[Трансмутация]]&lt;br /&gt;
* [[Как видра, йожык и коъот в хеллоууолк стирчали]] (серия &amp;quot;[[Видра, йожык и коъот|Видра]]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===На QSP===&lt;br /&gt;
* [[1812]]&lt;br /&gt;
* [[Глод: Запах Зверя]]&lt;br /&gt;
&lt;br /&gt;
===На RTADS===&lt;br /&gt;
* [[Хроники капитана Блуда: Тайна китайского чая со льдом]] (серия &amp;quot;[[Капитан Блуд]]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===В соавторстве:===&lt;br /&gt;
* [[Рига]] ([[Goraph]] &amp;amp; [[KroL]])&lt;br /&gt;
* [[ЗИФ]] ([[Goraph]] &amp;amp; [[Евг]])&lt;br /&gt;
* [[Хроники капитана Блуда: Тайна гипсовых фаллоимитаторов]] ([[Goraph]] &amp;amp; [[Евг]]) (серия &amp;quot;[[Капитан Блуд]]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Любимые фразы (2004 года)==&lt;br /&gt;
*Да это просто задачка для [[Капитан Блуд|капитана Блуда]]...&lt;br /&gt;
*Это же сюжет для квеста!&lt;br /&gt;
*Вычеркните меня из соавторов!&lt;br /&gt;
*Вы все сфальсифицировали&lt;br /&gt;
*Мир захвачен транснациональными корпорациями&lt;br /&gt;
*Я, между прочим, говорил это абсолютно серьезно&lt;br /&gt;
*Я молод и стар&lt;br /&gt;
*Горокраксы&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
[http://pavlenko.biz Сайт &#039;&#039;&#039;Горафа&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=%D0%97%D0%BE%D0%BB%D0%BE%D1%82%D0%BE%D0%B9_%D0%A5%D0%BE%D0%BC%D1%8F%D0%BA_2012&amp;diff=8773</id>
		<title>Золотой Хомяк 2012</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=%D0%97%D0%BE%D0%BB%D0%BE%D1%82%D0%BE%D0%B9_%D0%A5%D0%BE%D0%BC%D1%8F%D0%BA_2012&amp;diff=8773"/>
		<updated>2013-06-13T14:35:31Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:23em; font-size:90%; text-align:left; float:right; border:1px #CCC solid; margin-left:1em; margin-bottom:1em; border-collapse: collapse;&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-size:110%; text-align: center; background-color: #FDF3C4;&amp;quot; | [[Изображение:Homyak2012-fullsize.png|300px]]&lt;br /&gt;
|- style=&amp;quot;border:1px #CCC solid;&amp;quot;&lt;br /&gt;
! Золотой Хомяк 2012&lt;br /&gt;
|}&lt;br /&gt;
Премия за достижения в интерактивной литературе на русском языке&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Регламент ==&lt;br /&gt;
Премия организована для определения лучших текстовых игр (interactive fiction) 2012 года.&lt;br /&gt;
В премии автоматически участвуют все текстовые игры, выпущенные с 1 января 2012 года по 31 декабря 2012 года.&lt;br /&gt;
Голосование проводится в следующих номинациях:&lt;br /&gt;
* Игра года&lt;br /&gt;
* Лучшие загадки&lt;br /&gt;
* Лучший сюжет&lt;br /&gt;
* Лучшая атмосфера&lt;br /&gt;
* Лучший литературный стиль новая&lt;br /&gt;
* Лучшие персонажи&lt;br /&gt;
* Лучшее оформление&lt;br /&gt;
* Проект года — проект, который был наиболее значимым в 2012 году.&lt;br /&gt;
Премию в конкретной номинации получает игра с наибольшим числом голосов по этой номинации. В случае одинакового числа максимальных голосов премию получат несколько игр сразу.&lt;br /&gt;
== Выбор публики ==&lt;br /&gt;
«Выбор публики» — результаты по всем голосам пользователей, проголосовавших на сайте премии.&lt;br /&gt;
Голосование публики проводится в два тура.&lt;br /&gt;
* Первый тур: в каждой номинации голосущий имеет право выбрать до трёх игр из всего списка, которые по его/её мнению достойны получить конкретную премию.&lt;br /&gt;
* Второй тур: голосующие выбирают в каждой номинации одну игру из 5-10 игр (в меньшую сторону) с наибольшим числов голосов. Жюри вправе выбрать, сколько игр выйдет во второй тур.&lt;br /&gt;
При голосовании рекомендуется написать комментарий, почему вы выбрали именно эту игру в конкретной номинации.&lt;br /&gt;
== Выбор жюри ==&lt;br /&gt;
«Выбор жюри» — результаты по голосам пользователей, являющимися членами жюри премии.&lt;br /&gt;
Голоса жюри подсчитываются отдельно от голосов других пользователей.&lt;br /&gt;
Члены жюри должны сыграть в каждую игру, за которую поступит хотя бы один голос пользователей.&lt;br /&gt;
После проведения премии голоса всех пользователей, включая голоса жюри, будут доступны для просмотра для зарегистрированных пользователей на сайте.&lt;br /&gt;
Сроки проведения:&lt;br /&gt;
* Первый тур: с 14 января по полночь с 26 на 27 января.&lt;br /&gt;
* Второй тур: с 28 января по полночь с 8 на 9 февраля. Тогда же оканчивается голосование жюри.&lt;br /&gt;
== Поощрения ==&lt;br /&gt;
Награждение будет проведено 10 февраля 2013 года в 20:00 по московскому времени на канале #ifrus сети irc.forestnet.org.&lt;br /&gt;
Голосовать нужно честно и объективно. Запрещается голосовать за свои игры и проекты.&lt;br /&gt;
Победитель в номинации «Игра года» по версии публики и победители во всех номинациях по версии жюри получат в подарок книгу-игру «Холодное сердце Далрока».&lt;br /&gt;
== Победители ==&lt;br /&gt;
&#039;&#039;&#039;Игра года&#039;&#039;&#039;:&lt;br /&gt;
* Выбор публики: [[Драконы и принцессы]] ([[Morych]]; [[AXMA Story Maker]])&lt;br /&gt;
* Выбор жюри: [[Драконы и принцессы]] ([[Morych]]; [[AXMA Story Maker]])&lt;br /&gt;
&#039;&#039;&#039;Лучшие загадки&#039;&#039;&#039;:&lt;br /&gt;
* Выбор публики: [[Гражданка Готье]] ([[Goraph]]; [[AXMA Story Maker]])&lt;br /&gt;
* Выбор жюри: [[Гражданка Готье]] ([[Goraph]]; [[AXMA Story Maker]])&lt;br /&gt;
&#039;&#039;&#039;Лучший сюжет&#039;&#039;&#039;:&lt;br /&gt;
* Выбор публики: [[Драконы и принцессы]] ([[Morych]]; [[AXMA Story Maker]])&lt;br /&gt;
* Выбор жюри: &lt;br /&gt;
** [[Легенды всегда врут]] ([[Ulrick]]; [[AXMA Story Maker]])&lt;br /&gt;
** [[Деревянный город]] ([[Graf]]; [[Квестер]])&lt;br /&gt;
&#039;&#039;&#039;Лучшая атмосфера&#039;&#039;&#039;:&lt;br /&gt;
* Выбор публики: [[Деревянный город]] ([[Graf]]; [[Квестер]])&lt;br /&gt;
* Выбор жюри: [[Двадцать желаний]] ([[April]]; [[AXMA Story Maker]])&lt;br /&gt;
&#039;&#039;&#039;Лучший литературный стиль&#039;&#039;&#039;:&lt;br /&gt;
* Выбор публики: [[Приватир Её Величества]] ([[Cheshire]]; [[AXMA Story Maker]])&lt;br /&gt;
* Выбор жюри: [[Гражданка Готье]] ([[Goraph]]; [[AXMA Story Maker]])&lt;br /&gt;
&#039;&#039;&#039;Лучший персонаж&#039;&#039;&#039;:&lt;br /&gt;
* Выбор публики: Нафанин из игры [[Почему в кладовке шум?]] ([[Серый Волк]]; [[URQ]])&lt;br /&gt;
* Выбор жюри: [[Глод]] из игры [[Глод: Запах Зверя]] ([[Goraph]]; [[QSP]])&lt;br /&gt;
&#039;&#039;&#039;Лучшее оформление&#039;&#039;&#039;:&lt;br /&gt;
* Выбор публики: [[Дитя Луны]] ([[tangarou]]; [[Квестер]])&lt;br /&gt;
* Выбор жюри: [[Дитя Луны]] ([[tangarou]]; [[Квестер]])&lt;br /&gt;
&#039;&#039;&#039;Проект года&#039;&#039;&#039;:&lt;br /&gt;
* Выбор публики: [[AXMA Story Maker]]&lt;br /&gt;
* Выбор жюри: [[AXMA Story Maker]]&lt;br /&gt;
== Статистика ==&lt;br /&gt;
По статистике из девяти игр попавших в финал пять сделаны на [[AXMA Story Maker]], две на [[Квестер]] и по одной на [[URQ]] и [[QSP]]&lt;br /&gt;
[[Изображение:Platform2012.png]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://zh.ifiction.ru/ Оф. страничка]&lt;br /&gt;
* [http://zh.ifiction.ru/games Список игр]&lt;br /&gt;
* [http://zh.ifiction.ru/nominees Игры прошедшие во второй тур в голосовании публики]&lt;br /&gt;
* [http://zh.ifiction.ru/votes Расшифровка голосов]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Золотой хомяк]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8693</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8693"/>
		<updated>2013-05-22T10:09:44Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Ссылки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
В ссылках есть возможность использовать [http://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL#.D0.9B.D0.BE.D0.BA.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F локальные действия] (действия, которые не уводят на другую локацию).&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8524</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8524"/>
		<updated>2013-04-12T09:37:16Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Ссылки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[%меню]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8485</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8485"/>
		<updated>2013-04-04T08:53:56Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Ссылки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;. Можно добавлять модификаторы, например &#039;&#039;&#039;[[%меню]]&#039;&#039;&#039; — модификатор на экран не выводится.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8484</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8484"/>
		<updated>2013-04-04T08:48:42Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Инклюды */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют.&lt;br /&gt;
* Каждый файл включается один раз. Другими словами, &#039;&#039;&#039;%include&#039;&#039;&#039; не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8483</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8483"/>
		<updated>2013-04-04T08:47:08Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Инклюды */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют. Только чистый текст, только хардкор. Комментарии тоже нельзя, к слову. Наверное, это временно.&lt;br /&gt;
*Каждый файл включается один раз. Другими словами, %include не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте. Данное поведение похоже на команду require в PHP.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
* Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8482</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8482"/>
		<updated>2013-04-04T08:46:52Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Инклюды */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют. Только чистый текст, только хардкор. Комментарии тоже нельзя, к слову. Наверное, это временно.&lt;br /&gt;
*Каждый файл включается один раз. Другими словами, %include не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте. Данное поведение похоже на команду require в PHP.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом &#039;&#039;&#039;mylib.qst&#039;&#039;&#039; вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8481</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8481"/>
		<updated>2013-04-04T08:46:19Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Инклюды==&lt;br /&gt;
Начиная с версии 1.8 в FURQ есть возможность «собирать» код игры из нескольких файлов. Для этого следует использовать макрос &#039;&#039;&#039;%include &amp;lt;имя_файла.qst&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
При этом действуют следующие правила:&lt;br /&gt;
* Макрос инклюда должен быть один на строке.&lt;br /&gt;
* Инклюды обрабатываются при загрузке квеста, поэтому подстановки там не действуют. Только чистый текст, только хардкор. Комментарии тоже нельзя, к слову. Наверное, это временно.&lt;br /&gt;
*Каждый файл включается один раз. Другими словами, %include не вставляет код из файла в то место, где он был вызван, а просто указывает, что этот код должен присутствовать в квесте. Данное поведение похоже на команду require в PHP.&lt;br /&gt;
* Имена меток и переменных сквозные. Следите, чтобы метки в разных файлах назывались по-разному.&lt;br /&gt;
Возможно использовать относительные пути, например &#039;&#039;&#039;%include inc\mylib.qst&#039;&#039;&#039;, при этом путь указывается относительно того файла, в котором вызывается макрос. Т.е. если вы в вышеприведённом mylib.qst вызовете &#039;&#039;&#039;%include more\lowlevel.qst&#039;&#039;&#039;, то &#039;&#039;&#039;lowlevel.qst&#039;&#039;&#039; должен лежать в папке &#039;&#039;&#039;inc\more\&#039;&#039;&#039;, относительно главного файла квеста.&lt;br /&gt;
* Все ресурсы игры (картинки, музыка, шрифты) вызываются относительно главного файла квеста, в каких бы инклюдах и папках не находился код, их вызывающий.&lt;br /&gt;
* При упаковке в &#039;&#039;&#039;QSZ&#039;&#039;&#039; главный файл квеста должен называться&#039;&#039;&#039; main.qst&#039;&#039;&#039; или &#039;&#039;&#039;game.qst&#039;&#039;&#039; (qs1, qs2), чтобы интерпретатор понял, с чего начинать. Если FireURQ не найдёт такого файла в архиве, то вызовет первый попавшийся.&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8480</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8480"/>
		<updated>2013-04-04T08:43:09Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Ссылки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
Упрощенный формат вывода ссылок такой:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
В данном случае ссылка будет вести на метку по названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вдоль берега вьётся &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;тропинка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8479</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8479"/>
		<updated>2013-04-04T08:38:36Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Скрипты декораторов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
Для команд col/colx, как и для &#039;&#039;&#039;decorcol&#039;&#039;&#039;, если задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8478</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8478"/>
		<updated>2013-04-04T08:35:00Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Создание декораторов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
Команда &#039;&#039;&#039;decoradd&#039;&#039;&#039; позволяет задать от одного до трёх цветов для текстового декоратора.&lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8477</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8477"/>
		<updated>2013-04-04T08:33:48Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Управление декораторами */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным.  Если после имени декоратора задан один параметр — это цвет текста. Если два — это цвет текста и период времени, за который его надо поменять. Если три — это цвет текста, ссылки и подсветки. Если четыре — это три цвета и время, за которое они меняются.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт.&lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8476</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8476"/>
		<updated>2013-04-04T08:31:23Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Переменные декораторов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт. &lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkcolor&#039;&#039;&#039; − позволяет задать цвет ссылок в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_linkhcolor&#039;&#039;&#039; − позволяет задать цвет подсветки ссылки в декораторе. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8475</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8475"/>
		<updated>2013-04-04T07:55:28Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Другое */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт. &lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;1&#039;&#039;&#039;) отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8474</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8474"/>
		<updated>2013-04-04T07:53:38Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Другое */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт. &lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен и наоборот.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8473</id>
		<title>FireURQ:Особенности реализации URQL</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_URQL&amp;diff=8473"/>
		<updated>2013-04-04T07:53:15Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Другое */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операции ==&lt;br /&gt;
&lt;br /&gt;
* Есть оператор  &#039;&#039;&#039;&amp;lt;&amp;gt;&#039;&#039;&#039; (не равно).&lt;br /&gt;
* Можно производить операцию сложения над строками. Т.е. можно сделать &#039;&#039;&#039;zz = xx + &amp;quot;urq&amp;quot;&#039;&#039;&#039; – и это будет работать, при условии, что &#039;&#039;&#039;xx&#039;&#039;&#039; — строковая переменная.&lt;br /&gt;
* Числовое представление строки — всегда число: длина этой строки. Это касается всех арифметических операций. Строковое представление числовой переменной — пустая строка (как в досурке).&lt;br /&gt;
&lt;br /&gt;
==Подстановки (#...$ и #%...$)==&lt;br /&gt;
Работают только в пределах одного оператора. Т.е. вставить if с помощью подстановки — не получится, т.к. &#039;&#039;&#039;if...then...else&#039;&#039;&#039; — это конструкция языка, а не оператор.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
При переходах (операторы &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и &#039;&#039;&#039;goto&#039;&#039;&#039;) возможно передать параметры на метку, на которую происходит переход. &lt;br /&gt;
&#039;&#039;Синтаксис:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc &amp;lt;метка&amp;gt;[(param1, param2, ...)]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn &amp;lt;метка&amp;gt;[(param1, param2, ...)], &amp;lt;текст на кнопке&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &#039;&#039;&#039;&amp;lt;метка&amp;gt;_1&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;метка&amp;gt;_2&#039;&#039;&#039; и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; при использовании параметров в операторе btn подстановки (&#039;&#039;&#039;#...$&#039;&#039;&#039; и &#039;&#039;&#039;#%...$&#039;&#039;&#039;) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Пример:&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn mylabel(2+2, &amp;quot;четыре&amp;quot;), Кнопка с параметрами&#039;&#039;&#039;&lt;br /&gt;
При нажатии на эту кнопку переменная &#039;&#039;&#039;mylabel_1&#039;&#039;&#039; примет числовое значение &#039;&#039;&#039;4&#039;&#039;&#039;, а переменная &#039;&#039;&#039;mylabel_2&#039;&#039;&#039; — строковое значение &#039;&#039;&#039;&amp;quot;четыре&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Локальные действия==&lt;br /&gt;
Локальные действия, это действия не уводящие с локации. Т.е. можно сделать такую кнопку или ссылку, при нажатии на которую: &lt;br /&gt;
* не будут очищены кнопки &lt;br /&gt;
* не изменится переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; &lt;br /&gt;
* не выполнится &#039;&#039;&#039;common&#039;&#039;&#039;-локация &lt;br /&gt;
&lt;br /&gt;
Локальные действия ведут себя, в целом, так же, как действия над предметами инвентаря. &lt;br /&gt;
&lt;br /&gt;
Для того, чтобы создать локальное действие, надо перед названием локации в кнопке или ссылке поставить &#039;&#039;восклицательный знак&#039;&#039;: &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;!&#039;&#039;&#039;local, Эта кнопка не уведёт с локации &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Эта &#039;&#039;&#039;[[&#039;&#039;&#039;ссылка|&#039;&#039;&#039;!&#039;&#039;&#039;local_location&#039;&#039;&#039;]]&#039;&#039;&#039; тоже не уведёт с локации...&lt;br /&gt;
&lt;br /&gt;
==Музыка и звук==&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает множество форматов музыки и звука. Командой &#039;&#039;&#039;play&#039;&#039;&#039; можно воспроизводить звуки. Музыка воспроизводится командой &#039;&#039;&#039;music&#039;&#039;&#039;.&lt;br /&gt;
===Звуки===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;play [loop|stop] [&amp;lt;имя файла&amp;gt;[, &amp;lt;громкость&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если указать параметр &#039;&#039;&#039;loop&#039;&#039;&#039;, то воспроизведение звука будет зациклено (полезно, если нужно реализовать фоновый эмбиентный звук). Если указан параметр &#039;&#039;&#039;stop&#039;&#039;&#039;, то конкретный звук (все его «ипостаси», если воспроизведение конкретного звука было запущено несколько раз) будет остановлен. Если указать stop и не указать имя файла, то будут остановлены все звуки.&lt;br /&gt;
&lt;br /&gt;
===Музыка===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;music &amp;lt;имя файла&amp;gt;|stop[, &amp;lt;время в миллисекундах&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла формата WAV/AIFF/MP3/MP2/MP1/OGG, плюс форматы трекерной музыки: XM, IT, S3M, MOD, MTM, UMX. Кроме того, воспроизводится и MIDI-музыка (файлы MID). Также поддерживается формат MO3 (трекерная музыка с OGG-упакованными семплами). Конвертер для превращения любого трекерного формата в MO3 можно скачать с сайта http://un4seen.com/. &lt;br /&gt;
&lt;br /&gt;
Если требуется остановить воспроизведение, то вместо имени файла указывается &#039;&#039;&#039;stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость музыки будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект crossfade – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Для регулировки громкости музыки используется переменная  &#039;&#039;&#039;music_volume&#039;&#039;&#039;, которая может принимать значения от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Возможно плавное изменение громкости музыки командой &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;громкость&#039;&#039;&#039; – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;время в миллисекундах&#039;&#039;&#039; – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
Кроме того, для музыки поддерживается переменная &#039;&#039;&#039;music_looped&#039;&#039;&#039;, которая принимает два значения: &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;0&#039;&#039;&#039;. Эта переменная указывает, будет ли воспроизводимая музыка зациклена или проиграет один раз и остановится. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039; (музыка зацикливается).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Озвучка локаций===&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice &amp;lt;имя файла&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice stop&#039;&#039;&#039;&lt;br /&gt;
С помощью команды &#039;&#039;&#039;voice&#039;&#039;&#039; можно удобно озвучивать локации в квестах. Действие этой команды аналогично действию команды &#039;&#039;&#039;play&#039;&#039;&#039; – проигрывается звук, указанный в качестве параметра, за несколькими исключениями:&lt;br /&gt;
* Озвучка может быть только одна в любой момент времени. Каждая следующая команда &#039;&#039;&#039;voice&#039;&#039;&#039; останавливает предыдущую;&lt;br /&gt;
* Переход по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) также останавливает озвучку.&lt;br /&gt;
* Громкость озвучки регулируется с помощью переменной &#039;&#039;&#039;voice_volume&#039;&#039;&#039;, а не указывается напрямую в команде.&lt;br /&gt;
&lt;br /&gt;
==Изображения==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет вставлять изображения в текст квеста. Для этого служит команда &#039;&#039;&#039;image&#039;&#039;&#039;. &lt;br /&gt;
&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;image &amp;lt;имя файла&amp;gt;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;имя файла&#039;&#039;&#039; – это имя файла изображения в формате JPEG, PNG или TGA.&lt;br /&gt;
* Дополнительные параметры позволяют вывести не все изображение, а его часть. При этом &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; задают верхний левый угол окна, а ширина и высота – размеры «вырезаемого» кусочка.&lt;br /&gt;
&lt;br /&gt;
Изображение вставляются в текст и ведут себя как обычные буквы.  Альфа для вставляемого изображения берется из цвета текста (переменная &#039;&#039;&#039;textcolor &#039;&#039;&#039; – см. ниже).&lt;br /&gt;
==Текст==&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет выравнивать текст влево, вправо или по центру. Для установки нужного режима выравнивания текста служит переменная &#039;&#039;&#039;textalign&#039;&#039;&#039;. Она может принимать следующие значения:&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; – текст выравнивается влево&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; – текст выравнивается вправо&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; – текст выравнивается по центру&lt;br /&gt;
Естественно, выравнивание работает лишь внутри одного «абзаца». Если вы выводили текст командой &#039;&#039;&#039;print&#039;&#039;&#039; (без переноса), затем сменили выравнивание и попытались что-то вывести в той же строке, то текст с другим выравниванием будет перенесен на другую строку автоматически.&lt;br /&gt;
Переменная &#039;&#039;&#039;btnalign&#039;&#039;&#039; позволяет выровнять кнопки действия. А &#039;&#039;&#039;btntxtalign&#039;&#039;&#039; – текст внутри кнопок (т.е. надписи на кнопках). Следует отметить, что выравнивание кнопок работает только для всех кнопок скопом. Т.е. не получится выровнять одну кнопу вправо, а другую – влево.&lt;br /&gt;
&lt;br /&gt;
Расстояние между строками и параграфами определяется следующими системными переменными:&lt;br /&gt;
* &#039;&#039;&#039;linespacing&#039;&#039;&#039; – вертикальное расстояние между строк текста (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;paraspacing&#039;&#039;&#039; – вертикальное расстояние между параграфами (по умолчанию &#039;&#039;&#039;3&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Цвет текста===&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате 0xAARRGGBB. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#039;&#039;&#039;0xFF7F05BB&#039;&#039;&#039; и &#039;&#039;&#039;0x7F05BB&#039;&#039;&#039; – равнозначны. Также, для обратной совместимости поддерживается переменная &#039;&#039;&#039;Style_dos_textcolor&#039;&#039;&#039;, которая работает так же, как и в &#039;&#039;&#039;DOS_URQ&#039;&#039;&#039;. Цвет фона менять нельзя, только цвет букв.&lt;br /&gt;
&lt;br /&gt;
===Шрифт текста===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная textfont. В нее в виде строкового значения следует записать имя файла шрифта. FireURQ может использовать растровые шрифты формата HGE Font (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат HGE Font, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Чтобы вернуться к шрифту по умолчанию, следует выполнить &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  вполне возможно писать разными шрифтами внутри одного абзаца текста. Но этого не рекомендуется делать со шрифтами разных размеров. Формат HGE Font не предусматривает такое понятие, как «базовая линия». Поэтому, куски текста, написанные разными шрифтами, будут «прыгать» относительно друг друга.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TrueType шрифты используются так:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;file.ttf[&amp;lt;size&amp;gt;, &amp;lt;gamma&amp;gt;, &amp;lt;weight&amp;gt;, &amp;lt;bgcolor&amp;gt;]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;size&#039;&#039;&#039; – размер шрифта(по умолчанию &#039;&#039;&#039;19&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;gamma&#039;&#039;&#039; – гамма, т.е. &amp;quot;светлость&amp;quot; границ шрифта(по умолчанию &#039;&#039;&#039;1.0&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;weight&#039;&#039;&#039; – толщина(по умолчанию &#039;&#039;&#039;0.6&#039;&#039;&#039;)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; – цвет подложки (по умолчанию &#039;&#039;&#039;0x808080&#039;&#039;&#039;)&lt;br /&gt;
Параметры можно опускать.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt; Поскольку из TTF генерится битмапный шрифт и края должны &amp;quot;подходить&amp;quot; к фону, на котором потом выводится текст, то для идеального отображения шрифта можно подставить соответствующий цвет в &#039;&#039;&#039;bgcolor&#039;&#039;&#039;. &#039;&#039;&#039;Gamma&#039;&#039;&#039; и &#039;&#039;&#039;weight&#039;&#039;&#039; по умолчанию подобраны для шрифтов на чёрном фоне. Возможно, для светлого фона их нужно немного поменять.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примеры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[20,1.1]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;verdana.ttf[10,,,0xFFFFFF]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;timesi.ttf[32,,1.3]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Файлы TrueType шрифтов (.ttf) ищутся сначала в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;), а если их там нет, то в системной папке со шрифтами Windows. Т.е. если это системный шрифт, прикладывать его к игре не нужно.&lt;br /&gt;
&lt;br /&gt;
Шрифты таким образом можно использовать как в коде игры, так и в [[FireURQ:Скины|скинах]].&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 1.6 &#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать в тексте ссылки.&lt;br /&gt;
&lt;br /&gt;
Формат ссылок:&lt;br /&gt;
 &#039;&#039;&#039;[[&#039;&#039;&#039;текст ссылки&#039;&#039;&#039;|&#039;&#039;&#039;название локации&#039;&#039;&#039;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Вы стоите на берегу реки. Вдоль берега вьётся небольшая &#039;&#039;&#039;[[&#039;&#039;&#039;тропинка&#039;&#039;&#039;|&#039;&#039;&#039;trop&#039;&#039;&#039;]]&#039;&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
Здесь &#039;&#039;&#039;trop&#039;&#039;&#039; - название локации, на которую будет осуществлён переход при нажатию на ссылку. Разумеется, как и в &#039;&#039;&#039;btn&#039;&#039;&#039;, можно использовать параметры локации. &lt;br /&gt;
&lt;br /&gt;
Цвет ссылок задаётся переменными &#039;&#039;&#039;linkcolor&#039;&#039;&#039; и &#039;&#039;&#039;linkhcolor&#039;&#039;&#039;. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. Невалидные ссылки (указывающие на несуществующую локацию) всегда подсвечены красным цветом.&lt;br /&gt;
&lt;br /&gt;
===Выпадающие меню===&lt;br /&gt;
Начиная с версии 1.6 в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; появилась возможность использовать меню, выпадающие при клике на ссылку или на кнопку . Меню формируются точно так же как обычные ссылки или кнопки с использованием символа &#039;&#039;&#039;%&#039;&#039;&#039; и могут быть любого уровня вложенности.&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис такой:&lt;br /&gt;
 btn &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;, &amp;lt;Текст на кнопке&amp;gt;&lt;br /&gt;
 [[ &amp;lt;Текст ссылки&amp;gt; | &#039;&#039;&#039;%&#039;&#039;&#039;&amp;lt;Название локации&amp;gt;]]&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; &#039;&#039;&#039;%&#039;&#039;&#039;menu, По этой кнопке будет меню &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:menu&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; someloc, Первый пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; anotherloc, Второй пункт меню &lt;br /&gt;
 &#039;&#039;&#039;btn&#039;&#039;&#039; yetonemoreloc, Третий пункт меню &lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все кнопки в меню-локации превращаются в пункты меню. В меню-локациях не разрешается использовать практически ничего, кроме конструкций &#039;&#039;&#039;if..then..else&#039;&#039;&#039;&#039;, &#039;&#039;&#039;goto&#039;&#039;&#039;, &#039;&#039;&#039;proc&#039;&#039;&#039;, &#039;&#039;&#039;btn&#039;&#039;&#039; и работы с переменными, которые можно назначать и проверять. Все фантомные &#039;&#039;&#039;btn&#039;&#039;&#039; (ведущие на несуществующую локацию) становятся неактивными пунктами меню. &lt;br /&gt;
&lt;br /&gt;
Если в качестве имени кнопки использовать &amp;quot;-&amp;quot; (дефис), то в меню будет вставлена полоска-разделитель. &lt;br /&gt;
&lt;br /&gt;
Переменные для оформления меню (их тоже можно указывать прямо в меню-локации): &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;menu_textfont&#039;&#039;&#039; - шрифт меню &lt;br /&gt;
 &#039;&#039;&#039;menu_bgcolor&#039;&#039;&#039; - цвет фона (можно делать и полупрозрачным) &lt;br /&gt;
 &#039;&#039;&#039;menu_bordercolor&#039;&#039;&#039; - цвет рамки &lt;br /&gt;
 &#039;&#039;&#039;menu_textcolor&#039;&#039;&#039; - цвет пунктов меню &lt;br /&gt;
 &#039;&#039;&#039;menu_hindent&#039;&#039;&#039; - отбивка по горизонтали &lt;br /&gt;
 &#039;&#039;&#039;menu_vindent&#039;&#039;&#039; - отбивка по вертикали &lt;br /&gt;
 &#039;&#039;&#039;menu_selectioncolor&#039;&#039;&#039; - цвет фона выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_seltextcolor&#039;&#039;&#039; - цвет шрифта выбранного элемента &lt;br /&gt;
 &#039;&#039;&#039;menu_disabledcolor&#039;&#039;&#039; - цвет шрифта неактивного элемента&lt;br /&gt;
&lt;br /&gt;
==Декораторы==&lt;br /&gt;
Декораторы – это небольшие кусочки текста или графические объекты, которые можно поместить в любое место на экране. Декораторами можно управлять, например плавно перемещать или менять оттенок цвета. Графическим декоратором можно дополнительно изменять масштаб, угол наклона, скорость вращения и другие параметры. С помощью декораторов автор может лучше оформить квест, вывести дополнительные параметры или добавить анимационные эффекты.&lt;br /&gt;
&lt;br /&gt;
===Создание декораторов===&lt;br /&gt;
&lt;br /&gt;
Общий синтаксис для добавления декоратора следующий: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) &amp;lt;тип декоратора&amp;gt; &amp;lt;параметры&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;имя&#039;&#039;&#039; – имя декоратора, состоящее из цифр, букв и знаков подчеркивания. Пробелы в имени не допускаются. &lt;br /&gt;
*&#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; и &#039;&#039;&#039;z&#039;&#039;&#039; – координаты декоратора на экране. Параметр &#039;&#039;&#039;z&#039;&#039;&#039; используется для определения «глубины» декоратора. Чем меньше &#039;&#039;&#039;z&#039;&#039;&#039;, тем «ближе» декоратор к игроку. Все декораторы с &#039;&#039;&#039;z&#039;&#039;&#039; от 0 и больше располагаются «за» интерфейсом (кнопки управления и текстовое поле), а с &#039;&#039;&#039;z&#039;&#039;&#039; меньше 0 – «перед» ним. Если &#039;&#039;&#039;z&#039;&#039;&#039; не указан, то он принимается равным 0. &lt;br /&gt;
*тип декоратора может быть &#039;&#039;&#039;TEXT&#039;&#039;&#039;, &#039;&#039;&#039;RECT&#039;&#039;&#039;, &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;. &lt;br /&gt;
*&#039;&#039;&#039;параметры&#039;&#039;&#039; – разные, в зависимости от типа декоратора. &lt;br /&gt;
&lt;br /&gt;
Теперь более подробно по типам. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;TEXT&#039;&#039;&#039; позволяет добавить декоратор-кусочек текста: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) TEXT &amp;quot;собственно, текст&amp;quot; [, цвет[,&amp;quot;шрифт&amp;quot;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; или &#039;&#039;&#039;шрифт&#039;&#039;&#039; не указаны, то они принимаются равными цвету и шрифту основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;RECT&#039;&#039;&#039; – это просто цветной прямоугольник: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) RECT ширина, высота [, цвет]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;цвет&#039;&#039;&#039; не указан, то он принимается равным цвету основного текста. &lt;br /&gt;
&lt;br /&gt;
Тип &#039;&#039;&#039;IMAGE&#039;&#039;&#039; – это декоратор-картинка. Параметры этого декоратора очень похожи на параметры оператора &#039;&#039;&#039;image&#039;&#039;&#039; (см. выше) : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) IMAGE &amp;quot;имя_файла&amp;quot;[, X, Y, ширина, высота]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и в операторе &#039;&#039;&#039;image&#039;&#039;&#039; , дополнительные параметры позволяют вывести лишь часть картинки. Если у вас много аниматоров-картинок, то, в целях быстродействия, рекомендуется размещать их на одном «полотне», а не загружать из разных файлов. &lt;br /&gt;
&lt;br /&gt;
Декоратор-анимация добавляется с помощью типа  &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) ANIMATION &amp;quot;имя_файла&amp;quot;, X, Y, ширина, высота, N&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Х&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039; это координаты первого кадра анимации (левый верхний угол). Параметры похожи на параметры типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039;, за исключением того, что здесь параметры, определяющие кадр, опускать нельзя. &#039;&#039;&#039;N&#039;&#039;&#039; определяет количество кадров в анимации. Кадры должны располагаться на картинке один за другим, слева направо и сверху вниз (если они не помещаются на картинке в одну строку). &lt;br /&gt;
&lt;br /&gt;
Декоратор-GIF можно создать с помощью типа &#039;&#039;&#039;GIF&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decoradd &amp;lt;имя&amp;gt; (&amp;lt;x&amp;gt;,&amp;lt;y&amp;gt;[, &amp;lt;z&amp;gt;]) GIF &amp;quot;имя_gif-файла&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:LavenderBlush;padding:5px;border:1px solid Brown;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;maroon&amp;quot;&amp;gt;&#039;&#039;&#039;Важное замечание:&#039;&#039;&#039;&amp;lt;/font&amp;gt;  В декораторах типа &#039;&#039;&#039;IMAGE&#039;&#039;&#039; можно использовать gif-изображения, но они будут статичными (первый кадр в анимированных gif-ах). Для анимированных gif-ов используйте декоратор с типом &#039;&#039;&#039;GIF&#039;&#039;&#039;. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Управление декораторами===&lt;br /&gt;
&lt;br /&gt;
Для управления декораторами применяются следующие команды: &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decormov  &amp;lt;имя&amp;gt; X, Y[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет переместить декоратор в точку с координатами &#039;&#039;&#039;X&#039;&#039;&#039; и &#039;&#039;&#039;Y&#039;&#039;&#039;. Если указано &#039;&#039;&#039;время&#039;&#039;&#039; (в миллисекундах), то перемещение будет плавным и займет как раз указанное время. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorcol  &amp;lt;имя&amp;gt; цвет[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить цвет декоратора. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorrot  &amp;lt;имя&amp;gt; угол[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет повернуть декоратор на определенный &#039;&#039;&#039;угол&#039;&#039;&#039; (в градусах). Важно помнить, что угол в этой команде задается &#039;&#039;относительно текущего&#039;&#039;. Это позволяет поворачивать декоратор в обе стороны. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то поворот будет плавным. Эта команда не работает с декораторами типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decordel [&amp;lt;имя1&amp;gt;, &amp;lt;имя2&amp;gt;, …]&#039;&#039;&#039;&lt;br /&gt;
Удаляет перечисленные в параметрах декораторы. Без параметров удаляет все декораторы. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscl &amp;lt;имя&amp;gt; масштаб[, время]&#039;&#039;&#039;&lt;br /&gt;
Позволяет установить &#039;&#039;&#039;масштаб&#039;&#039;&#039; декоратора. Масштаб задаётся дробным числом. Масштаб, равный 2 - это двойной размер декоратора, а 0.5 - половинный. Если указано &#039;&#039;&#039;время&#039;&#039;&#039;, то изменение цвета будет плавным. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;decorscr &amp;lt;имя&amp;gt; &amp;quot;скрипт&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Назначает декоратору скрипт. &lt;br /&gt;
&lt;br /&gt;
===Маски имён===&lt;br /&gt;
Во всех командах управления декораторами в качестве параметра &#039;&#039;&#039;имя&#039;&#039;&#039; можно передавать маску имён с использованием символов &#039;&#039;&#039;*&#039;&#039;&#039; (замещает любое количество символов) и &#039;&#039;&#039;?&#039;&#039;&#039; (замещает один символ). Например, команда&lt;br /&gt;
 &#039;&#039;&#039;decorrot sas* 90, 2000&#039;&#039;&#039;&lt;br /&gt;
повернёт все декораторы, имя которых начинается с &amp;quot;sas&amp;quot;, на 90 градусов по часовой стрелке за две секунды.&lt;br /&gt;
&lt;br /&gt;
===Переменные декораторов===&lt;br /&gt;
Разнообразные параметры декораторов можно устанавливать с помощью специальных переменных. Эти переменные начинаются на decor_ , после чего следует имя декоратора. Переменные бывают следующих типов: &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_x, decor_имя_y и decor_имя_z&#039;&#039;&#039; – позволяют задать координаты декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_color&#039;&#039;&#039; – позволяет задать цвет декоратора. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hide&#039;&#039;&#039; – если установлен в 1, то декоратор скрыт. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_text&#039;&#039;&#039; – устанавливает текст декоратора (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;) &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_align&#039;&#039;&#039; – устанавливает тип выравнивание текста внутри декоратора аналогично переменной &#039;&#039;&#039;textalign&#039;&#039;&#039; (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 1 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора(в пикселях), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;), по умолчанию равна 2000000000 &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_height&#039;&#039;&#039; - возвращает высоту декоратора (в пикселях).&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_hotx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_hoty&#039;&#039;&#039; – позволяют задать «горячую точку» для декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Горячая точка задается в пространстве самого декоратора (по умолчанию – 0,0) и служит для привязки. Предположим, у вас изображение размером 25х25 пикселей. Если вы установите горячую точку в (13, 13), то, при вращении декоратора, вращение будет происходить вокруг центра картинки. Так же и при позиционировании на экране привязка будет за центр картинки. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_angle&#039;&#039;&#039; – позволяет задать угол поворота декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Угол задается в градусах. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_rotspeed&#039;&#039;&#039; – позволяет задать постоянную скорость вращения декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Скорость задается в градусах в секунду и может иметь как положительное, так и отрицательное значение. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_scale&#039;&#039;&#039; – позволяет задать масштаб декоратора (кроме типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равна 1. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_frame&#039;&#039;&#039; – позволяет задать текущий кадр анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Процесс анимации при этом останавливается. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anispeed&#039;&#039;&#039; – позволяет задать скорость анимации (только для типов &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; и &#039;&#039;&#039;GIF&#039;&#039;&#039;). Для разных типов поведение различается: &lt;br /&gt;
**Для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает задержку в миллисекундах между сменой кадров. Может принимать как положительное, так и отрицательное значение. По умолчанию имеет значение 250;&lt;br /&gt;
**Для типа &#039;&#039;&#039;GIF&#039;&#039;&#039; . Если анимация остановлена, то равна 0. Обозначает процент от скорости, записанной в самом GIF-файле. Может принимать  значения от 0 до 1000. По умолчанию имеет значение 100. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_anitype&#039;&#039;&#039; – позволяет задать тип анимации (только для типа &#039;&#039;&#039;ANIMATION&#039;&#039;&#039;). Может принимать следующие значения: &lt;br /&gt;
**&#039;&#039;&#039;0&#039;&#039;&#039; – анимация проигрывается один раз и останавливается; &lt;br /&gt;
**&#039;&#039;&#039;1&#039;&#039;&#039; – анимация зациклена (с последнего кадра перескакивает обратно на первый); &lt;br /&gt;
**&#039;&#039;&#039;2&#039;&#039;&#039; – анимация зациклена в режиме «пинг-понг» (при достижении граничного кадра меняется направление анимации). &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; – позволяет задать скрипт декоратора. Прочитать значение переменной скрипта нельзя, его можно только назначить. &lt;br /&gt;
*&#039;&#039;&#039;decor_name_linespacing&#039;&#039;&#039; - вертикальное расстояние между строк текста (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;linespacing&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;decor_name_paraspacing&#039;&#039;&#039; - вертикальное расстояние между параграфами (только для &#039;&#039;&#039;TEXT&#039;&#039;&#039;). По умолчанию равно системному &#039;&#039;&#039;paraspacing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Скрипты декораторов===&lt;br /&gt;
Скрипты позволяют &amp;quot;запрограммировать&amp;quot; декоратор. Другими словами, назначить ему последовательность команд по перемещению, вращению, изменению масштаба и т.д., которые декоратор будет выполнять самостоятельно, не требуя дополнительного команд в коде игры. Эта функция удобна, когда вам надо реализовать системы частиц (снежинки, дым) для оформления вашей игры, или просто добавить визуальных эффектов. &lt;br /&gt;
&lt;br /&gt;
Скрипты декораторам назначаются с помощью команды &#039;&#039;&#039;decorscr&#039;&#039;&#039; или переменной &#039;&#039;&#039;decor_имя_script&#039;&#039;&#039; и представляют собой строку, содержащую последовательность команд, разделённых символом косой черты (&#039;&#039;&#039;/&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Команды&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mov x, y [, time]&#039;&#039;&#039; - перемещение в точку &#039;&#039;&#039;x&#039;&#039;&#039;, &#039;&#039;&#039;y&#039;&#039;&#039; (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mvr&#039;&#039;&#039;  - то же самое, но координаты задаются относительные&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;movx&#039;&#039;&#039; и &#039;&#039;&#039;mvrx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pau &amp;lt;time&amp;gt;&#039;&#039;&#039; - пауза на время &#039;&#039;&#039;time&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;цвет&amp;gt;[, time]&#039;&#039;&#039; - изменение цвета декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;col &amp;lt;A, R, G, B&amp;gt;[, time]&#039;&#039;&#039; - то же самое, но компоненты цвета задаются отдельными параметрами&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colx&#039;&#039;&#039; - то же самое, но следующая команда выполнится немедленно (не будет паузы на время &#039;&#039;&#039;time&#039;&#039;&#039;) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ang &amp;lt;угол&amp;gt;&#039;&#039;&#039; - задать абсолютный угол поворота декоратора (в градусах) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rot &amp;lt;угол&amp;gt;[, time]&#039;&#039;&#039; - поворот декоратора на угол (относительное значение, опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rotx&#039;&#039;&#039; - без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rsp &amp;lt;скорость вращения&amp;gt;&#039;&#039;&#039; - позволяет задать скорость вращения (положительную или отрицательную, в углах в секунду) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;scl &amp;lt;масштаб&amp;gt;[, time]&#039;&#039;&#039; - задать масштаб декоратора (опционально - за время &#039;&#039;&#039;time&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sclx&#039;&#039;&#039; - то же самое без паузы &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rst&#039;&#039;&#039; - запустить скрипт с начала &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;del&#039;&#039;&#039; - уничтожить декоратор &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Случайные параметры&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Любой из параметров можно определить как &#039;&#039;&#039;R(min,max)&#039;&#039;&#039;, таким образом, при исполнении команды будет вычислено случайное значение от &#039;&#039;&#039;min&#039;&#039;&#039; до &#039;&#039;&#039;max&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decorscr star &amp;quot;mvr 50, 0, 1000/rot R(-90,90), 1500/rst&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Декоратор с именем &#039;&#039;&#039;star&#039;&#039;&#039; переместится вправо на 50 пикселей за одну секунду, затем повернётся на случайный угол от -90 до 90 градусов (т.е. вправо или влево) за полторы секунды и начнёт выполнять скрипт сначала, то есть будет продолжать двигаться вправо и поворачиваться, уезжая за правую границу экрана.&lt;br /&gt;
&lt;br /&gt;
==Скины==&lt;br /&gt;
&lt;br /&gt;
Скин игры - это файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста. Изменение внешнего вида интерпретатора - это тема повышенной сложности, поэтом она раскрыта в [[FireURQ:Скины|отдельном разделе]].&lt;br /&gt;
&lt;br /&gt;
== Формат квестов QSZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; поддерживает свой собственный формат квеста – упакованный квест (&#039;&#039;&#039;QST Zipped&#039;&#039;&#039;). &#039;&#039;&#039;QSZ&#039;&#039;&#039;-файл – это, по сути, zip-архив, в котором лежит сам файл квеста (&#039;&#039;&#039;qst&#039;&#039;&#039;, &#039;&#039;&#039;qs1&#039;&#039;&#039; или &#039;&#039;&#039;qs2&#039;&#039;&#039;)  и все ресурсы, необходимые для работы игры (изображения и музыка).  Данный формат очень удобен, если ваша игра использует мультимедиа.&lt;br /&gt;
&lt;br /&gt;
Также, существует возможность конвертации квеста в формате QSZ в исполняемый файл. Для этого следует использовать утилиту &#039;&#039;&#039;QSZ2EXE&#039;&#039;&#039;, которая входит в комплект поставки. Эта консольная утилита находится в папке на диске, которую вы выбрали при инсталляции &#039;&#039;&#039;FireURQ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Режим отладки ==&lt;br /&gt;
&lt;br /&gt;
Режим отладки включается с помощью ключа &#039;&#039;&#039;-d&#039;&#039;&#039; в командной строке. При включенном режиме отладки все ошибки в коде квеста выводятся прямо в текст. Кроме того, в режиме отладки работает полезная комбинация &#039;&#039;&#039;Ctrl+R&#039;&#039;&#039;, позволяющая перезагрузить исходный текст квеста с диска. Происходит сохранение игры, перезагрузка исходного текста и загрузка сохраненного состояния с переходом на ту же локацию, что и до перезагрузки. Это позволяет править исходный текст и сразу же смотреть результаты изменений.&lt;br /&gt;
&lt;br /&gt;
==Инвентарь==&lt;br /&gt;
&lt;br /&gt;
Существует возможность скрывать действия над предметами. Для этого необходимо использовать специальные переменные. Имя переменной формируется как имя локации-действия над предметом инвентаря, плюс «&#039;&#039;&#039;_hide&#039;&#039;&#039;». Например, если выполнить &#039;&#039;&#039;Use_Топор_Рубить дерево_hide = 1&#039;&#039;&#039;, то действие “Рубить дерево» у предмета инвентаря «Топор» будет скрыто до тех пор, пока вы не присвоите этой же переменной значение &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
С помощью такого приема можно скрывать действия над предметами на тех локациях, на которых их по сюжету невозможно выполнить.&lt;br /&gt;
&lt;br /&gt;
Также возможно поменять отображение предмета в списке инвентаря. Для этого используются переменные вида &#039;&#039;&#039;idisp_предмет&#039;&#039;&#039;, например:&lt;br /&gt;
 &#039;&#039;&#039;idisp_Бутылка = &amp;quot;Бутылка с водой&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
При этом важно понимать, что &#039;&#039;&#039;idisp_-переменные&#039;&#039;&#039; влияют только на отображение предмета в списке инвентаря. В операторах &#039;&#039;&#039;inv+&#039;&#039;&#039; и &#039;&#039;&#039;inv-&#039;&#039;&#039;, а также при обращении к счетчикам предметов через &#039;&#039;&#039;inv_-переменные&#039;&#039;&#039;, следует использовать изначальное название («Бутылка» в примере):&lt;br /&gt;
 &#039;&#039;&#039;inv- Бутылка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if inv_Бутылка &amp;gt; 1 then pln У вас несколько бутылок…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Предопределенные функции==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FireURQ&#039;&#039;&#039; предусмотрены предопределенные функции, которые вызываются с помощью оператора proc. Результат возвращается в переменной &#039;&#039;&#039;_result&#039;&#039;&#039;. Существуют следующие предопределенные функции:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_sin(x)&#039;&#039;&#039;, &#039;&#039;&#039;_cos(x)&#039;&#039;&#039; и &#039;&#039;&#039;_tan(x)&#039;&#039;&#039; – позволяют вычислить соответственно синус, косинус и тангенс числа x, представленного в радианах.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_color([a,] r, g, b)&#039;&#039;&#039; – позволяет получить значение цвета из его составляющих. Если составляющая прозрачности (&#039;&#039;&#039;a&#039;&#039;&#039;) не указана, то она принимается равной &#039;&#039;&#039;255&#039;&#039;&#039;(т.е. полностью видимый цвет). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc _color(x+15, 10, 255, 60)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Anykey==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;anykey [&amp;lt;переменная&amp;gt;[, &amp;lt;pause&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
По команде &#039;&#039;&#039;anykey&#039;&#039;&#039; игра приостанавливается и ждёт нажатия на клавишу. Если указана переменная, то код клавиши будет записан в неё. При нажатии на функциональную клавишу в &#039;&#039;&#039;anykey&#039;&#039;&#039; возвращается скан-код этой клавиши, а переменная &#039;&#039;&#039;is_syskey&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039;. Состояние клавиш &#039;&#039;&#039;Shift&#039;&#039;&#039;, &#039;&#039;&#039;Ctrl&#039;&#039;&#039; и &#039;&#039;&#039;Alt&#039;&#039;&#039; на скан-коде функциональной клавиши не отражаются.&lt;br /&gt;
&lt;br /&gt;
Также, у команды &#039;&#039;&#039;anykey&#039;&#039;&#039; существует возможность задавать таймаут. Например, по команде &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039; игра секунду будет ожидать нажатия кнопки, а если за секунду кнопка нажата не будет, то игра продолжит выполнение, а в переменную &#039;&#039;&#039;z&#039;&#039;&#039; будет записан ноль. &lt;br /&gt;
&lt;br /&gt;
При использовании команды &#039;&#039;&#039;anykey&#039;&#039;&#039; нажатия на кнопку мыши тоже расцениваются как нажатия на клавишу, при этом в переданную переменную записываются коды &#039;&#039;&#039;256&#039;&#039;&#039;, &#039;&#039;&#039;257&#039;&#039;&#039; и &#039;&#039;&#039;258&#039;&#039;&#039; для левой, правой и средней кнопок соответственно, а в переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; – координаты, в которых был сделан клик.&lt;br /&gt;
&lt;br /&gt;
==Слоты сохранений==&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; предусмотрено сохранение состояния игры в слоты (&#039;&#039;&#039;7&#039;&#039;&#039; обычных слотов и  слот “автосохранения”). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;&#039;&#039;&#039; - записывает сохранение в слот автосохранения.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;&#039;&#039;&#039; - запускает интерфейс со слотами, дает выбрать слот сохранения (кроме слота “автосейва”) и записывает в него сохранение с указанным именем.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save &amp;lt;локация&amp;gt;, &amp;quot;имя сохранения&amp;quot;, &amp;lt;номер слота&amp;gt;&#039;&#039;&#039; - запишет сохранение в указанный слот, где номер слота - число от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;7&#039;&#039;&#039; (&#039;&#039;&#039;0&#039;&#039;&#039; - слот автосохранения).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;save location; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Сохранение”; записать в любой слот, который выберет игрок&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Мой автосейв”, 0; записать в слот автосохранения&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;save location, “Утро, Румыния, 17-й век”, 5; записать в пятый слот&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузка сохранения происходит путем выбора пункта меню &#039;&#039;&#039;&amp;quot;Загрузить сохранённую игру&amp;quot;&#039;&#039;&#039;. При этом если есть только автосейв - он загружается сразу, если же кроме автосейва занят какой-нибудь слот - выдается интерфейс выбора из слотов.&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;count_...&#039;&#039;&#039; — переменные счетчики обновляются ТОЛЬКО при переходах по &#039;&#039;&#039;btn&#039;&#039;&#039;. Старое поведение &#039;&#039;&#039;URQ_DOS&#039;&#039;&#039;, когда &#039;&#039;&#039;count_...&#039;&#039;&#039; увеличивается и по &#039;&#039;&#039;proc&#039;&#039;&#039; и по &#039;&#039;&#039;goto&#039;&#039;&#039;, можно включить, установив переменную dosurq_count в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переход по действиям в инвентаре не перезапускает локацию заново при возврате. Если действие было вызвано во время &#039;&#039;&#039;end&#039;&#039;&#039; — то происходит безусловный переход (&#039;&#039;&#039;goto&#039;&#039;&#039;) на локацию-действие. Если же вы решили использовать инвентарь во время pause, то локация-действие вызывается как &#039;&#039;&#039;proc&#039;&#039;&#039; с возвратом на оператор, следующий за pause. Долго думал над этим поведением и решил, что так будет правильнее всего.&lt;br /&gt;
* Есть переменная &#039;&#039;&#039;gametitle&#039;&#039;&#039; — позволяет вывести название игры в заголовок окна. По умолчанию там имя файла, из которого игра была загружена.&lt;br /&gt;
* Ключ &#039;&#039;&#039;-l&#039;&#039;&#039; командной строки позволяет направить весь вывод в файл, т.е. создавать логии прохождений. Файлы логов будут называться &#039;&#039;&#039;имяквеста.000.log&#039;&#039;&#039;, &#039;&#039;&#039;имяквеста.001.log&#039;&#039;&#039; и т.д.&lt;br /&gt;
* Клавиатурные шорткаты для системного меню и инвентаря – клавиши [&#039;&#039;&#039;Esc&#039;&#039;&#039;] и [&#039;&#039;&#039;I&#039;&#039;&#039;], соответственно.&lt;br /&gt;
* Имеется возможность включить полноэкранный режим, нажав сочетание клавиш &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039;. Повторное нажатие Alt+Enter выключает полноэкранный режим.&lt;br /&gt;
* Можно прокручивать экран с помощью клавиш &#039;&#039;&#039;PgUp&#039;&#039;&#039; и &#039;&#039;&#039;PgDown&#039;&#039;&#039;, а также колесом мыши. Если держать &#039;&#039;&#039;Ctrl&#039;&#039;&#039;, то колесо мыши прокручивает экран маленькими порциями.&lt;br /&gt;
* В оператор &#039;&#039;&#039;tokens&#039;&#039;&#039; можно передавать не только строковую переменную, но и просто строку, заключенную в кавычки или строковое выражение.&lt;br /&gt;
* Индикацию состояний ожидания (мигающая иконка в углу экрана) при выполнении операторов anykey, pause и при требуемой прокрутке текста можно отменить с помощью переменных &#039;&#039;&#039;hide_anykey_indicator&#039;&#039;&#039;, &#039;&#039;&#039;hide_pause_indicator&#039;&#039;&#039; и &#039;&#039;&#039;hide_more_indicator&#039;&#039;&#039;, присвоив им значение &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Есть возможность изменять положение и размер главного текстового поля. Для этого служат переменные &#039;&#039;&#039;textpane_left&#039;&#039;&#039;, &#039;&#039;&#039;textpane_top&#039;&#039;&#039;, &#039;&#039;&#039;textpane_width&#039;&#039;&#039; и &#039;&#039;&#039;textpane_height&#039;&#039;&#039;.&lt;br /&gt;
* Скрыть «эхо» выполняемых действий при нажатии кнопки, использовании инвентаря и сохранении игры возможно с помощью переменных &#039;&#039;&#039;hide_btn_echo&#039;&#039;&#039;, &#039;&#039;&#039;hide_inv_echo&#039;&#039;&#039; и &#039;&#039;&#039;hide_save_echo&#039;&#039;&#039;, соответственно, установив их в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039; скрывает «эхо» от ссылок, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* Переменная &#039;&#039;&#039;hide_local_echo&#039;&#039;&#039; скывает «эхо» от локальных действий, если её установить в &#039;&#039;&#039;1&#039;&#039;&#039;. По умолчанию равна &#039;&#039;&#039;1&#039;&#039;&#039;. &lt;br /&gt;
* При сохранении игры командой &#039;&#039;&#039;SAVE&#039;&#039;&#039; переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в &#039;&#039;&#039;1&#039;&#039;&#039; при успешном сохранении и в &#039;&#039;&#039;0&#039;&#039;&#039;, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
* Если установить переменную &#039;&#039;&#039;numbuttons&#039;&#039;&#039; в &#039;&#039;&#039;1&#039;&#039;&#039;, то кнопки действий будут пронумерованы, а нажатие цифровых клавиш на клавиатуре будет приводить к нажатию соответствующей кнопки.&lt;br /&gt;
* Переменные &#039;&#039;&#039;mouse_x&#039;&#039;&#039; и &#039;&#039;&#039;mouse_y&#039;&#039;&#039; возвращают текущие координаты мыши на момент вызова.&lt;br /&gt;
* При нажатии &#039;&#039;&#039;Ctrl+C&#039;&#039;&#039; в буфер обмена будет помещён текст последней локации.&lt;br /&gt;
* Команда &#039;&#039;&#039;CLSL&#039;&#039;&#039; делает неактивными все ссылки в тексте.&lt;br /&gt;
* Переменная &#039;&#039;&#039;inventory_enabled&#039;&#039;&#039; отвечает за доступность инвентаря, при значении &#039;&#039;&#039;0&#039;&#039;&#039; инвентарь недоступен.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=%D0%91%D1%8B%D1%87%D0%BA%D0%BE%D0%B2,_%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D0%B9&amp;diff=8418</id>
		<title>Бычков, Евгений</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=%D0%91%D1%8B%D1%87%D0%BA%D0%BE%D0%B2,_%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D0%B9&amp;diff=8418"/>
		<updated>2013-03-13T11:07:21Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известен как [[Евг]], [[brevno]].&lt;br /&gt;
Один из самых известных деятелей [[URQ]], разработчик [[SMSQuest]]. Бессменный член жюри на [[ЛОК]].&lt;br /&gt;
&lt;br /&gt;
== Общие факты ==&lt;br /&gt;
&lt;br /&gt;
Уроженец далекой и солнечной Латвии, Евг привнес в URQ-сообщество не только [[SMSQuest|смску]] и [[Белый_бычок|игру про белого бычка]], но и нездоровую долю здорового юмора.&lt;br /&gt;
Знаменит изощренной фантазией, выражающейся в темах для [[ЛОК]].&lt;br /&gt;
Самый популярный соавтор игр на URQ, особенно незаконченных. Из законченных и удавшихся разработок следует отметить серию [[Лифт|&amp;quot;Лифт&amp;quot;]], написанную совместно с [[Ларри Бэггинс]]ом; из закончившихся, но не удавшихся (по мнению второго автора) - легендарный [[ЗИФ]].&lt;br /&gt;
Завсегдатай канала, король латвийского уркинга.&lt;br /&gt;
Причастность к скандальным инцидентам с участием адских человекоподобных роботов отрицает.&lt;br /&gt;
Также крайне знаменит скандальным римейком песни &amp;quot;Хава Нагила&amp;quot;, спетый дуэтом со знаменитым участником URQ-сообщества, скрывающегося под псевдонимом [[ZombX]].&lt;br /&gt;
&lt;br /&gt;
== Любимые фразы ==&lt;br /&gt;
&lt;br /&gt;
* ж)&lt;br /&gt;
* О Джозеф&lt;br /&gt;
* Мой масса&lt;br /&gt;
* Вик, приват&lt;br /&gt;
* Вик, форум&lt;br /&gt;
* Вик, аплоад&lt;br /&gt;
* Вик, мыло&lt;br /&gt;
* Хрен ли нам, красивым теткам&lt;br /&gt;
&lt;br /&gt;
==Игры==&lt;br /&gt;
&lt;br /&gt;
* [[Белый бычок]] (2002, [[URQ]])&lt;br /&gt;
* [[Умоисступление]] (2009, [[Tweebox]]) -- победитель [[дуэль|дуэли]]&lt;br /&gt;
* [[Последнее тело]] (2009, [[URQ]]) -- второе место на [[ЛОК 2009]], победитель [[дуэль|дуэли]]&lt;br /&gt;
* [[Человек из никогда]] (2011, [[URQ]]/[[Instead]]) -- участник [[дуэль|дуэли]], лучший сюжет года по мнению публики ([[Золотой Хомяк 2011]])&lt;br /&gt;
&lt;br /&gt;
===В соавторстве===&lt;br /&gt;
* [[2Viс]] ([[Goraph]], [[Korwin]], [[Terracon]], [[Евг]], 2004, [[URQ]])&lt;br /&gt;
* [[ЗИФ]] ([[Евг]] и [[Goraph]], 2005, [[URQ]]) -- второе место на [[Новогодний Блиц-конкурс 2004-2005|Новогоднем Блице]]&lt;br /&gt;
* [[Хроники капитана Блуда: Тайна гипсовых фаллоимитаторов]] ([[Goraph]] &amp;amp; [[Евг]], 2008,[[Tweebox]])&lt;br /&gt;
* [[Во ржи: куча неприятностей]] ([[Евг]], [[Xlomid]] и [[MS Alzheimer]], 2009, [[URQ]]) -- лучший персонаж года ([[Золотой Хомяк 2009]])&lt;br /&gt;
* [[SHOOT YOUR EVIL TWIN BROTHER WHO HAS TRAPPED YOU IN A MIRROR ROOM AND WHO DRINKS PEOPLE&#039;S BLOOD]] ([[Евг]] и [[Xlomid]], [[URQ]]) -- 4е место на [[TWIFcomp]] 2010&lt;br /&gt;
* [[С новым годом, Алиса!]] ([[Аджента]], [[Вета]], [[Гораф]], [[Евг]], [[Чикаго]], идея [[Туголуков, Евгений|Корвина]], 2011, [[URQ]]) -- участник конкурса [[Буквица]]&lt;br /&gt;
&lt;br /&gt;
== Конкурсы ==&lt;br /&gt;
* [[ЛОК]] (создание/проведение, 2004 - ..)&lt;br /&gt;
* [[Вжж!]] (создание/проведение, 2010 - ..)&lt;br /&gt;
* [[КРИЛ]] (проведение, 2010 - 2012)&lt;br /&gt;
&lt;br /&gt;
==Ссылки==&lt;br /&gt;
* [[ifwiki-en:Evgeny Bychkov|Страничка Евга на ifwiki.org]]&lt;br /&gt;
* [http://www.urq.eclub.lv/EvgFAQ.html FAQ]&lt;br /&gt;
* [http://plut.info Сайт]&lt;br /&gt;
* [http://kril.ifiction.ru Блог КРИЛ]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=Saint&amp;diff=8392</id>
		<title>Saint</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=Saint&amp;diff=8392"/>
		<updated>2013-02-19T14:05:16Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известен как [[Saint]].&lt;br /&gt;
&lt;br /&gt;
С тех пор как 2012 году дебютировал на конкурсе [[Сенокос Вжж!]] как соавтор игры URQ-ветерана [[Кащей|Кащея]], пишет без остановки почти на все конкурсы текстовых игр подряд. Пламенный патриот платформы [[URQ]].&lt;br /&gt;
&lt;br /&gt;
==Игры==&lt;br /&gt;
&lt;br /&gt;
* Глотт: Вот два карлика - вкусный подарок для Утты (на конкурс [[Вжж-Вжж!]], [[URQ]], 2013)&lt;br /&gt;
* Сказка для самых не очень больших маленьких (на конкурс [[ЛОК 2012]], [[URQ]], 2013)&lt;br /&gt;
* Байки Урковского леса или операция *С Новым Годом-2013!* − в соавторстве с [[Chicago1920]], [[Michi]], [[Мухтар]] и [[Серый Волк]] (новогодний сборник, [[URQ]], 2012)&lt;br /&gt;
* Тринадцать (на конкурс [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Мертвые — тоже люди − в соавторстве с [[Кащей|Кащеем]] (на конкурс [[КРИЛ 2012]], [[URQ]] и [[AXMA]], 2012)&lt;br /&gt;
* Слово для Жизни и Смерти одно (на конкурс [[КРИЛ 2012]] и [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Тайна заброшенной фермы − в соавторстве с [[Кащей|Кащеем]] (на конкурс [[Сенокос Вжж!]], [[URQ]], 2012)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=Saint&amp;diff=8391</id>
		<title>Saint</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=Saint&amp;diff=8391"/>
		<updated>2013-02-19T14:01:46Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Игры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известен как [[Saint]].&lt;br /&gt;
&lt;br /&gt;
С тех пор как 2012 году дебютировал на конкурсе [[Сенокос-Вжж!]] как соавтор игры URQ-ветерана [[Кащей|Кащея]], пишет без остановки почти на все конкурсы текстовых игр подряд. Пламенный патриот платформы [[URQ]].&lt;br /&gt;
&lt;br /&gt;
==Игры==&lt;br /&gt;
&lt;br /&gt;
* Глотт: Вот два карлика - вкусный подарок для Утты (на конкурс [[Вжж-Вжж!]], [[URQ]], 2013)&lt;br /&gt;
* Сказка для самых не очень больших маленьких (на конкурс [[ЛОК 2012]], [[URQ]], 2013)&lt;br /&gt;
* Байки Урковского леса или операция *С Новым Годом-2013!* − в соавторстве с [[Chicago1920]], [[Michi]], [[Мухтар]] и [[Серый Волк]] (новогодний сборник, [[URQ]], 2012)&lt;br /&gt;
* Тринадцать (на конкурс [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Мертвые — тоже люди − в соавторстве с [[Кащей|Кащеем]] (на конкурс [[КРИЛ 2012]], [[URQ]] и [[AXMA]], 2012)&lt;br /&gt;
* Слово для Жизни и Смерти одно (на конкурс [[КРИЛ 2012]] и [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Тайна заброшенной фермы − в соавторстве с [[Кащей|Кащеем]] (на конкурс [[Сенокос Вжж!]], [[URQ]], 2012)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=Saint&amp;diff=8390</id>
		<title>Saint</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=Saint&amp;diff=8390"/>
		<updated>2013-02-19T14:00:24Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Игры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известен как [[Saint]].&lt;br /&gt;
&lt;br /&gt;
С тех пор как 2012 году дебютировал на конкурсе [[Сенокос-Вжж!]] как соавтор игры URQ-ветерана [[Кащей|Кащея]], пишет без остановки почти на все конкурсы текстовых игр подряд. Пламенный патриот платформы [[URQ]].&lt;br /&gt;
&lt;br /&gt;
==Игры==&lt;br /&gt;
&lt;br /&gt;
* Глотт: Вот два карлика - вкусный подарок для Утты (на конкурс [[Вжж-Вжж!]], [[URQ]], 2013)&lt;br /&gt;
* Сказка для самых не очень больших маленьких (на конкурс [[ЛОК 2012]], [[URQ]], 2013)&lt;br /&gt;
* Байки Урковского леса или операция *С Новым Годом-2013!* − в соавторстве с [[Chicago1920]], [[Michi]], [[Мухтар]] и [[Серый Волк]] (новогодний сборник, [[URQ]], 2012)&lt;br /&gt;
* Тринадцать(на конкурс [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Мертвые — тоже люди − в соавторстве с [[Кащей|Кащеем]] (на конкурс [[КРИЛ 2012]], [[URQ]] и [[AXMA]], 2012)&lt;br /&gt;
* Слово для Жизни и Смерти одно (на конкурс [[КРИЛ 2012]] и [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Тайна заброшенной фермы − в соавторстве с [[Кащей|Кащеем]] (на конкурс [[Сенокос Вжж!]], [[URQ]], 2012)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Saint&amp;diff=8389</id>
		<title>Участник:Saint</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Saint&amp;diff=8389"/>
		<updated>2013-02-19T13:59:31Z</updated>

		<summary type="html">&lt;p&gt;Евг: Перенаправление на Елизаров, Илья&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Елизаров, Илья]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=Saint&amp;diff=8387</id>
		<title>Saint</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=Saint&amp;diff=8387"/>
		<updated>2013-02-19T13:58:19Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известен как [[Saint]].&lt;br /&gt;
&lt;br /&gt;
С тех пор как 2012 году дебютировал на конкурсе [[Сенокос-Вжж!]] как соавтор игры URQ-ветерана [[Кащей|Кащея]], пишет без остановки почти на все конкурсы текстовых игр подряд. Пламенный патриот платформы [[URQ]].&lt;br /&gt;
&lt;br /&gt;
==Игры==&lt;br /&gt;
&lt;br /&gt;
* Глотт: Вот два карлика - вкусный подарок для Утты (на конкурс [[Вжж-Вжж!]], [[URQ]], 2013)&lt;br /&gt;
* Сказка для самых не очень больших маленьких (на конкурс [[ЛОК 2012]], [[URQ]], 2013)&lt;br /&gt;
* Байки Урковского леса или операция *С Новым Годом-2013!* − в соавторстве с [[Chicago1920]], [[Michi]], [[Мухтар]] и [[Серый Волк]](новогодний сборник, [[URQ]], 2012)&lt;br /&gt;
* Тринадцать(на конкурс [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Мертвые — тоже люди − в соавторстве с [[Кащей|Кащеем]] (на конкурс [[КРИЛ 2012]], [[URQ]] и [[AXMA]], 2012)&lt;br /&gt;
* Слово для Жизни и Смерти одно (на конкурс [[КРИЛ 2012]] и [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Тайна заброшенной фермы − в соавторстве с [[Кащей|Кащеем]] (на конкурс [[Сенокос Вжж!]], [[URQ]], 2012)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=Saint&amp;diff=8386</id>
		<title>Saint</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=Saint&amp;diff=8386"/>
		<updated>2013-02-19T13:57:29Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известен как [[Saint]].&lt;br /&gt;
&lt;br /&gt;
С тех пор как 2012 году дебютировал на конкурсе [[Сенокос-Вжж!]] как соавтор игры URQ-ветерана − [[Кащея|Кащей]], пишет без остановки почти на все конкурсы текстовых игр подряд. Пламенный патриот платформы [[URQ]].&lt;br /&gt;
&lt;br /&gt;
==Игры==&lt;br /&gt;
&lt;br /&gt;
* Глотт: Вот два карлика - вкусный подарок для Утты (на конкурс [[Вжж-Вжж!]], [[URQ]], 2013)&lt;br /&gt;
* Сказка для самых не очень больших маленьких (на конкурс [[ЛОК 2012]], [[URQ]], 2013)&lt;br /&gt;
* Байки Урковского леса или операция *С Новым Годом-2013!* − в соавторстве с [[Chicago1920]], [[Michi]], [[Мухтар]] и [[Серый Волк]](новогодний сборник, [[URQ]], 2012)&lt;br /&gt;
* Тринадцать(на конкурс [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Мертвые — тоже люди − в соавторстве с [[Кащеем|Кащей]] (на конкурс [[КРИЛ 2012]], [[URQ]] и [[AXMA]], 2012)&lt;br /&gt;
* Слово для Жизни и Смерти одно (на конкурс [[КРИЛ 2012]] и [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Тайна заброшенной фермы − в соавторстве с [[Кащеем|Кащей]] (на конкурс [[Сенокос Вжж!]], [[URQ]], 2012)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=Saint&amp;diff=8385</id>
		<title>Saint</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=Saint&amp;diff=8385"/>
		<updated>2013-02-19T13:56:00Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известен как [[Saint]].&lt;br /&gt;
&lt;br /&gt;
С тех пор как 2012 году дебютировал на конкурсе Сенокос-Вжж! как соавтор игры URQ-ветерана − [[Кащея|Кащей]], пишет без остановки почти на все конкурсы текстовых игр подряд. Пламенный патриот платформы [[URQ]].&lt;br /&gt;
&lt;br /&gt;
==Игры==&lt;br /&gt;
&lt;br /&gt;
* Глотт: Вот два карлика - вкусный подарок для Утты (на конкурс [[Вжж-Вжж!]], [[URQ]], 2013)&lt;br /&gt;
* Сказка для самых не очень больших маленьких (на конкурс [[ЛОК 2012]], [[URQ]], 2013)&lt;br /&gt;
* Байки Урковского леса или операция *С Новым Годом-2013!* − в соавторстве с [[Chicago1920]], [[Michi]], [[Мухтар]] и [[Серый Волк]](новогодний сборник, [[URQ]], 2012)&lt;br /&gt;
* Тринадцать(на конкурс [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Мертвые — тоже люди − в соавторстве с [[Кащеем|Кащей]] (на конкурс [[КРИЛ 2012]], [[URQ]] и [[AXMA]], 2012)&lt;br /&gt;
* Слово для Жизни и Смерти одно (на конкурс [[КРИЛ 2012]] и [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Тайна заброшенной фермы − в соавторстве с [[Кащеем|Кащей]] (на конкурс [[Сенокос Вжж!]], [[URQ]], 2012)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=Saint&amp;diff=8384</id>
		<title>Saint</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=Saint&amp;diff=8384"/>
		<updated>2013-02-19T13:55:47Z</updated>

		<summary type="html">&lt;p&gt;Евг: Новая: Также известен как Saint.  С тех пор как 2012 году дебютировал на конкурсе Сенокос-Вжж! как соавтор игры UR...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известен как [[Saint]].&lt;br /&gt;
&lt;br /&gt;
С тех пор как 2012 году дебютировал на конкурсе Сенокос-Вжж! как соавтор игры URQ-ветерана − [[Кащея|Кащей]], пишет без остановки почти на все конкурсы текстовых игр подряд. Пламенный патриот платформы [[URQ]].&lt;br /&gt;
&lt;br /&gt;
* Глотт: Вот два карлика - вкусный подарок для Утты (на конкурс [[Вжж-Вжж!]], [[URQ]], 2013)&lt;br /&gt;
* Сказка для самых не очень больших маленьких (на конкурс [[ЛОК 2012]], [[URQ]], 2013)&lt;br /&gt;
* Байки Урковского леса или операция *С Новым Годом-2013!* − в соавторстве с [[Chicago1920]], [[Michi]], [[Мухтар]] и [[Серый Волк]](новогодний сборник, [[URQ]], 2012)&lt;br /&gt;
* Тринадцать(на конкурс [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Мертвые — тоже люди − в соавторстве с [[Кащеем|Кащей]] (на конкурс [[КРИЛ 2012]], [[URQ]] и [[AXMA]], 2012)&lt;br /&gt;
* Слово для Жизни и Смерти одно (на конкурс [[КРИЛ 2012]] и [[ЛОК 2012]], [[URQ]], 2012)&lt;br /&gt;
* Тайна заброшенной фермы − в соавторстве с [[Кащеем|Кащей]] (на конкурс [[Сенокос Вжж!]], [[URQ]], 2012)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=%D0%90%D0%BD%D1%82%D0%B8%D0%BF%D0%B8%D0%BD%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0&amp;diff=8383</id>
		<title>Антипина, Ирина</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=%D0%90%D0%BD%D1%82%D0%B8%D0%BF%D0%B8%D0%BD%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0&amp;diff=8383"/>
		<updated>2013-02-19T13:41:23Z</updated>

		<summary type="html">&lt;p&gt;Евг: /* Игры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известна как [[Ушкуут]], [[Eireen]], [[irina-kvest]]. &lt;br /&gt;
&lt;br /&gt;
Молодая перспективная разработчица игр с прекрасной улыбкой, добрым сердцем и гантелями. Впервые проявила себя в 2011 году на [[Квестер|Квестер]]е с небольшой игрой «Настя в городке», но теперь освоила и язык [[URQ]]. С тех пор активно пишет игры, участвует в конкурсах, проводит свои. &lt;br /&gt;
&lt;br /&gt;
С 2012 года постоянная участница конкурсов моментального творчества [[Вжж!]]. А в 2013 году не только прислала игру на конкурс, но и предоставила приз за первое место!&lt;br /&gt;
&lt;br /&gt;
Очень хитра.&lt;br /&gt;
&lt;br /&gt;
== Игры ==&lt;br /&gt;
&lt;br /&gt;
* О том, как журналистка сбежала от помидоров ([[URQ]], 2013)&lt;br /&gt;
* Сон модератора − в соавторстве с [[Vehast]], [[maks-s15]], [[tangarou]], [[adventurerus]], [[Silver]], [[Wolf_97]] ([[Квестер]], 2013)&lt;br /&gt;
* Волшебная палочка ([[URQ]], 2012)&lt;br /&gt;
* Девушки и кошки. Первый экзамен (часть 2) ([[Квестер]], 2012)&lt;br /&gt;
* Беспорядок на столе ([[Квестер]], 2012)&lt;br /&gt;
* Девушки и кошки. Первое знакомство. ( часть1 ) ([[Квестер]], 2012)&lt;br /&gt;
* Настя в городке 2. Генеральная уборка ([[Квестер]], 2011)&lt;br /&gt;
* Настя в городке ([[Квестер]], 2011)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=%D0%90%D0%BD%D1%82%D0%B8%D0%BF%D0%B8%D0%BD%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0&amp;diff=8382</id>
		<title>Антипина, Ирина</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=%D0%90%D0%BD%D1%82%D0%B8%D0%BF%D0%B8%D0%BD%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0&amp;diff=8382"/>
		<updated>2013-02-19T13:36:29Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известна как [[Ушкуут]], [[Eireen]], [[irina-kvest]]. &lt;br /&gt;
&lt;br /&gt;
Молодая перспективная разработчица игр с прекрасной улыбкой, добрым сердцем и гантелями. Впервые проявила себя в 2011 году на [[Квестер|Квестер]]е с небольшой игрой «Настя в городке», но теперь освоила и язык [[URQ]]. С тех пор активно пишет игры, участвует в конкурсах, проводит свои. &lt;br /&gt;
&lt;br /&gt;
С 2012 года постоянная участница конкурсов моментального творчества [[Вжж!]]. А в 2013 году не только прислала игру на конкурс, но и предоставила приз за первое место!&lt;br /&gt;
&lt;br /&gt;
Очень хитра.&lt;br /&gt;
&lt;br /&gt;
== Игры ==&lt;br /&gt;
&lt;br /&gt;
* О том, как журналистка сбежала от помидоров ([[URQ]], 2013)&lt;br /&gt;
* Сон модератора (в соавторстве с [[Vehast]], [[maks-s15]], [[tangarou]], [[adventurerus]], [[Silver]], [[Wolf_97]]) [[Квестер]], 2013)&lt;br /&gt;
* Волшебная палочка ([[URQ]], 2012)&lt;br /&gt;
* Девушки и кошки. Первый экзамен (часть 2) ([[Квестер]], 2012)&lt;br /&gt;
* Беспорядок на столе ([[Квестер]], 2012)&lt;br /&gt;
* Девушки и кошки. Первое знакомство. ( часть1 ) ([[Квестер]], 2012)&lt;br /&gt;
* Настя в городке 2. Генеральная уборка ([[Квестер]], 2011)&lt;br /&gt;
* Настя в городке ([[Квестер]], 2011)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=%D0%90%D0%BD%D1%82%D0%B8%D0%BF%D0%B8%D0%BD%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0&amp;diff=8381</id>
		<title>Антипина, Ирина</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=%D0%90%D0%BD%D1%82%D0%B8%D0%BF%D0%B8%D0%BD%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0&amp;diff=8381"/>
		<updated>2013-02-19T13:35:47Z</updated>

		<summary type="html">&lt;p&gt;Евг: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Также известна как [[Ушкуут]], [[Eireen]], [[irina-kvest]]. &lt;br /&gt;
&lt;br /&gt;
Молодая перспективная разработчица игр с прекрасной улыбкой, добрым сердцем и гантелями. Впервые проявила себя в 2011 году на [[Квестере|Квестер]] с небольшой игрой «Настя в городке», но теперь освоила и язык [[URQ]]. С тех пор активно пишет игры, участвует в конкурсах, проводит свои. &lt;br /&gt;
&lt;br /&gt;
С 2012 года постоянная участница конкурсов моментального творчества [[Вжж!]]. А в 2013 году не только прислала игру на конкурс, но и предоставила приз за первое место!&lt;br /&gt;
&lt;br /&gt;
Очень хитра.&lt;br /&gt;
&lt;br /&gt;
== Игры ==&lt;br /&gt;
&lt;br /&gt;
* О том, как журналистка сбежала от помидоров ([[URQ]], 2013)&lt;br /&gt;
* Сон модератора (в соавторстве с [[Vehast]], [[maks-s15]], [[tangarou]], [[adventurerus]], [[Silver]], [[Wolf_97]]) [[Квестер]], 2013)&lt;br /&gt;
* Волшебная палочка ([[URQ]], 2012)&lt;br /&gt;
* Девушки и кошки. Первый экзамен (часть 2) ([[Квестер]], 2012)&lt;br /&gt;
* Беспорядок на столе ([[Квестер]], 2012)&lt;br /&gt;
* Девушки и кошки. Первое знакомство. ( часть1 ) ([[Квестер]], 2012)&lt;br /&gt;
* Настя в городке 2. Генеральная уборка ([[Квестер]], 2011)&lt;br /&gt;
* Настя в городке ([[Квестер]], 2011)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Персоналии]]&lt;/div&gt;</summary>
		<author><name>Евг</name></author>
	</entry>
</feed>