Marik - 20 дек 2019 15:26 0

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
tld_save.7z [42.08 Kb] (cкачиваний: 4)
Исходники на Ядиске
Сама программка
Хеш суммы файла
CRC32: 60EFC124
MD5: F6754646E4FE6B799FC67CEE1FFB7C9B
SHA-1: 38C94E17276A908965DD3C0720EB965F9E7449AD
Вирустотал - ​https://www.virustotal.com/gui/file/386f007649133538c6d4a56d8fd89391676002e25bfe45ba1f1cdb56bffa1bb4/detection​​​
Скачать
Скачать с Ядиска




Другие статьи по теме:

Комментарии

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

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent
Marik.kz. Блог. При использовании информации, пожалуйста указывайте ссылку на оригинал.