Skip to content

Модуль snapshots

Модуль snapshots предоставляет возможность восстанавливать предварительно сохранённые состояния игры. В качестве примера, можно привести ситуацию, когда игрок выполняет в игре действие, ведущее к проигрышу. Модуль позволяет автору игры написать код так, что игрок вернётся к предварительно сохранённому состоянию игры.

Для создания снапшота используйте функцию: snapshots:make(). В качестве параметра может быть задано имя слота.

Внимание!!! Снапшот будет создан после завершения текущего такта игры, так как только в этом случае гарантирована непротиворечивость сохранённого состояния игры.

Загрузка снапшота осуществляется snapshots:restore(). В качестве параметра может быть задано имя слота.

Удаление снапшота делается с помощью snapshots:remove(). Следует удалять ненужные снапшоты, так как они занимают лишнее место в файлах сохранения.

Пример использования:

lua
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;
	}
}