Files
csdemo/Protobufs/dota2/dota_gcmessages_client.proto
2024-09-15 05:09:15 +02:00

3335 lines
88 KiB
Protocol Buffer

import "steammessages.proto";
import "dota_shared_enums.proto";
import "dota_gcmessages_common.proto";
import "dota_gcmessages_webapi.proto";
import "gcsdk_gcmessages.proto";
import "dota_gcmessages_common_lobby.proto";
import "dota_gcmessages_common_match_management.proto";
import "base_gcmessages.proto";
import "econ_gcmessages.proto";
import "valveextensions.proto";
enum CMsgDOTARequestMatches_SkillLevel {
CMsgDOTARequestMatches_SkillLevel_Any = 0;
CMsgDOTARequestMatches_SkillLevel_Normal = 1;
CMsgDOTARequestMatches_SkillLevel_High = 2;
CMsgDOTARequestMatches_SkillLevel_VeryHigh = 3;
}
enum DOTA_WatchReplayType {
DOTA_WATCH_REPLAY_NORMAL = 0;
DOTA_WATCH_REPLAY_HIGHLIGHTS = 1;
}
enum EItemEditorReservationResult {
k_EItemEditorReservationResult_OK = 1;
k_EItemEditorReservationResult_AlreadyExists = 2;
k_EItemEditorReservationResult_Reserved = 3;
k_EItemEditorReservationResult_TimedOut = 4;
}
enum EWeekendTourneyRichPresenceEvent {
k_EWeekendTourneyRichPresenceEvent_None = 0;
k_EWeekendTourneyRichPresenceEvent_StartedMatch = 1;
k_EWeekendTourneyRichPresenceEvent_WonMatch = 2;
k_EWeekendTourneyRichPresenceEvent_Eliminated = 3;
}
enum EDOTATriviaAnswerResult {
k_EDOTATriviaAnswerResult_Success = 0;
k_EDOTATriviaAnswerResult_InvalidQuestion = 1;
k_EDOTATriviaAnswerResult_InvalidAnswer = 2;
k_EDOTATriviaAnswerResult_QuestionLocked = 3;
k_EDOTATriviaAnswerResult_AlreadyAnswered = 4;
k_EDOTATriviaAnswerResult_TriviaDisabled = 5;
}
enum EPurchaseHeroRelicResult {
k_EPurchaseHeroRelicResult_Success = 0;
k_EPurchaseHeroRelicResult_FailedToSend = 1;
k_EPurchaseHeroRelicResult_NotEnoughPoints = 2;
k_EPurchaseHeroRelicResult_InternalServerError = 3;
k_EPurchaseHeroRelicResult_PurchaseNotAllowed = 4;
k_EPurchaseHeroRelicResult_InvalidRelic = 5;
k_EPurchaseHeroRelicResult_AlreadyOwned = 6;
k_EPurchaseHeroRelicResult_InvalidRarity = 7;
}
enum EDevEventRequestResult {
k_EDevEventRequestResult_Success = 0;
k_EDevEventRequestResult_NotAllowed = 1;
k_EDevEventRequestResult_InvalidEvent = 2;
k_EDevEventRequestResult_SqlFailure = 3;
k_EDevEventRequestResult_Timeout = 4;
k_EDevEventRequestResult_LockFailure = 5;
k_EDevEventRequestResult_SDOLoadFailure = 6;
}
enum ESupportEventRequestResult {
k_ESupportEventRequestResult_Success = 0;
k_ESupportEventRequestResult_Timeout = 1;
k_ESupportEventRequestResult_CantLockSOCache = 2;
k_ESupportEventRequestResult_ItemNotInInventory = 3;
k_ESupportEventRequestResult_InvalidItemDef = 4;
k_ESupportEventRequestResult_InvalidEvent = 5;
k_ESupportEventRequestResult_EventExpired = 6;
k_ESupportEventRequestResult_InvalidSupportAccount = 7;
k_ESupportEventRequestResult_InvalidSupportMessage = 8;
k_ESupportEventRequestResult_InvalidEventPoints = 9;
k_ESupportEventRequestResult_InvalidPremiumPoints = 10;
k_ESupportEventRequestResult_InvalidActionID = 11;
k_ESupportEventRequestResult_InvalidActionScore = 12;
k_ESupportEventRequestResult_TransactionFailed = 13;
}
enum EUnderDraftResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eNoGold = 2;
k_eInvalidSlot = 3;
k_eNoBenchSpace = 4;
k_eNoTickets = 5;
k_eEventNotOwned = 6;
k_eInvalidReward = 7;
k_eHasBigReward = 8;
k_eNoGCConnection = 9;
k_eTooBusy = 10;
k_eCantRollBack = 11;
}
enum EDOTADraftTriviaAnswerResult {
k_EDOTADraftTriviaAnswerResult_Success = 0;
k_EDOTADraftTriviaAnswerResult_InvalidMatchID = 1;
k_EDOTADraftTriviaAnswerResult_AlreadyAnswered = 2;
k_EDOTADraftTriviaAnswerResult_InternalError = 3;
k_EDOTADraftTriviaAnswerResult_TriviaDisabled = 4;
k_EDOTADraftTriviaAnswerResult_GCDown = 5;
}
enum CMsgClientToGCUpdateComicBookStat_Type {
CMsgClientToGCUpdateComicBookStat_Type_HighestPageRead = 1;
CMsgClientToGCUpdateComicBookStat_Type_SecondsSpentReading = 2;
CMsgClientToGCUpdateComicBookStat_Type_HighestPercentRead = 3;
}
message CMsgClientSuspended {
optional uint32 time_end = 1;
}
message CMsgBalancedShuffleLobby {
}
message CMsgInitialQuestionnaireResponse {
optional uint32 initial_skill = 1;
}
message CMsgDOTARequestMatchesResponse {
message Series {
repeated .CMsgDOTAMatch matches = 1;
optional uint32 series_id = 2;
optional uint32 series_type = 3;
}
repeated .CMsgDOTAMatch matches = 1;
repeated .CMsgDOTARequestMatchesResponse.Series series = 2;
optional uint32 request_id = 3;
optional uint32 total_results = 4;
optional uint32 results_remaining = 5;
}
message CMsgDOTAPopup {
enum PopupID {
NONE = -1;
KICKED_FROM_LOBBY = 0;
KICKED_FROM_PARTY = 1;
KICKED_FROM_TEAM = 2;
TEAM_WAS_DISBANDED = 3;
TEAM_MATCHMAKE_ALREADY_MATCH = 4;
TEAM_MATCHMAKE_ALREADY_FINDING = 5;
TEAM_MATCHMAKE_FULL = 6;
TEAM_MATCHMAKE_FAIL_ADD = 7;
TEAM_MATCHMAKE_FAIL_ADD_CURRENT = 8;
TEAM_MATCHMAKE_FAILED_TEAM_MEMBER = 9;
TEAM_MATCHMAKE_ALREADY_GAME = 10;
TEAM_MATCHMAKE_FAIL_GET_PARTY = 11;
MATCHMAKING_DISABLED = 12;
INVITE_DENIED = 13;
PARTY_FULL = 14;
MADE_ADMIN = 15;
NEED_TO_PURCHASE = 16;
SIGNON_MESSAGE = 17;
MATCHMAKING_REGION_OFFLINE = 19;
TOURNAMENT_GAME_NOT_FOUND = 21;
TOURNAMENT_GAME_HAS_LOBBY_ID = 22;
TOURNAMENT_GAME_HAS_MATCH_ID = 23;
TOURNAMENT_GAME_HAS_NO_RADIANT_TEAM = 24;
TOURNAMENT_GAME_HAS_NO_DIRE_TEAM = 25;
TOURNAMENT_GAME_SQL_UPDATE_FAILED = 26;
NOT_LEAGUE_ADMIN = 27;
IN_ANOTHER_GAME = 29;
PARTY_MEMBER_IN_ANOTHER_GAME = 30;
PARTY_MEMBER_IN_LOW_PRIORITY = 31;
CLIENT_OUT_OF_DATE = 32;
SAVE_GAME_CORRUPT = 38;
INSUFFICIENT_INGOTS = 39;
COMPETITIVE_MM_NOT_ENOUGH_PLAY_TIME_PLAY_MORE_CASUAL = 42;
PARTY_LEADER_JOINED_LOBBY = 44;
WEEKEND_TOURNEY_UNMATCHED = 48;
POST_MATCH_SURVEY = 49;
TROPHY_AWARDED = 50;
TROPHY_LEVEL_UP = 51;
ALL_HERO_CHALLENGE_PROGRESS = 52;
NEED_INITIAL_SKILL = 53;
NEED_INITIAL_SKILL_IN_PARTY = 54;
TARGET_ENGINE_MISMATCH = 55;
VAC_NOT_VERIFIED = 56;
KICKED_FROM_QUEUE_EVENT_STARTING = 57;
KICKED_FROM_QUEUE_EVENT_ENDING = 58;
LOBBY_FULL = 62;
EVENT_POINTS_EARNED = 63;
CUSTOM_GAME_INCORRECT_VERSION = 64;
LIMITED_USER_CHAT = 66;
EVENT_PREMIUM_POINTS_EARNED = 67;
LOBBY_MVP_AWARDED = 68;
LOW_BADGE_LEVEL_CHAT = 71;
LOW_WINS_CHAT = 72;
UNVERIFIED_USER_CHAT = 73;
PARTY_STARTED_FINDING_EVENT_MATCH = 74;
GENERIC_INFO = 69;
GENERIC_ERROR = 70;
RANK_TIER_UPDATED = 75;
CUSTOM_GAME_COOLDOWN_RESTRICTED = 76;
CREATE_LOBBY_FAILED_TOO_MUCH_PLAYTIME = 77;
CUSTOM_GAME_TOO_FEW_GAMES = 78;
COMM_SCORE_TOO_LOW = 79;
}
optional .CMsgDOTAPopup.PopupID id = 1 [default = NONE];
optional string custom_text = 2;
optional sint32 int_data = 3;
optional bytes popup_data = 4;
optional string loc_token_header = 5;
optional string loc_token_msg = 6;
repeated string var_names = 7;
repeated string var_values = 8;
optional string debug_text = 9;
}
message CMsgDOTAReportsRemainingRequest {
}
message CMsgDOTAReportsRemainingResponse {
optional uint32 num_positive_reports_remaining = 1;
optional uint32 num_negative_reports_remaining = 2;
optional uint32 num_positive_reports_total = 3;
optional uint32 num_negative_reports_total = 4;
optional uint32 num_comms_reports_remaining = 5;
optional uint32 num_comms_reports_total = 6;
}
message CMsgDOTASubmitPlayerReport {
optional uint32 target_account_id = 1;
optional uint32 report_flags = 2;
optional uint64 lobby_id = 4;
optional string comment = 5;
}
message CMsgDOTASubmitPlayerReportResponse {
enum EResult {
k_eInternalError = 0;
k_eSuccess = 1;
k_eDuplicateReport = 2;
k_eMixedReportFlags = 3;
k_eTooLate = 4;
k_eInvalidPregameReport = 5;
k_eHasntChatted = 6;
k_eInvalid = 7;
k_eOwnership = 8;
k_eMissingRequirements = 9;
k_eInvalidRoleReport = 10;
k_eInvalidCoachReport = 11;
k_eNoRemainingReports = 12;
k_eInvalidMember = 13;
}
optional uint32 target_account_id = 1;
optional uint32 report_flags = 2;
optional string debug_message = 4;
optional .CMsgDOTASubmitPlayerReportResponse.EResult enum_result = 5 [default = k_eInternalError];
}
message CMsgDOTASubmitPlayerAvoidRequest {
optional uint32 target_account_id = 1;
optional uint64 lobby_id = 4;
optional string user_note = 5;
}
message CMsgDOTASubmitPlayerAvoidRequestResponse {
optional uint32 target_account_id = 1;
optional uint32 result = 2;
optional string debug_message = 3;
}
message CMsgDOTASubmitPlayerReportV2 {
optional uint32 target_account_id = 1;
repeated uint32 report_reason = 2;
optional uint64 lobby_id = 3;
optional float game_time = 4;
optional uint32 debug_slot = 5;
optional fixed64 debug_match_id = 6;
}
message CMsgDOTASubmitPlayerReportResponseV2 {
enum EResult {
k_eInternalError = 0;
k_eSuccess = 1;
k_eDuplicateReport = 2;
k_eMixedReportFlags = 3;
k_eTooLate = 4;
k_eInvalidPregameReport = 5;
k_eHasntChatted = 6;
k_eInvalid = 7;
k_eOwnership = 8;
k_eMissingRequirements = 9;
k_eInvalidRoleReport = 10;
k_eInvalidCoachReport = 11;
k_eNoRemainingReports = 12;
k_eInvalidMember = 13;
k_eCannotReportPartyMember = 14;
}
optional uint32 target_account_id = 1;
repeated uint32 report_reason = 2;
optional string debug_message = 4;
optional .CMsgDOTASubmitPlayerReportResponseV2.EResult enum_result = 5 [default = k_eInternalError];
}
message CMsgDOTASubmitLobbyMVPVote {
optional uint32 target_account_id = 1;
}
message CMsgDOTASubmitLobbyMVPVoteResponse {
optional uint32 target_account_id = 1;
optional uint32 eresult = 2;
}
message CMsgDOTALobbyMVPAwarded {
optional uint64 match_id = 1;
repeated uint32 mvp_account_id = 2;
}
message CMsgDOTAKickedFromMatchmakingQueue {
optional .MatchType match_type = 1 [default = MATCH_TYPE_CASUAL];
}
message CMsgGCMatchDetailsRequest {
optional uint64 match_id = 1;
}
message CMsgGCMatchDetailsResponse {
optional uint32 result = 1;
optional .CMsgDOTAMatch match = 2;
optional .DOTAMatchVote vote = 3 [default = DOTAMatchVote_INVALID];
}
message CMsgDOTAProfileTickets {
message LeaguePass {
optional uint32 league_id = 1;
optional uint32 item_def = 2;
}
optional uint32 result = 1;
optional uint32 account_id = 2;
repeated .CMsgDOTAProfileTickets.LeaguePass league_passes = 3;
}
message CMsgClientToGCGetProfileTickets {
optional uint32 account_id = 1;
}
message CMsgGCToClientPartySearchInvites {
repeated .CMsgGCToClientPartySearchInvite invites = 1;
}
message CMsgDOTAWelcome {
message CExtraMsg {
optional uint32 id = 1;
optional bytes contents = 2;
}
optional uint32 store_item_hash = 5;
optional uint32 timeplayedconsecutively = 6;
optional bool allow_3rd_party_match_history = 7;
optional uint32 last_ip_address = 13;
optional bool profile_private = 17;
optional uint32 currency = 18;
optional bool should_request_player_origin = 20;
optional uint32 gc_socache_file_version = 22;
optional bool is_perfect_world_test_account = 24;
repeated .CMsgDOTAWelcome.CExtraMsg extra_messages = 26;
optional uint64 minimum_recent_item_id = 27;
optional .EEvent active_event = 28 [default = EVENT_ID_NONE];
optional uint32 additional_user_message = 29;
optional uint32 custom_game_whitelist_version = 30;
optional .CMsgGCToClientPartySearchInvites party_search_friend_invites = 31;
optional int32 remaining_playtime = 32 [default = -1];
optional bool disable_guild_persona_info = 33;
repeated .CExtraMsgBlock extra_message_blocks = 34;
}
message CSODOTAGameHeroFavorites {
optional uint32 account_id = 1 [(key_field) = true];
optional int32 hero_id = 2 [(key_field) = true];
}
message CMsgDOTAMatchVotes {
message PlayerVote {
optional uint32 account_id = 1;
optional uint32 vote = 2;
}
optional uint64 match_id = 1;
repeated .CMsgDOTAMatchVotes.PlayerVote votes = 2;
}
message CMsgMatchmakingMatchGroupInfo {
optional uint32 players_searching = 1;
optional sint32 auto_region_select_ping_penalty = 2;
optional sint32 auto_region_select_ping_penalty_custom = 4;
optional .EMatchGroupServerStatus status = 3 [default = k_EMatchGroupServerStatus_OK];
}
message CMsgDOTAMatchmakingStatsRequest {
}
message CMsgDOTAMatchmakingStatsResponse {
optional uint32 matchgroups_version = 1;
repeated uint32 legacy_searching_players_by_group_source2 = 7;
repeated .CMsgMatchmakingMatchGroupInfo match_groups = 8;
}
message CMsgDOTAUpdateMatchmakingStats {
optional .CMsgDOTAMatchmakingStatsResponse stats = 1;
}
message CMsgDOTAUpdateMatchManagementStats {
optional .CMsgDOTAMatchmakingStatsResponse stats = 1;
}
message CMsgDOTASetMatchHistoryAccess {
optional bool allow_3rd_party_match_history = 1;
}
message CMsgDOTASetMatchHistoryAccessResponse {
optional uint32 eresult = 1 [default = 2];
}
message CMsgDOTANotifyAccountFlagsChange {
optional uint32 accountid = 1;
optional uint32 account_flags = 2;
}
message CMsgDOTASetProfilePrivacy {
optional bool profile_private = 1;
}
message CMsgDOTASetProfilePrivacyResponse {
optional uint32 eresult = 1;
}
message CMsgUpgradeLeagueItem {
optional uint64 match_id = 1;
optional uint32 league_id = 2;
}
message CMsgUpgradeLeagueItemResponse {
}
message CMsgGCWatchDownloadedReplay {
optional uint64 match_id = 1;
optional .DOTA_WatchReplayType watch_type = 2 [default = DOTA_WATCH_REPLAY_NORMAL];
}
message CMsgClientsRejoinChatChannels {
}
message CMsgGCGetHeroStandings {
}
message CMsgGCGetHeroStandingsResponse {
message Hero {
optional int32 hero_id = 1;
optional uint32 wins = 2;
optional uint32 losses = 3;
optional uint32 win_streak = 4;
optional uint32 best_win_streak = 5;
optional float avg_kills = 6;
optional float avg_deaths = 7;
optional float avg_assists = 8;
optional float avg_gpm = 9;
optional float avg_xpm = 10;
optional uint32 best_kills = 11;
optional uint32 best_assists = 12;
optional uint32 best_gpm = 13;
optional uint32 best_xpm = 14;
optional float performance = 15;
optional uint32 wins_with_ally = 16;
optional uint32 losses_with_ally = 17;
optional uint32 wins_against_enemy = 18;
optional uint32 losses_against_enemy = 19;
optional uint32 networth_peak = 20;
optional uint32 lasthit_peak = 21;
optional uint32 deny_peak = 22;
optional uint32 damage_peak = 23;
optional uint32 longest_game_peak = 24;
optional uint32 healing_peak = 25;
optional float avg_lasthits = 26;
optional float avg_denies = 27;
}
repeated .CMsgGCGetHeroStandingsResponse.Hero standings = 1;
}
message CMatchPlayerTimedStatAverages {
optional float kills = 2;
optional float deaths = 3;
optional float assists = 4;
optional float net_worth = 5;
optional float last_hits = 6;
optional float denies = 7;
optional float item_value = 8;
optional float support_gold_spent = 9;
optional float camps_stacked = 10;
optional float wards_placed = 11;
optional float dewards = 12;
optional float triple_kills = 13;
optional float rampages = 14;
}
message CMatchPlayerTimedStatStdDeviations {
optional float kills = 2 [default = 1];
optional float deaths = 3 [default = 1];
optional float assists = 4 [default = 1];
optional float net_worth = 5 [default = 1];
optional float last_hits = 6 [default = 1];
optional float denies = 7 [default = 1];
optional float item_value = 8 [default = 1];
optional float support_gold_spent = 9 [default = 1];
optional float camps_stacked = 10 [default = 1];
optional float wards_placed = 11 [default = 1];
optional float dewards = 12 [default = 1];
optional float triple_kills = 13 [default = 1];
optional float rampages = 14 [default = 1];
}
message CMsgGCGetHeroTimedStatsResponse {
message TimedStatsContainer {
optional uint32 time = 1;
optional .CMatchPlayerTimedStatAverages all_stats = 2;
optional .CMatchPlayerTimedStatAverages winning_stats = 3;
optional .CMatchPlayerTimedStatAverages losing_stats = 4;
optional .CMatchPlayerTimedStatStdDeviations winning_stddevs = 5;
optional .CMatchPlayerTimedStatStdDeviations losing_stddevs = 6;
}
message RankChunkedStats {
optional uint32 rank_chunk = 1;
repeated .CMsgGCGetHeroTimedStatsResponse.TimedStatsContainer timed_stats = 2;
}
optional int32 hero_id = 1;
repeated .CMsgGCGetHeroTimedStatsResponse.RankChunkedStats rank_chunked_stats = 2;
}
message CMsgGCItemEditorReservationsRequest {
}
message CMsgGCItemEditorReservation {
optional uint32 def_index = 1;
optional string name = 2;
}
message CMsgGCItemEditorReservationsResponse {
repeated .CMsgGCItemEditorReservation reservations = 1;
}
message CMsgGCItemEditorReserveItemDef {
optional uint32 def_index = 1;
optional string username = 2;
}
message CMsgGCItemEditorReserveItemDefResponse {
optional uint32 def_index = 1;
optional string username = 2;
optional uint32 result = 3;
}
message CMsgGCItemEditorReleaseReservation {
optional uint32 def_index = 1;
optional string username = 2;
}
message CMsgGCItemEditorReleaseReservationResponse {
optional uint32 def_index = 1;
optional bool released = 2;
}
message CMsgFlipLobbyTeams {
}
message CMsgGCLobbyUpdateBroadcastChannelInfo {
optional uint32 channel_id = 1;
optional string country_code = 2;
optional string description = 3;
optional string language_code = 4;
}
message CMsgDOTAClaimEventActionData {
message GrantItemGiftData {
optional uint32 give_to_account_id = 1;
optional string gift_message = 2;
}
optional .CMsgDOTAClaimEventActionData.GrantItemGiftData grant_item_gift_data = 4;
}
message CMsgDOTAClaimEventAction {
optional uint32 event_id = 1;
optional uint32 action_id = 2;
optional uint32 quantity = 3;
optional .CMsgDOTAClaimEventActionData data = 4;
}
message CMsgClientToGCClaimEventActionUsingItem {
optional uint32 event_id = 1;
optional uint32 action_id = 2;
optional uint64 item_id = 3;
optional uint32 quantity = 4;
}
message CMsgClientToGCClaimEventActionUsingItemResponse {
optional .CMsgDOTAClaimEventActionResponse action_results = 1;
}
message CMsgGCToClientClaimEventActionUsingItemCompleted {
optional uint64 item_id = 1;
optional .CMsgDOTAClaimEventActionResponse action_results = 2;
}
message CMsgDOTAGetEventPoints {
optional uint32 event_id = 1;
optional uint32 account_id = 2;
}
message CMsgDOTAGetEventPointsResponse {
message Action {
optional uint32 action_id = 1;
optional uint32 times_completed = 2 [default = 1];
}
optional uint32 total_points = 1;
optional uint32 total_premium_points = 2;
optional uint32 event_id = 3;
optional uint32 points = 4;
optional uint32 premium_points = 5;
repeated .CMsgDOTAGetEventPointsResponse.Action completed_actions = 6;
optional uint32 account_id = 7;
optional bool owned = 8;
optional uint32 audit_action = 9;
optional uint32 active_season_id = 10;
}
message CMsgDOTAGetPeriodicResource {
optional uint32 account_id = 1;
optional uint32 periodic_resource_id = 2;
optional uint32 timestamp = 3;
}
message CMsgDOTAGetPeriodicResourceResponse {
optional uint32 periodic_resource_max = 1;
optional uint32 periodic_resource_used = 2;
}
message CMsgDOTAPeriodicResourceUpdated {
optional .CMsgDOTAGetPeriodicResource periodic_resource_key = 1;
optional .CMsgDOTAGetPeriodicResourceResponse periodic_resource_value = 2;
}
message CMsgDOTACompendiumSelection {
optional uint32 selection_index = 1;
optional uint32 selection = 2;
optional uint32 leagueid = 3;
}
message CMsgDOTACompendiumSelectionResponse {
optional uint32 eresult = 1 [default = 2];
}
message CMsgDOTACompendiumRemoveAllSelections {
optional uint32 leagueid = 1;
}
message CMsgDOTACompendiumRemoveAllSelectionsResponse {
optional uint32 eresult = 1 [default = 2];
}
message CMsgDOTACompendiumData {
repeated .CMsgDOTACompendiumSelection selections = 1;
}
message CMsgDOTACompendiumDataRequest {
optional uint32 account_id = 1;
optional uint32 leagueid = 2;
}
message CMsgDOTACompendiumDataResponse {
optional uint32 account_id = 1;
optional uint32 leagueid = 2;
optional uint32 result = 3 [default = 2];
optional .CMsgDOTACompendiumData compendium_data = 4;
}
message CMsgDOTAGetPlayerMatchHistory {
optional uint32 account_id = 1;
optional uint64 start_at_match_id = 2;
optional uint32 matches_requested = 3;
optional int32 hero_id = 4;
optional uint32 request_id = 5;
optional bool include_practice_matches = 7;
optional bool include_custom_games = 8;
optional bool include_event_games = 9;
}
message CMsgDOTAGetPlayerMatchHistoryResponse {
message Match {
optional uint64 match_id = 1;
optional uint32 start_time = 2;
optional int32 hero_id = 3;
optional bool winner = 4;
optional uint32 game_mode = 5;
optional int32 rank_change = 6;
optional uint32 previous_rank = 7;
optional uint32 lobby_type = 8;
optional bool solo_rank = 9;
optional bool abandon = 10;
optional uint32 duration = 11;
optional uint32 engine = 12;
optional bool active_plus_subscription = 13;
optional bool seasonal_rank = 14;
optional uint32 tourney_id = 15;
optional uint32 tourney_round = 16;
optional uint32 tourney_tier = 17;
optional uint32 tourney_division = 18;
optional uint32 team_id = 19;
optional string team_name = 20;
optional uint64 ugc_team_ui_logo = 21;
optional uint32 selected_facet = 22;
}
repeated .CMsgDOTAGetPlayerMatchHistoryResponse.Match matches = 1;
optional uint32 request_id = 2;
}
message CMsgGCNotificationsRequest {
}
message CMsgGCNotifications_Notification {
optional uint64 id = 1;
optional uint32 type = 2;
optional uint32 timestamp = 3;
optional uint32 reference_a = 4;
optional uint32 reference_b = 5;
optional uint32 reference_c = 6;
optional string message = 7;
optional bool unread = 8;
}
message CMsgGCNotificationsUpdate {
enum EResult {
SUCCESS = 0;
ERROR_UNSPECIFIED = 1;
}
optional .CMsgGCNotificationsUpdate.EResult result = 1 [default = SUCCESS];
repeated .CMsgGCNotifications_Notification notifications = 2;
}
message CMsgGCNotificationsResponse {
optional .CMsgGCNotificationsUpdate update = 1;
}
message CMsgGCNotificationsMarkReadRequest {
}
message CMsgGCPlayerInfoSubmit {
optional string name = 1;
optional string country_code = 2;
optional uint32 fantasy_role = 3;
optional uint32 team_id = 4;
optional string sponsor = 5;
}
message CMsgGCPlayerInfoSubmitResponse {
enum EResult {
SUCCESS = 0;
ERROR_UNSPECIFIED = 1;
ERROR_INFO_LOCKED = 2;
ERROR_NOT_MEMBER_OF_TEAM = 3;
}
optional .CMsgGCPlayerInfoSubmitResponse.EResult result = 1 [default = SUCCESS];
}
message CMsgDOTAEmoticonAccessSDO {
optional uint32 account_id = 1;
optional bytes unlocked_emoticons = 2;
}
message CMsgClientToGCEmoticonDataRequest {
}
message CMsgGCToClientEmoticonData {
optional .CMsgDOTAEmoticonAccessSDO emoticon_access = 1;
}
message CMsgGCToClientTournamentItemDrop {
optional uint32 item_def = 1;
optional uint32 event_type = 2;
}
message CMsgClientToGCGetAllHeroOrder {
}
message CMsgClientToGCGetAllHeroOrderResponse {
repeated int32 hero_ids = 1;
}
message CMsgClientToGCGetAllHeroProgress {
optional uint32 account_id = 1;
}
message CMsgClientToGCGetAllHeroProgressResponse {
optional uint32 account_id = 1;
optional int32 curr_hero_id = 2;
optional uint32 laps_completed = 3;
optional uint32 curr_hero_games = 4;
optional uint32 curr_lap_time_started = 5;
optional uint32 curr_lap_games = 6;
optional uint32 best_lap_games = 7;
optional uint32 best_lap_time = 8;
optional uint32 lap_heroes_completed = 9;
optional uint32 lap_heroes_remaining = 10;
optional int32 next_hero_id = 11;
optional int32 prev_hero_id = 12;
optional uint32 prev_hero_games = 13;
optional float prev_avg_tries = 14;
optional float curr_avg_tries = 15;
optional float next_avg_tries = 16;
optional float full_lap_avg_tries = 17;
optional float curr_lap_avg_tries = 18;
optional string profile_name = 19;
optional int32 start_hero_id = 20;
}
message CMsgClientToGCGetTrophyList {
optional uint32 account_id = 1;
}
message CMsgClientToGCGetTrophyListResponse {
message Trophy {
optional uint32 trophy_id = 1;
optional uint32 trophy_score = 2;
optional uint32 last_updated = 3;
}
repeated .CMsgClientToGCGetTrophyListResponse.Trophy trophies = 2;
}
message CMsgGCToClientTrophyAwarded {
optional uint32 trophy_id = 1;
optional uint32 trophy_score = 2;
optional uint32 trophy_old_score = 3;
optional uint32 last_updated = 4;
}
message CMsgClientToGCRankRequest {
optional .ERankType rank_type = 1 [default = k_ERankType_Invalid];
}
message CMsgGCToClientRankResponse {
enum EResultCode {
k_Succeeded = 0;
k_Failed = 1;
k_InvalidRankType = 2;
}
optional .CMsgGCToClientRankResponse.EResultCode result = 1 [default = k_Succeeded];
optional uint32 rank_value = 2;
optional uint32 rank_data1 = 3;
optional uint32 rank_data2 = 4;
optional uint32 rank_data3 = 5;
}
message CMsgGCToClientRankUpdate {
optional .ERankType rank_type = 1 [default = k_ERankType_Invalid];
optional .CMsgGCToClientRankResponse rank_info = 2;
}
message CMsgClientToGCGetProfileCard {
optional uint32 account_id = 1;
}
message CMsgClientToGCSetProfileCardSlots {
message CardSlot {
optional uint32 slot_id = 1;
optional .EProfileCardSlotType slot_type = 2 [default = k_EProfileCardSlotType_Empty];
optional uint64 slot_value = 3;
}
repeated .CMsgClientToGCSetProfileCardSlots.CardSlot slots = 1;
}
message CMsgClientToGCGetProfileCardStats {
}
message CMsgClientToGCCreateHeroStatue {
optional uint64 source_item_id = 1;
optional int32 hero_id = 3;
optional string sequence_name = 4;
optional float cycle = 5;
repeated uint32 wearables = 6;
optional string inscription = 7;
repeated uint32 styles = 8;
optional uint64 reforger_item_id = 9;
optional bool tournament_drop = 10;
}
message CMsgGCToClientHeroStatueCreateResult {
optional uint64 resulting_item_id = 1;
}
message CMsgClientToGCPlayerStatsRequest {
optional uint32 account_id = 1;
}
message CMsgGCToClientPlayerStatsResponse {
optional uint32 account_id = 1;
repeated float player_stats = 2;
optional uint32 match_count = 3;
optional float mean_gpm = 4;
optional float mean_xppm = 5;
optional float mean_lasthits = 6;
optional uint32 rampages = 7;
optional uint32 triple_kills = 8;
optional uint32 first_blood_claimed = 9;
optional uint32 first_blood_given = 10;
optional uint32 couriers_killed = 11;
optional uint32 aegises_snatched = 12;
optional uint32 cheeses_eaten = 13;
optional uint32 creeps_stacked = 14;
optional float fight_score = 15;
optional float farm_score = 16;
optional float support_score = 17;
optional float push_score = 18;
optional float versatility_score = 19;
optional float mean_networth = 20;
optional float mean_damage = 21;
optional float mean_heals = 22;
optional uint32 rapiers_purchased = 23;
}
message CMsgClientToGCCustomGamesFriendsPlayedRequest {
}
message CMsgGCToClientCustomGamesFriendsPlayedResponse {
message CustomGame {
optional uint64 custom_game_id = 1;
repeated uint32 account_ids = 2;
}
optional uint32 account_id = 1;
repeated .CMsgGCToClientCustomGamesFriendsPlayedResponse.CustomGame games = 2;
}
message CMsgClientToGCSocialFeedPostCommentRequest {
optional uint64 event_id = 1;
optional string comment = 2;
}
message CMsgGCToClientSocialFeedPostCommentResponse {
optional bool success = 1;
}
message CMsgClientToGCSocialFeedPostMessageRequest {
optional string message = 1;
optional uint64 match_id = 2;
optional uint32 match_timestamp = 3;
}
message CMsgGCToClientSocialFeedPostMessageResponse {
optional bool success = 1;
}
message CMsgClientToGCFriendsPlayedCustomGameRequest {
optional uint64 custom_game_id = 1;
}
message CMsgGCToClientFriendsPlayedCustomGameResponse {
optional uint64 custom_game_id = 1;
repeated uint32 account_ids = 2;
}
message CMsgDOTAPartyRichPresence {
message Member {
optional fixed64 steam_id = 1;
optional bool coach = 2;
}
message WeekendTourney {
optional uint32 division = 1;
optional uint32 skill_level = 2;
optional uint32 round = 3;
optional uint32 tournament_id = 4;
optional uint32 state_seq_num = 5;
optional .EWeekendTourneyRichPresenceEvent event = 6 [default = k_EWeekendTourneyRichPresenceEvent_None];
optional uint32 event_round = 7;
}
optional fixed64 party_id = 1;
optional .CSODOTAParty.State party_state = 2 [default = UI];
optional bool open = 3;
optional bool low_priority = 5;
optional uint32 team_id = 7;
optional string team_name = 8;
optional uint64 ugc_team_ui_logo = 9;
repeated .CMsgDOTAPartyRichPresence.Member members = 4;
optional .CMsgDOTAPartyRichPresence.WeekendTourney weekend_tourney = 6;
}
message CMsgDOTALobbyRichPresence {
optional fixed64 lobby_id = 1;
optional .CSODOTALobby.State lobby_state = 2 [default = UI];
optional bool password = 3;
optional .DOTA_GameMode game_mode = 4 [default = DOTA_GAMEMODE_NONE];
optional uint32 member_count = 5;
optional uint32 max_member_count = 6;
optional fixed64 custom_game_id = 7;
optional string name = 8;
optional uint32 lobby_type = 9;
}
message CMsgDOTACustomGameListenServerStartedLoading {
optional fixed64 lobby_id = 1;
optional uint64 custom_game_id = 2;
repeated uint32 lobby_members = 3;
optional uint32 start_time = 4;
}
message CMsgDOTACustomGameClientFinishedLoading {
optional fixed64 lobby_id = 1;
optional uint32 loading_duration = 2;
optional sint32 result_code = 3;
optional string result_string = 4;
optional uint32 signon_states = 5;
optional string comment = 6;
}
message CMsgClientToGCApplyGemCombiner {
optional uint64 item_id_1 = 1;
optional uint64 item_id_2 = 2;
}
message CMsgClientToGCH264Unsupported {
}
message CMsgClientToGCGetQuestProgress {
repeated uint32 quest_ids = 1;
}
message CMsgClientToGCGetQuestProgressResponse {
message Challenge {
optional uint32 challenge_id = 1;
optional uint32 time_completed = 2;
optional uint32 attempts = 3;
optional int32 hero_id = 4;
optional uint32 template_id = 5;
optional uint32 quest_rank = 6;
}
message Quest {
optional uint32 quest_id = 1;
repeated .CMsgClientToGCGetQuestProgressResponse.Challenge completed_challenges = 2;
}
optional bool success = 1;
repeated .CMsgClientToGCGetQuestProgressResponse.Quest quests = 2;
}
message CMsgGCToClientMatchSignedOut {
optional uint64 match_id = 1;
}
message CMsgGCGetHeroStatsHistory {
optional int32 hero_id = 1;
}
message CMsgGCGetHeroStatsHistoryResponse {
optional int32 hero_id = 1;
repeated .CMsgDOTASDOHeroStatsHistory records = 2;
}
message CMsgPlayerConductScorecardRequest {
}
message CMsgPlayerConductScorecard {
enum EBehaviorRating {
k_eBehaviorGood = 0;
k_eBehaviorWarning = 1;
k_eBehaviorBad = 2;
}
optional uint32 account_id = 1;
optional uint64 match_id = 2;
optional uint32 seq_num = 3;
optional uint32 reasons = 4;
optional uint32 matches_in_report = 5;
optional uint32 matches_clean = 6;
optional uint32 matches_reported = 7;
optional uint32 matches_abandoned = 8;
optional uint32 reports_count = 9;
optional uint32 reports_parties = 10;
optional uint32 commend_count = 11;
optional uint32 date = 14;
optional uint32 raw_behavior_score = 17;
optional uint32 old_raw_behavior_score = 18;
optional uint32 comms_reports = 19;
optional uint32 comms_parties = 20;
optional .CMsgPlayerConductScorecard.EBehaviorRating behavior_rating = 21 [default = k_eBehaviorGood];
}
message CMsgClientToGCWageringRequest {
optional uint32 event_id = 1;
}
message CMsgGCToClientWageringResponse {
optional uint32 coins_remaining = 1;
optional uint32 total_points_won = 2;
optional uint32 total_points_wagered = 3;
optional uint32 total_points_tipped = 4;
optional uint32 success_rate = 5;
optional uint32 total_games_wagered = 6;
optional uint32 coins_max = 7;
optional uint32 rank_wagers_remaining = 8;
optional uint32 rank_wagers_max = 9;
optional uint32 prediction_tokens_remaining = 10;
optional uint32 prediction_tokens_max = 11;
optional uint32 bounties_remaining = 12;
optional uint32 bounties_max = 13;
}
message CMsgGCToClientWageringUpdate {
optional uint32 event_id = 1;
optional .CMsgGCToClientWageringResponse wagering_info = 2;
}
message CMsgGCToClientArcanaVotesUpdate {
optional uint32 event_id = 1;
optional .CMsgClientToGCRequestArcanaVotesRemainingResponse arcana_votes = 2;
}
message CMsgClientToGCGetEventGoals {
repeated .EEvent event_ids = 1;
}
message CMsgEventGoals {
message EventGoal {
optional .EEvent event_id = 1 [default = EVENT_ID_NONE];
optional uint32 goal_id = 2;
optional uint64 value = 3;
}
repeated .CMsgEventGoals.EventGoal event_goals = 1;
}
message CMsgGCToGCLeaguePredictions {
optional uint32 league_id = 1;
}
message CMsgPredictionRankings {
message PredictionLine {
optional uint32 answer_id = 1;
optional string answer_name = 2;
optional uint64 answer_logo = 3;
optional float answer_value = 4;
}
message Prediction {
optional uint32 selection_id = 1;
repeated .CMsgPredictionRankings.PredictionLine prediction_lines = 2;
}
repeated .CMsgPredictionRankings.Prediction predictions = 1;
}
message CMsgPredictionResults {
message ResultBreakdown {
optional uint32 answer_selection = 2;
optional float answer_value = 3;
}
message Result {
optional uint32 selection_id = 1;
repeated .CMsgPredictionResults.ResultBreakdown result_breakdown = 2;
}
repeated .CMsgPredictionResults.Result results = 1;
}
message CMsgClientToGCHasPlayerVotedForMVP {
optional uint64 match_id = 1;
}
message CMsgClientToGCHasPlayerVotedForMVPResponse {
optional bool result = 1;
}
message CMsgClientToGCVoteForMVP {
optional uint64 match_id = 1;
optional uint32 account_id = 3;
}
message CMsgClientToGCVoteForMVPResponse {
optional bool result = 1;
}
message CMsgClientToGCMVPVoteTimeout {
optional uint64 match_id = 1;
}
message CMsgClientToGCMVPVoteTimeoutResponse {
optional bool result = 1;
}
message CMsgClientToGCTeammateStatsRequest {
}
message CMsgClientToGCTeammateStatsResponse {
message TeammateStat {
optional uint32 account_id = 1;
optional uint32 games = 2;
optional uint32 wins = 3;
optional uint32 most_recent_game_timestamp = 4;
optional uint64 most_recent_game_match_id = 5;
optional float performance = 100;
}
optional bool success = 1;
repeated .CMsgClientToGCTeammateStatsResponse.TeammateStat teammate_stats = 2;
}
message CMsgClientToGCVoteForArcana {
repeated .CMsgArcanaVoteMatchVotes matches = 1;
}
message CMsgClientToGCVoteForArcanaResponse {
enum Result {
SUCCEEDED = 0;
VOTING_NOT_ENABLED_FOR_ROUND = 1;
UNKNOWN_FAILURE = 2;
}
optional .CMsgClientToGCVoteForArcanaResponse.Result result = 1 [default = SUCCEEDED];
}
message CMsgClientToGCRequestArcanaVotesRemaining {
}
message CMsgClientToGCRequestArcanaVotesRemainingResponse {
optional bool result = 1;
optional uint32 votes_remaining = 2;
optional uint32 votes_total = 3;
repeated .CMsgArcanaVoteMatchVotes matches_previously_voted_for = 4;
}
message CMsgClientToGCRequestEventPointLogV2 {
optional uint32 event_id = 1;
}
message CMsgClientToGCRequestEventPointLogResponseV2 {
message LogEntry {
optional uint32 timestamp = 1;
optional uint32 audit_action = 2;
optional int32 event_points = 3;
optional uint64 audit_data = 4;
}
optional bool result = 1;
optional .EEvent event_id = 2 [default = EVENT_ID_NONE];
repeated .CMsgClientToGCRequestEventPointLogResponseV2.LogEntry log_entries = 3;
}
message CMsgClientToGCPublishUserStat {
optional uint32 user_stats_event = 1;
optional uint64 reference_data = 2;
}
message CMsgClientToGCRequestSlarkGameResult {
optional .EEvent event_id = 1 [default = EVENT_ID_NONE];
optional uint32 slot_chosen = 2;
optional uint32 week = 3;
}
message CMsgClientToGCRequestSlarkGameResultResponse {
optional uint32 points_won = 1;
optional bool aura_won = 2;
}
message CMsgGCToClientQuestProgressUpdated {
message Challenge {
optional uint32 challenge_id = 1;
optional uint32 time_completed = 2;
optional uint32 attempts = 3;
optional int32 hero_id = 4;
optional uint32 template_id = 5;
optional uint32 quest_rank = 6;
optional uint32 max_quest_rank = 7;
}
optional uint32 quest_id = 1;
repeated .CMsgGCToClientQuestProgressUpdated.Challenge completed_challenges = 2;
}
message CMsgDOTARedeemItem {
optional uint64 currency_id = 1;
optional uint32 purchase_def = 2;
}
message CMsgDOTARedeemItemResponse {
enum EResultCode {
k_Succeeded = 0;
k_Failed = 1;
}
optional .CMsgDOTARedeemItemResponse.EResultCode response = 1 [default = k_Succeeded];
}
message CMsgClientToGCSelectCompendiumInGamePrediction {
message Prediction {
optional uint32 prediction_id = 1;
optional uint32 prediction_value = 2;
}
optional uint64 match_id = 1;
repeated .CMsgClientToGCSelectCompendiumInGamePrediction.Prediction predictions = 2;
optional uint32 league_id = 3;
}
message CMsgClientToGCSelectCompendiumInGamePredictionResponse {
enum EResult {
SUCCESS = 0;
INVALID_MATCH = 1;
PREDICTIONS_ARE_CLOSED = 2;
OTHER_ERROR = 3;
}
optional .CMsgClientToGCSelectCompendiumInGamePredictionResponse.EResult result = 1 [default = SUCCESS];
}
message CMsgClientToGCOpenPlayerCardPack {
optional uint64 player_card_pack_item_id = 1;
optional uint32 team_id = 2;
optional uint32 deprecated_league_id = 3;
optional .ELeagueRegion region = 4 [default = LEAGUE_REGION_UNSET];
}
message CMsgClientToGCOpenPlayerCardPackResponse {
enum Result {
SUCCESS = 1;
ERROR_INTERNAL = 2;
ERROR_FAILED_TO_FIND_PACK = 3;
ERROR_ITEM_NOT_CARD_PACK = 4;
ERROR_FAILED_CARD_CREATE = 5;
ERROR_INVALID_TEAM_ID_ATTRIBUTE = 6;
ERROR_INVALID_TEAM_ID = 7;
}
optional .CMsgClientToGCOpenPlayerCardPackResponse.Result result = 1 [default = SUCCESS];
repeated uint64 player_card_item_ids = 2;
}
message CMsgClientToGCRecyclePlayerCard {
repeated uint64 player_card_item_ids = 3;
optional uint32 event_id = 2;
}
message CMsgClientToGCRecyclePlayerCardResponse {
enum Result {
SUCCESS = 1;
ERROR_INTERNAL = 2;
ERROR_FAILED_TO_FIND_PLAYER_CARD = 3;
ERROR_ITEM_NOT_PLAYER_CARD = 4;
ERROR_FAILED_DUST_CARD_CREATE = 5;
ERROR_CARD_LOCKED = 6;
ERROR_NO_CARDS_SPECIFIED = 7;
}
optional .CMsgClientToGCRecyclePlayerCardResponse.Result result = 1 [default = SUCCESS];
optional uint32 dust_amount = 2;
}
message CMsgClientToGCCreatePlayerCardPack {
optional uint64 card_dust_item_id = 1;
optional uint32 event_id = 2;
optional bool premium_pack = 3;
}
message CMsgClientToGCCreatePlayerCardPackResponse {
enum Result {
SUCCESS = 1;
ERROR_INTERNAL = 2;
ERROR_INSUFFICIENT_DUST = 3;
ERROR_ITEM_NOT_DUST_ITEM = 4;
ERROR_FAILED_CARD_PACK_CREATE = 5;
ERROR_NO_CARD_PACK = 6;
ERROR_NOT_AVAILABLE = 7;
}
optional .CMsgClientToGCCreatePlayerCardPackResponse.Result result = 1 [default = SUCCESS];
}
message CMsgClientToGCCreateTeamPlayerCardPack {
optional uint64 card_dust_item_id = 1;
optional uint32 event_id = 2;
optional bool premium_pack = 3;
optional uint32 team_id = 4;
}
message CMsgClientToGCCreateTeamPlayerCardPackResponse {
enum Result {
SUCCESS = 1;
ERROR_INTERNAL = 2;
ERROR_INSUFFICIENT_DUST = 3;
ERROR_ITEM_NOT_DUST_ITEM = 4;
ERROR_FAILED_CARD_PACK_CREATE = 5;
ERROR_NO_CARD_PACK = 6;
ERROR_NOT_AVAILABLE = 7;
}
optional .CMsgClientToGCCreateTeamPlayerCardPackResponse.Result result = 1 [default = SUCCESS];
}
message CMsgGCToClientBattlePassRollup_International2016 {
message Questlines {
optional string name = 1;
optional uint32 onestar = 2;
optional uint32 twostar = 3;
optional uint32 threestar = 4;
optional uint32 total = 5;
}
message Wagering {
optional uint32 total_wagered = 1;
optional uint32 total_won = 2;
optional uint32 average_won = 3;
optional uint32 success_rate = 4;
optional uint32 total_tips = 5;
}
message Achievements {
optional uint32 completed = 1;
optional uint32 total = 2;
optional uint32 points = 3;
}
message BattleCup {
optional uint32 wins = 1;
optional uint32 score = 2;
}
message Predictions {
optional uint32 correct = 1;
optional uint32 total = 2;
optional uint32 points = 3;
}
message Bracket {
optional uint32 correct = 1;
optional uint32 points = 2;
}
message PlayerCard {
optional uint32 account_id = 1;
optional uint32 quality = 2;
}
message FantasyChallenge {
optional float total_score = 1;
optional float percentile = 2;
}
optional uint32 battle_pass_level = 1;
repeated .CMsgGCToClientBattlePassRollup_International2016.Questlines questlines = 2;
optional .CMsgGCToClientBattlePassRollup_International2016.Wagering wagering = 3;
optional .CMsgGCToClientBattlePassRollup_International2016.Achievements achievements = 4;
optional .CMsgGCToClientBattlePassRollup_International2016.BattleCup battle_cup = 5;
optional .CMsgGCToClientBattlePassRollup_International2016.Predictions predictions = 6;
optional .CMsgGCToClientBattlePassRollup_International2016.Bracket bracket = 7;
repeated .CMsgGCToClientBattlePassRollup_International2016.PlayerCard player_cards = 8;
optional .CMsgGCToClientBattlePassRollup_International2016.FantasyChallenge fantasy_challenge = 9;
}
message CMsgGCToClientBattlePassRollup_Fall2016 {
message Questlines {
optional string name = 1;
optional uint32 onestar = 2;
optional uint32 twostar = 3;
optional uint32 threestar = 4;
optional uint32 total = 5;
}
message Wagering {
optional uint32 total_wagered = 1;
optional uint32 total_won = 2;
optional uint32 average_won = 3;
optional uint32 success_rate = 4;
optional uint32 total_tips = 5;
}
message Achievements {
optional uint32 completed = 1;
optional uint32 total = 2;
optional uint32 points = 3;
}
message BattleCup {
optional uint32 wins = 1;
optional uint32 score = 2;
}
message Predictions {
optional uint32 correct = 1;
optional uint32 total = 2;
optional uint32 points = 3;
}
message Bracket {
optional uint32 correct = 1;
optional uint32 points = 2;
}
message PlayerCard {
optional uint32 account_id = 1;
optional uint32 quality = 2;
}
message FantasyChallenge {
optional float total_score = 1;
optional float percentile = 2;
}
optional uint32 battle_pass_level = 1;
repeated .CMsgGCToClientBattlePassRollup_Fall2016.Questlines questlines = 2;
optional .CMsgGCToClientBattlePassRollup_Fall2016.Wagering wagering = 3;
optional .CMsgGCToClientBattlePassRollup_Fall2016.Achievements achievements = 4;
optional .CMsgGCToClientBattlePassRollup_Fall2016.BattleCup battle_cup = 5;
optional .CMsgGCToClientBattlePassRollup_Fall2016.Predictions predictions = 6;
optional .CMsgGCToClientBattlePassRollup_Fall2016.Bracket bracket = 7;
repeated .CMsgGCToClientBattlePassRollup_Fall2016.PlayerCard player_cards = 8;
optional .CMsgGCToClientBattlePassRollup_Fall2016.FantasyChallenge fantasy_challenge = 9;
}
message CMsgGCToClientBattlePassRollup_Winter2017 {
message Questlines {
optional string name = 1;
optional uint32 onestar = 2;
optional uint32 twostar = 3;
optional uint32 threestar = 4;
optional uint32 total = 5;
}
message Wagering {
optional uint32 total_wagered = 1;
optional uint32 total_won = 2;
optional uint32 average_won = 3;
optional uint32 success_rate = 4;
optional uint32 total_tips = 5;
}
message Achievements {
optional uint32 completed = 1;
optional uint32 total = 2;
optional uint32 points = 3;
}
message BattleCup {
optional uint32 wins = 1;
optional uint32 score = 2;
}
message Predictions {
optional uint32 correct = 1;
optional uint32 total = 2;
optional uint32 points = 3;
}
message Bracket {
optional uint32 correct = 1;
optional uint32 points = 2;
}
message PlayerCard {
optional uint32 account_id = 1;
optional uint32 quality = 2;
}
message FantasyChallenge {
optional float total_score = 1;
optional float percentile = 2;
}
optional uint32 battle_pass_level = 1;
repeated .CMsgGCToClientBattlePassRollup_Winter2017.Questlines questlines = 2;
optional .CMsgGCToClientBattlePassRollup_Winter2017.Wagering wagering = 3;
optional .CMsgGCToClientBattlePassRollup_Winter2017.Achievements achievements = 4;
optional .CMsgGCToClientBattlePassRollup_Winter2017.BattleCup battle_cup = 5;
optional .CMsgGCToClientBattlePassRollup_Winter2017.Predictions predictions = 6;
optional .CMsgGCToClientBattlePassRollup_Winter2017.Bracket bracket = 7;
repeated .CMsgGCToClientBattlePassRollup_Winter2017.PlayerCard player_cards = 8;
optional .CMsgGCToClientBattlePassRollup_Winter2017.FantasyChallenge fantasy_challenge = 9;
}
message CMsgGCToClientBattlePassRollup_TI7 {
message Questlines {
optional string name = 1;
optional uint32 onestar = 2;
optional uint32 twostar = 3;
optional uint32 threestar = 4;
optional uint32 total = 5;
}
message Wagering {
optional uint32 total_wagered = 1;
optional uint32 total_won = 2;
optional uint32 average_won = 3;
optional uint32 success_rate = 4;
optional uint32 total_tips = 5;
}
message Achievements {
optional uint32 completed = 1;
optional uint32 total = 2;
optional uint32 points = 3;
}
message BattleCup {
optional uint32 wins = 1;
optional uint32 score = 2;
}
message Predictions {
optional uint32 correct = 1;
optional uint32 total = 2;
optional uint32 points = 3;
}
message Bracket {
optional uint32 correct = 1;
optional uint32 points = 2;
}
message PlayerCard {
optional uint32 account_id = 1;
optional uint32 quality = 2;
}
message FantasyChallenge {
optional float total_score = 1;
optional float percentile = 2;
}
optional uint32 battle_pass_level = 1;
repeated .CMsgGCToClientBattlePassRollup_TI7.Questlines questlines = 2;
optional .CMsgGCToClientBattlePassRollup_TI7.Wagering wagering = 3;
optional .CMsgGCToClientBattlePassRollup_TI7.Achievements achievements = 4;
optional .CMsgGCToClientBattlePassRollup_TI7.BattleCup battle_cup = 5;
optional .CMsgGCToClientBattlePassRollup_TI7.Predictions predictions = 6;
optional .CMsgGCToClientBattlePassRollup_TI7.Bracket bracket = 7;
repeated .CMsgGCToClientBattlePassRollup_TI7.PlayerCard player_cards = 8;
optional .CMsgGCToClientBattlePassRollup_TI7.FantasyChallenge fantasy_challenge = 9;
}
message CMsgGCToClientBattlePassRollup_TI8 {
message CavernCrawl {
optional uint32 rooms_cleared = 1;
optional bool carry_completed = 2;
optional bool support_completed = 3;
optional bool utility_completed = 4;
}
message Wagering {
optional uint32 total_wagered = 1;
optional uint32 total_won = 2;
optional uint32 average_won = 3;
optional uint32 success_rate = 4;
optional uint32 total_tips = 5;
}
message Achievements {
optional uint32 completed = 1;
optional uint32 total = 2;
optional uint32 points = 3;
}
message Predictions {
optional uint32 correct = 1;
optional uint32 total = 2;
optional uint32 points = 3;
}
message Bracket {
optional uint32 correct = 1;
optional uint32 points = 2;
}
message PlayerCard {
optional uint32 account_id = 1;
optional uint32 quality = 2;
}
message FantasyChallenge {
optional float total_score = 1;
optional float percentile = 2;
}
optional uint32 battle_pass_level = 1;
optional .CMsgGCToClientBattlePassRollup_TI8.CavernCrawl cavern_crawl = 2;
optional .CMsgGCToClientBattlePassRollup_TI8.Wagering wagering = 3;
optional .CMsgGCToClientBattlePassRollup_TI8.Achievements achievements = 4;
optional .CMsgGCToClientBattlePassRollup_TI8.Predictions predictions = 6;
optional .CMsgGCToClientBattlePassRollup_TI8.Bracket bracket = 7;
repeated .CMsgGCToClientBattlePassRollup_TI8.PlayerCard player_cards = 8;
optional .CMsgGCToClientBattlePassRollup_TI8.FantasyChallenge fantasy_challenge = 9;
}
message CMsgGCToClientBattlePassRollup_TI9 {
optional uint32 battle_pass_level = 1;
}
message CMsgGCToClientBattlePassRollup_TI10 {
optional uint32 battle_pass_level = 1;
}
message CMsgGCToClientBattlePassRollupRequest {
optional uint32 event_id = 1;
optional uint32 account_id = 2;
}
message CMsgGCToClientBattlePassRollupResponse {
optional .CMsgGCToClientBattlePassRollup_International2016 event_ti6 = 1;
optional .CMsgGCToClientBattlePassRollup_Fall2016 event_fall2016 = 2;
optional .CMsgGCToClientBattlePassRollup_Winter2017 event_winter2017 = 3;
optional .CMsgGCToClientBattlePassRollup_TI7 event_ti7 = 4;
optional .CMsgGCToClientBattlePassRollup_TI8 event_ti8 = 5;
optional .CMsgGCToClientBattlePassRollup_TI9 event_ti9 = 6;
optional .CMsgGCToClientBattlePassRollup_TI10 event_ti10 = 7;
}
message CMsgGCToClientBattlePassRollupListRequest {
optional uint32 account_id = 1;
}
message CMsgGCToClientBattlePassRollupListResponse {
message EventInfo {
optional uint32 event_id = 1;
optional uint32 level = 2;
}
repeated .CMsgGCToClientBattlePassRollupListResponse.EventInfo event_info = 1;
}
message CMsgClientToGCTransferSeasonalMMRRequest {
optional bool is_party = 1;
}
message CMsgClientToGCTransferSeasonalMMRResponse {
optional bool success = 1;
}
message CMsgGCToClientPlaytestStatus {
optional bool active = 1;
}
message CMsgClientToGCJoinPlaytest {
optional uint32 client_version = 1;
}
message CMsgClientToGCJoinPlaytestResponse {
optional string error = 1;
}
message CMsgDOTASetFavoriteTeam {
optional uint32 team_id = 1;
optional uint32 event_id = 2;
}
message CMsgDOTATriviaCurrentQuestions {
repeated .CMsgDOTATriviaQuestion questions = 1;
optional bool trivia_enabled = 2;
}
message CMsgDOTASubmitTriviaQuestionAnswer {
optional uint32 question_id = 1;
optional uint32 answer_index = 2;
}
message CMsgDOTASubmitTriviaQuestionAnswerResponse {
optional .EDOTATriviaAnswerResult result = 1 [default = k_EDOTATriviaAnswerResult_Success];
}
message CMsgDOTAStartTriviaSession {
}
message CMsgDOTAStartTriviaSessionResponse {
optional bool trivia_enabled = 1;
optional uint32 current_timestamp = 2;
}
message CMsgDOTAAnchorPhoneNumberRequest {
}
message CMsgDOTAAnchorPhoneNumberResponse {
enum Result {
SUCCESS = 0;
ERROR_UNKNOWN = 1;
ERROR_NO_STEAM_PHONE = 2;
ERROR_ALREADY_IN_USE = 3;
ERROR_COOLDOWN_ACTIVE = 4;
ERROR_GAC_ISSUE = 5;
}
optional .CMsgDOTAAnchorPhoneNumberResponse.Result result = 1 [default = SUCCESS];
}
message CMsgDOTAUnanchorPhoneNumberRequest {
}
message CMsgDOTAUnanchorPhoneNumberResponse {
enum Result {
SUCCESS = 0;
ERROR_UNKNOWN = 1;
}
optional .CMsgDOTAUnanchorPhoneNumberResponse.Result result = 1 [default = SUCCESS];
}
message CMsgGCToClientCommendNotification {
optional uint32 commender_account_id = 1;
optional string commender_name = 2;
optional uint32 flags = 3;
optional int32 commender_hero_id = 4;
}
message CMsgDOTAClientToGCQuickStatsRequest {
optional uint32 player_account_id = 1;
optional int32 hero_id = 2;
optional int32 item_id = 3 [default = -1];
optional uint32 league_id = 4;
}
message CMsgDOTAClientToGCQuickStatsResponse {
message SimpleStats {
optional float win_percent = 1;
optional float pick_percent = 2;
optional uint32 win_count = 3;
optional uint32 pick_count = 4;
}
optional .CMsgDOTAClientToGCQuickStatsRequest original_request = 1;
optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats hero_stats = 2;
optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats item_stats = 3;
optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats item_hero_stats = 4;
optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats item_player_stats = 5;
optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats hero_player_stats = 6;
optional .CMsgDOTAClientToGCQuickStatsResponse.SimpleStats full_set_stats = 7;
}
message CMsgDOTASelectionPriorityChoiceRequest {
optional .DOTASelectionPriorityChoice choice = 1 [default = k_DOTASelectionPriorityChoice_Invalid];
}
message CMsgDOTASelectionPriorityChoiceResponse {
enum Result {
SUCCESS = 0;
ERROR_UNKNOWN = 1;
}
optional .CMsgDOTASelectionPriorityChoiceResponse.Result result = 1 [default = SUCCESS];
}
message CMsgDOTAGameAutographReward {
optional string badge_id = 1;
}
message CMsgDOTAGameAutographRewardResponse {
enum Result {
SUCCESS = 0;
ERROR_UNKNOWN = 1;
}
optional .CMsgDOTAGameAutographRewardResponse.Result result = 1 [default = SUCCESS];
}
message CMsgDOTADestroyLobbyRequest {
}
message CMsgDOTADestroyLobbyResponse {
enum Result {
SUCCESS = 0;
ERROR_UNKNOWN = 1;
}
optional .CMsgDOTADestroyLobbyResponse.Result result = 1 [default = SUCCESS];
}
message CMsgDOTAGetRecentPlayTimeFriendsRequest {
}
message CMsgDOTAGetRecentPlayTimeFriendsResponse {
repeated fixed32 account_ids = 1;
}
message CMsgPurchaseItemWithEventPoints {
optional uint32 item_def = 1;
optional uint32 quantity = 2;
optional .EEvent event_id = 3 [default = EVENT_ID_NONE];
optional bool use_premium_points = 4;
}
message CMsgPurchaseItemWithEventPointsResponse {
enum Result {
SUCCESS = 0;
UNKNOWN_EVENT = 1;
UNKNOWN_ITEM = 2;
BAD_QUANTITY = 3;
NOT_PURCHASEABLE = 4;
SDO_LOAD_FAILED = 5;
NOT_ENOUGH_POINTS = 6;
SQL_ERROR = 7;
FAILED_TO_SEND = 8;
SERVER_ERROR = 9;
NOT_ALLOWED = 10;
CANCELLED = 11;
CLIENT_ERROR = 12;
SUBSCRIPTION_REQUIRED = 13;
}
optional .CMsgPurchaseItemWithEventPointsResponse.Result result = 1 [default = SUCCESS];
}
message CMsgPurchaseHeroRandomRelic {
optional int32 hero_id = 1;
optional .EHeroRelicRarity relic_rarity = 2 [default = HERO_RELIC_RARITY_INVALID];
}
message CMsgPurchaseHeroRandomRelicResponse {
optional .EPurchaseHeroRelicResult result = 1 [default = k_EPurchaseHeroRelicResult_Success];
optional uint32 kill_eater_type = 2;
}
message CMsgClientToGCRequestPlusWeeklyChallengeResult {
optional .EEvent event_id = 1 [default = EVENT_ID_NONE];
optional uint32 week = 2;
}
message CMsgClientToGCRequestPlusWeeklyChallengeResultResponse {
}
message CMsgProfileRequest {
optional uint32 account_id = 1;
}
message CMsgProfileResponse {
message FeaturedHero {
optional int32 hero_id = 1;
repeated .CSOEconItem equipped_econ_items = 2;
optional bool manually_set = 3;
optional uint32 plus_hero_xp = 4;
optional .CSOEconItem plus_hero_relics_item = 5;
}
message MatchInfo {
optional uint64 match_id = 1;
optional uint32 match_timestamp = 2;
optional sint32 performance_rating = 3;
optional int32 hero_id = 4;
optional bool won_match = 5;
}
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTooBusy = 2;
k_eDisabled = 3;
}
optional .CSOEconItem background_item = 1;
repeated .CMsgProfileResponse.FeaturedHero featured_heroes = 2;
repeated .CMsgProfileResponse.MatchInfo recent_matches = 3;
repeated .CMsgSuccessfulHero successful_heroes = 4;
optional .CMsgRecentMatchInfo recent_match_details = 5;
optional .CMsgProfileResponse.EResponse result = 6 [default = k_eInternalError];
optional .CMsgStickerbookPage stickerbook_page = 7;
}
message CMsgProfileUpdate {
optional uint64 background_item_id = 1;
repeated int32 featured_hero_ids = 2;
}
message CMsgProfileUpdateResponse {
enum Result {
SUCCESS = 0;
FAILURE = 1;
FAILURE_BAD_HERO1 = 2;
FAILURE_BAD_HERO2 = 3;
FAILURE_BAD_HERO3 = 4;
}
optional .CMsgProfileUpdateResponse.Result result = 1 [default = SUCCESS];
}
message CMsgTalentWinRates {
optional uint32 last_run = 1;
optional int32 ability_id = 2 [default = -1];
optional uint32 game_count = 3;
optional uint32 win_count = 4;
}
message CMsgGlobalHeroAverages {
optional uint32 last_run = 1;
optional uint32 avg_gold_per_min = 3;
optional uint32 avg_xp_per_min = 4;
optional uint32 avg_kills = 5;
optional uint32 avg_deaths = 6;
optional uint32 avg_assists = 7;
optional uint32 avg_last_hits = 8;
optional uint32 avg_denies = 9;
optional uint32 avg_net_worth = 10;
}
message CMsgHeroGlobalDataRequest {
optional int32 hero_id = 1;
}
message CMsgHeroGlobalDataResponse {
message GraphData {
optional uint32 day = 1;
optional float win_percent = 2;
optional float pick_percent = 3;
optional float ban_percent = 4;
}
message WeekData {
optional uint32 week = 1;
optional float win_percent = 2;
optional float pick_percent = 3;
optional float ban_percent = 4;
}
message HeroDataPerRankChunk {
optional uint32 rank_chunk = 1;
repeated .CMsgTalentWinRates talent_win_rates = 2;
optional .CMsgGlobalHeroAverages hero_averages = 3;
repeated .CMsgHeroGlobalDataResponse.GraphData graph_data = 4;
repeated .CMsgHeroGlobalDataResponse.WeekData week_data = 5;
}
optional int32 hero_id = 1;
repeated .CMsgHeroGlobalDataResponse.HeroDataPerRankChunk hero_data_per_chunk = 2;
}
message CMsgHeroGlobalDataAllHeroes {
repeated .CMsgHeroGlobalDataResponse heroes = 1;
}
message CMsgHeroGlobalDataHeroesAlliesAndEnemies {
message HeroData {
optional int32 hero_id = 1;
optional uint32 win_rate = 2;
optional int32 first_other_hero_id = 3;
repeated uint32 ally_win_rate = 5;
repeated uint32 enemy_win_rate = 6;
}
message RankedHeroData {
optional uint32 rank = 1;
repeated .CMsgHeroGlobalDataHeroesAlliesAndEnemies.HeroData hero_data = 2;
}
repeated .CMsgHeroGlobalDataHeroesAlliesAndEnemies.RankedHeroData ranked_hero_data = 1;
}
message CMsgPrivateMetadataKeyRequest {
optional uint64 match_id = 1;
}
message CMsgPrivateMetadataKeyResponse {
optional uint32 private_key = 1;
}
message CMsgActivatePlusFreeTrialResponse {
enum Result {
SUCCESS = 0;
ERROR_GENERIC = 1;
ERROR_ALREADY_IN_FREE_TRIAL = 2;
ERROR_ALREADY_USED_FREE_TRIAL = 3;
ERROR_OFFER_NOT_VALID = 4;
}
optional .CMsgActivatePlusFreeTrialResponse.Result result = 1 [default = SUCCESS];
}
message CMsgGCToClientCavernCrawlMapPathCompleted {
message CompletedPathInfo {
optional uint32 path_id_completed = 1 [default = 255];
optional bool received_ultra_rare_reward = 2;
optional bool half_completed = 3;
}
optional uint32 event_id = 1;
optional int32 hero_id_completed = 2;
repeated .CMsgGCToClientCavernCrawlMapPathCompleted.CompletedPathInfo completed_paths = 3;
optional uint32 map_variant = 4 [default = 255];
}
message CMsgGCToClientCavernCrawlMapUpdated {
optional uint32 event_id = 1;
}
message CMsgClientToGCCavernCrawlClaimRoom {
optional uint32 event_id = 1;
optional uint32 room_id = 2 [default = 255];
optional uint32 map_variant = 3 [default = 255];
}
message CMsgClientToGCCavernCrawlClaimRoomResponse {
enum Result {
SUCCESS = 0;
ERROR_UNKNOWN = 1;
RECEIVED_ULTRA_RARE_REWARD = 2;
}
optional .CMsgClientToGCCavernCrawlClaimRoomResponse.Result result = 1 [default = SUCCESS];
}
message CMsgClientToGCCavernCrawlUseItemOnRoom {
optional uint32 event_id = 1;
optional uint32 room_id = 2 [default = 255];
optional uint32 item_type = 3;
optional uint32 map_variant = 4 [default = 255];
}
message CMsgClientToGCCavernCrawlUseItemOnRoomResponse {
enum Result {
SUCCESS = 0;
ERROR_UNKNOWN = 1;
RECEIVED_ULTRA_RARE_REWARD = 2;
}
optional .CMsgClientToGCCavernCrawlUseItemOnRoomResponse.Result result = 1 [default = SUCCESS];
}
message CMsgClientToGCCavernCrawlUseItemOnPath {
optional uint32 event_id = 1;
optional uint32 path_id = 2 [default = 255];
optional uint32 item_type = 3;
optional uint32 map_variant = 4 [default = 255];
}
message CMsgClientToGCCavernCrawlUseItemOnPathResponse {
enum Result {
SUCCESS = 0;
ERROR_UNKNOWN = 1;
RECEIVED_ULTRA_RARE_REWARD = 2;
}
optional .CMsgClientToGCCavernCrawlUseItemOnPathResponse.Result result = 1 [default = SUCCESS];
}
message CMsgClientToGCCavernCrawlRequestMapState {
optional uint32 event_id = 1;
}
message CMsgClientToGCCavernCrawlRequestMapStateResponse {
message SwappedChallenge {
optional uint32 path_id_1 = 1 [default = 255];
optional uint32 path_id_2 = 2 [default = 255];
}
message InventoryItem {
optional uint32 item_type = 1;
optional uint32 count = 2;
}
message TreasureMap {
optional uint32 map_room_id = 1 [default = 255];
optional uint32 revealed_room_id = 2 [default = 255];
}
message MapVariant {
optional uint32 map_variant = 1 [default = 255];
optional fixed64 claimed_rooms_1 = 2;
optional fixed64 claimed_rooms_2 = 3;
optional fixed64 revealed_rooms_1 = 4;
optional fixed64 revealed_rooms_2 = 5;
optional fixed64 completed_paths_1 = 6;
optional fixed64 completed_paths_2 = 7;
optional fixed64 completed_paths_3 = 8;
optional fixed64 completed_paths_4 = 9;
optional fixed64 half_completed_paths_1 = 10;
optional fixed64 half_completed_paths_2 = 11;
optional fixed64 half_completed_paths_3 = 12;
optional fixed64 half_completed_paths_4 = 13;
repeated .CMsgClientToGCCavernCrawlRequestMapStateResponse.SwappedChallenge swapped_challenge = 14;
optional uint32 ultra_rare_reward_room_number = 15 [default = 255];
repeated .CMsgClientToGCCavernCrawlRequestMapStateResponse.TreasureMap treasure_map = 16;
}
enum Result {
SUCCESS = 0;
ERROR_UNKNOWN = 1;
EVENT_NOT_OWNED = 2;
}
optional .CMsgClientToGCCavernCrawlRequestMapStateResponse.Result result = 1 [default = SUCCESS];
optional uint32 available_map_variants_mask = 2;
repeated .CMsgClientToGCCavernCrawlRequestMapStateResponse.InventoryItem inventory_item = 3;
repeated .CMsgClientToGCCavernCrawlRequestMapStateResponse.MapVariant map_variants = 4;
}
message CMsgClientToGCCavernCrawlGetClaimedRoomCount {
optional uint32 event_id = 1;
}
message CMsgClientToGCCavernCrawlGetClaimedRoomCountResponse {
message MapVariant {
optional uint32 map_variant = 1 [default = 255];
optional uint32 count = 2;
}
enum Result {
SUCCESS = 0;
ERROR_UNKNOWN = 1;
EVENT_NOT_OWNED = 2;
}
optional .CMsgClientToGCCavernCrawlGetClaimedRoomCountResponse.Result result = 1 [default = SUCCESS];
repeated .CMsgClientToGCCavernCrawlGetClaimedRoomCountResponse.MapVariant map_variants = 2;
optional uint32 available_map_variants_mask = 3;
}
message CMsgDOTAMutationList {
message Mutation {
optional uint32 id = 1;
optional string name = 2;
optional string description = 3;
}
repeated .CMsgDOTAMutationList.Mutation mutations = 1;
}
message CMsgEventTipsSummaryRequest {
optional .EEvent event_id = 1 [default = EVENT_ID_NONE];
optional uint32 account_id = 2;
}
message CMsgEventTipsSummaryResponse {
message Tipper {
optional uint32 tipper_account_id = 1;
optional uint32 tip_count = 2 [default = 1];
}
optional bool result = 1;
repeated .CMsgEventTipsSummaryResponse.Tipper tips_received = 2;
}
message CMsgSocialFeedRequest {
optional uint32 account_id = 1;
optional bool self_only = 2;
}
message CMsgSocialFeedResponse {
message FeedEvent {
optional uint64 feed_event_id = 1;
optional uint32 account_id = 2;
optional uint32 timestamp = 3;
optional uint32 comment_count = 4;
optional uint32 event_type = 5;
optional uint32 event_sub_type = 6;
optional uint64 param_big_int_1 = 7;
optional uint32 param_int_1 = 8;
optional uint32 param_int_2 = 9;
optional uint32 param_int_3 = 10;
optional string param_string = 11;
}
enum Result {
SUCCESS = 0;
FAILED_TO_LOAD_FRIENDS = 1;
FAILED_TO_LOAD_FEED_DATA = 2;
FAILED_TO_LOAD_FEED_ENTRY = 3;
FAILED_TO_LOAD_COMMENTS = 4;
FAILED_TOO_MANY_REQUESTS = 5;
}
optional .CMsgSocialFeedResponse.Result result = 1 [default = SUCCESS];
repeated .CMsgSocialFeedResponse.FeedEvent feed_events = 2;
}
message CMsgSocialFeedCommentsRequest {
optional uint64 feed_event_id = 1;
}
message CMsgSocialFeedCommentsResponse {
message FeedComment {
optional uint32 commenter_account_id = 1;
optional uint32 timestamp = 2;
optional string comment_text = 3;
}
enum Result {
SUCCESS = 0;
FAILED_TOO_MANY_REQUESTS = 1;
FAILED_TO_LOAD_COMMENTS = 2;
}
optional .CMsgSocialFeedCommentsResponse.Result result = 1 [default = SUCCESS];
repeated .CMsgSocialFeedCommentsResponse.FeedComment feed_comments = 3;
}
message CMsgClientToGCPlayerCardSpecificPurchaseRequest {
optional uint32 player_account_id = 1;
optional uint32 event_id = 2;
optional uint64 card_dust_item_id = 3;
}
message CMsgClientToGCPlayerCardSpecificPurchaseResponse {
enum Result {
SUCCESS = 1;
ERROR_INTERNAL = 2;
ERROR_INSUFFICIENT_DUST = 3;
ERROR_ITEM_NOT_DUST_ITEM = 4;
ERROR_FAILED_CARD_PACK_CREATE = 5;
ERROR_NOT_AVAILABLE = 6;
}
optional .CMsgClientToGCPlayerCardSpecificPurchaseResponse.Result result = 1 [default = SUCCESS];
optional uint64 item_id = 2;
}
message CMsgClientToGCRequestContestVotes {
optional uint32 contest_id = 1;
}
message CMsgClientToGCRequestContestVotesResponse {
message ItemVote {
optional uint64 contest_item_id = 1;
optional int32 vote = 2;
}
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTooBusy = 2;
k_eDisabled = 3;
}
optional .CMsgClientToGCRequestContestVotesResponse.EResponse result = 1 [default = k_eInternalError];
repeated .CMsgClientToGCRequestContestVotesResponse.ItemVote votes = 2;
}
message CMsgClientToGCRecordContestVote {
optional uint32 contest_id = 1;
optional uint64 contest_item_id = 2;
optional int32 vote = 3;
}
message CMsgGCToClientRecordContestVoteResponse {
enum EResult {
SUCCESS = 0;
FAILED_EVENT_NOT_OWNED = 1;
FAILED_SQL_INSERT_FAILED = 2;
FAILED_INVALID_CONTEST = 3;
FAILED_CONTEST_NOT_ACTIVE = 4;
FAILED_TIMEOUT = 5;
}
optional .CMsgGCToClientRecordContestVoteResponse.EResult eresult = 1 [default = SUCCESS];
}
message CMsgDevGrantEventPoints {
optional .EEvent event_id = 1 [default = EVENT_ID_NONE];
optional uint32 event_points = 2;
optional uint32 premium_points = 3;
}
message CMsgDevGrantEventPointsResponse {
optional .EDevEventRequestResult result = 1 [default = k_EDevEventRequestResult_Success];
}
message CMsgDevGrantEventAction {
optional .EEvent event_id = 1 [default = EVENT_ID_NONE];
optional uint32 action_id = 2;
optional uint32 action_score = 3;
}
message CMsgDevGrantEventActionResponse {
optional .EDevEventRequestResult result = 1 [default = k_EDevEventRequestResult_Success];
}
message CMsgDevDeleteEventActions {
optional .EEvent event_id = 1 [default = EVENT_ID_NONE];
optional uint32 start_action_id = 2;
optional uint32 end_action_id = 3;
optional bool remove_audit = 4;
}
message CMsgDevDeleteEventActionsResponse {
optional .EDevEventRequestResult result = 1 [default = k_EDevEventRequestResult_Success];
}
message CMsgDevResetEventState {
optional .EEvent event_id = 1 [default = EVENT_ID_NONE];
optional bool remove_audit = 2;
}
message CMsgDevResetEventStateResponse {
optional .EDevEventRequestResult result = 1 [default = k_EDevEventRequestResult_Success];
}
message CMsgConsumeEventSupportGrantItem {
optional uint64 item_id = 1;
}
message CMsgConsumeEventSupportGrantItemResponse {
optional .ESupportEventRequestResult result = 1 [default = k_ESupportEventRequestResult_Success];
}
message CMsgClientToGCGetFilteredPlayers {
}
message CMsgGCToClientGetFilteredPlayersResponse {
message CFilterEntry {
optional fixed32 account_id = 1;
optional fixed32 time_added = 2;
optional fixed32 time_expires = 3;
optional string note = 4;
}
enum Result {
SUCCESS = 0;
FAILURE = 1;
}
optional .CMsgGCToClientGetFilteredPlayersResponse.Result result = 1 [default = SUCCESS];
repeated .CMsgGCToClientGetFilteredPlayersResponse.CFilterEntry filtered_players = 2;
optional int32 base_slots = 3;
optional int32 additional_slots = 4;
optional int32 next_slot_cost = 5;
}
message CMsgClientToGCRemoveFilteredPlayer {
optional fixed32 account_id_to_remove = 1;
}
message CMsgGCToClientRemoveFilteredPlayerResponse {
enum Result {
SUCCESS = 0;
FAILURE = 1;
}
optional .CMsgGCToClientRemoveFilteredPlayerResponse.Result result = 1 [default = SUCCESS];
}
message CMsgClientToGCPurchaseFilteredPlayerSlot {
optional int32 additional_slots_current = 1;
}
message CMsgGCToClientPurchaseFilteredPlayerSlotResponse {
enum Result {
SUCCESS = 0;
FAILURE = 1;
CURRENT_SLOTCOUNT_DOESNT_MATCH = 2;
CANT_AFFORD = 3;
}
optional .CMsgGCToClientPurchaseFilteredPlayerSlotResponse.Result result = 1 [default = SUCCESS];
optional int32 additional_slots = 2;
optional int32 next_slot_cost = 3;
}
message CMsgClientToGCUpdateFilteredPlayerNote {
optional fixed32 target_account_id = 1;
optional string new_note = 2;
}
message CMsgGCToClientUpdateFilteredPlayerNoteResponse {
enum Result {
SUCCESS = 0;
FAILURE = 1;
NOT_FOUND = 2;
}
optional .CMsgGCToClientUpdateFilteredPlayerNoteResponse.Result result = 1 [default = SUCCESS];
}
message CMsgPartySearchPlayer {
optional fixed32 account_id = 1;
optional fixed64 match_id = 2;
optional fixed32 creation_time = 3;
}
message CMsgGCToClientPlayerBeaconState {
repeated int32 num_active_beacons = 1;
}
message CMsgGCToClientPartyBeaconUpdate {
optional bool beacon_added = 1;
optional int32 beacon_type = 2;
optional fixed32 account_id = 3;
}
message CMsgClientToGCUpdatePartyBeacon {
enum Action {
ON = 0;
OFF = 1;
}
optional .CMsgClientToGCUpdatePartyBeacon.Action action = 1 [default = ON];
}
message CMsgClientToGCRequestActiveBeaconParties {
}
message CMsgGCToClientRequestActiveBeaconPartiesResponse {
enum EResponse {
SUCCESS = 0;
FAILURE = 1;
BUSY = 2;
}
optional .CMsgGCToClientRequestActiveBeaconPartiesResponse.EResponse response = 1 [default = SUCCESS];
repeated .CPartySearchClientParty active_parties = 2;
}
message CMsgClientToGCJoinPartyFromBeacon {
optional fixed64 party_id = 1;
optional fixed32 account_id = 2;
optional int32 beacon_type = 3;
}
message CMsgGCToClientJoinPartyFromBeaconResponse {
enum EResponse {
SUCCESS = 0;
FAILURE = 1;
BUSY = 2;
NOT_LEADER = 3;
}
optional .CMsgGCToClientJoinPartyFromBeaconResponse.EResponse response = 1 [default = SUCCESS];
}
message CMsgClientToGCManageFavorites {
enum Action {
ADD = 0;
REMOVE = 1;
}
optional .CMsgClientToGCManageFavorites.Action action = 1 [default = ADD];
optional fixed32 account_id = 2;
optional string favorite_name = 3;
optional bool invite_response = 4;
optional bool from_friendlist = 5;
optional fixed64 lobby_id = 6;
}
message CMsgGCToClientManageFavoritesResponse {
enum EResponse {
SUCCESS = 0;
FAILURE = 1;
NO_INVITE_PRESENT = 2;
INVITE_SENT = 3;
EXPIRED = 4;
BUSY = 5;
}
optional .CMsgGCToClientManageFavoritesResponse.EResponse response = 1 [default = SUCCESS];
optional string debug_message = 2;
optional .CMsgPartySearchPlayer player = 3;
}
message CMsgClientToGCGetFavoritePlayers {
optional uint64 pagination_key = 1;
optional int32 pagination_count = 2;
}
message CMsgGCToClientGetFavoritePlayersResponse {
enum EResponse {
SUCCESS = 0;
FAILURE = 1;
}
optional .CMsgGCToClientGetFavoritePlayersResponse.EResponse response = 1 [default = SUCCESS];
repeated .CMsgPartySearchPlayer players = 2;
optional uint64 next_pagination_key = 3;
}
message CMsgGCToClientPartySearchInvite {
optional fixed32 account_id = 1;
}
message CMsgClientToGCVerifyFavoritePlayers {
repeated fixed32 account_ids = 1;
}
message CMsgGCToClientVerifyFavoritePlayersResponse {
message Result {
optional .CMsgPartySearchPlayer player = 1;
optional bool is_favorite = 2;
}
repeated .CMsgGCToClientVerifyFavoritePlayersResponse.Result results = 1;
}
message CMsgClientToGCRequestPlayerRecentAccomplishments {
optional uint32 account_id = 1;
}
message CMsgClientToGCRequestPlayerRecentAccomplishmentsResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTooBusy = 2;
k_eDisabled = 3;
}
optional .CMsgClientToGCRequestPlayerRecentAccomplishmentsResponse.EResponse result = 1 [default = k_eInternalError];
optional .CMsgPlayerRecentAccomplishments player_accomplishments = 2;
}
message CMsgClientToGCRequestPlayerHeroRecentAccomplishments {
optional uint32 account_id = 1;
optional int32 hero_id = 2;
}
message CMsgClientToGCRequestPlayerHeroRecentAccomplishmentsResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTooBusy = 2;
k_eDisabled = 3;
}
optional .CMsgClientToGCRequestPlayerHeroRecentAccomplishmentsResponse.EResponse result = 1 [default = k_eInternalError];
optional .CMsgPlayerHeroRecentAccomplishments hero_accomplishments = 2;
}
message CMsgClientToGCSubmitPlayerMatchSurvey {
optional uint64 match_id = 1;
optional sint32 rating = 3;
optional uint32 flags = 4;
}
message CMsgClientToGCSubmitPlayerMatchSurveyResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTooBusy = 2;
k_eDisabled = 3;
k_eAlreadySubmitted = 4;
k_ePlayerNotValid = 5;
}
optional .CMsgClientToGCSubmitPlayerMatchSurveyResponse.EResponse eresult = 1 [default = k_eInternalError];
optional uint32 account_id = 2;
}
message CMsgGCToClientVACReminder {
}
message CMsgClientToGCUnderDraftRequest {
optional uint32 account_id = 1;
optional uint32 event_id = 2;
}
message CMsgClientToGCUnderDraftResponse {
optional .EUnderDraftResponse result = 1 [default = k_eInternalError];
optional uint32 account_id = 2;
optional uint32 event_id = 3;
optional .CMsgUnderDraftData draft_data = 4;
}
message CMsgClientToGCUnderDraftReroll {
optional uint32 event_id = 1;
}
message CMsgClientToGCUnderDraftRerollResponse {
optional .EUnderDraftResponse result = 1 [default = k_eInternalError];
optional uint32 event_id = 2;
optional .CMsgUnderDraftData draft_data = 3;
}
message CMsgClientToGCUnderDraftBuy {
optional uint32 event_id = 1;
optional uint32 slot_id = 2;
}
message CMsgGCToClientGuildUnderDraftGoldUpdated {
optional uint32 event_id = 1;
}
message CMsgClientToGCUnderDraftBuyResponse {
optional .EUnderDraftResponse result = 1 [default = k_eInternalError];
optional uint32 event_id = 2;
optional uint32 slot_id = 3;
optional .CMsgUnderDraftData draft_data = 4;
}
message CMsgClientToGCUnderDraftRollBackBench {
optional uint32 event_id = 1;
}
message CMsgClientToGCUnderDraftRollBackBenchResponse {
optional .EUnderDraftResponse result = 1 [default = k_eInternalError];
optional uint32 event_id = 2;
optional .CMsgUnderDraftData draft_data = 3;
}
message CMsgClientToGCUnderDraftSell {
optional uint32 event_id = 1;
optional uint32 slot_id = 2;
}
message CMsgClientToGCUnderDraftSellResponse {
optional .EUnderDraftResponse result = 1 [default = k_eInternalError];
optional uint32 event_id = 2;
optional uint32 slot_id = 3;
optional .CMsgUnderDraftData draft_data = 4;
}
message CMsgClientToGCUnderDraftRedeemReward {
optional uint32 event_id = 1;
optional uint32 action_id = 2;
}
message CMsgClientToGCUnderDraftRedeemRewardResponse {
optional .EUnderDraftResponse result = 1 [default = k_eInternalError];
}
message CMsgClientToGCSubmitDraftTriviaMatchAnswer {
optional bool chose_radiant_as_winner = 1;
optional uint32 event_id = 2;
optional uint32 end_time = 3;
}
message CMsgClientToGCSubmitDraftTriviaMatchAnswerResponse {
optional .EDOTADraftTriviaAnswerResult result = 1 [default = k_EDOTADraftTriviaAnswerResult_Success];
}
message CMsgDraftTriviaVoteCount {
optional uint32 total_votes = 1;
optional uint32 radiant_votes = 2;
optional uint32 dire_votes = 3;
}
message CMsgClientToGCRequestReporterUpdates {
}
message CMsgClientToGCRequestReporterUpdatesResponse {
message ReporterUpdate {
optional uint64 match_id = 1;
optional int32 hero_id = 2;
optional uint32 report_reason = 3;
optional uint32 timestamp = 4;
}
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eTooBusy = 3;
k_eNotPermitted = 4;
k_eNotToSoon = 5;
k_eNotValid = 6;
}
optional .CMsgClientToGCRequestReporterUpdatesResponse.EResponse enum_result = 1 [default = k_eInternalError];
repeated .CMsgClientToGCRequestReporterUpdatesResponse.ReporterUpdate updates = 2;
optional int32 num_reported = 3;
optional int32 num_no_action_taken = 4;
}
message CMsgClientToGCAcknowledgeReporterUpdates {
repeated uint64 match_ids = 1;
}
message CMsgClientToGCRecalibrateMMR {
}
message CMsgClientToGCRecalibrateMMRResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eTooBusy = 3;
k_eNotPermitted = 4;
k_eNotToSoon = 5;
k_eNotValid = 6;
}
optional .CMsgClientToGCRecalibrateMMRResponse.EResponse result = 1 [default = k_eInternalError];
}
message CMsgDOTAPostGameItemAwardNotification {
optional uint32 receiver_account_id = 1;
repeated uint32 item_def_index = 2;
optional uint32 action_id = 3;
}
message CMsgClientToGCGetOWMatchDetails {
}
message CMsgClientToGCGetOWMatchDetailsResponse {
message Marker {
optional uint32 start_game_time_s = 1;
optional uint32 end_game_time_s = 2;
}
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eTooBusy = 3;
k_eNotPermitted = 4;
k_eNoCaseAvailable = 5;
}
optional .CMsgClientToGCGetOWMatchDetailsResponse.EResponse result = 1 [default = k_eInternalError];
optional uint64 overwatch_replay_id = 2;
optional uint64 decryption_key = 3;
optional uint32 cluster = 4;
optional uint32 overwatch_salt = 5;
optional uint32 target_player_slot = 6;
repeated .CMsgClientToGCGetOWMatchDetailsResponse.Marker markers = 7;
optional .EOverwatchReportReason report_reason = 8 [default = k_EOverwatchReportReason_Unknown];
optional int32 target_hero_id = 9;
optional uint32 rank_tier = 10;
optional uint32 lane_selection_flags = 11;
}
message CMsgClientToGCSubmitOWConviction {
optional uint64 overwatch_replay_id = 1;
optional uint32 target_player_slot = 2;
optional .EOverwatchConviction cheating_conviction = 3 [default = k_EOverwatchConviction_None];
optional .EOverwatchConviction griefing_conviction = 4 [default = k_EOverwatchConviction_None];
}
message CMsgClientToGCSubmitOWConvictionResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eTooBusy = 3;
k_eNotPermitted = 4;
k_eInvalidReplayID = 5;
k_eInvalidConviction = 6;
k_eInvalidPlayerSlot = 7;
}
optional .CMsgClientToGCSubmitOWConvictionResponse.EResponse result = 1 [default = k_eInternalError];
optional uint64 overwatch_replay_id = 2;
}
message CMsgClientToGCChinaSSAURLRequest {
}
message CMsgClientToGCChinaSSAURLResponse {
optional string agreement_url = 1;
}
message CMsgClientToGCChinaSSAAcceptedRequest {
}
message CMsgClientToGCChinaSSAAcceptedResponse {
optional bool agreement_accepted = 1;
}
message CMsgGCToClientOverwatchCasesAvailable {
optional fixed32 expire_time = 1;
}
message CMsgClientToGCStartWatchingOverwatch {
optional uint64 overwatch_replay_id = 1;
optional uint32 target_player_slot = 2;
}
message CMsgClientToGCStopWatchingOverwatch {
optional uint64 overwatch_replay_id = 1;
optional uint32 target_player_slot = 2;
}
message CMsgClientToGCOverwatchReplayError {
optional uint64 overwatch_replay_id = 1;
}
message CMsgClientToGCGetDPCFavorites {
}
message CMsgClientToGCGetDPCFavoritesResponse {
message Favorite {
optional .EDPCFavoriteType favorite_type = 1 [default = FAVORITE_TYPE_ALL];
optional uint32 favorite_id = 2;
}
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTooBusy = 2;
k_eDisabled = 3;
k_eTimeout = 4;
k_eInvalidRequest = 5;
}
optional .CMsgClientToGCGetDPCFavoritesResponse.EResponse result = 1 [default = k_eInternalError];
repeated .CMsgClientToGCGetDPCFavoritesResponse.Favorite favorites = 2;
}
message CMsgClientToGCSetDPCFavoriteState {
optional .EDPCFavoriteType favorite_type = 1 [default = FAVORITE_TYPE_ALL];
optional uint32 favorite_id = 2;
optional bool enabled = 3;
}
message CMsgClientToGCSetDPCFavoriteStateResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eFavoriteTypeOutOfRange = 2;
k_eLockFailed = 3;
k_eAlreadyFavorited = 4;
k_eAlreadyUnfavorited = 5;
k_eInsertRecordFailed = 6;
k_eRemoveRecordFailed = 7;
k_eTimeout = 8;
}
optional .CMsgClientToGCSetDPCFavoriteStateResponse.EResponse result = 1 [default = k_eInternalError];
}
message CMsgClientToGCSetEventActiveSeasonID {
optional uint32 event_id = 1;
optional uint32 active_season_id = 2;
}
message CMsgClientToGCSetEventActiveSeasonIDResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eDisabled = 2;
k_eTooBusy = 3;
k_eNotAllowed = 4;
k_eTimeout = 5;
k_eInternalSuccessNoChange = 6;
}
optional .CMsgClientToGCSetEventActiveSeasonIDResponse.EResponse result = 1 [default = k_eInternalError];
}
message CMsgClientToGCPurchaseLabyrinthBlessings {
optional .EEvent event_id = 1 [default = EVENT_ID_NONE];
repeated int32 blessing_ids = 2;
optional bool debug = 3;
optional bool debug_remove = 4;
}
message CMsgClientToGCPurchaseLabyrinthBlessingsResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eNoSuchBlessing = 2;
k_eNotEnoughShards = 3;
k_eNoPath = 4;
k_eTimeout = 5;
}
optional .CMsgClientToGCPurchaseLabyrinthBlessingsResponse.EResponse result = 1 [default = k_eInternalError];
}
message CMsgClientToGCGetStickerbookRequest {
optional uint32 account_id = 1;
}
message CMsgClientToGCGetStickerbookResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eNotAllowed = 3;
k_eTooBusy = 4;
}
optional .CMsgClientToGCGetStickerbookResponse.EResponse response = 1 [default = k_eInternalError];
optional .CMsgStickerbook stickerbook = 2;
}
message CMsgClientToGCCreateStickerbookPageRequest {
optional uint32 team_id = 1;
optional .EEvent event_id = 2 [default = EVENT_ID_NONE];
optional .EStickerbookPageType page_type = 3 [default = STICKER_PAGE_GENERIC];
}
message CMsgClientToGCCreateStickerbookPageResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eTooManyPages = 3;
k_eTooBusy = 4;
}
optional .CMsgClientToGCCreateStickerbookPageResponse.EResponse response = 1 [default = k_eInternalError];
optional uint32 page_number = 2;
}
message CMsgClientToGCDeleteStickerbookPageRequest {
optional uint32 page_num = 1;
optional uint32 sticker_count = 2;
optional uint32 sticker_max = 3;
}
message CMsgClientToGCDeleteStickerbookPageResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eInvalidStickerCount = 3;
k_eTooBusy = 4;
k_eInvalidStickerMax = 5;
k_eInvalidPage = 6;
}
optional .CMsgClientToGCDeleteStickerbookPageResponse.EResponse response = 1 [default = k_eInternalError];
}
message CMsgClientToGCPlaceStickersRequest {
message StickerItem {
optional uint32 page_num = 2;
optional .CMsgStickerbookSticker sticker = 3;
}
repeated .CMsgClientToGCPlaceStickersRequest.StickerItem sticker_items = 1;
}
message CMsgClientToGCPlaceStickersResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eMissingItem = 3;
k_eTooBusy = 4;
k_eDuplicateItem = 5;
k_eInvalidPage = 6;
k_ePageTypeMismatch = 7;
k_eTooManyStickers = 8;
}
optional .CMsgClientToGCPlaceStickersResponse.EResponse response = 1 [default = k_eInternalError];
}
message CMsgClientToGCPlaceCollectionStickersRequest {
message Slot {
optional uint32 page_num = 1;
optional uint32 slot = 2;
optional uint64 new_item_id = 3;
optional uint32 old_item_def_id = 4;
optional uint32 old_quality = 5;
}
repeated .CMsgClientToGCPlaceCollectionStickersRequest.Slot slots = 1;
}
message CMsgClientToGCPlaceCollectionStickersResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eMissingItem = 3;
k_eTooBusy = 4;
k_eDuplicateItem = 5;
k_eInvalidPage = 6;
k_ePageTypeMismatch = 7;
k_eOldItemMismatch = 8;
k_eInvalidSlot = 9;
k_eSlotTypeMismatch = 10;
}
optional .CMsgClientToGCPlaceCollectionStickersResponse.EResponse response = 1 [default = k_eInternalError];
}
message CMsgClientToGCOrderStickerbookTeamPageRequest {
optional .CMsgStickerbookTeamPageOrderSequence page_order_sequence = 1;
}
message CMsgClientToGCOrderStickerbookTeamPageResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eTooManyPages = 3;
k_eTooBusy = 4;
k_eInvalidPage = 5;
}
optional .CMsgClientToGCOrderStickerbookTeamPageResponse.EResponse response = 1 [default = k_eInternalError];
}
message CMsgClientToGCSetHeroSticker {
optional int32 hero_id = 1;
optional uint64 new_item_id = 2;
optional uint64 old_item_id = 3;
}
message CMsgClientToGCSetHeroStickerResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eMissingItem = 3;
k_eTooBusy = 4;
k_eOldItemMismatch = 5;
k_eInvalidHero = 6;
}
optional .CMsgClientToGCSetHeroStickerResponse.EResponse response = 1 [default = k_eInternalError];
}
message CMsgClientToGCGetHeroStickers {
}
message CMsgClientToGCGetHeroStickersResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eTooBusy = 4;
}
optional .CMsgClientToGCGetHeroStickersResponse.EResponse response = 1 [default = k_eInternalError];
optional .CMsgStickerHeroes sticker_heroes = 2;
}
message CMsgClientToGCSetFavoritePage {
optional uint32 page_num = 1;
optional bool clear = 2;
}
message CMsgClientToGCSetFavoritePageResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eTooBusy = 4;
k_eInvalidPage = 5;
}
optional .CMsgClientToGCSetFavoritePageResponse.EResponse response = 1 [default = k_eInternalError];
}
message CMsgClientToGCClaimSwag {
optional .EEvent event_id = 1 [default = EVENT_ID_NONE];
optional uint32 action_id = 2;
optional uint32 data = 3;
}
message CMsgClientToGCClaimSwagResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eTooBusy = 4;
k_eAlreadyClaimed = 5;
k_eDisabled = 6;
k_eInvalidRequest = 7;
k_eUserNotEligible = 8;
k_eStorageError = 9;
k_eRewardDisabled = 10;
}
optional .CMsgClientToGCClaimSwagResponse.EResponse response = 1 [default = k_eInternalError];
}
message CMsgClientToGCCollectorsCacheAvailableDataRequest {
optional uint32 contest_id = 1;
}
message CMsgGCToClientCollectorsCacheAvailableDataResponse {
message Vote {
enum EVoteType {
k_eUp = 0;
k_eDown = 1;
}
optional uint32 item_def = 1;
optional .CMsgGCToClientCollectorsCacheAvailableDataResponse.Vote.EVoteType vote_type = 2 [default = k_eUp];
}
repeated .CMsgGCToClientCollectorsCacheAvailableDataResponse.Vote votes = 1;
}
message CMsgClientToGCUploadMatchClip {
optional .CMatchClip match_clip = 1;
}
message CMsgGCToClientUploadMatchClipResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTimeout = 2;
k_eTooBusy = 4;
}
optional .CMsgGCToClientUploadMatchClipResponse.EResponse response = 1 [default = k_eInternalError];
}
message CMsgClientToGCMapStatsRequest {
}
message CMsgGCToClientMapStatsResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
}
optional .CMsgGCToClientMapStatsResponse.EResponse response = 1 [default = k_eInternalError];
optional .CMsgMapStatsSnapshot personal_stats = 2;
optional .CMsgGlobalMapStats global_stats = 3;
}
message CMsgRoadToTIAssignedQuest {
optional uint32 quest_id = 1;
optional uint32 difficulty = 2;
optional uint32 progress_flags = 3;
optional uint32 half_credit_flags = 4;
optional bool completed = 5;
}
message CMsgRoadToTIUserData {
repeated .CMsgRoadToTIAssignedQuest quests = 1;
}
message CMsgClientToGCRoadToTIGetQuests {
optional uint32 event_id = 1;
}
message CMsgClientToGCRoadToTIGetQuestsResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eTooBusy = 2;
k_eDisabled = 3;
k_eTimeout = 4;
k_eInvalidID = 5;
}
optional .CMsgClientToGCRoadToTIGetQuestsResponse.EResponse response = 1 [default = k_eInternalError];
optional .CMsgRoadToTIUserData quest_data = 2;
}
message CMsgClientToGCRoadToTIGetActiveQuest {
optional uint32 event_id = 1;
}
message CMsgClientToGCRoadToTIGetActiveQuestResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eNone = 2;
k_eTooBusy = 3;
k_eDisabled = 4;
k_eTimeout = 5;
k_eInvalidID = 6;
}
optional .CMsgClientToGCRoadToTIGetActiveQuestResponse.EResponse response = 1 [default = k_eInternalError];
optional .CMsgRoadToTIAssignedQuest quest_data = 2;
}
message CMsgGCToClientRoadToTIQuestDataUpdated {
optional uint32 event_id = 1;
optional .CMsgRoadToTIUserData quest_data = 2;
}
message CMsgClientToGCRoadToTIUseItem {
optional uint32 event_id = 1;
optional uint32 item_type = 2;
optional uint32 hero_index = 3;
}
message CMsgClientToGCRoadToTIUseItemResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eBadInput = 2;
k_eNoItem = 3;
k_eDisabled = 4;
k_eTimeout = 5;
k_eInvalidID = 6;
}
optional .CMsgClientToGCRoadToTIUseItemResponse.EResponse response = 1 [default = k_eInternalError];
}
message CMsgClientToGCRoadToTIDevForceQuest {
optional uint32 event_id = 1;
optional bool force_match_type = 2;
optional uint32 force_id = 3;
}
message CMsgLobbyRoadToTIMatchQuestData {
optional .CMsgRoadToTIAssignedQuest quest_data = 1;
optional uint32 quest_period = 2;
optional uint32 quest_number = 3;
}
message CMsgClientToGCNewBloomGift {
optional uint32 defindex = 1;
optional uint64 lobby_id = 2;
repeated uint32 target_account_ids = 3;
}
message CMsgClientToGCNewBloomGiftResponse {
optional .ENewBloomGiftingResponse result = 1 [default = kENewBloomGifting_UnknownFailure];
repeated uint32 received_account_ids = 2;
}
message CMsgClientToGCSetBannedHeroes {
repeated int32 banned_hero_ids = 1;
}
message CMsgClientToGCUpdateComicBookStats {
message SingleStat {
optional .CMsgClientToGCUpdateComicBookStat_Type stat_type = 1 [default = CMsgClientToGCUpdateComicBookStat_Type_HighestPageRead];
optional uint32 stat_value = 2;
}
message LanguageStats {
optional uint32 comic_id = 1;
optional uint32 client_language = 2;
optional uint32 client_comic_language = 3;
}
optional uint32 comic_id = 1;
repeated .CMsgClientToGCUpdateComicBookStats.SingleStat stats = 2;
optional .CMsgClientToGCUpdateComicBookStats.LanguageStats language_stats = 3;
}