The Long Dark копировать сохранения в игре
С выходом последних обновлений 1,67 замечательной игрушки The Long Dark, прибавились некоторые баги, куда уж без них денешься. Волки перестали есть приманку, лоси перестали боятся огня, пострадала механика кровотечения у медведей. Соответственно тебя все чаще и чаще убивают. Что бывает очень обидно на сложности НГ с выживанием более 500 дней. Соответственно приходится возится с сохранениями. Решил немножко автоматизировать сей процесс.
Сделал малюсенькую софтинку - TLD Save, которая раз в минуту или реже копирует мои сохранения в папку на компьютере. Теперь я ее запускаю перед игрой, и нет необходимости каждый раз когда тебя убивают, судорожно нажимать alt+F4.
Я просто иду в папку с копиями моих сохранений -
беру нужное сохранение и продолжаю игру с нужного мне места.
Код на паскале
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, ShellAPI;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit2: TEdit;
Label7: TLabel;
Label8: TLabel;
Edit3: TEdit;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Panel4Click(Sender: TObject);
procedure Panel5Click(Sender: TObject);
procedure Panel3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses Unit2;
//функция копирования папки
function CopyDir(fromDir, toDir: string): boolean;
var
fos: TSHFileOpStruct;
todir2: string;
begin
todir2:=todir;
ZeroMemory(@fos, SizeOf(fos));
with fos do
begin
wFunc := FO_COPY;
//fFlags := FOF_FILESONLY;
fFlags:= FOF_SIMPLEPROGRESS;
fflags:= fflags or FOF_NOCONFIRMATION;
fflags:= fflags or FOF_SILENT;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir2);
end;
Result := (0 = ShFileOperation(fos));
end;
procedure TForm1.FormCreate(Sender: TObject);
var s : string;
begin
s :=ExtractFilePath(GetEnvironmentVariable('APPDATA'))+'Local\Hinterland\';
Edit1.Text:=s; // откуда брать сохранения
Edit2.Text:='C:\tld_saves\'; // путь для куда сохранять по умолчанию
Panel3.Caption:='Пуск'; //название кнопки пуск
Timer1.Enabled:=false; //таймер не запущен
end;
procedure TForm1.Panel3Click(Sender: TObject);
begin
if Timer1.Enabled
then //если программа работает
begin
Timer1.Enabled:=False; //останавливаем таймер
Panel3.Caption:='Пуск'; //меняем название кнопки
end
else //если программа не работает
begin
Timer1.Enabled:=True; //запускаем таймер
Panel3.Caption:='Стоп'; //меняем название кнопки
end
end;
procedure TForm1.Panel4Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Panel5Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
times: integer;
dаta:string;
frdir :string;
tdir :string;
begin
times :=StrToInt(Edit3.Text)*60000;
Timer1.Interval:=times;
data := FormatDateTime('ddmmyyyy" "hh-nn-ss', Now);
frdir := Edit1.Text;
frdir := IncludeTrailingPathDelimiter(frdir);
tdir := Edit2.Text;
tdir := IncludeTrailingPathDelimiter(tdir);
tdir := tdir+data+'\Hinterland\';
CopyDir(PChar (frdir+'*.*'), PChar (tdir));
end;
end.
Исходники для RAD Studio Delphi
Исходники на Ядиске
Сама программка
Хеш суммы файла
CRC32: 60EFC124
MD5: F6754646E4FE6B799FC67CEE1FFB7C9B
SHA-1: 38C94E17276A908965DD3C0720EB965F9E7449AD
Вирустотал - https://www.virustotal.com/gui/file/386f007649133538c6d4a56d8fd89391676002e25bfe45ba1f1cdb56bffa1bb4/detection
Скачать
Скачать с Ядиска