Авторизация
×

Логин (e-mail)

Пароль

Интерактивные истории, текстовые игры, квесты и визуальные новеллы
Гиперкнига

Библиотека    Блог

Пишем интерактивную историю вместе. Часть 10-я

Борис Семёнов (Morych), 06.04.13 | Практика ASM

Первый вариант концовки

Есть у нас с вами параграф «Лесные тропы», который сейчас помечен как ошибочный. Как вы помните, параграфы считаются ошибочными, если содержат «висящие» ссылки. Пришло время добавить новый параграф «Стежка», который приведёт нашего героя к первой, не самой удачной концовке.

Стежка

<<display 'Заголовок'>>
<<if $стежка eq 1>>
    «Ежели есть тропинка, -- думал я, снимая паутину с лица, -- стало быть, должна она меня куда-нибудь да привести!» Стежка, правду молвить, была еле видна. Небось, и не люди вовсе её протоптали, а кабаны или какие-нибудь другие лесные жители.
    <<set $стежка = 2>>
<<else>>
    Очень уж мне было любопытно, куда эта стежка узенькая ведёт. Поэтому снова я повернул на неё, благо нынче идти было куда проще, ведь по первому разу я уже собрал лицом всю развешенную здесь паутину.
<<endif>>
<<if $диалог_дед eq 15>>
    И тут я вспомнил, что дед Закром строго-настрого наказывал мне не сворачивать с широкой тропы. А он, как-никак, дурного не присоветует. Я остановился, раздумывая, что же мне делать.
<<endif>>
[[Идти дальше|Плохая концовка 1]]
[[Вернуться на широкую тропу|Лес]]

На этом параграфе у читателя будет последний шанс вернуться на правильную дорогу. Мы даже покажем читателю подсказку при условии, что герой, поговорив с дедом Закромом, не сразу убежал, но ещё и поблагодарил старика за науку (в этом случае значение объекта «$диалог_дед» равно 15). Как обычно, потребуется нам новый объект «$стежка» для хранения номера описания. Если же читатель проигнорирует нашу подсказку или просто пожелает исследовать все возможные повороты сюжета, его будет ждать параграф «Плохая концовка 1».

Плохая концовка 1

<<set $показать_инвентарь = false>>
<<display 'Заголовок'>>
Сам не ведаю, сколько я так по этой узкой тропинке шагал, не обращая внимания на липкую паутину да на колючие ветви, всё гуще сплетавшиеся вокруг. Только вдруг мне стало ясно, что никакой тропки под ногами-то и нет давно. Я попытался было её отыскать, но тщетно, только ещё больше заплутал. Делать нечего, пришлось идти, куда глаза глядят. Солнце тем временем уж повернуло на закат, и лишь густой бескрайний лес неприветливо шумел кругом. А что со мной дальше стало -- того и леший не ведает.
===''Конец''===
===~~А ведь эта история могла закончиться и по-другому.<<br>>[[-Попробуйте ещё раз|Вступление]]!~~===

Всегда лучше ясно давать читателю понять, что история действительно закончилась, и это не просто параграф, куда автор забыл добавить ссылки-действия. В нашем случае по центру экрана выводится слово «Конец». Само-собой, не лишним будет призвать читателя попробовать найти и другие концовки истории. Для этого мы выводим ссылку на параграф «Вступление».

Когда история заканчивается, рассматривать предметы инвентаря больше не имеет смысла. И уж тем более нельзя позволять читателю ими пользоваться. Поэтому лучше всего вообще скрыть ссылку «инвентарь». Именно для этой цели мы завели объект-признак «$показать_инвентарь» с логическим типом значений. Первоначальное значение объекта, конечно, должно быть установлено в «true». И немного подправим параграф «Заголовок»:

Заголовок

<<if $показать_инвентарь>>
    @@@''~~[[+инвентарь|Инвентарь]]~~''@@@
<<endif>>
===''<<print $сцена>>''===
----

Теперь во всех параграфах, где мы установим значение объекта «$показать_инвентарь» в «false», ссылка «инвентарь» отображаться не будет. Если мы скрываем инвентарь не в параграфе-концовке, а где-то посредине игры, нужно не забыть вновь установить значение соответствующего объекта в «true», когда инвентарь понадобится.

Продолжение следует...

Комментарии: 4.

Профиль


Закрыть

Показать все комментарии

Morych
06.04.13 12:17

Большое спасибо за отзыв, Корвин! Впереди ещё много интересного, не переключайтесь! :)
Кельта
16.04.13 21:36

Полностью согласна с такой декларируемой нормой авторской вежливости, как указание концовок.

P.S. понимаю, что комментарий достаточно без содержательный, но он оставлен с целью привлечь внимание авторов к обозначенному моменту.
Вячеслав
06.07.14 21:38

Чудесненько. Всё вполне доступно, но мало ли если сразу кто не догадается. Необходимо явно задать <<set $показать_инвентарь=true >>...

Либо в параграфе с переменными (Создание объектов), либо на страничке вступления.

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

При использовании любых материалов блога обязательно указание ссылки на источник