quarta-feira, 3 de setembro de 2008

Cabeçalhos dos pacotes de MUOnline

Como sabem, todas coisas devem ter título para identificação. Por exemplo, quando vou escolher um livro na biblioteca, procurarei pelo nome.
Em MUOnline, na comunicação Servidor<->Cliente, não é diferente. Os pacotes iniciam com um "título" (tabela abaixo) e depois segue-se o "tamanho das páginas" e depois um "subtítulo".

Com isso, podemos ver que os pacotes 0xC1 e 0xC3 têm o mesmo tamanho, e 0xC2 e 0xC4 o mesmo também. Também dá para notar que os pacotes 0xC3 e 0xC4 têm encriptação, para segurança.

Os pacotes 0xC1 e 0xC3 são usados para dados não tão grandes e que possuem uma variação nula. Já os pacotes 0xC2 e 0xC4 são usados para dados "maiores" com variações, por exemplo, o pacote de mostrar os mobs, dos servidores, de mostrar os jogadores, etc. variam conforme a quantidade dos objetos.

Mas, como os pacotes 0xC2 e 0xC4 armazenam 65535 como valor na lenght, se cada byte é 255?
Isso acontece por causa que os pacotes 0xC2 e 0xC4 usam DOIS bytes para armazenar a lenght, por exemplo: C2 00 04 11. Aí temos um pacote (que provavelmente não exista ^^) com o tamanho 4 (0x04). A fórmula, seria basicamente:
0xC2 = head
0x00 = HiByte(Lenght)
0x04 = LoByte(Lenght)

Nenhum comentário: