Page 1 of 1

Client / Server packets reading

Posted: Mon Jan 05, 2015 6:32 pm
by Tessa
Hello L2J!
I've got the whole packet structure of Ertheia, but I'm not very familiar with the packets reading.
Can someone give me a hint, how to convert these packet into the proper server side format (I mean writeC(packet id))? I will share the whole packets list!

Client packet example:

0x1151 RequestSetWeatherEffect (int type);


0002C56D/00000000 00 00 51 45 00 5B 13 70 10 00 EF 02 00 00 34 94
0002C57D/00000010 00 00 06 00 00 00 29 5B 13 0B 00 00 00 01 04 02
0002C58D/00000020 00

The underline text is the offset.

Re: Client / Server packets reading

Posted: Mon Jan 05, 2015 6:41 pm
by Sdw
He ? What's that packet. Never saw it oO and tbh I can't find it on rev47.

PS : The whole packet list is here viewtopic.php?f=113&t=30096
PS2 : I'll try to find time to answer your initial question, it's a bit heavy and I won't have that kind of time right now.

Re: Client / Server packets reading

Posted: Mon Jan 05, 2015 6:51 pm
by Tessa
It's the Weather effect packet, I suppose :lol:
How to convert it to server side format? I've used MMOCore to create something like a tool to convert it, but as I said, I'm not very familiar with the packets...

EDIT: This is the server packet for the packet above, I suppose:

0x5611 WeatherWnd

Code: Select all

0014F8BC / 00000000 02 00 51 D8 02 72 9F 03 63 33 00 FF FF FF FF FF
0014F8CC / 00000010 FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 FF
0014F8DC / 00000020 FF FF FF FF FF FF FF FF FF 00 00 00 00 12 00 00
0014F8EC / 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0014F8FC / 00000040 00 33 52 D8 02 01 00 00 00 53 94 38 37 02 01 00
0014F90C / 00000050 00 00 69 43 CB 25 A9 00 00 00 00 A0 57 61 0E 97
0014F91C / 00000060 00 00 00 00 F9 86 59 14 97 00 00 00 00 F9 86 59
0014F92C / 00000070 14 97 00 00 00 00 F9 86 59 14 A9 00 00 00 00 A0
0014F93C / 00000080 57 61 0E 97 00 00 00 00 F9 86 59 14 97 00 00 00
0014F94C / 00000090 00 F9 86 59 14 97 00 00 00 00 F9 86 59 14 A9 00
0014F95C / 000000A0 00 00 00 A0 57 61 0E 97 00 00 00 00 F9 86 59 14
0014F96C / 000000B0 97 00 00 00 00 F9 86 59 14 97 00 00 00 00 F9 86
0014F97C / 000000C0 59 14 A9 00 00 00 00 A0 57 61 0E 97 00 00 00 00
0014F98C / 000000D0 F9 86 59 14 97 00 00 00 00 F9 86 59 14 97 00 00
0014F99C / 000000E0 00 00 F9 86 59 14 97 00 00 00 00 F9 86 59 14 8B
0014F9AC / 000000F0 00 00 00 00 28 C9 13 A6 8B 00 00 00 00 28 C9 13
0014F9BC / 00000100 A6 8B 00 00 00 00 28 C9 13 A6 A9 00 00 00 00 A0
0014F9CC / 00000110 57 61 0E 97 00 00 00 00 F9 86 59 14 8B 00 00 00
0014F9DC / 00000120 00 28 C9 13 A6 8B 00 00 00 00 28 C9 13 A6 8B 00
0014F9EC / 00000130 00 00 00 28 C9 13 A6 A9 00 00 00 00 A0 57 61 0E
0014F9FC / 00000140 97 00 00 00 00 F9 86 59 14 8B 00 00 00 00 28 C9
0014FA0C / 00000150 13 A6 8B 00 00 00 00 28 C9 13 A6 8B 00 00 00 00
0014FA1C / 00000160 28 C9 13 A6 A9 00 00 00 00 A0 57 61 0E 85 00 00
0014FA2C / 00000170 00 00 92 ED 85 DD A9 00 00 00 00 A0 57 61 0E A9
0014FA3C / 00000180 00 00 00 00 A0 57 61 0E A9 00 00 00 00 A0 57 61
0014FA4C / 00000190 0E A9 00 00 00 00 A0 57 61 0E A9 00 00 00 00 A0
0014FA5C / 000001A0 57 61 0E A9 00 00 00 00 A0 57 61 0E A9 00 00 00
0014FA6C / 000001B0 00 A0 57 61 0E A9 00 00 00 00 A0 57 61 0E A9 00
0014FA7C / 000001C0 00 00 00 A0 57 61 0E A9 00 00 00 00 A0 57 61 0E
0014FA8C / 000001D0 A9 00 00 00 00 A0 57 61 0E 97 00 00 00 00 F9 86
0014FA9C / 000001E0 59 14 97 00 00 00 00 F9 86 59 14 97 00 00 00 00
0014FAAC / 000001F0 F9 86 59 14 A9 00 00 00 00 A0 57 61 0E A9 00 00
0014FABC / 00000200 00 00 A0 57 61 0E A9 00 00 00 00 A0 57 61 0E 04
0014FACC / 00000210 07 08 09 0A 8E 0B 0000
And 0x114D RequestCreateRainEffect(int imode, int iEmitterposition);

Code: Select all

0002C4A0 / 00000000 00 00 4A 45 00 5D 13 72 10 00 ED 02 00 00 C7 93
0002C4B0 / 00000010 00 00 0B 00 00 00 29 5D 13 29 5C 13 0B 00 00 00
0002C4C0 / 00000020 01 04 02 00

Re: Client / Server packets reading

Posted: Mon Jan 05, 2015 10:28 pm
by Sdw
Please note I've never seen such packets, and those opcode are just crazy to be true. You sure it's Lineage ? I didn't saw anything weather related in Ertheia.

There is a few errors but here is one : viewtopic.php?f=90&t=18222

Start to read the above, then come here for an update. Some addition :

c - 8 bits
h - 16 bits
d - 32 bits
f - 32 bits
F - 64-bit
Q - 64-bit
s - ASCII string
S - UTF-16 LE string
b - byte array

Every packet starts with an opcode, which is a C. There is some case where it's longer :
For server packet, In case that opcode is FE, there is a following H
For client packet, in case that opcode is D0, there is a following H

After the opcode, you're kinda on your own to read the data section. You need to find a format for that packet to make sense and read it, there is no easy conversion. Usually it's a packet upgrade, so you start with an existing format from a previous chronicles and work with that. Server Packet are crypted with the blowfish but you already read that, client packets are now shuffled, but if you have the data you don't really care.

Please the little endian stuff to make sense out of it.

I suck at guide, it's messy and I can't understand what I wrote, but someone needed to answer it.

Re: Client / Server packets reading

Posted: Mon Jan 05, 2015 10:40 pm
by Tessa
I've got these packets directly from the client side, probably there is an additional converting before they are send to the server, but these are real Ertheia packets :)
Thanks, I will read that!