Jump to content
Korean Random
EvilAlex

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

Recommended Posts

29 минут назад, Lom сказал:

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

крч. если сделать отдельно установщики для евро и для лесты, то смысла чтобы модпак для евро находил клиент лесты нет. как то так)) 

Проще написать функцию где есть возможность выбора клиента. Как буду дома скину пример как можно сделать.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
10 минут назад, Qirashi сказал:

Проще написать функцию где есть возможность выбора клиента. Как буду дома скину пример как можно сделать.

 

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

Share this post


Link to post

Short link
Share on other sites

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

Edited by Lom

Share this post


Link to post

Short link
Share on other sites
4 часа назад, Lom сказал:

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

image.png.43b8fc5cacba69d42ee639a0057ffc0d.png

Можно сделать примерно так.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
11 минут назад, Qirashi сказал:

Можно сделать примерно так.

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

Edited by Lom
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
31 минуту назад, Lom сказал:

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

Если в кратце, то где-то долэна быть примерно такая строчка:
 

ExpandConstant('{reg:HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\LGC-WOTB.RU.PRODUCTION\,InstallLocation|{cm:NoInstallPath}}');

В ней определяется путь до клиента.
 

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Зачем изобретать велосипед, если уже всё сделали и обкатали здесь?

И объединить моды для WG/Lesta в один инсталлятор вообще нет проблем. В том же OpenWG.Utils есть функция CHECK_IsLesta для использования в секции [Files] или [Components].

Edited by AtotIK
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

А вы не могли бы еще встроить что бы установщик автоматически чистил папки mods и res_mods полностью. С  зимы пытаюсь реализовать функцию в установщике и не чего не выходит чистит но серавно моды или папка старая с хвм остается

Edited by P.S.Enot

Share this post


Link to post

Short link
Share on other sites
15.04.2023 в 09:27, P.S.Enot сказал:

А вы не могли бы еще встроить что бы установщик автоматически чистил папки mods и res_mods полностью. С  зимы пытаюсь реализовать функцию в установщике и не чего не выходит чистит но серавно моды или папка старая с хвм остается

[InstallDelete]
Type: filesandordirs; Name: "{app}\{code:PH_Folder_Mods}\*"
Type: filesandordirs; Name: "{app}\{code:PH_Folder_Resmods}\*"

 

Edited by Armagomen_UA
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
18.04.2023 в 10:28, Armagomen_UA сказал:

[InstallDelete]
Type: filesandordirs; Name: "{app}\{code:PH_Folder_Mods}\*"
Type: filesandordirs; Name: "{app}\{code:PH_Folder_Resmods}\*"

 

res_mods папка не чистится все файлы остаются. и в mods остается папка с номером патча. в чем может быть дело подскажите. Вставлен ваш код что вы написали

Edited by P.S.Enot

Share this post


Link to post

Short link
Share on other sites
1 час назад, P.S.Enot сказал:

res_mods папка не чистится все файлы остаются. и в mods остается папка с номером патча. в чем может быть дело подскажите. Вставлен ваш код что вы написали

Установщик точно определяет директорию {app}?

Share this post


Link to post

Short link
Share on other sites
51 минуту назад, Qirashi сказал:

Установщик точно определяет директорию {app}?

А как проверить или узнать??? 

Прописано так 

[Files]

Source: "cur_ver\mods\*"; DestDir: "{app}\mods"; Flags: ignoreversion recursesubdirs createallsubdirs;
Source: "cur_ver\res_mods\*"; DestDir: "{app}\res_mods"; Flags: ignoreversion recursesubdirs createallsubdirs;

.........

[InstallDelete]
Type: filesandordirs; Name: "{app}\{code:PH_Folder_Mods}\*"
Type: filesandordirs; Name: "{app}\{code:PH_Folder_Resmods}\*"

может что то не так подключил? Кстати он вообще папку рес модс не чистит только в нее устанавливает и все 

Edited by P.S.Enot

Share this post


Link to post

Short link
Share on other sites

{code:PH_Folder_Mods} - подставляет путь не к mods, а к папке с версией {app}\mods\1.20.1.0\
 

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

[InstallDelete]
Type: filesandordirs; Name: "{app}\mods\*"
Type: filesandordirs; Name: "{app}\res_mods\*"

 

