migrate login server packets

This commit is contained in:
Sky Johnson 2025-07-28 18:41:55 -05:00
parent 69f2250ac0
commit 3f9aae51cb
14 changed files with 1521 additions and 0 deletions

View File

@ -82,11 +82,18 @@ Fast XML-like parser for binary packet structures with versioning and conditiona
Organize related fields with automatic prefixing: Organize related fields with automatic prefixing:
```xml ```xml
<group>
<i32 name="player_id">
<str16 name="player_name">
</group>
<!-- Creates: player_id, player_name (no prefix added) -->
<group name="appearance"> <group name="appearance">
<color name="skin_color,hair_color,eye_color"> <color name="skin_color,hair_color,eye_color">
<str16 name="face_file,hair_file"> <str16 name="face_file,hair_file">
</group> </group>
<!-- Creates: appearance_skin_color, appearance_hair_color, etc. --> <!-- Creates: appearance_skin_color, appearance_hair_color, etc. -->
``` ```
## Arrays ## Arrays

View File

@ -0,0 +1,10 @@
<packet name="BadLanguageFilter">
<version number="1">
<i16 name="num_words" oversized="255">
<array name="words_array" count="var:num_words">
<substruct>
<str16 name="word">
</substruct>
</array>
</version>
</packet>

View File

