This project is documented and conducted in Russian due to its focus on a Russian-speaking audience.
Версия от 12.07.2017 для UrqW 1.0.
Внимание! Этот плагин устарел: в UrqW 1.1 beta данная функциональность реализована как встроенная.
Плагин для UrqW, добавляющий функциональность исполнения JavaScript из текста квестов на URQL.
Содержимое любого HTML-тега со стилевым классом eval, выводимого через URQL-команды p, print, pln и println, не показывается на экране, а трактуется как строка кода JavaScript, которую и пытается исполнить плагин (см. test.qst).
При необходимости, логика работы может быть легко модифицирована (см. script.js); плагин скорей демонстрирует общий принцип обработки переходов внутри игры, чем референсную реализацию.
- Будьте внимательны и пишите аккуратно:
некорректные данные в скриптовом узле или ошибка при исполнении содержащегося в нём кода с высокой вероятностью могут привести к поломке всей игры, например, к неотрисовке следующего блока интерфейса. - Следите за множественными вызовами:
если переход после целевого действия осуществляется оператором goto без удаления текста описания, то код из скриптовых узлов, содержащихся в предшествующем (незатёртом) тексте, будет выполнен ещё раз. - Забивайте гвозди молотком:
не стоит перекладывать на JavaScript значительные куски геймплея, так как они не будут обрабатываться функцией сохранения, да и это просто не очень изящно в контексте UrqW. Если есть желание разрабатывать текстовые игры на JavaScript, то существуют более подходящие для этого платформы, для которых данный язык (или совместимый с ним) является основным. - Будьте ответственны:
через исполнение JavaScript можно натворить разных дел, так что не используйте открывающиеся возможности во зло. - Реалистично оценивайте технические предпочтения целевой аудитории игры:
для работоспособности плагина необходимо, чтобы у пользователя был браузер с поддержкой MutationObserver. С учётом этого накладываются следующие минимальные требования к версиям основных браузеров:- Настольные: Chrome 18, Firefox (Gecko) 14, Internet Explorer 11, Opera 15, Safari 6.0;
- Мобильные: Android 4.4, Chrome for Android 18, Firefox Mobile (Gecko) 14, IE Phone 11, Opera Mobile 15, Safari Mobile 6.
(При необходимости поддержки более старых версий браузеров, следует переписать отслеживание изменений с MutationObserver на Mutation events и отказаться от использования метода getElementsByClassName(), но это будет менее оптимизированное решение и использование устаревших спецификаций.)
Вы можете заархивировать папку с плагином и тестовым файлом .qst, добавить этот архив в UrqW как любую другую игру и на практике ознакомиться с работой плагина.
Другие плагины для UrqW см. в общем репозитории.
Однако будьте осторожны: не все плагины UrqW могут быть легко скомбинированы посредством копирования их кода в один файл.