Пользовательский скрипт JS может использовать методы объекта Wonder. Вместо Wonder
можно использовать сокращенноё w
.
Можно показать текст в месте, где скрипт. Удобно для проверки на параметры и условия, для показа особых линков и кусков текста.
Эта команда не работает в стартовом скрипте, работает только в тексте пассажа (страницы)
Начало текста
Продолжение текста
Чтобы включить автосейв, используйте в пользовательском скрипте такие строки:
Wonder.saveSlot('saveslot_TEST'); // определяет название слота
Wonder.autoSave(); // включает автосейв при каждом ходе
Wonder.load(); // загрузить последнее сохранение, если есть
Также можно в тексте пассажей использовать вставки скриптов с помощью `` с командами save и load в таком виде
и
При загрзуке игра перейдет на ту страницу (passage), на которой было сделано сохранение.
Подключить кастомный css из внешнего URL
Wonder.styleUrl('mystyle.css');
Просто запустить музыку в любой момент
Wonder.music(url: string, volume = 1)
Запустить музыку на локации hashName
Wonder.musicFor(hashName: string, url: string, volume = 1
Выключить музыку
Wonder.musicStop();
По умолчанию музыка зациклена. Чтобы проиграть звуковой эффект без повторения
Wonder.sound(url, volume);
Можно собирать страницы с определенным тегом (в Twine) в коллекции.
Wonder.collect({
// можно выбирать сразу кучу тегов
tags: ['gameover'],
// читабельный заголовок для пользователя
title: 'Концовки',
// сохранять собранные id в коллекцию
collection: 'gameovers'
})
Команда w.pageAdd
добавляет в конец любой страницы с тегом tagName
произвольный текст.
Это удобно, к примеру, для единообразных кнопок на gameover
Эту команду следует применять в самом начале, то есть в пользовательском скрипте Twine. Она не модифицирует все страницы сразу, а просто задает правило, по которому будет добавляться текст на некоторые страницы при их выводе.
Текст может быть кодом HTML. Текст добавляется только в конец страниц. Текст добавляется в момент вывода страницы на экран, перед её показом игроку.
Дополнительные команды того же рода:
Если игра запускается в iframe, то можно включить связь с родителем, обмен через postMessage. Event.data в postMessage протоколе должен содержать поля
Подписка на получение сообщения от родителя.
Wonder.parentApi().on('start', (state)=> {
console.log('state: ', state);
});
Сохранить состояние.
Wonder.parentApi().send('save', state);