@ -0,0 +1,276 @@
<packet name="CharSelectProfile">
<version number="1">
<i32 name="charid,server_id">
<str16 name="name">
<i8 name="race,class">
<i32 name="level">
<str16 name="zone">
<i32 name="unknown1,unknown2,created_date,last_played,unknown3,unknown4">
<str16 name="zonename2,zonedesc">
<i8 name="version">
<i16 name="race_type">
<si8 name="skin_color,eye_color" size="3">
<equip name="equip" size="21">
<group name="hair">
<i16 name="type">
<si8 name="type_color,type_highlight_color" size="3">
</group>
<group name="hair_face">
<i16 name="type">
<si8 name="color,highlight_color" size="3">
</group>
<group name="chest">
<i16 name="type">
<si8 name="shirt_color,unknown_chest_color" size="3">
</group>
<group name="legs">
<i16 name="type">
<si8 name="pants_color,unknown_legs_color" size="3">
</group>
<si8 name="unknown9,eye_type,ear_type,eye_brow_type,cheek_type,lip_type,chin_type,nose_type" size="3">
<si8 name="body_size,bump_scale">
<i16 name="mount">
<si8 name="mount_color1,mount_color2,hair_color1,hair_color2,hair_color3" size="3">
<i8 name="flags">
</version>
<version number="373">
<i32 name="charid,server_id">
<str16 name="name">
<i8 name="race,class">
<i32 name="level">
<str16 name="zone">
<i32 name="unknown1,unknown2,created_date,last_played,unknown3,unknown4">
<str16 name="zonename2,zonedesc">
<i8 name="version">
<i16 name="race_type">
<si8 name="skin_color,eye_color" size="3">
<equip name="equip" size="21">
<group name="hair">
<i16 name="type">
<si8 name="type_color,type_highlight_color" size="3">
</group>
<group name="hair_face">
<i16 name="type">
<si8 name="color,highlight_color" size="3">
</group>
<group name="chest">
<i16 name="type">
<si8 name="shirt_color,unknown_chest_color" size="3">
</group>
<group name="legs">
<i16 name="type">
<si8 name="pants_color,unknown_legs_color" size="3">
</group>
<si8 name="unknown9,eye_type,ear_type,eye_brow_type,cheek_type,lip_type,chin_type,nose_type" size="3">
<si8 name="body_size,bump_scale">
<i16 name="mount">
<si8 name="mount_color1,mount_color2,hair_color1,hair_color2,hair_color3" size="3">
<i8 name="flags">
</version>
<version number="546">
<i32 name="charid,server_id">
<str16 name="name">
<i8 name="race,class,gender">
<i32 name="level">
<str16 name="zone">
<i32 name="unknown1,unknown2,created_date,last_played,unknown3,unknown4">
<str16 name="zonename2,zonedesc">
<i32 name="unknown5">
<i8 name="version">
<i16 name="race_type">
<si8 name="skin_color,eye_color" size="3">
<equip name="equip" size="23">
<group name="hair">
<i16 name="type">
<si8 name="type_color,type_highlight_color" size="3">
</group>
<group name="hair_face">
<i16 name="type">
<si8 name="color,highlight_color" size="3">
</group>
<group name="chest">
<i16 name="type">
<si8 name="shirt_color,unknown_chest_color" size="3">
</group>
<group name="legs">
<i16 name="type">
<si8 name="pants_color,unknown_legs_color" size="3">
</group>
<si8 name="unknown9,eye_type,ear_type,eye_brow_type,cheek_type,lip_type,chin_type,nose_type" size="3">
<si8 name="body_size,bump_scale">
<i16 name="mount">
<si8 name="mount_color1,mount_color2,hair_color1,hair_color2,hair_color3" size="3">
<i8 name="unknown11" size="10">
<group name="soga">
<i16 name="race_type">
<color name="skin_colorx,eye_color">
<i8 name="Unknown12" size="3">
<si8 name="eye_type,ear_type,eye_brow_type,cheek_type,lip_type,chin_type,nose_type" size="3">
<color name="hair_color1">
<i16 name="chest_type">
<color name="hair_color2,hair_color3">
<i16 name="hair_type">
<color name="hair_type_color,hair_type_highlight_color">
<i16 name="hair_face_type">
<color name="hair_face_color,hair_face_highlight_color">
</group>
</version>
<version number="562">
<i32 name="version,charid,server_id">
<str16 name="name">
<i8 name="unknown,race,class,gender">
<i32 name="level">
<str16 name="zone">
<i32 name="unknown1,unknown2,created_date,last_played,unknown3,unknown4">
<str16 name="zonename2,zonedesc">
<i32 name="unknown5">
<str16 name="server_name">
<i32 name="account_id">
<i8 name="unknown6" size="2">
<i32 name="unknown7">
<i8 name="unknown8">
<i16 name="race_type">
<color name="skin_color,eye_color">
<equip name="equip" size="25">
<group name="hair">
<i16 name="type">
<color name="type_color,type_highlight_color">
</group>
<group name="hair_face">
<i16 name="type">
<color name="color,highlight_color">
</group>
<group name="chest">
<i16 name="type">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<i16 name="type">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown9">
<si8 name="eye_type,ear_type,eye_brow_type,cheek_type,lip_type,chin_type,nose_type" size="3">
<si8 name="body_size">
<i8 name="unknown10" size="9">
<color name="hair_color1,hair_color2">
<i8 name="unknown11,unknown15" size="13,7">
</version>
<version number="887">
<i32 name="version,charid,server_id">
<str16 name="name">
<i8 name="unknown,race,class,gender">
<i32 name="level">
<str16 name="zone">
<i32 name="unknown1,unknown2,created_date,last_played,unknown3,unknown4">
<str16 name="zonename2,zonedesc">
<i32 name="unknown5">
<str16 name="server_name">
<i32 name="account_id">
<i8 name="unknown6" size="2">
<i32 name="unknown7">
<i8 name="tradeskill_class">
<i32 name="tradeskill_level">
<i8 name="unknown8">
<i16 name="race_type">
<color name="skin_color,eye_color">
<equip name="equip" size="25">
<group name="hair">
<i16 name="type">
<color name="type_color,type_highlight_color">
</group>
<group name="hair_face">
<i16 name="type">
<color name="color,highlight_color">
</group>
<group name="wing">
<i16 name="type">
<color name="color1,color2">
</group>
<group name="chest">
<i16 name="type">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<i16 name="type">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown9">
<si8 name="eye_type,ear_type,eye_brow_type,cheek_type,lip_type,chin_type,nose_type" size="3">
<si8 name="body_size">
<i8 name="unknown10" size="9">
<color name="hair_color1,hair_color2">
<i8 name="unknown11" size="13">
<group name="soga">
<i16 name="race_type">
<color name="skin_color,eye_color">
<i8 name="Unknown12" size="3">
<si8 name="eye_type,ear_type,eye_brow_type,cheek_type,lip_type,chin_type,nose_type" size="3">
<i16 name="unknown13">
<color name="hair_color1,hair_color2,unknown14">
<i16 name="hair_type">
<color name="hair_type_color,hair_type_highlight_color">
<i16 name="hair_face_type">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<i8 name="unknown15" size="7">
</version>
<version number="60085">
<i32 name="version,charid,server_id">
<str16 name="name">
<i8 name="unknown,race,class,gender">
<i32 name="level">
<str16 name="zone">
<i32 name="unknown1,unknown2,created_date,last_played,unknown3,unknown4">
<str16 name="zonename2,zonedesc">
<i32 name="unknown5">
<str16 name="server_name">
<i32 name="account_id">
<i8 name="unknown6" size="2">
<i32 name="unknown7">
<i8 name="tradeskill_class">
<i32 name="tradeskill_level">
<i8 name="unknown8">
<i16 name="race_type">
<color name="skin_color,eye_color">
<equip name="equip" size="25">
<group name="hair">
<i16 name="type">
<color name="type_color,type_highlight_color">
</group>
<group name="hair_face">
<i16 name="type">
<color name="color,highlight_color">
</group>
<group name="wing">
<i16 name="type">
<color name="color1,color2">
</group>
<group name="chest">
<i16 name="type">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<i16 name="type">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown9">
<si8 name="eye_type,ear_type,eye_brow_type,cheek_type,lip_type,chin_type,nose_type" size="3">
<si8 name="body_size">
<i8 name="unknown10" size="9">
<color name="hair_color1,hair_color2">
<i8 name="unknown11" size="13">
<group name="soga">
<i16 name="race_type">
<color name="skin_color,eye_color">
<i8 name="Unknown12" size="3">
<si8 name="eye_type,ear_type,eye_brow_type,cheek_type,lip_type,chin_type,nose_type" size="3">
<i16 name="unknown13">
<color name="hair_color1,hair_color2,unknown14">
<i16 name="hair_type">
<color name="hair_type_color,hair_type_highlight_color">
<i16 name="hair_face_type">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<i8 name="unknown15" size="7">
</version>
</packet>

