Примеры команд Twine Wonder

Небольшой набор примеров для тех безумцев, что рискнули последовать моей дорогой и писать текстовые квесты в формате Wonder для Twine.

Примеры команд Twine Wonder

Twine - это бесплатный редактор текстовых квестов, которые можно экспортировать в HTML, о нем я писал ранее, как и о формате Wonder . С помощью черной магии я сделал для Steam игру Лорды Проклятых Земель, но золота мне это не принесло, так что не спешите сразу туда.

Эта статья - ответы на вопросы, которые падают в личку.

Вопрос: Я хочу добавить переменные в квест, к примеру, золото.

Пишите прямо в параграфе так

Вы стоите перед воротами замка. Вход платный, 50 золотых. {{ this.gold = 100; }}

Это работает так - Wonder пытается интерпретировать двойные фигурные скобки как JavaScript. This в данном случае будет некий новый объект, в котором хранятся все переменные игры. В него можно вкладывать свои объекты.

Вопрос: Я хочу показать переменную в тексте

Пишите так

У вас в кармане {{=this.gold}} золота.

Это работает так - если после двойных фигурных скобок сразу идет символ =, то Wonder пытается вывести результат работы скрипта прямо по месту его написания. Это идеально работает с одиночными переменными, если вы их определили заранее.

То есть можно сразу писать так

Вы стоите перед воротами замка. Вход платный, 50 золотых. {{ this.gold = 100; // создали переменную и можно показывать сразу }} У вас в кармане {{=this.gold}} золота.

Вопрос: А можно теперь сделать так, чтобы в зависимости от количества золота одни переходы открывались, а другие нет.

Да, нужно вставить скрипт с JavaScript-конструкцией if... else... и особой командой Wonder - Wonder.showText(text) - которая выводит любой текст, в том числе и ссылку на следующий параграф Twine. Текст надо показывать в кавычках.

Вы стоите перед воротами замка. Вход платный, 50 золотых. {{ this.gold = 100; // создали переменную и можно показывать сразу }} У вас в кармане {{=this.gold}} золота. {{ if(this.gold>50) Wonder.showText("[[Вы можете пройти в ворота | goldGate]]"); else Wonder.showText("Вы не можете пройти в ворота, у вас мало золота"); }}

"[[Вы можете пройти в ворота | goldGate]]" - это обычная ссылка во всех форматах Twine.

If... else работает так

if(условие) { // команды, если условие выполняется } else { // команды, если условие НЕ выполняется }

Фигурные скобки в самом if..else... не обязательны. И само else не обязательно. Это стандартная конструкция во многих языках программирования, не только в JavaScript.

Вопрос: как изменить количество золота в карманах

Любым легальным в JavaScript способом изменить переменную, которую вы создали. Самый компактный способ записи - знак операции и знак равно

Вот вы прошли в ворота. {{ this.gold -= 50; }} У вас в кармане {{= this.gold}} золота.

Так можно складывать, вычитать, делить и умножать. Этого хватит на многое.

{{ this.gold -= 50; // это комментарий в JavaScript. Золото уменьшилось на 50 this.gold += 50; // Золото увеличилось на 50; this.gold *= 2; // Золота увеличилось в 2 раза this.gold /= 2; // золото уменьшилось в 2 раза this.gold = 1000; // одинарный знак равно - присваивание. Теперь золота 1000 }}

Вопрос: Сложно, сложно, не понимаю!
Да, это так. Но если сумеете взять эту горку, то освоите основы JavaScript и CSS, а это пригодится и в других форматах Twine. А то и программистом можно случайно стать, а это хороший квест сам по себе.

Вопрос: Сколько денег принесли "Лорды Проклятых Земель"

Плата за Steam - это было 6000 рублей - не отбилась. Это неудивительно, учитывая обилие дешевых игр с графикой.

1313
3 комментария

Спасибо тебе за статьи.
После создания тестовой игры для себя по фану мне прилетел заказ на создание простенького квеста

3
Ответить

ничего себе! )

Рад за тебя

1
Ответить