[[help:interface|Назад: Настройки интерфейса]] ====== HTML ====== При использовании HTML мы можем более гибко управлять внешним видом нашей игры, встраивать в неё изображения и использовать гиперссылки. Это позволяет разгрузить интерфейс от ненужных текстовых элементов, уменьшить число кнопок, и сделать управление игрой более гибким. Иными словами HTML помогает нам сделать игру внешне привлекательной и удобной для игрока. ===== Включение режима распознавания HTML ===== Чтобы мы могли использовать HTML в нашей игре, необходимо включить режим раcпознавания HTML. Это делается с помощью системной переменной ''%%USEHTML%%''. ''%%USEHTML%%'' — если значение данной переменной отлично от 0, включает возможность использования HTML в окне основного описания, в окне дополнительного описания, в списках действий и предметов, а также в диалоговых окнах, вызываемых функцией ''%%$INPUT%%'' и оператором ''%%MSG%%''. Выводимый текст распознаётся как HTML. usehtml = 1 & ! включаем режим распознавания HTML По умолчанию в любом плеере **QSP** отключено распознавание HTML, поскольку на старте игры все переменные равны нулю, в т.ч. и ''%%USEHTML%%''. Из-за этого все HTML-теги, выводимые в тексте с помощью соответствующих команд, или в названиях предметов, действий или диалоговых окон ''%%$INPUT%%'' и ''%%MSG%%'', будут отображены на экране, как есть. ((Из этого правила есть исключения. Например, в **qSpider** распознавание HTML включено всегда и не зависит от значения переменной ''%%usehtml%%'')). При изменении значения ''%%USEHTML%%'' на число, отличное от нуля, распознавание HTML включится, и сами теги будут скрыты от игрока, а к тексту, выводимому на экран, будет применено форматирование, соответствующее этим тегам. ===== Код в гиперссылках ===== В **QSP** есть возможность запускать код по щелчку на гиперссылке. Для этого мы должны изменить содержимое атрибута **''%%href%%''**. В этом атрибуте мы прописываем ключевое слово ''%%EXEC%%'', затем без пробелов ставим двоеточие, а после двоеточия в одну строку пишем обычный код **QSP**. Вот пример вставленной в текст гиперссылки, которая ведёт игрока на другую локацию: usehtml=1 *pl 'В тени сумрачного леса приютился маленький пряничный домик.' Обратите внимание на используемые в строке кавычки. Поскольку для записи строки мы использовали одинарные кавычки (апострофы), а двойные кавычки использовали для атрибута **href**, пришлось экранировать одинарные кавычки в строке дублированием, чтобы название локации ''%%пряничный_домик%%'' так же было заключено в кавычки. Сравните эту запись со следующей: *pl "В тени сумрачного леса приютился маленький пряничный домик." В гиперссылках нельзя размещать многострочный код, поскольку это нарушает чтение гиперссылок в плеерах, поддерживающих полноценный HTML. Записывайте все команды в одну строку: if был_здесь = 0: яблоки = 10 был_здесь = 1 end *pl " 0: яблоки-=1 & gt $curloc else: pl 'Яблок больше нет.' "">Яблоки (<<яблоки>> шт.)" Если нужно выполнить из гиперссылки сложный многострочный код, разместите этот код на отдельной локации, а затем уже вызывайте локацию с помощью ''%%GOSUB%%'' из гиперссылки: *pl "Яблоки (<<яблоки>> шт.)" Или поместите код в текстовую переменную, а потом выполняйте из гиперссылки с помощью оператора ''%%DYNAMIC%%'': $code = { if яблоки > 0: яблоки -= 1 pl 'Вы взяли одно яблоко.' gt $curloc else: pl 'Яблок больше нет.' end } *pl "Яблоки (<<яблоки>> шт.)" ===== Особенности работы HTML в разных плеерах ===== * Классический плеер поддерживает лишь некоторые HTML-теги. Полный список можно посмотреть на странице [[help:html_classic|HTML-теги поддерживаемые Классическим плеером]]. * Плеер **qSpider** работает с полноценным браузером, а значит поддерживает все HTML-теги современного стандарта. В том числе и HTML-теги для встраивания видео. * Плеер **Quest Navigator** имеет устаревший браузерный движок, который не соответствует современным стандартам, но поддерживает большинство HTML-тегов. * Устаревший плеер **AeroQSP** поддерживает почти все HTML-теги, но поддерживает не все атрибуты, в основном только атрибут **''%%style%%''**. [[help:inputs|Вперёд: Ввод текста игроком]]