Edited by Armagomen_UA
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
4 часа назад, Armagomen_UA сказал:

{code:PH_Folder_Mods} - подставляет путь не к mods, а к папке с версией {app}\mods\1.20.1.0\
 

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


[InstallDelete]
Type: filesandordirs; Name: "{app}\mods\*"
Type: filesandordirs; Name: "{app}\res_mods\*"

 

Вот то что нужно. Спасибо огромное

Share this post


Link to post

Short link
Share on other sites

....

 

Ребята подскажите пожалуйста как к этому чек боксу что на скрине привязать вот это

[InstallDelete]
Type: filesandordirs; Name: "{app}\mods\*"
Type: filesandordirs; Name: "{app}\res_mods\*"

Screenshot_3.png.658a7d3b9d3bf1b3327b827ed2007e8f.png

САМ ЧЕК БОКС КОД

  { NewCheckBox1 }
  NewCheckBox1 := TNewCheckBox.Create(WizardForm);
  with NewCheckBox1 do
  begin
    Parent := WizardForm.SelectDirPage;
    Left := ScaleX(0);
    Top := ScaleY(96);
    Width := ScaleX(332);
    Height := ScaleY(25);
    Caption := ' Очистить папки «mods» и «res_mods»';
  end;

  NewCheckBox1.TabOrder := 5;

  with WizardForm.MainPanel do
  begin
    Width := ScaleX(499);
    OnClick := @MainPanelClick;
  end;

Edited by P.S.Enot

Share this post


Link to post

Short link
Share on other sites

Сам спросил сам ответил. может кому пригодится.

Решение:

var
  NewCheckBox1: TNewCheckBox;
function CheckedMods: Boolean;
begin
  Result:= NewCheckBox1.Checked;
end;
  { NewCheckBox1 }
  NewCheckBox1 := TNewCheckBox.Create(WizardForm);
  with NewCheckBox1 do
  begin
    Parent := WizardForm.SelectDirPage;
    Left := ScaleX(0);
    Top := ScaleY(96);
    Width := ScaleX(332);
    Height := ScaleY(25);
    Caption := ' Очистить папки «mods»  и «res_mods»';
    NewCheckBox1.Checked:=True;
  end;
  NewCheckBox1.TabOrder := 5;
  with WizardForm.MainPanel do
  begin
    Width := ScaleX(499);
    OnClick := @MainPanelClick;
  end;

[InstallDelete]
Type: filesandordirs; Name: "{app}\mods\*"; Check: CheckedMods
Type: filesandordirs; Name: "{app}\res_mods\*"; Check: CheckedMods

 

Share this post


Link to post

Short link
Share on other sites

Подскажите пожалуйста. Как сделать что бы было вот так как на картинке. что к чему присвоить какие может флаги или еще что то?Нужно он основново чекбокса отвести еще чек бокс где можно будет выбрать радиобутонами нужный вариант 

Screenshot_1.png.d2fa8169588e7ef1881580fd5cd8c5f0.png

Share this post


Link to post

Short link
Share on other sites

Напиши в ВК, отвечу по возможности. Тут могу забыть https://vk.com/qirashi

 

Я наглядно покажу как это работает и покажу как это оптимизировать для удобной работы

 

Share this post


Link to post

Short link
Share on other sites
8 минут назад, Qirashi сказал:

Напиши в ВК, отвечу по возможности. Тут могу забыть https://vk.com/qirashi

 

Я наглядно покажу как это работает и покажу как это оптимизировать для удобной работы

 

Я тебе еще утром в вк накалякал

1 час назад, Qirashi сказал:

Напиши в ВК, отвечу по возможности. Тут могу забыть https://vk.com/qirashi

 

Я наглядно покажу как это работает и покажу как это оптимизировать для удобной работы

 

Благодарю за помощь. Работает все как часы. Спасибо :honoring:

Share this post


Link to post

Short link
Share on other sites

Ребят может кто подсказать, есть скрипт,компоненты
как бы всё ОК
 Но проблема такая:
Запускаю установщик - Выбираю компоненты - Устанавливаю (То есть устанавливается игра и выбранные компоненты)
Но в итоге получается что Компоненты либо не установились,либо игра заменила их обратно

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

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