Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
26.05.2013 20:57

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Az: Книги — хранение и представление структурированной информации

Понемногу набрасывая справочный раздел "Как играть", я всё думал над тем как выводить его на экран.

Кроме того, придумывая разного рода головоломки, часто ловил себя на мысли, что игрок не сможет удержать в голове всю ту информацию, на основе которой он должен будет находить решения своих проблем. Рассчитывать на то, что он будет записывать хоть что-то, тоже не приходится. Хорошо бы полезные для игрока сведения записывать в какой-нибудь журнал, который игрок может в любой момент открыть и полистать.

Поэтому решил реализовать старую задумку и добавить объект "Книга". И добавил.

Книга представляет собой набор глав (можно вложенных), которые в свою очередь содержат перечень страниц с текстом.

Пока набор команд таков:

Код:

…Создать, <Книга>, Тип_Книги

…НазваниеКниги, <Книга>, <ПолноеНазваниеКниги>

…ДобавитьГлаву, <Книга:Глава>, <НазваниеГлавы>, <ТекстКогдаПусто>, <ТекстГлавы>
…ДобавитьГлаву, <Книга:Глава В Глава>, <НазваниеГлавы>, <ТекстКогдаПусто>, <ТекстГлавы>

…ДобавитьТекстВКнигу, <Книга:Глава:Страница>, <ТекстГлавы>

…ЗаменитьТекстВКниге, <Книга:Глава:Страница>, <ТекстГлавы>

…КнигаНеПрочитана(<Книга:Глава:Страница>)

…ПометитьКнигуКакПрочитанную, <Книга:Глава:Страница>

…ПриДобавленииТекстаВКнигу, <Книга:Глава:Страница>, <Модуль>

…Вывести, <Книга:Глава:Страница>

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

Неактивен

0    0    #2
27.05.2013 09:13

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Az: Книги — хранение и представление структурированной информации

При добавлении текста в главу страница, в которую добавляется текст, а также глава, ну и, естественно, сама книга, — всё это автоматически обзаводится признаком "непрочитано". Этот признак можно отслеживать и извещать об этом игрока.

Например, в случае с журналом этот признак можно выводить прямо в главном меню:
https://ifiction.ru/i/scr/az-scr-journal-01.png
Какие для этого нужны трудозатраты? Да никаких особо.

Добавляем в главное меню игры пункт, который выводит журнал:

Код:

…ДобавитьПунктВГлавноеМеню, 'журнал', {…Вывести, ’Журнал’}, _, {
    if …КнигаНеПрочитана(’Журнал’):
        $Result = 'журнал<font color="#555555">(<font color="#FFFF00">!</font>)</font>'
    else
        $Result = 'журнал'
    end
    }

Ну и вешаем обработчик на добавление текста в книгу "Журнал", чтобы обновлялось главное меню игры:

Код:

…ПриДобавленииТекстаВКнигу, ’Журнал’, {
    …ОбновитьГлавноеМеню
    }

Теперь при добавлении текста в "Журнал", откуда бы это ни производилось, в главном меню будет появляться этот признак.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru