Jump to content
Korean Random

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


Recommended Posts

Извините за тупой вопрос: а дальше что делать, допустим размеры я выписал, и я хочу, чтобы мой инсталлятор по размерам был как сейчас, это возможно, или надо какие-то другие подбирать? С вариантом чертежа принцип мне очень понятен, но на практике в коде что мутить не понимаю, вот в чём проблема, просто я в обьект паскале очень не очень, простите за игру слов:)

Поверьте на слово, я в Опаскале смыслю еще меньше Вашего...

Как я делаю: создал пустой скрипт. В редакторе форм изменяю размер окна под нужный мне. Возвращаюсь обратнов скрипт. Смотрю, что мне прописалось:

begin

with WizardForm do

begin

AutoScroll := False;

ClientHeight := ScaleY(500);

ClientWidth := ScaleX(800);

end;

Переписываю в две строки (как учил Котярко) и вставляю в свой скрипт. Все, размер моего окна задан. То есть мы свой листик формата А4 для чертежика сделали. Ну и дальше по аналогии...

Edited by ventura69
Link to comment
Short link
Share on other sites

по моему вопросу тихо?)

 Если честно, я скачал архив, посмотрел объём скрипта и удалил.. меня тупо заленило в нём разбираться)

Ну если будет свободное время и не будет лени - посмотрю)

Link to comment
Short link
Share on other sites

 Если честно, я скачал архив, посмотрел объём скрипта и удалил.. меня тупо заленило в нём разбираться)

Ну если будет свободное время и не будет лени - посмотрю)

ок спасибо!

это я часит скрипта урезал! :) он был больше

Link to comment
Short link
Share on other sites

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

 Завтра могу скинуть хороший пример.

Link to comment
Short link
Share on other sites

 Завтра могу скинуть хороший пример.

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

Edited by odesskin
Link to comment
Short link
Share on other sites

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

[Setup]
AppendDefaultDirName=no

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

Работает вот как:

 При выборе определённого компонента - проигрывается определённый звук. Всё предельно понятно. Два звука (для примера работы скрипта) прилаживаю, можете спокойно компилить, проверять.

SoundPlay.rar

Link to comment
Short link
Share on other sites

[Setup]
AppendDefaultDirName=no

Работает вот как:

 При выборе определённого компонента - проигрывается определённый звук. Всё предельно понятно. Два звука (для примера работы скрипта) прилаживаю, можете спокойно компилить, проверять.

attachicon.gifSoundPlay.rar

 

Спасибо всё работает....

Link to comment
Short link
Share on other sites

[Setup]
AppendDefaultDirName=no

Работает вот как:

 При выборе определённого компонента - проигрывается определённый звук. Всё предельно понятно. Два звука (для примера работы скрипта) прилаживаю, можете спокойно компилить, проверять.

attachicon.gifSoundPlay.rar

 

Далее вопросы такого характера:

1. не полноценно работает скрипт бэкапа, то есть, если переустанавливать моды с модпака и выбирать функцию удалить предыдущие моды, то  удаления не происходит или не полностью. Как быть ?

2. Если прописываю создание иконок на рабочем столе и в автозапуске, то второй раз в инсталлере уже появляется окно с запросом на подврждение создания иконок в меню пуск и моды которые прописаны для ярлыков ломает по частям, теряются файлы.

Link to comment
Short link
Share on other sites

1. не полноценно работает скрипт бэкапа, то есть, если переустанавливать моды с модпака и выбирать функцию удалить предыдущие моды, то удаления не происходит или не полностью. Как быть ?

Скорее всего, у тебя Unicode-версия. Нужна Ansi.

 

2. Если прописываю создание иконок на рабочем столе и в автозапуске, то второй раз в инсталлере уже появляется окно с запросом на подврждение создания иконок в меню пуск и моды которые прописаны для ярлыков ломает по частям, теряются файлы

Не понял..

Edited by Kotyarko_O
Link to comment
Short link
Share on other sites

[Setup]
AppendDefaultDirName=no

