<?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=Ajenta</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=Ajenta"/>
	<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/Ajenta"/>
	<updated>2026-04-21T22:19:17Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26133</id>
		<title>AkURQ</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26133"/>
		<updated>2019-06-28T12:16:37Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Особенности запуска игр под AkURQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{product info&lt;br /&gt;
|название = &lt;br /&gt;
|тип = Интерпретаторы URQ, Инструменты&lt;br /&gt;
|разработчик = [[Разработчик::Севрюгин, Александр|Александр Севрюгин]] при участии [[Разработчик::SFeLi]]&lt;br /&gt;
|язык = Русский и Английский&lt;br /&gt;
|система = Windows&lt;br /&gt;
|онлайн = &lt;br /&gt;
|написано на = [[Visual Basic]]&lt;br /&gt;
|язык разработки = Собственный диалект [[URQL]]&lt;br /&gt;
|читаемый формат = [[.qst|Игры URQ (*.qst)]], [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]]&lt;br /&gt;
|создаваемый формат = [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]], [[.exe|Исполняемые файлы (*.exe)]]&lt;br /&gt;
|первый выпуск = &lt;br /&gt;
|последняя версия = 1.28 пре-релиз 6 (Квотерой (AkURQ2) 2.12 beta 8)&lt;br /&gt;
|дата последней версии = 06.08.2007&lt;br /&gt;
|состояние = Архивное&lt;br /&gt;
|лицензия = [[Freeware]]&lt;br /&gt;
|сайт = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Один из наиболее популярных в своё время интерпретаторов [[URQ]], но в настоящий момент его разработка прекращена. Поддерживает все особенности [[RipURQ]] и [[URQ DOS]], а также имеет собственные расширения диалекта [[URQL]], в частности, поддерживает HTML-оформление квестов и математические функции. AkURQ также позволяет шифровать обычные игры в формате [[.qst]] в шифрованные и сжатые форматы [[.qs1]], [[.qs2]] и [[.qs3]] и запаковывать игры вместе с интерпретатором в единый [[.exe|исполняемый файл Windows]].&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Akurq.jpg|Интерпретатор AkURQ]]&lt;br /&gt;
&lt;br /&gt;
Существовал проект AkURQ второго поколения под названием &amp;quot;Квотерой&amp;quot;, но его наработки остались со статусом beta-версии.&lt;br /&gt;
&lt;br /&gt;
Позже основным разработчиком AkURQ был создан принципиально новый интерпретатор [[UrqW]].&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
Ссылку на скачивание последней версии AkURQ можно найти на [http://urq.plut.info/soft сайте разработчиков URQ-игр].&lt;br /&gt;
&lt;br /&gt;
[[Медиа:AkURQ.rar|Документация по AkURQ от Корвина]]&lt;br /&gt;
&lt;br /&gt;
== Особенности запуска игр под AkURQ ==&lt;br /&gt;
Существуют несколько версий интерпретатора, не совместимых друг с другом (самые популярные - AkURQ1.28pre1 и AkURQ1.28pre6). Запуск игры не под той версией, под которую она писалась, может привести к некорректной работе. Какая игра написана под какой интерпретатор, можно посмотреть [http://rilarhiv.ru/urq.htm здесь].&lt;br /&gt;
&lt;br /&gt;
Также, для работы AkURQ может понадобиться файл RICHTX32.OCX. Скачать его можно на той же страничке.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Инструкция по установке&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Файл RICHTX32.OCX следует положить в папку Windows\system32\&amp;lt;br/&amp;gt;&lt;br /&gt;
Далее, откройте командную строку от имени администратора.&amp;lt;br/&amp;gt;&lt;br /&gt;
Напишите в ней: &amp;lt;br/&amp;gt;&lt;br /&gt;
regsvr32 RICHTX32.OCX&amp;lt;br/&amp;gt;&lt;br /&gt;
Теперь можете открыть плеер AkURQ.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[:Категория:Игры на AkURQ|Игры на AkURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26132</id>
		<title>AkURQ</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26132"/>
		<updated>2019-06-28T12:15:28Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Особенности запуска игр под AkURQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{product info&lt;br /&gt;
|название = &lt;br /&gt;
|тип = Интерпретаторы URQ, Инструменты&lt;br /&gt;
|разработчик = [[Разработчик::Севрюгин, Александр|Александр Севрюгин]] при участии [[Разработчик::SFeLi]]&lt;br /&gt;
|язык = Русский и Английский&lt;br /&gt;
|система = Windows&lt;br /&gt;
|онлайн = &lt;br /&gt;
|написано на = [[Visual Basic]]&lt;br /&gt;
|язык разработки = Собственный диалект [[URQL]]&lt;br /&gt;
|читаемый формат = [[.qst|Игры URQ (*.qst)]], [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]]&lt;br /&gt;
|создаваемый формат = [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]], [[.exe|Исполняемые файлы (*.exe)]]&lt;br /&gt;
|первый выпуск = &lt;br /&gt;
|последняя версия = 1.28 пре-релиз 6 (Квотерой (AkURQ2) 2.12 beta 8)&lt;br /&gt;
|дата последней версии = 06.08.2007&lt;br /&gt;
|состояние = Архивное&lt;br /&gt;
|лицензия = [[Freeware]]&lt;br /&gt;
|сайт = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Один из наиболее популярных в своё время интерпретаторов [[URQ]], но в настоящий момент его разработка прекращена. Поддерживает все особенности [[RipURQ]] и [[URQ DOS]], а также имеет собственные расширения диалекта [[URQL]], в частности, поддерживает HTML-оформление квестов и математические функции. AkURQ также позволяет шифровать обычные игры в формате [[.qst]] в шифрованные и сжатые форматы [[.qs1]], [[.qs2]] и [[.qs3]] и запаковывать игры вместе с интерпретатором в единый [[.exe|исполняемый файл Windows]].&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Akurq.jpg|Интерпретатор AkURQ]]&lt;br /&gt;
&lt;br /&gt;
Существовал проект AkURQ второго поколения под названием &amp;quot;Квотерой&amp;quot;, но его наработки остались со статусом beta-версии.&lt;br /&gt;
&lt;br /&gt;
Позже основным разработчиком AkURQ был создан принципиально новый интерпретатор [[UrqW]].&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
Ссылку на скачивание последней версии AkURQ можно найти на [http://urq.plut.info/soft сайте разработчиков URQ-игр].&lt;br /&gt;
&lt;br /&gt;
[[Медиа:AkURQ.rar|Документация по AkURQ от Корвина]]&lt;br /&gt;
&lt;br /&gt;
== Особенности запуска игр под AkURQ ==&lt;br /&gt;
Существуют несколько версий интерпретатора, не совместимых друг с другом (самые популярные - AkURQ1.28pre1 и AkURQ1.28pre6). Запуск игры не под той версией, под которую она писалась, может привести к некорректной работе. Какая игра написана под какой интерпретатор, можно посмотреть [http://rilarhiv.ru/urq.htm здесь].&lt;br /&gt;
&lt;br /&gt;
Также, для работы AkURQ может понадобиться файл RICHTX32.OCX. Скачать его можно на той же страничке.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Инструкция по установке&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Файл RICHTX32.OCX следует положить в папку Windows\system32\&amp;lt;br/&amp;gt;&lt;br /&gt;
Далеле, откройте командную строку от имени администратора.&amp;lt;br/&amp;gt;&lt;br /&gt;
Напишите в ней: &amp;lt;br/&amp;gt;&lt;br /&gt;
regsvr32 RICHTX32.OCX&amp;lt;br/&amp;gt;&lt;br /&gt;
Теперь можете открыть плеер AkURQ.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[:Категория:Игры на AkURQ|Игры на AkURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26131</id>
		<title>AkURQ</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26131"/>
		<updated>2019-06-28T12:15:10Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Особенности запуска игр под AkURQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{product info&lt;br /&gt;
|название = &lt;br /&gt;
|тип = Интерпретаторы URQ, Инструменты&lt;br /&gt;
|разработчик = [[Разработчик::Севрюгин, Александр|Александр Севрюгин]] при участии [[Разработчик::SFeLi]]&lt;br /&gt;
|язык = Русский и Английский&lt;br /&gt;
|система = Windows&lt;br /&gt;
|онлайн = &lt;br /&gt;
|написано на = [[Visual Basic]]&lt;br /&gt;
|язык разработки = Собственный диалект [[URQL]]&lt;br /&gt;
|читаемый формат = [[.qst|Игры URQ (*.qst)]], [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]]&lt;br /&gt;
|создаваемый формат = [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]], [[.exe|Исполняемые файлы (*.exe)]]&lt;br /&gt;
|первый выпуск = &lt;br /&gt;
|последняя версия = 1.28 пре-релиз 6 (Квотерой (AkURQ2) 2.12 beta 8)&lt;br /&gt;
|дата последней версии = 06.08.2007&lt;br /&gt;
|состояние = Архивное&lt;br /&gt;
|лицензия = [[Freeware]]&lt;br /&gt;
|сайт = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Один из наиболее популярных в своё время интерпретаторов [[URQ]], но в настоящий момент его разработка прекращена. Поддерживает все особенности [[RipURQ]] и [[URQ DOS]], а также имеет собственные расширения диалекта [[URQL]], в частности, поддерживает HTML-оформление квестов и математические функции. AkURQ также позволяет шифровать обычные игры в формате [[.qst]] в шифрованные и сжатые форматы [[.qs1]], [[.qs2]] и [[.qs3]] и запаковывать игры вместе с интерпретатором в единый [[.exe|исполняемый файл Windows]].&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Akurq.jpg|Интерпретатор AkURQ]]&lt;br /&gt;
&lt;br /&gt;
Существовал проект AkURQ второго поколения под названием &amp;quot;Квотерой&amp;quot;, но его наработки остались со статусом beta-версии.&lt;br /&gt;
&lt;br /&gt;
Позже основным разработчиком AkURQ был создан принципиально новый интерпретатор [[UrqW]].&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
Ссылку на скачивание последней версии AkURQ можно найти на [http://urq.plut.info/soft сайте разработчиков URQ-игр].&lt;br /&gt;
&lt;br /&gt;
[[Медиа:AkURQ.rar|Документация по AkURQ от Корвина]]&lt;br /&gt;
&lt;br /&gt;
== Особенности запуска игр под AkURQ ==&lt;br /&gt;
Существуют несколько версий интерпретатора, не совместимых друг с другом (самые популярные - AkURQ1.28pre1 и AkURQ1.28pre6). Запуск игры не под той версией, под которую она писалась, может привести к некорректной работе. Какая игра написана под какой интерпретатор, можно посмотреть [http://rilarhiv.ru/urq.htm здесь].&lt;br /&gt;
&lt;br /&gt;
Также, для работы AkURQ может понадобиться файл RICHTX32.OCX. Скачать его можно на той же страничке.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Инструкция по установке&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Файл RICHTX32.OCX следует положить в папку Windows\system32\&amp;lt;br/&amp;gt;&lt;br /&gt;
Далеле, откройте командную строку от имени администратора.&amp;lt;br/&amp;gt;&lt;br /&gt;
Напишите в ней: &amp;lt;br/&amp;gt;&lt;br /&gt;
regsvr32 RICHTX32.OCX&amp;lt;br/&amp;gt;&lt;br /&gt;
Теперь можете открыть плеер AkURQ&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[:Категория:Игры на AkURQ|Игры на AkURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26130</id>
		<title>AkURQ</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26130"/>
		<updated>2019-06-28T12:14:00Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Особенности запуска игр под AkURQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{product info&lt;br /&gt;
|название = &lt;br /&gt;
|тип = Интерпретаторы URQ, Инструменты&lt;br /&gt;
|разработчик = [[Разработчик::Севрюгин, Александр|Александр Севрюгин]] при участии [[Разработчик::SFeLi]]&lt;br /&gt;
|язык = Русский и Английский&lt;br /&gt;
|система = Windows&lt;br /&gt;
|онлайн = &lt;br /&gt;
|написано на = [[Visual Basic]]&lt;br /&gt;
|язык разработки = Собственный диалект [[URQL]]&lt;br /&gt;
|читаемый формат = [[.qst|Игры URQ (*.qst)]], [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]]&lt;br /&gt;
|создаваемый формат = [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]], [[.exe|Исполняемые файлы (*.exe)]]&lt;br /&gt;
|первый выпуск = &lt;br /&gt;
|последняя версия = 1.28 пре-релиз 6 (Квотерой (AkURQ2) 2.12 beta 8)&lt;br /&gt;
|дата последней версии = 06.08.2007&lt;br /&gt;
|состояние = Архивное&lt;br /&gt;
|лицензия = [[Freeware]]&lt;br /&gt;
|сайт = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Один из наиболее популярных в своё время интерпретаторов [[URQ]], но в настоящий момент его разработка прекращена. Поддерживает все особенности [[RipURQ]] и [[URQ DOS]], а также имеет собственные расширения диалекта [[URQL]], в частности, поддерживает HTML-оформление квестов и математические функции. AkURQ также позволяет шифровать обычные игры в формате [[.qst]] в шифрованные и сжатые форматы [[.qs1]], [[.qs2]] и [[.qs3]] и запаковывать игры вместе с интерпретатором в единый [[.exe|исполняемый файл Windows]].&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Akurq.jpg|Интерпретатор AkURQ]]&lt;br /&gt;
&lt;br /&gt;
Существовал проект AkURQ второго поколения под названием &amp;quot;Квотерой&amp;quot;, но его наработки остались со статусом beta-версии.&lt;br /&gt;
&lt;br /&gt;
Позже основным разработчиком AkURQ был создан принципиально новый интерпретатор [[UrqW]].&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
Ссылку на скачивание последней версии AkURQ можно найти на [http://urq.plut.info/soft сайте разработчиков URQ-игр].&lt;br /&gt;
&lt;br /&gt;
[[Медиа:AkURQ.rar|Документация по AkURQ от Корвина]]&lt;br /&gt;
&lt;br /&gt;
== Особенности запуска игр под AkURQ ==&lt;br /&gt;
Существуют несколько версий интерпретатора, не совместимых друг с другом (самые популярные - AkURQ1.28pre1 и AkURQ1.28pre6). Запуск игры не под той версией, под которую она писалась, может привести к некорректной работе. Какая игра написана под какой интерпретатор, можно посмотреть [http://rilarhiv.ru/urq.htm здесь].&lt;br /&gt;
&lt;br /&gt;
Также, для работы AkURQ может понадобиться файл RICHTX32.OCX. Скачать его можно на той же страничке.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Инструкция по установке&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Файл RICHTX32.OCX следует положить в папку Windows\system32\&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Далеле, откройте командную строку от имени администратора.&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Напишите в ней: regsvr32 RICHTX32.OCX&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Теперь можете открыть плеер AkURQ&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[:Категория:Игры на AkURQ|Игры на AkURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26129</id>
		<title>AkURQ</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26129"/>
		<updated>2019-06-28T12:13:20Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Особенности запуска игр под AkURQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{product info&lt;br /&gt;
|название = &lt;br /&gt;
|тип = Интерпретаторы URQ, Инструменты&lt;br /&gt;
|разработчик = [[Разработчик::Севрюгин, Александр|Александр Севрюгин]] при участии [[Разработчик::SFeLi]]&lt;br /&gt;
|язык = Русский и Английский&lt;br /&gt;
|система = Windows&lt;br /&gt;
|онлайн = &lt;br /&gt;
|написано на = [[Visual Basic]]&lt;br /&gt;
|язык разработки = Собственный диалект [[URQL]]&lt;br /&gt;
|читаемый формат = [[.qst|Игры URQ (*.qst)]], [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]]&lt;br /&gt;
|создаваемый формат = [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]], [[.exe|Исполняемые файлы (*.exe)]]&lt;br /&gt;
|первый выпуск = &lt;br /&gt;
|последняя версия = 1.28 пре-релиз 6 (Квотерой (AkURQ2) 2.12 beta 8)&lt;br /&gt;
|дата последней версии = 06.08.2007&lt;br /&gt;
|состояние = Архивное&lt;br /&gt;
|лицензия = [[Freeware]]&lt;br /&gt;
|сайт = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Один из наиболее популярных в своё время интерпретаторов [[URQ]], но в настоящий момент его разработка прекращена. Поддерживает все особенности [[RipURQ]] и [[URQ DOS]], а также имеет собственные расширения диалекта [[URQL]], в частности, поддерживает HTML-оформление квестов и математические функции. AkURQ также позволяет шифровать обычные игры в формате [[.qst]] в шифрованные и сжатые форматы [[.qs1]], [[.qs2]] и [[.qs3]] и запаковывать игры вместе с интерпретатором в единый [[.exe|исполняемый файл Windows]].&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Akurq.jpg|Интерпретатор AkURQ]]&lt;br /&gt;
&lt;br /&gt;
Существовал проект AkURQ второго поколения под названием &amp;quot;Квотерой&amp;quot;, но его наработки остались со статусом beta-версии.&lt;br /&gt;
&lt;br /&gt;
Позже основным разработчиком AkURQ был создан принципиально новый интерпретатор [[UrqW]].&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
Ссылку на скачивание последней версии AkURQ можно найти на [http://urq.plut.info/soft сайте разработчиков URQ-игр].&lt;br /&gt;
&lt;br /&gt;
[[Медиа:AkURQ.rar|Документация по AkURQ от Корвина]]&lt;br /&gt;
&lt;br /&gt;
== Особенности запуска игр под AkURQ ==&lt;br /&gt;
Существуют несколько версий интерпретатора, не совместимых друг с другом (самые популярные - AkURQ1.28pre1 и AkURQ1.28pre6). Запуск игры не под той версией, под которую она писалась, может привести к некорректной работе. Какая игра написана под какой интерпретатор, можно посмотреть [http://rilarhiv.ru/urq.htm здесь].&lt;br /&gt;
&lt;br /&gt;
Также, для работы AkURQ может понадобиться файл RICHTX32.OCX. Скачать его можно на той же страничке.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Инструкция по установке&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Файл RICHTX32.OCX следует положить в папку Windows\system32\&#039;&#039;&lt;br /&gt;
&#039;&#039;Далеле, откройте командную строку от имени администратора.&#039;&#039;&lt;br /&gt;
&#039;&#039;Напишите в ней: regsvr32 RICHTX32.OCX&#039;&#039;&lt;br /&gt;
&#039;&#039;Теперь можете открыть плеер AkURQ&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[:Категория:Игры на AkURQ|Игры на AkURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26128</id>
		<title>AkURQ</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26128"/>
		<updated>2019-06-28T12:12:52Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Особенности запуска игр под AkURQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{product info&lt;br /&gt;
|название = &lt;br /&gt;
|тип = Интерпретаторы URQ, Инструменты&lt;br /&gt;
|разработчик = [[Разработчик::Севрюгин, Александр|Александр Севрюгин]] при участии [[Разработчик::SFeLi]]&lt;br /&gt;
|язык = Русский и Английский&lt;br /&gt;
|система = Windows&lt;br /&gt;
|онлайн = &lt;br /&gt;
|написано на = [[Visual Basic]]&lt;br /&gt;
|язык разработки = Собственный диалект [[URQL]]&lt;br /&gt;
|читаемый формат = [[.qst|Игры URQ (*.qst)]], [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]]&lt;br /&gt;
|создаваемый формат = [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]], [[.exe|Исполняемые файлы (*.exe)]]&lt;br /&gt;
|первый выпуск = &lt;br /&gt;
|последняя версия = 1.28 пре-релиз 6 (Квотерой (AkURQ2) 2.12 beta 8)&lt;br /&gt;
|дата последней версии = 06.08.2007&lt;br /&gt;
|состояние = Архивное&lt;br /&gt;
|лицензия = [[Freeware]]&lt;br /&gt;
|сайт = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Один из наиболее популярных в своё время интерпретаторов [[URQ]], но в настоящий момент его разработка прекращена. Поддерживает все особенности [[RipURQ]] и [[URQ DOS]], а также имеет собственные расширения диалекта [[URQL]], в частности, поддерживает HTML-оформление квестов и математические функции. AkURQ также позволяет шифровать обычные игры в формате [[.qst]] в шифрованные и сжатые форматы [[.qs1]], [[.qs2]] и [[.qs3]] и запаковывать игры вместе с интерпретатором в единый [[.exe|исполняемый файл Windows]].&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Akurq.jpg|Интерпретатор AkURQ]]&lt;br /&gt;
&lt;br /&gt;
Существовал проект AkURQ второго поколения под названием &amp;quot;Квотерой&amp;quot;, но его наработки остались со статусом beta-версии.&lt;br /&gt;
&lt;br /&gt;
Позже основным разработчиком AkURQ был создан принципиально новый интерпретатор [[UrqW]].&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
Ссылку на скачивание последней версии AkURQ можно найти на [http://urq.plut.info/soft сайте разработчиков URQ-игр].&lt;br /&gt;
&lt;br /&gt;
[[Медиа:AkURQ.rar|Документация по AkURQ от Корвина]]&lt;br /&gt;
&lt;br /&gt;
== Особенности запуска игр под AkURQ ==&lt;br /&gt;
Существуют несколько версий интерпретатора, не совместимых друг с другом (самые популярные - AkURQ1.28pre1 и AkURQ1.28pre6). Запуск игры не под той версией, под которую она писалась, может привести к некорректной работе. Какая игра написана под какой интерпретатор, можно посмотреть [http://rilarhiv.ru/urq.htm здесь].&lt;br /&gt;
&lt;br /&gt;
Также, для работы AkURQ может понадобиться файл RICHTX32.OCX. Скачать его можно на той же страничке.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Инструкция по установке&#039;&#039;&#039;&lt;br /&gt;
Файл RICHTX32.OCX следует положить в папку Windows\system32\&lt;br /&gt;
Далеле, откройте командную строку от имени администратора.&lt;br /&gt;
Напишите в ней: regsvr32 RICHTX32.OCX&lt;br /&gt;
Теперь можете открыть плеер AkURQ&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[:Категория:Игры на AkURQ|Игры на AkURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26127</id>
		<title>AkURQ</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=AkURQ&amp;diff=26127"/>
		<updated>2019-06-28T12:12:32Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Особенности запуска игр под AkURQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{product info&lt;br /&gt;
|название = &lt;br /&gt;
|тип = Интерпретаторы URQ, Инструменты&lt;br /&gt;
|разработчик = [[Разработчик::Севрюгин, Александр|Александр Севрюгин]] при участии [[Разработчик::SFeLi]]&lt;br /&gt;
|язык = Русский и Английский&lt;br /&gt;
|система = Windows&lt;br /&gt;
|онлайн = &lt;br /&gt;
|написано на = [[Visual Basic]]&lt;br /&gt;
|язык разработки = Собственный диалект [[URQL]]&lt;br /&gt;
|читаемый формат = [[.qst|Игры URQ (*.qst)]], [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]]&lt;br /&gt;
|создаваемый формат = [[.qs1|Шифрованные игры URQ (*.qs1)]], [[.qs2|Шифрованные игры URQ (*.qs2)]], [[.qs3|Сжатые игры URQ (*.qs3)]], [[.exe|Исполняемые файлы (*.exe)]]&lt;br /&gt;
|первый выпуск = &lt;br /&gt;
|последняя версия = 1.28 пре-релиз 6 (Квотерой (AkURQ2) 2.12 beta 8)&lt;br /&gt;
|дата последней версии = 06.08.2007&lt;br /&gt;
|состояние = Архивное&lt;br /&gt;
|лицензия = [[Freeware]]&lt;br /&gt;
|сайт = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Один из наиболее популярных в своё время интерпретаторов [[URQ]], но в настоящий момент его разработка прекращена. Поддерживает все особенности [[RipURQ]] и [[URQ DOS]], а также имеет собственные расширения диалекта [[URQL]], в частности, поддерживает HTML-оформление квестов и математические функции. AkURQ также позволяет шифровать обычные игры в формате [[.qst]] в шифрованные и сжатые форматы [[.qs1]], [[.qs2]] и [[.qs3]] и запаковывать игры вместе с интерпретатором в единый [[.exe|исполняемый файл Windows]].&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Akurq.jpg|Интерпретатор AkURQ]]&lt;br /&gt;
&lt;br /&gt;
Существовал проект AkURQ второго поколения под названием &amp;quot;Квотерой&amp;quot;, но его наработки остались со статусом beta-версии.&lt;br /&gt;
&lt;br /&gt;
Позже основным разработчиком AkURQ был создан принципиально новый интерпретатор [[UrqW]].&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
Ссылку на скачивание последней версии AkURQ можно найти на [http://urq.plut.info/soft сайте разработчиков URQ-игр].&lt;br /&gt;
&lt;br /&gt;
[[Медиа:AkURQ.rar|Документация по AkURQ от Корвина]]&lt;br /&gt;
&lt;br /&gt;
== Особенности запуска игр под AkURQ ==&lt;br /&gt;
Существуют несколько версий интерпретатора, не совместимых друг с другом (самые популярные - AkURQ1.28pre1 и AkURQ1.28pre6). Запуск игры не под той версией, под которую она писалась, может привести к некорректной работе. Какая игра написана под какой интерпретатор, можно посмотреть [http://rilarhiv.ru/urq.htm здесь].&lt;br /&gt;
&lt;br /&gt;
Также, для работы AkURQ может понадобиться файл RICHTX32.OCX. Скачать его можно на той же страничке.&lt;br /&gt;
&lt;br /&gt;
***Инструкция по установке***&lt;br /&gt;
Файл RICHTX32.OCX следует положить в папку Windows\system32\&lt;br /&gt;
Далеле, откройте командную строку от имени администратора.&lt;br /&gt;
Напишите в ней: regsvr32 RICHTX32.OCX&lt;br /&gt;
Теперь можете открыть плеер AkURQ&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[:Категория:Игры на AkURQ|Игры на AkURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</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=24178</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=24178"/>
		<updated>2019-03-06T13:53:32Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Музыка */&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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;music some.ogg, -1500&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Переменная &#039;&#039;&#039;is_music&#039;&#039;&#039; равна &#039;&#039;&#039;1&#039;&#039;&#039;, если в игре играет музыка, и &#039;&#039;&#039;0&#039;&#039;&#039; — если нет. &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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.png&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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. Для декоратора типа TEXTBUTTON данная переменная выровняет название кнопки согласно установленному значению. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора (масштабируется по ширине текста в нём), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль. Для декоратора типа TEXTBUTTON данная переменная установит ширину кнопки независимо от ширины текста в ней (по умолчанию ширина кнопки равна ширине текста).&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно. Только для декораторов типа IMAGE.&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;
Также, в старых версиях &#039;&#039;&#039;FireURQ&#039;&#039;&#039; (до версии 2.0) существовала возможность конвертации квеста в формате QSZ в исполняемый файл с помощью утилиты &#039;&#039;&#039;QSZ2EXE&#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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
Так же с версии 2.2 в FireURQ появилась возможность менять базовое имя файла сейва. &lt;br /&gt;
Переменная &#039;&#039;&#039;savenamebase&#039;&#039;&#039; хранит это имя. По умолчанию переменная содержит название файла игры. &lt;br /&gt;
Если значение поменять на &#039;&#039;&#039;«profile1»&#039;&#039;&#039;, то файлы сохранений будут называться &#039;&#039;&#039;profile1.s01&#039;&#039;&#039;, &#039;&#039;&#039;profile1.s02&#039;&#039;&#039; и т.д.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&lt;br /&gt;
Если использовались слоты сохранений, то данная команда вызовет интерфейс выбора из слотов. Если же сохранение было системным, то просто загрузит игру.&lt;br /&gt;
&lt;br /&gt;
C версии &#039;&#039;&#039;FireURQ 2.2&#039;&#039;&#039; появилась возможность загружать сохранения непосредственно из слотов, не вызывая меню &amp;quot;Загрузить сохранение&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если написать &#039;&#039;&#039;LOAD 1&#039;&#039;&#039;, то будет загружено сохранение из первого слота. &#039;&#039;&#039;LOAD 0&#039;&#039;&#039; загрузит игру из слота автосохранения.&lt;br /&gt;
&lt;br /&gt;
==Перманентное хранилище данных==&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 2.2 FireURQ обзавелась перманентным хранилищем данных. &lt;br /&gt;
Это переменные, которые не удаляются при &#039;&#039;&#039;perkill&#039;&#039;&#039; или перезапуске игры, автоматически подгружаются и, при их изменении, так же автоматически сохраняются в специальном файле. &lt;br /&gt;
&lt;br /&gt;
Любая переменная, начинающаяся на &#039;&#039;&#039;gss_&#039;&#039;&#039; будет считаться перманентной. &lt;br /&gt;
&lt;br /&gt;
Это позволит хранить глобальные настройки, которые не должны изменяться при перезапуске игры, а так же делать достижения и даже переносить параметры из игры в игру.&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;gsskill&#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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;br /&gt;
* Переменная &#039;&#039;&#039;altenter_disable&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;0&#039;&#039;&#039;) отвечает за то, что по комбинации клавишь &#039;&#039;&#039;Alt + Enter&#039;&#039;&#039; окно игры будет открываться на весь экран или становиться снова окном. Для отключения реакции на эту комбинацию клавишь, следует установить переменную в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;escape_disable&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;0&#039;&#039;&#039;) отвечает за показ системного меню по нажатию клавиши &#039;&#039;&#039;Esc&#039;&#039;&#039;. Для отключения реакции на эту клавижшу клавишу, следует установить переменную в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Ajenta</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=24177</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=24177"/>
		<updated>2019-03-06T13:50:44Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Музыка */&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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;music some.ogg, -1500&#039;&#039;&#039;&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.png&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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. Для декоратора типа TEXTBUTTON данная переменная выровняет название кнопки согласно установленному значению. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора (масштабируется по ширине текста в нём), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль. Для декоратора типа TEXTBUTTON данная переменная установит ширину кнопки независимо от ширины текста в ней (по умолчанию ширина кнопки равна ширине текста).&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно. Только для декораторов типа IMAGE.&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;
Также, в старых версиях &#039;&#039;&#039;FireURQ&#039;&#039;&#039; (до версии 2.0) существовала возможность конвертации квеста в формате QSZ в исполняемый файл с помощью утилиты &#039;&#039;&#039;QSZ2EXE&#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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
Так же с версии 2.2 в FireURQ появилась возможность менять базовое имя файла сейва. &lt;br /&gt;
Переменная &#039;&#039;&#039;savenamebase&#039;&#039;&#039; хранит это имя. По умолчанию переменная содержит название файла игры. &lt;br /&gt;
Если значение поменять на &#039;&#039;&#039;«profile1»&#039;&#039;&#039;, то файлы сохранений будут называться &#039;&#039;&#039;profile1.s01&#039;&#039;&#039;, &#039;&#039;&#039;profile1.s02&#039;&#039;&#039; и т.д.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&lt;br /&gt;
Если использовались слоты сохранений, то данная команда вызовет интерфейс выбора из слотов. Если же сохранение было системным, то просто загрузит игру.&lt;br /&gt;
&lt;br /&gt;
C версии &#039;&#039;&#039;FireURQ 2.2&#039;&#039;&#039; появилась возможность загружать сохранения непосредственно из слотов, не вызывая меню &amp;quot;Загрузить сохранение&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если написать &#039;&#039;&#039;LOAD 1&#039;&#039;&#039;, то будет загружено сохранение из первого слота. &#039;&#039;&#039;LOAD 0&#039;&#039;&#039; загрузит игру из слота автосохранения.&lt;br /&gt;
&lt;br /&gt;
==Перманентное хранилище данных==&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 2.2 FireURQ обзавелась перманентным хранилищем данных. &lt;br /&gt;
Это переменные, которые не удаляются при &#039;&#039;&#039;perkill&#039;&#039;&#039; или перезапуске игры, автоматически подгружаются и, при их изменении, так же автоматически сохраняются в специальном файле. &lt;br /&gt;
&lt;br /&gt;
Любая переменная, начинающаяся на &#039;&#039;&#039;gss_&#039;&#039;&#039; будет считаться перманентной. &lt;br /&gt;
&lt;br /&gt;
Это позволит хранить глобальные настройки, которые не должны изменяться при перезапуске игры, а так же делать достижения и даже переносить параметры из игры в игру.&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;gsskill&#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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;br /&gt;
* Переменная &#039;&#039;&#039;altenter_disable&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;0&#039;&#039;&#039;) отвечает за то, что по комбинации клавишь &#039;&#039;&#039;Alt + Enter&#039;&#039;&#039; окно игры будет открываться на весь экран или становиться снова окном. Для отключения реакции на эту комбинацию клавишь, следует установить переменную в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;escape_disable&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;0&#039;&#039;&#039;) отвечает за показ системного меню по нажатию клавиши &#039;&#039;&#039;Esc&#039;&#039;&#039;. Для отключения реакции на эту клавижшу клавишу, следует установить переменную в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Ajenta</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=24176</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=24176"/>
		<updated>2019-03-06T13:45:44Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Другое */&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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.png&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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. Для декоратора типа TEXTBUTTON данная переменная выровняет название кнопки согласно установленному значению. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора (масштабируется по ширине текста в нём), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль. Для декоратора типа TEXTBUTTON данная переменная установит ширину кнопки независимо от ширины текста в ней (по умолчанию ширина кнопки равна ширине текста).&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно. Только для декораторов типа IMAGE.&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;
Также, в старых версиях &#039;&#039;&#039;FireURQ&#039;&#039;&#039; (до версии 2.0) существовала возможность конвертации квеста в формате QSZ в исполняемый файл с помощью утилиты &#039;&#039;&#039;QSZ2EXE&#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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
Так же с версии 2.2 в FireURQ появилась возможность менять базовое имя файла сейва. &lt;br /&gt;
Переменная &#039;&#039;&#039;savenamebase&#039;&#039;&#039; хранит это имя. По умолчанию переменная содержит название файла игры. &lt;br /&gt;
Если значение поменять на &#039;&#039;&#039;«profile1»&#039;&#039;&#039;, то файлы сохранений будут называться &#039;&#039;&#039;profile1.s01&#039;&#039;&#039;, &#039;&#039;&#039;profile1.s02&#039;&#039;&#039; и т.д.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&lt;br /&gt;
Если использовались слоты сохранений, то данная команда вызовет интерфейс выбора из слотов. Если же сохранение было системным, то просто загрузит игру.&lt;br /&gt;
&lt;br /&gt;
C версии &#039;&#039;&#039;FireURQ 2.2&#039;&#039;&#039; появилась возможность загружать сохранения непосредственно из слотов, не вызывая меню &amp;quot;Загрузить сохранение&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если написать &#039;&#039;&#039;LOAD 1&#039;&#039;&#039;, то будет загружено сохранение из первого слота. &#039;&#039;&#039;LOAD 0&#039;&#039;&#039; загрузит игру из слота автосохранения.&lt;br /&gt;
&lt;br /&gt;
==Перманентное хранилище данных==&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 2.2 FireURQ обзавелась перманентным хранилищем данных. &lt;br /&gt;
Это переменные, которые не удаляются при &#039;&#039;&#039;perkill&#039;&#039;&#039; или перезапуске игры, автоматически подгружаются и, при их изменении, так же автоматически сохраняются в специальном файле. &lt;br /&gt;
&lt;br /&gt;
Любая переменная, начинающаяся на &#039;&#039;&#039;gss_&#039;&#039;&#039; будет считаться перманентной. &lt;br /&gt;
&lt;br /&gt;
Это позволит хранить глобальные настройки, которые не должны изменяться при перезапуске игры, а так же делать достижения и даже переносить параметры из игры в игру.&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;gsskill&#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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;br /&gt;
* Переменная &#039;&#039;&#039;altenter_disable&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;0&#039;&#039;&#039;) отвечает за то, что по комбинации клавишь &#039;&#039;&#039;Alt + Enter&#039;&#039;&#039; окно игры будет открываться на весь экран или становиться снова окном. Для отключения реакции на эту комбинацию клавишь, следует установить переменную в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
* Переменная &#039;&#039;&#039;escape_disable&#039;&#039;&#039; (по умолчанию &#039;&#039;&#039;0&#039;&#039;&#039;) отвечает за показ системного меню по нажатию клавиши &#039;&#039;&#039;Esc&#039;&#039;&#039;. Для отключения реакции на эту клавижшу клавишу, следует установить переменную в &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Ajenta</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=23111</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=23111"/>
		<updated>2018-07-26T13:41:48Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: добавлено уточнение&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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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. Для декоратора типа TEXTBUTTON данная переменная выровняет название кнопки согласно установленному значению. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора (масштабируется по ширине текста в нём), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль. Для декоратора типа TEXTBUTTON данная переменная установит ширину кнопки независимо от ширины текста в ней (по умолчанию ширина кнопки равна ширине текста).&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно. Только для декораторов типа IMAGE.&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;
Также, в старых версиях &#039;&#039;&#039;FireURQ&#039;&#039;&#039; (до версии 2.0) существовала возможность конвертации квеста в формате QSZ в исполняемый файл с помощью утилиты &#039;&#039;&#039;QSZ2EXE&#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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
Так же с версии 2.2 в FireURQ появилась возможность менять базовое имя файла сейва. &lt;br /&gt;
Переменная &#039;&#039;&#039;savenamebase&#039;&#039;&#039; хранит это имя. По умолчанию переменная содержит название файла игры. &lt;br /&gt;
Если значение поменять на &#039;&#039;&#039;«profile1»&#039;&#039;&#039;, то файлы сохранений будут называться &#039;&#039;&#039;profile1.s01&#039;&#039;&#039;, &#039;&#039;&#039;profile1.s02&#039;&#039;&#039; и т.д.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&lt;br /&gt;
Если использовались слоты сохранений, то данная команда вызовет интерфейс выбора из слотов. Если же сохранение было системным, то просто загрузит игру.&lt;br /&gt;
&lt;br /&gt;
C версии &#039;&#039;&#039;FireURQ 2.2&#039;&#039;&#039; появилась возможность загружать сохранения непосредственно из слотов, не вызывая меню &amp;quot;Загрузить сохранение&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если написать &#039;&#039;&#039;LOAD 1&#039;&#039;&#039;, то будет загружено сохранение из первого слота. &#039;&#039;&#039;LOAD 0&#039;&#039;&#039; загрузит игру из слота автосохранения.&lt;br /&gt;
&lt;br /&gt;
==Перманентное хранилище данных==&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 2.2 FireURQ обзавелась перманентным хранилищем данных. &lt;br /&gt;
Это переменные, которые не удаляются при &#039;&#039;&#039;perkill&#039;&#039;&#039; или перезапуске игры, автоматически подгружаются и, при их изменении, так же автоматически сохраняются в специальном файле. &lt;br /&gt;
&lt;br /&gt;
Любая переменная, начинающаяся на &#039;&#039;&#039;gss_&#039;&#039;&#039; будет считаться перманентной. &lt;br /&gt;
&lt;br /&gt;
Это позволит хранить глобальные настройки, которые не должны изменяться при перезапуске игры, а так же делать достижения и даже переносить параметры из игры в игру.&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;gsskill&#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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D0%B2%D0%BE%D0%B7%D0%B8%D0%BA_3&amp;diff=20573</id>
		<title>Паровозик 3</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=%D0%9F%D0%B0%D1%80%D0%BE%D0%B2%D0%BE%D0%B7%D0%B8%D0%BA_3&amp;diff=20573"/>
		<updated>2018-03-12T12:25:19Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Вагончики */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Третье в истории РИЛ интерактивное развлечение, где желающие участвовать выбирают себе неделю для написания игры. Таким образом, из вагонов-игр составляется сборник-&amp;quot;паровоз&amp;quot;. Начался 27 марта 2017 года. Продолжается, пока не закончатся желающие.&lt;br /&gt;
== Вагончики ==&lt;br /&gt;
# 27 марта - 2 апреля - [[Ajenta Arrow]] - [[Лабиринт чудовищ]] ([[FireURQ]]) &lt;br /&gt;
# 3 апреля - 9 апреля - [[Saint]] - [[Кольцо]] (FireURQ) &lt;br /&gt;
# 10 апреля - 16 апреля - [[Fireton]] - [[Подземелье сокровищ]] ([[FireURQ]]) &lt;br /&gt;
# 17 апреля - 23 апреля - [[Korwin]] - [[Любовь и чёрная пантера]] ([[FireURQ]]) &lt;br /&gt;
# 24 апреля - 30 апреля - [[cHameleon]] - [[Обычный выходной]] ([[FireURQ]]) &lt;br /&gt;
# 1 мая - 7 мая - [[Антон Ласточкин]] - [[Антиквест]] ([[RTADS]]) &lt;br /&gt;
# 8 мая - 14 мая - [[tregor]] - [[История 2-й ударной армии]] ([[QSP]]) &lt;br /&gt;
# 15 мая - 21 мая - [[alkor]] - [[Ученик мага]] ([[RTADS]]) &lt;br /&gt;
# 22 мая - 28 мая - &amp;lt;strike&amp;gt;Ajenta Arrow &amp;lt;/strike&amp;gt; [[Zlobot]] - [[Relicta]] ([[INSTEAD]])&lt;br /&gt;
# 29 мая - 4 июня - [[Михаил Никифоров]] - [[Потомок оружейника]] ([[Apero]])  &lt;br /&gt;
# 5 июня - 11 июня - [[Edelveiss]] - [[Интервью]] ([[QSP]])&lt;br /&gt;
# 12 июня - 18 июня - [[Enola]] - [[Emoji game]] ([[Twine]])&lt;br /&gt;
# 19 июня - 25 июня - [[SneakBug8]] - [[Homeland and Democracy]] ([[Unity]])&lt;br /&gt;
# 26 июня - 2 июля - &amp;lt;strike&amp;gt;Alcohol&amp;lt;/strike&amp;gt; [[Saint]] - [[Ночь, казино, фонарь, аптека...]] ([[FireURQ]])&lt;br /&gt;
# 3 июля - 9 июля - [[Виталий Блинов]] и Co - [[Тестирование движка для текстовой игры]] ([[AXMA Story Maker]])&lt;br /&gt;
# 10 июля - 16 июля - [[Вета]] - [[Записки младшего властелина]] ([[FireURQ]])&lt;br /&gt;
# 17 июля - 23 июля - [[Nafanin]] - [вагон не докатился]&lt;br /&gt;
# 24 июля - 30 июля - [[Korwin]] - [[Star Hammer или Победитель платит за всё]] ([[FireURQ]])&lt;br /&gt;
# 31 июля - 6 августа - [[Поросёнок_Фунтик]] - [[Коробка]] ([[FireURQ]])&lt;br /&gt;
# 7 августа - 13 августа - [[Серый Волк]] - [вагон не докатился]&lt;br /&gt;
# 14 августа - 20 августа - [[Antokolos]] - [[Красная шапочка: в поисках начинки]] ([[INSTEAD]])&lt;br /&gt;
# 21 августа - 27 августа - [[techniX]] - [[Капсула]] ([[INSTEAD]])&lt;br /&gt;
# 28 августа - 3 сентября - [[Larson]] - [[Волшебный экзамен]] ([[QSP]])&lt;br /&gt;
# 4 сентября - 10 сетября - &amp;lt;strike&amp;gt;[[Oreolek]]&amp;lt;/strike&amp;gt; [[Ajenta Arrow]] - [[Лабиринт чудовищ: спасение принцессы]] ([[FireURQ]])&lt;br /&gt;
# 11 сентября - 17 сентября - [[Enola]] - [вагон не докатился]&lt;br /&gt;
# 18 сентября - 24 сентября - [[Вереск]] - [[Ночные улицы и дождь...]] ([[UrqW]])&lt;br /&gt;
# 25 сентября - 1 октября - &amp;lt;strike&amp;gt;[[Korwin]]&amp;lt;/strike&amp;gt; [[Серый Волк]] - [вагон не докатился]&lt;br /&gt;
# 2 октября - 8 октября - [[Никита Цейковец]] - [[Проклятье вервольфа]] ([[RTADS]])&lt;br /&gt;
# 9 октября - 15 октября - [[Korwin]] - [[Звезда Рэйвена]] ([[FireURQ]]) в рамках [[Неадекватная дуэль в поезде (Korwin - Enola)|Неадекватной дуэли Korwin vs Enola]]&lt;br /&gt;
# 16 октября - 22 октября - [[МАлышка]] - [[Вокзальные портреты]] ([[INSTEAD]])&lt;br /&gt;
# 23 октября - 29 октября - [[Freid]] - [вагон не докатился]&lt;br /&gt;
# 30 октября - 5 ноября - [[Spline]] - [[Библиотека]] ([[INSTEAD]])&lt;br /&gt;
# 6 ноября - 12 ноября - [[Вiтана Нирко|Витана Нiрко]] - [[На зерО]] ([[FireURQ]])&lt;br /&gt;
# 13 ноября - 19 ноября - [[Wol4ik]] - [[Долина кукол]] ([[INSTEAD]])&lt;br /&gt;
# 20 ноября - 26 ноября - [[МАлышка]] - [[Ледяное похищение]] ([[FireURQ]])&lt;br /&gt;
&lt;br /&gt;
Первые три игры, неожидано для их авторов и организатора &amp;quot;Паровозика&amp;quot;, приняли участие во внезапном конкурсе, что привело к небольшому скандалу. Подробности в соответствующей записи блога организатора данного спонтанного конкурса [[Трофимчук, Владимир|Владимира Трофимчука]] - [http://vtrollstory.blogspot.ru/2017/04/blog-post_23.html &amp;quot;Техосмотр в Паровозном Депо Трёх Вагонов&amp;quot;] (разборка в комментариях).&lt;br /&gt;
&lt;br /&gt;
В последний момент своей недели(22-28 мая) Аджента уступила свою очередь Zlobot. Подробнее о скандале [http://if.zhuchkovs.com/2017/05/pro-pravila-pisanye-i-nepisanye/ тут].&lt;br /&gt;
&lt;br /&gt;
Испугавшись [[Неадекватная дуэль в поезде (Korwin - Enola)|дуэли с Энолой]], Корвин поспешил отписаться от своей очереди на паровозике и уступить её Серому Волку, &amp;lt;strike&amp;gt;позорно зафейлившему&amp;lt;/strike&amp;gt; не успевшему в свою прошлую неделю. Однако Серый Волк и в этот раз &amp;lt;strike&amp;gt;позорно зафейлил&amp;lt;/strike&amp;gt; не успел. В то время, как Корвин выиграл у Энолы дуэль, которая &amp;lt;strike&amp;gt;позорно зафейлила&amp;lt;/strike&amp;gt; не написала свой вагон, уже второй по счёту.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://urq.borda.ru/?1-0-0-00000522-000-0-0 Тема на форуме (там же можно записаться в участники)]&lt;br /&gt;
[[Категория:Паровоз]] [[Категория:2017]]&lt;br /&gt;
[[Дата начала::27.03.2017| ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17011</id>
		<title>FireURQ:Скины</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17011"/>
		<updated>2017-07-05T13:32:34Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Украшения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Скин игры - это такой файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста.&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; Изменение внешнего вида интерпретатора - это тема повышенной сложности. Поэтому, если вы сомневаетесь, нужны ли вам скины в вашей игре - они вам не нужны.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того, чтобы понимать, о чём будет идти речь в данном разделе, нужно хорошо представлять себе, что такое язык разметки XML.&lt;br /&gt;
&lt;br /&gt;
==Общие сведения==&lt;br /&gt;
&lt;br /&gt;
Файл описания скина представляет собой файл в формате XML с именем &#039;&#039;&#039;skin.xml&#039;&#039;&#039;, лежащий в папке с игрой. Если ваша игра упакована в файл с расширением QSZ, то скин и все его ресурсы должны помещаться внутри архива.&lt;br /&gt;
&lt;br /&gt;
Вот, для примера, как выглядит скин FireURQ по умолчанию (который загружается тогда, когда скин игры не определён):&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;furq_texture.png&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane left=&amp;quot;20&amp;quot; top=&amp;quot;55&amp;quot; width=&amp;quot;760&amp;quot; height=&amp;quot;525&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;106&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;20&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;424&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;130&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;671&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;780&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;47&amp;quot; width=&amp;quot;566&amp;quot; height=&amp;quot;17&amp;quot; posx=&amp;quot;105&amp;quot; posy=&amp;quot;29&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А это скин из демо для FireURQ 1.3:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;demo_tex.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;btnfont&amp;quot; file=&amp;quot;buttons_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;mnufont&amp;quot; file=&amp;quot;menu_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;buttonframe name=&amp;quot;tbuttons&amp;quot; tex=&amp;quot;res&amp;quot; font=&amp;quot;btnfont&amp;quot; texx=&amp;quot;0&amp;quot; texy=&amp;quot;210&amp;quot; width=&amp;quot;109&amp;quot; height=&amp;quot;55&amp;quot; leftw=&amp;quot;31&amp;quot; midw=&amp;quot;10&amp;quot; cnormal=&amp;quot;FF94cddb&amp;quot; cfocused=&amp;quot;FFFFFFFF&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;splash bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;  &lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;55&amp;quot; left=&amp;quot;255&amp;quot; width=&amp;quot;555&amp;quot; height=&amp;quot;615&amp;quot; btnalign=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;mnufont&amp;quot; bgcolor=&amp;quot;c01c79ae&amp;quot; bordercolor=&amp;quot;ff60c5ff&amp;quot; vindent=&amp;quot;1&amp;quot; textcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FF818181&amp;quot; selectioncolor=&amp;quot;E0003f95&amp;quot;&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;341&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;55&amp;quot; height=&amp;quot;55&amp;quot; posx=&amp;quot;959&amp;quot; posy=&amp;quot;703&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;342&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;708&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;60&amp;quot; posy=&amp;quot;720&amp;quot; datum=&amp;quot;lb&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;285&amp;quot; width=&amp;quot;1024&amp;quot; height=&amp;quot;257&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;511&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видно, первой должна идти строчка, определяющая формат XML-документа:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А все данные собственно скина размещаются в тегах внутри корневого тега skin:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;...&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;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;&lt;br /&gt;
*Названия тегов и параметров чувствительны к регистру.&lt;br /&gt;
*Стоит принять во внимание, что интерфейс игры без скина и с пустым скином (в котором есть только тег &#039;&#039;&#039;skin&#039;&#039;&#039;, но внутри него ничего нет) будут отличаться. В первом случае будет загружен скин по умолчанию. Во втором - никакого скина загружено не будет и FireURQ сама создаст минимально возможный для игры интерфейс, используя значения по умолчанию, зашитые в программу.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройки экрана==&lt;br /&gt;
&lt;br /&gt;
Можно задать размер окна FireURQ с помощью тега &#039;&#039;&#039;screen&#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;width&#039;&#039;&#039; - ширина окна (по умолчанию 800)&lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039; - высота окна (по умолчанию 600)&lt;br /&gt;
*&#039;&#039;&#039;fullscreen&#039;&#039;&#039; - если равна 1, то FireURQ запустится сразу в полноэкранном режиме (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; fullscreen=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
FireURQ установит размер окна в 1024х768 и запустится в полноэкранном режиме.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что хотя размер окна можно задать хоть 628х315, но если вы установите размер, не поддерживаемый видеокартой и монитором, то FireURQ не сможет запуститься в полноэкранном режиме!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ресурсы==&lt;br /&gt;
&lt;br /&gt;
Ресурсы - это текстуры, шрифты и заранее определённые рамки для кнопок, которые используются при оформлении скина. Каждому ресурсу присваивается имя, на которое потом ссылаются другие структуры данных, описывающие скин. Все ресурсы помещаются внутри тега &#039;&#039;&#039;resources&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Текстуры===&lt;br /&gt;
&lt;br /&gt;
Ресурс текстуры описывается тегом texture.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл текстуры (изображение JPEG, TGA или PNG).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что многие из элементов управления (кнопки, например) должны иметь прозрачные элементы для того, чтобы смотреться хорошо. Прозрачность поддерживается только для 24-битных PNG и TGA.&lt;br /&gt;
&lt;br /&gt;
===Шрифты===&lt;br /&gt;
&lt;br /&gt;
Ресурс шрифта описывается тегом &#039;&#039;&#039;font&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл шрифта, подготовленного программой fonted из поставки FireURQ, или шрифт TrueType&lt;br /&gt;
&lt;br /&gt;
===Рамки кнопок===&lt;br /&gt;
&lt;br /&gt;
Рамка кнопок описывает оформление кнопки с текстом внутри. В настоящий момент данный ресурс используется только для оформления кнопок перехода между локациями, но не исключено, что в будущем он будет использоваться для чего-то ещё (например, кастомных кнопок внутри квеста). Ресурс рамки кнопок описывается тегом &#039;&#039;&#039;buttonframe&#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;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован глиф кнопки&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта, который будет использован для подписи кнопки&lt;br /&gt;
*&#039;&#039;&#039;texx&#039;&#039;&#039; и &#039;&#039;&#039;texy&#039;&#039;&#039; - координаты глифа кнопки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота глифа кнопки&lt;br /&gt;
*&#039;&#039;&#039;leftw&#039;&#039;&#039; - ширина левой &amp;quot;крышечки&amp;quot; кнопки&lt;br /&gt;
*&#039;&#039;&#039;midw&#039;&#039;&#039; - ширина средней части кнопки&lt;br /&gt;
*&#039;&#039;&#039;cnormal&#039;&#039;&#039; - цвет (в шестнадцатиричном формате) надписи в нормальном состоянии (по умолчанию - FFA0A0A0 )&lt;br /&gt;
*&#039;&#039;&#039;cdisabled&#039;&#039;&#039; - цвет надписи в неактивном состоянии (по умолчанию - FF606060 )&lt;br /&gt;
*&#039;&#039;&#039;cfocused&#039;&#039;&#039; - цвет надписи при наведении мыши/перемещении фокуса (по умолчанию - FFA0A0FF )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
На текстуре должны быть расположены справа налево три глифа - для каждого из состояний кнопки (обычное, неактивное и сфокусированное). Разные параметры этого ресурса легче всего проиллюстрировать на картинке (это то, как определена рамка кнопок на текстуре по умолчанию, изображение увеличено):&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Btn schema.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Интерфейс сохранения/загрузки. ==&lt;br /&gt;
&lt;br /&gt;
Описывается тегом &#039;&#039;&#039;saveload&#039;&#039;&#039; и располагается в главном элементе &#039;&#039;&#039;skin&#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;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captioncolor&#039;&#039;&#039; - цвет заголовка в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captionfont&#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;&amp;lt;saveload bgcolor=&amp;quot;C0000000&amp;quot; captioncolor=&amp;quot;FFFFBB4F&amp;quot; captionfont=&amp;quot;myfont&amp;quot;&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;buttons frame=&amp;quot;myframe&amp;quot; /&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;myframe&#039;&#039;&#039; не определена, то берётся системная кнопка, которая используется обычно в игре. Если &#039;&#039;&#039;myfont&#039;&#039;&#039; не определён, берётся системный шрифт. Цвета указаны те, которые берутся по умолчанию. Для кнопок, использующихся на экране сохранения/загрузки, необходимо четыре состояния: нормальное, дизабленое, выбранное и нажатое.&lt;br /&gt;
&lt;br /&gt;
Из экрана сохранения/загрузки теперь можно выйти не сохраняясь/загружаясь, а по определяемой в скине кнопке. &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;&amp;lt;saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;backbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;565&amp;quot; ty=&amp;quot;106&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;35&amp;quot; posy=&amp;quot;60&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Заставка==&lt;br /&gt;
&lt;br /&gt;
Заставка (сплеш-скрин) показывается при запуске игры. Настройки заставки помещатся в теге &#039;&#039;&#039;splash&#039;&#039;&#039;. Если тег &#039;&#039;&#039;splash&#039;&#039;&#039; отсутствует в скине, то проигрывается стандартная заставка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;splash&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шеснадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
*&#039;&#039;&#039;vcolor&#039;&#039;&#039; - цвет надписи о версии FireURQ (по умолчанию - FFEE9A00)&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;splash&#039;&#039;&#039; может помещаться тег &#039;&#039;&#039;logo&#039;&#039;&#039;, с помощью которого можно заменить логотип FireURQ на изображение чего-нибудь другого.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;logo&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован логотип&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла логотипа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;&amp;lt;splash bgcolor=&amp;quot;FF000000&amp;quot; vcolor=&amp;quot;FFEE9A00&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Основной раздел==&lt;br /&gt;
&lt;br /&gt;
Основной раздел скина, описывающий интерфейс собственно проигрывателя, располагается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. Если в скине отсутствует тег &#039;&#039;&#039;main&#039;&#039;&#039;, то создаётся интерфейс по умолчанию - чёрный фон, текстовое поле занимает почти всё окно (с небольшими отступами), кнопки меню и инвентаря отсутствуют (меню и инвентарь можно вызвать только с клавиатуры), загружаются стандартные шрифты и стандартная рамка кнопок, никаких украшений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;main&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
&lt;br /&gt;
===Текстовое поле===&lt;br /&gt;
&lt;br /&gt;
Настройки текстового поля определяются с помощью тега &#039;&#039;&#039;textpane&#039;&#039;&#039; внутри тега &#039;&#039;&#039;main&#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;font&#039;&#039;&#039; - имя ресурса шрифта текстового поля (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bframe&#039;&#039;&#039; - имя ресурса рамки (стиля) кнопок, которая будет использована для оформления кнопок действий (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;left&#039;&#039;&#039; и &#039;&#039;&#039;top&#039;&#039;&#039; - координаты левого верхнего угла текстового поля в окне FireURQ (по умолчанию - 20, 10)&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота текстового поля (по умолчанию выбираются так, чтобы правый край отставал на 20 пикселей от края окна, а нижний край - на 10 пикселов от нижнего края окна)&lt;br /&gt;
*&#039;&#039;&#039;btnalign&#039;&#039;&#039; - выравнивание кнопок (1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
*&#039;&#039;&#039;btntxtalign&#039;&#039;&#039; - выравнивание текста на кнопках (так же, 1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;textpane font=&amp;quot;georgia[24]&amp;quot; bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;30&amp;quot; left=&amp;quot;30&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;500&amp;quot; btnalign=&amp;quot;3&amp;quot; btntxtalign=&amp;quot;3&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 создаст текстовое поле с шрифтом 24 размера типа georgia и определёнными вами кнопками, с координатами левого верхнего угла (30, 30),&lt;br /&gt;
 с шириной 400 пикселов и высотой 500 пикселов, и с выравнивание текста внутри поля по центру. &lt;br /&gt;
 Внутри кнопок текст так же будет выровнен по центру.&lt;br /&gt;
&lt;br /&gt;
===Меню и инвентарь===&lt;br /&gt;
&lt;br /&gt;
Параметры меню описываются внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039;. И системное меню, и меню инвентаря имеют единый стиль, т.е. цвета и шрифт для них одинаковые.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;menus&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта меню (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - FFFFFFFF) &lt;br /&gt;
*&#039;&#039;&#039;bordercolor&#039;&#039;&#039; - цвет рамки (по умолчанию - FFA0A0A0)&lt;br /&gt;
*&#039;&#039;&#039;textcolor&#039;&#039;&#039; - цвет текста пунктов меню (по умолчанию - FF000000)&lt;br /&gt;
*&#039;&#039;&#039;selectioncolor&#039;&#039;&#039; - цвет фона выделенного пункта меню (по умолчанию - FF0000A0)&lt;br /&gt;
*&#039;&#039;&#039;selectedcolor&#039;&#039;&#039; - цвет текста выделенного пункта меню (по умолчанию - FFFFFFFF)&lt;br /&gt;
*&#039;&#039;&#039;disabledcolor&#039;&#039;&#039; - цвет текста неактивного пункта меню (по умолчанию - FFC0C0C0)&lt;br /&gt;
*&#039;&#039;&#039;hindent&#039;&#039;&#039; - отступ в пикселях слева и справа от текста до рамки (по умолчанию - 2)&lt;br /&gt;
*&#039;&#039;&#039;vindent&#039;&#039;&#039; - отступ сверху и снизу от текста до следующего пункта меню в пикселях (по умолчанию - 2)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Лучше всего понять, к чему относятся те или иные параметры можно, взглянув на рисунок:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Menu schema.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;myfont&amp;quot; bgcolor=&amp;quot;FFFFFFFF&amp;quot; bordercolor=&amp;quot;FFA0A0A0&amp;quot; textcolor=&amp;quot;FF000000&amp;quot; selectioncolor=&amp;quot;FF0000A0&amp;quot; selectedcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FFC0C0C0&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
        &#039;&#039;&#039;hindent=&amp;quot;2&amp;quot; vindent=&amp;quot;2&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Кнопки системного меню и инвентаря====&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039; могут располагаться теги &#039;&#039;&#039;sysbutton&#039;&#039;&#039; и &#039;&#039;&#039;invbutton&#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;tex&#039;&#039;&#039; - имя  ресурса текстуры, на которой нарисованы глифы кнопки (всего их должно быть четыре - нормальная, неактивная, выделенная и нажатая) &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла первого глифа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота кнопки&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты кнопки в окне FireURQ&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;300&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;500&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;400&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Позиция меню на экране====&lt;br /&gt;
&lt;br /&gt;
Если определены кнопки для системного меню и инвентаря, то FireURQ использует специальный алгоритм, чтобы определить как и в каком месте должны раскрываться соответствующие меню. Например, если кнопка системного меню сделана в правом нижнем углу окна, то системное меню будет раскрываться над этой кнопкой с привязкой за правый нижний угол.&lt;br /&gt;
&lt;br /&gt;
Если кнопки не определены, то системное меню будет открываться в левом верхнем углу окна, а инвентарь - в правом верхнем.&lt;br /&gt;
&lt;br /&gt;
Однако, есть возможность жёстко задать координаты, где будет открываться то или иное меню. Так сделано, например, в стандартном скине. Это возможно с помощью тегов &#039;&#039;&#039;sysmenu&#039;&#039;&#039; и &#039;&#039;&#039;invmenu&#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;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты одного из углов меню в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;datum&#039;&#039;&#039; - указание на то, за какой, собственно, угол меню осуществляется привязка. Возможны четыре значения - &#039;&#039;&#039;lt&#039;&#039;&#039; (по умолчанию), &#039;&#039;&#039;lb&#039;&#039;&#039;, &#039;&#039;&#039;rt&#039;&#039;&#039; и &#039;&#039;&#039;rb&#039;&#039;&#039;. Левый верхний, левый нижний, правый верхний и правый нижний. Привязка влияет на то, как будет открываться меню. Например, если для меню указал параметр &#039;&#039;&#039;lb&#039;&#039;&#039;, то оно будет открываться &amp;quot;вверх&amp;quot; и &amp;quot;вправо&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&#039;&#039;&#039; Системное меню будет открываться в левом верхнем углу экрана&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;800&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&#039;&#039;&#039; Инвентарь будет открываться в правом верхнем углу экрана, &lt;br /&gt;
                                                 если ширина окна игры равна 800 пикселей (по умолчанию).&lt;br /&gt;
&lt;br /&gt;
===Иконки состояний===&lt;br /&gt;
&lt;br /&gt;
Иконки состояний - это мигающие изображения, появляющиеся в особые моменты игры. Все описания иконок состояний размещаются внутри тега &#039;&#039;&#039;icons&#039;&#039;&#039;, который в свою очередь размещается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. При этом существуют три типа этих иконок, описывамых в тегах &#039;&#039;&#039;timer&#039;&#039;&#039; (иконка ожидания, появляется при команде &#039;&#039;pause&#039;&#039;), &#039;&#039;&#039;anykey&#039;&#039;&#039; (когда игра ждёт нажатия клавиши) и &#039;&#039;&#039;scroll&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисована иконка&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла иконки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;
Все иконки всегда появляются на экране на одном месте - в правом нижнем углу текстового поля.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;scroll tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;timer tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;anykey tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;/icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  Этот код будет выводить одну и ту же иконку из ресурса &#039;&#039;&#039;res&#039;&#039;&#039; для всех состояний.&lt;br /&gt;
&lt;br /&gt;
===Украшения===&lt;br /&gt;
&lt;br /&gt;
Существует возможность задать в скине изображения, которые являются частью оформления скина и всегда находятся на экране. Все элементы оформления помещаются внутри тега &#039;&#039;&#039;decorations&#039;&#039;&#039; и определяются тегом &#039;&#039;&#039;image&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисовано изображение  &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла изображения на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота изображения&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты изображения в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;flipx&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по вертикальной оси (по умолчанию 0)&lt;br /&gt;
*&#039;&#039;&#039;flipy&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по горизонтальной оси (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
С версии 2.2 появилась возможность установить &#039;&#039;&#039;posz&#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;flipx&#039;&#039;&#039; и &#039;&#039;&#039;flipy&#039;&#039;&#039; удобно использовать, когда элементы оформления являются зеркальным отражением друг друга. В этом случае можно создать на текстуре одно изображение и разместить его в окне FireURQ, переворачивая по-всякому, чтобы добиться симметричного рисунка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&#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;decordel&#039;&#039;&#039;. Они всегда будут находиться на экране игры.&lt;br /&gt;
Так же с версиии 2.2 появилась возможность не указывать ширину и высоту декоратора - по умолчанию будут браться полные размеры текстуры.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[FireURQ:Скинование Дат-Навирэ]]&lt;br /&gt;
* Собственно для чего эта документация [[FireURQ]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17010</id>
		<title>FireURQ:Скины</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17010"/>
		<updated>2017-07-05T13:31:54Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Украшения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Скин игры - это такой файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста.&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; Изменение внешнего вида интерпретатора - это тема повышенной сложности. Поэтому, если вы сомневаетесь, нужны ли вам скины в вашей игре - они вам не нужны.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того, чтобы понимать, о чём будет идти речь в данном разделе, нужно хорошо представлять себе, что такое язык разметки XML.&lt;br /&gt;
&lt;br /&gt;
==Общие сведения==&lt;br /&gt;
&lt;br /&gt;
Файл описания скина представляет собой файл в формате XML с именем &#039;&#039;&#039;skin.xml&#039;&#039;&#039;, лежащий в папке с игрой. Если ваша игра упакована в файл с расширением QSZ, то скин и все его ресурсы должны помещаться внутри архива.&lt;br /&gt;
&lt;br /&gt;
Вот, для примера, как выглядит скин FireURQ по умолчанию (который загружается тогда, когда скин игры не определён):&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;furq_texture.png&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane left=&amp;quot;20&amp;quot; top=&amp;quot;55&amp;quot; width=&amp;quot;760&amp;quot; height=&amp;quot;525&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;106&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;20&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;424&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;130&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;671&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;780&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;47&amp;quot; width=&amp;quot;566&amp;quot; height=&amp;quot;17&amp;quot; posx=&amp;quot;105&amp;quot; posy=&amp;quot;29&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А это скин из демо для FireURQ 1.3:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;demo_tex.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;btnfont&amp;quot; file=&amp;quot;buttons_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;mnufont&amp;quot; file=&amp;quot;menu_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;buttonframe name=&amp;quot;tbuttons&amp;quot; tex=&amp;quot;res&amp;quot; font=&amp;quot;btnfont&amp;quot; texx=&amp;quot;0&amp;quot; texy=&amp;quot;210&amp;quot; width=&amp;quot;109&amp;quot; height=&amp;quot;55&amp;quot; leftw=&amp;quot;31&amp;quot; midw=&amp;quot;10&amp;quot; cnormal=&amp;quot;FF94cddb&amp;quot; cfocused=&amp;quot;FFFFFFFF&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;splash bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;  &lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;55&amp;quot; left=&amp;quot;255&amp;quot; width=&amp;quot;555&amp;quot; height=&amp;quot;615&amp;quot; btnalign=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;mnufont&amp;quot; bgcolor=&amp;quot;c01c79ae&amp;quot; bordercolor=&amp;quot;ff60c5ff&amp;quot; vindent=&amp;quot;1&amp;quot; textcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FF818181&amp;quot; selectioncolor=&amp;quot;E0003f95&amp;quot;&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;341&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;55&amp;quot; height=&amp;quot;55&amp;quot; posx=&amp;quot;959&amp;quot; posy=&amp;quot;703&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;342&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;708&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;60&amp;quot; posy=&amp;quot;720&amp;quot; datum=&amp;quot;lb&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;285&amp;quot; width=&amp;quot;1024&amp;quot; height=&amp;quot;257&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;511&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видно, первой должна идти строчка, определяющая формат XML-документа:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А все данные собственно скина размещаются в тегах внутри корневого тега skin:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;...&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;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;&lt;br /&gt;
*Названия тегов и параметров чувствительны к регистру.&lt;br /&gt;
*Стоит принять во внимание, что интерфейс игры без скина и с пустым скином (в котором есть только тег &#039;&#039;&#039;skin&#039;&#039;&#039;, но внутри него ничего нет) будут отличаться. В первом случае будет загружен скин по умолчанию. Во втором - никакого скина загружено не будет и FireURQ сама создаст минимально возможный для игры интерфейс, используя значения по умолчанию, зашитые в программу.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройки экрана==&lt;br /&gt;
&lt;br /&gt;
Можно задать размер окна FireURQ с помощью тега &#039;&#039;&#039;screen&#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;width&#039;&#039;&#039; - ширина окна (по умолчанию 800)&lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039; - высота окна (по умолчанию 600)&lt;br /&gt;
*&#039;&#039;&#039;fullscreen&#039;&#039;&#039; - если равна 1, то FireURQ запустится сразу в полноэкранном режиме (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; fullscreen=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
FireURQ установит размер окна в 1024х768 и запустится в полноэкранном режиме.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что хотя размер окна можно задать хоть 628х315, но если вы установите размер, не поддерживаемый видеокартой и монитором, то FireURQ не сможет запуститься в полноэкранном режиме!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ресурсы==&lt;br /&gt;
&lt;br /&gt;
Ресурсы - это текстуры, шрифты и заранее определённые рамки для кнопок, которые используются при оформлении скина. Каждому ресурсу присваивается имя, на которое потом ссылаются другие структуры данных, описывающие скин. Все ресурсы помещаются внутри тега &#039;&#039;&#039;resources&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Текстуры===&lt;br /&gt;
&lt;br /&gt;
Ресурс текстуры описывается тегом texture.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл текстуры (изображение JPEG, TGA или PNG).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что многие из элементов управления (кнопки, например) должны иметь прозрачные элементы для того, чтобы смотреться хорошо. Прозрачность поддерживается только для 24-битных PNG и TGA.&lt;br /&gt;
&lt;br /&gt;
===Шрифты===&lt;br /&gt;
&lt;br /&gt;
Ресурс шрифта описывается тегом &#039;&#039;&#039;font&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл шрифта, подготовленного программой fonted из поставки FireURQ, или шрифт TrueType&lt;br /&gt;
&lt;br /&gt;
===Рамки кнопок===&lt;br /&gt;
&lt;br /&gt;
Рамка кнопок описывает оформление кнопки с текстом внутри. В настоящий момент данный ресурс используется только для оформления кнопок перехода между локациями, но не исключено, что в будущем он будет использоваться для чего-то ещё (например, кастомных кнопок внутри квеста). Ресурс рамки кнопок описывается тегом &#039;&#039;&#039;buttonframe&#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;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован глиф кнопки&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта, который будет использован для подписи кнопки&lt;br /&gt;
*&#039;&#039;&#039;texx&#039;&#039;&#039; и &#039;&#039;&#039;texy&#039;&#039;&#039; - координаты глифа кнопки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота глифа кнопки&lt;br /&gt;
*&#039;&#039;&#039;leftw&#039;&#039;&#039; - ширина левой &amp;quot;крышечки&amp;quot; кнопки&lt;br /&gt;
*&#039;&#039;&#039;midw&#039;&#039;&#039; - ширина средней части кнопки&lt;br /&gt;
*&#039;&#039;&#039;cnormal&#039;&#039;&#039; - цвет (в шестнадцатиричном формате) надписи в нормальном состоянии (по умолчанию - FFA0A0A0 )&lt;br /&gt;
*&#039;&#039;&#039;cdisabled&#039;&#039;&#039; - цвет надписи в неактивном состоянии (по умолчанию - FF606060 )&lt;br /&gt;
*&#039;&#039;&#039;cfocused&#039;&#039;&#039; - цвет надписи при наведении мыши/перемещении фокуса (по умолчанию - FFA0A0FF )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
На текстуре должны быть расположены справа налево три глифа - для каждого из состояний кнопки (обычное, неактивное и сфокусированное). Разные параметры этого ресурса легче всего проиллюстрировать на картинке (это то, как определена рамка кнопок на текстуре по умолчанию, изображение увеличено):&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Btn schema.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Интерфейс сохранения/загрузки. ==&lt;br /&gt;
&lt;br /&gt;
Описывается тегом &#039;&#039;&#039;saveload&#039;&#039;&#039; и располагается в главном элементе &#039;&#039;&#039;skin&#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;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captioncolor&#039;&#039;&#039; - цвет заголовка в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captionfont&#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;&amp;lt;saveload bgcolor=&amp;quot;C0000000&amp;quot; captioncolor=&amp;quot;FFFFBB4F&amp;quot; captionfont=&amp;quot;myfont&amp;quot;&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;buttons frame=&amp;quot;myframe&amp;quot; /&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;myframe&#039;&#039;&#039; не определена, то берётся системная кнопка, которая используется обычно в игре. Если &#039;&#039;&#039;myfont&#039;&#039;&#039; не определён, берётся системный шрифт. Цвета указаны те, которые берутся по умолчанию. Для кнопок, использующихся на экране сохранения/загрузки, необходимо четыре состояния: нормальное, дизабленое, выбранное и нажатое.&lt;br /&gt;
&lt;br /&gt;
Из экрана сохранения/загрузки теперь можно выйти не сохраняясь/загружаясь, а по определяемой в скине кнопке. &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;&amp;lt;saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;backbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;565&amp;quot; ty=&amp;quot;106&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;35&amp;quot; posy=&amp;quot;60&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Заставка==&lt;br /&gt;
&lt;br /&gt;
Заставка (сплеш-скрин) показывается при запуске игры. Настройки заставки помещатся в теге &#039;&#039;&#039;splash&#039;&#039;&#039;. Если тег &#039;&#039;&#039;splash&#039;&#039;&#039; отсутствует в скине, то проигрывается стандартная заставка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;splash&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шеснадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
*&#039;&#039;&#039;vcolor&#039;&#039;&#039; - цвет надписи о версии FireURQ (по умолчанию - FFEE9A00)&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;splash&#039;&#039;&#039; может помещаться тег &#039;&#039;&#039;logo&#039;&#039;&#039;, с помощью которого можно заменить логотип FireURQ на изображение чего-нибудь другого.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;logo&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован логотип&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла логотипа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;&amp;lt;splash bgcolor=&amp;quot;FF000000&amp;quot; vcolor=&amp;quot;FFEE9A00&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Основной раздел==&lt;br /&gt;
&lt;br /&gt;
Основной раздел скина, описывающий интерфейс собственно проигрывателя, располагается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. Если в скине отсутствует тег &#039;&#039;&#039;main&#039;&#039;&#039;, то создаётся интерфейс по умолчанию - чёрный фон, текстовое поле занимает почти всё окно (с небольшими отступами), кнопки меню и инвентаря отсутствуют (меню и инвентарь можно вызвать только с клавиатуры), загружаются стандартные шрифты и стандартная рамка кнопок, никаких украшений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;main&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
&lt;br /&gt;
===Текстовое поле===&lt;br /&gt;
&lt;br /&gt;
Настройки текстового поля определяются с помощью тега &#039;&#039;&#039;textpane&#039;&#039;&#039; внутри тега &#039;&#039;&#039;main&#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;font&#039;&#039;&#039; - имя ресурса шрифта текстового поля (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bframe&#039;&#039;&#039; - имя ресурса рамки (стиля) кнопок, которая будет использована для оформления кнопок действий (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;left&#039;&#039;&#039; и &#039;&#039;&#039;top&#039;&#039;&#039; - координаты левого верхнего угла текстового поля в окне FireURQ (по умолчанию - 20, 10)&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота текстового поля (по умолчанию выбираются так, чтобы правый край отставал на 20 пикселей от края окна, а нижний край - на 10 пикселов от нижнего края окна)&lt;br /&gt;
*&#039;&#039;&#039;btnalign&#039;&#039;&#039; - выравнивание кнопок (1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
*&#039;&#039;&#039;btntxtalign&#039;&#039;&#039; - выравнивание текста на кнопках (так же, 1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;textpane font=&amp;quot;georgia[24]&amp;quot; bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;30&amp;quot; left=&amp;quot;30&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;500&amp;quot; btnalign=&amp;quot;3&amp;quot; btntxtalign=&amp;quot;3&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 создаст текстовое поле с шрифтом 24 размера типа georgia и определёнными вами кнопками, с координатами левого верхнего угла (30, 30),&lt;br /&gt;
 с шириной 400 пикселов и высотой 500 пикселов, и с выравнивание текста внутри поля по центру. &lt;br /&gt;
 Внутри кнопок текст так же будет выровнен по центру.&lt;br /&gt;
&lt;br /&gt;
===Меню и инвентарь===&lt;br /&gt;
&lt;br /&gt;
Параметры меню описываются внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039;. И системное меню, и меню инвентаря имеют единый стиль, т.е. цвета и шрифт для них одинаковые.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;menus&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта меню (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - FFFFFFFF) &lt;br /&gt;
*&#039;&#039;&#039;bordercolor&#039;&#039;&#039; - цвет рамки (по умолчанию - FFA0A0A0)&lt;br /&gt;
*&#039;&#039;&#039;textcolor&#039;&#039;&#039; - цвет текста пунктов меню (по умолчанию - FF000000)&lt;br /&gt;
*&#039;&#039;&#039;selectioncolor&#039;&#039;&#039; - цвет фона выделенного пункта меню (по умолчанию - FF0000A0)&lt;br /&gt;
*&#039;&#039;&#039;selectedcolor&#039;&#039;&#039; - цвет текста выделенного пункта меню (по умолчанию - FFFFFFFF)&lt;br /&gt;
*&#039;&#039;&#039;disabledcolor&#039;&#039;&#039; - цвет текста неактивного пункта меню (по умолчанию - FFC0C0C0)&lt;br /&gt;
*&#039;&#039;&#039;hindent&#039;&#039;&#039; - отступ в пикселях слева и справа от текста до рамки (по умолчанию - 2)&lt;br /&gt;
*&#039;&#039;&#039;vindent&#039;&#039;&#039; - отступ сверху и снизу от текста до следующего пункта меню в пикселях (по умолчанию - 2)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Лучше всего понять, к чему относятся те или иные параметры можно, взглянув на рисунок:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Menu schema.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;myfont&amp;quot; bgcolor=&amp;quot;FFFFFFFF&amp;quot; bordercolor=&amp;quot;FFA0A0A0&amp;quot; textcolor=&amp;quot;FF000000&amp;quot; selectioncolor=&amp;quot;FF0000A0&amp;quot; selectedcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FFC0C0C0&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
        &#039;&#039;&#039;hindent=&amp;quot;2&amp;quot; vindent=&amp;quot;2&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Кнопки системного меню и инвентаря====&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039; могут располагаться теги &#039;&#039;&#039;sysbutton&#039;&#039;&#039; и &#039;&#039;&#039;invbutton&#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;tex&#039;&#039;&#039; - имя  ресурса текстуры, на которой нарисованы глифы кнопки (всего их должно быть четыре - нормальная, неактивная, выделенная и нажатая) &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла первого глифа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота кнопки&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты кнопки в окне FireURQ&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;300&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;500&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;400&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Позиция меню на экране====&lt;br /&gt;
&lt;br /&gt;
Если определены кнопки для системного меню и инвентаря, то FireURQ использует специальный алгоритм, чтобы определить как и в каком месте должны раскрываться соответствующие меню. Например, если кнопка системного меню сделана в правом нижнем углу окна, то системное меню будет раскрываться над этой кнопкой с привязкой за правый нижний угол.&lt;br /&gt;
&lt;br /&gt;
Если кнопки не определены, то системное меню будет открываться в левом верхнем углу окна, а инвентарь - в правом верхнем.&lt;br /&gt;
&lt;br /&gt;
Однако, есть возможность жёстко задать координаты, где будет открываться то или иное меню. Так сделано, например, в стандартном скине. Это возможно с помощью тегов &#039;&#039;&#039;sysmenu&#039;&#039;&#039; и &#039;&#039;&#039;invmenu&#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;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты одного из углов меню в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;datum&#039;&#039;&#039; - указание на то, за какой, собственно, угол меню осуществляется привязка. Возможны четыре значения - &#039;&#039;&#039;lt&#039;&#039;&#039; (по умолчанию), &#039;&#039;&#039;lb&#039;&#039;&#039;, &#039;&#039;&#039;rt&#039;&#039;&#039; и &#039;&#039;&#039;rb&#039;&#039;&#039;. Левый верхний, левый нижний, правый верхний и правый нижний. Привязка влияет на то, как будет открываться меню. Например, если для меню указал параметр &#039;&#039;&#039;lb&#039;&#039;&#039;, то оно будет открываться &amp;quot;вверх&amp;quot; и &amp;quot;вправо&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&#039;&#039;&#039; Системное меню будет открываться в левом верхнем углу экрана&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;800&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&#039;&#039;&#039; Инвентарь будет открываться в правом верхнем углу экрана, &lt;br /&gt;
                                                 если ширина окна игры равна 800 пикселей (по умолчанию).&lt;br /&gt;
&lt;br /&gt;
===Иконки состояний===&lt;br /&gt;
&lt;br /&gt;
Иконки состояний - это мигающие изображения, появляющиеся в особые моменты игры. Все описания иконок состояний размещаются внутри тега &#039;&#039;&#039;icons&#039;&#039;&#039;, который в свою очередь размещается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. При этом существуют три типа этих иконок, описывамых в тегах &#039;&#039;&#039;timer&#039;&#039;&#039; (иконка ожидания, появляется при команде &#039;&#039;pause&#039;&#039;), &#039;&#039;&#039;anykey&#039;&#039;&#039; (когда игра ждёт нажатия клавиши) и &#039;&#039;&#039;scroll&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисована иконка&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла иконки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;
Все иконки всегда появляются на экране на одном месте - в правом нижнем углу текстового поля.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;scroll tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;timer tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;anykey tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;/icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  Этот код будет выводить одну и ту же иконку из ресурса &#039;&#039;&#039;res&#039;&#039;&#039; для всех состояний.&lt;br /&gt;
&lt;br /&gt;
===Украшения===&lt;br /&gt;
&lt;br /&gt;
Существует возможность задать в скине изображения, которые являются частью оформления скина и всегда находятся на экране. Все элементы оформления помещаются внутри тега &#039;&#039;&#039;decorations&#039;&#039;&#039; и определяются тегом &#039;&#039;&#039;image&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисовано изображение  &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла изображения на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота изображения&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты изображения в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;flipx&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по вертикальной оси (по умолчанию 0)&lt;br /&gt;
*&#039;&#039;&#039;flipy&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по горизонтальной оси (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
С версии 2.2 появилась возможность установить &#039;&#039;&#039;posz&#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;flipx&#039;&#039;&#039; и &#039;&#039;&#039;flipy&#039;&#039;&#039; удобно использовать, когда элементы оформления являются зеркальным отражением друг друга. В этом случае можно создать на текстуре одно изображение и разместить его в окне FireURQ, переворачивая по-всякому, чтобы добиться симметричного рисунка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&#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;decordel&#039;&#039;&#039;. Они всегда будут находиться на экране игры.&lt;br /&gt;
Так же с версиии 2.2 появилась возможность не указывать ширину и высоту декоратора - они будут браться автоматически.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[FireURQ:Скинование Дат-Навирэ]]&lt;br /&gt;
* Собственно для чего эта документация [[FireURQ]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17009</id>
		<title>FireURQ:Скины</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17009"/>
		<updated>2017-07-05T13:30:12Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Украшения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Скин игры - это такой файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста.&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; Изменение внешнего вида интерпретатора - это тема повышенной сложности. Поэтому, если вы сомневаетесь, нужны ли вам скины в вашей игре - они вам не нужны.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того, чтобы понимать, о чём будет идти речь в данном разделе, нужно хорошо представлять себе, что такое язык разметки XML.&lt;br /&gt;
&lt;br /&gt;
==Общие сведения==&lt;br /&gt;
&lt;br /&gt;
Файл описания скина представляет собой файл в формате XML с именем &#039;&#039;&#039;skin.xml&#039;&#039;&#039;, лежащий в папке с игрой. Если ваша игра упакована в файл с расширением QSZ, то скин и все его ресурсы должны помещаться внутри архива.&lt;br /&gt;
&lt;br /&gt;
Вот, для примера, как выглядит скин FireURQ по умолчанию (который загружается тогда, когда скин игры не определён):&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;furq_texture.png&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane left=&amp;quot;20&amp;quot; top=&amp;quot;55&amp;quot; width=&amp;quot;760&amp;quot; height=&amp;quot;525&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;106&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;20&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;424&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;130&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;671&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;780&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;47&amp;quot; width=&amp;quot;566&amp;quot; height=&amp;quot;17&amp;quot; posx=&amp;quot;105&amp;quot; posy=&amp;quot;29&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А это скин из демо для FireURQ 1.3:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;demo_tex.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;btnfont&amp;quot; file=&amp;quot;buttons_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;mnufont&amp;quot; file=&amp;quot;menu_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;buttonframe name=&amp;quot;tbuttons&amp;quot; tex=&amp;quot;res&amp;quot; font=&amp;quot;btnfont&amp;quot; texx=&amp;quot;0&amp;quot; texy=&amp;quot;210&amp;quot; width=&amp;quot;109&amp;quot; height=&amp;quot;55&amp;quot; leftw=&amp;quot;31&amp;quot; midw=&amp;quot;10&amp;quot; cnormal=&amp;quot;FF94cddb&amp;quot; cfocused=&amp;quot;FFFFFFFF&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;splash bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;  &lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;55&amp;quot; left=&amp;quot;255&amp;quot; width=&amp;quot;555&amp;quot; height=&amp;quot;615&amp;quot; btnalign=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;mnufont&amp;quot; bgcolor=&amp;quot;c01c79ae&amp;quot; bordercolor=&amp;quot;ff60c5ff&amp;quot; vindent=&amp;quot;1&amp;quot; textcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FF818181&amp;quot; selectioncolor=&amp;quot;E0003f95&amp;quot;&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;341&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;55&amp;quot; height=&amp;quot;55&amp;quot; posx=&amp;quot;959&amp;quot; posy=&amp;quot;703&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;342&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;708&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;60&amp;quot; posy=&amp;quot;720&amp;quot; datum=&amp;quot;lb&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;285&amp;quot; width=&amp;quot;1024&amp;quot; height=&amp;quot;257&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;511&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видно, первой должна идти строчка, определяющая формат XML-документа:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А все данные собственно скина размещаются в тегах внутри корневого тега skin:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;...&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;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;&lt;br /&gt;
*Названия тегов и параметров чувствительны к регистру.&lt;br /&gt;
*Стоит принять во внимание, что интерфейс игры без скина и с пустым скином (в котором есть только тег &#039;&#039;&#039;skin&#039;&#039;&#039;, но внутри него ничего нет) будут отличаться. В первом случае будет загружен скин по умолчанию. Во втором - никакого скина загружено не будет и FireURQ сама создаст минимально возможный для игры интерфейс, используя значения по умолчанию, зашитые в программу.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройки экрана==&lt;br /&gt;
&lt;br /&gt;
Можно задать размер окна FireURQ с помощью тега &#039;&#039;&#039;screen&#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;width&#039;&#039;&#039; - ширина окна (по умолчанию 800)&lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039; - высота окна (по умолчанию 600)&lt;br /&gt;
*&#039;&#039;&#039;fullscreen&#039;&#039;&#039; - если равна 1, то FireURQ запустится сразу в полноэкранном режиме (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; fullscreen=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
FireURQ установит размер окна в 1024х768 и запустится в полноэкранном режиме.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что хотя размер окна можно задать хоть 628х315, но если вы установите размер, не поддерживаемый видеокартой и монитором, то FireURQ не сможет запуститься в полноэкранном режиме!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ресурсы==&lt;br /&gt;
&lt;br /&gt;
Ресурсы - это текстуры, шрифты и заранее определённые рамки для кнопок, которые используются при оформлении скина. Каждому ресурсу присваивается имя, на которое потом ссылаются другие структуры данных, описывающие скин. Все ресурсы помещаются внутри тега &#039;&#039;&#039;resources&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Текстуры===&lt;br /&gt;
&lt;br /&gt;
Ресурс текстуры описывается тегом texture.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл текстуры (изображение JPEG, TGA или PNG).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что многие из элементов управления (кнопки, например) должны иметь прозрачные элементы для того, чтобы смотреться хорошо. Прозрачность поддерживается только для 24-битных PNG и TGA.&lt;br /&gt;
&lt;br /&gt;
===Шрифты===&lt;br /&gt;
&lt;br /&gt;
Ресурс шрифта описывается тегом &#039;&#039;&#039;font&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл шрифта, подготовленного программой fonted из поставки FireURQ, или шрифт TrueType&lt;br /&gt;
&lt;br /&gt;
===Рамки кнопок===&lt;br /&gt;
&lt;br /&gt;
Рамка кнопок описывает оформление кнопки с текстом внутри. В настоящий момент данный ресурс используется только для оформления кнопок перехода между локациями, но не исключено, что в будущем он будет использоваться для чего-то ещё (например, кастомных кнопок внутри квеста). Ресурс рамки кнопок описывается тегом &#039;&#039;&#039;buttonframe&#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;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован глиф кнопки&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта, который будет использован для подписи кнопки&lt;br /&gt;
*&#039;&#039;&#039;texx&#039;&#039;&#039; и &#039;&#039;&#039;texy&#039;&#039;&#039; - координаты глифа кнопки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота глифа кнопки&lt;br /&gt;
*&#039;&#039;&#039;leftw&#039;&#039;&#039; - ширина левой &amp;quot;крышечки&amp;quot; кнопки&lt;br /&gt;
*&#039;&#039;&#039;midw&#039;&#039;&#039; - ширина средней части кнопки&lt;br /&gt;
*&#039;&#039;&#039;cnormal&#039;&#039;&#039; - цвет (в шестнадцатиричном формате) надписи в нормальном состоянии (по умолчанию - FFA0A0A0 )&lt;br /&gt;
*&#039;&#039;&#039;cdisabled&#039;&#039;&#039; - цвет надписи в неактивном состоянии (по умолчанию - FF606060 )&lt;br /&gt;
*&#039;&#039;&#039;cfocused&#039;&#039;&#039; - цвет надписи при наведении мыши/перемещении фокуса (по умолчанию - FFA0A0FF )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
На текстуре должны быть расположены справа налево три глифа - для каждого из состояний кнопки (обычное, неактивное и сфокусированное). Разные параметры этого ресурса легче всего проиллюстрировать на картинке (это то, как определена рамка кнопок на текстуре по умолчанию, изображение увеличено):&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Btn schema.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Интерфейс сохранения/загрузки. ==&lt;br /&gt;
&lt;br /&gt;
Описывается тегом &#039;&#039;&#039;saveload&#039;&#039;&#039; и располагается в главном элементе &#039;&#039;&#039;skin&#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;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captioncolor&#039;&#039;&#039; - цвет заголовка в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captionfont&#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;&amp;lt;saveload bgcolor=&amp;quot;C0000000&amp;quot; captioncolor=&amp;quot;FFFFBB4F&amp;quot; captionfont=&amp;quot;myfont&amp;quot;&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;buttons frame=&amp;quot;myframe&amp;quot; /&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;myframe&#039;&#039;&#039; не определена, то берётся системная кнопка, которая используется обычно в игре. Если &#039;&#039;&#039;myfont&#039;&#039;&#039; не определён, берётся системный шрифт. Цвета указаны те, которые берутся по умолчанию. Для кнопок, использующихся на экране сохранения/загрузки, необходимо четыре состояния: нормальное, дизабленое, выбранное и нажатое.&lt;br /&gt;
&lt;br /&gt;
Из экрана сохранения/загрузки теперь можно выйти не сохраняясь/загружаясь, а по определяемой в скине кнопке. &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;&amp;lt;saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;backbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;565&amp;quot; ty=&amp;quot;106&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;35&amp;quot; posy=&amp;quot;60&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Заставка==&lt;br /&gt;
&lt;br /&gt;
Заставка (сплеш-скрин) показывается при запуске игры. Настройки заставки помещатся в теге &#039;&#039;&#039;splash&#039;&#039;&#039;. Если тег &#039;&#039;&#039;splash&#039;&#039;&#039; отсутствует в скине, то проигрывается стандартная заставка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;splash&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шеснадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
*&#039;&#039;&#039;vcolor&#039;&#039;&#039; - цвет надписи о версии FireURQ (по умолчанию - FFEE9A00)&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;splash&#039;&#039;&#039; может помещаться тег &#039;&#039;&#039;logo&#039;&#039;&#039;, с помощью которого можно заменить логотип FireURQ на изображение чего-нибудь другого.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;logo&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован логотип&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла логотипа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;&amp;lt;splash bgcolor=&amp;quot;FF000000&amp;quot; vcolor=&amp;quot;FFEE9A00&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Основной раздел==&lt;br /&gt;
&lt;br /&gt;
Основной раздел скина, описывающий интерфейс собственно проигрывателя, располагается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. Если в скине отсутствует тег &#039;&#039;&#039;main&#039;&#039;&#039;, то создаётся интерфейс по умолчанию - чёрный фон, текстовое поле занимает почти всё окно (с небольшими отступами), кнопки меню и инвентаря отсутствуют (меню и инвентарь можно вызвать только с клавиатуры), загружаются стандартные шрифты и стандартная рамка кнопок, никаких украшений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;main&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
&lt;br /&gt;
===Текстовое поле===&lt;br /&gt;
&lt;br /&gt;
Настройки текстового поля определяются с помощью тега &#039;&#039;&#039;textpane&#039;&#039;&#039; внутри тега &#039;&#039;&#039;main&#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;font&#039;&#039;&#039; - имя ресурса шрифта текстового поля (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bframe&#039;&#039;&#039; - имя ресурса рамки (стиля) кнопок, которая будет использована для оформления кнопок действий (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;left&#039;&#039;&#039; и &#039;&#039;&#039;top&#039;&#039;&#039; - координаты левого верхнего угла текстового поля в окне FireURQ (по умолчанию - 20, 10)&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота текстового поля (по умолчанию выбираются так, чтобы правый край отставал на 20 пикселей от края окна, а нижний край - на 10 пикселов от нижнего края окна)&lt;br /&gt;
*&#039;&#039;&#039;btnalign&#039;&#039;&#039; - выравнивание кнопок (1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
*&#039;&#039;&#039;btntxtalign&#039;&#039;&#039; - выравнивание текста на кнопках (так же, 1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;textpane font=&amp;quot;georgia[24]&amp;quot; bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;30&amp;quot; left=&amp;quot;30&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;500&amp;quot; btnalign=&amp;quot;3&amp;quot; btntxtalign=&amp;quot;3&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 создаст текстовое поле с шрифтом 24 размера типа georgia и определёнными вами кнопками, с координатами левого верхнего угла (30, 30),&lt;br /&gt;
 с шириной 400 пикселов и высотой 500 пикселов, и с выравнивание текста внутри поля по центру. &lt;br /&gt;
 Внутри кнопок текст так же будет выровнен по центру.&lt;br /&gt;
&lt;br /&gt;
===Меню и инвентарь===&lt;br /&gt;
&lt;br /&gt;
Параметры меню описываются внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039;. И системное меню, и меню инвентаря имеют единый стиль, т.е. цвета и шрифт для них одинаковые.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;menus&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта меню (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - FFFFFFFF) &lt;br /&gt;
*&#039;&#039;&#039;bordercolor&#039;&#039;&#039; - цвет рамки (по умолчанию - FFA0A0A0)&lt;br /&gt;
*&#039;&#039;&#039;textcolor&#039;&#039;&#039; - цвет текста пунктов меню (по умолчанию - FF000000)&lt;br /&gt;
*&#039;&#039;&#039;selectioncolor&#039;&#039;&#039; - цвет фона выделенного пункта меню (по умолчанию - FF0000A0)&lt;br /&gt;
*&#039;&#039;&#039;selectedcolor&#039;&#039;&#039; - цвет текста выделенного пункта меню (по умолчанию - FFFFFFFF)&lt;br /&gt;
*&#039;&#039;&#039;disabledcolor&#039;&#039;&#039; - цвет текста неактивного пункта меню (по умолчанию - FFC0C0C0)&lt;br /&gt;
*&#039;&#039;&#039;hindent&#039;&#039;&#039; - отступ в пикселях слева и справа от текста до рамки (по умолчанию - 2)&lt;br /&gt;
*&#039;&#039;&#039;vindent&#039;&#039;&#039; - отступ сверху и снизу от текста до следующего пункта меню в пикселях (по умолчанию - 2)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Лучше всего понять, к чему относятся те или иные параметры можно, взглянув на рисунок:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Menu schema.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;myfont&amp;quot; bgcolor=&amp;quot;FFFFFFFF&amp;quot; bordercolor=&amp;quot;FFA0A0A0&amp;quot; textcolor=&amp;quot;FF000000&amp;quot; selectioncolor=&amp;quot;FF0000A0&amp;quot; selectedcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FFC0C0C0&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
        &#039;&#039;&#039;hindent=&amp;quot;2&amp;quot; vindent=&amp;quot;2&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Кнопки системного меню и инвентаря====&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039; могут располагаться теги &#039;&#039;&#039;sysbutton&#039;&#039;&#039; и &#039;&#039;&#039;invbutton&#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;tex&#039;&#039;&#039; - имя  ресурса текстуры, на которой нарисованы глифы кнопки (всего их должно быть четыре - нормальная, неактивная, выделенная и нажатая) &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла первого глифа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота кнопки&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты кнопки в окне FireURQ&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;300&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;500&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;400&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Позиция меню на экране====&lt;br /&gt;
&lt;br /&gt;
Если определены кнопки для системного меню и инвентаря, то FireURQ использует специальный алгоритм, чтобы определить как и в каком месте должны раскрываться соответствующие меню. Например, если кнопка системного меню сделана в правом нижнем углу окна, то системное меню будет раскрываться над этой кнопкой с привязкой за правый нижний угол.&lt;br /&gt;
&lt;br /&gt;
Если кнопки не определены, то системное меню будет открываться в левом верхнем углу окна, а инвентарь - в правом верхнем.&lt;br /&gt;
&lt;br /&gt;
Однако, есть возможность жёстко задать координаты, где будет открываться то или иное меню. Так сделано, например, в стандартном скине. Это возможно с помощью тегов &#039;&#039;&#039;sysmenu&#039;&#039;&#039; и &#039;&#039;&#039;invmenu&#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;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты одного из углов меню в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;datum&#039;&#039;&#039; - указание на то, за какой, собственно, угол меню осуществляется привязка. Возможны четыре значения - &#039;&#039;&#039;lt&#039;&#039;&#039; (по умолчанию), &#039;&#039;&#039;lb&#039;&#039;&#039;, &#039;&#039;&#039;rt&#039;&#039;&#039; и &#039;&#039;&#039;rb&#039;&#039;&#039;. Левый верхний, левый нижний, правый верхний и правый нижний. Привязка влияет на то, как будет открываться меню. Например, если для меню указал параметр &#039;&#039;&#039;lb&#039;&#039;&#039;, то оно будет открываться &amp;quot;вверх&amp;quot; и &amp;quot;вправо&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&#039;&#039;&#039; Системное меню будет открываться в левом верхнем углу экрана&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;800&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&#039;&#039;&#039; Инвентарь будет открываться в правом верхнем углу экрана, &lt;br /&gt;
                                                 если ширина окна игры равна 800 пикселей (по умолчанию).&lt;br /&gt;
&lt;br /&gt;
===Иконки состояний===&lt;br /&gt;
&lt;br /&gt;
Иконки состояний - это мигающие изображения, появляющиеся в особые моменты игры. Все описания иконок состояний размещаются внутри тега &#039;&#039;&#039;icons&#039;&#039;&#039;, который в свою очередь размещается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. При этом существуют три типа этих иконок, описывамых в тегах &#039;&#039;&#039;timer&#039;&#039;&#039; (иконка ожидания, появляется при команде &#039;&#039;pause&#039;&#039;), &#039;&#039;&#039;anykey&#039;&#039;&#039; (когда игра ждёт нажатия клавиши) и &#039;&#039;&#039;scroll&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисована иконка&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла иконки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;
Все иконки всегда появляются на экране на одном месте - в правом нижнем углу текстового поля.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;scroll tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;timer tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;anykey tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;/icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  Этот код будет выводить одну и ту же иконку из ресурса &#039;&#039;&#039;res&#039;&#039;&#039; для всех состояний.&lt;br /&gt;
&lt;br /&gt;
===Украшения===&lt;br /&gt;
&lt;br /&gt;
Существует возможность задать в скине изображения, которые являются частью оформления скина и всегда находятся на экране. Все элементы оформления помещаются внутри тега &#039;&#039;&#039;decorations&#039;&#039;&#039; и определяются тегом &#039;&#039;&#039;image&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисовано изображение  &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла изображения на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота изображения&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты изображения в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;flipx&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по вертикальной оси (по умолчанию 0)&lt;br /&gt;
*&#039;&#039;&#039;flipy&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по горизонтальной оси (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
С версии 2.2 появилась возможность установить &#039;&#039;&#039;posz&#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;flipx&#039;&#039;&#039; и &#039;&#039;&#039;flipy&#039;&#039;&#039; удобно использовать, когда элементы оформления являются зеркальным отражением друг друга. В этом случае можно создать на текстуре одно изображение и разместить его в окне FireURQ, переворачивая по-всякому, чтобы добиться симметричного рисунка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&#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;decordel&#039;&#039;&#039;. Они всегда будут находиться на экране игры.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[FireURQ:Скинование Дат-Навирэ]]&lt;br /&gt;
* Собственно для чего эта документация [[FireURQ]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17008</id>
		<title>FireURQ:Скины</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17008"/>
		<updated>2017-07-05T13:26:43Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Украшения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Скин игры - это такой файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста.&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; Изменение внешнего вида интерпретатора - это тема повышенной сложности. Поэтому, если вы сомневаетесь, нужны ли вам скины в вашей игре - они вам не нужны.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того, чтобы понимать, о чём будет идти речь в данном разделе, нужно хорошо представлять себе, что такое язык разметки XML.&lt;br /&gt;
&lt;br /&gt;
==Общие сведения==&lt;br /&gt;
&lt;br /&gt;
Файл описания скина представляет собой файл в формате XML с именем &#039;&#039;&#039;skin.xml&#039;&#039;&#039;, лежащий в папке с игрой. Если ваша игра упакована в файл с расширением QSZ, то скин и все его ресурсы должны помещаться внутри архива.&lt;br /&gt;
&lt;br /&gt;
Вот, для примера, как выглядит скин FireURQ по умолчанию (который загружается тогда, когда скин игры не определён):&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;furq_texture.png&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane left=&amp;quot;20&amp;quot; top=&amp;quot;55&amp;quot; width=&amp;quot;760&amp;quot; height=&amp;quot;525&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;106&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;20&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;424&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;130&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;671&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;780&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;47&amp;quot; width=&amp;quot;566&amp;quot; height=&amp;quot;17&amp;quot; posx=&amp;quot;105&amp;quot; posy=&amp;quot;29&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А это скин из демо для FireURQ 1.3:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;demo_tex.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;btnfont&amp;quot; file=&amp;quot;buttons_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;mnufont&amp;quot; file=&amp;quot;menu_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;buttonframe name=&amp;quot;tbuttons&amp;quot; tex=&amp;quot;res&amp;quot; font=&amp;quot;btnfont&amp;quot; texx=&amp;quot;0&amp;quot; texy=&amp;quot;210&amp;quot; width=&amp;quot;109&amp;quot; height=&amp;quot;55&amp;quot; leftw=&amp;quot;31&amp;quot; midw=&amp;quot;10&amp;quot; cnormal=&amp;quot;FF94cddb&amp;quot; cfocused=&amp;quot;FFFFFFFF&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;splash bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;  &lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;55&amp;quot; left=&amp;quot;255&amp;quot; width=&amp;quot;555&amp;quot; height=&amp;quot;615&amp;quot; btnalign=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;mnufont&amp;quot; bgcolor=&amp;quot;c01c79ae&amp;quot; bordercolor=&amp;quot;ff60c5ff&amp;quot; vindent=&amp;quot;1&amp;quot; textcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FF818181&amp;quot; selectioncolor=&amp;quot;E0003f95&amp;quot;&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;341&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;55&amp;quot; height=&amp;quot;55&amp;quot; posx=&amp;quot;959&amp;quot; posy=&amp;quot;703&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;342&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;708&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;60&amp;quot; posy=&amp;quot;720&amp;quot; datum=&amp;quot;lb&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;285&amp;quot; width=&amp;quot;1024&amp;quot; height=&amp;quot;257&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;511&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видно, первой должна идти строчка, определяющая формат XML-документа:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А все данные собственно скина размещаются в тегах внутри корневого тега skin:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;...&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;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;&lt;br /&gt;
*Названия тегов и параметров чувствительны к регистру.&lt;br /&gt;
*Стоит принять во внимание, что интерфейс игры без скина и с пустым скином (в котором есть только тег &#039;&#039;&#039;skin&#039;&#039;&#039;, но внутри него ничего нет) будут отличаться. В первом случае будет загружен скин по умолчанию. Во втором - никакого скина загружено не будет и FireURQ сама создаст минимально возможный для игры интерфейс, используя значения по умолчанию, зашитые в программу.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройки экрана==&lt;br /&gt;
&lt;br /&gt;
Можно задать размер окна FireURQ с помощью тега &#039;&#039;&#039;screen&#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;width&#039;&#039;&#039; - ширина окна (по умолчанию 800)&lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039; - высота окна (по умолчанию 600)&lt;br /&gt;
*&#039;&#039;&#039;fullscreen&#039;&#039;&#039; - если равна 1, то FireURQ запустится сразу в полноэкранном режиме (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; fullscreen=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
FireURQ установит размер окна в 1024х768 и запустится в полноэкранном режиме.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что хотя размер окна можно задать хоть 628х315, но если вы установите размер, не поддерживаемый видеокартой и монитором, то FireURQ не сможет запуститься в полноэкранном режиме!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ресурсы==&lt;br /&gt;
&lt;br /&gt;
Ресурсы - это текстуры, шрифты и заранее определённые рамки для кнопок, которые используются при оформлении скина. Каждому ресурсу присваивается имя, на которое потом ссылаются другие структуры данных, описывающие скин. Все ресурсы помещаются внутри тега &#039;&#039;&#039;resources&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Текстуры===&lt;br /&gt;
&lt;br /&gt;
Ресурс текстуры описывается тегом texture.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл текстуры (изображение JPEG, TGA или PNG).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что многие из элементов управления (кнопки, например) должны иметь прозрачные элементы для того, чтобы смотреться хорошо. Прозрачность поддерживается только для 24-битных PNG и TGA.&lt;br /&gt;
&lt;br /&gt;
===Шрифты===&lt;br /&gt;
&lt;br /&gt;
Ресурс шрифта описывается тегом &#039;&#039;&#039;font&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл шрифта, подготовленного программой fonted из поставки FireURQ, или шрифт TrueType&lt;br /&gt;
&lt;br /&gt;
===Рамки кнопок===&lt;br /&gt;
&lt;br /&gt;
Рамка кнопок описывает оформление кнопки с текстом внутри. В настоящий момент данный ресурс используется только для оформления кнопок перехода между локациями, но не исключено, что в будущем он будет использоваться для чего-то ещё (например, кастомных кнопок внутри квеста). Ресурс рамки кнопок описывается тегом &#039;&#039;&#039;buttonframe&#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;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован глиф кнопки&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта, который будет использован для подписи кнопки&lt;br /&gt;
*&#039;&#039;&#039;texx&#039;&#039;&#039; и &#039;&#039;&#039;texy&#039;&#039;&#039; - координаты глифа кнопки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота глифа кнопки&lt;br /&gt;
*&#039;&#039;&#039;leftw&#039;&#039;&#039; - ширина левой &amp;quot;крышечки&amp;quot; кнопки&lt;br /&gt;
*&#039;&#039;&#039;midw&#039;&#039;&#039; - ширина средней части кнопки&lt;br /&gt;
*&#039;&#039;&#039;cnormal&#039;&#039;&#039; - цвет (в шестнадцатиричном формате) надписи в нормальном состоянии (по умолчанию - FFA0A0A0 )&lt;br /&gt;
*&#039;&#039;&#039;cdisabled&#039;&#039;&#039; - цвет надписи в неактивном состоянии (по умолчанию - FF606060 )&lt;br /&gt;
*&#039;&#039;&#039;cfocused&#039;&#039;&#039; - цвет надписи при наведении мыши/перемещении фокуса (по умолчанию - FFA0A0FF )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
На текстуре должны быть расположены справа налево три глифа - для каждого из состояний кнопки (обычное, неактивное и сфокусированное). Разные параметры этого ресурса легче всего проиллюстрировать на картинке (это то, как определена рамка кнопок на текстуре по умолчанию, изображение увеличено):&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Btn schema.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Интерфейс сохранения/загрузки. ==&lt;br /&gt;
&lt;br /&gt;
Описывается тегом &#039;&#039;&#039;saveload&#039;&#039;&#039; и располагается в главном элементе &#039;&#039;&#039;skin&#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;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captioncolor&#039;&#039;&#039; - цвет заголовка в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captionfont&#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;&amp;lt;saveload bgcolor=&amp;quot;C0000000&amp;quot; captioncolor=&amp;quot;FFFFBB4F&amp;quot; captionfont=&amp;quot;myfont&amp;quot;&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;buttons frame=&amp;quot;myframe&amp;quot; /&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;myframe&#039;&#039;&#039; не определена, то берётся системная кнопка, которая используется обычно в игре. Если &#039;&#039;&#039;myfont&#039;&#039;&#039; не определён, берётся системный шрифт. Цвета указаны те, которые берутся по умолчанию. Для кнопок, использующихся на экране сохранения/загрузки, необходимо четыре состояния: нормальное, дизабленое, выбранное и нажатое.&lt;br /&gt;
&lt;br /&gt;
Из экрана сохранения/загрузки теперь можно выйти не сохраняясь/загружаясь, а по определяемой в скине кнопке. &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;&amp;lt;saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;backbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;565&amp;quot; ty=&amp;quot;106&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;35&amp;quot; posy=&amp;quot;60&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Заставка==&lt;br /&gt;
&lt;br /&gt;
Заставка (сплеш-скрин) показывается при запуске игры. Настройки заставки помещатся в теге &#039;&#039;&#039;splash&#039;&#039;&#039;. Если тег &#039;&#039;&#039;splash&#039;&#039;&#039; отсутствует в скине, то проигрывается стандартная заставка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;splash&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шеснадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
*&#039;&#039;&#039;vcolor&#039;&#039;&#039; - цвет надписи о версии FireURQ (по умолчанию - FFEE9A00)&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;splash&#039;&#039;&#039; может помещаться тег &#039;&#039;&#039;logo&#039;&#039;&#039;, с помощью которого можно заменить логотип FireURQ на изображение чего-нибудь другого.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;logo&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован логотип&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла логотипа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;&amp;lt;splash bgcolor=&amp;quot;FF000000&amp;quot; vcolor=&amp;quot;FFEE9A00&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Основной раздел==&lt;br /&gt;
&lt;br /&gt;
Основной раздел скина, описывающий интерфейс собственно проигрывателя, располагается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. Если в скине отсутствует тег &#039;&#039;&#039;main&#039;&#039;&#039;, то создаётся интерфейс по умолчанию - чёрный фон, текстовое поле занимает почти всё окно (с небольшими отступами), кнопки меню и инвентаря отсутствуют (меню и инвентарь можно вызвать только с клавиатуры), загружаются стандартные шрифты и стандартная рамка кнопок, никаких украшений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;main&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
&lt;br /&gt;
===Текстовое поле===&lt;br /&gt;
&lt;br /&gt;
Настройки текстового поля определяются с помощью тега &#039;&#039;&#039;textpane&#039;&#039;&#039; внутри тега &#039;&#039;&#039;main&#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;font&#039;&#039;&#039; - имя ресурса шрифта текстового поля (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bframe&#039;&#039;&#039; - имя ресурса рамки (стиля) кнопок, которая будет использована для оформления кнопок действий (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;left&#039;&#039;&#039; и &#039;&#039;&#039;top&#039;&#039;&#039; - координаты левого верхнего угла текстового поля в окне FireURQ (по умолчанию - 20, 10)&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота текстового поля (по умолчанию выбираются так, чтобы правый край отставал на 20 пикселей от края окна, а нижний край - на 10 пикселов от нижнего края окна)&lt;br /&gt;
*&#039;&#039;&#039;btnalign&#039;&#039;&#039; - выравнивание кнопок (1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
*&#039;&#039;&#039;btntxtalign&#039;&#039;&#039; - выравнивание текста на кнопках (так же, 1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;textpane font=&amp;quot;georgia[24]&amp;quot; bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;30&amp;quot; left=&amp;quot;30&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;500&amp;quot; btnalign=&amp;quot;3&amp;quot; btntxtalign=&amp;quot;3&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 создаст текстовое поле с шрифтом 24 размера типа georgia и определёнными вами кнопками, с координатами левого верхнего угла (30, 30),&lt;br /&gt;
 с шириной 400 пикселов и высотой 500 пикселов, и с выравнивание текста внутри поля по центру. &lt;br /&gt;
 Внутри кнопок текст так же будет выровнен по центру.&lt;br /&gt;
&lt;br /&gt;
===Меню и инвентарь===&lt;br /&gt;
&lt;br /&gt;
Параметры меню описываются внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039;. И системное меню, и меню инвентаря имеют единый стиль, т.е. цвета и шрифт для них одинаковые.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;menus&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта меню (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - FFFFFFFF) &lt;br /&gt;
*&#039;&#039;&#039;bordercolor&#039;&#039;&#039; - цвет рамки (по умолчанию - FFA0A0A0)&lt;br /&gt;
*&#039;&#039;&#039;textcolor&#039;&#039;&#039; - цвет текста пунктов меню (по умолчанию - FF000000)&lt;br /&gt;
*&#039;&#039;&#039;selectioncolor&#039;&#039;&#039; - цвет фона выделенного пункта меню (по умолчанию - FF0000A0)&lt;br /&gt;
*&#039;&#039;&#039;selectedcolor&#039;&#039;&#039; - цвет текста выделенного пункта меню (по умолчанию - FFFFFFFF)&lt;br /&gt;
*&#039;&#039;&#039;disabledcolor&#039;&#039;&#039; - цвет текста неактивного пункта меню (по умолчанию - FFC0C0C0)&lt;br /&gt;
*&#039;&#039;&#039;hindent&#039;&#039;&#039; - отступ в пикселях слева и справа от текста до рамки (по умолчанию - 2)&lt;br /&gt;
*&#039;&#039;&#039;vindent&#039;&#039;&#039; - отступ сверху и снизу от текста до следующего пункта меню в пикселях (по умолчанию - 2)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Лучше всего понять, к чему относятся те или иные параметры можно, взглянув на рисунок:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Menu schema.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;myfont&amp;quot; bgcolor=&amp;quot;FFFFFFFF&amp;quot; bordercolor=&amp;quot;FFA0A0A0&amp;quot; textcolor=&amp;quot;FF000000&amp;quot; selectioncolor=&amp;quot;FF0000A0&amp;quot; selectedcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FFC0C0C0&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
        &#039;&#039;&#039;hindent=&amp;quot;2&amp;quot; vindent=&amp;quot;2&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Кнопки системного меню и инвентаря====&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039; могут располагаться теги &#039;&#039;&#039;sysbutton&#039;&#039;&#039; и &#039;&#039;&#039;invbutton&#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;tex&#039;&#039;&#039; - имя  ресурса текстуры, на которой нарисованы глифы кнопки (всего их должно быть четыре - нормальная, неактивная, выделенная и нажатая) &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла первого глифа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота кнопки&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты кнопки в окне FireURQ&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;300&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;500&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;400&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Позиция меню на экране====&lt;br /&gt;
&lt;br /&gt;
Если определены кнопки для системного меню и инвентаря, то FireURQ использует специальный алгоритм, чтобы определить как и в каком месте должны раскрываться соответствующие меню. Например, если кнопка системного меню сделана в правом нижнем углу окна, то системное меню будет раскрываться над этой кнопкой с привязкой за правый нижний угол.&lt;br /&gt;
&lt;br /&gt;
Если кнопки не определены, то системное меню будет открываться в левом верхнем углу окна, а инвентарь - в правом верхнем.&lt;br /&gt;
&lt;br /&gt;
Однако, есть возможность жёстко задать координаты, где будет открываться то или иное меню. Так сделано, например, в стандартном скине. Это возможно с помощью тегов &#039;&#039;&#039;sysmenu&#039;&#039;&#039; и &#039;&#039;&#039;invmenu&#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;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты одного из углов меню в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;datum&#039;&#039;&#039; - указание на то, за какой, собственно, угол меню осуществляется привязка. Возможны четыре значения - &#039;&#039;&#039;lt&#039;&#039;&#039; (по умолчанию), &#039;&#039;&#039;lb&#039;&#039;&#039;, &#039;&#039;&#039;rt&#039;&#039;&#039; и &#039;&#039;&#039;rb&#039;&#039;&#039;. Левый верхний, левый нижний, правый верхний и правый нижний. Привязка влияет на то, как будет открываться меню. Например, если для меню указал параметр &#039;&#039;&#039;lb&#039;&#039;&#039;, то оно будет открываться &amp;quot;вверх&amp;quot; и &amp;quot;вправо&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&#039;&#039;&#039; Системное меню будет открываться в левом верхнем углу экрана&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;800&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&#039;&#039;&#039; Инвентарь будет открываться в правом верхнем углу экрана, &lt;br /&gt;
                                                 если ширина окна игры равна 800 пикселей (по умолчанию).&lt;br /&gt;
&lt;br /&gt;
===Иконки состояний===&lt;br /&gt;
&lt;br /&gt;
Иконки состояний - это мигающие изображения, появляющиеся в особые моменты игры. Все описания иконок состояний размещаются внутри тега &#039;&#039;&#039;icons&#039;&#039;&#039;, который в свою очередь размещается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. При этом существуют три типа этих иконок, описывамых в тегах &#039;&#039;&#039;timer&#039;&#039;&#039; (иконка ожидания, появляется при команде &#039;&#039;pause&#039;&#039;), &#039;&#039;&#039;anykey&#039;&#039;&#039; (когда игра ждёт нажатия клавиши) и &#039;&#039;&#039;scroll&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисована иконка&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла иконки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;
Все иконки всегда появляются на экране на одном месте - в правом нижнем углу текстового поля.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;scroll tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;timer tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;anykey tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;/icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  Этот код будет выводить одну и ту же иконку из ресурса &#039;&#039;&#039;res&#039;&#039;&#039; для всех состояний.&lt;br /&gt;
&lt;br /&gt;
===Украшения===&lt;br /&gt;
&lt;br /&gt;
Существует возможность задать в скине изображения, которые являются частью оформления скина и всегда находятся на экране. Все элементы оформления помещаются внутри тега &#039;&#039;&#039;decorations&#039;&#039;&#039; и определяются тегом &#039;&#039;&#039;image&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисовано изображение  &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла изображения на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота изображения&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты изображения в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;flipx&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по вертикальной оси (по умолчанию 0)&lt;br /&gt;
*&#039;&#039;&#039;flipy&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по горизонтальной оси (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
С версии 2.2 появилась возможность установить &#039;&#039;&#039;posz&#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;flipx&#039;&#039;&#039; и &#039;&#039;&#039;flipy&#039;&#039;&#039; удобно использовать, когда элементы оформления являются зеркальным отражением друг друга. В этом случае можно создать на текстуре одно изображение и разместить его в окне FireURQ, переворачивая по-всякому, чтобы добиться симметричного рисунка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&#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;
Если же вы хотите сделать своей игре бэкграунд, то стоит использовать возможности декораторов в файле игры, а не в файле скина.&lt;br /&gt;
И всё же украшения в скинах очень подойдут для элементов оформления, которые по замыслу всегда должны быть на экране игры - &lt;br /&gt;
вроде рамки для окна игры или каких-нибудь иконок.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[FireURQ:Скинование Дат-Навирэ]]&lt;br /&gt;
* Собственно для чего эта документация [[FireURQ]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17007</id>
		<title>FireURQ:Скины</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17007"/>
		<updated>2017-07-05T13:24:51Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Общие сведения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Скин игры - это такой файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста.&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; Изменение внешнего вида интерпретатора - это тема повышенной сложности. Поэтому, если вы сомневаетесь, нужны ли вам скины в вашей игре - они вам не нужны.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того, чтобы понимать, о чём будет идти речь в данном разделе, нужно хорошо представлять себе, что такое язык разметки XML.&lt;br /&gt;
&lt;br /&gt;
==Общие сведения==&lt;br /&gt;
&lt;br /&gt;
Файл описания скина представляет собой файл в формате XML с именем &#039;&#039;&#039;skin.xml&#039;&#039;&#039;, лежащий в папке с игрой. Если ваша игра упакована в файл с расширением QSZ, то скин и все его ресурсы должны помещаться внутри архива.&lt;br /&gt;
&lt;br /&gt;
Вот, для примера, как выглядит скин FireURQ по умолчанию (который загружается тогда, когда скин игры не определён):&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;furq_texture.png&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane left=&amp;quot;20&amp;quot; top=&amp;quot;55&amp;quot; width=&amp;quot;760&amp;quot; height=&amp;quot;525&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;106&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;20&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;424&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;130&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;671&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;780&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;47&amp;quot; width=&amp;quot;566&amp;quot; height=&amp;quot;17&amp;quot; posx=&amp;quot;105&amp;quot; posy=&amp;quot;29&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А это скин из демо для FireURQ 1.3:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;demo_tex.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;btnfont&amp;quot; file=&amp;quot;buttons_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;mnufont&amp;quot; file=&amp;quot;menu_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;buttonframe name=&amp;quot;tbuttons&amp;quot; tex=&amp;quot;res&amp;quot; font=&amp;quot;btnfont&amp;quot; texx=&amp;quot;0&amp;quot; texy=&amp;quot;210&amp;quot; width=&amp;quot;109&amp;quot; height=&amp;quot;55&amp;quot; leftw=&amp;quot;31&amp;quot; midw=&amp;quot;10&amp;quot; cnormal=&amp;quot;FF94cddb&amp;quot; cfocused=&amp;quot;FFFFFFFF&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;splash bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;  &lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;55&amp;quot; left=&amp;quot;255&amp;quot; width=&amp;quot;555&amp;quot; height=&amp;quot;615&amp;quot; btnalign=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;mnufont&amp;quot; bgcolor=&amp;quot;c01c79ae&amp;quot; bordercolor=&amp;quot;ff60c5ff&amp;quot; vindent=&amp;quot;1&amp;quot; textcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FF818181&amp;quot; selectioncolor=&amp;quot;E0003f95&amp;quot;&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;341&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;55&amp;quot; height=&amp;quot;55&amp;quot; posx=&amp;quot;959&amp;quot; posy=&amp;quot;703&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;342&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;708&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;60&amp;quot; posy=&amp;quot;720&amp;quot; datum=&amp;quot;lb&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;285&amp;quot; width=&amp;quot;1024&amp;quot; height=&amp;quot;257&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;511&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видно, первой должна идти строчка, определяющая формат XML-документа:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А все данные собственно скина размещаются в тегах внутри корневого тега skin:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;...&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;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;&lt;br /&gt;
*Названия тегов и параметров чувствительны к регистру.&lt;br /&gt;
*Стоит принять во внимание, что интерфейс игры без скина и с пустым скином (в котором есть только тег &#039;&#039;&#039;skin&#039;&#039;&#039;, но внутри него ничего нет) будут отличаться. В первом случае будет загружен скин по умолчанию. Во втором - никакого скина загружено не будет и FireURQ сама создаст минимально возможный для игры интерфейс, используя значения по умолчанию, зашитые в программу.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройки экрана==&lt;br /&gt;
&lt;br /&gt;
Можно задать размер окна FireURQ с помощью тега &#039;&#039;&#039;screen&#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;width&#039;&#039;&#039; - ширина окна (по умолчанию 800)&lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039; - высота окна (по умолчанию 600)&lt;br /&gt;
*&#039;&#039;&#039;fullscreen&#039;&#039;&#039; - если равна 1, то FireURQ запустится сразу в полноэкранном режиме (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; fullscreen=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
FireURQ установит размер окна в 1024х768 и запустится в полноэкранном режиме.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что хотя размер окна можно задать хоть 628х315, но если вы установите размер, не поддерживаемый видеокартой и монитором, то FireURQ не сможет запуститься в полноэкранном режиме!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ресурсы==&lt;br /&gt;
&lt;br /&gt;
Ресурсы - это текстуры, шрифты и заранее определённые рамки для кнопок, которые используются при оформлении скина. Каждому ресурсу присваивается имя, на которое потом ссылаются другие структуры данных, описывающие скин. Все ресурсы помещаются внутри тега &#039;&#039;&#039;resources&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Текстуры===&lt;br /&gt;
&lt;br /&gt;
Ресурс текстуры описывается тегом texture.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл текстуры (изображение JPEG, TGA или PNG).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что многие из элементов управления (кнопки, например) должны иметь прозрачные элементы для того, чтобы смотреться хорошо. Прозрачность поддерживается только для 24-битных PNG и TGA.&lt;br /&gt;
&lt;br /&gt;
===Шрифты===&lt;br /&gt;
&lt;br /&gt;
Ресурс шрифта описывается тегом &#039;&#039;&#039;font&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл шрифта, подготовленного программой fonted из поставки FireURQ, или шрифт TrueType&lt;br /&gt;
&lt;br /&gt;
===Рамки кнопок===&lt;br /&gt;
&lt;br /&gt;
Рамка кнопок описывает оформление кнопки с текстом внутри. В настоящий момент данный ресурс используется только для оформления кнопок перехода между локациями, но не исключено, что в будущем он будет использоваться для чего-то ещё (например, кастомных кнопок внутри квеста). Ресурс рамки кнопок описывается тегом &#039;&#039;&#039;buttonframe&#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;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован глиф кнопки&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта, который будет использован для подписи кнопки&lt;br /&gt;
*&#039;&#039;&#039;texx&#039;&#039;&#039; и &#039;&#039;&#039;texy&#039;&#039;&#039; - координаты глифа кнопки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота глифа кнопки&lt;br /&gt;
*&#039;&#039;&#039;leftw&#039;&#039;&#039; - ширина левой &amp;quot;крышечки&amp;quot; кнопки&lt;br /&gt;
*&#039;&#039;&#039;midw&#039;&#039;&#039; - ширина средней части кнопки&lt;br /&gt;
*&#039;&#039;&#039;cnormal&#039;&#039;&#039; - цвет (в шестнадцатиричном формате) надписи в нормальном состоянии (по умолчанию - FFA0A0A0 )&lt;br /&gt;
*&#039;&#039;&#039;cdisabled&#039;&#039;&#039; - цвет надписи в неактивном состоянии (по умолчанию - FF606060 )&lt;br /&gt;
*&#039;&#039;&#039;cfocused&#039;&#039;&#039; - цвет надписи при наведении мыши/перемещении фокуса (по умолчанию - FFA0A0FF )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
На текстуре должны быть расположены справа налево три глифа - для каждого из состояний кнопки (обычное, неактивное и сфокусированное). Разные параметры этого ресурса легче всего проиллюстрировать на картинке (это то, как определена рамка кнопок на текстуре по умолчанию, изображение увеличено):&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Btn schema.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Интерфейс сохранения/загрузки. ==&lt;br /&gt;
&lt;br /&gt;
Описывается тегом &#039;&#039;&#039;saveload&#039;&#039;&#039; и располагается в главном элементе &#039;&#039;&#039;skin&#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;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captioncolor&#039;&#039;&#039; - цвет заголовка в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captionfont&#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;&amp;lt;saveload bgcolor=&amp;quot;C0000000&amp;quot; captioncolor=&amp;quot;FFFFBB4F&amp;quot; captionfont=&amp;quot;myfont&amp;quot;&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;buttons frame=&amp;quot;myframe&amp;quot; /&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;myframe&#039;&#039;&#039; не определена, то берётся системная кнопка, которая используется обычно в игре. Если &#039;&#039;&#039;myfont&#039;&#039;&#039; не определён, берётся системный шрифт. Цвета указаны те, которые берутся по умолчанию. Для кнопок, использующихся на экране сохранения/загрузки, необходимо четыре состояния: нормальное, дизабленое, выбранное и нажатое.&lt;br /&gt;
&lt;br /&gt;
Из экрана сохранения/загрузки теперь можно выйти не сохраняясь/загружаясь, а по определяемой в скине кнопке. &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;&amp;lt;saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;backbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;565&amp;quot; ty=&amp;quot;106&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;35&amp;quot; posy=&amp;quot;60&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Заставка==&lt;br /&gt;
&lt;br /&gt;
Заставка (сплеш-скрин) показывается при запуске игры. Настройки заставки помещатся в теге &#039;&#039;&#039;splash&#039;&#039;&#039;. Если тег &#039;&#039;&#039;splash&#039;&#039;&#039; отсутствует в скине, то проигрывается стандартная заставка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;splash&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шеснадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
*&#039;&#039;&#039;vcolor&#039;&#039;&#039; - цвет надписи о версии FireURQ (по умолчанию - FFEE9A00)&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;splash&#039;&#039;&#039; может помещаться тег &#039;&#039;&#039;logo&#039;&#039;&#039;, с помощью которого можно заменить логотип FireURQ на изображение чего-нибудь другого.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;logo&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован логотип&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла логотипа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;&amp;lt;splash bgcolor=&amp;quot;FF000000&amp;quot; vcolor=&amp;quot;FFEE9A00&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Основной раздел==&lt;br /&gt;
&lt;br /&gt;
Основной раздел скина, описывающий интерфейс собственно проигрывателя, располагается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. Если в скине отсутствует тег &#039;&#039;&#039;main&#039;&#039;&#039;, то создаётся интерфейс по умолчанию - чёрный фон, текстовое поле занимает почти всё окно (с небольшими отступами), кнопки меню и инвентаря отсутствуют (меню и инвентарь можно вызвать только с клавиатуры), загружаются стандартные шрифты и стандартная рамка кнопок, никаких украшений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;main&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
&lt;br /&gt;
===Текстовое поле===&lt;br /&gt;
&lt;br /&gt;
Настройки текстового поля определяются с помощью тега &#039;&#039;&#039;textpane&#039;&#039;&#039; внутри тега &#039;&#039;&#039;main&#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;font&#039;&#039;&#039; - имя ресурса шрифта текстового поля (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bframe&#039;&#039;&#039; - имя ресурса рамки (стиля) кнопок, которая будет использована для оформления кнопок действий (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;left&#039;&#039;&#039; и &#039;&#039;&#039;top&#039;&#039;&#039; - координаты левого верхнего угла текстового поля в окне FireURQ (по умолчанию - 20, 10)&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота текстового поля (по умолчанию выбираются так, чтобы правый край отставал на 20 пикселей от края окна, а нижний край - на 10 пикселов от нижнего края окна)&lt;br /&gt;
*&#039;&#039;&#039;btnalign&#039;&#039;&#039; - выравнивание кнопок (1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
*&#039;&#039;&#039;btntxtalign&#039;&#039;&#039; - выравнивание текста на кнопках (так же, 1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;textpane font=&amp;quot;georgia[24]&amp;quot; bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;30&amp;quot; left=&amp;quot;30&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;500&amp;quot; btnalign=&amp;quot;3&amp;quot; btntxtalign=&amp;quot;3&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 создаст текстовое поле с шрифтом 24 размера типа georgia и определёнными вами кнопками, с координатами левого верхнего угла (30, 30),&lt;br /&gt;
 с шириной 400 пикселов и высотой 500 пикселов, и с выравнивание текста внутри поля по центру. &lt;br /&gt;
 Внутри кнопок текст так же будет выровнен по центру.&lt;br /&gt;
&lt;br /&gt;
===Меню и инвентарь===&lt;br /&gt;
&lt;br /&gt;
Параметры меню описываются внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039;. И системное меню, и меню инвентаря имеют единый стиль, т.е. цвета и шрифт для них одинаковые.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;menus&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта меню (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - FFFFFFFF) &lt;br /&gt;
*&#039;&#039;&#039;bordercolor&#039;&#039;&#039; - цвет рамки (по умолчанию - FFA0A0A0)&lt;br /&gt;
*&#039;&#039;&#039;textcolor&#039;&#039;&#039; - цвет текста пунктов меню (по умолчанию - FF000000)&lt;br /&gt;
*&#039;&#039;&#039;selectioncolor&#039;&#039;&#039; - цвет фона выделенного пункта меню (по умолчанию - FF0000A0)&lt;br /&gt;
*&#039;&#039;&#039;selectedcolor&#039;&#039;&#039; - цвет текста выделенного пункта меню (по умолчанию - FFFFFFFF)&lt;br /&gt;
*&#039;&#039;&#039;disabledcolor&#039;&#039;&#039; - цвет текста неактивного пункта меню (по умолчанию - FFC0C0C0)&lt;br /&gt;
*&#039;&#039;&#039;hindent&#039;&#039;&#039; - отступ в пикселях слева и справа от текста до рамки (по умолчанию - 2)&lt;br /&gt;
*&#039;&#039;&#039;vindent&#039;&#039;&#039; - отступ сверху и снизу от текста до следующего пункта меню в пикселях (по умолчанию - 2)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Лучше всего понять, к чему относятся те или иные параметры можно, взглянув на рисунок:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Menu schema.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;myfont&amp;quot; bgcolor=&amp;quot;FFFFFFFF&amp;quot; bordercolor=&amp;quot;FFA0A0A0&amp;quot; textcolor=&amp;quot;FF000000&amp;quot; selectioncolor=&amp;quot;FF0000A0&amp;quot; selectedcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FFC0C0C0&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
        &#039;&#039;&#039;hindent=&amp;quot;2&amp;quot; vindent=&amp;quot;2&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Кнопки системного меню и инвентаря====&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039; могут располагаться теги &#039;&#039;&#039;sysbutton&#039;&#039;&#039; и &#039;&#039;&#039;invbutton&#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;tex&#039;&#039;&#039; - имя  ресурса текстуры, на которой нарисованы глифы кнопки (всего их должно быть четыре - нормальная, неактивная, выделенная и нажатая) &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла первого глифа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота кнопки&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты кнопки в окне FireURQ&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;300&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;500&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;400&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Позиция меню на экране====&lt;br /&gt;
&lt;br /&gt;
Если определены кнопки для системного меню и инвентаря, то FireURQ использует специальный алгоритм, чтобы определить как и в каком месте должны раскрываться соответствующие меню. Например, если кнопка системного меню сделана в правом нижнем углу окна, то системное меню будет раскрываться над этой кнопкой с привязкой за правый нижний угол.&lt;br /&gt;
&lt;br /&gt;
Если кнопки не определены, то системное меню будет открываться в левом верхнем углу окна, а инвентарь - в правом верхнем.&lt;br /&gt;
&lt;br /&gt;
Однако, есть возможность жёстко задать координаты, где будет открываться то или иное меню. Так сделано, например, в стандартном скине. Это возможно с помощью тегов &#039;&#039;&#039;sysmenu&#039;&#039;&#039; и &#039;&#039;&#039;invmenu&#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;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты одного из углов меню в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;datum&#039;&#039;&#039; - указание на то, за какой, собственно, угол меню осуществляется привязка. Возможны четыре значения - &#039;&#039;&#039;lt&#039;&#039;&#039; (по умолчанию), &#039;&#039;&#039;lb&#039;&#039;&#039;, &#039;&#039;&#039;rt&#039;&#039;&#039; и &#039;&#039;&#039;rb&#039;&#039;&#039;. Левый верхний, левый нижний, правый верхний и правый нижний. Привязка влияет на то, как будет открываться меню. Например, если для меню указал параметр &#039;&#039;&#039;lb&#039;&#039;&#039;, то оно будет открываться &amp;quot;вверх&amp;quot; и &amp;quot;вправо&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&#039;&#039;&#039; Системное меню будет открываться в левом верхнем углу экрана&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;800&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&#039;&#039;&#039; Инвентарь будет открываться в правом верхнем углу экрана, &lt;br /&gt;
                                                 если ширина окна игры равна 800 пикселей (по умолчанию).&lt;br /&gt;
&lt;br /&gt;
===Иконки состояний===&lt;br /&gt;
&lt;br /&gt;
Иконки состояний - это мигающие изображения, появляющиеся в особые моменты игры. Все описания иконок состояний размещаются внутри тега &#039;&#039;&#039;icons&#039;&#039;&#039;, который в свою очередь размещается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. При этом существуют три типа этих иконок, описывамых в тегах &#039;&#039;&#039;timer&#039;&#039;&#039; (иконка ожидания, появляется при команде &#039;&#039;pause&#039;&#039;), &#039;&#039;&#039;anykey&#039;&#039;&#039; (когда игра ждёт нажатия клавиши) и &#039;&#039;&#039;scroll&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисована иконка&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла иконки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;
Все иконки всегда появляются на экране на одном месте - в правом нижнем углу текстового поля.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;scroll tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;timer tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;anykey tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;/icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  Этот код будет выводить одну и ту же иконку из ресурса &#039;&#039;&#039;res&#039;&#039;&#039; для всех состояний.&lt;br /&gt;
&lt;br /&gt;
===Украшения===&lt;br /&gt;
&lt;br /&gt;
Существует возможность задать в скине изображения, которые являются частью оформления скина и всегда находятся на экране. Все элементы оформления помещаются внутри тега &#039;&#039;&#039;decorations&#039;&#039;&#039; и определяются тегом &#039;&#039;&#039;image&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисовано изображение  &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла изображения на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота изображения&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты изображения в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;flipx&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по вертикальной оси (по умолчанию 0)&lt;br /&gt;
*&#039;&#039;&#039;flipy&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по горизонтальной оси (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
Параметры &#039;&#039;&#039;flipx&#039;&#039;&#039; и &#039;&#039;&#039;flipy&#039;&#039;&#039; удобно использовать, когда элементы оформления являются зеркальным отражением друг друга. В этом случае можно создать на текстуре одно изображение и разместить его в окне FireURQ, переворачивая по-всякому, чтобы добиться симметричного рисунка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&#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;
Если же вы хотите сделать своей игре бэкграунд, то стоит использовать возможности декораторов в файле игры, а не в файле скина.&lt;br /&gt;
И всё же украшения в скинах очень подойдут для элементов оформления, которые по замыслу всегда должны быть на экране игры - &lt;br /&gt;
вроде рамки для окна игры или каких-нибудь иконок.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[FireURQ:Скинование Дат-Навирэ]]&lt;br /&gt;
* Собственно для чего эта документация [[FireURQ]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17006</id>
		<title>FireURQ:Скины</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=17006"/>
		<updated>2017-07-05T13:24:10Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Общие сведения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Скин игры - это такой файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста.&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; Изменение внешнего вида интерпретатора - это тема повышенной сложности. Поэтому, если вы сомневаетесь, нужны ли вам скины в вашей игре - они вам не нужны.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того, чтобы понимать, о чём будет идти речь в данном разделе, нужно хорошо представлять себе, что такое язык разметки XML.&lt;br /&gt;
&lt;br /&gt;
==Общие сведения==&lt;br /&gt;
&lt;br /&gt;
Файл описания скина представляет собой файл в формате XML с именем &#039;&#039;&#039;skin.xml&#039;&#039;&#039;, лежащий в папке с игрой. Если ваша игра упакована в файл с расширением QSZ, то скин и все его ресурсы должны помещаться внутри архива.&lt;br /&gt;
&lt;br /&gt;
Вот, для примера, как выглядит скин FireURQ по умолчанию (который загружается тогда, когда скин игры не определён):&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;furq_texture.png&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane left=&amp;quot;20&amp;quot; top=&amp;quot;55&amp;quot; width=&amp;quot;760&amp;quot; height=&amp;quot;525&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;106&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;20&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;424&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;130&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;671&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;780&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;47&amp;quot; width=&amp;quot;566&amp;quot; height=&amp;quot;17&amp;quot; posx=&amp;quot;105&amp;quot; posy=&amp;quot;29&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А это скин из демо для FireURQ 1.3:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;demo_tex.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;btnfont&amp;quot; file=&amp;quot;buttons_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;mnufont&amp;quot; file=&amp;quot;menu_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;buttonframe name=&amp;quot;tbuttons&amp;quot; tex=&amp;quot;res&amp;quot; font=&amp;quot;btnfont&amp;quot; texx=&amp;quot;0&amp;quot; texy=&amp;quot;210&amp;quot; width=&amp;quot;109&amp;quot; height=&amp;quot;55&amp;quot; leftw=&amp;quot;31&amp;quot; midw=&amp;quot;10&amp;quot; cnormal=&amp;quot;FF94cddb&amp;quot; cfocused=&amp;quot;FFFFFFFF&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;splash bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;  &lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;55&amp;quot; left=&amp;quot;255&amp;quot; width=&amp;quot;555&amp;quot; height=&amp;quot;615&amp;quot; btnalign=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;mnufont&amp;quot; bgcolor=&amp;quot;c01c79ae&amp;quot; bordercolor=&amp;quot;ff60c5ff&amp;quot; vindent=&amp;quot;1&amp;quot; textcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FF818181&amp;quot; selectioncolor=&amp;quot;E0003f95&amp;quot;&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;341&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;55&amp;quot; height=&amp;quot;55&amp;quot; posx=&amp;quot;959&amp;quot; posy=&amp;quot;703&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;342&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;708&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;60&amp;quot; posy=&amp;quot;720&amp;quot; datum=&amp;quot;lb&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;285&amp;quot; width=&amp;quot;1024&amp;quot; height=&amp;quot;257&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;511&amp;quot; posz=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видно, первой должна идти строчка, определяющая формат XML-документа:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А все данные собственно скина размещаются в тегах внутри корневого тега skin:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;...&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;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;&lt;br /&gt;
*Названия тегов и параметров чувствительны к регистру.&lt;br /&gt;
*Стоит принять во внимание, что интерфейс игры без скина и с пустым скином (в котором есть только тег &#039;&#039;&#039;skin&#039;&#039;&#039;, но внутри него ничего нет) будут отличаться. В первом случае будет загружен скин по умолчанию. Во втором - никакого скина загружено не будет и FireURQ сама создаст минимально возможный для игры интерфейс, используя значения по умолчанию, зашитые в программу.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройки экрана==&lt;br /&gt;
&lt;br /&gt;
Можно задать размер окна FireURQ с помощью тега &#039;&#039;&#039;screen&#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;width&#039;&#039;&#039; - ширина окна (по умолчанию 800)&lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039; - высота окна (по умолчанию 600)&lt;br /&gt;
*&#039;&#039;&#039;fullscreen&#039;&#039;&#039; - если равна 1, то FireURQ запустится сразу в полноэкранном режиме (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; fullscreen=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
FireURQ установит размер окна в 1024х768 и запустится в полноэкранном режиме.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что хотя размер окна можно задать хоть 628х315, но если вы установите размер, не поддерживаемый видеокартой и монитором, то FireURQ не сможет запуститься в полноэкранном режиме!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ресурсы==&lt;br /&gt;
&lt;br /&gt;
Ресурсы - это текстуры, шрифты и заранее определённые рамки для кнопок, которые используются при оформлении скина. Каждому ресурсу присваивается имя, на которое потом ссылаются другие структуры данных, описывающие скин. Все ресурсы помещаются внутри тега &#039;&#039;&#039;resources&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Текстуры===&lt;br /&gt;
&lt;br /&gt;
Ресурс текстуры описывается тегом texture.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл текстуры (изображение JPEG, TGA или PNG).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что многие из элементов управления (кнопки, например) должны иметь прозрачные элементы для того, чтобы смотреться хорошо. Прозрачность поддерживается только для 24-битных PNG и TGA.&lt;br /&gt;
&lt;br /&gt;
===Шрифты===&lt;br /&gt;
&lt;br /&gt;
Ресурс шрифта описывается тегом &#039;&#039;&#039;font&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл шрифта, подготовленного программой fonted из поставки FireURQ, или шрифт TrueType&lt;br /&gt;
&lt;br /&gt;
===Рамки кнопок===&lt;br /&gt;
&lt;br /&gt;
Рамка кнопок описывает оформление кнопки с текстом внутри. В настоящий момент данный ресурс используется только для оформления кнопок перехода между локациями, но не исключено, что в будущем он будет использоваться для чего-то ещё (например, кастомных кнопок внутри квеста). Ресурс рамки кнопок описывается тегом &#039;&#039;&#039;buttonframe&#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;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован глиф кнопки&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта, который будет использован для подписи кнопки&lt;br /&gt;
*&#039;&#039;&#039;texx&#039;&#039;&#039; и &#039;&#039;&#039;texy&#039;&#039;&#039; - координаты глифа кнопки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота глифа кнопки&lt;br /&gt;
*&#039;&#039;&#039;leftw&#039;&#039;&#039; - ширина левой &amp;quot;крышечки&amp;quot; кнопки&lt;br /&gt;
*&#039;&#039;&#039;midw&#039;&#039;&#039; - ширина средней части кнопки&lt;br /&gt;
*&#039;&#039;&#039;cnormal&#039;&#039;&#039; - цвет (в шестнадцатиричном формате) надписи в нормальном состоянии (по умолчанию - FFA0A0A0 )&lt;br /&gt;
*&#039;&#039;&#039;cdisabled&#039;&#039;&#039; - цвет надписи в неактивном состоянии (по умолчанию - FF606060 )&lt;br /&gt;
*&#039;&#039;&#039;cfocused&#039;&#039;&#039; - цвет надписи при наведении мыши/перемещении фокуса (по умолчанию - FFA0A0FF )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
На текстуре должны быть расположены справа налево три глифа - для каждого из состояний кнопки (обычное, неактивное и сфокусированное). Разные параметры этого ресурса легче всего проиллюстрировать на картинке (это то, как определена рамка кнопок на текстуре по умолчанию, изображение увеличено):&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Btn schema.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Интерфейс сохранения/загрузки. ==&lt;br /&gt;
&lt;br /&gt;
Описывается тегом &#039;&#039;&#039;saveload&#039;&#039;&#039; и располагается в главном элементе &#039;&#039;&#039;skin&#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;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captioncolor&#039;&#039;&#039; - цвет заголовка в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captionfont&#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;&amp;lt;saveload bgcolor=&amp;quot;C0000000&amp;quot; captioncolor=&amp;quot;FFFFBB4F&amp;quot; captionfont=&amp;quot;myfont&amp;quot;&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;buttons frame=&amp;quot;myframe&amp;quot; /&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;myframe&#039;&#039;&#039; не определена, то берётся системная кнопка, которая используется обычно в игре. Если &#039;&#039;&#039;myfont&#039;&#039;&#039; не определён, берётся системный шрифт. Цвета указаны те, которые берутся по умолчанию. Для кнопок, использующихся на экране сохранения/загрузки, необходимо четыре состояния: нормальное, дизабленое, выбранное и нажатое.&lt;br /&gt;
&lt;br /&gt;
Из экрана сохранения/загрузки теперь можно выйти не сохраняясь/загружаясь, а по определяемой в скине кнопке. &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;&amp;lt;saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;backbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;565&amp;quot; ty=&amp;quot;106&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;35&amp;quot; posy=&amp;quot;60&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Заставка==&lt;br /&gt;
&lt;br /&gt;
Заставка (сплеш-скрин) показывается при запуске игры. Настройки заставки помещатся в теге &#039;&#039;&#039;splash&#039;&#039;&#039;. Если тег &#039;&#039;&#039;splash&#039;&#039;&#039; отсутствует в скине, то проигрывается стандартная заставка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;splash&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шеснадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
*&#039;&#039;&#039;vcolor&#039;&#039;&#039; - цвет надписи о версии FireURQ (по умолчанию - FFEE9A00)&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;splash&#039;&#039;&#039; может помещаться тег &#039;&#039;&#039;logo&#039;&#039;&#039;, с помощью которого можно заменить логотип FireURQ на изображение чего-нибудь другого.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;logo&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован логотип&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла логотипа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;&amp;lt;splash bgcolor=&amp;quot;FF000000&amp;quot; vcolor=&amp;quot;FFEE9A00&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Основной раздел==&lt;br /&gt;
&lt;br /&gt;
Основной раздел скина, описывающий интерфейс собственно проигрывателя, располагается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. Если в скине отсутствует тег &#039;&#039;&#039;main&#039;&#039;&#039;, то создаётся интерфейс по умолчанию - чёрный фон, текстовое поле занимает почти всё окно (с небольшими отступами), кнопки меню и инвентаря отсутствуют (меню и инвентарь можно вызвать только с клавиатуры), загружаются стандартные шрифты и стандартная рамка кнопок, никаких украшений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;main&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
&lt;br /&gt;
===Текстовое поле===&lt;br /&gt;
&lt;br /&gt;
Настройки текстового поля определяются с помощью тега &#039;&#039;&#039;textpane&#039;&#039;&#039; внутри тега &#039;&#039;&#039;main&#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;font&#039;&#039;&#039; - имя ресурса шрифта текстового поля (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bframe&#039;&#039;&#039; - имя ресурса рамки (стиля) кнопок, которая будет использована для оформления кнопок действий (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;left&#039;&#039;&#039; и &#039;&#039;&#039;top&#039;&#039;&#039; - координаты левого верхнего угла текстового поля в окне FireURQ (по умолчанию - 20, 10)&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота текстового поля (по умолчанию выбираются так, чтобы правый край отставал на 20 пикселей от края окна, а нижний край - на 10 пикселов от нижнего края окна)&lt;br /&gt;
*&#039;&#039;&#039;btnalign&#039;&#039;&#039; - выравнивание кнопок (1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
*&#039;&#039;&#039;btntxtalign&#039;&#039;&#039; - выравнивание текста на кнопках (так же, 1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;textpane font=&amp;quot;georgia[24]&amp;quot; bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;30&amp;quot; left=&amp;quot;30&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;500&amp;quot; btnalign=&amp;quot;3&amp;quot; btntxtalign=&amp;quot;3&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 создаст текстовое поле с шрифтом 24 размера типа georgia и определёнными вами кнопками, с координатами левого верхнего угла (30, 30),&lt;br /&gt;
 с шириной 400 пикселов и высотой 500 пикселов, и с выравнивание текста внутри поля по центру. &lt;br /&gt;
 Внутри кнопок текст так же будет выровнен по центру.&lt;br /&gt;
&lt;br /&gt;
===Меню и инвентарь===&lt;br /&gt;
&lt;br /&gt;
Параметры меню описываются внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039;. И системное меню, и меню инвентаря имеют единый стиль, т.е. цвета и шрифт для них одинаковые.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;menus&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта меню (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - FFFFFFFF) &lt;br /&gt;
*&#039;&#039;&#039;bordercolor&#039;&#039;&#039; - цвет рамки (по умолчанию - FFA0A0A0)&lt;br /&gt;
*&#039;&#039;&#039;textcolor&#039;&#039;&#039; - цвет текста пунктов меню (по умолчанию - FF000000)&lt;br /&gt;
*&#039;&#039;&#039;selectioncolor&#039;&#039;&#039; - цвет фона выделенного пункта меню (по умолчанию - FF0000A0)&lt;br /&gt;
*&#039;&#039;&#039;selectedcolor&#039;&#039;&#039; - цвет текста выделенного пункта меню (по умолчанию - FFFFFFFF)&lt;br /&gt;
*&#039;&#039;&#039;disabledcolor&#039;&#039;&#039; - цвет текста неактивного пункта меню (по умолчанию - FFC0C0C0)&lt;br /&gt;
*&#039;&#039;&#039;hindent&#039;&#039;&#039; - отступ в пикселях слева и справа от текста до рамки (по умолчанию - 2)&lt;br /&gt;
*&#039;&#039;&#039;vindent&#039;&#039;&#039; - отступ сверху и снизу от текста до следующего пункта меню в пикселях (по умолчанию - 2)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Лучше всего понять, к чему относятся те или иные параметры можно, взглянув на рисунок:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Menu schema.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;myfont&amp;quot; bgcolor=&amp;quot;FFFFFFFF&amp;quot; bordercolor=&amp;quot;FFA0A0A0&amp;quot; textcolor=&amp;quot;FF000000&amp;quot; selectioncolor=&amp;quot;FF0000A0&amp;quot; selectedcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FFC0C0C0&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
        &#039;&#039;&#039;hindent=&amp;quot;2&amp;quot; vindent=&amp;quot;2&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Кнопки системного меню и инвентаря====&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039; могут располагаться теги &#039;&#039;&#039;sysbutton&#039;&#039;&#039; и &#039;&#039;&#039;invbutton&#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;tex&#039;&#039;&#039; - имя  ресурса текстуры, на которой нарисованы глифы кнопки (всего их должно быть четыре - нормальная, неактивная, выделенная и нажатая) &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла первого глифа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота кнопки&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты кнопки в окне FireURQ&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;300&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;500&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;400&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Позиция меню на экране====&lt;br /&gt;
&lt;br /&gt;
Если определены кнопки для системного меню и инвентаря, то FireURQ использует специальный алгоритм, чтобы определить как и в каком месте должны раскрываться соответствующие меню. Например, если кнопка системного меню сделана в правом нижнем углу окна, то системное меню будет раскрываться над этой кнопкой с привязкой за правый нижний угол.&lt;br /&gt;
&lt;br /&gt;
Если кнопки не определены, то системное меню будет открываться в левом верхнем углу окна, а инвентарь - в правом верхнем.&lt;br /&gt;
&lt;br /&gt;
Однако, есть возможность жёстко задать координаты, где будет открываться то или иное меню. Так сделано, например, в стандартном скине. Это возможно с помощью тегов &#039;&#039;&#039;sysmenu&#039;&#039;&#039; и &#039;&#039;&#039;invmenu&#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;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты одного из углов меню в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;datum&#039;&#039;&#039; - указание на то, за какой, собственно, угол меню осуществляется привязка. Возможны четыре значения - &#039;&#039;&#039;lt&#039;&#039;&#039; (по умолчанию), &#039;&#039;&#039;lb&#039;&#039;&#039;, &#039;&#039;&#039;rt&#039;&#039;&#039; и &#039;&#039;&#039;rb&#039;&#039;&#039;. Левый верхний, левый нижний, правый верхний и правый нижний. Привязка влияет на то, как будет открываться меню. Например, если для меню указал параметр &#039;&#039;&#039;lb&#039;&#039;&#039;, то оно будет открываться &amp;quot;вверх&amp;quot; и &amp;quot;вправо&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&#039;&#039;&#039; Системное меню будет открываться в левом верхнем углу экрана&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;800&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&#039;&#039;&#039; Инвентарь будет открываться в правом верхнем углу экрана, &lt;br /&gt;
                                                 если ширина окна игры равна 800 пикселей (по умолчанию).&lt;br /&gt;
&lt;br /&gt;
===Иконки состояний===&lt;br /&gt;
&lt;br /&gt;
Иконки состояний - это мигающие изображения, появляющиеся в особые моменты игры. Все описания иконок состояний размещаются внутри тега &#039;&#039;&#039;icons&#039;&#039;&#039;, который в свою очередь размещается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. При этом существуют три типа этих иконок, описывамых в тегах &#039;&#039;&#039;timer&#039;&#039;&#039; (иконка ожидания, появляется при команде &#039;&#039;pause&#039;&#039;), &#039;&#039;&#039;anykey&#039;&#039;&#039; (когда игра ждёт нажатия клавиши) и &#039;&#039;&#039;scroll&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисована иконка&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла иконки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;
Все иконки всегда появляются на экране на одном месте - в правом нижнем углу текстового поля.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;scroll tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;timer tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;anykey tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;/icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  Этот код будет выводить одну и ту же иконку из ресурса &#039;&#039;&#039;res&#039;&#039;&#039; для всех состояний.&lt;br /&gt;
&lt;br /&gt;
===Украшения===&lt;br /&gt;
&lt;br /&gt;
Существует возможность задать в скине изображения, которые являются частью оформления скина и всегда находятся на экране. Все элементы оформления помещаются внутри тега &#039;&#039;&#039;decorations&#039;&#039;&#039; и определяются тегом &#039;&#039;&#039;image&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисовано изображение  &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла изображения на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота изображения&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты изображения в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;flipx&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по вертикальной оси (по умолчанию 0)&lt;br /&gt;
*&#039;&#039;&#039;flipy&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по горизонтальной оси (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
Параметры &#039;&#039;&#039;flipx&#039;&#039;&#039; и &#039;&#039;&#039;flipy&#039;&#039;&#039; удобно использовать, когда элементы оформления являются зеркальным отражением друг друга. В этом случае можно создать на текстуре одно изображение и разместить его в окне FireURQ, переворачивая по-всякому, чтобы добиться симметричного рисунка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&#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;
Если же вы хотите сделать своей игре бэкграунд, то стоит использовать возможности декораторов в файле игры, а не в файле скина.&lt;br /&gt;
И всё же украшения в скинах очень подойдут для элементов оформления, которые по замыслу всегда должны быть на экране игры - &lt;br /&gt;
вроде рамки для окна игры или каких-нибудь иконок.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[FireURQ:Скинование Дат-Навирэ]]&lt;br /&gt;
* Собственно для чего эта документация [[FireURQ]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</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=17005</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=17005"/>
		<updated>2017-07-05T13:22:08Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Переменные декораторов */&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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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. Для декоратора типа TEXTBUTTON данная переменная выровняет название кнопки согласно установленному значению. &lt;br /&gt;
*&#039;&#039;&#039;decor_имя_width&#039;&#039;&#039; – возвращает ширину декоратора (масштабируется по ширине текста в нём), устанавливает ширину текстового декоратора, по которой текст будет переноситься на другую строку (только для типа &#039;&#039;&#039;TEXT&#039;&#039;&#039;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль. Для декоратора типа TEXTBUTTON данная переменная установит ширину кнопки независимо от ширины текста в ней (по умолчанию ширина кнопки равна ширине текста).&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
Так же с версии 2.2 в FireURQ появилась возможность менять базовое имя файла сейва. &lt;br /&gt;
Переменная &#039;&#039;&#039;savebasename&#039;&#039;&#039; хранит это имя. По умолчанию переменная содержит название файла игры. &lt;br /&gt;
Если значение поменять на &#039;&#039;&#039;«profile1»&#039;&#039;&#039;, то файлы сохранений будут называться &#039;&#039;&#039;profile1.s01&#039;&#039;&#039;, &#039;&#039;&#039;profile1.s02&#039;&#039;&#039; и т.д.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&lt;br /&gt;
Если использовались слоты сохранений, то данная команда вызовет интерфейс выбора из слотов. Если же сохранение было системным, то просто загрузит игру.&lt;br /&gt;
&lt;br /&gt;
C версии &#039;&#039;&#039;FireURQ 2.2&#039;&#039;&#039; появилась возможность загружать сохранения непосредственно из слотов, не вызывая меню &amp;quot;Загрузить сохранение&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если написать &#039;&#039;&#039;LOAD 1&#039;&#039;&#039;, то будет загружено сохранение из первого слота. &#039;&#039;&#039;LOAD 0&#039;&#039;&#039; загрузит игру из слота автосохранения.&lt;br /&gt;
&lt;br /&gt;
==Перманентное хранилище данных==&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 2.2 FireURQ обзавелась перманентным хранилищем данных. &lt;br /&gt;
Это переменные, которые не удаляются при &#039;&#039;&#039;perkill&#039;&#039;&#039; или перезапуске игры, автоматически подгружаются и, при их изменении, так же автоматически сохраняются в специальном файле. &lt;br /&gt;
&lt;br /&gt;
Любая переменная, начинающаяся на &#039;&#039;&#039;gss_&#039;&#039;&#039; будет считаться перманентной. &lt;br /&gt;
&lt;br /&gt;
Это позволит хранить глобальные настройки, которые не должны изменяться при перезапуске игры, а так же делать достижения и даже переносить параметры из игры в игру.&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;gsskill&#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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</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=17004</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=17004"/>
		<updated>2017-07-05T13:18:02Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Сохранение игры и оператор SAVE */&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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
Так же с версии 2.2 в FireURQ появилась возможность менять базовое имя файла сейва. &lt;br /&gt;
Переменная &#039;&#039;&#039;savebasename&#039;&#039;&#039; хранит это имя. По умолчанию переменная содержит название файла игры. &lt;br /&gt;
Если значение поменять на &#039;&#039;&#039;«profile1»&#039;&#039;&#039;, то файлы сохранений будут называться &#039;&#039;&#039;profile1.s01&#039;&#039;&#039;, &#039;&#039;&#039;profile1.s02&#039;&#039;&#039; и т.д.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&lt;br /&gt;
Если использовались слоты сохранений, то данная команда вызовет интерфейс выбора из слотов. Если же сохранение было системным, то просто загрузит игру.&lt;br /&gt;
&lt;br /&gt;
C версии &#039;&#039;&#039;FireURQ 2.2&#039;&#039;&#039; появилась возможность загружать сохранения непосредственно из слотов, не вызывая меню &amp;quot;Загрузить сохранение&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если написать &#039;&#039;&#039;LOAD 1&#039;&#039;&#039;, то будет загружено сохранение из первого слота. &#039;&#039;&#039;LOAD 0&#039;&#039;&#039; загрузит игру из слота автосохранения.&lt;br /&gt;
&lt;br /&gt;
==Перманентное хранилище данных==&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 2.2 FireURQ обзавелась перманентным хранилищем данных. &lt;br /&gt;
Это переменные, которые не удаляются при &#039;&#039;&#039;perkill&#039;&#039;&#039; или перезапуске игры, автоматически подгружаются и, при их изменении, так же автоматически сохраняются в специальном файле. &lt;br /&gt;
&lt;br /&gt;
Любая переменная, начинающаяся на &#039;&#039;&#039;gss_&#039;&#039;&#039; будет считаться перманентной. &lt;br /&gt;
&lt;br /&gt;
Это позволит хранить глобальные настройки, которые не должны изменяться при перезапуске игры, а так же делать достижения и даже переносить параметры из игры в игру.&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;gsskill&#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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</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=17003</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=17003"/>
		<updated>2017-07-05T13:14:06Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Перманентное хранилище данных */&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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&lt;br /&gt;
Если использовались слоты сохранений, то данная команда вызовет интерфейс выбора из слотов. Если же сохранение было системным, то просто загрузит игру.&lt;br /&gt;
&lt;br /&gt;
C версии &#039;&#039;&#039;FireURQ 2.2&#039;&#039;&#039; появилась возможность загружать сохранения непосредственно из слотов, не вызывая меню &amp;quot;Загрузить сохранение&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если написать &#039;&#039;&#039;LOAD 1&#039;&#039;&#039;, то будет загружено сохранение из первого слота. &#039;&#039;&#039;LOAD 0&#039;&#039;&#039; загрузит игру из слота автосохранения.&lt;br /&gt;
&lt;br /&gt;
==Перманентное хранилище данных==&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 2.2 FireURQ обзавелась перманентным хранилищем данных. &lt;br /&gt;
Это переменные, которые не удаляются при &#039;&#039;&#039;perkill&#039;&#039;&#039; или перезапуске игры, автоматически подгружаются и, при их изменении, так же автоматически сохраняются в специальном файле. &lt;br /&gt;
&lt;br /&gt;
Любая переменная, начинающаяся на &#039;&#039;&#039;gss_&#039;&#039;&#039; будет считаться перманентной. &lt;br /&gt;
&lt;br /&gt;
Это позволит хранить глобальные настройки, которые не должны изменяться при перезапуске игры, а так же делать достижения и даже переносить параметры из игры в игру.&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;gsskill&#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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</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=17002</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=17002"/>
		<updated>2017-07-05T13:13:05Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: &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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&lt;br /&gt;
Если использовались слоты сохранений, то данная команда вызовет интерфейс выбора из слотов. Если же сохранение было системным, то просто загрузит игру.&lt;br /&gt;
&lt;br /&gt;
C версии &#039;&#039;&#039;FireURQ 2.2&#039;&#039;&#039; появилась возможность загружать сохранения непосредственно из слотов, не вызывая меню &amp;quot;Загрузить сохранение&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если написать &#039;&#039;&#039;LOAD 1&#039;&#039;&#039;, то будет загружено сохранение из первого слота. &#039;&#039;&#039;LOAD 0&#039;&#039;&#039; загрузит игру из слота автосохранения.&lt;br /&gt;
&lt;br /&gt;
==Перманентное хранилище данных==&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 2.2 FireURQ обзавелась перманентным хранилищем данных. &lt;br /&gt;
Это переменные, которые не удаляются при &#039;&#039;&#039;perkill&#039;&#039;&#039; или перезапуске игры, автоматически подгружаются и, при их изменении, так же автоматически сохраняются в специальном файле. &lt;br /&gt;
&lt;br /&gt;
Любая переменная, начинающаяся на &#039;&#039;&#039;gss_&#039;&#039;&#039; будет считаться перманентной. &lt;br /&gt;
&lt;br /&gt;
Это позволит хранить глобальные настройки, которые не должны изменяться при перезапуске игры, а так же делать достижения и даже переносить параметры из игры в игру.&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;gsskill&#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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=17001</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=17001"/>
		<updated>2017-07-05T12:58:29Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Команда forget_procs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
Все используемые игрой шрифты должны лежать в папке с игрой, либо архиве QSZ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; имеет встроенные шрифты с засечками (serif) и без засечек (sans) во всех начертаниях — полужирном (bold), наклонном (italic) и полужирном наклонном (bold-italic). &lt;br /&gt;
&lt;br /&gt;
Чтобы использовать эти шрифты в игре, достаточно написать &#039;&#039;&#039;textfont = «serif-italic[25]»&#039;&#039;&#039; и у вас будет наклонный шрифт 25-го размера с засечками.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Часто из метки вызванной с помощью &#039;&#039;&#039;proc&#039;&#039;&#039; ведёт вызов &#039;&#039;&#039;goto&#039;&#039;&#039; и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор &#039;&#039;&#039;forget_procs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
=Функции=&lt;br /&gt;
&lt;br /&gt;
==Случайное значение Rnd==&lt;br /&gt;
&lt;br /&gt;
Иногда полезно - особенно, если не злоупотреблять этим, ввести в квест элемент случайности, непредсказуемости. Именно для этого был введен механизм случайности: Rnd[x] - системная переменная (только для чтения) которая при пустом значении x хранит в себе случайное значение от 0 до 1, включая 1, а при целом x  (к примеру, X=6) выдает выдает целые значения (от 1 до 6  включительно в нашем случае). При каждом обращении к переменной она принимает другое значение. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай1 = rnd&#039;&#039;&#039;  ;В результате переменная случай1 равна, например, 0.78&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай2 = rnd4&#039;&#039;&#039;  ;В результате переменная случай2 равна, например, 3&lt;br /&gt;
&lt;br /&gt;
==Ввод текста INPUT==&lt;br /&gt;
&lt;br /&gt;
В урке есть возможность ввести строку, значение которой будет потом присвоено указанной переменной. &lt;br /&gt;
&lt;br /&gt;
При необходимости ввести с клавиатуры русский текст через оператор &#039;&#039;&#039;input&#039;&#039;&#039; в строковую переменную ее следует предварительно объявить выражением:&lt;br /&gt;
 &#039;&#039;&#039;строка = &amp;quot;&amp;quot;&#039;&#039;&#039;; Данное выражение создает строковую переменную нулевой длины.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln Введите строку: &amp;amp; input строка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 На экране мы увидим:&lt;br /&gt;
 &#039;&#039;&#039;Введите строку:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Команда forget_procs==&lt;br /&gt;
&lt;br /&gt;
В URQL есть нюанс - если мы используем &#039;&#039;&#039;goto метка&#039;&#039;&#039; из локации вызванной по &#039;&#039;&#039;proc&#039;&#039;&#039;, то история вызовов не забывается.&lt;br /&gt;
Но есть команда &#039;&#039;&#039;forget_procs&#039;&#039;&#039;, которая позволяет это исправить.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующий код:&lt;br /&gt;
&lt;br /&gt;
  :пример&lt;br /&gt;
  pln Выводим текст 1&lt;br /&gt;
  proc выход1&lt;br /&gt;
  pln Выводим текст 2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  :выход1&lt;br /&gt;
  goto выход2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  :выход2&lt;br /&gt;
  forget_procs ; вставляем для того, чтобы забыть предыдущие действия&lt;br /&gt;
  pln Выводим текст 3&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Без команды &#039;&#039;&#039;forget_procs&#039;&#039;&#039; мы увидим на экране&lt;br /&gt;
&lt;br /&gt;
  Выводим текст 1&lt;br /&gt;
  Выводим текст 3&lt;br /&gt;
  Выводим текст 2&lt;br /&gt;
&lt;br /&gt;
Если же мы используем эту команду, то на экране появится:&lt;br /&gt;
&lt;br /&gt;
  Выводим текст 1&lt;br /&gt;
  Выводим текст 3&lt;br /&gt;
&lt;br /&gt;
что чаще всего и нужно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=16999</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=16999"/>
		<updated>2017-07-05T12:56:21Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Команда forget_procs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
Все используемые игрой шрифты должны лежать в папке с игрой, либо архиве QSZ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; имеет встроенные шрифты с засечками (serif) и без засечек (sans) во всех начертаниях — полужирном (bold), наклонном (italic) и полужирном наклонном (bold-italic). &lt;br /&gt;
&lt;br /&gt;
Чтобы использовать эти шрифты в игре, достаточно написать &#039;&#039;&#039;textfont = «serif-italic[25]»&#039;&#039;&#039; и у вас будет наклонный шрифт 25-го размера с засечками.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Часто из метки вызванной с помощью &#039;&#039;&#039;proc&#039;&#039;&#039; ведёт вызов &#039;&#039;&#039;goto&#039;&#039;&#039; и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор &#039;&#039;&#039;forget_procs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
=Функции=&lt;br /&gt;
&lt;br /&gt;
==Случайное значение Rnd==&lt;br /&gt;
&lt;br /&gt;
Иногда полезно - особенно, если не злоупотреблять этим, ввести в квест элемент случайности, непредсказуемости. Именно для этого был введен механизм случайности: Rnd[x] - системная переменная (только для чтения) которая при пустом значении x хранит в себе случайное значение от 0 до 1, включая 1, а при целом x  (к примеру, X=6) выдает выдает целые значения (от 1 до 6  включительно в нашем случае). При каждом обращении к переменной она принимает другое значение. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай1 = rnd&#039;&#039;&#039;  ;В результате переменная случай1 равна, например, 0.78&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай2 = rnd4&#039;&#039;&#039;  ;В результате переменная случай2 равна, например, 3&lt;br /&gt;
&lt;br /&gt;
==Ввод текста INPUT==&lt;br /&gt;
&lt;br /&gt;
В урке есть возможность ввести строку, значение которой будет потом присвоено указанной переменной. &lt;br /&gt;
&lt;br /&gt;
При необходимости ввести с клавиатуры русский текст через оператор &#039;&#039;&#039;input&#039;&#039;&#039; в строковую переменную ее следует предварительно объявить выражением:&lt;br /&gt;
 &#039;&#039;&#039;строка = &amp;quot;&amp;quot;&#039;&#039;&#039;; Данное выражение создает строковую переменную нулевой длины.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln Введите строку: &amp;amp; input строка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 На экране мы увидим:&lt;br /&gt;
 &#039;&#039;&#039;Введите строку:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Команда forget_procs==&lt;br /&gt;
&lt;br /&gt;
В URQL есть нюанс - если мы используем &#039;&#039;&#039;goto метка&#039;&#039;&#039; из локации вызванной по &#039;&#039;&#039;proc&#039;&#039;&#039;, то история вызовов не забывается.&lt;br /&gt;
Но есть команда &#039;&#039;&#039;forget_procs&#039;&#039;&#039;, которая позволяет это исправить.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующий код:&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;:пример&lt;br /&gt;
  pln Выводим текст 1&lt;br /&gt;
  proc выход1&lt;br /&gt;
  pln Выводим текст 2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  :выход1&lt;br /&gt;
  goto выход2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  :выход2&lt;br /&gt;
  forget_procs ; вставляем для того, чтобы забыть предыдущие действия&lt;br /&gt;
  pln Выводим текст 3&lt;br /&gt;
  end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Без команды &#039;&#039;&#039;forget_procs&#039;&#039;&#039; мы увидим на экране&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;Выводим текст 1&lt;br /&gt;
  Выводим текст 3&lt;br /&gt;
  Выводим текст 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если же мы используем эту команду, то на экране появится:&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;Выводим текст 1&lt;br /&gt;
  Выводим текст 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
что чаще всего и нужно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=16998</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=16998"/>
		<updated>2017-07-05T12:50:55Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Команда forget_procs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
Все используемые игрой шрифты должны лежать в папке с игрой, либо архиве QSZ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; имеет встроенные шрифты с засечками (serif) и без засечек (sans) во всех начертаниях — полужирном (bold), наклонном (italic) и полужирном наклонном (bold-italic). &lt;br /&gt;
&lt;br /&gt;
Чтобы использовать эти шрифты в игре, достаточно написать &#039;&#039;&#039;textfont = «serif-italic[25]»&#039;&#039;&#039; и у вас будет наклонный шрифт 25-го размера с засечками.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Часто из метки вызванной с помощью &#039;&#039;&#039;proc&#039;&#039;&#039; ведёт вызов &#039;&#039;&#039;goto&#039;&#039;&#039; и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор &#039;&#039;&#039;forget_procs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
=Функции=&lt;br /&gt;
&lt;br /&gt;
==Случайное значение Rnd==&lt;br /&gt;
&lt;br /&gt;
Иногда полезно - особенно, если не злоупотреблять этим, ввести в квест элемент случайности, непредсказуемости. Именно для этого был введен механизм случайности: Rnd[x] - системная переменная (только для чтения) которая при пустом значении x хранит в себе случайное значение от 0 до 1, включая 1, а при целом x  (к примеру, X=6) выдает выдает целые значения (от 1 до 6  включительно в нашем случае). При каждом обращении к переменной она принимает другое значение. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай1 = rnd&#039;&#039;&#039;  ;В результате переменная случай1 равна, например, 0.78&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай2 = rnd4&#039;&#039;&#039;  ;В результате переменная случай2 равна, например, 3&lt;br /&gt;
&lt;br /&gt;
==Ввод текста INPUT==&lt;br /&gt;
&lt;br /&gt;
В урке есть возможность ввести строку, значение которой будет потом присвоено указанной переменной. &lt;br /&gt;
&lt;br /&gt;
При необходимости ввести с клавиатуры русский текст через оператор &#039;&#039;&#039;input&#039;&#039;&#039; в строковую переменную ее следует предварительно объявить выражением:&lt;br /&gt;
 &#039;&#039;&#039;строка = &amp;quot;&amp;quot;&#039;&#039;&#039;; Данное выражение создает строковую переменную нулевой длины.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln Введите строку: &amp;amp; input строка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 На экране мы увидим:&lt;br /&gt;
 &#039;&#039;&#039;Введите строку:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Команда forget_procs==&lt;br /&gt;
&lt;br /&gt;
В URQL есть нюанс - если мы используем &#039;&#039;&#039;goto метка&#039;&#039;&#039; из локации вызванной по &#039;&#039;&#039;proc&#039;&#039;&#039;, то история вызовов не забывается.&lt;br /&gt;
Но есть команда &#039;&#039;&#039;forget_procs&#039;&#039;&#039;, которая позволяет это исправить.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующий код:&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;:пример&lt;br /&gt;
  pln Выводим текст 1&lt;br /&gt;
  proc выход1&lt;br /&gt;
  pln Выводим текст 2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  :выход1&lt;br /&gt;
  goto выход2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  :выход2&lt;br /&gt;
  forget_procs ; вставляем для того, чтобы забыть предыдущие действия&lt;br /&gt;
  pln Выводим текст 3&lt;br /&gt;
  pln Выводим текст 4&lt;br /&gt;
  end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Без команды &#039;&#039;&#039;forget_procs&#039;&#039;&#039; мы увидим на экране&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;Выводим текст 1&lt;br /&gt;
  Выводим текст 3&lt;br /&gt;
  Выводим текст 4&lt;br /&gt;
  Выводим текст 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если же мы используем эту команду, то на экране появится:&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;Выводим текст 1&lt;br /&gt;
  Выводим текст 3&lt;br /&gt;
  Выводим текст 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
что чаще всего и нужно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=16997</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=16997"/>
		<updated>2017-07-05T12:50:00Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Команда forget_procs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
Все используемые игрой шрифты должны лежать в папке с игрой, либо архиве QSZ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; имеет встроенные шрифты с засечками (serif) и без засечек (sans) во всех начертаниях — полужирном (bold), наклонном (italic) и полужирном наклонном (bold-italic). &lt;br /&gt;
&lt;br /&gt;
Чтобы использовать эти шрифты в игре, достаточно написать &#039;&#039;&#039;textfont = «serif-italic[25]»&#039;&#039;&#039; и у вас будет наклонный шрифт 25-го размера с засечками.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Часто из метки вызванной с помощью &#039;&#039;&#039;proc&#039;&#039;&#039; ведёт вызов &#039;&#039;&#039;goto&#039;&#039;&#039; и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор &#039;&#039;&#039;forget_procs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
=Функции=&lt;br /&gt;
&lt;br /&gt;
==Случайное значение Rnd==&lt;br /&gt;
&lt;br /&gt;
Иногда полезно - особенно, если не злоупотреблять этим, ввести в квест элемент случайности, непредсказуемости. Именно для этого был введен механизм случайности: Rnd[x] - системная переменная (только для чтения) которая при пустом значении x хранит в себе случайное значение от 0 до 1, включая 1, а при целом x  (к примеру, X=6) выдает выдает целые значения (от 1 до 6  включительно в нашем случае). При каждом обращении к переменной она принимает другое значение. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай1 = rnd&#039;&#039;&#039;  ;В результате переменная случай1 равна, например, 0.78&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай2 = rnd4&#039;&#039;&#039;  ;В результате переменная случай2 равна, например, 3&lt;br /&gt;
&lt;br /&gt;
==Ввод текста INPUT==&lt;br /&gt;
&lt;br /&gt;
В урке есть возможность ввести строку, значение которой будет потом присвоено указанной переменной. &lt;br /&gt;
&lt;br /&gt;
При необходимости ввести с клавиатуры русский текст через оператор &#039;&#039;&#039;input&#039;&#039;&#039; в строковую переменную ее следует предварительно объявить выражением:&lt;br /&gt;
 &#039;&#039;&#039;строка = &amp;quot;&amp;quot;&#039;&#039;&#039;; Данное выражение создает строковую переменную нулевой длины.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln Введите строку: &amp;amp; input строка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 На экране мы увидим:&lt;br /&gt;
 &#039;&#039;&#039;Введите строку:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Команда forget_procs==&lt;br /&gt;
&lt;br /&gt;
В URQL есть нюанс - если мы используем &#039;&#039;&#039;goto метка&#039;&#039;&#039; из локации вызванной по &#039;&#039;&#039;proc&#039;&#039;&#039;, то история вызовов не забывается.&lt;br /&gt;
Но есть команда &#039;&#039;&#039;forget_procs&#039;&#039;&#039;, которая позволяет это исправить.&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;:пример&lt;br /&gt;
  pln Выводим текст 1&lt;br /&gt;
  proc выход1&lt;br /&gt;
  pln Выводим текст 2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  :выход1&lt;br /&gt;
  goto выход2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  :выход2&lt;br /&gt;
  forget_procs ; вставляем для того, чтобы забыть предыдущие действия&lt;br /&gt;
  pln Выводим текст 3&lt;br /&gt;
  pln Выводим текст 4&lt;br /&gt;
  end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Без команды &#039;&#039;&#039;forget_procs&#039;&#039;&#039; мы увидим на экране&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;Выводим текст 1&lt;br /&gt;
  Выводим текст 3&lt;br /&gt;
  Выводим текст 4&lt;br /&gt;
  Выводим текст 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если же мы используем эту команду, то на экране появится:&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;Выводим текст 1&lt;br /&gt;
  Выводим текст 3&lt;br /&gt;
  Выводим текст 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
что чаще всего и нужно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=16996</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=16996"/>
		<updated>2017-07-05T12:46:54Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
Все используемые игрой шрифты должны лежать в папке с игрой, либо архиве QSZ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; имеет встроенные шрифты с засечками (serif) и без засечек (sans) во всех начертаниях — полужирном (bold), наклонном (italic) и полужирном наклонном (bold-italic). &lt;br /&gt;
&lt;br /&gt;
Чтобы использовать эти шрифты в игре, достаточно написать &#039;&#039;&#039;textfont = «serif-italic[25]»&#039;&#039;&#039; и у вас будет наклонный шрифт 25-го размера с засечками.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Часто из метки вызванной с помощью &#039;&#039;&#039;proc&#039;&#039;&#039; ведёт вызов &#039;&#039;&#039;goto&#039;&#039;&#039; и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор &#039;&#039;&#039;forget_procs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
=Функции=&lt;br /&gt;
&lt;br /&gt;
==Случайное значение Rnd==&lt;br /&gt;
&lt;br /&gt;
Иногда полезно - особенно, если не злоупотреблять этим, ввести в квест элемент случайности, непредсказуемости. Именно для этого был введен механизм случайности: Rnd[x] - системная переменная (только для чтения) которая при пустом значении x хранит в себе случайное значение от 0 до 1, включая 1, а при целом x  (к примеру, X=6) выдает выдает целые значения (от 1 до 6  включительно в нашем случае). При каждом обращении к переменной она принимает другое значение. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай1 = rnd&#039;&#039;&#039;  ;В результате переменная случай1 равна, например, 0.78&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай2 = rnd4&#039;&#039;&#039;  ;В результате переменная случай2 равна, например, 3&lt;br /&gt;
&lt;br /&gt;
==Ввод текста INPUT==&lt;br /&gt;
&lt;br /&gt;
В урке есть возможность ввести строку, значение которой будет потом присвоено указанной переменной. &lt;br /&gt;
&lt;br /&gt;
При необходимости ввести с клавиатуры русский текст через оператор &#039;&#039;&#039;input&#039;&#039;&#039; в строковую переменную ее следует предварительно объявить выражением:&lt;br /&gt;
 &#039;&#039;&#039;строка = &amp;quot;&amp;quot;&#039;&#039;&#039;; Данное выражение создает строковую переменную нулевой длины.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln Введите строку: &amp;amp; input строка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 На экране мы увидим:&lt;br /&gt;
 &#039;&#039;&#039;Введите строку:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Команда forget_procs==&lt;br /&gt;
&lt;br /&gt;
В URQL есть нюанс - если мы используем &#039;&#039;&#039;goto метка&#039;&#039;&#039; из локации вызванной по &#039;&#039;proc&#039;&#039;, то история вызовов не забывается.&lt;br /&gt;
Но есть команда &#039;&#039;&#039;forget_procs&#039;&#039;&#039;, которая позволяет это исправить.&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;:пример&lt;br /&gt;
  pln Выводим текст 1&lt;br /&gt;
  proc выход1&lt;br /&gt;
  pln Выводим текст 2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  :выход1&lt;br /&gt;
  goto выход2&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  :выход2&lt;br /&gt;
  forget_procs ; вставляем для того, чтобы забыть предыдущие действия&lt;br /&gt;
  pln Выводим текст 3&lt;br /&gt;
  pln Выводим текст 4&lt;br /&gt;
  end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Без команды &#039;&#039;&#039;forget_procs&#039;&#039;&#039; мы увидим на экране&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Выводим текст 1&lt;br /&gt;
Выводим текст 3&lt;br /&gt;
Выводим текст 4&lt;br /&gt;
Выводим текст 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если же мы используем эту команду, то на экране появится:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Выводим текст 1&lt;br /&gt;
Выводим текст 3&lt;br /&gt;
Выводим текст 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
что чаще всего и нужно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</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=16956</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=16956"/>
		<updated>2017-06-29T15:20:17Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Загрузка игры через оператор LOAD */&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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&lt;br /&gt;
Если использовались слоты сохранений, то данная команда вызовет интерфейс выбора из слотов. Если же сохранение было системным, то просто загрузит игру.&lt;br /&gt;
&lt;br /&gt;
C версии &#039;&#039;&#039;FireURQ 2.2&#039;&#039;&#039; появилась возможность загружать сохранения непосредственно из слотов, не вызывая меню &amp;quot;Загрузить сохранение&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если написать &#039;&#039;&#039;LOAD 1&#039;&#039;&#039;, то будет загружено сохранение из первого слота. &#039;&#039;&#039;LOAD 0&#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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</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=16955</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=16955"/>
		<updated>2017-06-29T15:19:54Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Загрузка игры через оператор LOAD */&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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&lt;br /&gt;
Если использовались слоты сохранений, то данная команда вызовет интерфейс выбора из слотов. Если же сохранение было системным, то просто загрузит игру.&lt;br /&gt;
&lt;br /&gt;
C версии &#039;&#039;&#039;FireURQ 2.2&#039;&#039;&#039; появилась возможность загружать сохранения непосредственно из слотов, не вызывая меню &amp;quot;Загрузить сохранение&amp;quot;&lt;br /&gt;
Если написать &#039;&#039;&#039;LOAD 1&#039;&#039;&#039;, то будет загружено сохранение из первого слота. &#039;&#039;&#039;LOAD 0&#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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</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=16954</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=16954"/>
		<updated>2017-06-29T14:26:24Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Сохранение игры и оператор SAVE */&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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная &#039;&#039;&#039;save_success&#039;&#039;&#039; устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</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=16953</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=16953"/>
		<updated>2017-06-29T14:25:54Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Сохранение игры и оператор SAVE */&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://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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &lt;br /&gt;
Файлы TrueType шрифтов (.ttf) должны лежать в папке игры (в архиве &#039;&#039;&#039;QSZ&#039;&#039;&#039;). Если их там нет, то игра возьмёт системный шрифт для текста по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Фурка носит с собой шрифты стандартных начертаний с засечками (&#039;&#039;&#039;serif&#039;&#039;&#039;) и без засечек (&#039;&#039;&#039;sans&#039;&#039;&#039;) трёх начертаний- обычной, полужирной (&#039;&#039;&#039;bold&#039;&#039;&#039;) и наклонной (&#039;&#039;&#039;italic&#039;&#039;&#039;). Эти стандартные шрифты можно использовать, подставляя вместо имени файла TTF название, комбинирующее нужное начертание шрифта. Например, &lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;serif[35]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это шрифт с засечками 35-го размера. А&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;sans-bold-italic[18]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
это полужирный наклонный шрифт без засечек 18-го размера.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
При сохранении игры командой SAVE переменная save_success устанавливается в 1 при успешном сохранении и в 0, если сохранение по каким-то причинам не удалось.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=15756</id>
		<title>FireURQ:Скины</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=FireURQ:%D0%A1%D0%BA%D0%B8%D0%BD%D1%8B&amp;diff=15756"/>
		<updated>2017-03-21T12:37:13Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Интерфейс сохранения/загрузки. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Скин игры - это такой файл с описанием того, как должен выглядеть интерпретатор FireURQ при проигрывании вашего квеста.&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; Изменение внешнего вида интерпретатора - это тема повышенной сложности. Поэтому, если вы сомневаетесь, нужны ли вам скины в вашей игре - они вам не нужны.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того, чтобы понимать, о чём будет идти речь в данном разделе, нужно хорошо представлять себе, что такое язык разметки XML.&lt;br /&gt;
&lt;br /&gt;
==Общие сведения==&lt;br /&gt;
&lt;br /&gt;
Файл описания скина представляет собой файл в формате XML с именем &#039;&#039;&#039;skin.xml&#039;&#039;&#039;, лежащий в папке с игрой. Если ваша игра упакована в файл с расширением QSZ, то скин и все его ресурсы должны помещаться внутри архива.&lt;br /&gt;
&lt;br /&gt;
Вот, для примера, как выглядит скин FireURQ по умолчанию (который загружается тогда, когда скин игры не определён):&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;furq_texture.png&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane left=&amp;quot;20&amp;quot; top=&amp;quot;55&amp;quot; width=&amp;quot;760&amp;quot; height=&amp;quot;525&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;106&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;20&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;424&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;130&amp;quot; height=&amp;quot;46&amp;quot; posx=&amp;quot;671&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;780&amp;quot; posy=&amp;quot;42&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;47&amp;quot; width=&amp;quot;566&amp;quot; height=&amp;quot;17&amp;quot; posx=&amp;quot;105&amp;quot; posy=&amp;quot;29&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А это скин из демо для FireURQ 1.3:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;resources&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;texture name=&amp;quot;res&amp;quot; file=&amp;quot;demo_tex.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;btnfont&amp;quot; file=&amp;quot;buttons_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;font name=&amp;quot;mnufont&amp;quot; file=&amp;quot;menu_font.fnt&amp;quot; /&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;buttonframe name=&amp;quot;tbuttons&amp;quot; tex=&amp;quot;res&amp;quot; font=&amp;quot;btnfont&amp;quot; texx=&amp;quot;0&amp;quot; texy=&amp;quot;210&amp;quot; width=&amp;quot;109&amp;quot; height=&amp;quot;55&amp;quot; leftw=&amp;quot;31&amp;quot; midw=&amp;quot;10&amp;quot; cnormal=&amp;quot;FF94cddb&amp;quot; cfocused=&amp;quot;FFFFFFFF&amp;quot; /&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/resources&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;splash bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;  &lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;main bgcolor=&amp;quot;FF00042c&amp;quot;&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;textpane bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;55&amp;quot; left=&amp;quot;255&amp;quot; width=&amp;quot;555&amp;quot; height=&amp;quot;615&amp;quot; btnalign=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;mnufont&amp;quot; bgcolor=&amp;quot;c01c79ae&amp;quot; bordercolor=&amp;quot;ff60c5ff&amp;quot; vindent=&amp;quot;1&amp;quot; textcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FF818181&amp;quot; selectioncolor=&amp;quot;E0003f95&amp;quot;&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;341&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;55&amp;quot; height=&amp;quot;55&amp;quot; posx=&amp;quot;959&amp;quot; posy=&amp;quot;703&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;342&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;708&amp;quot;/&amp;gt;&lt;br /&gt;
 	&#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;60&amp;quot; posy=&amp;quot;720&amp;quot; datum=&amp;quot;lb&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;285&amp;quot; width=&amp;quot;1024&amp;quot; height=&amp;quot;257&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;511&amp;quot;/&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/main&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видно, первой должна идти строчка, определяющая формат XML-документа:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А все данные собственно скина размещаются в тегах внутри корневого тега skin:&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;skin&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;...&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/skin&amp;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;&lt;br /&gt;
*Названия тегов и параметров чувствительны к регистру.&lt;br /&gt;
*Стоит принять во внимание, что интерфейс игры без скина и с пустым скином (в котором есть только тег &#039;&#039;&#039;skin&#039;&#039;&#039;, но внутри него ничего нет) будут отличаться. В первом случае будет загружен скин по умолчанию. Во втором - никакого скина загружено не будет и FireURQ сама создаст минимально возможный для игры интерфейс, используя значения по умолчанию, зашитые в программу.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Настройки экрана==&lt;br /&gt;
&lt;br /&gt;
Можно задать размер окна FireURQ с помощью тега &#039;&#039;&#039;screen&#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;width&#039;&#039;&#039; - ширина окна (по умолчанию 800)&lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039; - высота окна (по умолчанию 600)&lt;br /&gt;
*&#039;&#039;&#039;fullscreen&#039;&#039;&#039; - если равна 1, то FireURQ запустится сразу в полноэкранном режиме (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;screen width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot; fullscreen=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
FireURQ установит размер окна в 1024х768 и запустится в полноэкранном режиме.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что хотя размер окна можно задать хоть 628х315, но если вы установите размер, не поддерживаемый видеокартой и монитором, то FireURQ не сможет запуститься в полноэкранном режиме!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ресурсы==&lt;br /&gt;
&lt;br /&gt;
Ресурсы - это текстуры, шрифты и заранее определённые рамки для кнопок, которые используются при оформлении скина. Каждому ресурсу присваивается имя, на которое потом ссылаются другие структуры данных, описывающие скин. Все ресурсы помещаются внутри тега &#039;&#039;&#039;resources&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Текстуры===&lt;br /&gt;
&lt;br /&gt;
Ресурс текстуры описывается тегом texture.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл текстуры (изображение JPEG, TGA или PNG).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Учтите, что многие из элементов управления (кнопки, например) должны иметь прозрачные элементы для того, чтобы смотреться хорошо. Прозрачность поддерживается только для 24-битных PNG и TGA.&lt;br /&gt;
&lt;br /&gt;
===Шрифты===&lt;br /&gt;
&lt;br /&gt;
Ресурс шрифта описывается тегом &#039;&#039;&#039;font&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;file&#039;&#039;&#039; - файл шрифта, подготовленного программой fonted из поставки FireURQ, или шрифт TrueType&lt;br /&gt;
&lt;br /&gt;
===Рамки кнопок===&lt;br /&gt;
&lt;br /&gt;
Рамка кнопок описывает оформление кнопки с текстом внутри. В настоящий момент данный ресурс используется только для оформления кнопок перехода между локациями, но не исключено, что в будущем он будет использоваться для чего-то ещё (например, кастомных кнопок внутри квеста). Ресурс рамки кнопок описывается тегом &#039;&#039;&#039;buttonframe&#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;name&#039;&#039;&#039; - имя ресурса&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован глиф кнопки&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта, который будет использован для подписи кнопки&lt;br /&gt;
*&#039;&#039;&#039;texx&#039;&#039;&#039; и &#039;&#039;&#039;texy&#039;&#039;&#039; - координаты глифа кнопки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота глифа кнопки&lt;br /&gt;
*&#039;&#039;&#039;leftw&#039;&#039;&#039; - ширина левой &amp;quot;крышечки&amp;quot; кнопки&lt;br /&gt;
*&#039;&#039;&#039;midw&#039;&#039;&#039; - ширина средней части кнопки&lt;br /&gt;
*&#039;&#039;&#039;cnormal&#039;&#039;&#039; - цвет (в шестнадцатиричном формате) надписи в нормальном состоянии (по умолчанию - FFA0A0A0 )&lt;br /&gt;
*&#039;&#039;&#039;cdisabled&#039;&#039;&#039; - цвет надписи в неактивном состоянии (по умолчанию - FF606060 )&lt;br /&gt;
*&#039;&#039;&#039;cfocused&#039;&#039;&#039; - цвет надписи при наведении мыши/перемещении фокуса (по умолчанию - FFA0A0FF )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
На текстуре должны быть расположены справа налево три глифа - для каждого из состояний кнопки (обычное, неактивное и сфокусированное). Разные параметры этого ресурса легче всего проиллюстрировать на картинке (это то, как определена рамка кнопок на текстуре по умолчанию, изображение увеличено):&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Btn schema.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Интерфейс сохранения/загрузки. ==&lt;br /&gt;
&lt;br /&gt;
Описывается тегом &#039;&#039;&#039;saveload&#039;&#039;&#039; и располагается в главном элементе &#039;&#039;&#039;skin&#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;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captioncolor&#039;&#039;&#039; - цвет заголовка в шестнадцатеричном формате&lt;br /&gt;
*&#039;&#039;&#039;captionfont&#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;&amp;lt;saveload bgcolor=&amp;quot;C0000000&amp;quot; captioncolor=&amp;quot;FFFFBB4F&amp;quot; captionfont=&amp;quot;myfont&amp;quot;&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;buttons frame=&amp;quot;myframe&amp;quot; /&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Если &#039;&#039;&#039;myframe&#039;&#039;&#039; не определена, то берётся системная кнопка, которая используется обычно в игре. Если &#039;&#039;&#039;myfont&#039;&#039;&#039; не определён, берётся системный шрифт. Цвета указаны те, которые берутся по умолчанию. Для кнопок, использующихся на экране сохранения/загрузки, необходимо четыре состояния: нормальное, дизабленое, выбранное и нажатое.&lt;br /&gt;
&lt;br /&gt;
Из экрана сохранения/загрузки теперь можно выйти не сохраняясь/загружаясь, а по определяемой в скине кнопке. &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;&amp;lt;saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;backbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;565&amp;quot; ty=&amp;quot;106&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;35&amp;quot; posy=&amp;quot;60&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;...&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/saveload&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Заставка==&lt;br /&gt;
&lt;br /&gt;
Заставка (сплеш-скрин) показывается при запуске игры. Настройки заставки помещатся в теге &#039;&#039;&#039;splash&#039;&#039;&#039;. Если тег &#039;&#039;&#039;splash&#039;&#039;&#039; отсутствует в скине, то проигрывается стандартная заставка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;splash&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шеснадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
*&#039;&#039;&#039;vcolor&#039;&#039;&#039; - цвет надписи о версии FireURQ (по умолчанию - FFEE9A00)&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;splash&#039;&#039;&#039; может помещаться тег &#039;&#039;&#039;logo&#039;&#039;&#039;, с помощью которого можно заменить логотип FireURQ на изображение чего-нибудь другого.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;logo&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисован логотип&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла логотипа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;&amp;lt;splash bgcolor=&amp;quot;FF000000&amp;quot; vcolor=&amp;quot;FFEE9A00&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;logo tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;307&amp;quot; height=&amp;quot;201&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/splash&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Основной раздел==&lt;br /&gt;
&lt;br /&gt;
Основной раздел скина, описывающий интерфейс собственно проигрывателя, располагается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. Если в скине отсутствует тег &#039;&#039;&#039;main&#039;&#039;&#039;, то создаётся интерфейс по умолчанию - чёрный фон, текстовое поле занимает почти всё окно (с небольшими отступами), кнопки меню и инвентаря отсутствуют (меню и инвентарь можно вызвать только с клавиатуры), загружаются стандартные шрифты и стандартная рамка кнопок, никаких украшений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;main&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - 0)&lt;br /&gt;
&lt;br /&gt;
===Текстовое поле===&lt;br /&gt;
&lt;br /&gt;
Настройки текстового поля определяются с помощью тега &#039;&#039;&#039;textpane&#039;&#039;&#039; внутри тега &#039;&#039;&#039;main&#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;font&#039;&#039;&#039; - имя ресурса шрифта текстового поля (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bframe&#039;&#039;&#039; - имя ресурса рамки (стиля) кнопок, которая будет использована для оформления кнопок действий (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;left&#039;&#039;&#039; и &#039;&#039;&#039;top&#039;&#039;&#039; - координаты левого верхнего угла текстового поля в окне FireURQ (по умолчанию - 20, 10)&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота текстового поля (по умолчанию выбираются так, чтобы правый край отставал на 20 пикселей от края окна, а нижний край - на 10 пикселов от нижнего края окна)&lt;br /&gt;
*&#039;&#039;&#039;btnalign&#039;&#039;&#039; - выравнивание кнопок (1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
*&#039;&#039;&#039;btntxtalign&#039;&#039;&#039; - выравнивание текста на кнопках (так же, 1 - по левому краю, 2 - по правому, 3 - по центру)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;textpane font=&amp;quot;georgia[24]&amp;quot; bframe=&amp;quot;tbuttons&amp;quot; top=&amp;quot;30&amp;quot; left=&amp;quot;30&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;500&amp;quot; btnalign=&amp;quot;3&amp;quot; btntxtalign=&amp;quot;3&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 создаст текстовое поле с шрифтом 24 размера типа georgia и определёнными вами кнопками, с координатами левого верхнего угла (30, 30),&lt;br /&gt;
 с шириной 400 пикселов и высотой 500 пикселов, и с выравнивание текста внутри поля по центру. &lt;br /&gt;
 Внутри кнопок текст так же будет выровнен по центру.&lt;br /&gt;
&lt;br /&gt;
===Меню и инвентарь===&lt;br /&gt;
&lt;br /&gt;
Параметры меню описываются внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039;. И системное меню, и меню инвентаря имеют единый стиль, т.е. цвета и шрифт для них одинаковые.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Параметры тега&#039;&#039;&#039;&#039;&#039; &#039;&#039;menus&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;font&#039;&#039;&#039; - имя ресурса шрифта меню (по умолчанию - как в стандартном скине)&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039; - цвет фона в шестнадцатеричном формате (по умолчанию - FFFFFFFF) &lt;br /&gt;
*&#039;&#039;&#039;bordercolor&#039;&#039;&#039; - цвет рамки (по умолчанию - FFA0A0A0)&lt;br /&gt;
*&#039;&#039;&#039;textcolor&#039;&#039;&#039; - цвет текста пунктов меню (по умолчанию - FF000000)&lt;br /&gt;
*&#039;&#039;&#039;selectioncolor&#039;&#039;&#039; - цвет фона выделенного пункта меню (по умолчанию - FF0000A0)&lt;br /&gt;
*&#039;&#039;&#039;selectedcolor&#039;&#039;&#039; - цвет текста выделенного пункта меню (по умолчанию - FFFFFFFF)&lt;br /&gt;
*&#039;&#039;&#039;disabledcolor&#039;&#039;&#039; - цвет текста неактивного пункта меню (по умолчанию - FFC0C0C0)&lt;br /&gt;
*&#039;&#039;&#039;hindent&#039;&#039;&#039; - отступ в пикселях слева и справа от текста до рамки (по умолчанию - 2)&lt;br /&gt;
*&#039;&#039;&#039;vindent&#039;&#039;&#039; - отступ сверху и снизу от текста до следующего пункта меню в пикселях (по умолчанию - 2)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Лучше всего понять, к чему относятся те или иные параметры можно, взглянув на рисунок:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Menu schema.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;menus font=&amp;quot;myfont&amp;quot; bgcolor=&amp;quot;FFFFFFFF&amp;quot; bordercolor=&amp;quot;FFA0A0A0&amp;quot; textcolor=&amp;quot;FF000000&amp;quot; selectioncolor=&amp;quot;FF0000A0&amp;quot; selectedcolor=&amp;quot;FFFFFFFF&amp;quot; disabledcolor=&amp;quot;FFC0C0C0&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
        &#039;&#039;&#039;hindent=&amp;quot;2&amp;quot; vindent=&amp;quot;2&amp;quot;&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;/menus&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Кнопки системного меню и инвентаря====&lt;br /&gt;
&lt;br /&gt;
Внутри тега &#039;&#039;&#039;menus&#039;&#039;&#039; могут располагаться теги &#039;&#039;&#039;sysbutton&#039;&#039;&#039; и &#039;&#039;&#039;invbutton&#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;tex&#039;&#039;&#039; - имя  ресурса текстуры, на которой нарисованы глифы кнопки (всего их должно быть четыре - нормальная, неактивная, выделенная и нажатая) &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла первого глифа на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота кнопки&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты кнопки в окне FireURQ&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;300&amp;quot; ty=&amp;quot;10&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot; posx=&amp;quot;500&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysbutton tex=&amp;quot;res&amp;quot; tx=&amp;quot;400&amp;quot; ty=&amp;quot;80&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Позиция меню на экране====&lt;br /&gt;
&lt;br /&gt;
Если определены кнопки для системного меню и инвентаря, то FireURQ использует специальный алгоритм, чтобы определить как и в каком месте должны раскрываться соответствующие меню. Например, если кнопка системного меню сделана в правом нижнем углу окна, то системное меню будет раскрываться над этой кнопкой с привязкой за правый нижний угол.&lt;br /&gt;
&lt;br /&gt;
Если кнопки не определены, то системное меню будет открываться в левом верхнем углу окна, а инвентарь - в правом верхнем.&lt;br /&gt;
&lt;br /&gt;
Однако, есть возможность жёстко задать координаты, где будет открываться то или иное меню. Так сделано, например, в стандартном скине. Это возможно с помощью тегов &#039;&#039;&#039;sysmenu&#039;&#039;&#039; и &#039;&#039;&#039;invmenu&#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;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты одного из углов меню в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;datum&#039;&#039;&#039; - указание на то, за какой, собственно, угол меню осуществляется привязка. Возможны четыре значения - &#039;&#039;&#039;lt&#039;&#039;&#039; (по умолчанию), &#039;&#039;&#039;lb&#039;&#039;&#039;, &#039;&#039;&#039;rt&#039;&#039;&#039; и &#039;&#039;&#039;rb&#039;&#039;&#039;. Левый верхний, левый нижний, правый верхний и правый нижний. Привязка влияет на то, как будет открываться меню. Например, если для меню указал параметр &#039;&#039;&#039;lb&#039;&#039;&#039;, то оно будет открываться &amp;quot;вверх&amp;quot; и &amp;quot;вправо&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;sysmenu posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;lt&amp;quot;/&amp;gt;&#039;&#039;&#039; Системное меню будет открываться в левом верхнем углу экрана&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;invmenu posx=&amp;quot;800&amp;quot; posy=&amp;quot;0&amp;quot; datum=&amp;quot;rt&amp;quot;/&amp;gt;&#039;&#039;&#039; Инвентарь будет открываться в правом верхнем углу экрана, &lt;br /&gt;
                                                 если ширина окна игры равна 800 пикселей (по умолчанию).&lt;br /&gt;
&lt;br /&gt;
===Иконки состояний===&lt;br /&gt;
&lt;br /&gt;
Иконки состояний - это мигающие изображения, появляющиеся в особые моменты игры. Все описания иконок состояний размещаются внутри тега &#039;&#039;&#039;icons&#039;&#039;&#039;, который в свою очередь размещается внутри тега &#039;&#039;&#039;main&#039;&#039;&#039;. При этом существуют три типа этих иконок, описывамых в тегах &#039;&#039;&#039;timer&#039;&#039;&#039; (иконка ожидания, появляется при команде &#039;&#039;pause&#039;&#039;), &#039;&#039;&#039;anykey&#039;&#039;&#039; (когда игра ждёт нажатия клавиши) и &#039;&#039;&#039;scroll&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисована иконка&lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла иконки на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#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;
Все иконки всегда появляются на экране на одном месте - в правом нижнем углу текстового поля.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;scroll tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;timer tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;anykey tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;9&amp;quot; height=&amp;quot;14&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;&amp;lt;/icons&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
  Этот код будет выводить одну и ту же иконку из ресурса &#039;&#039;&#039;res&#039;&#039;&#039; для всех состояний.&lt;br /&gt;
&lt;br /&gt;
===Украшения===&lt;br /&gt;
&lt;br /&gt;
Существует возможность задать в скине изображения, которые являются частью оформления скина и всегда находятся на экране. Все элементы оформления помещаются внутри тега &#039;&#039;&#039;decorations&#039;&#039;&#039; и определяются тегом &#039;&#039;&#039;image&#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;tex&#039;&#039;&#039; - имя ресурса текстуры, на которой нарисовано изображение  &lt;br /&gt;
*&#039;&#039;&#039;tx&#039;&#039;&#039; и &#039;&#039;&#039;ty&#039;&#039;&#039; - координаты верхнего левого угла изображения на текстуре&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039; и &#039;&#039;&#039;height&#039;&#039;&#039; - ширина и высота изображения&lt;br /&gt;
*&#039;&#039;&#039;posx&#039;&#039;&#039; и &#039;&#039;&#039;posy&#039;&#039;&#039; - координаты изображения в окне FireURQ&lt;br /&gt;
*&#039;&#039;&#039;flipx&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по вертикальной оси (по умолчанию 0)&lt;br /&gt;
*&#039;&#039;&#039;flipy&#039;&#039;&#039; - если равна 1, то изображение будет перевёрнуто по горизонтальной оси (по умолчанию 0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечания:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
Параметры &#039;&#039;&#039;flipx&#039;&#039;&#039; и &#039;&#039;&#039;flipy&#039;&#039;&#039; удобно использовать, когда элементы оформления являются зеркальным отражением друг друга. В этом случае можно создать на текстуре одно изображение и разместить его в окне FireURQ, переворачивая по-всякому, чтобы добиться симметричного рисунка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;decorations&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;image tex=&amp;quot;res&amp;quot; tx=&amp;quot;0&amp;quot; ty=&amp;quot;0&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; posx=&amp;quot;0&amp;quot; posy=&amp;quot;0&amp;quot;/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
   &#039;&#039;&#039;&amp;lt;/decorations&amp;gt;&#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;
Если же вы хотите сделать своей игре бэкграунд, то стоит использовать возможности декораторов в файле игры, а не в файле скина.&lt;br /&gt;
И всё же украшения в скинах очень подойдут для элементов оформления, которые по замыслу всегда должны быть на экране игры - &lt;br /&gt;
вроде рамки для окна игры или каких-нибудь иконок.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[FireURQ:Скинование Дат-Навирэ]]&lt;br /&gt;
* Собственно для чего эта документация [[FireURQ]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=15755</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=15755"/>
		<updated>2017-03-21T12:34:05Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Шрифт */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
Все используемые игрой шрифты должны лежать в папке с игрой, либо архиве QSZ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; имеет встроенные шрифты с засечками (serif) и без засечек (sans) во всех начертаниях — полужирном (bold), наклонном (italic) и полужирном наклонном (bold-italic). &lt;br /&gt;
&lt;br /&gt;
Чтобы использовать эти шрифты в игре, достаточно написать &#039;&#039;&#039;textfont = «serif-italic[25]»&#039;&#039;&#039; и у вас будет наклонный шрифт 25-го размера с засечками.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Часто из метки вызванной с помощью &#039;&#039;&#039;proc&#039;&#039;&#039; ведёт вызов &#039;&#039;&#039;goto&#039;&#039;&#039; и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор &#039;&#039;&#039;forget_procs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
=Функции=&lt;br /&gt;
&lt;br /&gt;
==Случайное значение Rnd==&lt;br /&gt;
&lt;br /&gt;
Иногда полезно - особенно, если не злоупотреблять этим, ввести в квест элемент случайности, непредсказуемости. Именно для этого был введен механизм случайности: Rnd[x] - системная переменная (только для чтения) которая при пустом значении x хранит в себе случайное значение от 0 до 1, включая 1, а при целом x  (к примеру, X=6) выдает выдает целые значения (от 1 до 6  включительно в нашем случае). При каждом обращении к переменной она принимает другое значение. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай1 = rnd&#039;&#039;&#039;  ;В результате переменная случай1 равна, например, 0.78&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай2 = rnd4&#039;&#039;&#039;  ;В результате переменная случай2 равна, например, 3&lt;br /&gt;
&lt;br /&gt;
==Ввод текста INPUT==&lt;br /&gt;
&lt;br /&gt;
В урке есть возможность ввести строку, значение которой будет потом присвоено указанной переменной. &lt;br /&gt;
&lt;br /&gt;
При необходимости ввести с клавиатуры русский текст через оператор &#039;&#039;&#039;input&#039;&#039;&#039; в строковую переменную ее следует предварительно объявить выражением:&lt;br /&gt;
 &#039;&#039;&#039;строка = &amp;quot;&amp;quot;&#039;&#039;&#039;; Данное выражение создает строковую переменную нулевой длины.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln Введите строку: &amp;amp; input строка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 На экране мы увидим:&lt;br /&gt;
 &#039;&#039;&#039;Введите строку:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=15754</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=15754"/>
		<updated>2017-03-21T12:33:24Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Шрифт */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
Все используемые игрой шрифты должны лежать в папке с игрой, либо архиве QSZ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; имеет встроенные шрифты с засечками (serif) и без засечек (sans) во всех начертаниях — полужирном (bold), наклонном (italic) и полужирном наклонном (bold-italic). &lt;br /&gt;
&lt;br /&gt;
Чтобы использовать эти шрифты в игре, достаточно написать &#039;&#039;&#039;textfont = «serif-italic[25]»&#039;&#039;&#039; и у вас будет наклонный шрифт 25-го размера с засечками.&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Часто из метки вызванной с помощью &#039;&#039;&#039;proc&#039;&#039;&#039; ведёт вызов &#039;&#039;&#039;goto&#039;&#039;&#039; и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор &#039;&#039;&#039;forget_procs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
=Функции=&lt;br /&gt;
&lt;br /&gt;
==Случайное значение Rnd==&lt;br /&gt;
&lt;br /&gt;
Иногда полезно - особенно, если не злоупотреблять этим, ввести в квест элемент случайности, непредсказуемости. Именно для этого был введен механизм случайности: Rnd[x] - системная переменная (только для чтения) которая при пустом значении x хранит в себе случайное значение от 0 до 1, включая 1, а при целом x  (к примеру, X=6) выдает выдает целые значения (от 1 до 6  включительно в нашем случае). При каждом обращении к переменной она принимает другое значение. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай1 = rnd&#039;&#039;&#039;  ;В результате переменная случай1 равна, например, 0.78&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай2 = rnd4&#039;&#039;&#039;  ;В результате переменная случай2 равна, например, 3&lt;br /&gt;
&lt;br /&gt;
==Ввод текста INPUT==&lt;br /&gt;
&lt;br /&gt;
В урке есть возможность ввести строку, значение которой будет потом присвоено указанной переменной. &lt;br /&gt;
&lt;br /&gt;
При необходимости ввести с клавиатуры русский текст через оператор &#039;&#039;&#039;input&#039;&#039;&#039; в строковую переменную ее следует предварительно объявить выражением:&lt;br /&gt;
 &#039;&#039;&#039;строка = &amp;quot;&amp;quot;&#039;&#039;&#039;; Данное выражение создает строковую переменную нулевой длины.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln Введите строку: &amp;amp; input строка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 На экране мы увидим:&lt;br /&gt;
 &#039;&#039;&#039;Введите строку:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=15753</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=15753"/>
		<updated>2017-03-21T12:32:52Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Шрифт */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
Все используемые игрой шрифты должны лежать в папке с игрой, либо архиве QSZ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; имеет встроенные шрифты с засечками (serif) и без засечек (sans) во всех начертаниях — полужирном (bold), наклонном (italic) и полужирном наклонном (bold-italic). &lt;br /&gt;
Чтобы использовать эти шрифты в игре, достаточно написать &#039;&#039;&#039;textfont = «serif-italic[25]»&#039;&#039;&#039; и у вас будет наклонный шрифт 25-го размера с засечками.&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Часто из метки вызванной с помощью &#039;&#039;&#039;proc&#039;&#039;&#039; ведёт вызов &#039;&#039;&#039;goto&#039;&#039;&#039; и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор &#039;&#039;&#039;forget_procs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
=Функции=&lt;br /&gt;
&lt;br /&gt;
==Случайное значение Rnd==&lt;br /&gt;
&lt;br /&gt;
Иногда полезно - особенно, если не злоупотреблять этим, ввести в квест элемент случайности, непредсказуемости. Именно для этого был введен механизм случайности: Rnd[x] - системная переменная (только для чтения) которая при пустом значении x хранит в себе случайное значение от 0 до 1, включая 1, а при целом x  (к примеру, X=6) выдает выдает целые значения (от 1 до 6  включительно в нашем случае). При каждом обращении к переменной она принимает другое значение. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай1 = rnd&#039;&#039;&#039;  ;В результате переменная случай1 равна, например, 0.78&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай2 = rnd4&#039;&#039;&#039;  ;В результате переменная случай2 равна, например, 3&lt;br /&gt;
&lt;br /&gt;
==Ввод текста INPUT==&lt;br /&gt;
&lt;br /&gt;
В урке есть возможность ввести строку, значение которой будет потом присвоено указанной переменной. &lt;br /&gt;
&lt;br /&gt;
При необходимости ввести с клавиатуры русский текст через оператор &#039;&#039;&#039;input&#039;&#039;&#039; в строковую переменную ее следует предварительно объявить выражением:&lt;br /&gt;
 &#039;&#039;&#039;строка = &amp;quot;&amp;quot;&#039;&#039;&#039;; Данное выражение создает строковую переменную нулевой длины.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln Введите строку: &amp;amp; input строка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 На экране мы увидим:&lt;br /&gt;
 &#039;&#039;&#039;Введите строку:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</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=15752</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=15752"/>
		<updated>2017-03-21T12:27:59Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Предопределенные функции */&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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, n)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</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=15751</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=15751"/>
		<updated>2017-03-21T12:27:17Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Предопределенные функции */&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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;_arcsin&#039;&#039;&#039;, &#039;&#039;&#039;_arccos&#039;&#039;&#039;, &#039;&#039;&#039;_arctan&#039;&#039;&#039; и &#039;&#039;&#039;_sqrt&#039;&#039;&#039; - вычисляют арксинус, арккосинус, арктангенс и извлечение квадратного корня&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_power(w, y)&#039;&#039;&#039; - вычисление степени числа. Здесь два параметра — основа и значение степени. Если оставить только x, он будет возведён в квадрат. Также, вспомнив школьный курс алгебры, с помощью &#039;&#039;&#039;_power&#039;&#039;&#039; можно извлекать корни любой степени.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</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=15750</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=15750"/>
		<updated>2017-03-21T12:20:49Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Другое */&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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&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;br /&gt;
* Команда &#039;&#039;&#039;QUIT&#039;&#039;&#039; закрывает плеер с игрой.&lt;br /&gt;
* Системная переменная &#039;&#039;&#039;fullscreen&#039;&#039;&#039; отвечает за развёртывание игры на полный экран и возврат в оконный режим. Установка её в 1 переводит игру в полноэкранный режим, 0 - переводит обратно в оконный.&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=15581</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=15581"/>
		<updated>2017-03-02T14:14:44Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать обычные True Type шрифты Windows. Для этого шрифт должен быть либо установлен в системе, либо лежать в папке с игрой (архиве QSZ).&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Часто из метки вызванной с помощью &#039;&#039;&#039;proc&#039;&#039;&#039; ведёт вызов &#039;&#039;&#039;goto&#039;&#039;&#039; и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор &#039;&#039;&#039;forget_procs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
=Функции=&lt;br /&gt;
&lt;br /&gt;
==Случайное значение Rnd==&lt;br /&gt;
&lt;br /&gt;
Иногда полезно - особенно, если не злоупотреблять этим, ввести в квест элемент случайности, непредсказуемости. Именно для этого был введен механизм случайности: Rnd[x] - системная переменная (только для чтения) которая при пустом значении x хранит в себе случайное значение от 0 до 1, включая 1, а при целом x  (к примеру, X=6) выдает выдает целые значения (от 1 до 6  включительно в нашем случае). При каждом обращении к переменной она принимает другое значение. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай1 = rnd&#039;&#039;&#039;  ;В результате переменная случай1 равна, например, 0.78&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;случай2 = rnd4&#039;&#039;&#039;  ;В результате переменная случай2 равна, например, 3&lt;br /&gt;
&lt;br /&gt;
==Ввод текста INPUT==&lt;br /&gt;
&lt;br /&gt;
В урке есть возможность ввести строку, значение которой будет потом присвоено указанной переменной. &lt;br /&gt;
&lt;br /&gt;
При необходимости ввести с клавиатуры русский текст через оператор &#039;&#039;&#039;input&#039;&#039;&#039; в строковую переменную ее следует предварительно объявить выражением:&lt;br /&gt;
 &#039;&#039;&#039;строка = &amp;quot;&amp;quot;&#039;&#039;&#039;; Данное выражение создает строковую переменную нулевой длины.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln Введите строку: &amp;amp; input строка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 На экране мы увидим:&lt;br /&gt;
 &#039;&#039;&#039;Введите строку:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=15580</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=15580"/>
		<updated>2017-03-02T14:08:03Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать обычные True Type шрифты Windows. Для этого шрифт должен быть либо установлен в системе, либо лежать в папке с игрой (архиве QSZ).&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Часто из метки вызванной с помощью &#039;&#039;&#039;proc&#039;&#039;&#039; ведёт вызов &#039;&#039;&#039;goto&#039;&#039;&#039; и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор &#039;&#039;&#039;forget_procs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
=Функции=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=15579</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=15579"/>
		<updated>2017-03-02T14:02:42Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Переход по оператору PROC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать обычные True Type шрифты Windows. Для этого шрифт должен быть либо установлен в системе, либо лежать в папке с игрой (архиве QSZ).&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Часто из метки вызванной с помощью &#039;&#039;&#039;proc&#039;&#039;&#039; ведёт вызов &#039;&#039;&#039;goto&#039;&#039;&#039; и далее. В таком случае, если мы не хотим возврата к первой локации, нужно использовать оператор &#039;&#039;&#039;forget_procs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=15578</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=15578"/>
		<updated>2017-03-02T13:50:17Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Вывод переменных */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#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;Примечание:&#039;&#039;&#039;&lt;br /&gt;
Вывод строковой переменной, как числа &#039;&#039;&#039;#текстовая_переменная$&#039;&#039;&#039; даст нам количество символов в строке.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать обычные True Type шрифты Windows. Для этого шрифт должен быть либо установлен в системе, либо лежать в папке с игрой (архиве QSZ).&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</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=14785</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=14785"/>
		<updated>2016-12-09T14:29:15Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: записан порог параметров для локации&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;
Возможен максимум - 50 параметров.&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&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>Ajenta</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=13260</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=13260"/>
		<updated>2016-08-12T10:57:36Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: исправление орфографии&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  и вертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&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>Ajenta</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=13259</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=13259"/>
		<updated>2016-08-12T10:56:29Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: исправление орфографии&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находящиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  ивертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&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>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=10597</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=10597"/>
		<updated>2016-01-18T15:06:16Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
То получили бы на экране:&lt;br /&gt;
 Моя грамотность была на исходе&lt;br /&gt;
Потому что символ &amp;quot;;&amp;quot; и все что после него идет было бы обработано как комментарий.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать обычные True Type шрифты Windows. Для этого шрифт должен быть либо установлен в системе, либо лежать в папке с игрой (архиве QSZ).&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=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&amp;diff=10596</id>
		<title>FireURQ:Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=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&amp;diff=10596"/>
		<updated>2016-01-18T15:05:24Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Метки=&lt;br /&gt;
&lt;br /&gt;
Метка - одно из важнейших понятий URQL. Она служит для выделения места в квесте, куда затем предстоит перейти. Любые перемещения в квесте могут быть либо на следующий оператор, либо на метку. Все метки имеют имена, чтобы потом можно было указывать, куда вы хотите перейти. &lt;br /&gt;
Определяется метка при помощи двоеточия. Все, что правее этого символа, до разделителя, которым является символ конец абзаца (Enter) или &#039;&amp;amp;&#039;  - имя метки:&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;:Имя_метки&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Метка и следующий за ней оператор end являются принятой единицей измерения игры - локацией. Между ними обычно пишется описание локации и переходы из неё в другие локации.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:начало&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Например, допустимыми именами меток являются:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;:1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:01&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:а&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:кот1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:@(a)%^Очень_Длинная_и_Запутанная_метка_какими-лучше-не-пользоваться!!!!!_horror_так_как_сами_потом_забудете_как_она_называется!Или_сделаете_ошибку!&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Вы_же_можете_сделать_маленькую_ошибку_в таком_длинном_названии?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:house_flat1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание:&#039;&#039;&#039;&#039;&#039; метка должна начинаться с начала строки и отделяться от других операторов (Enter) или &#039;&amp;amp;&#039;, регистр имени метки не важен.&lt;br /&gt;
&lt;br /&gt;
 :BIG&lt;br /&gt;
 :bIG&lt;br /&gt;
 :Big&lt;br /&gt;
 :big&lt;br /&gt;
 - все эти метки для интерпретатора совершенно одинаковы. Но лучше, в целях собственного удобства, придерживаться единого стиля.&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; &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Грамотное использование имен меток способно серьезно облегчить работу автора.&lt;br /&gt;
&lt;br /&gt;
=Текст=&lt;br /&gt;
==Вывод текста==&lt;br /&gt;
&lt;br /&gt;
Поскольку мы имеем дело с текстовыми играми, важнейшим для нас является вывод текста. В FURQ существует несколько способов вывода текста.&lt;br /&gt;
&lt;br /&gt;
===Текст на экране===&lt;br /&gt;
&lt;br /&gt;
Простейший способ вывести текст это использовать команды &#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;p&#039;&#039;&#039; [текст]&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; [текст]&lt;br /&gt;
&lt;br /&gt;
Регистр команд не имеет значения (&#039;&#039;&#039;pLn&#039;&#039;&#039; = &#039;&#039;&#039;PLN&#039;&#039;&#039; = &#039;&#039;&#039;Pln&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
На практике это выглядит так:&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Этот текст появится на экране.&lt;br /&gt;
или&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Этот текст тоже появится на экране.&lt;br /&gt;
&lt;br /&gt;
Каждая последующая команда &#039;&#039;&#039;P&#039;&#039;&#039; или &#039;&#039;&#039;PLN&#039;&#039;&#039; дописывает новый текст к тексту который уже есть на экране. Когда текста становится слишком много, появляется возможность его прокрутить.&lt;br /&gt;
&lt;br /&gt;
Разница этих двух команд в следующем - &#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;p&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;p&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст “АБ”, тогда как&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; А&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Б&lt;br /&gt;
&lt;br /&gt;
Выдаст:&lt;br /&gt;
 А&lt;br /&gt;
 Б&lt;br /&gt;
 &lt;br /&gt;
Чаще всего пользуются командой &#039;&#039;&#039;pln&#039;&#039;&#039;, однако и &#039;&#039;&#039;p&#039;&#039;&#039; может быть полезна, например, когда строчка текста, которую мы хотим вывести на экран, состоит из нескольких частей и зависит от каких-либо переменных или условий.&lt;br /&gt;
&lt;br /&gt;
Команды &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039; могут напрямую выводить любые символы (кроме символа комментария  &#039;&#039;&#039;“;”&#039;&#039;&#039;), переменные и ссылки.&lt;br /&gt;
&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; &#039;&#039;&#039;#&#039;&#039;&#039;имя_числовой_переменной&#039;&#039;&#039;$&#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;текстовая_переменная=&amp;quot;Геннадий&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;числовая_переменная=42&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Меня зовут &#039;&#039;&#039;#%текстовая_переменная$&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; - Мне &#039;&#039;&#039;#числовая_переменная$&#039;&#039;&#039; года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Крокодил схватил вас за ногу и сказал:&lt;br /&gt;
 - Меня зовут Геннадий.&lt;br /&gt;
 Затем крокодил схватил вас за другую ногу и сказал:&lt;br /&gt;
 - Мне 42 года. Давай, ты станешь моим близким другом.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в &#039;&#039;&#039;URQL&#039;&#039;&#039; есть специальные обозначения для вывода символа пробела - &#039;&#039;&#039;#$&#039;&#039;&#039;, вывода символа переноса строки - &#039;&#039;&#039;#/$&#039;&#039;&#039; и вывода символа по ascii-коду - &#039;&#039;&#039;##&#039;&#039;&#039;ascii-код&#039;&#039;&#039;$&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Так, например, символ комментария можно вывести на экран, через его  ascii-код:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе&#039;&#039;&#039;##59$&#039;&#039;&#039; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
&lt;br /&gt;
Хочу напомнить, что если бы мы написали в коде просто:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Моя грамотность была на исходе; но, несмотря на это, я поставил точку с запятой в предложении.&lt;br /&gt;
То получили бы на экране:&lt;br /&gt;
 Моя грамотность была на исходе&lt;br /&gt;
Потому что символ &amp;quot;;&amp;quot; и все что после него идет было бы обработано как комментарий.&lt;br /&gt;
&lt;br /&gt;
==Оформление текста==&lt;br /&gt;
&lt;br /&gt;
В 21 веке в &#039;&#039;&#039;FURQ&#039;&#039;&#039; текст это не просто набор символов, но еще и набор гарнитур, цвет, выравнивание и местоположение.&lt;br /&gt;
&lt;br /&gt;
===Местоположение===&lt;br /&gt;
Область экрана, куда выводят текст команды &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;pln&#039;&#039;&#039; можно двигать, делать шире, уже, выше и т.д. Для этого служат системные переменные &#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;
&lt;br /&gt;
Давайте, используя полученные нами знания, выведем значения этих переменных на экран:&lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; Левая граница=&#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;
&lt;br /&gt;
Результат:&lt;br /&gt;
 Левая граница=20, Верхняя граница=55, Ширина=760, Высота=525&lt;br /&gt;
&lt;br /&gt;
Вы можете изменять значения этих переменных как угодно в любом месте игры. Например, вы хотите вывести справа от текста картинку: измените ширину (&#039;&#039;&#039;textpane_width&#039;&#039;&#039;) так чтобы текст не мешал. А когда картинка больше не нужна измените ширину обратно. Экспериментируйте.&lt;br /&gt;
&lt;br /&gt;
===Выравнивание текста===&lt;br /&gt;
&lt;br /&gt;
За выравнивание текста отвечает команда числовая системная переменная textalign. Она сообщает FURQ как должен быть расположен текст относительно области его вывода. &lt;br /&gt;
&lt;br /&gt;
Лучше всего это понять на примере:&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается влево&lt;br /&gt;
 &#039;&#039;&#039;textalign = 2&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается вправо&lt;br /&gt;
 &#039;&#039;&#039;textalign = 3&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039;pln&#039;&#039;&#039; текст выравнивается по центру&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Главное теперь не забыть, поменять переменную обратно на &#039;&#039;&#039;1&#039;&#039;&#039;, если вы не хотите, чтобы текст всей игры был выравнен по центру.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Цвет===&lt;br /&gt;
&lt;br /&gt;
Для определения цвета выводимого текста служит переменная &#039;&#039;&#039;textcolor&#039;&#039;&#039;. Цвет в &#039;&#039;&#039;FireURQ&#039;&#039;&#039; задается шестнадцатиричным числом в формате &#039;&#039;&#039;0xAARRGGBB&#039;&#039;&#039;. То есть четыре составляющих: альфа, красный, зеленый и синий. При этом альфу можно опускать, т.е. цвет &#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;
Встроенная функция &#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;proc&#039;&#039;&#039; _color(x+15, 10, 255, 60)&lt;br /&gt;
 &#039;&#039;&#039;textcolor = _result&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Шрифт===&lt;br /&gt;
&lt;br /&gt;
Для определения шрифта, которым будет выводиться текст, используется переменная &#039;&#039;&#039;textfont&#039;&#039;&#039;. В нее в виде строкового значения следует записать имя файла шрифта. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; позволяет использовать обычные True Type шрифты Windows. Для этого шрифт должен быть либо установлен в системе, либо лежать в папке с игрой (архиве QSZ).&lt;br /&gt;
&lt;br /&gt;
Формат использования шрифта такой:&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;]&#039;&#039;&#039;&lt;br /&gt;
&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;
Допустим, мы хотим вывести текст шрифтом Georgia. &lt;br /&gt;
&lt;br /&gt;
Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
И сразу же проверяем результат, при помощи оператора вывода текста &#039;&#039;&#039;pln&#039;&#039;&#039;, который мы уже освоили в совершенстве:&lt;br /&gt;
 &#039;&#039;&#039;pln Крокодил зарылся в ил, крокодила ил манил&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В результате получаем текст про крокодила, написанный нужным нам шрифтом. Однако, размер в 19 пикселей, используемый по умолчанию выглядит мелко, поэтому сделаем размер покрупнее, чтобы все видели издалека эту прекрасную скороговорку.&lt;br /&gt;
&lt;br /&gt;
Меняем размер на 42:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[42]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Остальные параметры команды нужны, чтобы текст, который будет выведен на экран выглядел еще более красиво (например, при стандартных параметрах текст может выглядеть не слишком хорошо на светлом фоне). В параметре &#039;&#039;&#039;bgcolor&#039;&#039;&#039;, конечно, лучше задать цвет фона, на котором будет выведен текст. Другие параметры подбираются скорее на глаз, чем по науке. &lt;br /&gt;
&lt;br /&gt;
Примеры:&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;
&lt;br /&gt;
Чтобы, после манипуляций с текстом, вернуться к шрифту по умолчанию, следует выполнить:&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;_sysfont&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireURQ&#039;&#039;&#039; может использовать и растровые шрифты формата &#039;&#039;&#039;HGE Font&#039;&#039;&#039; (заимствовано из библиотеки HGE). Редактор, позволяющий конвертировать шрифты, установленные в Windows, в формат &#039;&#039;&#039;HGE Font&#039;&#039;&#039;, входит в дистрибутив (папка &#039;&#039;&#039;fonted&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Пример использования HGE шрифта&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;myfont.fnt&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLS===&lt;br /&gt;
&lt;br /&gt;
Часто бывает так, что экран, на который уже выведен текст нужно очистить. Для того чтобы удалить весь текст, выведенный при помощи команд &#039;&#039;&#039;P&#039;&#039;&#039; и &#039;&#039;&#039;PLN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLS&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;pln Уйма текста.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;cls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Другие способы вывода текста===&lt;br /&gt;
&lt;br /&gt;
Иногда оказывается недостаточно команд, описанных выше. Например, вы хотите чтобы в верхнем правом углу экрана всегда отображалось количество очков, которые игрок заработал на протяжении игры. Или состояние здоровья персонажа. Или название комнаты, в которой он находится. Или все это одновременно в разных местах экрана. Тогда на помощь автору приходят текстовые [[декораторы]]. &lt;br /&gt;
&lt;br /&gt;
===Текст в заголовке===&lt;br /&gt;
&lt;br /&gt;
Для того чтобы вывести название игры или другой текст в заголовок окна FURQ нужно поместить этот текст в системную текстовую переменную gametitle. Если переменная пуста, то в заголовке будет отображаться название файла игры.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;gametitle = “Крокодил”&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Furq_titlebar.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Иногда эту переменную удобно использовать при отладке игры, временно выводя в нее, к примеру, значения других переменных.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Переходы =&lt;br /&gt;
&lt;br /&gt;
Любой текстовый квест можно разбить на локации с текстом и переходы между ними. Из каждой локации к другим локациям обычно ведет несколько переходов, которые обозначают некоторые альтернативные варианты действий. В этой главе мы рассмотрим способы, которыми URQL позволяет сделать переходы в игре.&lt;br /&gt;
&lt;br /&gt;
==Переход по кнопкам (оператор BTN)==&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;pln&#039;&#039;&#039; - &#039;&#039;&#039;&#039;&#039;так ваша игра будет выглядеть гораздо лучше.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: btn &amp;lt;локация&amp;gt;, &amp;lt;надпись на кнопке&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;локация&amp;gt; - имя метки, на которую будет совершен переход, &amp;lt;надпись на кнопке&amp;gt; - надпись на кнопке, которая отображается на экране. В случае если &amp;lt;надпись на кнопке&amp;gt; не указана, в качестве надписи используется название метки, куда ведет кнопка.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 Эта команда выведет на экран кнопку с текстом &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведующую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 1: пробелы  до  и  после надписи на кнопке игнорируются.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 2: если локация не найдена, то кнопка выводится с пометкой // phantom.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание 3: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У кнопок есть так называемое &amp;quot;эхо&amp;quot;. Это сообщение, выводящееся на экран о том, что вы перешли по кнопке. Чтобы оно не выводилось, следует использовать переменную &#039;&#039;&#039;hide_btn_echo&#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;hide_btn_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Команда CLSB===&lt;br /&gt;
&lt;br /&gt;
Бывает так, что нам не нужно очищать весь экран, а нужно стереть только кнопки действий. Для того чтобы удалить кнопки выведенные командой &#039;&#039;&#039;BTN&#039;&#039;&#039;, существует команда &#039;&#039;&#039;CLSB&#039;&#039;&#039;. У нее нет никаких параметров.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &#039;&#039;&#039;btn север, Идти на Север&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;clsb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn юг, Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Результат (текст на выведенной кнопке):&lt;br /&gt;
 &#039;&#039;&#039;Идти на Юг&#039;&#039;&#039;&lt;br /&gt;
   &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===Оформление кнопок в Fireurq===&lt;br /&gt;
&lt;br /&gt;
Оформление кнопок делается в файле skin.xml &lt;br /&gt;
Описание можно найти в статье [[FireURQ:Скины|FireURQ:Скины]].&lt;br /&gt;
&lt;br /&gt;
==Переход по ссылке==&lt;br /&gt;
&lt;br /&gt;
FireURQ позволяет использовать в тексте (и декораторах) ссылки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Формат ссылок:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[[текст ссылки|название локации]]&amp;lt;/nowiki&amp;gt;&#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;pln Вы стоите рядом с покосившимся &amp;lt;nowiki&amp;gt;[[домиком|домик_осмотреть]]&amp;lt;/nowiki&amp;gt;. Вокруг раскинулись &amp;lt;nowiki&amp;gt;[[клумбы с аромантными цветами|клумбы_осмотреть]]&amp;lt;/nowiki&amp;gt;.&#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;
Цвет ссылок задаётся переменными linkcolor и linkhcolor. Первая отвечает за цвет ссылки в тексте, а вторая - за цвет ссылки при наведении мыши. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkcolor = 0xffffff&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;linkhcolor = 0x0000ff&#039;&#039;&#039;&lt;br /&gt;
 В данном примере цвет ссылок в тексте будет белым, а при наведении станет синим.&lt;br /&gt;
&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;&amp;lt;nowiki&amp;gt;[[текст ссылки]]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В данном случае ссылка будет вести на метку под названием &amp;quot;текст ссылки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln На волнах раскачивается деревянная &amp;lt;nowiki&amp;gt;[[лодка]]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Здесь, при клике на ссылку произойдет переход на метку &amp;quot;лодка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Замечание: не рекомендуется называть метки именами с пробелами, соответственно не стоит использовать ссылки типа &amp;lt;nowiki&amp;gt;[[деревянная лодка]]&amp;lt;/nowiki&amp;gt;, которые ведут на локации с такими именами.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
У ссылок, как и у btn есть &amp;quot;эхо&amp;quot;, то есть в окне игры пишется, что вы перешли по ссылке. Чтобы его отключить, следует использовать переменную &#039;&#039;&#039;hide_link_echo&#039;&#039;&#039;. Если установить её в 1, то &amp;quot;эхо&amp;quot; выводиться не будет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;hide_link_echo = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Примечание: при наличии локации common (см. ниже) сначала выполняются операторы на локации common, потом осуществляется переход на метку локации.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору GOTO==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;GoTo Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
После выполнения оператора &#039;&#039;&#039;goto&#039;&#039;&#039; происходит мгновенное перемещение на указанную метку. При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;goto&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ. Это  сделано специально и умышленно - чтобы можно было делать переходы внутри локации.&lt;br /&gt;
&lt;br /&gt;
Примечание: в случае не нахождения метки, goto просто игнорируется.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;goto лес&#039;&#039;&#039;&lt;br /&gt;
 Этот код произведёт перемещение на локацию с названием &#039;&#039;&#039;&#039;лес&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход по оператору PROC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Синтаксис:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Proc Метка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При вызове данного оператора происходит переход на указанную метку и выполнение программы, до встречи первого end, потом управление передается оператору, следующему непосредственно за &#039;&#039;&#039;proc&#039;&#039;&#039;, откуда команда была вызвана. Допустима  любая  вложенность &#039;&#039;&#039;proc&#039;&#039;&#039;-вызовов (вплоть до использования рекурсии!). &lt;br /&gt;
&lt;br /&gt;
Нормально обрабатываются последовательные переходы по &#039;&#039;&#039;proc&#039;&#039;&#039; - цепочка ведется до тех пор, пока не встретится первый end. При этом кнопки во всех пройденных локациях накапливаются(!), но при обнаружении end&#039;а происходит не опрос пользователя, а возврат к предыдущему proc&#039;у и так до самого начала цепочки.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:берег_реки&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вы стоите на берегу реки, позади вас Туманный лес.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;proc лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Отсюда только одна дорога - на запад.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;;----------&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Из леса на вас поглядывают волки.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#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;
То есть, после выполнения по &#039;&#039;&#039;proc&#039;&#039;&#039; локации &#039;&#039;&#039;лес&#039;&#039;&#039;, мы вернёмся в локацию &#039;&#039;&#039;берег_реки&#039;&#039;&#039; и продолжим с того места, на котором был вызов команды &#039;&#039;&#039;proc&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Важно:&#039;&#039;&#039;&#039;&#039; При наличии локации common (см. ниже) операторы на локации common при переходе по &#039;&#039;&#039;proc&#039;&#039;&#039; НЕ ВЫПОЛНЯЮТСЯ и системная переменная &#039;&#039;&#039;current_loc&#039;&#039;&#039; не меняется.&lt;br /&gt;
&lt;br /&gt;
==Переход по декораторам TEXTBUTTON и IMGBUTTON==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Декораторы&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Контекстное меню==&lt;br /&gt;
&lt;br /&gt;
Описание можно найти в статье [[FireURQ:Особенности_реализации_URQL|FireURQ:Особенности_реализации_URQL]]. В разделе &#039;&#039;&#039;Выпадающие меню&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Параметры при переходах==&lt;br /&gt;
&lt;br /&gt;
Локальные параметры при переходах возможно передать параметры. &lt;br /&gt;
&lt;br /&gt;
 Общее обозначение: &amp;lt;метка&amp;gt;(param1, param2, ...)&lt;br /&gt;
&lt;br /&gt;
В качестве параметров могут быть использованы любые выражения. Параметры при этом попадают в переменные &amp;lt;метка&amp;gt;_1, &amp;lt;метка&amp;gt;_2 и так далее. Все старые значения &amp;quot;переменных с параметрами&amp;quot; — удаляются (даже если в прошлый раз было больше параметров).&lt;br /&gt;
&lt;br /&gt;
Важное замечание: при использовании параметров в операторе btn подстановки (#...$ и #%...$) раскрываются ПРИ ДОБАВЛЕНИИ КНОПКИ, а вычисление выражений в параметрах производится ПРИ НАЖАТИИ НА КНОПКУ.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 На локации &#039;&#039;&#039;лес&#039;&#039;&#039;, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#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;25&#039;&#039;&#039; или &#039;&#039;&#039;40метро&#039;&#039;&#039;. Если вы хотите использовать цифры в названии, то ставьте их после букв, к примеру - &#039;&#039;&#039;метро40&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Переход с возвратом==&lt;br /&gt;
&lt;br /&gt;
= Музыка и звук =&lt;br /&gt;
&lt;br /&gt;
В &#039;&#039;&#039;FURQ&#039;&#039;&#039; есть целый ряд команд для воспроизведения аудио. Оно может быть всевозможных форматов: WAV, AIFF, MP3, MP2, MP1, OGG, MIDXM, IT, S3M, MOD, MTM, UMX. Есть возможность тонкого регулирования громкости звука.&lt;br /&gt;
&lt;br /&gt;
Для начала запасемся на ресурсах, где свободно распространяют звуки (например, www.freesound.org) или запишем сами материала для проигрывания.&lt;br /&gt;
&lt;br /&gt;
==Play==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Play&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Чтобы просто запустить звук на проигрывание с помощью play напишите после команды имя файла. Например, нужно проиграть некий звук крокодила &#039;&#039;alligator.ogg&#039;&#039;. Для этого пишем:&lt;br /&gt;
 &#039;&#039;&#039;play alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Если файл alligator.ogg лежит рядом с файлом игры, то мы услышим нечто. Но если мы для удобства положим все звуки в отдельную папку sounds, то придется написать так:&lt;br /&gt;
 &#039;&#039;&#039;play sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
В нашем примере звук крокодила будет звучать всего один раз, однако, при помощи параметра &#039;&#039;&#039;loop&#039;&#039;&#039; мы сможем заставить крокодила двигаться и звучать бесконечно:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Теперь звук будет повторяться снова и снова. Остановить его сможет только параметр &#039;&#039;&#039;stop&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;play stop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
При помощи &#039;&#039;&#039;Play&#039;&#039;&#039; можно одновременно проигрывать несколько звуков. Кроме того, можно регулировать громкость звука, добавив к команде play через запятую значение от &#039;&#039;&#039;0&#039;&#039;&#039; (полная тишина) до &#039;&#039;&#039;255&#039;&#039;&#039; (максимальная громкость). По умолчанию, &#039;&#039;&#039;play&#039;&#039;&#039; играет аудио с максимальной громкостью.&lt;br /&gt;
&lt;br /&gt;
К примеру, мы хотим, одновременно наслаждаться звуком крокодила и чмоканием болота, но так, чтобы крокодил был слышен громче:&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/alligator.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;play loop sounds/swamp.wav, 100&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Чтобы остановить сразу все звуки, запущенные командой &#039;&#039;&#039;play&#039;&#039;&#039;, мы применим такую на первый взгляд абсурдную команду как:&lt;br /&gt;
 &#039;&#039;&#039;play stop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;; Важно помнить, что звуки запущенные на одной локации через &#039;&#039;&#039;play&#039;&#039;&#039; с параметром &#039;&#039;&#039;loop&#039;&#039;&#039; без новой команды с параметром &#039;&#039;&#039;stop&#039;&#039;&#039; сами собой не прекратятся, даже если вы перешли на другую локацию. И если вы вдруг оттуда вернетесь на прежнюю локацию, то те же самые звуки запустятся еще раз. Добро пожаловать в какафонию.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Voice==&lt;br /&gt;
&lt;br /&gt;
Команда &#039;&#039;&#039;Voice&#039;&#039;&#039; используется для проигрывания аудиофайлов формата WAV/AIFF/MP3/MP2/MP1/OGG&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;
&lt;br /&gt;
Команда предназначена специально для озвучивания игры голосом. Например, ей удобно запускать записи реплик персонажей или рассказчика. Во многом она аналогична команде &#039;&#039;&#039;play&#039;&#039;&#039;, но с несколькими важными особенностями:&lt;br /&gt;
Проигрывать можно только одну реплику/звук одновременно(запуск другой озвучки через команду voice останавливает предыдущую).&lt;br /&gt;
&lt;br /&gt;
Переход на другую локацию по кнопке (&#039;&#039;&#039;btn&#039;&#039;&#039;) останавливает озвучку.&lt;br /&gt;
&lt;br /&gt;
Громкость здесь регулируется числовой переменной &#039;&#039;&#039;voice_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;voice stop&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Если вам необходимо чтобы прозвучало несколько реплик на одной локации, то достаточно удобно использовать команду voice в связке с командой &#039;&#039;&#039;anykey&#039;&#039;&#039;. Прослушав реплику, игрок будет нажимать на любую клавишу и слушать следующую.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;voice_volume=200&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln - Еще раз здравствуй. - сказал крокодил и придвинулся поближе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/helloagain.ogg&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln Вам стало не по себе.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;voice sounds/SCREAM.wav&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Music==&lt;br /&gt;
&lt;br /&gt;
Кроме форматов аудиофайлов, которые воспроизводят команды &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, команда &#039;&#039;&#039;music&#039;&#039;&#039; проигрывает еще и трекерную музыку (XM, IT, S3M, MOD, MTM, UMX), MIDI-файлы (MID) и MO3.&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;
&lt;br /&gt;
Зацикливание проигрывания устанавливается в переменной music_looped (&#039;&#039;&#039;0&#039;&#039;&#039; - играть один раз, &#039;&#039;&#039;1&#039;&#039;&#039; - играть бесконечно). По умолчанию, вот отличие от команд &#039;&#039;&#039;play&#039;&#039;&#039; и &#039;&#039;&#039;voice&#039;&#039;&#039;, здесь музыка зациклена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;;  некоторые файлы трекерной музыки зациклены сами по себе, с помощью внутренних команд формата. Такие файлы будут играть по кругу вне зависимости от переменной &#039;&#039;&#039;music_looped&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Громкость воспроизведения регулируется переменной music_volume (от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;255&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;music&#039;&#039;&#039; можно проигрывать только один файл одновременно, однако, можно задавать время, в течении которого громкость следующего аудиофайла будет нарастать (или угасать – в зависимости от того, включаем мы воспроизведение, или выключаем). Если музыка уже звучит и мы запускаем новый трек с указанием времени нарастания громкости, то будет исполнен эффект &#039;&#039;&#039;crossfade&#039;&#039;&#039; – старый трек будет угасать, а новый – нарастать по громкости.&lt;br /&gt;
&lt;br /&gt;
Так “&#039;&#039;&#039;music stop&#039;&#039;&#039;” останавливает воспроизведение музыки. А если указать в качестве параметра время, то воспроизведение остановится через заданный промежуток.&lt;br /&gt;
 &#039;&#039;&#039;music stop, 1500 &#039;&#039;; остановить музыку через 1,5 секунды&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===fademusic=== &lt;br /&gt;
&lt;br /&gt;
С помощью команды &#039;&#039;&#039;fademusic&#039;&#039;&#039; можно добиться плавного и красивого изменения громкости музыки.&lt;br /&gt;
Формат команды:&lt;br /&gt;
 &#039;&#039;&#039;fademusic &amp;lt;громкость&amp;gt;, &amp;lt;время в миллисекундах&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
громкость – целевая громкость музыки.&lt;br /&gt;
&lt;br /&gt;
время в миллисекундах – время, в течении которого громкость достигнет целевого значения.&lt;br /&gt;
&lt;br /&gt;
Предположим, что мы хотим сделать красивое и удобное включение и выключение музыки в нашей игре. Для этого используем [[инвентарь]] &#039;&#039;&#039;URQ&#039;&#039;&#039;. Игрок в любой момент сможет через пункт меню инвентаря включить и выключить музыку, а мы постараемся, чтобы это было плавно. На самом деле выключать музыку совсем мы не будем, а будем только понижать громкость до нуля, но зато нам не придется задаваться вопросом какой именно файл запускать при включении музыки.&lt;br /&gt;
&lt;br /&gt;
В начале игры создадим элемент инвентаря “музыка” и присвоим ему наклейку “выключить музыку”:&lt;br /&gt;
 &#039;&#039;&#039;inv+ музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;idisp_музыка = &amp;quot;выключить музыку&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
Запускаем любую музыку, в любом месте игры:&lt;br /&gt;
 &#039;&#039;&#039;music music\Joe Hisaishi - Пылью на твоих руках.mp3&#039;&#039;&#039;&lt;br /&gt;
Теперь, в локации, которая отвечает за наш элемент инвентаря “музыка” используем оператор &#039;&#039;&#039;fademusic&#039;&#039;&#039;:&lt;br /&gt;
 &#039;&#039;&#039;:Use_музыка&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;if idisp_музыка == &amp;quot;включить музыку&amp;quot; then idisp_музыка = &amp;quot;выключить музыку&amp;quot; &amp;amp; fademusic 255, 1500 else idisp_музыка = &amp;quot;включить музыку&amp;quot; &amp;amp; fademusic 0, 1500&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
Теперь по нажатию на “выключить музыку” громкость будет плавно затихать до нуля за 1,5 секунды, а по нажатию на “включить музыку” - так же плавно возрастать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Документация FireURQ]]&lt;/div&gt;</summary>
		<author><name>Ajenta</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=10595</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=10595"/>
		<updated>2016-01-18T14:56:01Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Выпадающие меню */&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находищиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  ивертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&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>Ajenta</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=10594</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=10594"/>
		<updated>2016-01-18T14:55:33Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Выпадающие меню */&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право).&lt;br /&gt;
&lt;br /&gt;
Значения по умолчани.&lt;br /&gt;
* для кнопок - «TL» &lt;br /&gt;
* для ссылок — «RL»&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находищиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  ивертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&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>Ajenta</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=10593</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=10593"/>
		<updated>2016-01-18T14:53:11Z</updated>

		<summary type="html">&lt;p&gt;Ajenta: /* Выпадающие меню */&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;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;&#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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textalign = 1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btnalign = 3&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;btntxtalign = 3&#039;&#039;&#039;&lt;br /&gt;
 Этот код выведет последующий текст с выравниванием влево, а кнопки - посередине, так же посередине будет располагаться и текст в кнопках.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textcolor = 0xFF990000&#039;&#039;&#039;&lt;br /&gt;
 Этот код изменит цвет последующего текста на оттенок красного.&lt;br /&gt;
 Текст будет непрозрачен.&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;
&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;Пример использования в игре:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;textfont = &amp;quot;georgia.ttf[18, 1.0, 0.1, 0x000000]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 Такой шрифт идеально подойдёт для светлых фонов&lt;br /&gt;
 &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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 Можно написать без параметров:&lt;br /&gt;
 &#039;&#039;&#039;btn лес,Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 а можно добавить параметры:&lt;br /&gt;
 &#039;&#039;&#039;btn лес(1,&amp;quot;опушка&amp;quot;),Войти в лес&#039;&#039;&#039;&lt;br /&gt;
 В обоих случаях этот код сделает кнопку с надписью &#039;&#039;&#039;Войти в лес&#039;&#039;&#039;, ведущую на локацию &#039;&#039;&#039;лес&#039;&#039;&#039;&lt;br /&gt;
 но во втором варианте, на локации лес, переменные &#039;&#039;&#039;лес_1&#039;&#039;&#039; и &#039;&#039;&#039;лес_2&#039;&#039;&#039; будут соответссвенно равны &#039;&#039;&#039;1&#039;&#039;&#039; и &#039;&#039;&#039;опушка&#039;&#039;&#039;&lt;br /&gt;
 то есть, если мы напишем код:&lt;br /&gt;
 &#039;&#039;&#039;:лес&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;pln #лес_1$ и #%лес_2$&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;end&#039;&#039;&#039;&lt;br /&gt;
 то в результате, при переходе по кнопке, увидим на экране:&lt;br /&gt;
 &#039;&#039;&#039;1 и опушка&#039;&#039;&#039;&lt;br /&gt;
 Это очень удобно для организации проверок внутри локации.&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;
С версии 2.0 появилась возможность задавать положение пользовательского меню относительно кнопки, ссылки и кнопок или ссылок в декораторах.&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;bmenualign&#039;&#039;&#039; отвечает за положение меню относительно кнопок &#039;&#039;&#039;btn&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;lmenualign&#039;&#039;&#039; отвечает за положение меню относительно ссылки.&lt;br /&gt;
*&#039;&#039;&#039;decor_имя_menualign&#039;&#039;&#039; отвечает за положение меню относительно декоратора.&lt;br /&gt;
&lt;br /&gt;
Эти переменные содержат строку из двух букв. Первая буква — это положение относительно объекта (кнопки или ссылки), вторая — выравнивание. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;bmenualign = «RB»&#039;&#039;&#039;&lt;br /&gt;
меню относительно кнопок будет справа (Right) и выровнено по нижнему (Bottom) краю.&lt;br /&gt;
&lt;br /&gt;
Значение для меню берётся из сочетаний первых букв положений: Top (верх), Bottom (низ), Center (центр), Left (лево), Right (право)&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;, &#039;&#039;&#039;TEXTBUTTON&#039;&#039;&#039;, &#039;&#039;&#039;IMGBUTTON&#039;&#039;&#039; и &#039;&#039;&#039;CLICKAREA&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd добро_пожаловать (0,0, -1) TEXT &amp;quot;Добро пожаловать в игру&amp;quot;, 0xFF990033, &amp;quot;georgiab.ttf[22]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет текст - &#039;&#039;&#039;Добро пожаловать в игру&#039;&#039;&#039; с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; в окне, &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#039;&#039;&#039; и шрифтом &#039;&#039;&#039;georgia&#039;&#039;&#039; жирный &#039;&#039;&#039;22&#039;&#039;&#039; размера,&lt;br /&gt;
 располагающийся перед основным текстом и перекрывающий его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd кнопка (10,100, -1) TEXTBUTTON &amp;quot;mybutton&amp;quot;, &amp;quot;Благодарности&amp;quot;, &amp;quot;об_игре&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 в данном примере мы имеем кнопку с определённой в скине рамкой &#039;&#039;&#039;mybutton&#039;&#039;&#039;, с надписью &#039;&#039;&#039;Благодарности&#039;&#039;&#039;, &lt;br /&gt;
 расположенную в позиции &#039;&#039;&#039;10,100&#039;&#039;&#039; экрана и ведущую в локацию &#039;&#039;&#039;об_игре&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся перед основным текстом и перекрывающую его&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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd квадрат (10,10, -1) RECT 300, 300, 0xFF990033&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор нарисует квадрат с позиции &#039;&#039;&#039;10,10&#039;&#039;&#039; в окне, шириной и высотой в &#039;&#039;&#039;300&#039;&#039;&#039; пикселей &lt;br /&gt;
 с непрозрачным цветом &#039;&#039;&#039;990033&#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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd область_клика (50,50, -1) CLICKAREA 200, 50, &amp;quot;переход&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет прямоугольную область на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;250&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039;, &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;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd бэкграунд (0,0, 2) IMAGE &amp;quot;back.png&amp;quot;, 0, 0, 1024, 768&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет картинку из файла &#039;&#039;&#039;back.png&#039;&#039;&#039; на экран в позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; окна, шириной &#039;&#039;&#039;1024&#039;&#039;&#039; и высотой &#039;&#039;&#039;768&#039;&#039;&#039;,&lt;br /&gt;
 располагающуюся за основным текстом&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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd моя_кнопка (50,50, -1) IMGBUTTON &amp;quot;button.png&amp;quot;, 0, 0, 100, 50, &amp;quot;лес&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор выведет на экран внопку в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; с текстурой из файла &#039;&#039;&#039;button.pn&#039;&#039;&#039;,&lt;br /&gt;
 определив начальную картинку из текстуры с позиции &#039;&#039;&#039;0,0&#039;&#039;&#039; шириной &#039;&#039;&#039;100&#039;&#039;&#039; и высотой &#039;&#039;&#039;50&#039;&#039;&#039; пикселей,&lt;br /&gt;
 располагающуюся перед основным текстом. При нажатии на кнопку осуществится переход на локацию с названием &#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd анимация_героя (50,50, -2) ANIMATION &amp;quot;anime.png&amp;quot;, 0, 0, 200, 400, 20&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет на экране анимацию из файла текстуры &#039;&#039;&#039;anime.png&#039;&#039;&#039;, в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039; окна, &lt;br /&gt;
 шириной кадра &#039;&#039;&#039;200&#039;&#039;&#039; и высотой &#039;&#039;&#039;400&#039;&#039;&#039;, состоящую из &#039;&#039;&#039;20&#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;
 &#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;decoradd гиф_картинка (50,50, -1) GIF &amp;quot;anime.gif&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 этот декоратор покажет анимированную gif картинку из файла &#039;&#039;&#039;anime.gif&#039;&#039;&#039; на экране в позиции &#039;&#039;&#039;50,50&#039;&#039;&#039;, &lt;br /&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 или IMGBUTTON неактивен (нельзя нажать). Для декораторов типа TEXT, если равен 0, отключает все ссылки находищиеся в них. &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;). Чтобы вернуться к автомасштабированию, достаточно присвоить переменной decor_имя_width значение ноль.&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_имя_flipx&#039;&#039;&#039; и &#039;&#039;&#039;decor_имя_flipy&#039;&#039;&#039; - позволяет задать горизонтальный  ивертикальный флип (зеркальное отображение) для декораторов-картинок. Если переменные равны 1, то картинка отображается зеркально по оси x или y соответственно.&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;_int&#039;&#039;&#039; отбрасывает дробную часть числа. Если вызвать, например, proc _int(3.14), то в переменной _result окажется 3.&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;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;anykey z, 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Time==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась переменная &#039;&#039;&#039;time&#039;&#039;&#039;, которая хранит в себе количество миллисекунд, прошедших с момента загрузки Windows. Это удобно, если надо засечь время реакции игрока.&lt;br /&gt;
&lt;br /&gt;
==Mousecursor==&lt;br /&gt;
&lt;br /&gt;
С версии 2.0 появилась возможность кастомизировать курсор. Им теперь может служить любой декоратор. Достаточно присвоить имя этого декоратора переменной &#039;&#039;&#039;mousecursor&#039;&#039;&#039;. При этом точка привязки декоратора становится точкой указания для мыши. Чтобы вернуться к системному курсору, нужно присвоить переменной &#039;&#039;&#039;mousecursor&#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;decoradd cursor (0,0, 50) IMAGE &amp;quot;arrow.png&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;mousecursor = &amp;quot;cursor&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Сохранение игры и оператор SAVE==&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;
С версии 2.0 &#039;&#039;&#039;FURQ&#039;&#039;&#039; сохраняет полное состояние игры на момент сохранения и способна вернуться в ту точку кода, где была вызвана команда SAVE. То есть, после загрузки, выполнение продолжится с команды, следующей за командой SAVE. Чтобы воспользоваться новыми возможностями, просто не указывайте первый параметр (локацию) при вызове SAVE. Например:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Пример:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу»&#039;&#039;&#039; ;вызовет интерфейс сохранения с выбором слота&lt;br /&gt;
  &#039;&#039;&#039;save «В лесу», 2&#039;&#039;&#039; ;запишет сохранение во второй слот&lt;br /&gt;
  &#039;&#039;&#039;save&#039;&#039;&#039; ;просто сохранит игру в нулевой слот без вызова интерфейса&lt;br /&gt;
&lt;br /&gt;
Если же в команде будет указана локация сохранения, то после загрузки произойдёт переход на указанную локацию.&lt;br /&gt;
&lt;br /&gt;
==Загрузка игры через оператор LOAD==&lt;br /&gt;
&lt;br /&gt;
Оператор LOAD инициирует загрузку ранее сохранённой игры. Команда дублирует пункт меню «Загрузить сохранение».&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>Ajenta</name></author>
	</entry>
</feed>