Jump to content
  • Sign Up

Исчезли файлы сохранения в SnowRunner


Bandit58
 Share
Followers 0

Recommended Posts

  • Administrator

Если в SnowRunner у вас начали пропадать сохранки, то этот способ может вам помочь.

Если вы играете на РС, попробуйте следующие шаги:

  • Откройте «Безопасность Windows».
  • Щелкните на пункте «Защита от вирусов и угроз».
  • Щелкните на пункте «Управление защитой от программ-шантажистов» в разделе «Защита от программ-шантажистов».
  • Щелкните на пункте «Разрешить работу приложения через контролируемый доступ к папкам».
  • Щелкните на пункте «Добавление разрешенного приложения» > «Все приложения».
  • Найдите папку SnowRunner > en_us > Sources > Bin.
  • Выберите файл приложения SnowRunner.exe и щелкните на кнопке «Открыть».
  • Закройте «Безопасность Windows».

На РС есть папка с бэкапом файлов сохранений, ее можно найти тут:

C:\Users\username\Documents\My Games\SnowRunner\base\storage\backupSlots\sd6f4e86g1d6s1gd5 (длинный буквенно-цифровой код будет отличаться на вашем компьютере)

Скопируйте все файлы из самой свежей папки в папку с активным сохранением:

C:\Users\username\Documents\My Games\SnowRunner\base\storage\sd6f4e86g1d6s1gd5 (длинный буквенно-цифровой код будет отличаться на вашем компьютере)

Затем перезапустите игру и, когда вас спросят, какой файл сохранения выбрать – локальный или из облака, – выберите локальный.

Link to post
Share on other sites
  • Member

Я конечно программист так себе, но придумал временный костыль в виде батника.

Нужна программа 7zip

__________

::тут вставляем ссылку на запускающий ярлык ЕГС (если пиратка то путь к экзешнику)

W:\Document\Desktop\SnowRunner.url

set process=SnowRunner.exe

:: время на запуск 15 сек
timeout /t 15

:begin

::ищем процесс с игрой если не находим идём в сексию с ARC, если есть то ждём 15мин (900 сек) и делаем бэкап сохранки
tasklist |>nul findstr /b /l /i /c:%process% || (goto :arc)
timeout /t 900 /nobreak >nul

::тут прописываем путь к сохранениям
set source="W:\Document\My Games\SnowRunner\base"

::тут куда класть архив
set destination="W:\Document\My Games\SnowRunner"
set dd=%DATE:~0,2%
set mm=%DATE:~3,2%
set yyyy=%DATE:~6,4%
set "stime=%time::='%"
set curdate=%dd%-%mm%-%yyyy%
"C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx0 -r0 %destination%\backup_%curdate%_%stime:~0,8%.zip %source%
goto :begin

:arc
exit

-----------------

Смысл скрипта - делать каждые 15 минут копию сохранения.

У меня за часов 20 игры пока проблемы с сохранками не было, но ... "бережёного Бог бережёт"

 

Edited by Finn
Link to post
Share on other sites
  • Administrator

@Finn ооо....а ведь умно))) Спасибо)

Link to post
Share on other sites
  • Member

Не много подумав понял, что моё "творение" так себе - очень криво и много лишнего. С помощью интернетов придумал другой скрипт, более логичный:

Спойлер

@echo off
SetLocal EnableExtensions
SetLocal EnableDelayedExpansion

::путь до запускающего ярлыка (для лицензии)

W:\_Document\Desktop\SnowRunner.url

::задаём место работы скрипта, папка с сохранением
cd /d W:\_Document\My Games\SnowRunner

::задаём место работы для архиватора
set source="W:\_Document\My Games\SnowRunner\base"
set destination="W:\_Document\My Games\SnowRunner"

::указывается процесс по названию окна для отслеживания
set process=SnowRunner.exe

::первоначальный подсчёт зип архивов в папке с сохранениями, счётчик в 0, потом поиск и каждый файл +1 к переменной
set file=0
for %%i in (*.zip) do set /a file+=1

::первоначальный подсчёт размера всех зип файлов в папке с сохранениями
set Rash=*.zip
set iSumL=0
FOR /F "usebackq delims=" %%I IN (`dir %Rash% /s /b /A:-d-H`) DO Set /A iSumL=!iSumL!+%%~zI
set Sum=0
set /a Sum=!iSumL!/1000000
echo All backup %file%
echo Size all backup %Sum% Mb

::ставим счётчик новых архивов в 0
set zip=0
timeout /t 5

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:begin
::указываем путь к основному сохранению
set "OneFile=W:\_Document\My Games\SnowRunner\base\storage\много буков и цифр\CompleteSave.dat"