Работает вот как:

 При выборе определённого компонента - проигрывается определённый звук. Всё предельно понятно. Два звука (для примера работы скрипта) прилаживаю, можете спокойно компилить, проверять.

attachicon.gifSoundPlay.rar

 

Привет, такой вот вопрос, в установщике выбираю звуковой мод, звук играет, выбираю дальше другие моды опять играет звук, на всех модов, как исправить??

Link to comment
Short link
Share on other sites

 

 

в установщике выбираю звуковой мод, звук играет, выбираю дальше другие моды опять играет звук, на всех модов, как исправить??
Звук может прозвучать также при выборе родительского компонента. Но он не должен звучать при выборе каждого мода. Видимо, ты что-то неправильно сделал.

Покажи ту часть кода, которая у тебя получилась, а так же список компонентов (и напиши, при выборе каких компонентов играет звук - но не должен).

Link to comment
Short link
Share on other sites

Звук может прозвучать также при выборе родительского компонента. Но он не должен звучать при выборе каждого мода. Видимо, ты что-то неправильно сделал.

Покажи ту часть кода, которая у тебя получилась, а так же список компонентов (и напиши, при выборе каких компонентов играет звук - но не должен).

 

RawDataResource=SndA:strateg.wav |SndB:gudok.wav |SndC:gudok-pikanie.wav |SndD:gudok-tikanie.wav |SndE:2gudok.wav |SndF:dzin.wav |SndG:dzin-obnarugen.wav |SndH:dzin-golos.wav

 

#define A = (Defined UNICODE) ? "W" : "A"

type

    HINST = THandle;

    HMODULE = HINST;

    Pointer = Longint;

    HRSRC = THandle;

    HGLOBAL = THandle;

const

    SND_ASYNC           = $0001;

    SND_NODEFAULT       = $0002;

    SND_MEMORY          = $0004;

    RT_RCDATA           = 10;

function sndPlaySound(lpszSoundName: Pointer; uFlags: UINT): BOOL; external 'sndPlaySound{#A}@Winmm.dll stdcall';

function LoadResource(hModule: HINST; hResInfo: HRSRC): HGLOBAL; external '[email protected] stdcall';

function FindResource(hModule: HMODULE; lpName: String; lpType: Longint): HRSRC; external 'FindResource{#A}@kernel32.dll stdcall';

function LockResource(hResData: HGLOBAL): Pointer; external '[email protected] stdcall';

var

pSoundMemory_A, pSoundMemory_B, pSoundMemory_C, pSoundMemory_D, pSoundMemory_E, pSoundMemory_F, pSoundMemory_G, pSoundMemory_H: Pointer;

function GetResourceSoundAddr(const ResourceName: String): Pointer;

var

    hResourceSound: HRSRC;

begin

    hResourceSound := FindResource(HInstance, ResourceName, RT_RCDATA);

    Result := LockResource(LoadResource(HInstance, hResourceSound));

end;

procedure ComponentsOnClickCheck(Sender: TObject);

begin

    if IsComponentSelected('KMP\ZZZ\STSTS') then

    begin

    sndPlaySound(pSoundMemory_A, SND_MEMORY or SND_NODEFAULT or SND_ASYNC);

    end;

    if IsComponentSelected('KMP\ZZZ\ZK') then

    begin

    sndPlaySound(pSoundMemory_B, SND_MEMORY or SND_NODEFAULT or SND_ASYNC);

    end;

        if IsComponentSelected('KMP\ZZZ\ZK1') then

    begin

    sndPlaySound(pSoundMemory_C, SND_MEMORY or SND_NODEFAULT or SND_ASYNC);

    end;

        if IsComponentSelected('KMP\ZZZ\ZK2') then

    begin

    sndPlaySound(pSoundMemory_D, SND_MEMORY or SND_NODEFAULT or SND_ASYNC);

    end;

        if IsComponentSelected('KMP\ZZZ\ZK3') then

    begin

    sndPlaySound(pSoundMemory_E, SND_MEMORY or SND_NODEFAULT or SND_ASYNC);

    end;

        if IsComponentSelected('KMP\ZVON\ZVON1') then

    begin

    sndPlaySound(pSoundMemory_F, SND_MEMORY or SND_NODEFAULT or SND_ASYNC);

    end;

        if IsComponentSelected('KMP\ZVON\ZVON2') then

    begin

    sndPlaySound(pSoundMemory_G, SND_MEMORY or SND_NODEFAULT or SND_ASYNC);

    end;

        if IsComponentSelected('KMP\ZVON\ZVON3') then

    begin

    sndPlaySound(pSoundMemory_H, SND_MEMORY or SND_NODEFAULT or SND_ASYNC);

    end;

