Character Appearance (Sequence)

From SWGANH Wiki
Jump to: navigation, search

Character Appearance - Base Packets

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 ASCII 
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