Tool PackMakerLite

martysama0134

Utente Platinum
9 Gennaio 2009
3,446
80
1,703
1,107
Ultima modifica:
Questo è un archiver che ho creato ed attualmente è abbastanza stabile. Lascio il resto del post in inglese per comodità.

The PackMakerLite (PML) supports type 0-1-2-3-4-5-6 (type 4-5 only pack, type 6 only unpack).

As a summarize, the metin2 types are handled like this:
  • Type 0 - only storage (no encryption/compression; it can be read fully from the .epk)
  • Type 1 - compressed - lzo(file)
  • Type 2 - compressed and encrypted - xtea(lzo(file))
  • Type 3 - encrypted with Panama - you must save an .iv key server-side in the panama/ folder. (content readable only after auth phase) The official used it only for patch2.
  • Type 4 - encrypted with a mix of ciphers (cshybridcrypt) - you must save a .dat key server-side in the package/ folder. (content readable only after auth phase) Practically all the metin2_patch files.
  • Type 5 - like type 4, but a server-side map/<map_name> is also provided. (content readable only after accessing the <map_name> map as a player) The official used it only for the catacomb data.
  • Type 6 - compressed and encrypted - xtea(snappy(file))
Usage:
detqN3R.png




Its settings (xtea keys, extensions, pack types to use) can be changed inside PackMakerLite.json:
WrdE6yM.png




You can actually integrate the tool in the menu context (running the .reg files) for packing folders and unpacking .eix files.
Z588o1Q.png


BxEU3fl.png


Remove "--nolog" from the .bat files if you want to see the logs again.

You can install it by running as admin "install.bat".

In here all the available options for the PackMakerLite.json (globally) or simply <packname>.json (e.g. etc.json) for a specific pack:
Codice:
{
    "log_name": "PackMakerLite",
    "cs_name": "",
    "force_filename_lowercase": true,
    "ignore_file_extension": ["bak", "db"],
    "default_pack_type": 0,
    "eter_pack_index_ext": ".eix",
    "eter_pack_data_ext": ".epk",
    "pack_type_by_list": [
        ["mss", 0],
        ["mse", 1],
        ["msf", 2],
        ["spt", 0],
        ["atr", 1],
        ["dds", 2],
        ["raw", 0],
        ["wtr", 1],
        ["mde", 2],
        ["tga", 0],
        ["txt", 1],
        ["msk", 2],
        ["msa", 0],
        ["msm", 1],
        ["py", 2]
    ],
    "eter_pack_index_key": [
        45129401,
        92367215,
        681285731,
        1710201
    ],
    "eter_pack_data_key": [
        78952482,
        527348324,
        1632942,
        486274726
    ]
}

Download: https://www.mediafire.com/folder/lwhcn5xyb53yq/PML
 
Ottimo, complimenti. Solo un piccolo dettaglio, ho notato che se provo a packare una cartella, con la voce nel menu (tasto destro -> PML Pack), che sta all'interno di un'altra cartella con spazi nel nome, va in errore e crasha. Ad esempio provo a packare l'archivio "ETC" nella cartella "Metin2 New Client" va in errore. Se invece la rinomino in "Metin2_New_Client" funziona. Penso che magari quando legge il nome va in errore perchè contenendo gli spazi considera solo la prima parte precedente al primo spazio. Poi magari è qualcos altro, comunque sia sono sicuro che riuscirai a capire..
 
Ultima modifica:
Ottimo, complimenti. Solo un piccolo dettaglio, ho notato che se provo a packare una cartella, con la voce nel menu (tasto destro -> PML Pack), che sta all'interno di un'altra cartella con spazi nel nome, va in errore e crasha. Ad esempio provo a packare l'archivio "ETC" nella cartella "Metin2 New Client" va in errore. Se invece la rinomino in "Metin2_New_Client" funziona. Penso che magari quando legge il nome va in errore perchè contenendo gli spazi considera solo la prima parte precedente al primo spazio. Poi magari è qualcos altro, comunque sia sono sicuro che riuscirai a capire..
È solo un errore del PackMakerLite_p.bat. Appena posso, correggo.
Sì, il bug è che si chiude cmd senza far nulla se la path contiene degli spazi.
Edit: fixato nella v1.8

---------------------------------------------
CHANGELOG
v1.3 added install.bat for installing everything (must be runned as admin)
v1.4 added "force_filename_lowercase" config field
v1.5 fixed packing of non all-lower-named packs
v1.6 fixed extraction of 0kb files
v1.7 fixed extraction of 2-len packs names
v1.8 fixed packing/unpacking files/folders with spaces in filenames (issue present only in the .bats)
 
LoLLo©Heartlongju ha aggiornato PackMakerLite:

Update v2.5

In the last update, i've implemented the multithreading in the archive. It's currently extremely fast.
For packing, what it took 180s now is done in 5s.
For unpacking, what it took 180s now is done in 30s if the folders are missing, otherwise 6s.
i.e. I also improved the original single-thread algorithm so it's faster than the older versions.

I noticed 2 weird things though:
1) On parallel mode, some prints are skipped, so if you need to debug something, disable both --nolog and --parallel...

Leggi il resto dell'aggiornamento..