:здесь и далее передача значений переменных следующему блоку
call :start "%OneFile%" "%curdate%" "%stime%" "%zip%" "%Sum%" "%file%" & goto next

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:start
::подсчёт даты времени файла
set "d1=%~t1"
set "d1=%d1:~6,4%%d1:~3,2%%d1:~0,2%%d1:~-5,2%.%d1:~-2%"

::начальное значение счётчика секунд
set count=600
set max_count=1
call :test "%count%" "%max_count%" "%d1%" "%OneFile%" "%curdate%" "%stime%" "%zip%" "%Sum%" "%file%" & goto next

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:test
::поиск запущенного окна процесса
tasklist |>nul findstr /b /l /i /c:%process% || (goto :end)
timeout /t 5 /nobreak >nul

::очистка экрана
cls

::вывод данных на экран
echo All backup %file%
echo Backup in game %zip%
echo Last create backup_ %curdate% %stime%
echo Size backup %Sum% Mb

::счётчик секунд -5
set /A count-=5
::если счётчик сек дошёл до 0 идём в сравнение времени если нет идём в начало
if %count% GEQ %max_count% (echo Seconds %count% & goto :test) else call :compare "%d1%" "%OneFile%" "%zip%" & goto next

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:compare
::снова берём время файла сохранения и сверяем с d1, если d2 больше d1 значит игра сохранилась, идём в архивирование
set "d2=%~t2"
set "d2=%d2:~6,4%%d2:~3,2%%d2:~0,2%%d2:~-5,2%.%d2:~-2%"
if %d1% GEQ %d2% (goto :test) else (goto :arc)

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:arc
::архивируем
set dd=%DATE:~0,2%
set mm=%DATE:~3,2%
set yyyy=%DATE:~6,4%
set "stime=%time::='%"
set curdate=%dd%-%mm%-%yyyy%
"C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx0 -r0 %destination%\backup_%curdate%_%stime:~0,8%.zip %source%

::увеличиваем на 1 счётчик бэкапов за игру
set /A zip+=1

::подсчёт зип архивов в папке с сохранениями, счётчик в 0, потом поиск и каждый файл +1 к переменной
set file=0
for %%i in (*.zip) do set /a file+=1

::подсчёт размера всех зип файлов в папке
set Rash=*.zip
set iSumL=0
FOR /F "usebackq delims=" %%I IN (`dir %Rash% /s /b /A:-d-H`) DO Set /A iSumL=!iSumL!+%%~zI
set Sum=0
set /a Sum=!iSumL!/1000000

::звук, если мешает просто удалить строку
rundll32 user32.dll,MessageBeep

call :begin "%curdate%" "%stime%" "%zip%" "%Sum%" "%file%" & goto :begin

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:end
pause
exit

Жирным - менять под себя

Суть: скрипт при запуске берёт дату и время модификации основного файла сохранения CompleteSave.dat,

когда игра делает сохранение (на экране шестерёнка) соответственно время модификации файла меняется, срипт понимая это делает бэкап.

Далее опять берётся время уже нового файла и также сравнивается с текущей один раз в 5 сек. И далее по кругу.

Скрипт закроется если не увидит игру в запущенных процессах.

Проверил, вроде работает: когда на экране отображается надпись сохранение, происходит архивация.

п.с. кому совсем не понятно, что это такое:

1. качаем архиватор 7Zip и устанавливаем (он бесплатный)

2. создаём в любой папке простой текстовый документ, называем как угодно и самое главное меняем расширение с txt на cmd

3. копируем в него весь код (всё что в споёлере)

4. прописываем пути (выделено жирным) под себя

5. сохраняем, закрываем и запускаем игру два раза клацнув на этот файл.

 

п.п.с.

Начал им пользоваться и увидел что игра делает сохранение каждые 2 минуты и за 3 часа игры срипт наделал просто прорву сохранений.

Поэтому ещё почесав ещё интернеты прикрутил к срипту счётчик (жирным 600) который отсчитывает время до проверки файла сохранения.

Т.е. теперь проверка идёт не каждые 5 сек, а каждые 600 (10 мин, можно поменять под себя), уменьшая количество бэкапов в разы.

Кому нужно можно поставить вместо 600 - 1, тогда пойдёт отрицательный счёт и скрипт будет сохранять каждое сохранение игры.

 

п.п.п.с

ещё немного пошаманил, теперь скрипт показывает:

1 количество бэкапов в папке с сохранениями,

2 сумму всех архивов, чтоб было понятно занятое ими место на диске

3 сколько раз за время игры сделано сохранений

4 имя последнего сделанного во время игры архива

5 счетчик секунд до архивирования (идёт с шагом 5)

Добавил противный сигнал после сохранения, для отключения можно просто удалить строчку.

Окно не закрывается после окончания автоматически, что бы посмотреть выше приведённую информацию.

Edited by Finn
прикрутил к скрипту счётчики
  • Good 1
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.