Jump to content
Korean Random
EvilAlex

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

Recommended Posts

этот для закачки файлов из интернета ? 

 

 

 

[setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=example1
Compression=lzma
SolidCompression=true
CreateAppDir=true
ShowLanguageDialog=yes

[Languages]
Name: english; MessagesFile: compiler:Default.isl

#include "it_download.iss"


procedure InitializeWizard();
begin
itd_init;

//Let's download two zipfiles from my website..
itd_addfile('http://www.sherlocksoftware.org/petz/files/dogz5.zip,expandconstant({tmp}\dogz5.zip'));
itd_addfile('http://www.sherlocksoftware.org/petz/files/petz4.zip,expandconstant({tmp}\petz4.zip'));

//Start the download after the "Ready to install" screen is shown
itd_downloadafter(wpReady);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep=ssInstall then begin //Lets install those files that were downloaded for us
filecopy(expandconstant('{tmp}\dogz5.zip'),expandconstant('{app}\dogz5.zip'),false);
filecopy(expandconstant('{tmp}\petz4.zip'),expandconstant('{app}\petz4.zip'),false);
end;
end;
Edited by ODINOKIY VOLK

Share this post


Link to post

Short link
Share on other sites
этот для закачки файлов из интернета ?

Если имеется прямой доступ к серверу - то да.

 

иконка для деисталятора в панели установка/удаление программ

 

UninstallDisplayIcon=Files\ico.ico

 

или я ошибаюсь?

почему то иконка не отображается.. не пойму почему

Нужно указать путь не к иконке, а к файлу, к которому иконка уже привязана. Лично я привязывал к деинсталлятору, который создаётся в папке игры после установки:

UninstallDisplayIcon={app}\KMP\unins000.exe

Только ты вписывай без KMP (просто у меня деинсталл в такой иерархии).

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Добрый день уважаемые! При таком коде


                                         //===Модификации Звуков  ===\\
Source: "{app}\res\audio\*"; DestDir: "{app}\res_mods\0.8.10\audio\"; Flags: external recursesubdirs skipifsourcedoesntexist; Components: KMP\Z\L;
Source: "MODS\ZVUKI\LAMPO4KA\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\Z\L;
Source: "{app}\res\audio\*"; DestDir: "{app}\res_mods\0.8.10\audio\"; Flags: external recursesubdirs skipifsourcedoesntexist; Components: KMP\Z\G;
Source: "MODS\ZVUKI\GOTOV\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\Z\G;

Нужно каждый раз указывать, чтобы копировало папку res/audio?

Спрашиваю потому. что у меня в модах в начале уже копируется папка аудио в res mods, а потом в некоторых пунктах просто необходимо добавлять или заменять файлы в аудио.

Сообственно, повторюсь, каждый раз надо указывать копирование или указав в начале один раз решаем проблему?

Share this post


Link to post

Short link
Share on other sites

Если имеется прямой доступ к серверу - то да.

 

Нужно указать путь не к иконке, а к файлу, к которому иконка уже привязана. Лично я привязывал к деинсталлятору, который создаётся в папке игры после установки:

UninstallDisplayIcon={app}\KMP\unins000.exe

Только ты вписывай без KMP (просто у меня деинсталл в такой иерархии).

Я туплю видать ))))  вот как у меня шас прописано не получается

 

'код'

#define MyAppName "MoD-Pack Bigmusic Lite v2.4" ;Название инстоллятора

#define MyInfoVer "2.4" ;Версия инсталлятора

#define MyAppVer "2.4" ;Версия игры

#define Patch "0.9.2" ;версия патча (чтобы не менять после каждого патча числа в скрипте, можно использовать это)

#define MyAppPublisher "Bigmusic" ;Имя компании или человека кто делал

#define MyAppURL "http://forum.worldoftanks.ru/index.php?/topic/1111250-" ;Ссылка для лого

 

#include "Components.iss" ;Компаненты, они же моды

#include "Messages.iss" ;Сообщение, надписи на кнопках и т.д.

