Jump to content
Korean Random

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


Recommended Posts

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

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

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

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

  • Upvote 1
Link to comment
Short link
Share on other sites

10 минут назад, Qirashi сказал:

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

 

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

Link to comment
Short link
Share on other sites

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

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

4 часа назад, Lom сказал:

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

image.png.43b8fc5cacba69d42ee639a0057ffc0d.png

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

  • Upvote 1
Link to comment
Short link
Share on other sites

11 минут назад, Qirashi сказал:

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

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

Edited by Lom
  • Upvote 1
Link to comment
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
Link to comment
Short link
Share on other sites

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

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

Edited by AtotIK
  • Upvote 2
Link to comment
Short link
Share on other sites

  • 3 weeks later...

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

Edited by P.S.Enot
Link to comment
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
Link to comment
Short link
Share on other sites

  • 5 weeks later...
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
Link to comment
Short link
Share on other sites

1 час назад, P.S.Enot сказал:

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

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

Link to comment
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
Link to comment
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
Link to comment
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\*"

 

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

Link to comment
Short link
Share on other sites

  • 2 weeks later...

....

 

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

[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
Link to comment
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

 

Link to comment
Short link
Share on other sites

  • 4 months later...

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

Screenshot_1.png.d2fa8169588e7ef1881580fd5cd8c5f0.png

Link to comment
Short link
Share on other sites

8 минут назад, Qirashi сказал:

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

 

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

 

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

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

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

 

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

 

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

Link to comment
Short link
Share on other sites

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

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

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