Ошибка при распаковке

vint56

Ветеран
Проверенный
Privetiki,
ну если не используеш убери оставить только файлы xtool
это что в скрипте надо убрать ну и файлы папке IsDone перед setup ты не показал
но должно быть так ты должен убрать #define pZLib и #define ztool и оставить xtool
#define pZLib
#define xtool
#define ztool

[Files]
#ifdef pZLib
Source: IsDone\hif2raw_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\raw2hif_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\pZLib.exe; DestDir: {tmp}; Flags: dontcopy
#endif

#ifdef ztool
Source: IsDone\ztool\arc.ini; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\ztool\hif2raw_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\ztool\liblz4.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\ztool\libzstd.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\ztool\lzma2.exe; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\ztool\lzo2.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\ztool\raw2hif_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\ztool\ZTool.exe; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\ztool\zlibwapi.dll; DestDir: {tmp}; Flags: dontcopy
#endif

Код:
procedure CancelButtonOnClick(Sender: TObject);
  #ifdef ztool
  if IsProcessRunning('ZTool.exe') then
       Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM ZTool.exe', '', SW_HIDE, ewWaitUntilTerminated, i);
#endif

procedure IsDoneUnpack(CurStep: TSetupStep);
#ifdef ztool
ExtractTemporaryFile('hif2raw_dll.dll');
ExtractTemporaryFile('liblz4.dll');
ExtractTemporaryFile('libzstd.dll');
ExtractTemporaryFile('arc.ini');
ExtractTemporaryFile('lzma2.exe');
ExtractTemporaryFile('lzo2.dll');
ExtractTemporaryFile('raw2hif_dll.dll');
ExtractTemporaryFile('Ztool.exe');
ExtractTemporaryFile('zlibwapi.dll');
#endif[/SPOILER]
 
Последнее редактирование:

vint56

Ветеран
Проверенный
Privetiki,
больше информаций что не распаковывает pzlib ztool xtool и еще не надо в скрипте темп указывать windows каталог не у всех есть доступ к папке windows еще если используеш пароль тоже надо указывать а то установка будет стоять на месте проверяй что у тебя не так
можно удалить если не используеш эти методы
lzo2.dll lzo
libzstd.dll zstd
liblz4.dll lz4

Для zlib нужно hif2raw_dll.dll raw2hif_dll.dll xtool.exe zlibwapi.dll'


if not ISArcExtract ( 0, 100, ExpandConstant('{src}\{#Data1}'), ExpandConstant('{app}\'), '', false,'', ExpandConstant('{tmp}\arc.ini'),ExpandConstant('{sys}\Temp'),notPCFonFLY{PCFonFLY}) then break;

Вот arc
Для скрипта
#define lzma2
#define SrepInside
#define xtool
#define Data1 "Data-1.arc"
#define Data2 "Data-2.arc"
#define Data3 "Data-3.arc"
[Setup]

[Files]
#ifdef xtool
Source: IsDone\xtool\arc.ini; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\xtool\hif2raw_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\xtool\liblz4.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\xtool\libzstd.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\xtool\lzma2.exe; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\xtool\lzo2.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\xtool\raw2hif_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\xtool\xtool.exe; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\xtool\xtool.ini; DestDir: {tmp}; Flags: dontcopy
Source: IsDone\xtool\zlibwapi.dll; DestDir: {tmp}; Flags: dontcopy
#endif

#ifdef SrepInside
Source: ISDone\CLS-srep.dll; DestDir: {tmp}; Flags: dontcopy
#endif

#ifdef lzma2
Source: ISDone\lzma2\lzma2.exe; DestDir: {tmp}; Flags: dontcopy
#endif

Код:
procedure IsDoneUnpack(CurStep: TSetupStep);
#ifdef xtool
ExtractTemporaryFile('hif2raw_dll.dll');
ExtractTemporaryFile('liblz4.dll');
ExtractTemporaryFile('libzstd.dll');
ExtractTemporaryFile('arc.ini');
ExtractTemporaryFile('lzma2.exe');
ExtractTemporaryFile('lzo2.dll');
ExtractTemporaryFile('raw2hif_dll.dll');
ExtractTemporaryFile('xtool.exe');
ExtractTemporaryFile('xtool.ini');
ExtractTemporaryFile('zlibwapi.dll');
#endif

#ifdef SrepInside
    ExtractTemporaryFile('CLS-srep.dll');
#endif

#ifdef lzma2
  ExtractTemporaryFile('lzma2.exe');
#endif

if not ISArcExtract  ( 0, 0, ExpandConstant('{src}\{#Data1}'), ExpandConstant('{app}\'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{tmp}\Temp'), notPCFonFLY{PCFonFLY}) then break;
с паролем vint56
if not ISArcExtract    ( 0, 0, ExpandConstant('{src}\{#Data1}'), ExpandConstant('{app}\'), '', false, 'vint56', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\'), notPCFonFLY{PCFonFLY}) then break;
xtool_v09.7z
Размер файла:
3,5 МБ
 

Вложения

  • 740 байт Просмотры: 25
Последнее редактирование:

Privetiki

Новичок
vint56, А по настройкам xtool`а можете что-то подсказать?
зтул у меня намного сильнее сжимал хотя и времени это занимало намного больше
Что можно в настройках поменять хтула что бы лучше сжатие было?
 

dixen18

Ветеран
Privetiki, Не сжатие а разжатие) XTool это прекомпрессор..Так просто поправил)
Для упаковки
[External compressor:xtool]
header = 0
packcmd = xtool e:precomp:t4,c32mb:zlib - - <stdin> <stdout>

Для распаковки
[External compressor:xtool]
header = 0
unpackcmd = xtool.exe d:precomp:t4 - - <stdin> <stdout>

По невыявленной мною причине при попытке разжать файлы менее 1 мб, Xtool просто закрывается..Для решения этой проблемы вместо - - <stdin> <stdout> подставьте $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
 

dixen18

Ветеран
Privetiki, XTool это не компрессор а ПРЕкомпрессор..Мне же не надо объяснять в чем между этими понятиями разница?
Все остальное написано комментом выше
 

vint56

Ветеран
Проверенный
Privetiki, я тут сделал сравнения ztool и xtool на игре Treasure Hunter Simulator у них на выходе одинаковый размер
 
Последнее редактирование:

vint56

Ветеран
Проверенный
Privetiki,
1) Узнать какой метод используется в игре
ниже перечисленные и только тогда xtool подставить zlib или crilayla и так далее...
Operations and codecs available:
precomp - data precompression
zlib : loaded
crilayla : not loaded
lz4 : not loaded
zstd : not loaded
lzo : not loaded
oodle : not loaded
Для этого нужно программа Game File Scanner от Razor12911 Проверка на налийчий тех или иных потоков
чтобы нормально отображало размер нужно будет заменить запитую на точку
 

Вложения

Сверху