ISDone

DLL ISDone 0.6 final

Нет прав для скачивания

murlakatamenka

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

Adil

Старожил
Добрый день, у меня вопрос

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

не знаете как решить[MOD="Gnom"]А ты не пихай .arc архив в Setup.exe. И при чем тут IsDone?[/MOD]
 
Последнее редактирование модератором:

murlakatamenka

Новичок
А ты не пихай .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

Vasul

Мимокрокодил
Помогите пожалуйста.
каким макаром можно заставить IsDone распаковывать архив с таким методом сжатия?


архив паковался последней версии ФА
 
Последнее редактирование:

LexBell

Борода
Супер модератор
Разбиралось неоднкратно. используй arc.ini тот, который использовался архиватором при упаковке. ну и версию прекомпа правильную положи радом с с исдоном.
 

Vasul

Мимокрокодил
Что не так? все файлы в папке 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]
 
Последнее редактирование модератором:

Vasul

Мимокрокодил
alexa1995,
не помогает. ошибка та же.
давайте сначала. какие мне нужно файлы распаковки этого архива и как их лучше прописать: через секцию файлз или просто, включить в скрипте соответствующие препроцессори
 

DJYO

Новичок
подскажите плиз ещё по 1 пункту.
при распаковке srepinside и precompinside создаётся файлик srep-virtual и лезет в папку tmp. как его заставить лезть в папку куда ставится игра, в языках программирования не особо, и врубиться не получается..
 

nik1967

Old Men
Проверенный
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

PUNISHER

Участник
что то через 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\*
что ему еще надо, если в итоге:
 

SaintPaul

Участник
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

Участник
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 извлекается без проблем, но хотелось бы распаковать так как написано выше.
 
Последнее редактирование:

Edison007

Ветеран
Модератор
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
 

Edison007

Ветеран
Модератор
PUNISHER, как не катит? у меня всё работает и через Исдон распаковывается, а да
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data.arc'), ExpandConstant('{app}\'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\'), notPCFonFLY{PCFonFLY}) then break;
 
Сверху