ISDone

DLL ISDone 0.6 final

Нет прав для скачивания
Absolute, может места для временных файлов не хватет, хотя обычно папкой для временных файлов является конечная папка с игрой.
разделы на винтах в NTFS конечно же?
 
Добрый день, у меня вопрос

При использовании IsDone 0.6 final скрипт компилирует .arc архив в Setup.exe

не знаете как решить[MOD="Gnom"]А ты не пихай .arc архив в Setup.exe. И при чем тут IsDone?[/MOD]
 
Последнее редактирование модератором:
А ты не пихай .arc архив в Setup.exe. И при чем тут IsDone?
немного расшифрую, чтобы стало понятно. при использовании ISDone архивы, которыуе будут распаковываться, не надо прописывать в секцию [Files]. главное, чтобы они присутствовали в фунукциях типа ISArcExtract и т.п.:
Код:
if not ISArcExtract ( 0, 0, ExpandConstant('[B][COLOR="Red"]{src}\*.arc[/COLOR][/B]'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
читай справку ISDone (а она хорошая и понятная) и смотри примерный скрипт, чтобы не задавать такие вопросы.
 
  • Like
Реакции: Adil
Помогите пожалуйста.
каким макаром можно заставить IsDone распаковывать архив с таким методом сжатия?
cd3d5228ad493e0824b9ac3d74acbda5.jpg


архив паковался последней версии ФА
 
Последнее редактирование:
Разбиралось неоднкратно. используй arc.ini тот, который использовался архиватором при упаковке. ну и версию прекомпа правильную положи радом с с исдоном.
 
Что не так? все файлы в папке Include я заменил на нужные. в скрипте написал следующее
Код:
[Files]
Source: Include\English.ini; DestDir: {tmp}; Flags: dontcopy
Source: Include\unarc.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp042.exe;  DestDir: {tmp}; Flags: dontcopy
Source: Include\srep.exe; DestDir: {tmp}; Flags: dontcopy
Source: ISDone.dll; DestDir: {tmp}; Flags: dontcopy
[MOD="Gnom"]Скрипт целиком покажи.[/MOD]
 
Последнее редактирование модератором:
alexa1995,
не помогает. ошибка та же.
давайте сначала. какие мне нужно файлы распаковки этого архива и как их лучше прописать: через секцию файлз или просто, включить в скрипте соответствующие препроцессори
 
подскажите плиз ещё по 1 пункту.
при распаковке srepinside и precompinside создаётся файлик srep-virtual и лезет в папку tmp. как его заставить лезть в папку куда ставится игра, в языках программирования не особо, и врубиться не получается..
 
DJYO,
function SrepInit

function SrepInit(TmpPath:PAnsiChar;VirtMem,MaxSave:Cardinal):boolean;
инициализация переменных для распаковки srep-архивов как отдельных, так и внутри .arc архива. Эта функция является необязательной, т.к. при инициализации командой ISDoneInit все параметры принимают свои знчения по умолчанию. Чтобы их поменять и существует рассматриваемая функция.
TmpPath – назначает путь для temp файла менеджера виртуальной памяти srep'а;
VirtMem – размер памяти,задаваемый в Мб, выделяемый менеджером памяти для форсирования распаковки srep-архивов упакованных с опцией -f (-m1f, -m2f, -m3f) как отдельных, так и внутри цепочки в .arc-архиве (как для stdin/out, так и для cls фильтра). Значение по умолчанию: 0 (весь объем повторяющихся фрагментов полностью хранится в памяти без использования temp файла);
MaxSave – максимальный размер строки совпадений (в байтах), который при распаковке будет оставаться в памяти для ускорения последующей распаковки. Остальные совпадения впоследствии будут браться с жесткого диска. Работает только для архивов, упакованных с опцией -f. Используется только для отдельных srep архивов или для распаковываемых посредством stdin/stdout интерфейсом FreeArc'а, для CLS фильтра не используется. Значение по умолчанию: 0 (в памяти остаются все совпадения);


function PrecompInit

function PrecompInit(TmpPath:PAnsiChar;VirtMem:cardinal;PrecompVers:single):boolean;
инициализация переменной, определяющей версию для распаковки precomp-архивов. Эта функция является необязательной, т.к. при инициализации командой ISDoneInit параметры принимают свои знчения по умолчанию. Чтобы их поменять и существует рассматриваемая функция.
TmpPath – назначает путь для temp файла менеджера виртуальной памяти precomp'а. При пустом значении используется папка, в которой находится библиотека фильтра. Используется только для CLS фильтра (PrecompInside);
VirtMem – размер памяти,задаваемый в Мб, который сможет выделить менеджер памяти CLS фильтра precomp'а для хранения всей необходимой информации. Если данные исходного архива требуют выделения бОльшей памяти, чем это задано текущим параметром, то фильтр создаст temp файл и все лишнее будет скидывать туда. Используется только для CLS фильтра (PrecompInside);
PrecompVers – дробное число, котрое указывает библиотеке какую версию precomp необходимо использовать. Используется только для распаковки с помощью функции ISPrecompExtract. По умолчанию значение равно нулю. При задании значения возможно 4 варианта:
0 - используется автоматическое определение версии по содержанию pcf-файлов. А так же оттуда считываются имена выходных файлов, если в функции ISPrecompExtract выходным файлом задана папка (precomp при упаковке сохраняет внутри .pcf оригинальное имя файла);
0.38 - используется Precomp версии 0,38 посредством precomp038.exe. Имена выходных файлов при групповой распаковке получаются отсечением последнего расширения у входных файлов. Например data.pak.pcf распакуется в data.pak. Либо же формируются в соответствии с маской, указанной в параметре выходного файла в ISPrecompExtract;
0.4 - используется Precomp версии 0,4 посредством precomp040.exe. Имена выходных файлов при групповой распаковке получаются так же, как в остальных версиях;
0.41 - используется Precomp версии 0,41 посредством precomp041.exe. Имена выходных файлов при групповой распаковке генерятся так же, как в предыдущем пункте;
В примере скрипта использования библиотеки этот параметр подставляется автоматом по заданному определению #define precomp, если необходимо конкретно указать версию, или поставить 0, то вместо PCFVer в данной функции укажите требуемое значение;
Конкретное применение:
Код:
if not SrepInit(ExpandConstant('{app}'),128,0) then break;
if not PrecompInit(ExpandConstant('{app}'),128,PCFVer) then break;
 
  • Like
Реакции: DJYO
что то через isdone распаковывать lzma+tak распаковывать не хочет

в arc.ini прописано следующее:
Код:
[External compressor:tak]
packcmd   = takc -e {options} $$arcdatafile$$.wav $$arcpackedfile$$.tak
unpackcmd = takc -d $$arcpackedfile$$.tak $$arcdatafile$$.wav

распаковка прописана так:
Код:
 if not ISArcExtract    ( 0, 0, ExpandConstant('{src}\data1.arc'), ExpandConstant('{app}\'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\'), notPCFonFLY{PCFonFLY}) then break;

упаковка так:
Код:
arc.exe a -ep1 -dses --dirs -s; -lc- -di -i2 -r -mtak+lzma:512mb:normal data1.arc sound\*

что ему еще надо, если в итоге:
4097a97cbbf9c02f9026d94e58d60714.png
 
PUNISHER,

а извлекал данные из прочтенного ини?
Код:
ExtractTemporaryFile('arc.ini');

и еще:
Код:
[External compressor:tak] 
packcmd   = tak[COLOR="Red"][B]c[/B][/COLOR]-e {options} $$arcdatafile$$.wav $$arcpackedfile$$.tak 
unpackcmd = tak[COLOR="Red"][B]c[/B][/COLOR] -d $$arcpackedfile$$.tak $$arcdatafile$$.wav

то что красным - сереть мне кажется нужно
 
Последнее редактирование:
PUNISHER,

а извлекал данные из прочтенного ини?
Код:
ExtractTemporaryFile('arc.ini');

и еще:
Код:
[External compressor:tak] 
packcmd   = tak[COLOR="Red"][B]c[/B][/COLOR]-e {options} $$arcdatafile$$.wav $$arcpackedfile$$.tak 
unpackcmd = tak[COLOR="Red"][B]c[/B][/COLOR] -d $$arcpackedfile$$.tak $$arcdatafile$$.wav

то что красным - сереть мне кажется нужно
да извлекал, экзешник имеет имя tack, поэтому не надо стирать.

p.s через arc.exe извлекается без проблем, но хотелось бы распаковать так как написано выше.
 
Последнее редактирование:
PUNISHER
[External compressor:tak]
packcmd = tak.exe -e -p4m $$arcdatafile$$.wav $$arcpackedfile$$.tak
unpackcmd = tak.exe -d $$arcpackedfile$$.tak $$arcdatafile$$.wav
datafile = $$arcdatafile$$.wav
packedfile = $$arcpackedfile$$.tak
solid = 0
 
PUNISHER, как не катит? у меня всё работает и через Исдон распаковывается, а да
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data.arc'), ExpandConstant('{app}\'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\'), notPCFonFLY{PCFonFLY}) then break;
 
Назад
Сверху