View File

@ -0,0 +1,559 @@
<packet name="CreateCharacter">
<version number="1">
<i32 name="account_id,server_id">
<str16 name="name">
<i8 name="race,gender,deity,class,level,starting_zone">
<i8 name="unknown1" size="2">
<str16 name="race_file">
<f32 name="skin_color,eye_color,hair_color1,hair_color2,hair_highlight" size="3">
<i8 name="unknown2" size="26">
<group name="hair">
<str16 name="file">
<f32 name="type_color,type_highlight_color" size="3">
</group>
<group name="face">
<str16 name="file">
<f32 name="hair_face_color,hair_face_highlight_color" size="3">
</group>
<group name="chest">
<str16 name="file">
<f32 name="shirt_color,unknown_chest_color" size="3">
</group>
<group name="legs">
<str16 name="file">
<f32 name="pants_color,unknown_legs_color" size="3">
</group>
<f32 name="unknown9,eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
</version>
<version number="373">
<i32 name="unknown0,account_id,server_id">
<str16 name="name">
<i8 name="race,gender,deity,class,level,starting_zone">
<i8 name="unknown1" size="2">
<str16 name="race_file">
<f32 name="skin_color,eye_color,hair_color1,hair_color2,hair_highlight" size="3">
<i8 name="unknown2" size="26">
<group name="hair">
<str16 name="file">
<f32 name="type_color,type_highlight_color" size="3">
</group>
<group name="face">
<str16 name="file">
<f32 name="hair_face_color,hair_face_highlight_color" size="3">
</group>
<group name="chest">
<str16 name="file">
<f32 name="shirt_color,unknown_chest_color" size="3">
</group>
<group name="legs">
<str16 name="file">
<f32 name="pants_color,unknown_legs_color" size="3">
</group>
<f32 name="unknown9,eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
</version>
<version number="546">
<i8 name="unknown0">
<i32 name="unknown1,account_id,server_id">
<str16 name="name">
<i8 name="race,gender,deity,class,level,starting_zone,cc_unknown_0,version">
<str16 name="race_file">
<f32 name="skin_color,eye_color,hair_color1,hair_color2,hair_highlight" size="3">
<i8 name="unknown2" size="26">
<group name="hair">
<str16 name="file">
<f32 name="type_color,type_highlight_color" size="3">
</group>
<group name="face">
<str16 name="file">
<f32 name="hair_face_color,hair_face_highlight_color" size="3">
</group>
<group name="chest">
<str16 name="file">
<f32 name="shirt_color,unknown_chest_color" size="3">
</group>
<group name="legs">
<str16 name="file">
<f32 name="pants_color,unknown_legs_color" size="3">
</group>
<f32 name="unknown9,eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
</version>
<version number="561">
<i8 name="unknown0">
<i32 name="unknown1,account_id,server_id">
<str16 name="name">
<i8 name="race,gender,deity,class,level,starting_zone,version">
<str16 name="race_file">
<f32 name="skin_color,eye_color,hair_color1,hair_color2,hair_highlight" size="3">
<i8 name="unknown2" size="26">
<group name="hair">
<str16 name="file">
<f32 name="type_color,type_highlight_color" size="3">
</group>
<group name="face">
<str16 name="file">
<f32 name="hair_face_color,hair_face_highlight_color" size="3">
</group>
<group name="chest">
<str16 name="file">
<f32 name="shirt_color,unknown_chest_color" size="3">
</group>
<group name="legs">
<str16 name="file">
<f32 name="pants_color,unknown_legs_color" size="3">
</group>
<f32 name="unknown9,eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
</version>
<version number="562">
<i8 name="unknown0">
<i32 name="unknown1,account_id">
<i8 name="unknown3">
<i32 name="server_id">
<str16 name="name">
<i8 name="race,gender,deity,class,level,starting_zone,version">
<str16 name="race_file">
<color name="skin_color,skin_color2,eye_color,hair_color1,hair_color2">
<i8 name="unknown8" size="26">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown9">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
<group name="soga">
<i8 name="version">
<str16 name="race_file">
<color name="skin_color,eye_color,hair_color1,hair_color2,hair_highlight">
<i8 name="unknown11" size="26">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown12">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
</group>
</version>
<version number="869">
<i8 name="unknown0">
<i32 name="unknown1,account_id">
<i8 name="unknown3">
<i32 name="server_id">
<str16 name="name">
<i8 name="race,gender,deity,class,level,starting_zone,version">
<str16 name="race_file">
<color name="skin_color,skin_color2,eye_color,hair_color1,hair_color2,hair_highlight">
<i8 name="unknown8" size="26">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown9">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
<group name="soga">
<i8 name="version">
<str16 name="race_file">
<color name="skin_color,eye_color,hair_color1,hair_color2,hair_highlight,unknown_color1">
<i8 name="unknown11" size="26">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown12">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
</group>
</version>
<version number="1096">
<i8 name="unknown0">
<i32 name="unknown1,account_id">
<i8 name="unknown3">
<i32 name="server_id">
<str16 name="name">
<i8 name="race,gender,deity,class,level,starting_zone,version">
<str16 name="race_file">
<color name="skin_color,skin_color2,eye_color,hair_color1,hair_color2,hair_highlight">
<i8 name="unknown8" size="26">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown9">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
<group name="soga">
<i8 name="version">
<str16 name="race_file">
<color name="skin_color,eye_color,hair_color1,hair_color2,hair_highlight,unknown_color">
<i8 name="unknown11" size="26">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown12">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
</group>
</version>
<version number="57080">
<i8 name="unknown0">
<i32 name="unknown1,account_id">
<i8 name="unknown3">
<i32 name="server_id">
<str16 name="name">
<i8 name="race,gender,deity,class,level,starting_zone,version">
<i16 name="unknown10">
<str16 name="race_file">
<color name="skin_color,eye_color,unknown_skin_color2,hair_color1,hair_color2,hair_highlight">
<i8 name="unknown8" size="26">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown9">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
<group name="soga">
<i8 name="version">
<str16 name="race_file">
<color name="skin_color,eye_color,hair_color1,hair_color2,hair_highlight,unknown_color">
<i8 name="unknown11" size="26">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown12">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
</group>
</version>
<version number="60085">
<i8 name="unknown0">
<i32 name="unknown1,account_id">
<i8 name="unknown3">
<i32 name="server_id">
<str16 name="name">
<i8 name="race,gender,deity,class,level,starting_zone,version">
<i16 name="unknown10">
<str16 name="race_file">
<color name="skin_color,eye_color,unknown_skin_color2,hair_color1,hair_color2,hair_highlight">
<i8 name="unknown8" size="26">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown9">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
<group name="soga">
<i8 name="version">
<str16 name="race_file">
<color name="skin_color,eye_color,hair_color1,hair_color2,hair_highlight,unknown_color">
<i8 name="unknown11" size="26">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown12">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
</group>
</version>
<version number="64659">
<i8 name="unknown0">
<i32 name="unknown1,account_id">
<i8 name="unknown3">
<i32 name="server_id">
<str16 name="name">
<i8 name="race,gender,deity,class,level">
<i32 name="starting_zone">
<i8 name="version">
<str16 name="race_file">
<color name="skin_color,skin_color2,eye_color,hair_color1,hair_color2">
<i8 name="unknown8" size="38">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown9">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
<group name="soga">
<i8 name="version">
<str16 name="race_file">
<color name="skin_color,eye_color,hair_color1,hair_color2,hair_highlight">
<i8 name="unknown11" size="38">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown12">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
</group>
<i8 name="unknown13" size="2">
</version>
<version number="65534">
<i8 name="unknown0">
<i32 name="unknown1,account_id">
<i8 name="unknown3">
<i32 name="server_id">
<str16 name="name">
<i8 name="race,gender,deity,class,level">
<i32 name="starting_zone">
<i8 name="version">
<str16 name="race_file">
<color name="skin_color,skin_color2,eye_color,hair_color1,hair_color2">
<i8 name="unknown8" size="38">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown9">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
<group name="soga">
<i8 name="version">
<str16 name="race_file">
<color name="skin_color,eye_color,hair_color1,hair_color2,hair_highlight">
<i8 name="unknown11" size="38">
<group name="hair">
<str16 name="file">
<color name="type_color,type_highlight_color">
</group>
<group name="face">
<str16 name="file">
<color name="hair_face_color,hair_face_highlight_color">
</group>
<group name="wing">
<str16 name="file">
<color name="color1,color2">
</group>
<group name="chest">
<str16 name="file">
<color name="shirt_color,unknown_chest_color">
</group>
<group name="legs">
<str16 name="file">
<color name="pants_color,unknown_legs_color">
</group>
<color name="unknown12">
<f32 name="eyes2,ears,eye_brows,cheeks,lips,chin,nose" size="3">
<f32 name="body_size,body_age">
</group>
<i8 name="unknown13" size="2">
</version>
</packet>

