Character Appearance (Sequence)
From SWGANH Wiki
Character Appearance - Base Packets
Contents
Blend Attributes
Any attribute that is blend_whatever_# (see chart below) is a 2 part system. 0x17 blend_lipfullness_0 0x18 blend_lipfullness_1 They are believed to be a percentage/ratio of each other. when the value is 0 17 FF 01 18 FF 02 When the Value is 100 they are 17 FF 02 18 FF 01 Swapping the 01 and 02. When the value is 50% 17 FF 01 18 FF 01 Any other values result in them being Uint16 17 9B = 155 18 64 = 100 Thought to be a ratio.
Index Attributes
Any attribute prefixed with index are single part attributes only having one value. 0x24 index_age range from 0 - 3 Any index with the word color are linked to the color pallet for that attribute. 0x14 index_color_skin
Profile File Structure
Used by the client to display the toon in the Character Selection Screen.
- Note Height isn't stored in this file, as all toons are scaled to 1 in this screen.
- True height is stored on the server and sent in a game packet.
- If a Helment is worn hair isnt stored in this file.
FORM CADF FORM 0000 DATA int32 for the Count to the end of the Appearance Attributes Section String of the Species Version Byte 01 for pre-NGE, 02 for NGE Attribute Count Byte example: 22 means thier are 34 attributes Female Flag Byte AB Only on Female characters Appearance Attributes End Flag FF 03 00 means end of section of the Form PLAN String of Planet the last planet the character was on upon last logout FORM WEARITEM Count of String count for each following string String of items last worn This includes the Hair all as Uni-Code End Flag Items attributes These are color attributes assoc. to the item, very similar to the above skin colors ITEM This reapeats for each item worn.
Attributes
0x01 index_color_2 0x02 index_color_1 0x03 blend_skinny 0x04 blend_muscle 0x05 blend_fat 0x06 blend_nosedepth_1 0x07 blend_eyesize_0 0x08 blend_nosedepth_0 0x09 blend_noselength_1 0x0A blend_eyesize_1 0x0B blend_cheeks_0 0x0C blend_eyedirection_0 0x0D blend_noselength_0 0x0E blend_eyedirection_1 0x0F blend_nosewidth_0 0x10 blend_nosewidth_1 0x11 blend_cheeks_1 0x12 blend_jaw_1 0x13 blend_jaw_0 0x14 index_color_skin 0x15 blend_lipwidth_0 0x16 blend_lipwidth_1 0x17 blend_lipfullness_0 0x18 blend_lipfullness_1 0x19 blend_ears_0 0x1A blend_ears_1 0x1B blend_chinsize_1 0x1C blend_chinsize_0 0x1D index_color_3 0x1E index_style_eyebrow 0x1F index_color_facial_hair 0x20 blend_eyeshape_1 0x21 blend_eyeshape_0 0x22 index_color_0 0x23 index_style_beard 0x24 index_age 0x25 index_style_freckles 0x26 index_texture_1 0x27 blend_sensor_0 0x28 blend_sensor_1 0x29 blend_asian_0 0x2A index_color_skin 0x2B blend_flat_chest 0x2C index_color_eyeshadow 0x2D index_style_eyeshadow 0x2E index_color_lips 0x2F index_texture_1 0x30 index_color_pattern 0x31 index_color_4 0x32 index_color_hair 0x33 blend_nosesize_1 0x34 blend_nosesize_0 0x35 index_style_tattoo 0x36 index_color_tattoo 0x37 index_color_tat 0x38 index_color_0 0x39 blend_headsize_0 0x3A blend_headsize_1 0x3B index_color_pattern 0x3C index_color_eye 0x3D muscle_fat 0x3E blend_ear_0 0x3F blend_ear_1 0x40 index_color_eyebrow 0x41 index_color_5 0x42 blend_brow_1 0x43 blend_brow_0 0x44 index_style_eyebrows 0x45 index_color_test 0x46 index_color_107 0x47 index_color_4 0x48 index_color_3 0x49 index_color_1 0x4A index_color_blade 0x4B index_color_fur 0x4C blend_robe_belt 0x4D blend_eyeslant_0 0x4E blend_chin_1 0x4F index_color_2 0x50 blend_chin_0 0x51 blend_robe_bandolier 0x52 blend_jacket_belt 0x53 blend_chest_backpack 0x54 blend_jacket_bandolier 0x55 index_glide 0x56 index_turn_rate_max 0x57 index_speed_max 0x58 index_banking 0x59 index_hover_height 0x5A index_accel_max 0x5B index_accel_min 0x5C index_decel 0x5D index_damp_height 0x5E index_turn_rate_min 0x5F index_slope_mod 0x60 index_damp_roll 0x61 index_auto_level 0x62 index_damp_pitch 0x63 index_color_patterns 0x64 index_style_hair 0x65 index_patterns 0x66 index_texture 0x67 index_style_beard_2 0x68 blend_lipfulness_0 0x69 blend_lipfulness_1 0x6A index_style_eyebrow 0x6B index_texture 0x6C index_style_hair 0x6D blend_robe 0x6E index_style_beard 0x6F blend_jacket 0x70 index_style_beard_2 0x71 blend_jacket_robe 0x72 blend_head_0 0x73 blend_head_1
thks to cR for additions
Out Dated - Xeno TRAC Docs
Customization features are stored in a data string following this format: [DATATYPE:SIZE] - explaination (header) [SHORT:2] - size - this stores the size of the data string, in a host byte short integer (uint16) [BYTE:1] - version number [BYTE:1] - end counter - this byte is the end counter for recursing through - usually always the total number of elements (repeated data) [BYTE:l] - id - this is an id number that represents a customization feature for an item or character - the term ID and index are used interchangably for this [VALUE] - value - value normally appears as a single unsigned byte after the id, except for the cause of 0xFF - if it is 0xFF, a byte following it appears to be an extended set of numbers - 0xFF, 0x01 = 0x00 as a numeric - 0xFF, 0x02 = 0xFF as a numeric (footer) the footer appears at the end of the data segments normally as a 0xFF, 0X03 It is believed that use of 0xFF as an index triggers the extended set again, and 0x03 is the "end" type flag EXAMPLE(all numbers are in hexadecimal): 0E 00 01 04 04 AB 10 FF 01 0D FF 02 09 FE FF 03 breakdown: 0E 00 - size, in the example 14 bytes 01 - version 04 - counter, total elements are 4 04 AB - ID of 04, with a value of AB 10 FF 01 - ID of 10,with value of 0(extended set) 0D FF 02 - ID of 0D, with a value of FF(extended set) 09 FE - ID of 09, value FE FF - escape FF 01 = 0 (actual 0 is NULL = terminate string) FF 02 = 0xff FF 03 - footer, assumed to be extended index number that is an "end" flag