First off, you're guessing most of the values.
Like this:
Code:
p.Readbyte();
p.Readbyte();
p.Readbyte();
p.Readbyte();
p.ReadInt32();
Which is quite messy, not a single comment of what that integer of 32 bits should be.
Parsing is not about the parser itself; it's about the packets, so I suggest you to post packets instead of non-commented code.
If you're going to maintain a bot or any other tool it's better to put comments when you do those nested calls as:
Code:
p.ReadInt32(); // chartype
There are also lots of flags, counts and fors that should be take into account.
Also, it might be really helpful for everybody to know the SRO version.