Jump to content
Korean Random
EvilAlex

Создание инсталляторов для модпаков на базе Inno Setup

Recommended Posts

Пока нет смысла делать, модов мало, а так набросок есть

У басурманского Аслана в сети видел... в паке порядка 25 модов скопилось... в основном "шкуры", маркеры, и парочка прицелов :) 

Пока нет смысла делать, модов мало, а так набросок есть

 

 Помогите, пожалуйста, со скином, если не сложно конечно... Скин чуть выше выложил.

Share this post


Link to post

Short link
Share on other sites

 

 

На мой взгляд такие вещи в шапку нужно ставить... Потому как скоро польются рекой паки для WOWs :)

Да какие ж это моды ... Так баловство с флешем ... Да еще и ЗБТ ... Вот когда питонщики подтянуться вот тогда можно будет что-то определенное говорить.

Share this post


Link to post

Short link
Share on other sites

Вот когда питонщики подтянуться вот тогда можно будет что-то определенное говорить.

Толку, пока защита стоит

Share this post


Link to post

Short link
Share on other sites

Не подскажешь где можно взять описание всех этих констант и Паскалевских функций которые используются в Inno Setup?

Share this post


Link to post

Short link
Share on other sites

Не подскажешь где можно взять описание всех этих констант и Паскалевских функций которые используются в Inno Setup?

Документация Delphi, Pascal (не все возможности из них доступны в Inno), справка самого Inno.

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Всем привет.

 

Осваиваю инно сетап. Наткнулся на проблему с TItemArea. Вставил блок кода для отрисовки превьюшек при наведении на компонент и получил ошибку с этим типом.

 

agHMa.png

 

 

Помогите плиз решить проблему.

 

 

Пока искал решение с этими ИтемАреа написал свой код определения папки игры WoWS, может кому полезно будет:

// Константы
const 
// дефолтное значение ключа игры в реестре
DefaultGameReg = '{1EAC1D02-C6AC-4FA6-9A44-96258C37C814ru}_is1';
// дефолтное название пути игры
DefaultGameDir = 'C:\Games\World_of_Warships';
// end of const

// Функция определения пути к игре
function GetGameDir(s:string):string;
begin
// пробуем запросить у системы содержание ключа реестра
  try
    if (not RegQueryStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+DefaultGameReg, 'InstallLocation', result)) or (result='') 
         then result := DefaultGameDir; // если ничего не выдало, то отдаем пользователю стандартный путь к игре
  except // если система отказала в запросе с ошибкой, то отдаем пользователю стандартный путь к игре
    result := DefaultGameDir;
  end
end; 
// End of Функция определения пути к игре
Edited by Desinfector

Share this post


Link to post

Short link
Share on other sites

 

 

Наткнулся на проблему с TItemArea. Вставил блок кода для отрисовки превьюшек при наведении на компонент и получил ошибку с этим типом.
Используйте расширенную версию компилятора.

Share this post


Link to post

Short link
Share on other sites

Прикрутил бекап вылазиет ошибка фото ктонить может помочь?

Procedure CurStepChanged1(CurStep: TSetupStep);
begin
 ...
end;

Procedure CurStepChanged2(CurStep: TSetupStep);
begin
 ...
end;

Procedure CurStepChanged(CurStep: TSetupStep);
begin
 CurStepChanged1(CurStep);
 CurStepChanged2(CurStep);
end;

В коде не должно быть одноимённых функций, процедур.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
Procedure CurStepChanged1(CurStep: TSetupStep);
begin
 ...
end;

Procedure CurStepChanged2(CurStep: TSetupStep);
begin
 ...
end;

Procedure CurStepChanged(CurStep: TSetupStep);
begin
 CurStepChanged1(CurStep);
 CurStepChanged2(CurStep);
end;

В коде не должно быть одноимённых функций, процедур.

 

спс исправил заработало но пропадает весь дизайн  :hmm:

Share this post


Link to post

Short link
Share on other sites

спс исправил заработало но пропадает весь дизайн  :hmm:

Значит не всё исправил.

Share this post


Link to post

Short link
Share on other sites

скинул код в личку не понел нечего что там еще?

че там у тебя пропало, страницу потерял?

Share this post


Link to post

Short link
Share on other sites

скинул код в личку не понел нечего что там еще?

Ответил уже давно.

Share this post


Link to post

Short link
Share on other sites

вопрос, как сделать апдейтер для модпака? Заранее спасибо.

Share this post


Link to post

Short link
Share on other sites

