Прошу помощи по отладке скрипта.

corobs

Новичок
Приветствую уважаемых скриптографов!))
Решил попросить у вас помощи в отладке моего, с позволения сказать, инсталлятора.
Сам он тут - http://rgho.st/87Y9wj8JV.
Некоторые из вас уже помогали мне с ним, за что огромное спасибо, но хотелось бы ещё кое-что в нём поправить.
Сам вряд ли разберусь, поэтому прошу помочь.
Краткая предыстория.)
Взято сие с ресурса, где (теперь вновь) обитаю по этим же ником и модераторствую. Есть там релиз-группа, её глава поделился этим скриптом, разумеется, я просил и его помочь, но ответа недели три уже нет...
В чём конкретно прошу помощи (что заметил сам, возможно и вы найдёте иные проблемы):
- Первое. При установке игры, создаётся в устанавливаемой папке временная папка, в которую пока полностью не выгрузится файл архива (пакую фриарком), процесс установки не двинется (создаётся впечатление, что установщик зависает. Можно ли это как-то изменить или оптимизировать, чтобы процесс установки был более быстрым и плавным, а не какими-то урывками.
- Второе. Очевидно предполагается шкала процентов распаковки, но видна лишь крошечная часть их, то есть они фактически не отображаются. Прогресс-бар, вроде бы, работает адекватно.)) Где искать и как исправлять проблему отображения процентов даже примерно пока не представляю.
- И третье. Не мало важное для меня. От "издателя" в установщике нет "специального" окна для выбора компонентов. То есть когда я их добавляю, в плане интерфейса выглядит так:
Как итог - на третьем окошке выбора компонентов отсутствует фоновая картинка, кнопки выбора, шрифт и прочее всё не такое, как на остальных окнах.
Можно ли всё это поправить и привести к общему виду ?
Я бы может попытался и сам что-то исправить, но даже примерно не знаю какие компоненты надо править.
Заранее спасибо.:$
 

Ученик_77

Участник
Приветствую всех.
Пара вопросов, если позволите.))
Наверно чего-то напутал или не пойму от чего, но при отображении требуемого места для установки, оно округляется до целого гигабайта в меньшую сторону.
Укажу в скрипте - #define NeedSize "3961", в установщике напишет, что надо 3 ГБ.
И ещё, можно ли сделать, чтобы выделенный красным текст на картинке имел такой же шрифт и толщину как прочий текст типа "текущий выбор" или "какие компоненты"...
Ещё заметил трабл.
После тестового прогона делаю проверочную установку, не выбираю установку едишн пака, а он всё равно устанавливается.))
=================================
Upd.
Последний вопрос "После тестового прогона делаю" решён самостоятельно.
Остались два предыдущих.)
 

Вложения

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

SBalykov

Старожил
Приветствую всех.
Пара вопросов, если позволите.))
Наверно чего-то напутал или не пойму от чего, но при отображении требуемого места для установки, оно округляется до целого гигабайта в меньшую сторону.
Укажу в скрипте - #define NeedSize "3961", в установщике напишет, что надо 3 ГБ.
И ещё, можно ли сделать, чтобы выделенный красным текст на картинке имел такой же шрифт и толщину как прочий текст типа "текущий выбор" или "какие компоненты"...
Ещё заметил трабл.
После тестового прогона делаю проверочную установку, не выбираю установку едишн пака, а он всё равно устанавливается.))
=================================
Upd.
Последний вопрос "После тестового прогона делаю" решён самостоятельно.
Остались два предыдущих.)
Держи ...
Второй файл - отредактированный с комментариями ...
Третий - отображение эскиза в Панели задач (исправленный) ...
 

Вложения

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

Ученик_77

Участник
Спасибо большое, Сергей.
Скажите, пожалуйста, а можно ли сделать выбор компонентов поверх рисунка ?
Или иначе, чтобы не мотать, а сразу все компоненты видны были.
А то у меня так получилось (на мой взгляд более-менее оптимально), после экспериментов с данными вами вариантами рисунков/рамок и прочего.
Пытался уменьшить саму картинку, но текст всё равно наверх не уходил, вероятно не те переменные корректировал.
Upd.
Не пойму, что не так.
Но опять выбрал моды не ставить (после тестового прогона проверку делал), а ставится полностью всё...))
После тестового прогона, раскомментировать, переместить файл "records.inf" из папки компиляции
// в папку файлов распаковки (н.п.: OutputDir => unarc) и запустить скрипт (Ctrl+F9).
Это делал.
 

Вложения

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

SBalykov

Старожил
Спасибо большое, Сергей.
Скажите, пожалуйста, а можно ли сделать выбор компонентов поверх рисунка ?
Или иначе, чтобы не мотать, а сразу все компоненты видны были.
А то у меня так получилось (на мой взгляд более-менее оптимально), после экспериментов с данными вами вариантами рисунков/рамок и прочего.
Пытался уменьшить саму картинку, но текст всё равно наверх не уходил, вероятно не те переменные корректировал.
Upd.
Не пойму, что не так.
Но опять выбрал моды не ставить (после тестового прогона проверку делал), а ставится полностью всё...))

Это делал.
При тестовом проходе, надо выбирать все компоненты...
Попробовал переделать страницу выбора компонентов, но что-то не очень.
Посмотри, попробуй сам. Может быть получится лучше ...
 

