Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
help:html [2023/01/03 12:14] aleks_versus переписано |
help:html [2024/10/14 12:36] (текущий) aleks_versus обновление 5.9.0 |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | |||
[[help:interface|Назад: Настройки интерфейса]] | [[help:interface|Назад: Настройки интерфейса]] | ||
====== HTML ====== | ====== HTML ====== | ||
- | |||
При использовании HTML мы можем более гибко управлять внешним видом нашей игры, встраивать в неё изображения и использовать гиперссылки. Это позволяет разгрузить интерфейс от ненужных текстовых элементов, уменьшить число кнопок, и сделать управление игрой более гибким. | При использовании HTML мы можем более гибко управлять внешним видом нашей игры, встраивать в неё изображения и использовать гиперссылки. Это позволяет разгрузить интерфейс от ненужных текстовых элементов, уменьшить число кнопок, и сделать управление игрой более гибким. | ||
Строка 11: | Строка 9: | ||
===== Включение режима распознавания HTML ===== | ===== Включение режима распознавания HTML ===== | ||
- | Чтобы мы могли использовать HTML в нашей игре, необходимо включить режим рапознавания HTML. Это делается с помощью системной переменной ''**USEHTML**''. | + | Чтобы мы могли использовать HTML в нашей игре, необходимо включить режим раcпознавания HTML. Это делается с помощью системной переменной ''%%USEHTML%%''. |
- | ''**USEHTML**'' — если значение данной переменной отлично от 0, включает возможность использования HTML в окне основного описания, в окне дополнительного описания, в списках действий и предметов, а также в диалоговых окнах, вызываемых функцией ''**$INPUT**'' и оператором ''**MSG**''. Выводимый текст распознаётся как HTML. | + | ''%%USEHTML%%'' — если значение данной переменной отлично от 0, включает возможность использования HTML в окне основного описания, в окне дополнительного описания, в списках действий и предметов, а также в диалоговых окнах, вызываемых функцией ''%%$INPUT%%'' и оператором ''%%MSG%%''. Выводимый текст распознаётся как HTML. |
<sxh qsp> | <sxh qsp> | ||
Строка 19: | Строка 17: | ||
</sxh> | </sxh> | ||
- | По умолчанию в любом плеере **QSP** отключено распознавание HTML, поскольку на старте игры все переменные равны нулю, в т.ч. и ''**USEHTML**''. Из-за этого все HTML-теги, выводимые в тексте с помощью соответствующих команд, или в названиях предметов, действий или диалоговых окон ''**$INPUT**'' и ''**MSG**'', будут отображены на экране, как есть. | + | По умолчанию в любом плеере **QSP** отключено распознавание HTML, поскольку на старте игры все переменные равны нулю, в т.ч. и ''%%USEHTML%%''. Из-за этого все HTML-теги, выводимые в тексте с помощью соответствующих команд, или в названиях предметов, действий или диалоговых окон ''%%$INPUT%%'' и ''%%MSG%%'', будут отображены на экране, как есть. ((Из этого правила есть исключения. Например, в **qSpider** распознавание HTML включено всегда и не зависит от значения переменной ''%%usehtml%%'')). |
- | При изменении значения ''**USEHTML**'' на число, отличное от нуля, распознавание HTML включится, и сами теги будут скрыты от игрока, а к тексту, выводимому на экран, будет применено форматирование, соответствующее этим тегам. | + | При изменении значения ''%%USEHTML%%'' на число, отличное от нуля, распознавание HTML включится, и сами теги будут скрыты от игрока, а к тексту, выводимому на экран, будет применено форматирование, соответствующее этим тегам. |
===== Код в гиперссылках ===== | ===== Код в гиперссылках ===== | ||
- | В **QSP** есть возможность запускать код по щелчку на гиперссылке. Для этого мы должны изменить содержимое атрибута **''href''**. | + | В **QSP** есть возможность запускать код по щелчку на гиперссылке. Для этого мы должны изменить содержимое атрибута **''%%href%%''**. |
- | В этом атрибуте мы прописываем ключевое слово ''**EXEC**'', затем без пробелов ставим двоеточие, а после двоеточия в одну строку пишем обычный код **QSP**. Вот пример вставленной в текст гиперссылки, которая ведёт игрока на другую локацию: | + | В этом атрибуте мы прописываем ключевое слово ''%%EXEC%%'', затем без пробелов ставим двоеточие, а после двоеточия в одну строку пишем обычный код **QSP**. Вот пример вставленной в текст гиперссылки, которая ведёт игрока на другую локацию: |
<sxh qsp> | <sxh qsp> | ||
Строка 35: | Строка 33: | ||
</sxh> | </sxh> | ||
- | Обратите внимание на используемые в строке кавычки. Поскольку для записи строки мы использовали одинарные кавычки (апострофы), а двойные кавычки использовали для атрибута **href**, пришлось экранировать одинарные кавычки в строке дублированием, чтобы название локации ''пряничный_домик'' так же было заключено в кавычки. Сравните эту запись со следующей: | + | Обратите внимание на используемые в строке кавычки. Поскольку для записи строки мы использовали одинарные кавычки (апострофы), а двойные кавычки использовали для атрибута **href**, пришлось экранировать одинарные кавычки в строке дублированием, чтобы название локации ''%%пряничный_домик%%'' так же было заключено в кавычки. Сравните эту запись со следующей: |
<sxh qsp> | <sxh qsp> | ||
*pl "В тени сумрачного леса приютился маленький <a href=""EXEC: goto 'пряничный_домик' "">пряничный домик</a>." | *pl "В тени сумрачного леса приютился маленький <a href=""EXEC: goto 'пряничный_домик' "">пряничный домик</a>." | ||
Строка 44: | Строка 43: | ||
<sxh qsp> | <sxh qsp> | ||
if был_здесь = 0: | if был_здесь = 0: | ||
- | яблоки = 10 | + | яблоки = 10 |
- | был_здесь = 1 | + | был_здесь = 1 |
end | end | ||
*pl "<a href=""EXEC: if яблоки > 0: яблоки-=1 & gt $curloc else: pl 'Яблок больше нет.' "">Яблоки (<<яблоки>> шт.)</a>" | *pl "<a href=""EXEC: if яблоки > 0: яблоки-=1 & gt $curloc else: pl 'Яблок больше нет.' "">Яблоки (<<яблоки>> шт.)</a>" | ||
</sxh> | </sxh> | ||
- | Если нужно выполнить из гиперссылки сложный многострочный код, разместите этот код на отдельной локации, а затем уже вызывайте локацию с помощью ''**GOSUB**'' из гиперссылки: | + | Если нужно выполнить из гиперссылки сложный многострочный код, разместите этот код на отдельной локации, а затем уже вызывайте локацию с помощью ''%%GOSUB%%'' из гиперссылки: |
<sxh qsp> | <sxh qsp> | ||
Строка 56: | Строка 55: | ||
</sxh> | </sxh> | ||
- | Или поместите код в текстовую переменную, а потом выполняйте из гиперссылки с помощью оператора ''**DYNAMIC**'': | + | Или поместите код в текстовую переменную, а потом выполняйте из гиперссылки с помощью оператора ''%%DYNAMIC%%'': |
<sxh qsp> | <sxh qsp> | ||
$code = { | $code = { | ||
- | if яблоки > 0: | + | if яблоки > 0: |
- | яблоки -= 1 | + | яблоки -= 1 |
- | pl 'Вы взяли одно яблоко.' | + | pl 'Вы взяли одно яблоко.' |
- | gt $curloc | + | gt $curloc |
- | else: | + | else: |
- | pl 'Яблок больше нет.' | + | pl 'Яблок больше нет.' |
- | end | + | end |
} | } | ||
*pl "<a href='EXEC: dynamic $code '>Яблоки (<<яблоки>> шт.)</a>" | *pl "<a href='EXEC: dynamic $code '>Яблоки (<<яблоки>> шт.)</a>" | ||
Строка 73: | Строка 72: | ||
===== Особенности работы HTML в разных плеерах ===== | ===== Особенности работы HTML в разных плеерах ===== | ||
- | * Классический плеер поддерживает лишь некоторые HTML-теги. Полный список можно посмотреть на странице [[help:html_classic|HTML-теги поддерживаемые Классическим плеером]]. | + | * Классический плеер поддерживает лишь некоторые HTML-теги. Полный список можно посмотреть на странице [[help:html_classic|HTML-теги поддерживаемые Классическим плеером]]. |
- | * Плеер **qSpider** работает с полноценным браузером, а значит поддерживает все HTML-теги современного стандарта. В том числе и HTML-теги для встраивания видео. | + | * Плеер **qSpider** работает с полноценным браузером, а значит поддерживает все HTML-теги современного стандарта. В том числе и HTML-теги для встраивания видео. |
- | * Плеер **Quest Navigator** имеет устаревший браузерный движок, который не соответствует современным стандартам, но поддерживает большинство HTML-тегов. | + | * Плеер **Quest Navigator** имеет устаревший браузерный движок, который не соответствует современным стандартам, но поддерживает большинство HTML-тегов. |
- | * Устаревший плеер **AeroQSP** поддерживает почти все HTML-теги, но поддерживает не все атрибуты, в основном только атрибут **''style''**. | + | * Устаревший плеер **AeroQSP** поддерживает почти все HTML-теги, но поддерживает не все атрибуты, в основном только атрибут **''%%style%%''**. |
[[help:inputs|Вперёд: Ввод текста игроком]] | [[help:inputs|Вперёд: Ввод текста игроком]] | ||
- | |||