Вопрос Вопрос по установки

Косой

Новичок
За примером ходить далеко не нужно - Репаки от FitGirls. Что мы видим? - Простейший инсталл, без наворотов, даже без Ботвы
На мой взгляд инсталл фитгирла самый ужасный, что я видел. Аргументирую:
1. Слайды на весь экран, закрывающие все панели (либо интсалл сворачивать постоянно или жать кнопку win) (нафига они вообще, ибо формой инсталла перекрыто треть изображения);
2. Никчёмная музыка (да ещё и какая-то противная на слух) (Тогда бы уж из саунтрека игры музыку делал);
3. Сам инсталл кривоватый: а) даже если произошла ошибка при установке или нажать "отмена распаковки" на финишной странице остаётся чекбокс "запустить игру";
б) даже если снять галки "скачать и установить софт", то в темп всё равно качается всякий визуал и директХ;
И да, у фитгирла всё же есть ботва - кнопка музыки на ботве.:)
 

Timick

Старожил
Косой, я просто пример привёл))
P.S.: Да, чет забыл, что кнопочка на ботве)))
P.S.S.: Ну благо, что русский реп не ставит, а то совсем бы всё плохо было)
 

Ученик_77

Участник
Не знаю, у меня все норммально. Проверьте в другом разделе:
SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{45EC12BE-B8E5-4949-8445-E32F264039C3}_is1 ...
Ага, спасибо, посмотрю.
А он нужен, такой весь красивый-то? (я про инстллятор)
Да я не о красивостях пекусь, хотя тут вы не совсем правы.
То есть вы абсолютно правы, что он он бессмысленен по сути, но рядовым "качателям"( а не специалистам, коих в тысячи раз меньше), он крайне необходим. Я на это насмотрелся, как Гоша с "Москвы-слезам" :D.
Даже оформление раздачи влияет на её скачиваемость, а уж что говорить про завораживающие картинки репакоустановщик-офф.:happy:
Процентов семьдесят, а может и больше (из тех, что не желают платить, но хотят играть, что вполне понятно), абсолютно не осознают разницы между такими понятиями как "лицензия", "репак", "рип" и "стим-рип". А мы, то есть я, то есть релизёр/репакер/инсталловаятель всё равно все нехорошие редиски, ведь у них не запускается....
Шо им до инсталла, ботвы и фриарков.:D
 

Ученик_77

Участник
SBalykov, спасибо за вновь присланный скрипт шаблона с Метро.
И за пояснения, конечно.
Это именно то, что мне требуется.
Попробую на днях сначала самостоятельно, а потом, наверно, помощи просить буду :$, переделать его под установку репака, а не стим-рипа и пиратки.
Я уже задавал тут вопрос ранее и мне давали ссылки, да и сам я гуглил (возможно плохо или ещё что), но толковых сведений так и не обнаружил.
Я вот что спрашивал.
Хочу делать репак, предполагаю установку модов и англо-русских интерфейсов, как запаковать их (моды, русификаторы) в отдельные файлы, чтобы каждый мог скачать то, что желает установить, а не всё скопом.
Не особо понял, как картинки инсталлятора влияют на скачиваемость раздачи.
Вероятно, рядовые игроманы репакоюзеры считают наличие картинковых установщиков с кнопочками и всем таким несомненным признаком качества.
Не говорю, конечно, что это всегда не так, но, определённо, не так всегда.:D
 

Ученик_77

Участник
Ошибку выдаёт в параметре UninstallDisplaySize = 12564303872.
Пишет ошибка в секции.
#define TotalNeedSize "10526" - здесь в мб, выше - в байтах.
 

Ученик_77

Участник
Вот он.
SBalykov, по крайне присланному скрипт-фиксу запаковал.
Отображение размера снова отсутствует в "Программах и компонентах".
 

Вложения

Последнее редактирование:

SBalykov