end;

 

RedesignWizardForm;

        pSoundMemory_A := GetResourceSoundAddr('_IS_SNDA');

    pSoundMemory_B := GetResourceSoundAddr('_IS_SNDB');

        pSoundMemory_C := GetResourceSoundAddr('_IS_SNDC');

            pSoundMemory_D := GetResourceSoundAddr('_IS_SNDD');

                pSoundMemory_E := GetResourceSoundAddr('_IS_SNDE');

                    pSoundMemory_F := GetResourceSoundAddr('_IS_SNDF');

                        pSoundMemory_G := GetResourceSoundAddr('_IS_SNDG');

                            pSoundMemory_H := GetResourceSoundAddr('_IS_SNDH');

    WizardForm.ComponentsList.OnClickCheck := @ComponentsOnClickCheck;

end;

 

 

Name: KMP\ZZZ; Description:  Озвучка 6 чувство;

Name: KMP\ZZZ\STSTS; Description: - от Strategic Music; Flags: exclusive ;

Name: KMP\ZZZ\ZK; Description:    - Гудок; Flags: exclusive ;

Name: KMP\ZZZ\ZK1; Description:   - Гудок + Пиканье; Flags: exclusive ;

Name: KMP\ZZZ\ZK2; Description:   - Гудок + Тиканье; Flags: exclusive ;

Name: KMP\ZZZ\ZK3; Description:   - Тихий двойной сигнал; Flags: exclusive ;

Name: KMP\ZVON; Description:  Озвучка крита и оповещения;

Name: KMP\ZVON\ZVON1; Description: Звоночек крита;  Flags: exclusive ;

Name: KMP\ZVON\ZVON2; Description: Звоночек крита + оповещение о засвете противника;  Flags: exclusive ;

Name: KMP\ZVON\ZVON3; Description: Звоночек крита + комментарий на повреждение модуля;  Flags: exclusive ;

Name: KMP\STS; Description: - Показ лампочки Шестого чувства 10 секунд ;

Link to comment
Short link
Share on other sites

 

 

SndA:strateg.wav |SndB:gudok.wav |SndC:gudok-pikanie.wav |SndD:gudok-tikanie.wav |SndE:2gudok.wav |SndF:dzin.wav |SndG:dzin-obnarugen.wav |SndH:dzin-golos.wav
сбрось все эти звуки, проверю. А то искать кучу других не хочется.
Link to comment
Short link
Share on other sites

Поверьте на слово, я в Опаскале смыслю еще меньше Вашего...

Как я делаю: создал пустой скрипт. В редакторе форм изменяю размер окна под нужный мне. Возвращаюсь обратнов скрипт. Смотрю, что мне прописалось:

begin

with WizardForm do

begin

AutoScroll := False;

ClientHeight := ScaleY(500);

ClientWidth := ScaleX(800);

end;

Переписываю в две строки (как учил Котярко) и вставляю в свой скрипт. Все, размер моего окна задан. То есть мы свой листик формата А4 для чертежика сделали. Ну и дальше по аналогии...

решил в своём скрипте эту проблемму так: сел, подумал, психанул, забил, сел психанул, увеличил картинки инсталлятора на 200 по ширине и автоматом подогнались по высоте (в фотожопе), потом тоже самое и в самом скрипте прописал, теперь даже круче выглядит. Видимо винде на больших екранах мой инсталл маленьким показался, вот стерва и растягивала не то, что нужно:)

Edited by Darksoul
Link to comment
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...