View File

@ -0,0 +1,17 @@
<packet name="CreateCharacterReply">
<version number="1">
<i32 name="account_id">
<i8 name="response">
<str16 name="name">
</version>
<version number="1189">
<i32 name="account_id,unknown">
<i8 name="response">
<str16 name="name">
</version>
<version number="60085">
<i32 name="account_id,unknown">
<i8 name="response">
<str16 name="name">
</version>
</packet>

View File

@ -0,0 +1,6 @@
<packet name="DeleteCharacterRequest">
<version number="1">
<i32 name="char_id,server_id,unknown">
<str16 name="name">
</version>
</packet>

View File

@ -0,0 +1,8 @@
<packet name="DeleteCharacterResponse">
<version number="1">
<i8 name="response">
<i32 name="server_id,char_id,account_id">
<str16 name="name">
<i32 name="max_characters">
</version>
</packet>

View File

@ -0,0 +1,360 @@
<substruct name="StartingItem">
<i32 name="model_id" type2="i16" type2_if="version<57080">
<i8 name="slot_id">
<i8 name="use_color,use_highlight_color">
<color name="model_color,model_highlight_color">
</substruct>
<packet name="LoginReplyMsg">
<version number="1">
<i8 name="login_response">
<str16 name="worldName">
<i8 name="parental_control_flag">
<i32 name="parental_control_timer" size="2">
<i32 name="parental_control_next,account_id">
</version>
<version number="284">
<i8 name="login_response">
<str16 name="unknown">
<i8 name="parental_control_flag">
<i32 name="parental_control_timer">
<i8 name="unknown2" size="8">
<i32 name="cache_setting_account_id">
<str16 name="unknown3">
<i8 name="reset_appearance,do_not_force_soga">
<i16 name="unknown5">
<i8 name="unknown6">
<i32 name="unknown7">
<i8 name="unknown8" size="2">
<i8 name="unknown10">
<i8 name="num_class_items" if="var:unknown10">
<array name="class_items" count="var:num_class_items" if="var:unknown10">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown_array2_size">
<array name="unknown_array2" count="var:unknown_array2_size">
<substruct>
<i32 name="array2_unknown">
</substruct>
</array>
</version>
<version number="843">
<i8 name="login_response">
<str16 name="unknown">
<i8 name="parental_control_flag">
<i32 name="parental_control_timer">
<i8 name="unknown2" size="8">
<i32 name="account_id">
<str16 name="unknown3">
<i8 name="reset_appearance,do_not_force_soga,unknown4">
<i16 name="unknown5">
<i8 name="unknown6">
<i32 name="unknown7">
<i8 name="race_unknown">
<i8 name="unknown8" size="3">
<i8 name="unknown9,unknown10">
<i8 name="num_class_items" if="var:unknown10">
<array name="class_items" count="var:num_class_items" if="var:unknown10">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown_array2_size">
<array name="unknown_array2" count="var:unknown_array2_size">
<substruct>
<i32 name="array2_unknown">
</substruct>
</array>
</version>
<version number="1096">
<i8 name="login_response">
<str16 name="unknown">
<i8 name="parental_control_flag">
<i32 name="parental_control_timer">
<i8 name="unknown2" size="8">
<i32 name="account_id">
<str16 name="unknown3">
<i8 name="reset_appearance,do_not_force_soga,unknown4">
<i16 name="unknown5">
<i8 name="unknown6" size="5">
<i32 name="unknown7">
<i8 name="race_unknown">
<i8 name="unknown8" size="3">
<i8 name="unknown9,unknown10">
<i8 name="num_class_items" if="var:unknown10">
<array name="class_items" count="var:num_class_items" if="var:unknown10">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown_array2_size">
<array name="unknown_array2" count="var:unknown_array2_size">
<substruct>
<i32 name="array2_unknown">
</substruct>
</array>
<i32 name="unknown11,sub_level,race_flag,class_flag">
<str16 name="password,username">
</version>
<version number="1142">
<i8 name="login_response">
<str16 name="unknown">
<i8 name="parental_control_flag">
<i32 name="parental_control_timer">
<i8 name="unknown2" size="8">
<i32 name="account_id">
<str16 name="unknown3">
<i8 name="reset_appearance,do_not_force_soga,unknown4">
<i16 name="unknown5">
<i8 name="unknown6" size="5">
<i32 name="unknown7,unknown7a">
<i8 name="race_unknown">
<i8 name="unknown8" size="3">
<i8 name="unknown9,unknown10">
<i8 name="num_class_items" if="var:unknown10">
<array name="class_items" count="var:num_class_items" if="var:unknown10">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown_array2_size">
<array name="unknown_array2" count="var:unknown_array2_size">
<substruct>
<i32 name="array2_unknown">
</substruct>
</array>
<i32 name="unknown11,sub_level,race_flag,class_flag">
<str16 name="password,username">
</version>
<version number="1188">
<i8 name="login_response">
<str16 name="unknown">
<i8 name="parental_control_flag">
<i32 name="parental_control_timer">
<i8 name="unknown2" size="8">
<i32 name="account_id">
<str16 name="unknown3">
<i8 name="reset_appearance,do_not_force_soga,unknown4">
<i16 name="unknown5">
<i8 name="unknown6" size="5">
<i32 name="unknown7,unknown7a">
<i8 name="race_unknown">
<i8 name="unknown8" size="3">
<i8 name="unknown9,unknown10">
<i8 name="num_class_items" if="var:unknown10">
<array name="class_items" count="var:num_class_items" if="var:unknown10">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown_array2_size">
<array name="unknown_array2" count="var:unknown_array2_size">
<substruct>
<i32 name="array2_unknown">
</substruct>
</array>
<i32 name="unknown11,sub_level,race_flag,class_flag">
<str16 name="password,username,unknown12">
</version>
<version number="57080">
<i8 name="login_response">
<str16 name="unknown">
<i8 name="parental_control_flag">
<i32 name="parental_control_timer">
<i8 name="unknown2" size="8">
<i32 name="account_id">
<str16 name="unknown3">
<i8 name="reset_appearance,do_not_force_soga,unknown4">
<i16 name="unknown5">
<i8 name="unknown6" size="5">
<i32 name="unknown7,unknown7a">
<i8 name="race_unknown">
<i8 name="unknown8" size="3">
<i8 name="unknown9,unknown10">
<i8 name="num_class_items" if="var:unknown10">
<array name="class_items" count="var:num_class_items" if="var:unknown10">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown_array2_size">
<array name="unknown_array2" count="var:unknown_array2_size">
<substruct>
<i32 name="array2_unknown">
</substruct>
</array>
<i32 name="unknown11,sub_level,race_flag,class_flag">
<str16 name="password,username,service">
<str16 name="web1,web2,web3,web4,web5,web6,web7,web8,web9">
<i8 name="unknown12">
<i8 name="lvl90_num_class_items" if="var:unknown10">
<array name="lvl90_class_items" count="var:lvl90_num_class_items" if="var:unknown10">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown13" size="5">
</version>
<version number="60100">
<i8 name="login_response">
<str16 name="unknown">
<i8 name="parental_control_flag">
<i32 name="parental_control_timer">
<i8 name="unknown2" size="8">
<i32 name="account_id">
<str16 name="unknown3">
<i8 name="reset_appearance,do_not_force_soga">
<i64 name="unknown5">
<i32 name="unknown7">
<i16 name="unknown7a">
<i8 name="race_unknown">
<i8 name="unknown8" size="3">
<i8 name="unknown9" size="3">
<i8 name="unknown10">
<i8 name="num_class_items" if="var:unknown10">
<array name="class_items" count="var:num_class_items" if="var:unknown10">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown_array2_size">
<array name="unknown_array2" count="var:unknown_array2_size">
<substruct>
<i32 name="array2_unknown">
</substruct>
</array>
<i32 name="unknown11,sub_level,race_flag,class_flag">
<str16 name="password,username,service">
<i8 name="unknown12">
<i8 name="lvl90_num_class_items" if="var:unknown12">
<array name="lvl90_class_items" count="var:lvl90_num_class_items" if="var:unknown12">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown13">
<i8 name="time_locked_num_class_items" if="var:unknown13">
<array name="time_locked_class_items" count="var:time_locked_num_class_items" if="var:unknown13">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown14" size="13">
</version>
<version number="63181">
<i8 name="login_response">
<str16 name="unknown">
<i8 name="parental_control_flag">
<i32 name="parental_control_timer">
<i8 name="unknown2" size="8">
<i32 name="account_id">
<str16 name="unknown3">
<i8 name="reset_appearance,do_not_force_soga,unknown4">
<i16 name="unknown5">
<i8 name="unknown6" size="5">
<i8 name="unknown6a" size="8">
<i32 name="unknown7">
<i16 name="unknown7a">
<i8 name="race_unknown">
<i8 name="unknown8" size="3">
<i8 name="unknown9" size="3">
<i8 name="unknown10">
<i8 name="num_class_items" if="var:unknown10">
<array name="class_items" count="var:num_class_items" if="var:unknown10">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown_array2_size">
<array name="unknown_array2" count="var:unknown_array2_size">
<substruct>
<i32 name="array2_unknown">
</substruct>
</array>
<i32 name="unknown11,sub_level,race_flag,class_flag">
<str16 name="password,username,service">
<i8 name="unknown12">
<i8 name="lvl90_num_class_items" if="var:unknown12">
<array name="lvl90_class_items" count="var:lvl90_num_class_items" if="var:unknown12">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown13">
<i8 name="time_locked_num_class_items" if="var:unknown13">
<array name="time_locked_class_items" count="var:time_locked_num_class_items" if="var:unknown13">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown14" size="9">
</version>
<version number="65534">
<i8 name="login_response">
<str16 name="world_name">
<i8 name="parental_control_flag">
<i64 name="parental_control_timer">
<i32 name="unknown2,account_id">
<str16 name="unknown3">
<i8 name="reset_appearance,do_not_force_soga">
<str32 name="unknown4,unknown7">
<i32 name="race_unknown">
<i8 name="unknown8,unknown10">
<i8 name="num_class_items" if="var:unknown10">
<array name="class_items" count="var:num_class_items" if="var:unknown10">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown_array2_size">
<array name="unknown_array2" count="var:unknown_array2_size" if="var:unknown_array2_size">
<substruct>
<i32 name="array2_unknown">
</substruct>
</array>
<i32 name="unknown11,sub_level,race_flag,class_flag">
<str16 name="password,username,service">
<i8 name="unknown12">
<i8 name="lvl90_num_class_items" if="var:unknown12">
<array name="lvl90_class_items" count="var:lvl90_num_class_items" if="var:unknown12">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown13">
<i8 name="time_locked_num_class_items" if="var:unknown13">
<array name="time_locked_class_items" count="var:time_locked_num_class_items" if="var:unknown13">
<substruct>
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
</array>
<i8 name="unknown14" size="13">
</version>
</packet>

