Сохранение/восстановление профилей и настроек в играх



(см. также опцию "VIP-клиенты"->"Перенаправление системных папок")

Часто бывают ситуации, когда пользователю нужно сохранить свои настройки в играх, чтобы потом через некоторое время к ним вернуться и продолжать игру, не заботясь о том, что кто-то другой удалит профиль его игрока или изменит настройки.
Специально для этого в шелле предусмотрена возможность удобного сохранения/восстановления настроек и профилей для программ и игр.
В свойствах ярлыка выберите файл с описанием настроек для игры. Предварительно такой файл нужно создать.
Далее пользователь будет просто выбирать пункт в контекстном меню ярлыка и использовать Drag&Drop совместно с проводником пользователя.
Таким образом, пользователь не имеет прямого доступа к файлам игры, а вместо этого быстро и удобно перепишет нужные данные.
Пример файла настроек показан ниже:


;------------------------
;
; Этот файл содержит примеры описания сохранений/восстановлений настроек или профилей игр/программ
;
; Файл состоит из секций (Section1, Section2, ... Section16)
; Каждая секция описывает соответствующий пункт контекстного меню ярлыка и определяет действия,
; которые будут произведены с данными.
; Все секции делятся на 2 типа: In (копирование данных в программу) и Out (копирование из программы).
; Переменные внутри секции задают ее поведение.
; В значениях переменных допускается использование подстановочных параметров:
; %MYDOCS% - папка "Мои документы" (обычно "C:\Documents and Settings\username\My Documents")
; %COMMON_DOCUMENTS% - папка "Общие документы" (обычно "C:\Documents and Settings\All Users\Documents")
; %LOCAL_APPDATA% - (обычно "C:\Documents and Settings\username\Local Settings\Application Data")
; %APPDATA% - (обычно "C:\Documents and Settings\username\Application Data")
; %COMMON_APPDATA% - (обычно "C:\Documents and Settings\All Users\Application Data")
; %DATE% - текущая дата в формате ГГГГ_ММ_ДД
; %TIME% - текущее время в формате ЧЧ_ММ
; %PARMn% - значение введенного пользователем параметра номер n (n=1..16)
; также допускается использование стандартных переменных окружения, например %WINDIR%
; 
; Общие переменные для направлений In и Out:
; Direction=<направление> - задает направление (укажите In или Out)
; Title=<строка> - название секции и пункта меню
; Help=<строка> - строка помощи для пользователя, которая будет отображаться каждый раз при выборе пункта меню ярлыка
; ParmX=<строка> - задает название параметра, который будет вводиться пользователем (X=1..16)
; DefParmX=<строка> - задает значение параметра по умолчанию (X=1..16)
;    Например:   Parm1=введите имя игрока:
;                DefParm1=игрок1
;    Далее к значениям введеных параметров можно обращаться по их номеру: %PARM1%, %PARM2%....
; BaseFolder=<путь> - базовый путь, откуда или куда будут копироваться все файлы
;                     если пустой или не указан, то берется текущая директория игры/программы;
;                     если путь относительный, например "data\", то будет браться папка внутри директории программы;
;                     допускаются также и абсолютные пути или же пути с подстановочными параметрами;
;                     например: "%LOCAL_APPDATA%\Game\"
;                     или: "D:\Games\Steam\SteamApps\%PARM1%\"
;
; Переменные для направлений In (в программу):
; Quota=<размер_в_МБ> - задает максимальный размер копируемых данных в мегабайтах;
;                       если не указан или 0, значит размер не будет ограничиваться;
;                       допускаются только целые числа (1,2,3...)
; AllowedMasks=<mask1>;<mask2>;... - задает допустимые маски файлов для копирования,
;                                 это нужно для того, чтобы пользователь не скопировал "что-то лишнее";
;                                 если строка пуста или не указана, то разрешены все файлы;
;                                 Пример: AllowedMasks=*.sav;config.cfg;data?.dat;f*.fil
; InSource=<источник> - задает папку или файл для копирования в BaseFolder;
;                       если не указать или указать пустым, то пользователь сам будет выбирать свою папку 
;                       или файл из проводника для копирования, однако бывает нужным не давать возможности
;                       пользователю копировать произвольные данные, а копировать данные из фиксированной
;                       папки или фиксированный файл. В этом случае укажите путь к файлу/папке;
;                       например: \\server\data\folder\
;                       использовать маски "*" и "?" здесь не разрешено!
;                       относительные пути здесь также не разрешены, используйте только абсолютные!
; Важно! В режиме копирования в программу разрешено копировать только один файл или одну папку,
; причем если выбрать папку, то будет скопировано все ее содержимое (рекурсивно) 
; не включая само имя папки. Если же нужно включить имя папки, то установите переменную:
; CopyWithFolder=Yes
;
; Переменные для направлений Out (из программы):
; SaveAs=<название> - название папки (без путей!), под которой будут сохранены все данные (например, GAME_%DATE%)
; FileX=<имя_файла> - задает файлы или папки внутри базовой папки, которые будут копироваться (X=1..16);
;                     допускается использование масок "*" и "?"
;                     Например:
;                      File1=*.sav         - все файлы .sav
;                      File2=data\         - папка "data" со всем ее содержимым
;                      File3=%PARM2%.dat   - файл, имя которого зависит от введенного пользователем параметра
;                      File4=%PARM3%\*.cfg - все файлы .cfg в папке, имя которой вводит пользователь
; 
; Ниже рассмотрены примеры:
;

; ----  Это пример для игры DOOM1 ----
[Section1]
Direction=Out
Title=Сохранить профиль игрока DOOM
Parm1=Номер слота (начиная с 0):
DefParm1=0
Parm2=Имя папки для сохранения:
DefParm2=DOOM_%DATE%_%TIME%
SaveAs=%PARM2%
BaseFolder=
File1=doomsav%PARM1%.dsg

[Section2]
Direction=In
Title=Восстановить профиль игрока DOOM
BaseFolder=
Quota=1
AllowedMasks=*.dsg

[Section3]
Direction=In
Title=Переписать свои настройки в игру DOOM
BaseFolder=
Quota=1
AllowedMasks=*.cfg
;----------------------------------------


; ----  Это пример для игры NFS Underground 2 (только образец) ----
[Section5]
Direction=Out
Title=Сохранить профиль игрока NFS
Parm1=Имя игрока:
DefParm1=Игрок 1
SaveAs=NFS_%DATE%
BaseFolder=%LOCAL_APPDATA%\NFS Underground 2\
File1=%PARM1%

[Section6]
Direction=In
Title=Восстановить профиль игрока NFS
BaseFolder=%LOCAL_APPDATA%\NFS Underground 2\
Quota=2
AllowedMasks=
;----------------------------------------