WTS π³ππ± π°πππππππ π π·ππππππ + π«πππππππ
-
Posts
-
Will it work for GOD H5 Client Protocol 140??
-
By tomlondon12 · Posted
6.2K followers growth from 500K DMs campaign for Onlyfan niche π βοΈ Instant Instagram followers growth & gain subscribers βοΈ GO VIRAL easier with reels on IG βοΈ Scraping & Sending in less than 24 hours For consulting contact us on telegram @igmassdm β -
ANOTHER LOGO DESIGN FOR ANOTHER EPIC PROJECTΒ π Thank You for using my supportΒ π Β Β
-
In this guide we will cover how to understand and implement the packages belonging to the Lineage 2 UI. More specifically the Essence version UI. RequiredΒ UTPT (Unreal Tournament Package Tool) :Β https://github.com/l2jsourcecode/ut-package-tool File :Β InterfaceClassic.U Β The packages are embedded into the interface, specifically located in the InterfaceClassic.u file. Some key classes include: UIPacket.uc (defines package structure) UIProtocol.uc (defines package opcode) Β The packages are split into two main types: Client to Server (prefix: C) Server to Client (prefix: S) For example, in the UIProtocol class: Β const C_EX_COSTUME_LOCK = 573; // packet from client to server const S_EX_COSTUME_LOCK = 785; // packet from server to client Β Weβll use this package as a case study to delve deeper. Understanding Client to Server Packets Let's examine a packet from the client with an opcode of 573. On the server side, opcodes are converted into hexadecimal values using a formula: opcode - C_MAX Β where C_MAX is an opcode defined in UIProtocol. Recently, C_MAX has been set to 209. For instance: 573 - 209 = 364 364 -> hex = 16C This hexadecimal value (16C) corresponds to the opcode for the Java class. Understanding Server to Client Packets For server packets, we also use hexadecimal conversion but with a different opcode: S_MAX = 255 S_MAX is applied to packages with an opcode above 255. For values below this, simply convert the number to hex. For example: const S_EX_COSTUME_LOCK = 785; 785 - 255 = 530 530 -> hex = 212 = 0xFE:0x212 Here, 0xFE represents S_MAX. Packet Structure Finally, letβs look at the packet structure. Open UIPacket.uc and locate the C_EX_COSTUME_LOCK to examine its structure in detail. Β struct _C_EX_COSTUME_LOCK { var int nCostumeId; var int nLockState; }; Β We observe two integer variables, representing the structure of the package transmitted to the server. By continuing our search within this file, we find the following code: Β static function bool Encode_C_EX_COSTUME_LOCK(out array<byte> stream, _C_EX_COSTUME_LOCK packet) { if(!EncodeInt(stream, packet.nCostumeId)) { return false; } if(!EncodeChar(stream, packet.nLockState)) { return false; } return true; } Β This function encodes the packet structure for transmission. As discussed earlier, the data types within the packet are crucial. Specifically: Β EncodeInt corresponds to an integer. EncodeChar is treated as a short in Java, typically read using readC, while readD is used for EncodeInt. Having examined the client-to-server packet structure, let's now explore the structure expected by the client from the server. The process is similar. We locate _S_EX_COSTUME_LOCK within UIPacket: Β Β struct _S_EX_COSTUME_LOCK { var byte bResult; var int nCostumeId; var int nLockState; }; Β Data Decryption The corresponding decryption function is: Β static function bool Decode_S_EX_COSTUME_LOCK(out _S_EX_COSTUME_LOCK packet) { if(!DecodeBool(packet.bResult)) { return false; } if(!DecodeInt(packet.nCostumeId)) { return false; } if(!DecodeChar(packet.nLockState)) { return false; } return true; } Β Here, the variables are decoded as follows: Β bResult is decoded as a Bool. nCostumeId is decoded as an Int. nLockState is decoded as a Char. Β This consistent approach to encoding and decoding ensures reliable data transmission between the client and server. Example usage :Β https://imgur.com/a/zVZHVzq Credits : L2j West Coast Custom (Β https://discord.gg/n2c8meMNΒ )
-
-
Topics
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.