Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define MyAppName "Deimog"
- #define MyVersionInfo="0.1.0.4"
- #define MyAppVersion "v1.0.69 11/13/2024"
- #define MyAppPublisher "BethesdaGameStudios"
- #define MyAppURL "https://creations.bethesda.net/en/starfield/details/e3295393-57db-47ba-91e4-2ba74133856a/Deimog"
- #define MyAppExeName "DeimogVehicle.exe"
- [Setup]
- AppId={{D954578E-053C-4D28-A5E2-111D12D6C704}
- AppName={#MyAppName}
- AppVersion={#MyAppVersion}
- AppPublisher={#MyAppPublisher}
- AppPublisherURL={#MyAppURL}
- AppSupportURL={#MyAppURL}
- AppUpdatesURL={#MyAppURL}
- ArchitecturesAllowed=x64compatible
- ArchitecturesInstallIn64BitMode=x64compatible
- DefaultGroupName={#MyAppName}
- DisableProgramGroupPage=yes
- PrivilegesRequiredOverridesAllowed=dialog
- OutputBaseFilename=DeimogVehicle
- Compression=lzma2
- SolidCompression=yes
- WizardStyle=modern
- LanguageDetectionMethod=UILanguage
- DefaultDirName=C:\Games\Starfield.Digital.Premium.Edition-InsaneRamZes
- OutputDir=D:\media\!Downloads\Starfield_mods\Deimog
- SetupIconFile=D:\media\!Downloads\Starfield_mods\favicon.ico
- InfoBeforeFile=D:\media\!Downloads\Starfield_mods\Deimog\Description_eng.txt
- LicenseFile=D:\media\!Downloads\Starfield_mods\!License\mit_eng.txt
- VersionInfoVersion={#MyVersionInfo}
- AppendDefaultDirName=No
- [Languages]
- Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
- Name: "english"; MessagesFile: "compiler:Default.isl"
- [Files]
- Source: "Deimog v1.0.69\sfbgs019.esm"; DestDir: "{app}\data"; Flags: ignoreversion
- Source: "Deimog v1.0.69\sfbgs019 - main.ba2"; DestDir: "{app}\data"; Flags: ignoreversion
- Source: "Deimog v1.0.69\sfbgs019 - textures.ba2"; DestDir: "{app}\data"; Flags: ignoreversion
- [Icons]
- Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
- Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
- [CustomMessages]
- russian.StarfieldIniMissing=Файл "Starfield.ini" не найден в выбранном каталоге. Пожалуйста, выберите корректный каталог.
- russian.CreateFolderError=Ошибка. Не удалось создать каталог:
- english.DescriptionFile=Description in English.
- english.LicenseFile=License in English.
- english.StarfieldIniMissing=The file "Starfield.ini" was not found in the selected folder. Please choose the correct folder.
- english.CreateFolderError=Error. Failed to create the directory:
- [Code]
- var
- TargetFolder, TargetFile, PluginEntry: string;
- // DescriptionPath, LicensePath: string;
- //Пропишем основные пути и файлы
- procedure InitializeGlobals;
- begin
- TargetFolder := ExpandConstant('{localappdata}\starfield\');
- TargetFile := TargetFolder + 'plugins.txt';
- PluginEntry := '*sfbgs019.esm';
- //DescriptionPath := 'D:\media\!Downloads\Starfield_mods\Deimog\';
- //LicensePath := 'D:\media\!Downloads\Starfield_mods\!License\';
- end;
- //Проверяем наличие Starfield.ini, чтобы убедиться, что пользователь выбрал корректный каталог с игрой
- function CheckStarfieldIni(): Boolean;
- var
- IniPath: string;
- begin
- IniPath := AddBackslash(WizardForm.DirEdit.Text) + 'Starfield.ini';
- Result := FileExists(IniPath);
- if not Result then
- MsgBox(ExpandConstant('{cm:StarfieldIniMissing}'), mbError, MB_OK);
- end;
- //Если каталог выбран невереный, то не пускаем дальше
- function NextButtonClick(CurPageID: Integer): Boolean;
- begin
- Result := True;
- if CurPageID = wpSelectDir then
- begin
- if not CheckStarfieldIni() then
- Result := False;
- end;
- end;
- //Проверяем наличие каталога и создаём если его нет
- procedure EnsureDirectoryExists(Dir: string);
- begin
- if not DirExists(Dir) then
- begin
- if not CreateDir(Dir) then
- MsgBox(ExpandConstant('{cm:CreateFolderError}' + Dir), mbError, MB_OK);
- end;
- end;
- //Создаём пустой файл, если он отсутствует
- procedure EnsureFileExists(FileName: string);
- begin
- if not FileExists(FileName) then
- TStringList.Create.SaveToFile(FileName);
- end;
- //Запускаем проверку и создание каталогов/файлов, добавляем строку в файл.
- procedure AddPluginEntry;
- var
- FileList: TStringList;
- begin
- EnsureDirectoryExists(TargetFolder);
- EnsureFileExists(TargetFile);
- FileList := TStringList.Create;
- try
- FileList.LoadFromFile(TargetFile);
- FileList.Duplicates := dupIgnore;
- if FileList.IndexOf(PluginEntry) = -1 then
- FileList.Add(PluginEntry);
- FileList.SaveToFile(TargetFile);
- finally
- FileList.Free;
- end;
- end;
- //При удалении мода удаляем добавленную строку из файла
- procedure RemovePluginEntry;
- var
- FileList: TStringList;
- i: Integer;
- begin
- if not FileExists(TargetFile) then
- Exit;
- FileList := TStringList.Create;
- try
- FileList.LoadFromFile(TargetFile);
- for i := FileList.Count - 1 downto 0 do
- begin
- if CompareText(FileList[i], PluginEntry) = 0 then
- FileList.Delete(i);
- end;
- FileList.SaveToFile(TargetFile);
- finally
- FileList.Free;
- end;
- end;
- //При удалении запускаем удаление строки из файла
- procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
- begin
- if CurUninstallStep = usPostUninstall then
- begin
- InitializeGlobals;
- RemovePluginEntry;
- end;
- end;
- //Встроим описание и лицензию
- procedure InitializeWizard;
- begin
- if ActiveLanguage = 'russian' then
- begin
- WizardForm.LicenseMemo.Lines.Text := 'Copyright (c) 2024 3-50' + #13#10 +
- 'Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (далее — Программное обеспечение), безвозмездно использовать Программное обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также лицам, которым предоставляется данное Программное обеспечение, при соблюдении следующих условий:' + #13#10 +
- 'Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного обеспечения.' + #13#10 +
- 'ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.';
- WizardForm.InfoBeforeMemo.Lines.Text := 'Деймог v1.0.69' + #13#10 +
- 'https://creations.bethesda.net/en/starfield/details/e3295393-57db-47ba-91e4-2ba74133856a/Deimog' + #13#10 +
- 'После покупки транспортного средства у продавца кораблей, Деймог автоматически появится в вашем ангаре.' + #13#10 +
- 'Установленная на нём ракетная установка может быть улучшена с помощью навыков разрушение, владением тяжёлым оружием, стрельба от бедра и точная стрельба.' + #13#10 +
- + #13#10 +
- 'Cпасибо Wolverines за предоставленные файлы.' + #13#10 +
- + #13#10 +
- 'Инсталлятор v1.04 делает следующее:' + #13#10 +
- '1. В каталог DATA игры копируются файлы: sfbgs019.esm, sfbgs019 - textures.ba2, sfbgs019 - main.ba2;' + #13#10 +
- '2. По умолчанию используется путь: C:\Games\Starfield.Digital.Premium.Edition-InsaneRamZes' + #13#10 +
- 'ВАЖНО: Если у вас в другом, то укажите (указывать надо каталог с игрой, корректность каталога проверяется по наличию файла starfield.ini);' + #13#10 +
- '3. Для активации мода в файл plugins.txt, который находится здесь %localappdata%\starfield, добавляется строка *sfbgs019.esm. Если файл или каталог отсутствуют, то они создаются;' + #13#10 +
- '4. Запускать от администратора требуется, если игра находится в каталогах типа program files;' + #13#10 +
- '5. При удалении мода внесённые изменения откатываются;' + #13#10 +
- '6. ВАЖНО: при игре с модами достижения отключаются, для их включения нужно установить Baka Achievement Enabler (SFSE) (https://www.nexusmods.com/starfield/mods/658).' + #13#10 +
- + #13#10 +
- 'Исходный код для InnoSetup 6.*' + #13#10 +
- 'https://pastebin.com/1jRGYi3x'
- end
- else
- begin
- WizardForm.LicenseMemo.Lines.Text := 'Copyright (c) 2024 3-50' + #13#10 +
- 'Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:' + #13#10 +
- 'The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.' + #13#10 +
- 'THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.';
- WizardForm.InfoBeforeMemo.Lines.Text := 'Deimog v1.0.69' + #13#10 +
- 'https://creations.bethesda.net/en/starfield/details/e3295393-57db-47ba-91e4-2ba74133856a/Deimog' + #13#10 +
- 'Once you`ve purchased vehicle access at a Ship Vendor, the Deimog will automatically appear in your vehicle hangar.' + #13#10 +
- 'The mounted rocket launcher can be upgraded through Demolitions, Heavy Weapon Certification, Targeting, and Sharpshooting skills.' + #13#10 +
- + #13#10 +
- 'Thanks to Wolverines for the provided files.' + #13#10 +
- + #13#10 +
- 'The installer v1.04 performs the following actions:' + #13#10 +
- '1. Copies the files sfbgs019.esm, sfbgs019 - textures.ba2, and sfbgs019 - main.ba2 to the game`s DATA directory;' + #13#10 +
- '2. By default, the path is set to C:\Games\Starfield.Digital.Premium.Edition-InsaneRamZes.' + #13#10 +
- 'IMPORTANT: If your game is located elsewhere, you must specify the correct directory (the exact folder containing the game).' + #13#10 +
- '3. To activate the mod, it adds the line *sfbgs019.esm to the plugins.txt file located at %localappdata%\starfield. If the file or directory is missing, they will be created.' + #13#10 +
- '4. Administrator rights are required if the game is installed in system directories like Program Files.' + #13#10 +
- '5. When uninstalling the mod, all changes made by the installer are reverted.' + #13#10 +
- '6. IMPORTANT: Playing with mods disables achievements. To re-enable them, you must install Baka Achievement Enabler (SFSE) (https://www.nexusmods.com/starfield/mods/658).' + #13#10 +
- + #13#10 +
- 'Source Code for InnoSetup 6.*' + #13#10 +
- 'https://pastebin.com/1jRGYi3x'
- end;
- end;
- //При установке запускаем проверку и создание каталогов/файлов, добавляем строку в файл.
- function InitializeSetup: Boolean;
- begin
- InitializeGlobals;
- AddPluginEntry;
- Result := True;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement