Coder Social home page Coder Social logo

mikeglotzkowski / cdtb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from communitydragon/cdtb

0.0 1.0 0.0 43.51 MB

A library containing everything to extract files from client files.

License: GNU Lesser General Public License v3.0

Python 100.00%

cdtb's Introduction

CommunityDragon Toolbox

A toolbox to work with League of Legends game files and export files for CDragon. It can be used as a library or a command-line tool.

Dependencies

To install dependencies, run:

pip install -r requirements.txt

Windows users: precompiled packages can be found here.

Command-line examples

The CLI interface allows:

  • download game files and list relations between
  • list and extract content of WAD files
  • export game files to be served by CDragon

Here are some examples, use python3 -m cdragontoolbox -h for details.

# download and extract files for the latest patch
python3 -m cdragontoolbox download patch=

# download a solution, don't download language-specific projects
python3 -m cdragontoolbox download --no-lang lol_game_client_sln=0.0.1.196

# list projects used by patch 7.23
python3 -m cdragontoolbox projects patch=7.23

# list patch versions (using already downloaded data)
python3 -m cdragontoolbox versions patch

# list files used by a given project version
python3 -m cdragontoolbox files league_client_fr_fr=0.0.0.80

# extract a WAD file
python3 -m cdragontoolbox wad-extract path/to/assets.wad

# list content of a WAD file
python3 -m cdragontoolbox wad-list path/to/assets.wad

# export files of patch 7.23 into export/7.23
# (files unchanged from 7.22 files are listed into 7.23.links.txt)
python3 -m cdragontoolbox export -o export 7.23

# download Korean files of league client
python3 -m cdragontoolbox download --cdn kr league_client_ko_kr=

# export files from PBE
python3 -m cdragontoolbox export --cdn pbe --full main

Components

Solutions

Solutions are the top-level components downloaded by the patcher. They are located under the solutions/ directory. Currently, two solutions are used: league_client_sln for the LCU and lol_game_client_sln for the in-game client.

Each solution version is located under solutions/{name}/releases/{version}.

Projects

Each solution version depends on several projects: a main project and additional projects for each available language. They are located under the projects/ directory. Projects are actually named after the solution, and suffixed by the language code if any. For instance: league_client_en_gb.

Each project version is located under projects/{name}/releases/{version}.

When a project is updated, only files that have changed since the previous version are located under this version directory. Files reused from a previous version stay in this version directory. As a result, downloading the latest version of a project actually download files of previous project versions too.

Patches

A patch version is the version used publicly by Riot (for instance 7.23) and retrieved from downloaded files

Patch version changes independently from solution and project versions.

Note: PBE use a single patch version: main.

WAD files

WADs are archives used by the clients. They contain assets, game data (e.g. item description), files for the LCU interface and more.

Paths of files in WAD files are hashed, they are not stored in clear in the archive. A large number of these hashes have been guessed but there are still a lot of unresolved hashes.

An hash list is provided and regularly updated with new hashes as they are discovered, especially after client updates.

PBE and Korean files

PBE and Korean game files have their own download URLs. Use --cdn pbe or --cdn kr to fetch PBE or Korean files.

Note that they should not be mixed with files from the default CDN. By default, PBE files are downloaded to RADS.pbe and Korean files to RADS.kr.

cdtb's People

Contributors

benoitryder avatar skarajic avatar jjmaldonis avatar morilli avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.