Вложения

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

Ученик_77

Участник
Посмотри, попробуй сам. Может быть получится лучше ...
Спасибо, попробую.
А вот с компонентами так и осталась проблема.
При тестовом проходе, надо выбирать все компоненты...
Делаю так, но всё равно при пробной установке, не выбираю ни одного мода, а ставит все...
 

Вложения

vint56

Ветеран
Проверенный
Ученик_77, так и должно он же должен записать данные в records.ini чтобы потом при нормальной установки проценты работали нормально
Сразу писать что буду делать через Inno Setup
Код:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[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: mod; Description: Установка модификаций; Types: full;
Name: mod\FarmerJack; Description: Farmer Jack; Types: full;
Name: mod\FearCry; Description: Fear Cry; Types: full;

[Files]
Source: "Farmer Jack\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: mod\FarmerJack
Source: "Fear Cry\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: mod\FearCry
 
Последнее редактирование:

Ученик_77

Участник
Так как же мне поступать?
Чтобы и проценты отобразились и компоненты на выбор выбирались?
 

Ученик_77

Участник
vint56, спасибо вам, конечно большое.
Но в данной теме как раз обсуждается скрипт, в котором я использую архивы (фриарком упаковываю).
Inno в той, параллельной, эта про репаки.))
В основном тут мне Сергей отвечает, он в курсе о каком скрипте речь, поэтому не стал я уточнять, это конечно мой косяк, впредь учту.
Извините.
 
Последнее редактирование:

vint56

Ветеран
Проверенный
Ученик_77, ну с начало сделай тестовую установку чтобы установка прошла создаться файл records.ini потом надо добавить файл в проект раскаментировать строчку ;#define records просто убери ; откомпилируй или нажми Ctrl+F9

// Препроцессор распаковки
// процетны и время выполнения. При тестовом прогоне (F9) закомментировать.
// После тестового прогона, раскомментировать, переместить файл "records.inf" из папки компиляции
// в папку файлов распаковки (н.п.: OutputDir => unarc) и запустить скрипт (Ctrl+F9).
;#define records
 

Ученик_77

Участник
vint56, всё именно так делаю.
Тестовый прогон, перемещаю records.ini в unarc, убираю ;, то есть получаю #define records, нажимаю Ctrl+F9, создаётся новый екзешник.
Запускаю пробную установку, не выбираю ни один из 12-ти модов.
А ставятся все....
Вроде сделал всё как раньше...
Не пойму в чём причина.
 

Вложения

nik1967

Old Men
Проверенный
Ученик_77, у тебя и не будет нормально робить. Внимательнее!
Source: unexec\records.inf; DestDir: {tmp}; Attribs: hidden; Flags: dontcopy nocompression

И какой "перемещаю records.ini в unarc"?
Source: unexec
 

vint56

Ветеран
Проверенный
Ученик_77, ну все правильно распаковать все архивы

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;
#ifdef Components
// распаковка выбранных компонентов
if not ISArcExtract ( 1, 0, ExpandConstant('{src}\RUS.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 2, 0, ExpandConstant('{src}\ENG_FRA.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 3, 0, ExpandConstant('{src}\Farmer_Jack.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 4, 0, ExpandConstant('{src}\FearCry.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 5, 0, ExpandConstant('{src}\Mars.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 6, 0, ExpandConstant('{src}\Massive_attack.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 7, 0, ExpandConstant('{src}\Matto3.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 8, 0, ExpandConstant('{src}\Matto4.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 9, 0, ExpandConstant('{src}\mi_v11.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 10, 0, ExpandConstant('{src}\Minimap[1.4].arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 11, 0, ExpandConstant('{src}\MutantCrisis.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 12, 0, ExpandConstant('{src}\Onirica.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 13, 0, ExpandConstant('{src}\Singularity.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 14, 0, ExpandConstant('{src}\SMP5.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
 

nik1967

Old Men
Проверенный
И что это за самодеятельный блок?
Код:
if
#ifdef records
  ISDoneInit(ExpandConstant('{tmp}\records.inf'),$F777,Comps1,Comps2,Comps3,MainForm.Handle,{#NeedMem},@ProgressCallback)
#else
  ISDoneInit(ExpandConstant('{src}\records.inf'),$F777,Comps1,Comps2,Comps3,MainForm.Handle,{#NeedMem},@ProgressCallback)
#endif
then begin
 

SBalykov

Старожил
И что это за самодеятельный блок?
Вообще-то это я для себя делал. Для облегчения, так сказать и чтобы не забыть. Дальше так
Код:
...
if
#ifdef records
  ISDoneInit(ExpandConstant('{tmp}\records.inf'),$F777,Comps1,Comps2,Comps3,MainForm.Handle,{#NeedMem},@ProgressCallback)
#else
  ISDoneInit(ExpandConstant('{src}\records.inf'),$F777,Comps1,Comps2,Comps3,MainForm.Handle,{#NeedMem},@ProgressCallback)
#endif
then begin...

ssPostinstall : begin
#ifndef records
MoveFiles(ExpandConstant('{src}'), ExpandConstant('{#ToDir}'), 'records.inf');
#endif
end;
 
Последнее редактирование:
Сверху