Вы здесь:

Total War моды

Cоздание Inno Setup - инсталлятора для модов

;Знак ; означает, что эта строка информационная и не будет задействована в компиляции.

 

;Скачать программу Inno Setup , как и всё необходимое можно здесь http://forum.ru-board.com/topic.cgi?forum=5&topic=24767&start=0#lt

 

;Этот скрипт вы можете вставить в программу.

 

[Setup]

;Основные директивы секции можно задать с помощью мастера, встроенного в программу.

 

AppName=MyMod

;Название мода.

 

AppVerName=MyMod версия 1.4

;Версия мода. Обязательно должна иметь значение AppName и номер версии.

 

DefaultDirName={pf}

;Выбор пути установки через "Обзор".В данном случае по умолчанию будет предложено установить программу в Program Files.Константа {pf}.

;Может иметь вид DefaultDirName={pf}\MyMod.

 

DefaultGroupName=MyMod

;Директива, которая определяет имя группы меню Пуск по умолчанию.

 

OutputDir=C:\Documents and Settings\user\Рабочий стол

;Куда будет помещен скомпилированный инсталлятор.

 

OutputBaseFilename=MyMod версия 1.4

;Задаётся имя получаемого инсталлятора.

 

Compression=lzma

;Метод сжатия.

SolidCompression=yes

;Уплотненное сжатие.

 

AppendDefaultDirName=no

;При значении yes, при выборе пути установки через "Обзор" автоматически добавляется папка с именем взятым из DefaultDirName.

;Например (при значении yes) DefaultDirName={pf}\MyMod, при выборе в "Обзоре" D:\Games получаем D:\Games\MyMod.

 

DirExistsWarning=no

;При значении yes инсталлятор всегда будет выдавать сообщение "Папка: … уже существует."Вы хотите продолжить установку в эту папку?" при попытке установки в существующую папку.

 

ShowComponentSizes=yes

;При значении yes будет показываться размер компонентов в списке выбора компонентов.

 

InfoBeforeFile=C:\Documents and Settings\User\Рабочий стол\Папка с файлами для инсталляции\MyInfoBefore.txt

;В этом текстовике можете поместить нужную для установки информацию... .

;Будет отображаться перед страницей выбора папки установки в окне инсталлятора.

;Файл MyInfoBefore.txt связан с секцией [Files].

 

[Languages]

Name: rus; MessagesFile: compiler:Languages\Russian.isl

;Выбор языка. Без этой секции, язык интерфейса мастера установки будет английский.

 

[Files]

Source: C:\Documents and Settings\User\Рабочий стол\Папка с файлами для инсталляции\MyInfoBefore.txt; DestDir: "{app}"

;Source: Полный путь, откуда берётся файл для компиляции.

;DestDir: Куда должен установиться файл в системе пользователя.

;Константа "{app}" означает, что папка, куда должен установиться файл выбирается пользователем в окне выбора пути установки.

;В данном примере константе "{app}" будет присвоено значение "D:\Games\SEGA\Medieval II Total War"(D:-диск пользователя, где установлена игра).

 

Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\data\*; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs overwritereadonly

;Знак * означает, что из папки \data\ берутся все файлы.

;Flags: ignoreversion Установить файл, который уже установлен в системе пользователя.Перемещает существующие файлы, не обращая внимание на номера версий.

;Flags: recursesubdirs Указывает искать файлы с тем же именем в подпапках папки,указанной в параметре Source.

;Flags: overwritereadonly Всегда перезаписывает файл с отметкой "только для чтения".

;Все флаги подробно описаны в хелпе, который идёт с программой.

 

Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\MyMod\*; DestDir: "{app}\MyMod"; Flags: ignoreversion recursesubdirs overwritereadonly

 

Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\MyMod.cfg; DestDir: "{app}"; Flags: ignoreversion

;Определённые свойства ярлыку задаём Parameters: в секции [Icons].

 

Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\export_descr_buildings.txt; Components: A; DestDir: "{app}\MyMod\data\"; Flags: ignoreversion recursesubdirs overwritereadonly

Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\descr_strat.txt; Components: A; DestDir: "{app}\MyMod\data\world\maps\campaign\imperial_campaign\"; Flags: ignoreversion recursesubdirs overwritereadonly

Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\export_descr_unit.txt; Components: A; DestDir: "{app}\MyMod\data\"; Flags: ignoreversion recursesubdirs overwritereadonly

;Компоненты, которые пользователь может установить на выбор. В данном случае все три файла принадлежат одному компоненту А, который описан в секции [Components].

 

[Icons]

Name: {userdesktop}\MyMod.exe; Filename: "{app}\medieval2.exe"; Parameters: " @MyMod.cfg"; WorkingDir: "{app}"; Tasks: DesktopIcon

;Name: Задаём имя и расположение создаваемого ярлыка.В данном примере ярлык MyMod.exe будет помещен на рабочем столе,константа{userdesktop}. В свойствах ярлыка получаем "D:\Games\SEGA\Medieval II Total War\medieval2.exe" @MyMod.cfg

;Filename: Полный путь к файлу, на который указывает ярлык.

;Parameters: Параметры командной строки для ярлыка.

;WorkingDir: Папка, из которой запускается программа.

;Tasks: Вызывает задание, описанное в секции [Tasks].

 

Name: {userdesktop}\Удалить MyMod.exe; Filename: "{app}\unins000.exe"; WorkingDir: "{app}"; Tasks: DesktopIcon

 

[Tasks]

;В этой секции, описываем задания для создания ярлыков и сохранения оригинальных файлов.

 

Name: src; Description: Сохранить оригинальные файлы игры; Flags: exclusive

;Делаем Backup через секцию [Code].

;Description: Описание компонента.

;Flags: exclusive Пользователь не сможет отменить выбор этого пункта. Будет установлен в любом случае.

 

Name: DesktopIcon; Description: Создать ярлык MyMod на рабочем столе; Flags: unchecked

Name: DesktopIcon; Description: Создать ярлык удалить MyMod на рабочем столе; Flags: unchecked

;Flags: unchecked По умолчанию задание не будет выбрано(галочка снята).

 

[Types]

;Секция определяет типы установки.

Name: viborochnaya; Description: Выбрать компоненты; Flags: iscustom

;Flags: iscustom Указывает инсталятору, что тип компонента является выборочным.

 

[Components]

Name: A; Description: Обычные цены на строительство и юнитов; Types: viborochnaya

;Description: Описание отображается на странице выбора компонентов в окне инсталлятора.

 

[Code]

;Необходимо знание языков программирования.

function MoveFile(const srcFile, destFile: PChar): Integer;

external ' Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript stdcall';

procedure CreateBackup;

var

srcFile, destFile: string;

basePath, shortPath: string;

begin

if IsTaskSelected('src') then

begin

basePath := ExpandConstant('{app}');

srcFile := ExpandConstant(CurrentFileName);

shortPath := srcFile;

StringChangeEx(shortPath, basePath, '', True);

destFile := ExpandConstant('{app}\Backup') + shortPath;

ForceDirectories(ExtractFilePath(destFile));

MoveFile(PChar(srcFile), PChar(destFile));

end;

end;

 

//Vatu NeCatanen. (Дмитрий Кобзов).

Реклама

 

Обсуждаем на форуме