Старожил
Вот он.
SBalykov, по крайне присланному скрипт-фиксу запаковал.
Отображение размера снова отсутствует в "Программах и компонентах".
Вы уж будьте повнимательнее, когда что-либо меняете или делаете ...
Код:
#define AppId "{2F9521AA-DBD8-478F-A54C-5BF2E0E0D262}"
//==========
[Setup]
AppId = {{#AppId}
 

Вложения

Последнее редактирование:

Ученик_77

Участник
Скажите, пожалуйста.
Правильно ли сделано.
Пытался прописать установку вариантов с разными таблетками:
Код:
[Components]
Name: g; Description: Варианты установки; Flags: disablenouninstallwarning
Name: g\g0; Description: Stellaris - Galaxy Edition; Flags: fixed
Name: g\g1; Description: Альтернативные таблетки (от жадности, конечно); Flags: checkablealone
Name: g\g1\T; Description: Crack REVOLT(Для Singleplayer and Online. Для Online нужен Steam); Flags: exclusive checkablealone
Name: g\g1\Y; Description: Crack от SmartSteamEmu (Для Singleplayer, LAN and Online); Flags: exclusive checkablealone


[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"

[Files]
Source: ISSkin.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: steam.cjstyles; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

Source: "F:\Stellaris.Galaxy.Edition-3DM\Stellaris\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g0
Source: "F:\Stellaris.Galaxy.Edition-3DM\Stellaris\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g1\T
Source: "F:\Распаковки\Stellaris.Steamworks.Fix-RVTFiX\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g1\T
Source: "F:\Stellaris.Galaxy.Edition-3DM\Stellaris\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g1\Y
Source: "F:\Распаковки\Stellaris.SmartSteamEmu\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g1\Y
[Icons]
Name: "{group}\Stellaris - Galaxy Edition"; Filename: "{app}\stellaris.exe"; WorkingDir: "{app}";
Name: "{userdesktop}\Stellaris - Galaxy Edition"; Filename: "{app}\stellaris.exe"; WorkingDir: "{app}"; Tasks: desktopicon;
Name: "{group}\{cm:UninstallProgram,Stellaris - Galaxy Edition}"; Filename: "{uninstallexe}"
И ещё вопрос, как прописать создание ярлыка под другой екзе, шоб при выборе альтернативной таблетки Crack от SmartSteamEmu (Для Singleplayer, LAN and Online) он прописывался.
 

SBalykov

Старожил
Скажите, пожалуйста.
Правильно ли сделано.
Пытался прописать установку вариантов с разными таблетками:
Код:
[Components]
Name: g; Description: Варианты установки; Flags: disablenouninstallwarning
Name: g\g0; Description: Stellaris - Galaxy Edition; Flags: fixed
Name: g\g1; Description: Альтернативные таблетки (от жадности, конечно); Flags: checkablealone
Name: g\g1\T; Description: Crack REVOLT(Для Singleplayer and Online. Для Online нужен Steam); Flags: exclusive checkablealone
Name: g\g1\Y; Description: Crack от SmartSteamEmu (Для Singleplayer, LAN and Online); Flags: exclusive checkablealone


[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"

[Files]
Source: ISSkin.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: steam.cjstyles; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

Source: "F:\Stellaris.Galaxy.Edition-3DM\Stellaris\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g0
Source: "F:\Stellaris.Galaxy.Edition-3DM\Stellaris\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g1\T
Source: "F:\Распаковки\Stellaris.Steamworks.Fix-RVTFiX\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g1\T
Source: "F:\Stellaris.Galaxy.Edition-3DM\Stellaris\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g1\Y
Source: "F:\Распаковки\Stellaris.SmartSteamEmu\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g1\Y
[Icons]
Name: "{group}\Stellaris - Galaxy Edition"; Filename: "{app}\stellaris.exe"; WorkingDir: "{app}";
Name: "{userdesktop}\Stellaris - Galaxy Edition"; Filename: "{app}\stellaris.exe"; WorkingDir: "{app}"; Tasks: desktopicon;
Name: "{group}\{cm:UninstallProgram,Stellaris - Galaxy Edition}"; Filename: "{uninstallexe}"
И ещё вопрос, как прописать создание ярлыка под другой екзе, шоб при выборе альтернативной таблетки Crack от SmartSteamEmu (Для Singleplayer, LAN and Online) он прописывался.
Примерно так
Код:
[Components]
Name: g; Description: Варианты установки; Flags: disablenouninstallwarning
Name: g\g0; Description: Stellaris - Galaxy Edition; Flags: fixed
Name: g\g1; Description: Альтернативные таблетки (от жадности, конечно); Flags: checkablealone
Name: g\g1\T; Description: Crack REVOLT(Для Singleplayer and Online. Для Online нужен Steam); Flags: exclusive checkablealone
Name: g\g1\Y; Description: Crack от SmartSteamEmu (Для Singleplayer, LAN and Online); Flags: exclusive checkablealone


[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"

[Files]
Source: ISSkin.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: steam.cjstyles; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

Source: "F:\Stellaris.Galaxy.Edition-3DM\Stellaris\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g0
Source: "F:\Распаковки\Stellaris.Steamworks.Fix-RVTFiX\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g1\T
Source: "F:\Распаковки\Stellaris.SmartSteamEmu\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g\g1\Y

[Icons]
Name: "{group}\Stellaris - Galaxy Edition"; Filename: "{app}\stellaris.exe"; WorkingDir: "{app}"; Check: NoIcons;
Name: "{userdesktop}\Stellaris - Galaxy Edition"; Filename: "{app}\stellaris.exe"; WorkingDir: "{app}"; Tasks: desktopicon; Check: Desktop and not Lan;
Name: "{userdesktop}\Stellaris - Galaxy Edition"; Filename: "{app}\stellaris_lan.exe"; WorkingDir: "{app}"; Tasks: desktopicon; Check: Desktop and Lan;
Name: "{group}\{cm:UninstallProgram,Stellaris - Galaxy Edition}"; Filename: "{uninstallexe}"; Check: NoIcons;

[Code]

(*** Создания Папки в Меню Пуск ************)
function NoIcons: Boolean;
begin
Result := BtnGetEnabled(GroupBrowseButton); // создаете checkbox
end;

(*** Ярлык на Рабочий Стол *****************)
function Desktop: Boolean;
begin
Result := BtnGetChecked(DesktopButton); // создаете checkbox
end;

(*** Ярлык LAN/Online **********************)
function Lan: Boolean;
begin
Result := BtnGetChecked(LanButton); // создаете checkbox
end;
 

Ученик_77

Участник
Посмотрите, пожалуйста, ещё раз мой скрипт, так сказать.
Ставились цели:
- Установка игры (с флагом fixed)
- Установка альтернативных кряков.
- Создание ярлыков под каждый кряк
Что получил:
- Ярлыки верные, возможно и не самым верным путём, но работают.
- Неверное отображение места для установки (умножает на 2 при выборе альткряков)
- И ещё мне заподозрлось, что основные файлы пакуются и ставятся дважды. ( я, наверно, даже уже понял почему, но нужен совет мастеров).
Заранее спасибо.
 

Вложения

SBalykov

Старожил
Посмотрите, пожалуйста, ещё раз мой скрипт, так сказать.
Ставились цели:
- Установка игры (с флагом fixed)
- Установка альтернативных кряков.
- Создание ярлыков под каждый кряк
Что получил:
- Ярлыки верные, возможно и не самым верным путём, но работают.
- Неверное отображение места для установки (умножает на 2 при выборе альткряков)
- И ещё мне заподозрлось, что основные файлы пакуются и ставятся дважды. ( я, наверно, даже уже понял почему, но нужен совет мастеров).
Заранее спасибо.
Пробуйте ...
 

Вложения

Ученик_77

Участник
Здравствуйте уважаемые специалисты.
Не стал создавать новой темы, решил продолжить в этой.
Есть скрипт - http://rgho.st/6jcrRVyZk.
Не пойму как (и можно ли именно в таком варианте скрипта ?) прописать установку (или отказ от неё) отдельными компонентами архивов DLC.arc, MoviesPC.arc, MoviesPC-HD.arc ?
Помогите, пожалуйста.))
 

Ученик_77

Участник
Avengerz13, вероятно, да.
При данной форме скрипта и упаковки/распаковки это возможно ?
Просто делал такое ранее только при простой форме установщика (через Инно) без всяких картинок и шрифтов.
Как быть в данном случае - не знаю.
Пока умею с этим скриптом организовать только простую установку.
 

Avengerz13

Участник
Ученик_77, Цитата из справки:
распаковка архивов, учитывая выбранные компоненты.
Код:
[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
Name: text; Description: Язык субтитров; Types: full; Flags: fixed
Name: text\rus; Description: Русский; Flags: exclusive;
Name: text\eng; Description: Английский; Flags: exclusive;
Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
Name: voice\rus; Description: Русский; Flags: exclusive;
Name: voice\eng; Description: Английский; Flags: exclusive;

....

Comps1:=0; Comps2:=0; Comps3:=0;
TmpValue:=1;
if IsComponentSelected('text\rus') then Comps1:=Comps1+TmpValue; //компонент 1
TmpValue:=TmpValue*2;
if IsComponentSelected('text\eng') then Comps1:=Comps1+TmpValue; //компонент 2
TmpValue:=TmpValue*2;
if IsComponentSelected('voice\rus') then Comps1:=Comps1+TmpValue; //компонент 3
TmpValue:=TmpValue*2;
if IsComponentSelected('voice\eng') then Comps1:=Comps1+TmpValue; //компонент 4

....

ISDoneError:=true;
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, {#NeedMem}, @ProgressCallback) then begin
  repeat
    if not FileSearchInit(false) then break;
    if not ISArcExtract ( 0, 0, ExpandConstant('{src}\BasicData.arc'), ExpandConstant('{app}\'), '', false, '', '', '', notPCFonFLY) then break;
    if not ISArcExtract ( 1, 0, ExpandConstant('{src}\rustext.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
    if not ISArcExtract ( 2, 0, ExpandConstant('{src}\engtext.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
    if not ISArcExtract ( 3, 0, ExpandConstant('{src}\rusvoice.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
    if not ISArcExtract ( 4, 0, ExpandConstant('{src}\engvoice.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
    ISDoneError:=false;
  until true;
  ISDoneStop;
end;
в данном примере имеется 4 действующих компонента. Перед инициализацией бибилиотеки состояния чекбоксов компонентов загружаются в переменную Comps1.
Сначала при любом выборе компонентов распаковывается архив BasicData.arc, у которого нет к ним привязки (первый параметр равен 0);
далее уже в зависимости от выбранных пользователем чекбоксов будет распаковываться:
rustext.arc, если был выбран компонент 'text\rus';
engtext.arc, если был выбран компонент 'text\eng';
rusvoice.arc, если был выбран компонент 'voice\rus';
engvoice.arc, если был выбран компонент 'voice\eng';
Вне зависимости от выбора пользователя, прогрессбар автоматически подстраивается под выбранные компоненты, чтобы отображение было без равков и граничным состоянием было 100%. Это достигается тем, что после тестового прохода вся информация о времени выполнения каждого компонента сохраняется в файл records.inf и перед началом реальной установки уже известно какие компоненты не были выбраны и, соответственно, их время будет интерполироваться на все остальные операции, которые точно будут выполнены в процессе установки.
 

Ученик_77

Участник
Можно ещё пару вопросов.
Вот в справке
[Components]
Name: text; Description: Язык субтитров; Types: full; Flags: fixed
Name: text\rus; Description: Русский; Flags: exclusive;
Name: text\eng; Description: Английский; Flags: exclusive;
Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
Name: voice\rus; Description: Русский; Flags: exclusive;
Name: voice\eng; Description: Английский; Flags: exclusive;
У меня такие компоненты, четыре обязательных архива Data.arc,Data-1.arc,Data-2.arc,Data-3.arc.
И три на выбор: DLC.arc, MoviesPC.arc, MoviesPC-HD.arc.
Что мне прописать в секции [Components].
И что в этой части:
Код:
Comps1:=0; Comps2:=0; Comps3:=0;
TmpValue:=1;
if IsComponentSelected('text\rus') then Comps1:=Comps1+TmpValue; //компонент 1
TmpValue:=TmpValue*2;
if IsComponentSelected('text\eng') then Comps1:=Comps1+TmpValue; //компонент 2
TmpValue:=TmpValue*2;
if IsComponentSelected('voice\rus') then Comps1:=Comps1+TmpValue; //компонент 3
TmpValue:=TmpValue*2;
if IsComponentSelected('voice\eng') then Comps1:=Comps1+TmpValue; //компонент 4
Убрать лишнюю строчку а в трёх остальных просто переправить на наименования своих архивов ?


А в распаковке файлов у меня такой фрагмент:
Код:
ISDoneError:=true;
#ifdef Components
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, {#NeedMem}, @ProgressCallback) then
#else
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, 0, 0, 0, MainForm.Handle, {#NeedMem}, @ProgressCallback) then
#endif
  begin
  repeat
//  ChangeLanguage('English');
if not SrepInit('',512,0) then break;
if not PrecompInit('',128,PCFVer) then break;
if not FileSearchInit(true) then break;

//  if not IS7ZipExtract   ( 0, 0, ExpandConstant('{src}\Data.bin'), ExpandConstant('{app}'), false, '') then break;
//  if not ISArcExtract      ( 0, 0, ExpandConstant('{src}\*.arc'), ExpandConstant('{app}'), '', false, 'kis', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;

//    Архивы
//                                                распаковываемый файл
//                                                        |
  if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
  if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data-1.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
  if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data-2.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
  if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data-3.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
  if not ISArcExtract ( 1, 0, ExpandConstant('{src}\DLC.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
  if not ISArcExtract ( 2, 0, ExpandConstant('{src}\MoviesPC.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
  if not ISArcExtract ( 3, 0, ExpandConstant('{src}\MoviesPC-HD.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
Тут надо удалять какие-либо строки ?
 
Сверху