View File

@ -0,0 +1,25 @@
<packet name="LoginRequest">
<version number="1">
<str16 name="sessionID,sessionRecycleToken,username,password">
<i32 name="acctNum,passCode">
<i16 name="version">
</version>
<version number="562">
<str16 name="accesscode,unknown1,username,password">
<char name="unknown2" size="8">
<char name="unknown3" size="2">
<i32 name="version">
<i16 name="unknown3_dup">
<i32 name="unknown4">
</version>
<version number="1208">
<str16 name="accesscode,unknown1,username,password">
<char name="unknown2" size="8">
<char name="unknown3" size="2">
<i16 name="version">
<i8 name="unknown4">
<i32 name="unknown5a,unknown5b,unknown5c">
<i16 name="unknown6">
<str16 name="unknown7">
</version>
</packet>

View File

@ -0,0 +1,125 @@
<substruct name="StartingItem">
<i32 name="model_id">
<i8 name="slot_id,use_color,use_highlight_color">
<color name="model_color,model_highlight_color">
</substruct>
<substruct name="ClassItems">
<i8 name="class_id,num_items">
<array name="starting_items" count="var:num_items" substruct="StartingItem">
</substruct>
<packet name="LoginResponse">
<version number="1">
<i8 name="reply_code">
<i16 name="unknown01">
<i8 name="unknown02">
<si32 name="unknown03,unknown04,unknown05">
<i32 name="accountid">
<i16 name="unknown06">
<i8 name="unknown07,unknown08">
<i32 name="unknown09">
<i8 name="unknown10">
<i32 name="unknown11">
<i8 name="unknown12">
</version>
<version number="546">
<i8 name="reply_code">
<i16 name="unknown">
<i8 name="unknown01">
<si32 name="unknown03,unknown04">
<char name="unknown15" size="11">
<i8 name="unknown02">
</version>
<version number="561">
<i8 name="reply_code">
<char name="unknown01" size="22">
<i8 name="unknown02">
<si32 name="unknown03,unknown04,unknown05">
<i32 name="accountid">
<char name="unknown06" size="7">
<i32 name="unknown07,unknown08,unknown09,unknown10">
</version>
<version number="1096">
<i8 name="reply_code">
<char name="unknown01" size="22">
<i8 name="unknown02">
<si32 name="unknown03,unknown04,unknown05">
<i32 name="accountid">
<char name="unknown06" size="7">
<i32 name="unknown07,unknown08,unknown09,unknown10">
</version>
<version number="1144">
<i8 name="reply_code">
<char name="unknown01" size="22">
<i8 name="unknown02">
<si32 name="unknown03,unknown04,unknown05">
<i32 name="accountid">
<char name="unknown06" size="15">
<i32 name="unknown07,unknown08,unknown09,unknown10">
</version>
<version number="1153">
<i8 name="reply_code">
<char name="unknown01" size="22">
<i8 name="unknown02">
<si32 name="unknown03,unknown04,unknown05">
<i32 name="accountid">
<char name="unknown06" size="7">
<i32 name="unknown07,unknown08,unknown09,unknown10,unknown11">
</version>
<version number="1193">
<i8 name="reply_code">
<char name="unknown01" size="22">
<i8 name="unknown02">
<si32 name="unknown03,unknown04,unknown05">
<i32 name="accountid">
<char name="unknown06" size="7">
<i32 name="unknown07,unknown08,unknown09,unknown10,unknown11">
<i16 name="unknown12">
</version>
<version number="57048">
<i8 name="reply_code">
<char name="unknown01" size="22">
<i8 name="unknown02">
<si32 name="unknown03,unknown04,unknown05">
<i32 name="accountid">
<char name="unknown06" size="7">
<i32 name="unknown07,unknown08,unknown09,unknown10,unknown11">
<char name="unknown12" size="20">
</version>
<version number="60100">
<i8 name="login_response">
<str16 name="unknown">
<i8 name="parental_control_flag">
<i32 name="parental_control_timer">
<char name="unknown2" size="8">
<i32 name="account_id">
<str16 name="unknown3">
<i8 name="reset_appearance,do_not_force_soga,unknown4">
<i16 name="unknown5">
<char name="unknown6" size="5">
<i32 name="unknown7">
<i16 name="unknown7a">
<i8 name="race_unknown">
<char name="unknown8" size="3">
<char name="unknown9" size="3">
<i8 name="unknown10">
<i8 name="num_class_items" if="var:unknown10">
<array name="class_items" count="var:num_class_items" if="var:unknown10" substruct="ClassItems">
<i8 name="unknown_array2_size">
<array name="unknown_array2" count="var:unknown_array2_size">
<substruct>
<i32 name="array2_unknown">
</substruct>
</array>
<i32 name="unknown11,sub_level,race_flag,class_flag">
<str16 name="password,username,service">
<i8 name="unknown12">
<i8 name="lvl90_num_class_items" if="var:unknown12">
<array name="lvl90_class_items" count="var:lvl90_num_class_items" if="var:unknown12" substruct="ClassItems">
<i8 name="unknown13">
<i8 name="time_locked_num_class_items" if="var:unknown13">
<array name="time_locked_class_items" count="var:time_locked_num_class_items" if="var:unknown13" substruct="ClassItems">
<char name="unknown14" size="13">
</version>
</packet>

