Сохранения Don’t Starve в Linux.

Введение.

Не так давно приобрел я себе на распродаже эту замечательную игру (Don’t Starve) в Steam под Linux (люблю я эту систему). Игра замечательная, но уж очень серьезно подошли авторы к вопросу выживания. Чем дольше выживаешь, тем обиднее становится, когда герой погибает. Рано или поздно встает вопрос, как же сохранить прогресс и своего персонажа? К чему это привело меня, описано в этой статье ниже.

Сохранения.

Первое, что приходит в голову — использовать читы, но игра построена так, что можно погибнуть и потерять весть прогресс, даже используя читы. Именно поэтому я решил разобраться с сохранками. И тут столкнулся с маленькой неприятностью — сохранки Don’t Starve хранятся в облаке Steam (в лицензионной версии). Есть способ заставить DS записывать сохранки на жесткий диск, но тогда облачные сохранения станут недоступны и придется начинать все заново. Чтобы это сделать, идем в каталог /home/<user>/.klei/DoNotStarve/ (вместо <user> напишите имя своего пользователя) и найдите там файл settings.ini. Откройте файл текстовым редактором (не кошерно, но я использовал mcedit):

Нам нужен 1 раздел [steam] вторая строчка (вместо false вписываем туда true).

[steam]

disablecloud = false

Сохраняем файл и запускаем ds снова. Теперь у нас есть сохранки, которые можно скопировать в какую-либо папку и жить спокойно дальше:

Доступные сохранения Don't Starve.
Доступные сохранения Don’t Starve.

Как видим, сохранения находятся в папке: /home/<user>/.klei/DoNotStarve/save.

Автоматизация.

Следующий шаг будет еще интереснее. Дело в том, что копировать файлы туда-сюда после каждой игры не интересно, тем более линуксоидам, которые любят все автоматизировать. Вот и здесь мы не обойдемся без небольшого упрощения процесса. К сожалению, я не являюсь профессионалом и не могу автоматизировать все, поэтому остановимся на самом простом варианте — копирование сохранений туда-обратно с помощью двух команд (вместо десятка кликов в файловом менеджере) — копирование создание архива новых сохранок и обратное копирование архивных сохранок  в папку игры. Для этого нам понадобится 2 скрипта (можно создать с помощью графического файлового менеджера или с помощью команды

$touch <имя файла>

Начало у скриптов будет общее (как и вообще у любого скрипта на bash):

#!/bin/bash

Далее удаляем папку, в которую мы будем копировать новые сохранки (в моем случае — это /Документы/ds/save; не забудьте подставить вместо <user> имя своего пользователя):

rm -rf /home/<user>/Документы/ds/save

Пишите команду очень внимательно, поскольку она удаляет все файлы (на которые есть права) без запросов и сожалений. Второй командой нужно будет скопировать папку /save из каталога игры в наш архивный каталог.

cp -a /home/<user>/.klei/DoNotStarve/save /home/squizzer/Документы/ds

Для удобства можно добавить пару команд echo — в итоге мы получим код, как на листинге ниже (команда echo просто выводит сообщения в консоль).

#!/bin/bash
rm -rf /home/<user>/Документы/ds/save/
echo Старые сохранения удалены
cp -a /home/<user>/.klei/DoNotStarve/save /home/squizzer/Документы/ds
echo Новые сохранения скопированы

После этого сохраняем наш файл, делаем исполняемым и запускаем. Затем создаем второй файл, который будет копировать сохранки из архива в папку с игрой. Принцип здесь будет такой же, поэтому я сразу приведу листинг второго файла:

#!/bin/bash
rm -rf /home/<user>/.klei/DoNotStarve/save/
echo Игровые сохранения удалены
cp -a /home/<user>/Документы/ds/save /home/<user>/.klei/DoNotStarve
echo Архив сохранений восстановлен

Таким образом, я могу сделать резервную копию сохранений, лишь введя в консоли

$./bds

bds — это название скрипта резервного копирования файлов сохранений. Также я могу вернуть сохранки:

$./rds

Если есть еще какие-нибудь предложения по оптимизации скриптов, добро пожаловать в комментарии!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*