Добрый день, товарищи!
Эту статью я хочу посвятить такой неприятной теме как вылеты игр в самый неподходящий момент.
С этим столкнулся и я, а вылеты исправить возможности не было.
Суть проблемы была такова: Раз в час (а иногда и многим чаще) ноут просто улетал в синий экран смерти. Как оказалось, дело было в материнке, и без сервиса это было никак не поправить.
Помнится, тогда я проходит Borderlands 3, и перспектива постоянных вылетов совершенно не радовала. Опасаясь за свои сохранения (и первые пару раз до решения проблемы успешно их поломав) я решил найти выход. И такой выход нашелся - Программа "Сохранятель Сохранений", как я его назвал.
Думаю, это можно считать костылем, ведь если у вас что то вылетает, то нужно бороться с причиной, а не с последствиями, но, надеюсь, кому то это будет полезно.
1. Подготовимся
Сразу оговоримся, что это - не программа на паскале. Сегодня мы пишем Bat-файл в текстовом документе.
Просто создаем и открываем блокнот, пускай даже на рабочем столе:
2. Условное техническое задание
Для начала определимся, что точно будет делать наша программа
Итак, она будет искать в указанной нами папке сохранения, и просто копировать их в другую указанную нами папку через каждый определенный нами же промежуток времени.
Я решил так: раз моя система была не стабильна - буду копировать файлы в облако.
Сказано - сделано, начнем писать.
3. Начнем писать SaveSaver
Открывать программу мы будем непосредственно перед запуском игры, но нам же не нужно, чтобы сохранения сразу копировались куда-либо, поэтому поставим ожидание.
Файлы Bat работают с системой, поэтому код будет не похож на код Паскаля.
Если вы, конечно, хотите чтобы копирование происходило сразу - эту строку кода можете пропустить.
Время задается в секундах, соответственно первое копирование произойдет спустя 5 минут.
4. Копирование сохранений
Для хранения файлов в облаке я установил на ноутбук Яндекс.Диск, его объема вполне хватит, чтобы все сохранения держались там.
Для примера, давайте создадим папку Save в документах (так как чаще всего сохранения хранятся именно там) и скопируем ее содержимое в папку Я.Диска. Внимание! папка должна быть не пустая!
Дальше нам нужен такой код:
Поясню этот код: Здесь используется метка :save - команда для создания своеобразного цикла. Имя метки вместо save можно использовать любое.
Далее, d|XCOPY - Собственно команда копирования. d отвечает за директорию (папку), но так же можно выбрать f - файл, если папку копировать нет необходимости.
Далее идет первый путь, где имя пользователя User1 заменяется на ваше имя пользователя. Потом идет второй путь с непонятными бессмысленными знаками. Это - задание даты и времени в имени скопированного каталога. Как это будет выглядеть на выходе я вам покажу.
5. Завершаем код
Здесь мы снова видим таймаут, на этот раз на пол часа. Редактировать эту цифру вы можете по своему желанию, но вам ведь не надо, чтобы сохранения копировались каждые 5 секунд?
Команда goto save возвращает нас к метке :save, таким образом создавая цикл.
Pause, что логично, отвечает за паузу.
Для сохранения кода нам нужно поменять формат файла. Сейчас у нас .txt, чтобы получился Bat-ник нужно просто заменить .txt на .bat при сохранении
Время проверить работу программы.
6. Тест
Кстати еще один плюс - то, что таймаут можно пропустить, тогда копирование произойдет сразу. Так же идет удобный обратный отсчет.
Те страшные символы в длинной строке кода преобразовываются в удобные время и дату в названии папки. Штука не обязательная, но с ней копаться в папках с копиями сохранений намного удобнее.
7. Заключение
Чтож, вот мы с вами и написали так называемый Сохранятель сохранений, весь код выглядит примерно так:
Для вашего удобства я залью этот код на Яндекс.Диск, скачать вы его можете по ссылке ниже:
Скачать SaveSaver с Яндекс.Диска
Данный человек всегда открыт для обсуждения контента и общения с подписчиками, если найдутся какие либо вопросы то я обязательно постараюсь ответить на них.
По возможности я попросил бы подписаться и оценить публикацию. Сейчас это критически важно для развития канала. Так то!
Доброго вам всем здоровьица в эти трудные времена!