Перейти к основному содержимому

Назад: Настройки интерфейса

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 'В тени сумрачного леса приютился маленький <a href="EXEC: goto ''пряничный_домик'' ">пряничный домик</a>.'

Обратите внимание на используемые в строке кавычки. Поскольку для записи строки мы использовали одинарные кавычки (апострофы), а двойные кавычки использовали для атрибута href, пришлось экранировать одинарные кавычки в строке дублированием, чтобы название локации пряничный_домик так же было заключено в кавычки. Сравните эту запись со следующей:

*pl "В тени сумрачного леса приютился маленький <a href=""EXEC: goto 'пряничный_домик' "">пряничный домик</a>."

В гиперссылках нельзя размещать многострочный код, поскольку это нарушает чтение гиперссылок в плеерах, поддерживающих полноценный HTML. Записывайте все команды в одну строку:

if был_здесь = 0:
яблоки = 10
был_здесь = 1
end
*pl "<a href=""EXEC: if яблоки > 0: яблоки-=1 & gt $curloc else: pl 'Яблок больше нет.' "">Яблоки (<<яблоки>> шт.)</a>"

Если нужно выполнить из гиперссылки сложный многострочный код, разместите этот код на отдельной локации, а затем уже вызывайте локацию с помощью GOSUB из гиперссылки:

*pl "<a href=""EXEC: gosub ''взять_яблоко'' "">Яблоки (<<яблоки>> шт.)</a>"

Или поместите код в текстовую переменную, а потом выполняйте из гиперссылки с помощью оператора DYNAMIC:

$code = {
if яблоки > 0:
яблоки -= 1
pl 'Вы взяли одно яблоко.'
gt $curloc
else:
pl 'Яблок больше нет.'
end
}
*pl "<a href='EXEC: dynamic $code '>Яблоки (<<яблоки>> шт.)</a>"

Особенности работы HTML в разных плеерах

  • Классический плеер поддерживает лишь некоторые HTML-теги. Полный список можно посмотреть на странице HTML-теги поддерживаемые Классическим плеером.
  • Плеер qSpider работает с полноценным браузером, а значит поддерживает все HTML-теги современного стандарта. В том числе и HTML-теги для встраивания видео.
  • Плеер Quest Navigator имеет устаревший браузерный движок, который не соответствует современным стандартам, но поддерживает большинство HTML-тегов.
  • Устаревший плеер AeroQSP поддерживает почти все HTML-теги, но поддерживает не все атрибуты, в основном только атрибут style.

Вперёд: Ввод текста игроком