Модуль snapshots
Модуль snapshots предоставляет возможность восстанавливать предварительно сохранённые состояния игры. В качестве примера, можно привести ситуацию, когда игрок выполняет в игре действие, ведущее к проигрышу. Модуль позволяет автору игры написать код так, что игрок вернётся к предварительно сохранённому состоянию игры.
Для создания снапшота используйте функцию: snapshots:make(). В качестве параметра может быть задано имя слота.
Внимание!!! Снапшот будет создан после завершения текущего такта игры, так как только в этом случае гарантирована непротиворечивость сохранённого состояния игры.
Загрузка снапшота осуществляется snapshots:restore(). В качестве параметра может быть задано имя слота.
Удаление снапшота делается с помощью snapshots:remove(). Следует удалять ненужные снапшоты, так как они занимают лишнее место в файлах сохранения.
Пример использования:
require "snapshots"
room {
nam = 'main';
title = 'Игра';
onenter = function()
snapshots:make() -- создали точку восстановления
end;
decor = [[{#red|Красное} или {#black|чёрное}?]];
}: with {
obj {
nam = '#red';
act = function()
p [[Вы выиграли!]]
end;
};
obj {
nam = '#black';
act = function()
walk 'end'
end;
}
}
room {
nam = 'end';
title = 'Конец';
}: with {
obj {
dsc = [[{Переиграть?}]];
act = function()
snapshots:restore() -- восстановились
end;
}
}