You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hyperstone/dota/dota_gcmessages_client.proto

1920 lines
48 KiB
Protocol Buffer

package dota;
import "steammessages.proto";
import "dota_shared_enums.proto";
import "dota_gcmessages_common.proto";
import "gcsdk_gcmessages.proto";
import "dota_gcmessages_common_match_management.proto";
option optimize_for = SPEED;
option cc_generic_services = false;
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 EFeaturedHeroTextField {
k_EFeaturedHeroTextField_NewHero = 0;
k_EFeaturedHeroTextField_NewItem = 1;
k_EFeaturedHeroTextField_ItemSetDescription = 2;
k_EFeaturedHeroTextField_ItemDescription = 3;
k_EFeaturedHeroTextField_Hype = 4;
k_EFeaturedHeroTextField_HeroWinLoss = 5;
k_EFeaturedHeroTextField_FrequentlyPlayedHero = 6;
k_EFeaturedHeroTextField_FeaturedItem = 7;
k_EFeaturedHeroTextField_PopularItem = 8;
k_EFeaturedHeroTextField_SaleItem = 9;
k_EFeaturedHeroTextField_SaleDiscount = 10;
k_EFeaturedHeroTextField_Container = 11;
}
enum EFeaturedHeroDataType {
k_EFeaturedHeroDataType_HeroID = 0;
k_EFeaturedHeroDataType_ItemDef = 1;
k_EFeaturedHeroDataType_HypeString = 2;
k_EFeaturedHeroDataType_StartTimestamp = 3;
k_EFeaturedHeroDataType_ExpireTimestamp = 4;
k_EFeaturedHeroDataType_HeroWins = 5;
k_EFeaturedHeroDataType_HeroLosses = 6;
k_EFeaturedHeroDataType_SaleDiscount = 7;
k_EFeaturedHeroDataType_ContainerItemDef = 8;
}
enum EWeekendTourneyRichPresenceEvent {
k_EWeekendTourneyRichPresenceEvent_None = 0;
k_EWeekendTourneyRichPresenceEvent_StartedMatch = 1;
k_EWeekendTourneyRichPresenceEvent_WonMatch = 2;
k_EWeekendTourneyRichPresenceEvent_Eliminated = 3;
}
message CMsgClientSuspended {
optional uint32 time_end = 1;
}
message CMsgRequestInternationalTicket {
}
message CMsgBalancedShuffleLobby {
}
message CMsgInitialQuestionnaireResponse {
optional uint32 initial_skill = 1;
}
message CMsgDOTAPlayerMatchHistory {
repeated uint64 match_ids = 1;
}
message CMsgDOTAMatchHistoryFilter {
repeated uint64 match_ids = 1;
optional uint64 newest_match_id_at_last_query = 2;
optional uint32 time_last_query = 3;
}
message CMsgDOTARequestMatches {
enum SkillLevel {
Any = 0;
Normal = 1;
High = 2;
VeryHigh = 3;
}
optional uint32 hero_id = 2;
optional uint32 game_mode = 3;
optional fixed32 date_min = 6;
optional fixed32 date_max = 7;
optional uint32 matches_requested = 10;
optional uint64 start_at_match_id = 11;
optional fixed32 min_players = 12;
optional uint32 request_id = 13;
optional bool tournament_games_only = 14;
optional uint32 account_id = 15;
optional uint32 league_id = 16;
optional CMsgDOTARequestMatches.SkillLevel skill = 17 [default = Any];
optional uint32 team_id = 18;
optional uint64 custom_game_id = 20;
}
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;
GUILD_KICKED = 18;
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_SKILL_DATA_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;
GENERIC_INFO = 69;
GENERIC_ERROR = 70;
}
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;
}
message CMsgDOTASubmitPlayerReport {
optional uint32 target_account_id = 1;
optional uint32 report_flags = 2;
optional uint64 lobby_id = 4;
optional string comment = 5;
}
message CMsgDOTASubmitPlayerReportResponse {
optional uint32 target_account_id = 1;
optional uint32 report_flags = 2;
optional uint32 result = 3;
optional string debug_message = 4;
}
message CMsgDOTAReportCountsRequest {
optional uint32 target_account_id = 1;
}
message CMsgDOTAReportCountsResponse {
optional uint32 target_account_id = 1;
optional uint32 leadership_count = 2;
optional uint32 teaching_count = 3;
optional uint32 friendly_count = 4;
optional uint32 forgiving_count = 5;
}
message CMsgDOTASubmitLobbyMVPVote {
optional uint32 target_account_id = 1;
}
message CMsgDOTASubmitLobbyMVPVoteResponse {
optional uint32 target_account_id = 1;
optional uint32 eresult = 2;
}
message CMsgDOTALobbyMVPNotifyRecipient {
optional uint32 voter_account_id = 1;
optional uint32 recipient_account_id = 2;
optional uint32 num_votes = 3;
}
message CMsgDOTALobbyMVPAwarded {
optional uint32 mvp_account_id = 1;
}
message CMsgDOTAKickedFromMatchmakingQueue {
optional MatchType match_type = 1 [default = MATCH_TYPE_CASUAL];
}
message CMsgDOTARequestSaveGames {
optional uint32 server_region = 1;
}
message CMsgDOTARequestSaveGamesResponse {
optional fixed64 steam_id = 1;
repeated CDOTASaveGame save_games = 2;
}
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 CMsgServerToGCMatchDetailsRequest {
repeated uint64 match_ids = 1;
}
message CMsgGCToServerMatchDetailsResponse {
repeated CMsgDOTAMatch matches = 1;
}
message CMsgDOTAProfileRequest {
optional uint32 account_id = 1;
optional bool request_name = 2;
optional ESourceEngine engine = 3 [default = k_ESE_Source1];
}
message CMsgDOTAProfileResponse {
message PlayedHero {
optional uint32 hero_id = 1;
optional uint32 wins = 2;
}
message ShowcaseHero {
optional uint32 hero_id = 1;
repeated bytes object_data = 2;
}
message LeaguePass {
optional uint32 league_id = 1;
optional uint32 item_def = 2;
}
message EventTicket {
optional uint32 event_id = 1;
}
message FeaturedItem {
optional uint64 item_id = 1;
optional bytes object_data = 2;
optional uint32 slot_index = 3;
}
optional uint32 result = 1;
optional CSODOTAGameAccountClient game_account_client = 2;
repeated CMsgDOTAMatch latest_matches = 3;
repeated CMsgDOTAProfileResponse.PlayedHero heroes = 4;
optional string player_name = 5;
optional string team_name = 6;
optional string team_tag = 7;
optional uint64 team_logo = 8;
optional CMsgDOTAProfileResponse.ShowcaseHero showcase_hero = 9;
repeated CMsgDOTAProfileResponse.LeaguePass league_passes = 10;
repeated CMsgDOTAProfileResponse.EventTicket event_tickets = 11;
optional uint32 team_id = 12;
optional bool has_passport = 13;
repeated CMsgDOTAProfileResponse.FeaturedItem featured_items = 14;
optional uint32 abandon_percent = 15;
}
message CMsgDOTAProfileTickets {
message LeaguePass {
optional uint32 league_id = 1;
optional uint32 item_def = 2;
}
message EventTicket {
optional uint32 event_id = 1;
}
optional uint32 result = 1;
optional uint32 account_id = 2;
repeated CMsgDOTAProfileTickets.LeaguePass league_passes = 3;
repeated CMsgDOTAProfileTickets.EventTicket event_tickets = 4;
}
message CMsgClientToGCGetProfileTickets {
optional uint32 account_id = 1;
}
message CMsgGCSteamProfileRequest {
optional uint32 account_id = 1;
}
message CMsgGCSteamProfileRequestResponse {
optional uint32 result = 1;
}
message CMsgDOTAClearNotifySuccessfulReport {
}
message CMsgDOTAWelcome {
message LocalizationDigest {
optional string context = 1;
optional CMsgSHA1Digest english_language_file_sha1 = 2;
optional CMsgSHA1Digest client_language_file_sha1 = 3;
}
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 PartnerAccountType partner_account_type = 8 [default = PARTNER_NONE];
optional uint32 banned_word_list_word_id = 9;
optional uint32 partner_account_state = 11;
optional uint32 last_time_played = 12;
optional uint32 last_ip_address = 13;
optional uint32 shutdownlawterminateminutes = 15;
optional uint32 banned_word_list_version = 16;
optional bool profile_private = 17;
optional uint32 currency = 18;
optional uint32 bang_no = 19;
optional bool should_request_player_origin = 20;
optional uint64 compendium_unlocks = 21;
optional uint32 gc_socache_file_version = 22;
repeated CMsgDOTAWelcome.LocalizationDigest localization_digests = 23;
optional bool is_perfect_world_test_account = 24;
repeated EEvent active_events = 25;
repeated CMsgDOTAWelcome.CExtraMsg extra_messages = 26;
optional uint64 minimum_recent_item_id = 27;
}
message CSODOTAGameHeroFavorites {
optional uint32 account_id = 1 [(key_field) = true];
optional uint32 hero_id = 2 [(key_field) = true];
}
message CMsgDOTAHeroFavoritesAdd {
optional uint32 hero_id = 1;
}
message CMsgDOTAHeroFavoritesRemove {
optional uint32 hero_id = 1;
}
message CMsgSetShowcaseHero {
optional uint32 showcase_hero_id = 1;
}
message CMsgSetFeaturedItems {
repeated uint64 featured_item_id = 1;
}
message CMsgDOTAFeaturedItems {
optional uint32 account_id = 1;
repeated uint64 featured_item_id = 2;
repeated bytes object_data = 3;
}
message CMsgRequestLeagueInfo {
}
message CDynamicLeagueData {
optional uint32 league_id = 1;
optional fixed32 last_match_time = 2;
optional uint32 prize_pool_usd = 3;
optional bool has_live_matches = 4;
optional bool is_compendium_public = 5;
optional uint32 compendium_version = 6;
optional uint32 compendium_content_version = 7;
}
message CStaticLeagueData {
optional uint32 league_id = 1;
optional string name = 2;
optional string description = 3;
optional string banner_name = 4;
optional string itemdef_name = 5;
optional string url = 6;
optional uint32 item_def_index = 7;
optional uint32 hud_skin_item_def_index = 8;
optional string loading_screen_name = 9;
optional uint32 base_prize_pool = 10;
optional bool is_major = 11;
optional uint32 sort_order = 12;
optional uint32 tier = 13;
optional uint32 amateur_region = 14;
optional string organizer = 15;
optional uint32 start_date = 16;
optional uint32 end_date = 17;
optional string location = 18;
optional string inventory_image = 19;
optional string square_image = 20;
}
message CLeagueData {
optional CDynamicLeagueData dynamic_data = 1;
optional CStaticLeagueData static_data = 2;
optional bool is_owned = 3;
}
message CMsgResponseLeagueInfo {
repeated CDynamicLeagueData leagues = 1;
}
message CMsgDOTAMatchVotes {
message PlayerVote {
optional uint32 account_id = 1;
optional uint32 vote = 2;
}
optional uint64 match_id = 1;
repeated CMsgDOTAMatchVotes.PlayerVote votes = 2;
}
message CMsgCastMatchVote {
optional uint64 match_id = 1;
optional DOTAMatchVote vote = 2 [default = DOTAMatchVote_INVALID];
}
message CMsgRetrieveMatchVote {
optional uint64 match_id = 1;
optional uint32 incremental = 2;
}
message CMsgMatchVoteResponse {
optional uint32 eresult = 1 [default = 2];
optional DOTAMatchVote vote = 2 [default = DOTAMatchVote_INVALID];
optional uint32 positive_votes = 3;
optional uint32 negative_votes = 4;
}
message CMsgDOTAHallOfFame {
message FeaturedPlayer {
optional uint32 account_id = 1;
optional uint32 hero_id = 2;
optional float average_scaled_metric = 3;
optional uint32 num_games = 4;
}
message FeaturedFarmer {
optional uint32 account_id = 1;
optional uint32 hero_id = 2;
optional uint32 gold_per_min = 3;
optional uint64 match_id = 4;
}
optional uint32 week = 1;
repeated CMsgDOTAHallOfFame.FeaturedPlayer featured_players = 2;
optional CMsgDOTAHallOfFame.FeaturedFarmer featured_farmer = 3;
}
message CMsgDOTAHallOfFameRequest {
optional uint32 week = 1;
}
message CMsgDOTAHallOfFameResponse {
optional CMsgDOTAHallOfFame hall_of_fame = 1;
optional uint32 eresult = 2 [default = 2];
}
message CMsgDOTAHalloweenHighScoreRequest {
optional int32 round = 1 [default = -1];
}
message CMsgDOTAHalloweenHighScoreResponse {
optional uint32 score = 1;
optional CMsgDOTAMatch match = 2;
optional uint32 eresult = 3;
optional int32 round = 4;
}
message CMsgDOTAStorePromoPagesRequest {
optional uint32 version_seen = 1;
}
message CMsgDOTAStorePromoPagesResponse {
message PromoPage {
optional uint32 promo_id = 1;
optional string title = 2;
optional string url = 3;
}
repeated CMsgDOTAStorePromoPagesResponse.PromoPage pages = 1;
}
message CMsgLeagueScheduleBlockTeamInfo {
optional uint32 team_id = 1;
optional string name = 2;
optional uint64 logo = 4;
}
message CMsgLeagueScheduleBlock {
optional uint32 block_id = 1;
optional uint32 start_time = 2;
optional bool finals = 4;
optional string comment = 5;
repeated CMsgLeagueScheduleBlockTeamInfo teams = 6;
}
message CMsgDOTALeague {
optional uint32 league_id = 1;
repeated CMsgLeagueScheduleBlock schedule = 2;
}
message CMsgDOTALeagueScheduleRequest {
optional uint32 league_id = 1;
}
message CMsgDOTALeagueScheduleResponse {
optional CMsgDOTALeague league = 1;
optional uint32 eresult = 2 [default = 2];
}
message CMsgDOTALeagueScheduleEdit {
optional uint32 league_id = 1;
optional CMsgLeagueScheduleBlock schedule = 2;
optional bool delete_block = 3;
}
message CMsgDOTALeagueScheduleEditResponse {
optional CMsgDOTALeague league = 1;
optional uint32 eresult = 2 [default = 2];
}
message CMsgDOTALeaguesInMonthRequest {
optional uint32 month = 1;
optional uint32 year = 2;
optional uint32 tier = 3;
}
message CMsgDOTALeaguesInMonthResponse {
optional uint32 eresult = 1 [default = 2];
optional uint32 month = 2;
optional uint32 year = 3;
repeated CMsgDOTALeague leagues = 4;
}
message CMsgMatchmakingMatchGroupInfo {
optional uint32 players_searching = 1;
optional sint32 auto_region_select_ping_penalty = 2;
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 CMsgSetMapLocationState {
optional int32 location_id = 1;
optional bool completed = 2;
}
message CMsgSetMapLocationStateResponse {
optional uint32 eresult = 1 [default = 2];
}
message CMsgResetMapLocations {
}
message CMsgResetMapLocationsResponse {
optional uint32 eresult = 1 [default = 2];
}
message CMsgRefreshPartnerAccountLink {
optional int32 partner_type = 1;
}
message CMsgClientsRejoinChatChannels {
}
message CMsgDOTASendFriendRecruits {
repeated uint32 recruits = 1;
}
message CMsgDOTAFriendRecruitsRequest {
repeated uint32 account_ids = 1;
}
message CMsgDOTAFriendRecruitsResponse {
message FriendRecruitStatus {
optional uint32 account_id = 1;
optional uint32 status = 2;
optional uint32 levels_earned = 3;
optional bool bonus = 4;
}
enum EResult {
SUCCESS = 0;
ERROR_UNSPECIFIED = 1;
}
optional CMsgDOTAFriendRecruitsResponse.EResult result = 1 [default = SUCCESS];
repeated CMsgDOTAFriendRecruitsResponse.FriendRecruitStatus recruits = 2;
repeated CMsgDOTAFriendRecruitsResponse.FriendRecruitStatus recruiters = 3;
}
message CMsgDOTAFriendRecruitInviteAcceptDecline {
optional bool accepted = 1;
optional uint32 account_id = 2;
}
message CMsgRequestLeaguePrizePool {
optional uint32 league_id = 1;
}
message CMsgRequestLeaguePrizePoolResponse {
optional uint32 league_id = 1;
optional uint32 prize_pool = 2;
}
message CMsgGCGetHeroStandings {
}
message CMsgGCGetHeroStandingsResponse {
message Hero {
optional uint32 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;
}
repeated CMsgGCGetHeroStandingsResponse.Hero standings = 1;
}
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 CMsgGCItemEditorRequestLeagueInfo {
optional uint32 league_id = 1;
}
message CMsgGCItemEditorLeagueInfoResponse {
optional uint32 league_id = 1;
optional string league_name = 2;
optional string league_desc = 3;
optional string league_url = 4;
optional string revenue_url = 5;
optional uint32 tier = 6;
optional uint32 location = 7;
optional uint32 result = 8;
}
message CMsgDOTARewardTutorialPrizes {
optional uint32 location_id = 1;
optional bool tracking_only = 2;
}
message CMsgDOTALastHitChallengeHighScorePost {
optional uint32 hero_id = 1;
optional uint32 high_score = 2;
}
message CMsgDOTALastHitChallengeHighScoreRequest {
optional uint32 hero_id = 1;
}
message CMsgDOTALastHitChallengeHighScoreResponse {
optional uint32 score = 1;
optional uint32 eresult = 2;
}
message CMsgFlipLobbyTeams {
}
message CMsgPresentedClientTerminateDlg {
}
message CMsgGCLobbyUpdateBroadcastChannelInfo {
optional uint32 channel_id = 1;
optional string country_code = 2;
optional string description = 3;
optional string language_code = 4;
}
message CMsgDOTARedeemEventPrize {
optional uint32 prize_id = 1;
optional uint32 event_id = 2;
optional uint32 quantity = 3 [default = 1];
}
message CMsgDOTARedeemEventPrizeResponse {
enum ResultCode {
Success = 0;
ServerError = 1;
InsufficientPoints = 2;
PointsHeld = 3;
}
optional CMsgDOTARedeemEventPrizeResponse.ResultCode result = 1 [default = Success];
optional uint32 remaining_points = 2;
optional uint32 remaining_premium_points = 3;
optional uint32 event_id = 4;
}
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 wager_tokens_remaining = 10;
}
message CMsgDOTALiveLeagueGameUpdate {
optional uint32 live_league_games = 1;
}
message CMsgDOTACompendiumSelection {
optional uint32 selection_index = 1;
optional uint32 selection = 2;
optional uint32 leagueid = 3;
}
message CMsgDOTACompendiumSelectionResponse {
optional uint32 eresult = 1 [default = 2];
repeated CMsgDOTACompendiumSelection extra_selections = 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 uint32 hero_id = 4;
optional uint32 request_id = 5;
optional bool include_practice_matches = 7;
optional bool include_custom_games = 8;
}
message CMsgDOTAGetPlayerMatchHistoryResponse {
message Match {
optional uint64 match_id = 1;
optional uint32 start_time = 2;
optional uint32 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_battle_pass = 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;
}
repeated CMsgDOTAGetPlayerMatchHistoryResponse.Match matches = 1;
optional uint32 request_id = 2;
}
message CMsgDOTAStartDailyHeroChallenge {
}
message CMsgGCNotificationsRequest {
}
message CMsgGCNotificationsResponse {
message 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;
}
enum EResult {
SUCCESS = 0;
ERROR_UNSPECIFIED = 1;
}
optional CMsgGCNotificationsResponse.EResult result = 1 [default = SUCCESS];
repeated CMsgGCNotificationsResponse.Notification notifications = 2;
}
message CMsgGCNotificationsMarkReadRequest {
}
message CMsgClientToGCMarkNotificationListRead {
repeated uint64 notification_ids = 1;
}
message CMsgGCLeagueAdminState {
message PrivateLeagueKeys {
optional uint32 leagueid = 1;
optional uint32 privatekey = 2;
}
repeated uint32 leagues = 1;
repeated CMsgGCLeagueAdminState.PrivateLeagueKeys keys = 2;
}
message CMsgGCPlayerInfoRequest {
message PlayerInfo {
optional uint32 account_id = 1;
optional uint32 timestamp = 2;
}
repeated CMsgGCPlayerInfoRequest.PlayerInfo player_infos = 1;
}
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;
}
optional CMsgGCPlayerInfoSubmitResponse.EResult result = 1 [default = SUCCESS];
}
message CMsgClientProvideSurveyResult {
message Response {
optional uint32 question_id = 1;
optional uint32 survey_value = 2;
}
repeated CMsgClientProvideSurveyResult.Response responses = 1;
optional uint64 survey_key = 2;
}
message CMsgDOTAEmoticonAccessSDO {
optional uint32 account_id = 1;
optional bytes unlocked_emoticons = 2;
}
message CMsgClientToGCEmoticonDataRequest {
}
message CMsgGCToClientEmoticonData {
optional CMsgDOTAEmoticonAccessSDO emoticon_access = 1;
}
message CMsgClientToGCTrackDialogResult {
optional uint32 dialog_id = 1;
optional uint32 value = 2;
}
message CMsgGCToClientTournamentItemDrop {
optional uint32 item_def = 1;
optional uint32 event_type = 2;
}
message CMsgClientToGCSetAdditionalEquips {
repeated CAdditionalEquipSlot equips = 1;
}
message CMsgClientToGCSetAdditionalEquipsResponse {
}
message CMsgClientToGCGetAdditionalEquips {
}
message CMsgClientToGCGetAdditionalEquipsResponse {
repeated CAdditionalEquipSlot equips = 1;
}
message CMsgClientToGCGetAllHeroOrder {
}
message CMsgClientToGCGetAllHeroOrderResponse {
repeated uint32 hero_ids = 1;
}
message CMsgClientToGCGetAllHeroProgress {
optional uint32 account_id = 1;
}
message CMsgClientToGCGetAllHeroProgressResponse {
optional uint32 account_id = 1;
optional uint32 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 uint32 next_hero_id = 11;
optional uint32 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 uint32 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;
}
optional uint32 account_id = 1;
repeated CMsgClientToGCGetTrophyListResponse.Trophy trophies = 2;
optional string profile_name = 3;
}
message CMsgGCToClientTrophyAwarded {
optional uint32 trophy_id = 1;
optional uint32 trophy_score = 2;
optional uint32 trophy_old_score = 3;
optional uint32 last_updated = 4;
}
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 = 1;
optional uint32 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 = 9;
optional bool tournament_drop = 10;
}
message CMsgGCToClientHeroStatueCreateResult {
optional uint64 resulting_item = 1;
}
message CMsgClientToGCRecordCompendiumStats {
optional uint32 league_id = 1;
optional uint32 view_duration_s = 2;
optional uint32 videos_viewed = 3;
optional uint32 page_turns = 4;
optional uint32 links_followed = 5;
}
message CMsgGCToClientEventStatusChanged {
repeated EEvent active_events = 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;
}
message CMsgClientToGCCustomGamePlayerCountRequest {
optional uint64 custom_game_id = 1;
}
message CMsgGCToClientCustomGamePlayerCountResponse {
optional uint64 custom_game_id = 1;
optional uint64 player_count = 2;
optional uint64 spectator_count = 3;
}
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 CMsgClientToGCFeaturedHeroesRequest {
}
message CMsgGCToClientFeaturedHeroesResponse {
message DataField {
optional EFeaturedHeroDataType data_type = 1 [default = k_EFeaturedHeroDataType_HeroID];
optional uint32 uint32_value = 2;
optional uint64 uint64_value = 3;
optional string string_value = 4;
optional float float_value = 5;
}
message FeaturedHero {
repeated CMsgGCToClientFeaturedHeroesResponse.DataField data_fields = 1;
}
message Category {
optional int32 category_weight = 1;
repeated EFeaturedHeroTextField text_fields = 2;
repeated CMsgGCToClientFeaturedHeroesResponse.FeaturedHero featured_heroes = 3;
}
repeated CMsgGCToClientFeaturedHeroesResponse.Category categories = 1;
}
message CMsgClientToGCSocialMatchPostCommentRequest {
optional uint64 match_id = 1;
optional string comment = 2;
}
message CMsgGCToClientSocialMatchPostCommentResponse {
optional bool success = 1;
}
message CMsgClientToGCSocialMatchDetailsRequest {
optional uint64 match_id = 1;
optional uint32 pagination_timestamp = 2;
}
message CMsgGCToClientSocialMatchDetailsResponse {
message Comment {
optional uint32 account_id = 1;
optional string persona_name = 2;
optional uint32 timestamp = 3;
optional string comment = 4;
}
optional bool success = 1;
repeated CMsgGCToClientSocialMatchDetailsResponse.Comment comments = 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 CMsgClientToGCGetLeagueSeries {
optional uint32 league_id = 1;
}
message CMsgClientToGCGetLeagueSeriesResponse {
message Series {
message Team {
optional uint32 team_id = 1;
optional string team_name = 2;
optional string team_tag = 3;
optional uint32 team_score = 4;
optional uint32 team_wins = 5;
}
optional uint32 series_id = 1;
optional uint32 num_games = 2;
repeated CMsgClientToGCGetLeagueSeriesResponse.Series.Team teams = 3;
optional string series_name = 4;
optional string phase_name = 5;
optional uint32 start_time = 6;
optional uint32 after_series_id = 7;
optional uint32 num_completed_games = 8;
}
repeated CMsgClientToGCGetLeagueSeriesResponse.Series series = 1;
}
message CMsgClientToGCApplyGemCombiner {
optional uint64 item_id_1 = 1;
optional uint64 item_id_2 = 2;
}
message CMsgClientToGCH264Unsupported {
}
message CMsgClientToGCRequestH264Support {
}
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 uint32 hero_id = 4;
optional uint32 challenge_type = 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 uint32 hero_id = 1;
}
message CMsgGCGetHeroStatsHistoryResponse {
optional uint32 hero_id = 1;
repeated CMsgDOTASDOHeroStatsHistory records = 2;
}
message CMsgPlayerConductScorecardRequest {
}
message CMsgPlayerConductScorecard {
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 end_score = 13;
optional uint32 date = 14;
}
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;
}
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 CMsgClientToGCMysteryItem {
optional uint32 event_id = 1;
optional uint32 action_id = 2;
}
message CMsgGCToClientMysteryItemResponse {
enum Result {
SUCCESS = 0;
FAILURE_SDO_LOAD = 1;
FAILURE_NO_ACTIONS = 2;
FAILURE_NO_LOOTLIST = 3;
FAILURE_EMPTY_LOOTLIST = 4;
FAILURE_NO_ITEM_GENERATED = 5;
FAILURE_SQL_COMMIT = 6;
FAILURE_EVENT_NOT_OWNED = 7;
FAILURE_INVALID_ACTION = 8;
FAILURE_ALREADY_GRANTED = 9;
}
optional CMsgGCToClientMysteryItemResponse.Result result = 1 [default = SUCCESS];
optional uint32 reward_type = 2;
optional uint32 itemdef = 3;
}
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 CMsgClientToGCSuspiciousActivity {
optional uint64 app_data = 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 CMsgMVPVotesForMatch {
message Player {
optional uint32 account_id = 1;
optional uint32 vote_count = 2;
}
repeated CMsgMVPVotesForMatch.Player players = 1;
}
message CMsgLeaguePrizePool {
optional uint32 prize_pool = 1;
optional float increment_per_second = 2;
}
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 {
message MatchVote {
optional uint64 match_id = 1;
optional uint32 hero_id = 2;
optional uint32 vote_count = 3;
}
repeated CMsgClientToGCVoteForArcana.MatchVote 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 CMsgArcanaVotes {
message Match {
optional uint32 match_id = 1;
optional uint32 hero_id_0 = 2;
optional uint32 hero_id_1 = 3;
optional uint32 hero_seeding_0 = 4;
optional uint32 hero_seeding_1 = 5;
optional uint32 vote_count_0 = 6;
optional uint32 vote_count_1 = 7;
optional uint32 voting_state = 8;
optional uint32 round_number = 9;
optional bool is_votes_hidden = 10;
optional uint32 calibration_time_remaining = 11;
}
enum VotingState {
FINISHED = 0;
IN_PROGRESS = 1;
IN_FUTURE = 2;
}
repeated CMsgArcanaVotes.Match matches = 1;
optional uint32 round_time_remaining = 2;
optional uint32 round_number = 3;
optional uint32 voting_state = 4;
optional bool is_current_round_calibrating = 5;
optional uint32 closest_active_match_id = 6;
}
message CMsgClientToGCRequestArcanaVotesRemaining {
}
message CMsgClientToGCRequestArcanaVotesRemainingResponse {
message MatchVote {
optional uint64 match_id = 1;
optional uint32 hero_id = 2;
optional uint32 vote_count = 3;
}
optional bool result = 1;
optional uint32 votes_remaining = 2;
optional uint32 votes_total = 3;
repeated CMsgClientToGCRequestArcanaVotesRemainingResponse.MatchVote matches_previously_voted_for = 4;
}
message CMsgClientToGCRequestEventPointLog {
optional uint32 event_id = 1;
}
message CMsgClientToGCRequestEventPointLogResponse {
message QuestChallengeEvent {
optional uint32 quest_id = 1;
optional uint32 challenge_id = 2;
optional uint32 rank = 3;
}
message WagerWonEvent {
optional uint64 match_id = 1;
}
message TipGivenEvent {
optional uint32 recipient_account_id = 1;
optional string recipient_name = 2;
}
message TipReceivedEvent {
optional uint32 giver_account_id = 1;
optional string giver_name = 2;
}
message RecycledItemEvent {
optional uint32 recipe_item_def_index = 1;
}
message AchievementEvent {
optional uint32 action_id = 1;
}
message MysteryItemReceivedEvent {
optional bool community_goal_item = 1;
}
message CorrectPredictionEvent {
optional uint32 prediction_id = 1;
}
message InGamePredictionCorrectEvent {
optional uint64 match_id = 1;
}
message WeekendTourneyPayoutEvent {
optional uint64 team_gid = 1;
}
message EventPointTransaction {
optional uint32 time = 1;
optional int32 event_points = 2;
optional bool compendium_activated_event = 3;
optional bool point_item_used_event = 4;
optional CMsgClientToGCRequestEventPointLogResponse.WagerWonEvent wager_won_event = 5;
optional CMsgClientToGCRequestEventPointLogResponse.MysteryItemReceivedEvent mystery_item_received_event = 6;
optional CMsgClientToGCRequestEventPointLogResponse.QuestChallengeEvent quest_challenge_event = 7;
optional CMsgClientToGCRequestEventPointLogResponse.TipGivenEvent tip_given_event = 8;
optional CMsgClientToGCRequestEventPointLogResponse.TipReceivedEvent tip_received_event = 9;
optional CMsgClientToGCRequestEventPointLogResponse.RecycledItemEvent recycled_item_event = 10;
optional CMsgClientToGCRequestEventPointLogResponse.AchievementEvent achievement_event = 11;
optional CMsgClientToGCRequestEventPointLogResponse.InGamePredictionCorrectEvent in_game_prediction_event = 12;
optional CMsgClientToGCRequestEventPointLogResponse.CorrectPredictionEvent prediction_event = 13;
optional CMsgClientToGCRequestEventPointLogResponse.WeekendTourneyPayoutEvent weekend_tourney_payout_event = 14;
}
optional bool result = 1;
repeated CMsgClientToGCRequestEventPointLogResponse.EventPointTransaction transactions = 2;
optional uint32 event_id = 3;
}
message CMsgClientToGCPublishUserStat {
optional uint32 user_stats_event = 1;
optional uint64 reference_data = 2;
}
message CMsgClientToGCAddTI6TreeProgress {
optional uint32 trees = 1;
}
message CMsgClientToGCRedeemReward {
optional uint32 event_id = 1;
optional uint32 action_id = 2;
optional uint32 base_action_id = 3;
}
message CMsgGCToClientRedeemRewardResponse {
enum Result {
SUCCESS = 0;
FAILURE_SDO_LOCK = 1;
FAILURE_SDO_LOAD = 2;
FAILURE_EVENT_NOT_OWNED = 3;
FAILURE_EVENT_NOT_ACTIVE = 4;
FAILURE_INVALID_ACTION = 5;
FAILURE_REQUIREMENTS_NOT_MET = 6;
FAILURE_ALREADY_GRANTED = 7;
FAILURE_TIMEOUT = 8;
}
optional CMsgGCToClientRedeemRewardResponse.Result result = 1 [default = SUCCESS];
}
message CMsgClientToGCRequestLinaPlaysRemaining {
optional EEvent event_id = 1 [default = EVENT_ID_NONE];
}
message CMsgClientToGCRequestLinaPlaysRemainingResponse {
optional uint32 plays_remaining = 1;
optional uint32 plays_total = 2;
}
message CMsgClientToGCRequestLinaGameResult {
optional EEvent event_id = 1 [default = EVENT_ID_NONE];
optional uint32 slot_chosen = 2;
}
message CMsgClientToGCRequestLinaGameResultResponse {
optional uint32 result = 1;
}
message CMsgGCToClientQuestProgressUpdated {
message Challenge {
optional uint32 challenge_id = 1;
optional uint32 time_completed = 2;
optional uint32 attempts = 3;
optional uint32 hero_id = 4;
optional uint32 challenge_type = 5;
optional uint32 quest_rank = 6;
}
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 CMsgPerfectWorldUserLookupRequest {
optional string user_name = 1;
}
message CMsgPerfectWorldUserLookupResponse {
enum EResultCode {
SUCCESS_ACCOUNT_FOUND = 0;
ERROR_UNKNOWN = 1;
ERROR_USER_NAME_WRONG_FORMAT = 2;
ERROR_NO_PERFECT_WORLD_ACCOUNT_FOUND = 3;
ERROR_NO_LINKED_STEAM_ACCOUNT_FOUND = 4;
}
optional CMsgPerfectWorldUserLookupResponse.EResultCode result_code = 1 [default = SUCCESS_ACCOUNT_FOUND];
optional uint32 account_id = 2;
}
message CMsgNexonPartnerUpdate {
optional uint32 messagetype = 1;
optional uint32 timeremaining = 2;
optional bool terminate = 3;
}
message CMsgMakeOffering {
optional uint64 item_id = 1;
}
message CMsgRequestOfferings {
}
message CMsgRequestOfferingsResponse {
message NewYearsOffering {
optional uint32 def_index = 1;
optional uint64 item_id = 2;
}
repeated CMsgRequestOfferingsResponse.NewYearsOffering offerings = 1;
optional bool completed = 2;
}
message CMsgDOTAPCBangTimedReward {
optional string persona = 1;
optional uint32 itemdef = 2;
optional string pcbangname = 3;
}
message CMsgDOTACompendiumInGamePredictionResults {
message PredictionResult {
optional uint32 prediction_id = 1;
optional uint32 prediction_value = 2;
}
repeated CMsgDOTACompendiumInGamePredictionResults.PredictionResult results = 1;
optional uint32 league_id = 2;
optional bool predictions_closed = 3;
}
message CMsgClientToGCSelectCompendiumInGamePrediction {
message Prediction {
optional uint32 prediction_id = 1;
optional uint32 prediction_value = 2;
}
optional uint64 match_id = 1;
repeated CMsgClientToGCSelectCompendiumInGamePrediction.Prediction predictions = 2;
}
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;
}
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;
}
optional CMsgClientToGCOpenPlayerCardPackResponse.Result result = 1 [default = SUCCESS];
repeated uint64 player_card_item_ids = 2;
}
message CMsgClientToGCRecyclePlayerCard {
optional uint64 player_card_item_id = 1;
}
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;
}
optional CMsgClientToGCRecyclePlayerCardResponse.Result result = 1 [default = SUCCESS];
optional uint32 dust_amount = 2;
}
message CMsgClientToGCCreatePlayerCardPack {
optional uint64 card_dust_item_id = 1;
}
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;
}
optional CMsgClientToGCCreatePlayerCardPackResponse.Result result = 1 [default = SUCCESS];
}