Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!
The WarRock packet structure exists out of an string that has been encrypted by a simple XOR cipher. The keys of were the same in the earlier versions of the game but they changed the plan once more private servers where created. The keys are always the same for the login server. But in the newer versions of WarRock the keys of the game server change every update.
XOR Keys used v285:441M:
Server To Client: 0x
Client To Server: 0x
The packet it self is a string that has been all the data concatenated by a SPACE character. Every packet ends with an end line character (0xA). You should decoded the packet immediately when you receive any data and split them by the end line character Once you've done that you can parse the packet by separating them into blocks by splitting the packet on it's spaces.
An example packet send by the server to the launcher:
The first data block is the time stamp of the packet, this one is used to indicate when the packet was sent by the client. The value of this packet is the amount of ticks since the computer has been started.
The second block indicates the packet (ID) to tell the server what the rest of the data is. Packets can only contain an ID to ask the server for a certain response. It's easier to remember the packet IDs if you convert them to hexadecimal.
Start of a new connection
Every connection of all the servers start with a basic handshake. The server sends out the packet 4608(0x1200) with a random integer that has a length of 8 numbers as data block. The client responds with it's next packet after this packet was received. I'll remove the time stamp from the packets since it isn't important and makes it easier to read the packets.
The login server is the first server that gets contacted by the launcher, updater and client. The launcher and updater will ask the same client information such as launcher version, client version, sub version version and base link of the patch files.
Launcher information 0x1010 (Client To Server): This packet is used by the launcher and updater to check if the client files are different. If they are different then the launcher or updater might update certain files.
Packet Id: 0x1010
Client: 4112
Server Response:
Code:
Append(0x1010) // Packet Id
Append(0); // Format
Append(0); // Launcher Version
Append(0); // Updater Version
Append(0); // Client Version
Append(0); // Sub Version
Append(0); // Option
Append("http://"); // URL
Login Packet 0x1100 (Client To Server): This packet is used to authenticate and authorize an user access to the client. It sets up the client permissions and user information.
LoginError 0x1100 (Server To Client): If an error occurrences during login you send this packet back.
Packet Id: 0x1100
Server Response:
Code:
List of error codes:
Set Nickname 0x1101 (Client To Server): This packet is send after the user enters an nickname in the nickname box. This box can be opened by sending the enter new nickname error code. If the nickname is valid and not in use then you can reply the serverlist.