25-09-2014, 01:31 AM -
Right, packed structures then, always start with a dword indicating the number of bytes in the structure, the bytes should be read in reverse order and each variable has a set number of bits (why you read in reverse order becomes apparent with some of the more complex structures).Â
Â
I'll list the variables in the order you should read them just to be consistent (i.e. first var in LOD0 is Voice ID, this is the 13th byte).
Â
<div>LOD0 Â Â Size = 13
  8-bits  Voice ID
  8-bits  unused
  8-bits  unused
  4-bits  unused
  4-bits  Right Arm Tattoo (0 - 5)
  4-bits  Left Arm Tattoo (0 - 5)
  4-bits  Chest Tattoo (0 - 5)
  8-bits  Right Gauntlet Colour 1
  8-bits  Right Gauntlet Colour 2
  8-bits  Left Gauntlet Colour 1
  8-bits  Left Gauntlet Colour 2
  8-bits  Right Glove Colour 1
  8-bits  Right Glove Colour 2
  8-bits  Left Glove Colour 1
  8-bits  Left Glove Colour 2
  Â
LOD1 Â Â Size = 20
  8-bits  Shin Right Colour 1
  8-bits  Shin Right Colour 2
  8-bits  Shin Left Colour 1
  8-bits  Shin Left Colour 2
  8-bits  Thigh Right Colour 1
  8-bits  Thigh Right Colour 2
  8-bits  Thigh Left Colour 1
  8-bits  Thigh Left Colour 2
  8-bits  Belt Colour 1
  8-bits  Belt Colour 2
  8-bits  Right Shoulder Colour 1
  8-bits  Right Shoulder Colour 2
  8-bits  Left Shoulder Colour 1
  8-bits  Left Shoulder Colour 2
  8-bits  Helmet Colour 1
  8-bits  Helmet Colour 2
  8-bits  Shoes Colour 1
  8-bits  Shoes Colour 2
  8-bits  Pants Colour 1
  8-bits  Pants Colour 2
Â
LOD2 Â Â Size = 15
  8-bits  Unused
  4-bits  Unused
  8-bits  Ranged Weapon ID
  6-bits  Shield ID
  8-bits  Melee Weapon ID
  6-bits  Shin Right
  6-bits  Shin Left
  6-bits  Thigh Right
  6-bits  Thigh Left
  6-bits  Belt
  6-bits  Gauntlet Right
  6-bits  Gauntlet Left
  6-bits  Shoulder Right
  6-bits  Shoulder Left
  6-bits  Helmet
  6-bits  Shoes
  8-bits  Pants
  6-bits  Glove right
  6-bits  Glove left
Â
LOD3 Â Â Size = 10 Bytes
  1-Bit  Unused
  8-bits  Chest Colour 1
  8-bits  Chest Colour 2
  6-bits  Chest Armour
  8-bits  Torso Colour 1
  8-bits  Torso Colour 2
  8-bits  Torso
  8-bits  Hair Colour
  6-bits  Hair Style
  8-bits  Body Colour
  7-bits  Head Type
  2-bits  Body Type
  1-bit  Male = 0 Female = 1
  1-bit  Human = 0 Daevi = 1
Â
Not all the bits are used so there may well be unimplemented / reserved flags I've missed but its not going to matter for the server (i.e. head type only uses 6-bits with 1-bit unused after it so may as well read it as 7 bits).
Â
</div>
Â
I'll list the variables in the order you should read them just to be consistent (i.e. first var in LOD0 is Voice ID, this is the 13th byte).
Â
<div>LOD0 Â Â Size = 13
  8-bits  Voice ID
  8-bits  unused
  8-bits  unused
  4-bits  unused
  4-bits  Right Arm Tattoo (0 - 5)
  4-bits  Left Arm Tattoo (0 - 5)
  4-bits  Chest Tattoo (0 - 5)
  8-bits  Right Gauntlet Colour 1
  8-bits  Right Gauntlet Colour 2
  8-bits  Left Gauntlet Colour 1
  8-bits  Left Gauntlet Colour 2
  8-bits  Right Glove Colour 1
  8-bits  Right Glove Colour 2
  8-bits  Left Glove Colour 1
  8-bits  Left Glove Colour 2
  Â
LOD1 Â Â Size = 20
  8-bits  Shin Right Colour 1
  8-bits  Shin Right Colour 2
  8-bits  Shin Left Colour 1
  8-bits  Shin Left Colour 2
  8-bits  Thigh Right Colour 1
  8-bits  Thigh Right Colour 2
  8-bits  Thigh Left Colour 1
  8-bits  Thigh Left Colour 2
  8-bits  Belt Colour 1
  8-bits  Belt Colour 2
  8-bits  Right Shoulder Colour 1
  8-bits  Right Shoulder Colour 2
  8-bits  Left Shoulder Colour 1
  8-bits  Left Shoulder Colour 2
  8-bits  Helmet Colour 1
  8-bits  Helmet Colour 2
  8-bits  Shoes Colour 1
  8-bits  Shoes Colour 2
  8-bits  Pants Colour 1
  8-bits  Pants Colour 2
Â
LOD2 Â Â Size = 15
  8-bits  Unused
  4-bits  Unused
  8-bits  Ranged Weapon ID
  6-bits  Shield ID
  8-bits  Melee Weapon ID
  6-bits  Shin Right
  6-bits  Shin Left
  6-bits  Thigh Right
  6-bits  Thigh Left
  6-bits  Belt
  6-bits  Gauntlet Right
  6-bits  Gauntlet Left
  6-bits  Shoulder Right
  6-bits  Shoulder Left
  6-bits  Helmet
  6-bits  Shoes
  8-bits  Pants
  6-bits  Glove right
  6-bits  Glove left
Â
LOD3 Â Â Size = 10 Bytes
  1-Bit  Unused
  8-bits  Chest Colour 1
  8-bits  Chest Colour 2
  6-bits  Chest Armour
  8-bits  Torso Colour 1
  8-bits  Torso Colour 2
  8-bits  Torso
  8-bits  Hair Colour
  6-bits  Hair Style
  8-bits  Body Colour
  7-bits  Head Type
  2-bits  Body Type
  1-bit  Male = 0 Female = 1
  1-bit  Human = 0 Daevi = 1
Â
Not all the bits are used so there may well be unimplemented / reserved flags I've missed but its not going to matter for the server (i.e. head type only uses 6-bits with 1-bit unused after it so may as well read it as 7 bits).
Â
</div>