User Tools

Site Tools


uo_protocol_0xad

UO Protocol 0xAD

Unicode speech request (variable # of bytes)

Clients send this packet when talking.

Offset Type     Name             Description
------ -------- ---------------- ------------------------------
 0000  BYTE     cmd
 0001  USHORT   size             the packetsize
 0003  BYTE     mode             speech mode (see below)
 0004  USHORT   hue
 0006  USHORT   font             font number
 0006  CHAR[4]  language         preferred language
       BYTE[]   KeywordInfo      present if (mode & 0xC0)
       UNI[]    Text             0x00 terminated

Speech mode / Speech types

  0x00 - Regular
  0x01 - Broadcast
  0x02 - Emote
  0x06 - System
  0x07 - Message
  0x08 - Whisper
  0x09 - Yell
  The flag 0xC0 is included if the message contains keyword information 

Keyword Info

This is an array of 12-bit integers padded into a byte array. The first 12-bit integer contains the number of keywords in the array.

nrKeywords = (KeywordInfo[0] << 4) + (KeywordInfo[1] >> 4);
keyword1 = ((KeywordInfo[1] % 0x10) << 8) + KeywordInfo[2];
keyword2 = (KeywordInfo[3] << 8) + (KeywordInfo[4] >> 4);
keyword3 = ((KeywordInfo[4] % 0x10) << 8) + KeywordInfo[5];

and so on…

uo_protocol_0xad.txt · Last modified: 2014/05/23 17:05 by thooge