История диалога (Dialogue History)

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску

Ren'Py включает систему истории диалога, которая сохраняет каждую строку диалога после того, как она была показана игроку. Затем сохраненный диалог может быть извлечён и повторно показан игроку.

Система истории диалога контролируется двумя переменными. Переменная config.history_length регулирует максимальное количество сохраняемых записей истории и должна быть установлена, чтобы вообще включить историю. Переменная _history может использоваться для отключения и повторного включения хранилища истории.

Наконец, переменная _history_list хранит фактическую историю в виде списка объектов HistoryEntry. Объекты HistoryEntry содержат данные в своих полях, как определено ниже.


class HistoryEntry
kind
Тип персонажа, который создал эту историю. Ren'Py устанавливает значение adv или nvl.
who
Строка, в которой содержится имя говорящего персонажа. Принимает значение None, если такой строки не существует.
what
Строка, в которой содержится текст диалога.
who_args
Словарь, содержащий свойства, которые были предоставлены текстовому виджету who при первоначальном отображении диалога.
what_args
Словарь, содержащий свойства, которые были предоставлены текстовому виджету what при первоначальном отображении диалога.
window_args
Словарь, содержащий свойства, которые были предоставлены диалоговому окну при первоначальном отображении диалога.
show_args
Словарь, содержащий свойства, которые были предоставлены экрану say при первоначальном отображении диалога.
image_tag
Тег изображения, присвоенный Character(), или значение None, если такой тег не задан.
voice
Объект, возвращенный из _get_voice_info(), хранящий информацию о воспроизводимом голосе.
rollback_identifier
Идентификатор, который можно передать действию RollbackToIdentifier(), чтобы вызвать откат к строке сценария, сгенерировавшей эту запись истории. Откат происходит только в том случае, если позиция всё ещё находится в журнале сценария, иначе действие становится недоступным.


После создания HistoryEntry, он передаётся каждому из обратных вызовов в config.history_callbacks, что позволяет коду, написанному разработчиком, добавлять новые поля.

Источник[править | править код]

Статья "Dialogue History" на английском языке.


На главную страницу Официальная документация движка Вернуться к началу статьи