Удобный исходный код для квестов
2012-03-08T19:02:23+07:00
В моём представлении, идеальный движок для квестов работал бы на таком исходном коде. Как должны выглядеть диалоги, я пока не придумал.
В качестве примера взята комната из квеста “Обещание”, сама игра всё равно была гадостной. Писал, держа в уме Javascript.
Перед входом в библиотеку
=======================
Я стою в полутёмном коридоре перед широкой дверью. На двери висит огромный замок.
Рядом со мной стоят брат Кельтор и брат Гарард.
[предметы]
дверь
замок
брат Кельтор
брат Гарард
[вход]
Пользуясь тем, что на нас уже никто не обращал внимания, мы встали из-за стола и пошли по коридорам, направляясь одним словом: ,,Авось!''. Брат Кельтор обладал удивительной интуицией; он моментально нашёл (по запаху, что ли?) нужную дверь с надписью: <<ЧИТАЛЬНЯ>> и объяснил, что она -- нужная.
музыка: music/whisky_es_a_szaxofon.xm
положить в инвентарь "Письменное Слово"
["Письменное Слово"][постучать "Письменным Словом" по двери]
Я стучу книгой по двери, но она не желает открываться. Видимо, книги предназначены не для этого.
["Письменное Слово"][прочитать в "Письменном Слове" о замках]
Вот что говорит о замках Книга: ,,Каждый из нас имеет замок. Он хранит самые важные тайны. Важно лишь найти ключ... но где искать ключ? Конечно же, в себе...''
Нет, мне кажется, что это немного не то, что мне надо.
["Письменное Слово"][осмотреть "Письменное Слово"]
Очень умная книга, которую мне дали мои новые друзья. Листал, ни бельмеса не понял. В ней есть заклинания?
["Письменное Слово"][показать "Письменное Слово" Кельтору]
quote()
["Письменное Слово"][показать "Письменное Слово" Гарарду]
quote()
[замок][осмотреть замок]
Огромный навесной замок размером с мой кулак. Ключа, конечно же, у меня нет.
[дверь][осмотреть дверь]
Широкая деревянная дверь. Наверное, за ней таятся несметные богатства.
function quote()
var response = new Array(
'Не следует варить вареные яйца, иначе это занятие теряет весь смысл',
'Телефонами маги Севера называют переговорные кристаллы. Ценность кристалла определяется шириной его канала соединения с Астралом. Качественная передача живых картинок возможна при ширине не менее трёх мегер.',
'Возлюби книгу как самого себя. Первая заповедь литературовера.',
'Появилась мысль -- запиши. Вторая заповедь литературовера.',
'Никогда не загибай страницы книг. Третья заповедь литературовера.',
'Без слов книги бесполезны.',
'Поздно стирать кляксы, если ты уже закончил переплёт.',
'Я считаю свой день неудачным, если я не держал в руках перо.',
'Хороший редактор может исправлять книгу бесконечно.',
'Атавизм, дерево, муравей. Не пейте вина больше меры, дети мои.',
'Мы не знаем, кто распространяет миф о Мастере. Но мы не хотим верить.',
'Никогда не запивай селёдку молоком.',
'Вчера у меня был удачный день. Сегодня всё-таки наступило!',
'Игра есть отражение реальности, и лишь в игре мы можем познать истинные грани мироздания.',
'Смерть -- лучшее средство от простуды.'
);
return "Брат берёт у тебя книгу, открывает страницу наобум и читает:" . response[Math.floor(Math.random() * response.length)];
end
Теги: интерактивная литература