Skip to content

urqw/js_injection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

This project is documented and conducted in Russian due to its focus on a Russian-speaking audience.

JS injection

Версия от 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); плагин скорей демонстрирует общий принцип обработки переходов внутри игры, чем референсную реализацию.

Замечания

  1. Будьте внимательны и пишите аккуратно:
    некорректные данные в скриптовом узле или ошибка при исполнении содержащегося в нём кода с высокой вероятностью могут привести к поломке всей игры, например, к неотрисовке следующего блока интерфейса.
  2. Следите за множественными вызовами:
    если переход после целевого действия осуществляется оператором goto без удаления текста описания, то код из скриптовых узлов, содержащихся в предшествующем (незатёртом) тексте, будет выполнен ещё раз.
  3. Забивайте гвозди молотком:
    не стоит перекладывать на JavaScript значительные куски геймплея, так как они не будут обрабатываться функцией сохранения, да и это просто не очень изящно в контексте UrqW. Если есть желание разрабатывать текстовые игры на JavaScript, то существуют более подходящие для этого платформы, для которых данный язык (или совместимый с ним) является основным.
  4. Будьте ответственны:
    через исполнение JavaScript можно натворить разных дел, так что не используйте открывающиеся возможности во зло.
  5. Реалистично оценивайте технические предпочтения целевой аудитории игры:
    для работоспособности плагина необходимо, чтобы у пользователя был браузер с поддержкой 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 могут быть легко скомбинированы посредством копирования их кода в один файл.

About

Plugin for UrqW.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published