Jump to content
Korean Random
EvilAlex

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

Recommended Posts

Я ТАК ПОНЯЛ КТО В ЭТОМ НЕ ШАРИТ ПРИДЁТСЯ ЗАБРОСИТЬ МОДПАКИ

Все, кто в этом "не шарят", не забросят модпаки. Они потратят время на форумах, чтобы им помогли или дали готовое решение.

Все, кто в этом "шарят", потратят время на собственную реализацию. А так же помогая некоторым "не шарящим".

Так что всё просто. А ты как-то громко выражаешься (и капс тут не при чём =) ).

 

 

 

ЕСЛИ ПОСЧИТАТЬ ПО МОД ПАКАМ НАС ЧЕЛОВЕК 30 И ОСТАНУТСЯ ЕДИНИЦЫ
Кстати, ничего плохого в этом не вижу. Edited by Kotyarko_O
  • Upvote 4

Share this post


Link to post

Short link
Share on other sites

Добрый день. Знаю, что уже было ранее на 230 страницах про это, но подскажите еще раз:

 

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

 

Как и где прописать проверку на выделение той или иной позиции, и после этого записывать определенное значение в файл с последующим сохранением?

Благодарю за советы.

 

p.s. Могу оплатить решение с моего примера (в личку)  :)

Share this post


Link to post

Short link
Share on other sites
некто скрипт для бекапа не знает на очистку кеша XVM

https://bitbucket.org/Kotyarko_O/kmp/src/ca4683cc7be5e845bfcdf45cdc4fba26b9e70274/Resourses/FolderOperations.iss?at=master&fileviewer=file-view-default

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

как отключить запоминание компонентов в стандартном компонент листе заранее спасибо

Share this post


Link to post

Short link
Share on other sites

как отключить запоминание компонентов в стандартном компонент листе заранее спасибо

[Setup]: 
UsePreviousSetupType = no

Share this post


Link to post

Short link
Share on other sites

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

  DelTree(ExpandConstant('{app}\mods'), True, True, True);
  CreateDir(ExpandConstant('{app}\mods\{#Patch}'));

это значит ведь удалить папку модс  и затем создать её заново и в ней еще папку 0.9.17.1. ?  но почему если ничего не ставишь в эту папку а ставишь только в ресмодс ( и стоит галочка очистки ресмодс и т.д ) то она заново не создается?  

Share this post


Link to post

Short link
Share on other sites

 

 

она заново не создается?
Потому что она вложена. В таких случаях нужно использовать ForceDirectories().
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Потому что она вложена. В таких случаях нужно использовать ForceDirectories().

ничего не понял, но за ответ  по любому спасибо )))) то что я не догнал написанного, это уже моя вина)))

Share this post


Link to post

Short link
Share on other sites
ничего не понял

Допустим, у тебя есть конечная (пустая) папка "res_mods". Чтобы создать в ней вложенные "scripts\client", с использованием CreateDir(), понадобится такая запись:

CreateDir('res_mods\scripts');
CreateDir('res_mods\scripts\client');

Т.к. это функция создания папки, конечной в указанном во входном параметре пути.

А ForceDirectories() будет сама создавать всё, последовательно. И поэтому с ней такое применение допустимо:

ForceDirectories('res_mods\scripts\client');
Edited by Kotyarko_O
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

Допустим, у тебя есть конечная (пустая) папка "res_mods". Чтобы создать в ней вложенные "scripts\client", с использованием CreateDir(), понадобится такая запись:

CreateDir('res_mods\scripts');
CreateDir('res_mods\scripts\client');

Т.к. это функция создания папки, конечной в указанном во входном параметре пути.

А ForceDirectories() будет сама создавать всё, последовательно. И поэтому с ней такое применение допустимо:

ForceDirectories('res_mods\scripts\client');

теперь понял)) всё работает как надо.  спасибо большое! 

Share this post


Link to post

Short link
Share on other sites

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

  DelTree(ExpandConstant('{app}\mods\0.9.17.1'), True, True, True);
  CreateDir(ExpandConstant('{app}\mods\0.9.17.1'));

вот так она удалит и так она обратно всё создаст а по другому не создаёт пробовал

  • 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

а можно реализовать лог устанавливаемых пользователем модов?

гадик тут как тут))

'Конечно, можно!'

#define LogMods "Install Log.log"

function CreateLogMods: Boolean;
var
  I: Integer;
  FileName, DateTime: String;
begin
  Result:=True;
  DateTime:=GetDateTimeString('dd/mm/yyyy  hh:nn', '-', '-');
  FileName:=ExpandConstant('{app}\Your_dir_name\{#LogMods}');
  SaveStringToFile(FileName, '{#MyAppName} version {#MyAppVersion}' + #13#10 + #13#10 +  'Дата установки: ' + DateTime + #13#10 + #13#10 + 'Путь установки: ' +  WizardForm.DirEdit.Text +  #13#10 + #13#10 + 'Выбранные вами моды:' + #13#10, True);
    For I:=0 to WizardForm.ComponentsList.Items.Count - 1 do
        If WizardForm.ComponentsList.Checked[I] then
    begin
        SaveStringToFile(FileName, '... ' + WizardForm.ComponentsList.ItemCaption[I] + #13#10, True);
    end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
 if CurStep = ssInstall then
 CreateLogMods;
end;
 

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
а можно реализовать лог устанавливаемых пользователем модов?

Стандартными средствами:

WizardForm.ReadyMemo.Lines.SaveToFile('filename');

Нестандартными (для нескольких листов, без использования ReadyMemo):

Function LogCheckedFrom(CheckListBox: TNewCheckListBox): String;
var
 I: Integer; 
 TempResult: String;
begin
 for I := 0 to CheckListBox.ItemCount - 1 do
  if CheckListBox.Checked[I] then
   TempResult := TempResult + #13#10 + CheckListBox.ItemCaption[I];
 Result := TempResult;
end;

..

SaveStringToFile('filename', LogCheckedFrom(WizardForm.ComponentsList), True);
Edited by Kotyarko_O
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Gad575 - Kotyarko_O  Спасибо Вам большое!!! Как всегда помогли!  Всё работает на ура))))  


подскажите пожалуйста вот еще что... если я этот лог создаю в папке с деинсталлятором  ( вот так у меня -  FileName:=ExpandConstant('{app}\ХХХ-удалить\Установленные моды.txt');  )   то если эта папка до установки модов уже есть, то лог создается и всё нормально. а если папки деинсталлятора  нет, то лог не создается. Создается только при повторной установке модов.

Edited by ЛОМ

Share this post


Link to post

Short link
Share on other sites
если папки деинсталлятора нет, то лог не создается.

Создавай конечную папку вручную. Или через [Dirs], или с помощью ForceDirectories().

Edited by Kotyarko_O
  • Upvote 1

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