#include "BackUpPage.iss" ;Резерное копирование или удаление res_mods

#include "CustomMessages.iss" ;Описание модов

#include "Music.iss" ;Музыка в инсталляторе

 

[setup]

AppName={#MyAppName}

AppVersion={#MyAppVer}

AppPublisher={#MyAppPublisher}

 

//====={ Ссылки }=====\\

AppPublisherURL={#MyAppURL}

AppSupportURL={#MyAppURL}

AppUpdatesURL={#MyAppURL}

 

//====={ Папка устанвки }=====\\

DefaultDirName={code:MyDirName}

AppendDefaultDirName=no

DirExistsWarning=no

CreateUninstallRegKey=yes

Uninstallable=yes

 

//====={ Картинки }=====\\

SetupIconFile=Files\wot_ico.ico

UninstallDisplayIcon=KMP\Files\ico.ico

WizardImageFile=Files\img1.bmp

WizardSmallImageFile=Files\Small2.bmp

 

//====={ Отключение строниц }=====\\

DisableProgramGroupPage=yes

 

//====={ Лицензия и Фак }=====\\

LicenseFile=licensia.rtf

InfoBeforeFile=faq.rtf

 

//====={ Сжатие сетапа }=====\\

InternalCompressLevel=max

Compression=lzma2/max

Edited by liked

Share this post


Link to post

Short link
Share on other sites
Нужно каждый раз указывать, чтобы копировало папку res/audio?

Не обязательно, главное чтоб копирование папки  audio было первым. Смотря как у тебя это привязано к компонентам.

Вот мой вариант:

[Components]
//==={ Звук и текст }===\\
Name: KMP\OZ; Description: 21. Звуковой мод.; Types: viborochnaya; Flags: checkablealone dontinheritcheck
Name: KMP\OZ\OZ1; Description: а. лампа, звонок крита, пожар, обнаружение цели.; Types: viborochnaya; Flags: exclusive
Name: KMP\OZ\OZ2; Description: б. лампа, звонок крита, пожар.; Types: viborochnaya; Flags: exclusive
Name: KMP\OZ\OZ3; Description: в. лампа, звонок крита.; Types: viborochnaya; Flags: exclusive
Name: KMP\OZ\OZ4; Description: г. звонок крита.; Types: viborochnaya; Flags: exclusive


[Files]
            //====={ ставить вначале команду копирование файлов, а уже потом установку мода }=====\\
Source: "{app}\res\audio\*"; DestDir: "{app}\res_mods\{#MyAppVer}\audio\"; Flags: external recursesubdirs skipifsourcedoesntexist; Components: KMP\OZ;
Source: "MODS\Ozvuchka\Zvuk1\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\OZ\OZ1;
Source: "MODS\Ozvuchka\Zvuk2\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\OZ\OZ2;
Source: "MODS\Ozvuchka\Zvuk3\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\OZ\OZ3;
Source: "MODS\Ozvuchka\Zvuk4\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\OZ\OZ4;

И вот как это выглядит

post-8756-0-19096800-1406966246_thumb.png

Edited by -zav-
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

этот код Source: "{app}\res\audio\*"; DestDir: "{app}\res_mods\{#MyAppVer}\audio\"; Flags: external recursesubdirs skipifsourcedoesntexist;

вставляем в первую строку в разделе [фаилы] а после уже идут твои фаилы .

Таким оброзом папка аудио будет устонавливатся даже если не выбрать озвучку . Но можно дописать и сделать так

Source: "{app}\res\audio\*"; DestDir: "{app}\res_mods\{#MyAppVer}\audio\"; Flags: external recursesubdirs skipifsourcedoesntexist ; KMP\OZVUCHKA;

таким оброзом папка аудио будет устанавливатся только после выбраных компонентов озвучки !

Edited by ODINOKIY VOLK
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
Нужно указать путь не к иконке, а к файлу, к которому иконка уже привязана. Лично я привязывал к деинсталлятору, который создаётся в папке игры после установки:

UninstallDisplayIcon={app}\KMP\unins000.exe

Только ты вписывай без KMP (просто у меня деинсталл в такой иерархии).

Можно и к иконке. Если в файле не одна иконка, то .exe,1 и .exe,2 и т.д. выберут нужную согласно номеру.

Share this post


Link to post

Short link
Share on other sites

Можно и к иконке. Если в файле не одна иконка, то .exe,1 и .exe,2 и т.д. выберут нужную согласно номеру.

прописал UninstallDisplayIcon={app}\KMP\unins000.exe 

не чего не получилось в чём  может быть ошибка?

С оленемером не чё не решили? как сделать чтоб инсталятор сам заходил и активировал на сайте XVM

Share this post


Link to post

Short link
Share on other sites
прописал UninstallDisplayIcon={app}\KMP\unins000.exe не чего не получилось в чём может быть ошибка?

KMP убери.

 

как сделать чтоб инсталятор сам заходил и активировал на сайте XVM

:heh:

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

 

 

С оленемером не чё не решили? как сделать чтоб инсталятор сам заходил и активировал на сайте XVM

 

Мы чего совсем больные что ли? Суть активации в том, что бы алешки меньше сервер XVM нагружали, а вы хотите сделать наборот? Ну тогда не удивляйтесь потом, если север XVM будет черте как работать.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

KMP убери.

 

:heh:

Получилось спасибо ) в 1 раз прочитал не внимательно ответ, сори шас только увидел.

Edited by liked

Share this post


Link to post

Short link
Share on other sites

Не обязательно, главное чтоб копирование папки  audio было первым. Смотря как у тебя это привязано к компонентам.

Вот мой вариант:

[Components]
//==={ Звук и текст }===\\
Name: KMP\OZ; Description: 21. Звуковой мод.; Types: viborochnaya; Flags: checkablealone dontinheritcheck
Name: KMP\OZ\OZ1; Description: а. лампа, звонок крита, пожар, обнаружение цели.; Types: viborochnaya; Flags: exclusive
Name: KMP\OZ\OZ2; Description: б. лампа, звонок крита, пожар.; Types: viborochnaya; Flags: exclusive
Name: KMP\OZ\OZ3; Description: в. лампа, звонок крита.; Types: viborochnaya; Flags: exclusive
Name: KMP\OZ\OZ4; Description: г. звонок крита.; Types: viborochnaya; Flags: exclusive


[Files]
            //====={ ставить вначале команду копирование файлов, а уже потом установку мода }=====\\
Source: "{app}\res\audio\*"; DestDir: "{app}\res_mods\{#MyAppVer}\audio\"; Flags: external recursesubdirs skipifsourcedoesntexist; Components: KMP\OZ;
Source: "MODS\Ozvuchka\Zvuk1\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\OZ\OZ1;
Source: "MODS\Ozvuchka\Zvuk2\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\OZ\OZ2;
Source: "MODS\Ozvuchka\Zvuk3\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\OZ\OZ3;
Source: "MODS\Ozvuchka\Zvuk4\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\OZ\OZ4;

И вот как это выглядит

attachicon.gifзвук.png

Спасибо большое! Еще вопросик, наверно не раз задавался, может не увидел:

Какие флаги поставить на отдельные моды? а какие на моды, у которых есть список?

Например, у тебя есть пункт "Звуковые моды"  у него список. Ему надо присвоить флаги Flags: checkablealone dontinheritcheck?

А вот пункт "Клановый онлайн" ему какой флаг? checkablealone?

Флаг exclusive понял.

Особо не пинайте, если вопрос раздражает кого-то. За ночь делать моды это что-то) первый раз собираю для своего клана

Edited by Metrix647

Share this post


Link to post

Short link
Share on other sites

кто поделится системой проверки обновление мод пака в самой игре в сообщених! как это сделать

Share this post


Link to post

Short link
Share on other sites

 

 

За ночь делать моды это что-то)
Одной ночи мало)

 

 

Какие флаги поставить на отдельные моды? а какие на моды, у которых есть список? Например, у тебя есть пункт "Звуковые моды" у него список. Ему надо присвоить флаги Flags: checkablealone dontinheritcheck? А вот пункт "Клановый онлайн" ему какой флаг? checkablealone? Флаг exclusive понял
Читайте справку, там всё подробно и с примерами:

'справка'

Flags
Параметры для установки дополнительных опций. Разделяются пробелами. Поддерживаемые значения:

checkablealone*
Определяет, что из дочерних компонентов может быть выбран только один. По умолчанию, если ни один параметр секции Components непосредственно не ссылается на компонент, тогда отмена выбора всех дочерних элементов компонента приведёт к отмене выбора родительского компонента.

dontinheritcheck
Указывает, что компонент не выбирается автоматически, если выбран родительский компонент. Не действует на компоненты, не имеющие дочерних компонентов и не комбинируется с флагом exclusive.

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

fixed
Указывает инсталлятору, что компонент с этим флагом не может быть выбран или не выбран пользователем при установке.

restart
Указывает инсталлятору, что при выборе пользователем этого компонента следует перезагрузить компьютер после его установки, даже если в этом нет необходимости (например, потому, что в секции [Files] могут находиться параметры с флагом restartreplace). Действует так же, как директива AlwaysRestart только для компонентов.

disablenouninstallwarning
Указывает инсталлятору не предупреждать пользователя, что этот компонент не удалится после того, как он снимет с него флажок, если этот компонент уже установлен на данном компьютере.

В зависимости от сложности компонентов можно попробовать использовать секцию [InstallDelete] и этот флаг для автоматического "удаления" компонентов со снятым флажком.

Например:
Flags: fixed

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Одной ночи мало)

 

 

Читайте справку, там всё подробно и с примерами:

'справка'

Flags
Параметры для установки дополнительных опций. Разделяются пробелами. Поддерживаемые значения:

checkablealone*
Определяет, что из дочерних компонентов может быть выбран только один. По умолчанию, если ни один параметр секции Components непосредственно не ссылается на компонент, тогда отмена выбора всех дочерних элементов компонента приведёт к отмене выбора родительского компонента.

dontinheritcheck
Указывает, что компонент не выбирается автоматически, если выбран родительский компонент. Не действует на компоненты, не имеющие дочерних компонентов и не комбинируется с флагом exclusive.

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

fixed
Указывает инсталлятору, что компонент с этим флагом не может быть выбран или не выбран пользователем при установке.

restart
Указывает инсталлятору, что при выборе пользователем этого компонента следует перезагрузить компьютер после его установки, даже если в этом нет необходимости (например, потому, что в секции [Files] могут находиться параметры с флагом restartreplace). Действует так же, как директива AlwaysRestart только для компонентов.

disablenouninstallwarning
Указывает инсталлятору не предупреждать пользователя, что этот компонент не удалится после того, как он снимет с него флажок, если этот компонент уже установлен на данном компьютере.

В зависимости от сложности компонентов можно попробовать использовать секцию [InstallDelete] и этот флаг для автоматического "удаления" компонентов со снятым флажком.

Например:
Flags: fixed

 

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

Ребята как выявить не работающий мод?

Вот логи

python.log

xvm.log

Share this post


Link to post

Short link
Share on other sites

Metrix647, ставишь по одному и прогоняешь по клиенту, например по реплеям.

liked, вангую, что никто. Такими вещами не раскидываются.

Edited by AtotIK

Share this post


Link to post

Short link
Share on other sites

Metrix647, ставишь по одному и прогоняешь по клиенту, например по реплеям.

liked, вангую, что никто. Такими вещами не раскидываются.

Спасибо!

Share this post


Link to post

Short link
Share on other sites

liked, вангую, что никто. Такими вещами не раскидываются.

Ну.

Share this post


Link to post

Short link
Share on other sites

Парни подскажите где ошибка ,если вылазит такое окно?


Оно вылазит даже если ставлю галку Очистить папку рес модс перед выбором компонентов!

post-19655-0-50040300-1406996904_thumb.png

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...