View File

@ -0,0 +1,10 @@
<packet name="PlayRequest">
<version number="1">
<i32 name="char_id">
<str16 name="name">
</version>
<version number="284">
<i32 name="char_id,server_id">
<i8 name="unknown" size="3">
</version>
</packet>

View File

@ -0,0 +1,29 @@
<packet name="PlayResponse">
<version number="1">
<i8 name="response">
<str8 name="server">
<i16 name="port">
<i32 name="account_id,access_code">
</version>
<version number="1096">
<i8 name="response">
<i16 name="unknown1">
<str8 name="server">
<i16 name="port">
<i32 name="account_id,access_code">
</version>
<version number="60085">
<i8 name="response">
<i16 name="unknown1" size="3">
<str8 name="server">
<i16 name="port">
<i32 name="account_id,access_code">
</version>
<version number="60099">
<i8 name="response">
<i16 name="unknown1" size="3">
<str8 name="server">
<i16 name="port">
<i32 name="account_id,access_code">
</version>
</packet>

View File

@ -0,0 +1,83 @@
<packet name="WorldList">
<version number="1">
<i8 name="num_worlds">
<array name="world_list" count="var:num_worlds">
<substruct>
<i32 name="id">
<str16 name="name">
<i8 name="online,locked,unknown2,unknown3,load">
</substruct>
</array>
</version>
<version number="373">
<i8 name="num_worlds">
<array name="world_list" count="var:num_worlds">
<substruct>
<i32 name="id">
<str16 name="name">
<i8 name="tag,locked,hidden,unknown">
<i16 name="num_players">
<i8 name="load,number_online_flag">
<i32 name="allowed_races">
</substruct>
</array>
</version>
<version number="546">
<i8 name="num_worlds">
<array name="world_list" count="var:num_worlds">
<substruct>
<i32 name="id">
<str16 name="name,name2">
<i8 name="tag,locked,hidden,unknown">
<i16 name="num_players">
<i8 name="load,number_online_flag,unknown2">
<i32 name="allowed_races">
</substruct>
</array>
</version>
<version number="562">
<i8 name="num_worlds">
<array name="world_list" count="var:num_worlds">
<substruct>
<i32 name="id">
<str16 name="name,name2">
<i8 name="tag,locked,hidden,unknown">
<i16 name="num_players">
<i8 name="load,number_online_flag">
<i8 name="feature_set" size="2">
<i32 name="allowed_races">
</substruct>
</array>
<i8 name="unknown2">
</version>
<version number="60114">
<i8 name="num_worlds">
<array name="world_list" count="var:num_worlds">
<substruct>
<i32 name="id">
<str16 name="name,name2">
<i8 name="tag,locked,hidden,unknown">
<i16 name="num_players">
<i8 name="load,number_online_flag">
<i8 name="feature_set" size="2">
<i32 name="allowed_races">
</substruct>
</array>
<i8 name="unknown2">
</version>
<version number="65534">
<i8 name="num_worlds">
<array name="world_list" count="var:num_worlds">
<substruct>
<i32 name="id">
<str16 name="name,name2">
<i8 name="tag,locked,hidden,unknown">
<i16 name="num_players">
<i8 name="load,number_online_flag">
<i8 name="feature_set" size="3">
<i32 name="allowed_races">
</substruct>
</array>
<i8 name="unknown2">
</version>
</packet>

View File

@ -0,0 +1,6 @@
<packet name="WorldUpdate">
<version number="1">
<i32 name="server_id">
<i8 name="up,locked,unknown1,unknown2">
</version>
</packet>