syntax = "proto3"; package data; message VectorData { float x = 1; float y = 2; float z = 3; } message TransformData { VectorData position = 1; VectorData rotation = 2; } message PlayerBasicData { int32 id = 1; string name = 2; int32 sex = 3; int32 level = 4; int32 exp = 5; int32 head_photo = 6; int32 head_frame = 7; int32 cur_map_id = 8; repeated int32 role_show_list = 9; } message RoleSkillNodeData { int32 node_id = 1; bool is_active = 2; int32 skill_id = 3; } message RoleStats { int32 hp = 1; // Current HP int32 energy = 2; // Ultimate energy int32 special_energy_1 = 3; // Forte int32 special_energy_2 = 4; // Forte int32 special_energy_3 = 5; // Forte int32 special_energy_4 = 6; // Forte int32 element_energy = 7; // Concerto } message RoleData { int32 role_id = 1; string name = 2; int32 level = 3; int32 exp = 4; int32 breakthrough = 5; map skill_map = 6; map phantom_map = 7; int32 star = 8; int32 favor = 9; uint32 create_time = 10; int32 cur_model = 11; repeated int32 models = 12; repeated RoleSkillNodeData skill_node_state = 13; int32 resonant_chain_group_index = 14; int32 equip_weapon = 15; int32 skin_id = 16; RoleStats stats = 17; int32 favor_level = 18; int32 favor_exp = 19; } message RoleFormationData { int32 formation_id = 1; int32 cur_role = 2; repeated int32 role_id_list = 3; bool is_current = 4; } message PlayerRoleData { repeated RoleData role_list = 1; map role_formation_list = 2; int32 cur_formation_id = 3; } message PlayerLocationData { int32 instance_id = 1; TransformData position = 2; } message PlayerFuncData { map func_map = 1; } message PlayerExploreToolsData { repeated int32 unlocked_skill_list = 1; int32 active_skill_id = 2; repeated int32 roulette = 3; } message PlayerChatHistoryData { int32 sender = 1; int32 receiver = 2; int32 content_type = 3; string msg_id = 4; string original_message = 5; string filtered_message = 6; bool offline_message = 7; int64 utc_time = 8; string psn_account_id = 9; } message PlayerChatRoomData { repeated PlayerChatHistoryData history = 1; } message PlayerChatData { map rooms = 1; } message PlayerGuidesData { repeated int32 started_guides = 1; repeated int32 finished_guides = 2; } message PlayerAdviceData { bool is_show = 1; } message PlayerAdventureTaskStatusData { int32 id = 1; int32 state = 2; int32 progress = 3; } message PlayerAdventureGlobalStatusData { repeated PlayerAdventureTaskStatusData status = 1; int32 now_chapter = 2; int32 received_chapter = 3; } message PlayerAdventureStatusData { repeated PlayerAdventureGlobalStatusData status = 1; } message PlayerInventoryData { map items = 1; } message PlayerTeleportData { int32 id = 1; int32 map_id = 2; int64 entity_config_id = 3; } message PlayerTeleportsData { repeated PlayerTeleportData teleport_data = 1; } message PlayerTutorialData { int32 id = 1; uint32 create_time = 2; bool get_award = 3; } message PlayerTutorialsData { repeated PlayerTutorialData tutorials = 1; } message PlayerMapTraceData { repeated int32 traces = 1; } message PlayerMonthCardData { int32 days = 1; int32 last_received_day = 2; } enum PlayerMcElementType { Glacio = 0; Fusion = 1; Electro = 2; Aero = 3; Spectro = 4; Havoc = 5; } message PlayerMcElementData { repeated PlayerMcElementType unlocked_elements = 1; PlayerMcElementType current_element = 2; } message PlayerSaveData { PlayerBasicData basic_data = 1; PlayerRoleData role_data = 2; PlayerLocationData location_data = 3; PlayerFuncData func_data = 4; PlayerExploreToolsData explore_tools_data = 5; PlayerChatData chat_data = 6; PlayerGuidesData guides = 7; PlayerAdviceData advise = 8; PlayerAdventureStatusData adventure_status = 9; PlayerInventoryData inventory = 10; PlayerTeleportsData teleports = 11; PlayerTutorialsData tutorials = 12; PlayerMapTraceData map_trace = 13; PlayerMonthCardData month_card = 14; PlayerMcElementData mc_element = 15; }