это я нашёл, спасибо. А как пользоваться? Не много не понятно :( и какой из версий лучше, крайней я так понимаю?

В основном конечно понятно, но как реализуется, то что если какие то обновы появились?

Разобрался... то есть файл  NotificationBox.json мы кладём в некую папку на хост-сервере, и если он каким то образом меняется, то нотификатор даст знать клиенту, я правильно понял?

Edited by akey

Share this post


Link to post

Short link
Share on other sites

это я нашёл, спасибо. А как пользоваться? Не много не понятно :( и какой из версий лучше, крайней я так понимаю?

В основном конечно понятно, но как реализуется, то что если какие то обновы появились?

Разобрался... то есть файл  NotificationBox.json мы кладём в некую папку на хост-сервере, и если он каким то образом меняется, то нотификатор даст знать клиенту, я правильно понял?

Да
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Да

Спасибо огромное... разобрался, работает!

Share this post


Link to post

Short link
Share on other sites

Так и не разобрался с ботвой а так хочеться исправить

image792589.jpg

 

или хотябы изменить разбер этого окна и передвинуть от края текст.... подскажите люди знающие как быть то  

// бэкап//
var
BackupPage: TWizardPage;
DeleteRadioButton, MoveRadioButton, NoneRadioButton: TNewRadioButton;

const
BackupDescText =
'Во избежание проблем совместимости и конфликтов между модификациями рекомендуется удалить уже установленные на данный момент в игровом клиенте.' #13#13 'Выберите необходимый пункт из представленных. При этом будет очищено содержимое папки "res_mods\0.8.11", удалена папка "res_mods\xvm" или созданы резервные копии Ваших файлов.';
DeleteDescText =
'Установщик удалит все файлы в папках.';
MoveDescText =
'Установщик сделает резервную копию всех файлов в папках.';
NoneDescText =
'Установщик оставит всё как есть.';

function BackupCheck_1(): Boolean;
var
BackupDescLabel, DeleteDescLabel, MoveDescLabel, NoneDescLabel: TLabel;
begin
BackupPage:=CreateCustomPage(wpWelcome, 'Создание резервных копий файлов перед установкой', 'Пожалуйста, прочтите следующую важную информацию перед тем, как продолжить.');
BackupDescLabel:=TLabel.Create(WizardForm);
BackupDescLabel.Parent:=BackupPage.Surface;
BackupDescLabel.Left:=0;
BackupDescLabel.Top:=0;
BackupDescLabel.Width:=BackupPage.SurfaceWidth;
BackupDescLabel.Height:=90;
BackupDescLabel.AutoSize:=False;
BackupDescLabel.Wordwrap:=True;
BackupDescLabel.Caption:=BackupDescText;

DeleteRadioButton:=TNewRadioButton.Create(WizardForm);
DeleteRadioButton.Parent:=BackupPage.Surface;
DeleteRadioButton.Checked:=False;
DeleteRadioButton.Top:=95;
DeleteRadioButton.Width:=BackupPage.SurfaceWidth;
DeleteRadioButton.Font.Style:=[fsBold];
DeleteRadioButton.Font.Size:=12;
DeleteRadioButton.Caption:='Удалить файлы'
DeleteDescLabel:=TLabel.Create(WizardForm);
DeleteDescLabel.Parent:=BackupPage.Surface;
DeleteDescLabel.Left:=18;
DeleteDescLabel.Top:=DeleteRadioButton.Top + DeleteRadioButton.Height + 4;
DeleteDescLabel.Width:=BackupPage.SurfaceWidth;
DeleteDescLabel.Height:=40;
DeleteDescLabel.AutoSize:=False;
DeleteDescLabel.Wordwrap:=True;
DeleteDescLabel.Caption:=DeleteDescText;

MoveRadioButton:=TNewRadioButton.Create(WizardForm);
MoveRadioButton.Parent:=BackupPage.Surface;
MoveRadioButton.Checked:=True;
MoveRadioButton.Top:=140;
MoveRadioButton.Width:=BackupPage.SurfaceWidth;
MoveRadioButton.Font.Style:=[fsBold];
MoveRadioButton.Font.Size:=12;
MoveRadioButton.Caption:='Сделать резервную копию файлов'
MoveDescLabel:=TLabel.Create(WizardForm);
MoveDescLabel.Parent:=BackupPage.Surface;
MoveDescLabel.Left:=18;
MoveDescLabel.Top:=MoveRadioButton.Top + MoveRadioButton.Height + 4;
MoveDescLabel.Width:=BackupPage.SurfaceWidth;
MoveDescLabel.Height:=40;
MoveDescLabel.AutoSize:=False;
MoveDescLabel.Wordwrap:=True;
MoveDescLabel.Caption:=MoveDescText;

NoneRadioButton:=TNewRadioButton.Create(WizardForm);
NoneRadioButton.Parent:=BackupPage.Surface;
NoneRadioButton.Checked:=False;
NoneRadioButton.Top:=185;
NoneRadioButton.Width:=BackupPage.SurfaceWidth;
NoneRadioButton.Font.Style:=[fsBold];
NoneRadioButton.Font.Size:=12;
NoneRadioButton.Caption:='Ничего не трогать'
NoneDescLabel:=TLabel.Create(WizardForm);
NoneDescLabel.Parent:=BackupPage.Surface;
NoneDescLabel.Left:=18;
NoneDescLabel.Top:=NoneRadioButton.Top + NoneRadioButton.Height + 4;
NoneDescLabel.Width:=BackupPage.SurfaceWidth;
NoneDescLabel.Height:=40;
NoneDescLabel.AutoSize:=False;
NoneDescLabel.Wordwrap:=True;
NoneDescLabel.Caption:=NoneDescText;
end;

function BackupCheck_2(): Boolean;
begin
If DeleteRadioButton.Checked then
begin
DelTree(ExpandConstant('{app}\res_mods\0.9.7'), True, True, True);
DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True);
CreateDir(ExpandConstant('{app}\res_mods\0.9.7'));
end;
end;

function BackupCheck_3(): Boolean;
begin
If MoveRadioButton.Checked then
begin
MoveDir(ExpandConstant('{app}\res_mods\0.9.7\'),ExpandConstant('{app}\res_mods\backup\0.9.7'));
MoveDir(ExpandConstant('{app}\res_mods\xvm\'),ExpandConstant('{app}\res_mods\backup\xvm'));
CreateDir(ExpandConstant('{app}\res_mods\0.9.7'));
DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True);
end;
end;

procedure CurStepChanged1(CurStep: TSetupStep);
begin
If CurStep=ssInstall then
begin
BackupCheck_2();
BackupCheck_3();
end;
end;

procedure InitializeWizard1();
begin
BackupCheck_1();
end;
                                                                                                  
                                    
Edited by Hatsan

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...