L-e-o-N
Старожил
Программа предназначена для упаковки директории игры в архив freearc с указанными параметрами.
Файлы которые нужны программе:
Программа умеет:
!!!ВНИМАНИЕ!!! не закрывайте программу в промежутки когда появилась надпись Saving data... и пока не появится надпись Save complete, Если вы это сделаете тогда файл save.dat будет поврежден и упаковку нельзя будет возобновить
Упаковка игры делается с помощью перетаскивания папки с игрой на exe-шник программы или задания пути к папке с игрой с помощью первого аргумента командной строки (installpack.exe "d:\games\age of empires iii") пути с пробелами нужно указывать в кавычках, программа не должна лежать по пути который имеет в себе пробелы.
Возобновление сжатия также возможно по даблклику по программе (нужен файл save.dat, для загрузки даных)
Файлы которые нужны программе:
- installpack.exe Непосредственно сама программа
- arc.exe консольная версия архиватора freearc, с помощью которой и происходит упаковка
- arc-1.ini Конфиг для freearc'а
- config.ini Конфиг для gamepacker'a
- nbtdata.dll DLL библиотека для сохранения и загрузки данных
- packZIP.exe - Нужно заменить на ту версию которая используется у вас в ISDone (Программа для упаковки ZIP архивов)
- 7z.exe - консольная версия 7zip архиватора, используется для распаковки zip архивов
- Rar.exe - консольная версия WinRar архиватора, для разбиения больших файлов на части
- xdelta3.exe - Служит для патчей zip архивов для уверенности что восстановление файлов произойдет bit to bit
Программа умеет:
- Создавать архивы приблизительно одинакового размера
- Распаковывать zip архивы (Детект zip архивов происходит по первым 4 байтам)
- Делить большие файлы на части с помощью многотомных rar архивов
- Генерировать скрипт для распаковки в ISDone(т.е. вы просто копируете команды из файла unpack.iss и вставляете их в свой скрипт)
- Возобновлять работу в случае преждевременного прекращения работы(например случайно нажали на крестик)
- clearMasks - маски временных файлов, которые могут появится в папке с программой
- arc.ini - указывает расположение arc.ini, который используется при распаковке (например: {tmp}\\arc.ini)
- compress - секция настроек сжатия freearc'ом
- compressLevel - уровень сжатия (значение подставляется в аргумент -m)
- compressMetaLevel - уровень сжатия (значение подставляется в аргумент -dm)
- archiveName - имя архивов (в конце будет добавлен номер архива)
- archivePassword - пароль который нужно установить на архив
- archiveExt - расширение архива
- archiveSize - максимальный размер архива (в мегабайтах)
- compressLevel - уровень сжатия (значение подставляется в аргумент -m)
- rarpartition - секция настроек разбиения больших файлов
- enable - если true - тогда использовать разбиение иначе - нет
- size - размер тома в мегабайтах (если 0 - тогда используется значение из archiveSize
- enable - если true - тогда использовать разбиение иначе - нет
- zipunpack - секция настроек распаковки zip архивов
- enable - если true - тогда распаковывать zip архивы иначе - нет
- crcFix - если true - тогда после распаковки будет создан xdelta патч для восстановления исходного файла
- compressLevel - уровень сжатия файлов zip архива (который задается для создания архива в ISDone)
- enable - если true - тогда распаковывать zip архивы иначе - нет
- precompress - секция настроек прекомпрессоров
- все команды сортируются по ASCII таблице (сравнивается каждый символ ключа)
- синтаксис команд:ключ=команда|команда распаковки в ISDone №1|...|команда распаковки в ISDone №n
- Команда может иметь следующие переменные
- $outfile$ - выходной файл
- $infile$ - входной файл
- $outfile$ - выходной файл
- Команда распаковки может иметь следующие переменные
- $outpath$ - выходной каталог (относительно пути установки)
- $infile$ - входной файл
- $outfile$ - выходной файл
- $outpath$ - выходной каталог (относительно пути установки)
- Команда может иметь следующие переменные
- для указания в команде символа ';' нужно его экранировать ('\;')
- для указания в команде символа '\' нужно его экранировать ('\\')
- Ищет файл save.dat
- если файл существует - загружает данные из него
- если файл не существует программа начинает собирать данные
- Сканирует папку с игрой
- для каждой папки выполняет шаг 1
- анализирует каждый файл
- если файл zip архив тогда распаковать, если нет то перейти к шагу 8
- создает zip архив из распакованных данных
- создает патч разницы между оригиналом и упакованным архивом
- для папки распакованного архива выполняет шаг 1
- проверяет размер каждого файла
- если размер больше заданого в конфиге то создать многотомный архив
- каждый проанализированный файл (кроме zip архива и не разбитого файла) заносит в список
- каждую пустую папку заносит в список
- Сортирует список по размеру в обратном порядке (первый файл - самый больший)
- После сбора данных начинается упаковка
- Создает список сжимаемых файлов
- добавляет в список все файлы пока их общий размер не будет максимально близкий к указаному в конфиге
- если в конфиге заданы прекомпрессоры тогда создает временный файл
- пропускает временный файл через все прекомпрессоры
- создает архив с конфигом arc-1.ini
- если не удалось, создает архив с конфигом arc-....ini
- если не удалось, создает архив с конфигом arc-n.ini
- берет размер созданого архива
- добавляет к списку файлы общего размера разницы размера указаного в конфиге и размера архива
- если в архив все еще можно вместить файлы возвращается к шагу 3
- Генерирует скрипт распаковки
!!!ВНИМАНИЕ!!! не закрывайте программу в промежутки когда появилась надпись Saving data... и пока не появится надпись Save complete, Если вы это сделаете тогда файл save.dat будет поврежден и упаковку нельзя будет возобновить
Упаковка игры делается с помощью перетаскивания папки с игрой на exe-шник программы или задания пути к папке с игрой с помощью первого аргумента командной строки (installpack.exe "d:\games\age of empires iii") пути с пробелами нужно указывать в кавычках, программа не должна лежать по пути который имеет в себе пробелы.
Возобновление сжатия также возможно по даблклику по программе (нужен файл save.dat, для загрузки даных)
Последнее редактирование: