diff --git a/Resources/Protobufs/dota test/ai_activity.proto b/Resources/Protobufs/dota test/ai_activity.proto index f8eaf869..b6cbe27e 100644 --- a/Resources/Protobufs/dota test/ai_activity.proto +++ b/Resources/Protobufs/dota test/ai_activity.proto @@ -579,5 +579,8 @@ enum Activity { ACT_DOTA_NIAN_PIN_END = 578; ACT_DOTA_LEAP_STUN = 579; ACT_DOTA_LEAP_SWIPE = 580; + ACT_DOTA_NIAN_INTRO_LEAP = 581; + ACT_DOTA_AREA_DENY = 582; + ACT_DOTA_NIAN_PIN_TO_STUN = 583; } diff --git a/Resources/Protobufs/dota test/base_gcmessages.proto b/Resources/Protobufs/dota test/base_gcmessages.proto index 1bce9c97..115d7d56 100644 --- a/Resources/Protobufs/dota test/base_gcmessages.proto +++ b/Resources/Protobufs/dota test/base_gcmessages.proto @@ -4,7 +4,6 @@ enum EGCBaseMsg { k_EMsgGCSystemMessage = 4001; k_EMsgGCReplicateConVars = 4002; k_EMsgGCConVarUpdated = 4003; - k_EMsgGCInQueue = 4008; k_EMsgGCInviteToParty = 4501; k_EMsgGCInvitationCreated = 4502; k_EMsgGCPartyInviteResponse = 4503; @@ -33,6 +32,7 @@ message CGCStorePurchaseInit_LineItem { optional uint32 quantity = 2; optional uint32 cost_in_local_currency = 3; optional uint32 purchase_type = 4; + optional uint64 source_reference_id = 5; } message CMsgGCStorePurchaseInit { @@ -187,13 +187,11 @@ message CSOEconItem { optional uint32 account_id = 2; optional uint32 inventory = 3; optional uint32 def_index = 4; - optional uint32 quantity = 5; - optional uint32 level = 6; - optional uint32 quality = 7; + optional uint32 quantity = 5 [default = 1]; + optional uint32 level = 6 [default = 1]; + optional uint32 quality = 7 [default = 4]; optional uint32 flags = 8 [default = 0]; - optional uint32 origin = 9; - optional string custom_name = 10; - optional string custom_desc = 11; + optional uint32 origin = 9 [default = 0]; repeated .CSOEconItemAttribute attribute = 12; optional .CSOEconItem interior_item = 13; optional bool in_use = 14 [default = false]; @@ -295,7 +293,7 @@ message CMsgSetPresetItemPosition { message CMsgSetItemPositions { message ItemPosition { - optional uint32 item_id = 1; + optional uint64 item_id = 1; optional uint32 position = 2; } diff --git a/Resources/Protobufs/dota test/dota_clientmessages.proto b/Resources/Protobufs/dota test/dota_clientmessages.proto index 3f291628..27d7aebe 100644 --- a/Resources/Protobufs/dota test/dota_clientmessages.proto +++ b/Resources/Protobufs/dota test/dota_clientmessages.proto @@ -25,6 +25,8 @@ enum EDotaClientMessages { DOTA_CM_UpdateCoachListen = 20; DOTA_CM_CoachHUDPing = 21; DOTA_CM_RecordVote = 22; + DOTA_CM_UnitsAutoAttackAfterSpell = 23; + DOTA_CM_WillPurchaseAlert = 24; } message CDOTAClientMsg_MapPing { @@ -47,6 +49,10 @@ message CDOTAClientMsg_UnitsAutoAttack { optional bool enabled = 1; } +message CDOTAClientMsg_UnitsAutoAttackAfterSpell { + optional bool enabled = 1; +} + message CDOTAClientMsg_AutoPurchaseItems { optional bool enabled = 1; } @@ -122,3 +128,7 @@ message CDOTAClientMsg_RecordVote { optional int32 choice_index = 1; } +message CDOTAClientMsg_WillPurchaseAlert { + optional int32 itemid = 1; +} + diff --git a/Resources/Protobufs/dota test/dota_commonmessages.proto b/Resources/Protobufs/dota test/dota_commonmessages.proto index a27f6e38..590e2e87 100644 --- a/Resources/Protobufs/dota test/dota_commonmessages.proto +++ b/Resources/Protobufs/dota test/dota_commonmessages.proto @@ -74,6 +74,7 @@ enum EDOTAChatWheelMessage { k_EDOTA_CW_Regret = 69; k_EDOTA_CW_Relax = 70; k_EDOTA_CW_MissingHero = 71; + k_EDOTA_CW_ReturnedHero = 72; } enum EDOTAStatPopupTypes { diff --git a/Resources/Protobufs/dota test/dota_gcmessages_client.proto b/Resources/Protobufs/dota test/dota_gcmessages_client.proto index 05dee9ed..d2e51584 100644 --- a/Resources/Protobufs/dota test/dota_gcmessages_client.proto +++ b/Resources/Protobufs/dota test/dota_gcmessages_client.proto @@ -175,6 +175,7 @@ message CSourceTVGame { optional uint32 leagueid = 20; optional .DOTA_GameMode game_mode = 21 [default = DOTA_GAMEMODE_NONE]; optional uint32 lobby_type = 22; + optional uint32 custom_game_id = 23; } message CMsgSourceTVGamesResponse { @@ -189,8 +190,7 @@ message CMsgFindSourceTVGames { optional uint32 leagueid = 4; optional uint32 heroid = 5; optional bool team_game = 6; - optional bool diretide = 7; - optional bool xmas = 8; + optional uint32 custom_game_id = 9; } message CMsgSpectateFriendGame { @@ -350,6 +350,7 @@ message CMsgCustomGameCreate { optional uint32 difficulty = 3; optional string game_mode = 4; optional string map = 5; + optional uint32 custom_game_id = 6; } message CMsgRequestInternationalTicket { @@ -507,6 +508,7 @@ message CMsgDOTAMatch { optional string dire_team_tag = 38; optional uint32 series_id = 39; optional uint32 series_type = 40; + optional uint32 custom_game_id = 41; } message CMsgDOTAPlayerMatchHistory { @@ -540,6 +542,7 @@ message CMsgDOTARequestMatches { optional uint32 league_id = 16; optional .CMsgDOTARequestMatches.SkillLevel skill = 17 [default = Any]; optional uint32 team_id = 18; + optional uint32 custom_game_id = 19; } message CMsgDOTARequestMatchesResponse { @@ -597,6 +600,8 @@ message CMsgDOTAPopup { COMPETITIVE_MM_GAME_MODE_NOT_ALLOWED = 36; GAME_MODE_NOT_UNLOCKED = 37; SAVE_GAME_CORRUPT = 38; + INSUFFICIENT_INGOTS = 39; + COMPETITIVE_MM_NO_4STACKS = 40; } optional .CMsgDOTAPopup.PopupID id = 1 [default = KICKED_FROM_LOBBY]; @@ -1399,6 +1404,7 @@ message CMsgDOTAProfileResponse { optional uint32 team_id = 12; optional bool has_passport = 13; repeated .CMsgDOTAProfileResponse.FeaturedItem featured_items = 14; + optional uint32 abandon_percent = 15; } message CMsgGCSteamProfileRequest { @@ -1423,7 +1429,6 @@ message CMsgDOTAWelcome { optional uint32 partner_account_state = 11; optional uint32 last_time_played = 12; optional uint32 last_ip_address = 13; - optional uint32 notify_successful_report = 14; optional uint32 shutdownlawterminateminutes = 15; optional uint32 banned_word_list_version = 16; optional bool profile_private = 17; @@ -1467,6 +1472,8 @@ message CLeague { optional bool freeleague = 3; optional fixed32 lastgametime = 4; optional uint32 prize_pool_usd = 5; + optional uint32 version = 6; + optional bool compendium_is_public = 7; } message CMsgResponseLeagueInfo { @@ -1716,26 +1723,6 @@ message CMsgDOTACreateFantasyLeagueResponse { optional .CMsgDOTACreateFantasyLeagueResponse.EResult result = 1 [default = SUCCESS]; } -message CMsgDOTAEditFantasyLeagueRequest { - optional uint32 fantasy_league_id = 1; - optional string league_name = 2; - optional uint64 league_logo = 3; - optional .Fantasy_Selection_Mode selection_mode = 4 [default = FANTASY_SELECTION_INVALID]; - optional uint32 team_count = 5; -} - -message CMsgDOTAEditFantasyLeagueResponse { - enum EResult { - SUCCESS = 0; - ERROR_UNSPECIFIED = 1; - ERROR_NO_PERMISSION = 2; - ERROR_UNKNOWN_LEAGUE = 3; - ERROR_CANNOT_SHRINK_LEAGUE = 4; - } - - optional .CMsgDOTAEditFantasyLeagueResponse.EResult result = 1 [default = SUCCESS]; -} - message CMsgFantasyLeagueRoleScoring { optional float level = 1; optional float kills = 2; @@ -1765,22 +1752,22 @@ message CMsgDOTAFantasyLeagueInfo { optional uint64 logo = 6; optional .CMsgFantasyLeagueRoleScoring scoring = 7; optional uint32 league_id = 10; - optional uint32 invite_guild_id = 11; optional uint32 draft_time = 12; - optional uint32 matchup_interval = 13; - optional uint32 season_start = 14; - optional uint32 season_length = 15; - optional uint32 veto_votes = 16; - optional uint32 acquisitions = 17; - optional uint32 slot_1 = 18; - optional uint32 slot_2 = 19; - optional uint32 slot_3 = 20; - optional uint32 slot_4 = 21; - optional uint32 slot_5 = 22; - optional uint32 bench_slots = 23; - repeated uint32 owner_account_ids = 24; - repeated .CMsgDOTAFantasyLeagueInfo.PlayerInfo players = 25; - optional uint32 time_zone = 26; + optional uint32 draft_pick_time = 13; + optional uint32 matchup_interval = 14; + optional uint32 season_start = 15; + optional uint32 season_length = 16; + optional uint32 veto_votes = 17; + optional uint32 acquisitions = 18; + optional uint32 slot_1 = 19; + optional uint32 slot_2 = 20; + optional uint32 slot_3 = 21; + optional uint32 slot_4 = 22; + optional uint32 slot_5 = 23; + optional uint32 bench_slots = 24; + repeated uint32 owner_account_ids = 25; + repeated .CMsgDOTAFantasyLeagueInfo.PlayerInfo players = 26; + optional uint32 time_zone = 27; } message CMsgDOTAFantasyLeagueEditInfoRequest { @@ -1899,6 +1886,7 @@ message CMsgDOTAFantasyTeamScoreRequest { optional uint32 filter_match_id = 4; optional uint32 filter_start_time = 5; optional uint32 filter_end_time = 6; + optional bool include_bench = 7; } message CMsgDOTAFantasyTeamScoreResponse { @@ -2035,6 +2023,7 @@ message CMsgDOTAFantasyLeagueCreateInfoResponse { message FantasyLeagueCreateInfo { optional uint32 league_id = 1; optional string league_name = 2; + optional uint32 create_count = 3; } repeated .CMsgDOTAFantasyLeagueCreateInfoResponse.FantasyLeagueCreateInfo create_info = 1; @@ -2104,7 +2093,8 @@ message CMsgDOTAFantasyTeamCreateResponse { ERROR_BAD_FANTASY_LEAGUE_ID = 3; ERROR_BAD_NAME = 4; ERROR_FULL = 5; - ERROR_UNSPECIFIED = 6; + ERROR_ALREADY_MEMBER = 6; + ERROR_UNSPECIFIED = 7; } optional .CMsgDOTAFantasyTeamCreateResponse.EResult result = 1 [default = SUCCESS]; @@ -2140,7 +2130,9 @@ message CMsgDOTAFantasyLeagueDraftStatus { repeated uint32 draft_order = 2; optional uint32 current_pick = 3; optional uint32 time_remaining = 4; - repeated uint32 available_players = 5; + optional bool pending_resume = 5; + optional bool completed = 6; + repeated uint32 available_players = 7; } message CMsgDOTAFantasyLeagueDraftPlayerRequest { @@ -2275,17 +2267,18 @@ message CMsgDOTAFantasyPlayerHisoricalStatsResponse { optional uint32 account_id = 1; optional uint32 matches = 2; optional float score = 3; - optional float kills = 4; - optional float deaths = 5; - optional float assists = 6; - optional float last_hits = 7; - optional float denies = 8; - optional float gpm = 9; - optional float xppm = 10; - optional float stuns = 11; - optional float healing = 12; - optional float tower_kills = 13; - optional float roshan_kills = 14; + optional float levels = 4; + optional float kills = 5; + optional float deaths = 6; + optional float assists = 7; + optional float last_hits = 8; + optional float denies = 9; + optional float gpm = 10; + optional float xppm = 11; + optional float stuns = 12; + optional float healing = 13; + optional float tower_kills = 14; + optional float roshan_kills = 15; } enum EResult { @@ -2298,6 +2291,72 @@ message CMsgDOTAFantasyPlayerHisoricalStatsResponse { repeated .CMsgDOTAFantasyPlayerHisoricalStatsResponse.PlayerStats stats = 2; } +message CMsgDOTAFantasyMessageAdd { + optional uint32 fantasy_league_id = 1; + optional string message = 2; +} + +message CMsgDOTAFantasyMessagesRequest { + optional uint32 fantasy_league_id = 1; + optional uint32 start_message = 2; + optional uint32 end_message = 3; +} + +message CMsgDOTAFantasyMessagesResponse { + message Message { + optional uint32 message_id = 1; + optional string message = 2; + optional uint32 author_account_id = 3; + optional uint32 time = 4; + } + + enum EResult { + SUCCESS = 0; + ERROR_UNSPECIFIED = 1; + ERROR_NO_PERMISSION = 2; + } + + optional .CMsgDOTAFantasyMessagesResponse.EResult result = 1 [default = SUCCESS]; + repeated .CMsgDOTAFantasyMessagesResponse.Message messages = 2; + optional uint32 num_total_messages = 3; +} + +message CMsgDOTAFantasyScheduledMatchesRequest { + optional uint32 fantasy_league_id = 1; +} + +message CMsgDOTAFantasyRemoveOwner { + optional uint32 fantasy_league_id = 1; + optional uint32 owner_account_id = 2; + optional uint32 team_index = 3; +} + +message CMsgDOTAFantasyRemoveOwnerResponse { + enum EResult { + SUCCESS = 0; + ERROR_UNSPECIFIED = 1; + ERROR_NO_PERMISSION = 2; + ERROR_LEAGUE_LOCKED = 3; + } + + optional .CMsgDOTAFantasyRemoveOwnerResponse.EResult result = 1 [default = SUCCESS]; +} + +message CMsgDOTAFantasyScheduledMatchesResponse { + message ScheduledMatchDays { + optional uint32 timestamp = 1; + repeated uint32 team_ids = 2; + } + + enum EResult { + SUCCESS = 0; + ERROR_UNSPECIFIED = 1; + } + + optional .CMsgDOTAFantasyScheduledMatchesResponse.EResult result = 1 [default = SUCCESS]; + repeated .CMsgDOTAFantasyScheduledMatchesResponse.ScheduledMatchDays scheduled_match_days = 2; +} + message CMsgDOTASendFriendRecruits { repeated uint32 recruits = 1; } @@ -2489,6 +2548,8 @@ message CMsgDOTAGetEventPointsResponse { 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; } message CMsgDOTAExchangeEventPoints { @@ -2512,6 +2573,11 @@ message CMsgDOTACompendiumSelection { optional uint32 leagueid = 3; } +message CMsgDOTACompendiumSelectionResponse { + optional uint32 eresult = 1 [default = 2]; + repeated .CMsgDOTACompendiumSelection extra_selections = 2; +} + message CMsgDOTACompendiumData { repeated .CMsgDOTACompendiumSelection selections = 1; } @@ -2563,3 +2629,66 @@ message CMsgGCNewBloomModeStateResponse { optional uint32 round = 3; } +message CMsgGCNotificationsRequest { + optional bool new_messages = 1; + optional uint32 start_message_num = 2; + optional uint32 end_message_num = 3; +} + +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; + } + + enum EResult { + SUCCESS = 0; + ERROR_UNSPECIFIED = 1; + } + + optional .CMsgGCNotificationsResponse.EResult result = 1 [default = SUCCESS]; + repeated .CMsgGCNotificationsResponse.Notification notification = 2; + optional uint32 num_total_notifications = 3; +} + +message CMsgGCLeagueAdminState { + message PrivateLeagueKeys { + optional uint32 leagueid = 1; + optional uint32 privatekey = 2; + } + + repeated uint32 leagues = 1; + repeated .CMsgGCLeagueAdminState.PrivateLeagueKeys keys = 2; +} + +message CMsgGCNotificationsDismissRequest { + optional uint64 id = 1; +} + +message CMsgSerializedSOCache { + message TypeCache { + optional uint32 type = 1; + repeated bytes objects = 2; + } + + message Cache { + message Version { + optional uint32 service = 1; + optional uint64 version = 2; + } + + optional uint32 type = 1; + optional uint64 id = 2; + repeated .CMsgSerializedSOCache.Cache.Version versions = 3; + repeated .CMsgSerializedSOCache.TypeCache type_caches = 4; + } + + optional uint32 file_version = 1; + repeated .CMsgSerializedSOCache.Cache caches = 2; +} + diff --git a/Resources/Protobufs/dota test/dota_gcmessages_common.proto b/Resources/Protobufs/dota test/dota_gcmessages_common.proto index 0438be82..c255d841 100644 --- a/Resources/Protobufs/dota test/dota_gcmessages_common.proto +++ b/Resources/Protobufs/dota test/dota_gcmessages_common.proto @@ -237,8 +237,6 @@ enum EDOTAGCMsg { k_EMsgGCLastHitChallengeHighScoreResponse = 7292; k_EMsgGCCreateFantasyLeagueRequest = 7293; k_EMsgGCCreateFantasyLeagueResponse = 7294; - k_EMsgGCEditFantasyLeagueRequest = 7295; - k_EMsgGCEditFantasyLeagueResponse = 7296; k_EMsgGCFantasyLeagueInfoRequest = 7297; k_EMsgGCFantasyLeagueInfoResponse = 7298; k_EMsgGCFantasyLeagueInfo = 7299; @@ -359,13 +357,38 @@ enum EDOTAGCMsg { k_EMsgGCToServerPingRequest = 7416; k_EMsgGCToServerPingResponse = 7417; k_EMsgGCToServerConsoleCommand = 7418; - k_EMsgLobbyNewBloomMatchPoints = 7419; k_EMsgGCToGCUpdateLiveLeagueGameInfo = 7420; k_EMsgGCNewBloomModeState = 7421; k_EMsgGCNewBloomModeStateResponse = 7422; k_EMsgGCMakeOffering = 7423; k_EMsgGCRequestOfferings = 7424; k_EMsgGCRequestOfferingsResponse = 7425; + k_EMsgGCToGCProcessMatchLeaver = 7426; + k_EMsgGCNotificationsRequest = 7427; + k_EMsgGCNotificationsResponse = 7428; + k_EMsgGCToGCModifyNotification = 7429; + k_EMsgGCToGCSetNewNotifications = 7430; + k_EMsgGCToGCSetIsLeagueAdmin = 7431; + k_EMsgGCLeagueAdminState = 7432; + k_EMsgGCToGCSendLeagueAdminState = 7433; + k_EMsgGCLeagueAdminList = 7434; + k_EMsgGCNotificationsDismissRequest = 7435; + k_EMsgGCFantasyMessageAdd = 7436; + k_EMsgGCFantasyMessagesRequest = 7437; + k_EMsgGCFantasyMessagesResponse = 7438; + k_EMsgGCFantasyScheduledMatchesRequest = 7439; + k_EMsgGCFantasyScheduledMatchesResponse = 7440; + k_EMsgGCToGCGrantLeagueAccess = 7441; + k_EMsgGCToGCGrantFantasyAccess = 7442; + k_EMsgGCEventGameCreate = 7443; + k_EMsgGCPerfectWorldUserLookupRequest = 7444; + k_EMsgGCPerfectWorldUserLookupResponse = 7445; + k_EMsgGCFantasyRemoveOwner = 7448; + k_EMsgGCFantasyRemoveOwnerResponse = 7449; + k_EMsgGCRequestBatchPlayerResources = 7450; + k_EMsgGCRequestBatchPlayerResourcesResponse = 7451; + k_EMsgGCToGCSendUpdateLeagues = 7452; + k_EMsgGCCompendiumSetSelectionResponse = 7453; k_EMsgGCDev_GrantWarKill = 8001; } @@ -389,6 +412,7 @@ enum DOTA_GameMode { DOTA_GAMEMODE_CD = 16; DOTA_GAMEMODE_BD = 17; DOTA_GAMEMODE_ABILITY_DRAFT = 18; + DOTA_GAMEMODE_EVENT = 19; } enum DOTA_GameState { @@ -418,6 +442,16 @@ enum DOTA_CM_PICK { DOTA_CM_BAD_GUYS = 2; } +enum DOTAConnectionState_t { + DOTA_CONNECTION_STATE_UNKNOWN = 0; + DOTA_CONNECTION_STATE_NOT_YET_CONNECTED = 1; + DOTA_CONNECTION_STATE_CONNECTED = 2; + DOTA_CONNECTION_STATE_DISCONNECTED = 3; + DOTA_CONNECTION_STATE_ABANDONED = 4; + DOTA_CONNECTION_STATE_LOADING = 5; + DOTA_CONNECTION_STATE_FAILED = 6; +} + enum DOTALeaverStatus_t { DOTA_LEAVER_NONE = 0; DOTA_LEAVER_DISCONNECTED = 1; @@ -549,8 +583,6 @@ message CSODOTAGameAccountClient { optional uint32 leadership = 29; optional uint32 friendly = 30; optional uint32 forgiving = 31; - optional uint32 successful_report_count = 36; - optional uint32 notify_successful_report = 37; optional uint32 account_disabled_until_date = 38; optional uint32 account_disabled_count = 39; optional uint32 showcase_hero_id = 40; @@ -565,6 +597,8 @@ message CSODOTAGameAccountClient { optional uint32 solo_competitive_rank = 52; optional uint32 solo_calibration_games_remaining = 54; optional uint32 recruitment_level = 55; + optional bool has_new_notifications = 56; + optional bool is_league_admin = 57; } message CSODOTAPartyMember { @@ -657,11 +691,20 @@ message CDOTASaveGame { repeated .CDOTASaveGame.SaveInstance save_instances = 4; } +message CMsgLeaverState { + optional uint32 lobby_state = 1; + optional .DOTA_GameState game_state = 2 [default = DOTA_GAMERULES_STATE_INIT]; + optional bool leaver_detected = 3; + optional bool first_blood_happened = 4; + optional bool discard_match_results = 5; + optional bool mass_disconnect = 6; +} + message CDOTALobbyMember { optional fixed64 id = 1 [(key_field) = true]; optional uint32 hero_id = 2; optional .DOTA_GC_TEAM team = 3 [default = DOTA_GC_TEAM_GOOD_GUYS]; - optional bool connected_to_game_server = 4; + optional bool legacy_connected_to_game_server = 4; optional string name = 6; optional uint32 slot = 7; optional uint64 party_id = 12; @@ -669,6 +712,7 @@ message CDOTALobbyMember { optional uint32 meta_xp = 14; optional uint32 meta_xp_awarded = 15; optional .DOTALeaverStatus_t leaver_status = 16 [default = DOTA_LEAVER_NONE]; + optional uint32 leaver_actions = 28; optional uint32 channel = 17; optional uint32 prize_def_index = 18; optional uint32 meta_xp_bonus_rate = 19; @@ -684,6 +728,7 @@ message CDOTALobbyMember { message CDOTALobbyMemberPrivate { optional uint32 ip = 1; optional .DOTALobbyReadyState ready_state = 2 [default = DOTALobbyReadyState_UNDECLARED]; + optional .CMsgLeaverState leaver_state = 3; } message CLobbyTeamDetails { @@ -766,7 +811,6 @@ message CSODOTALobby { optional uint32 num_spectators = 23; optional uint32 tower_state = 24; optional uint32 matchgroup = 25; - optional bool leaver_detected = 27; optional .DOTA_CM_PICK cm_pick = 28 [default = DOTA_CM_RANDOM]; optional uint32 match_id = 30; optional bool allow_spectating = 31 [default = true]; @@ -798,6 +842,10 @@ message CSODOTALobby { optional bool low_priority = 61; repeated .CSODOTALobby.CExtraMsg extra_messages = 62; optional .CDOTASaveGame save_game = 63; + optional uint32 custom_game_id = 64; + optional bool first_blood_happened = 65; + optional bool discard_match_results = 66; + optional bool mass_disconnect = 67; } message CSODOTALobbyInternal { @@ -810,6 +858,8 @@ message CSODOTALobbyInternal { repeated .CDOTALobbyMemberPrivate members = 9; repeated .CDOTALobbyMemberPrivate left_members = 10; optional bytes save_game_data = 11; + optional uint32 server_run_time = 12; + optional uint32 last_state_change_time = 13; } message CMsgDOTAGenericResult { @@ -935,15 +985,6 @@ message CMsgNexonPartnerUpdate { optional uint32 timeremaining = 2; } -message CMsgLobbyNewBloomMatchPoints { - message Player { - optional uint32 account_id = 1; - optional uint32 points = 2; - } - - repeated .CMsgLobbyNewBloomMatchPoints.Player players = 1; -} - message CMsgMakeOffering { optional uint64 item_id = 1; } @@ -961,3 +1002,24 @@ message CMsgRequestOfferingsResponse { optional bool completed = 2; } +message CMsgLeagueAdminList { + repeated uint32 account_ids = 1; +} + +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; +} + diff --git a/Resources/Protobufs/dota test/dota_gcmessages_server.proto b/Resources/Protobufs/dota test/dota_gcmessages_server.proto index 71303935..1d5570a9 100644 --- a/Resources/Protobufs/dota test/dota_gcmessages_server.proto +++ b/Resources/Protobufs/dota test/dota_gcmessages_server.proto @@ -19,13 +19,31 @@ message CMsgConnectedPlayers { message Player { optional fixed64 steam_id = 1; optional uint32 hero_id = 2; + optional .CMsgLeaverState leaver_state = 3; } - repeated .CMsgConnectedPlayers.Player players = 1; + enum SendReason { + INVALID = 0; + HEARTBEAT = 1; + GAME_STATE = 2; + FIRST_BLOOD = 3; + PLAYER_CONNECTED = 4; + PLAYER_HERO = 5; + PLAYER_DISCONNECTED_CONSEQUENCES = 6; + PLAYER_DISCONNECTED_NOCONSEQUENCES = 7; + SPECTATOR_COUNT = 8; + TOWER_STATE = 9; + GAMESTATE_TIMEOUT = 10; + } + + repeated .CMsgConnectedPlayers.Player connected_players = 1; + repeated .CMsgConnectedPlayers.Player disconnected_players = 7; optional .DOTA_GameState game_state = 2 [default = DOTA_GAMERULES_STATE_INIT]; optional uint32 num_spectators = 3; optional uint32 tower_state = 4; - optional bool skip_player_validation = 5; + optional bool legacy_skip_player_validation = 5; + optional bool first_blood_happened = 6; + optional .CMsgConnectedPlayers.SendReason send_reason = 8 [default = INVALID]; } message CMsgGameServerInfo { @@ -59,7 +77,10 @@ message CMsgGameServerInfo { message CMsgLeaverDetected { optional fixed64 steam_id = 1; - optional uint32 leaver_status = 2; + optional .DOTALeaverStatus_t leaver_status = 2 [default = DOTA_LEAVER_NONE]; + optional bool obsolete_mass_disconnect = 3; + optional .CMsgLeaverState leaver_state = 4; + optional uint32 server_cluster = 5; } message CMsgLeaverDetectedResponse { @@ -145,6 +166,7 @@ message CMsgGameMatchSignOut { repeated .CMsgEconPlayerStrangeCountAdjustment player_strange_count_adjustments = 17; optional bool automatic_surrender = 18; optional uint32 server_version = 19; + optional bool mass_disconnect = 21; repeated .CMsgGameMatchSignOut.CAdditionalSignoutMsg additional_msgs = 20; } @@ -248,6 +270,25 @@ message CMsgDOTARequestPlayerResourcesResponse { optional bool low_priority = 6; } +message CMsgDOTARequestBatchPlayerResources { + repeated uint32 account_ids = 1 [packed = true]; + optional bool rank_use_competitive = 2; + repeated bool rank_use_solo = 3 [packed = true]; +} + +message CMsgDOTARequestBatchPlayerResourcesResponse { + message Result { + optional uint32 account_id = 1; + optional bool prevent_text_chat = 2; + optional bool prevent_voice_chat = 3; + optional uint32 rank = 4; + optional bool rank_calibrated = 5; + optional bool low_priority = 6; + } + + repeated .CMsgDOTARequestBatchPlayerResourcesResponse.Result results = 6; +} + message CMsgDOTAPlayerFailedToConnect { repeated fixed64 failed_loaders = 1; repeated fixed64 abandoned_loaders = 2; @@ -358,6 +399,7 @@ message CMsgDOTAAwardEventPoints { optional uint32 account_id = 1; optional int32 points = 2; optional int32 premium_points = 3; + optional int32 rank = 4; } repeated .CMsgDOTAAwardEventPoints.AwardPoints award_points = 1; diff --git a/Resources/Protobufs/dota test/dota_usermessages.proto b/Resources/Protobufs/dota test/dota_usermessages.proto index d41cf381..f732bea4 100644 --- a/Resources/Protobufs/dota test/dota_usermessages.proto +++ b/Resources/Protobufs/dota test/dota_usermessages.proto @@ -62,6 +62,10 @@ enum EDotaUserMessages { DOTA_UM_VoteStart = 120; DOTA_UM_VoteUpdate = 121; DOTA_UM_VoteEnd = 122; + DOTA_UM_BoosterState = 123; + DOTA_UM_WillPurchaseAlert = 124; + DOTA_UM_TutorialMinimapPosition = 125; + DOTA_UM_PlayerMMR = 126; } enum DOTA_CHAT_MESSAGE { @@ -86,7 +90,7 @@ enum DOTA_CHAT_MESSAGE { CHAT_MESSAGE_DISCONNECT_TIME_REMAINING = 17; CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL = 18; CHAT_MESSAGE_RECONNECT = 19; - CHAT_MESSAGE_ABANDON = 20; + CHAT_MESSAGE_PLAYER_LEFT = 20; CHAT_MESSAGE_SAFE_TO_LEAVE = 21; CHAT_MESSAGE_RUNE_PICKUP = 22; CHAT_MESSAGE_RUNE_BOTTLE = 23; @@ -106,7 +110,6 @@ enum DOTA_CHAT_MESSAGE { CHAT_MESSAGE_AUTO_UNPAUSED = 37; CHAT_MESSAGE_YOUPAUSED = 38; CHAT_MESSAGE_CANTUNPAUSETEAM = 39; - CHAT_MESSAGE_SAFE_TO_LEAVE_ABANDONER = 40; CHAT_MESSAGE_VOICE_TEXT_BANNED = 41; CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME = 42; CHAT_MESSAGE_REPORT_REMINDER = 43; @@ -114,7 +117,6 @@ enum DOTA_CHAT_MESSAGE { CHAT_MESSAGE_TAUNT = 45; CHAT_MESSAGE_RANDOM = 46; CHAT_MESSAGE_RD_TURN = 47; - CHAT_MESSAGE_SAFE_TO_LEAVE_ABANDONER_EARLY = 48; CHAT_MESSAGE_DROP_RATE_BONUS = 49; CHAT_MESSAGE_NO_BATTLE_POINTS = 50; CHAT_MESSAGE_DENIED_AEGIS = 51; @@ -126,19 +128,23 @@ enum DOTA_CHAT_MESSAGE { CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED = 57; CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED = 58; CHAT_MESSAGE_HOLDOUT_WALL_FINISHED = 59; - CHAT_MESSAGE_SAFE_TO_LEAVE_ABANDONER_AFK = 60; - CHAT_MESSAGE_SAFE_TO_LEAVE_ABANDONER_AFK_EARLY = 61; - CHAT_MESSAGE_ABANDON_LIMITED_HERO = 62; + CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO = 62; CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION = 63; CHAT_MESSAGE_DISCONNECT_LIMITED_HERO = 64; CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION = 65; CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS = 66; CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE = 67; - CHAT_MESSAGE_SAFE_TO_LEAVE_RANKED = 68; - CHAT_MESSAGE_SAFE_TO_LEAVE_ABANDONER_RANKED = 69; - CHAT_MESSAGE_SAFE_TO_LEAVE_ABANDONER_EARLY_RANKED = 70; - CHAT_MESSAGE_SAFE_TO_LEAVE_ABANDONER_AFK_RANKED = 71; - CHAT_MESSAGE_SAFE_TO_LEAVE_ABANDONER_AFK_EARLY_RANKED = 72; + CHAT_MESSAGE_PLAYER_LEFT_AFK = 73; + CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG = 74; + CHAT_MESSAGE_PLAYER_ABANDONED = 75; + CHAT_MESSAGE_PLAYER_ABANDONED_AFK = 76; + CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG = 77; + CHAT_MESSAGE_WILL_NOT_BE_SCORED = 78; + CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED = 79; + CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK = 80; + CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED = 81; + CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON = 82; + CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS = 83; } enum DOTA_NO_BATTLE_POINTS_REASONS { @@ -301,6 +307,11 @@ message CDOTAUserMsg_ItemAlert { optional .CDOTAMsg_ItemAlert item_alert = 2; } +message CDOTAUserMsg_WillPurchaseAlert { + optional int32 itemid = 1; + optional int32 player_id = 2; +} + message CDOTAUserMsg_MinimapEvent { optional int32 event_type = 1; optional int32 entity_handle = 2; @@ -328,6 +339,8 @@ message CDOTAUserMsg_CreateLinearProjectile { optional int32 entindex = 4; optional int32 particle_index = 5; optional int32 handle = 6; + optional .CMsgVector2D acceleration = 7; + optional float max_speed = 8; } message CDOTAUserMsg_DestroyLinearProjectile { @@ -554,6 +567,9 @@ message CDOTAUserMsg_TutorialFinish { optional bool success = 4; } +message CDOTAUserMsg_TutorialMinimapPosition { +} + message CDOTAUserMsg_SendGenericToolTip { optional string title = 1; optional string text = 2; @@ -678,3 +694,19 @@ message CDOTAUserMsg_VoteEnd { optional int32 selected_choice = 1; } +message CDOTAUserMsg_BoosterStatePlayer { + optional uint32 player_id = 1; + optional float bonus = 2; + optional float event_bonus = 3; + optional uint32 bonus_item_id = 4; + optional uint32 event_bonus_item_id = 5; +} + +message CDOTAUserMsg_BoosterState { + repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1; +} + +message CDOTAUserMsg_PlayerMMR { + repeated sint32 mmr = 1 [packed = true]; +} + diff --git a/Resources/Protobufs/dota test/econ_gcmessages.proto b/Resources/Protobufs/dota test/econ_gcmessages.proto index 963f8e51..03002c7f 100644 --- a/Resources/Protobufs/dota test/econ_gcmessages.proto +++ b/Resources/Protobufs/dota test/econ_gcmessages.proto @@ -106,14 +106,10 @@ enum EGCItemMsg { k_EMsgGCDev_NewItemRequestResponse = 2002; k_EMsgGCStoreGetUserData = 2500; k_EMsgGCStoreGetUserDataResponse = 2501; - k_EMsgGCStorePurchaseInit_DEPRECATED = 2502; - k_EMsgGCStorePurchaseInitResponse_DEPRECATED = 2503; k_EMsgGCStorePurchaseFinalize = 2504; k_EMsgGCStorePurchaseFinalizeResponse = 2505; k_EMsgGCStorePurchaseCancel = 2506; k_EMsgGCStorePurchaseCancelResponse = 2507; - k_EMsgGCStorePurchaseQueryTxn = 2508; - k_EMsgGCStorePurchaseQueryTxnResponse = 2509; k_EMsgGCStorePurchaseInit = 2510; k_EMsgGCStorePurchaseInitResponse = 2511; k_EMsgGCBannedWordListRequest = 2512; @@ -145,6 +141,8 @@ enum EGCItemMsg { k_EMsgGCToGCGetUserSessionServerResponse = 2542; k_EMsgGCToGCGetUserServerMembers = 2543; k_EMsgGCToGCGetUserServerMembersResponse = 2544; + k_EMsgGCToGCGetUserPCBangNo = 2545; + k_EMsgGCToGCGetUserPCBangNoResponse = 2546; } enum EGCMsgResponse { @@ -267,3 +265,24 @@ message CMsgGCToGCGetUserServerMembersResponse { repeated uint32 member_account_id = 1; } +message CMsgLookupMultipleAccountNames { + repeated uint32 accountids = 1 [packed = true]; +} + +message CMsgLookupMultipleAccountNamesResponse { + message Account { + optional uint32 accountid = 1; + optional string persona = 2; + } + + repeated .CMsgLookupMultipleAccountNamesResponse.Account accounts = 1; +} + +message CMsgGCToGCGetUserPCBangNo { + optional uint32 account_id = 1; +} + +message CMsgGCToGCGetUserPCBangNoResponse { + optional uint32 pc_bang_no = 1; +} + diff --git a/Resources/Protobufs/dota test/gcsdk_gcmessages.proto b/Resources/Protobufs/dota test/gcsdk_gcmessages.proto index 547724fe..61cee233 100644 --- a/Resources/Protobufs/dota test/gcsdk_gcmessages.proto +++ b/Resources/Protobufs/dota test/gcsdk_gcmessages.proto @@ -142,14 +142,11 @@ message CMsgGCRequestSubGCSessionInfoResponse { optional bool trusted = 2; } -message CMsgGCToGCIncrementRecruitmentLevel { - optional fixed64 steamid = 1; -} - message CMsgSOCacheHaveVersion { optional .CMsgSOIDOwner soid = 1; optional fixed64 version = 2; optional uint32 service_id = 3; + optional uint32 cached_file_version = 4; } message CMsgClientHello { @@ -204,3 +201,18 @@ message CMsgGCToGCSOCacheUnsubscribe { message CMsgGCClientPing { } +message CWorkshop_PopulateItemDescriptions_Request { + message SingleItemDescription { + optional uint32 gameitemid = 1; + optional string item_description = 2; + } + + message ItemDescriptionsLanguageBlock { + optional string language = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription descriptions = 2; + } + + optional uint32 appid = 1; + repeated .CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock languages = 2; +} + diff --git a/Resources/Protobufs/dota test/gcsystemmsgs.proto b/Resources/Protobufs/dota test/gcsystemmsgs.proto index 212734ed..24916a6c 100644 --- a/Resources/Protobufs/dota test/gcsystemmsgs.proto +++ b/Resources/Protobufs/dota test/gcsystemmsgs.proto @@ -78,6 +78,7 @@ enum EGCSystemMsg { k_EGCMsgCheckFriendshipResponse = 506; k_EGCMsgGetPartnerAccountLink = 507; k_EGCMsgGetPartnerAccountLinkResponse = 508; + k_EGCMsgVSReportedSuspiciousActivity = 509; } enum ESOMsg { diff --git a/Resources/Protobufs/dota test/matchmaker_common.proto b/Resources/Protobufs/dota test/matchmaker_common.proto index c9f180bf..41646760 100644 --- a/Resources/Protobufs/dota test/matchmaker_common.proto +++ b/Resources/Protobufs/dota test/matchmaker_common.proto @@ -13,6 +13,9 @@ enum DOTABotDifficulty { BOT_DIFFICULTY_HARD = 3; BOT_DIFFICULTY_UNFAIR = 4; BOT_DIFFICULTY_INVALID = 5; + BOT_DIFFICULTY_EXTRA1 = 6; + BOT_DIFFICULTY_EXTRA2 = 7; + BOT_DIFFICULTY_EXTRA3 = 8; } enum MatchLanguages { diff --git a/Resources/Protobufs/dota test/steammessages.proto b/Resources/Protobufs/dota test/steammessages.proto index 8e481e72..9ed8a670 100644 --- a/Resources/Protobufs/dota test/steammessages.proto +++ b/Resources/Protobufs/dota test/steammessages.proto @@ -497,3 +497,14 @@ message CMsgGCHUpdateSession { repeated .CMsgGCHUpdateSession.ExtraField extra_fields = 9; } +message CMsgNotificationOfSuspiciousActivity { + message MultipleGameInstances { + optional uint32 app_instance_count = 1; + repeated fixed64 other_steamids = 2; + } + + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional .CMsgNotificationOfSuspiciousActivity.MultipleGameInstances multiple_instances = 3; +} +