Jump to content

[ Preview ] AutoPatcher v1.0 (Python Src Fully Customizable)


Recommended Posts

spacer.png

Hello,

My nick is pcb.is.good! 🫶

Today I'm here to share a preview of my AutoPatcher.

There are many out there on the forum, but in my opinion, they are too complicated, and I also wanted to practice.

 

 It's not intended for end-user use (with a few improvements it could be) but I developed it only for my beta testers. 

 

Spoiler

 

🛠️ Server Side:

📁 Pack Folder: (with updated file ready to download)

Spoiler

spacer.png

📰 Patch_List.json (with patch_list.json)

Spoiler
 "patch_14.8": [

        {

            "locale.data": {

                "hash": "0b9dc31f07064c805e1cbe8b02e1676cbf460ac6c1d29f3012c5e21d80cdc33f",

                "size": 53122560

            },

            "locale.idx": {

                "hash": "3d73f7f25be0793d91e451f150c60e1668db7085bb06b10c77f10c32530ea388",

                "size": 72956

            },

            "root.data": {

                "hash": "e172c66a46e17e6fe474b6668a1f20b3f331289d067058905617d8f848717523",

                "size": 3738112

            },

            "root.idx": {

                "hash": "2ed323cc0c6fbadbd7ca4b1174e9daa15d870b7c28139df5f74c225e7882b90f",

                "size": 15156

            }

        }

    ],

    "exe": {

        "Metin2Release.exe": {

            "hash": "d9ec724b2aa89fbe9ddbc67521d92e992beed98e4f7d7bbfd7a1301bb87cee39",

            "size": 6532608

        }

    }

}

 

 

🛠️ Client Side:

📰 Version.txt (with current client version)

📁 Pack (with eix/epk*)

👾  Patcher.exe

 

❓ How it's work?

 

The patcher operates by connecting to a server to download a patchlist, which contains the version numbers and file hashes of the latest updates.

Then compares these details with the version numbers and hashes of the files present in the client, If discrepancies are found either in the version numbers or file hashes the patcher automatically downloads the necessary updated files from the server to ensure the client is up- to-date.

 

 

❓ How do I generate the patchlist?

 

🛠️ Admin Side:

I also developed a script that processes the files inside the update folder. 

It calculates their size and hash values and then generates a JSON file, which is ready to be uploaded to the server for managing updates efficiently.

 

📜 PatcherMaker.py (patchlist maker)

📂 Update (folder with new file updated)

 

💫

The project is lightweight, fast, and efficient.

It has been compiled into an executable (.exe) and is fully customizable.

 

 

🖼️  All images/icons are in the Images folder

⚙️all addresses, including slide links are fully customizable in a config.py file

 

🫶

After due testing i will be happy to release it if anyone might be interested.

There are definitely more professional tools, but this is simple and super fast to set up, 
great for beta phases or to keep the server updated for friends.

 

🇮🇹  LESGOSKY 

Edited by Metin2 Dev International
Core X - External 2 Internal
  • Metin2 Dev 5
  • Good 2
  • Love 8

spacer.png

3 minutes ago, DemOnJR said:

It has binary diffing, self updating?

I'm writing now the function that checks for patcher updates, but since it's not yet intended for final official use I didn't think of inserting binary diffing and relying only on the hash.
thanks a lot anyway for the comment 🫶🏻

spacer.png

Don't use any images from : imgur, turkmmop, freakgamers, inforge, hizliresim... Or your content will be deleted without notice...
Use : https://metin2.download/media/add/

Please use https://metin2.download/ when uploading files smaller than 100MB, otherwise the approval will take longer due to manual upload.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.