Im working on emulating a client for RO, and Im pretty close to being able to login, but I have 4 Bytes of data that I need to make that so far I have been unable to figure out what they are suppose to be. I have performed multiple captures and they constantly changed. I tried
.insertdword gettickcount
which works about 5% of the time. Can anyone offer some advice as to how i can figure out what I need to send?
RO = what game?
And for witch part of the protocall are you stuck on?
(What packet)
~-~(HDX)~-~
Ragnarok Online, im stuck on making packet 0x72, its the packet sent to the Game Server before you are privy to the things that go on in the game/world.
LEN=[19]: 72 00 E8 87 1E 00 57 50 02 00 65 8F A8 6C 88 CB 67 00 01
My Code to used to construct it
With PacketBuffer
.InsertBYTE &H72
.InsertBYTE &H0
.InsertBYTE &HE8
.InsertBYTE &H87
.InsertBYTE &H1E
.InsertBYTE &H0
For N = 1 To 3
.InsertBYTE Asc(Mid(Character(CharID).Data, N, 1))
Next N
.InsertBYTE &H0
For N = 1 To 4
.InsertBYTE Asc(Mid(CharString, N, 1)) '4 bytes
Next N
.InsertDWORD GetTickCount '<---- This is my problem.
.InsertBYTE &H1
.SendPacket frmMain.GS_Socket
End With
well i feel a bit odd, its actually 2 bytes, that are stupid, which doesnt make much sense as to why I would be get 0x73 and the streams that followed, but meh, heres two captures of 72, within a few seconds of each other on the official client.
00000000 72 00 e8 87 1e 00 57 50 02 00 37 45 fe 44 4c 2a r.....WP ..7E.DL*
00000010 70 00 01 p..
00000000 72 00 e8 87 1e 00 57 50 02 00 37 45 fe 44 11 6b r.....WP ..7E.D.k
00000010 70 00 01 p..
You may need to look at a disassembly of where the actual client builds this packet.
Gotcha, I'll search for one. Thanks.