import "steammessages_base.proto"; option optimize_for = SPEED; option cc_generic_services = false; message CMsgClientGetUserStats { optional fixed64 game_id = 1; optional uint32 crc_stats = 2; optional int32 schema_local_version = 3; optional fixed64 steam_id_for_user = 4; } message CMsgClientGetUserStatsResponse { message Stats { optional uint32 stat_id = 1; optional uint32 stat_value = 2; } message Achievement_Blocks { optional uint32 achievement_id = 1; repeated fixed32 unlock_time = 2; } optional fixed64 game_id = 1; optional int32 eresult = 2 [default = 2]; optional uint32 crc_stats = 3; optional bytes schema = 4; repeated .CMsgClientGetUserStatsResponse.Stats stats = 5; repeated .CMsgClientGetUserStatsResponse.Achievement_Blocks achievement_blocks = 6; } message CMsgClientStoreUserStatsResponse { message Stats_Failed_Validation { optional uint32 stat_id = 1; optional uint32 reverted_stat_value = 2; } optional fixed64 game_id = 1; optional int32 eresult = 2 [default = 2]; optional uint32 crc_stats = 3; repeated .CMsgClientStoreUserStatsResponse.Stats_Failed_Validation stats_failed_validation = 4; optional bool stats_out_of_date = 5; } message CMsgClientStoreUserStats2 { message Stats { optional uint32 stat_id = 1; optional uint32 stat_value = 2; } optional fixed64 game_id = 1; optional fixed64 settor_steam_id = 2; optional fixed64 settee_steam_id = 3; optional uint32 crc_stats = 4; optional bool explicit_reset = 5; repeated .CMsgClientStoreUserStats2.Stats stats = 6; } message CMsgClientStatsUpdated { message Updated_Stats { optional uint32 stat_id = 1; optional uint32 stat_value = 2; } optional fixed64 steam_id = 1; optional fixed64 game_id = 2; optional uint32 crc_stats = 3; repeated .CMsgClientStatsUpdated.Updated_Stats updated_stats = 4; } message CMsgClientStoreUserStats { message Stats_To_Store { optional uint32 stat_id = 1; optional uint32 stat_value = 2; } optional fixed64 game_id = 1; optional bool explicit_reset = 2; repeated .CMsgClientStoreUserStats.Stats_To_Store stats_to_store = 3; }