From 747b64686ec261f75fcf203ea60628be72d55d53 Mon Sep 17 00:00:00 2001 From: builder_247 <14019974+builder-247@users.noreply.github.com> Date: Tue, 28 May 2024 15:44:14 +0300 Subject: [PATCH 1/7] update protos --- proto/base_gcmessages.proto | 1 + proto/clientmessages.proto | 5 + proto/connectionless_netmessages.proto | 2 - proto/demo.proto | 15 +- proto/dota_clientmessages.proto | 39 ++ proto/dota_commonmessages.proto | 1 + proto/dota_gcmessages_client.proto | 89 ++-- ...dota_gcmessages_client_battle_report.proto | 1 + proto/dota_gcmessages_client_candy_shop.proto | 90 ++-- proto/dota_gcmessages_client_chat.proto | 3 +- ...a_gcmessages_client_match_management.proto | 3 + proto/dota_gcmessages_client_showcase.proto | 1 + proto/dota_gcmessages_client_watch.proto | 2 + proto/dota_gcmessages_common.proto | 120 ++++- proto/dota_gcmessages_common_lobby.proto | 12 + ...a_gcmessages_common_match_management.proto | 3 + proto/dota_gcmessages_common_overworld.proto | 411 ++++++++++++++++++ proto/dota_gcmessages_msgid.proto | 54 ++- proto/dota_gcmessages_server.proto | 88 +++- proto/dota_gcmessages_webapi.proto | 1 + proto/dota_match_metadata.proto | 9 +- proto/dota_modifiers.proto | 2 +- proto/dota_scenariomessages.proto | 1 + proto/dota_shared_enums.proto | 20 +- proto/dota_usermessages.proto | 32 ++ proto/econ_gcmessages.proto | 81 +++- proto/gcsdk_gcmessages.proto | 10 +- proto/netmessages.proto | 32 +- proto/networkbasetypes.proto | 6 +- proto/steamdatagram_messages_sdr.proto | 1 + proto/steammessages_gamenetworkingui.proto | 19 + ...eammessages_steamlearn.steamworkssdk.proto | 60 +-- proto/steamnetworkingsockets_messages.proto | 28 -- ...teamnetworkingsockets_messages_certs.proto | 1 - proto/usercmd.proto | 3 +- proto/usermessages.proto | 90 +++- 36 files changed, 1108 insertions(+), 228 deletions(-) create mode 100644 proto/dota_gcmessages_common_overworld.proto diff --git a/proto/base_gcmessages.proto b/proto/base_gcmessages.proto index 28df31fb1..1569604b5 100644 --- a/proto/base_gcmessages.proto +++ b/proto/base_gcmessages.proto @@ -45,6 +45,7 @@ message CGCStorePurchaseInit_LineItem { optional uint32 cost_in_local_currency = 3; optional uint32 purchase_type = 4; optional uint64 source_reference_id = 5; + optional int32 price_index = 6; } message CMsgGCStorePurchaseInit { diff --git a/proto/clientmessages.proto b/proto/clientmessages.proto index ca4580018..484ae5744 100644 --- a/proto/clientmessages.proto +++ b/proto/clientmessages.proto @@ -5,6 +5,7 @@ enum EBaseClientMessages { CM_DevPaletteVisibilityChanged = 283; CM_WorldUIControllerHasPanelChanged = 284; CM_RotateAnchor = 285; + CM_ListenForResponseFound = 286; CM_MAX_BASE = 300; } @@ -46,3 +47,7 @@ message CClientMsg_WorldUIControllerHasPanelChangedEvent { message CClientMsg_RotateAnchor { optional float angle = 1; } + +message CClientMsg_ListenForResponseFound { + optional int32 player_slot = 1 [default = -1]; +} diff --git a/proto/connectionless_netmessages.proto b/proto/connectionless_netmessages.proto index 4109caa40..10f7a9e52 100644 --- a/proto/connectionless_netmessages.proto +++ b/proto/connectionless_netmessages.proto @@ -10,10 +10,8 @@ message C2S_CONNECT_Message { repeated .CCLCMsg_SplitPlayerConnect splitplayers = 7; optional bytes auth_steam = 8; optional string challenge_context = 9; - optional sint32 use_snp = 10; } message C2S_CONNECTION_Message { optional string addon_name = 1; - optional bool use_snp = 2; } diff --git a/proto/demo.proto b/proto/demo.proto index e1eb1bbbf..7a1d47239 100644 --- a/proto/demo.proto +++ b/proto/demo.proto @@ -17,7 +17,8 @@ enum EDemoCommands { DEM_SaveGame = 14; DEM_SpawnGroups = 15; DEM_AnimationData = 16; - DEM_Max = 17; + DEM_AnimationHeader = 17; + DEM_Max = 18; DEM_IsCompressed = 64; } @@ -36,6 +37,7 @@ message CDemoFileHeader { optional string demo_version_guid = 12; optional int32 build_num = 13; optional string game = 14; + optional int32 server_start_tick = 15; } message CGameInfo { @@ -67,7 +69,12 @@ message CGameInfo { optional uint32 end_time = 11; } + message CCSGameInfo { + repeated int32 round_start_ticks = 1; + } + optional .CGameInfo.CDotaGameInfo dota = 4; + optional .CGameInfo.CCSGameInfo cs = 5; } message CDemoFileInfo { @@ -123,6 +130,12 @@ message CDemoCustomDataCallbacks { repeated string save_id = 1; } +message CDemoAnimationHeader { + optional sint32 entity_id = 1; + optional int32 tick = 2; + optional bytes data = 3; +} + message CDemoAnimationData { optional sint32 entity_id = 1; optional int32 start_tick = 2; diff --git a/proto/dota_clientmessages.proto b/proto/dota_clientmessages.proto index ee51363be..e0b3ad6a4 100644 --- a/proto/dota_clientmessages.proto +++ b/proto/dota_clientmessages.proto @@ -1,5 +1,6 @@ import "dota_commonmessages.proto"; import "dota_shared_enums.proto"; +import "base_gcmessages.proto"; enum EDotaClientMessages { DOTA_CM_MapLine = 301; @@ -102,6 +103,11 @@ enum EDotaClientMessages { DOTA_CM_ChatWheelAlert = 804; DOTA_CM_AbilityAlert = 805; DOTA_CM_AllyAbilityAlert = 806; + DOTA_CM_GiftPlayer = 807; + DOTA_CM_GiftEveryone = 808; + DOTA_CM_SelectOverworldTokenRewards = 809; + DOTA_CM_FacetAlert = 810; + DOTA_CM_InnateAlert = 811; } message CDOTAClientMsg_MapPing { @@ -118,6 +124,8 @@ message CDOTAClientMsg_EnemyItemAlert { optional int32 item_level = 3 [default = -1]; optional int32 primary_charges = 4 [default = -1]; optional int32 secondary_charges = 5 [default = -1]; + optional int32 ability_id = 6 [default = -1]; + optional int32 owner_entindex = 7 [default = -1]; } message CDOTAClientMsg_ModifierAlert { @@ -301,6 +309,8 @@ message CDOTAClientMsg_DemoHero { repeated uint64 item_ids = 4; optional uint32 style_index = 5 [default = 255]; optional bool keep_existing_demohero = 6; + repeated .CSOEconItem item_data = 7; + optional int32 hero_variant = 8; } message CDOTAClientMsg_ChallengeSelect { @@ -450,6 +460,15 @@ message CDOTAClientMsg_SalutePlayer { optional int32 event_id = 2; } +message CDOTAClientMsg_GiftPlayer { + optional int32 target_player_id = 1 [default = -1]; + optional uint32 item_def_index = 2; +} + +message CDOTAClientMsg_GiftEveryone { + optional uint32 item_def_index = 1; +} + message CDOTAClientMsg_TipAlert { optional string tip_text = 1; } @@ -570,4 +589,24 @@ message CDOTAClientMsg_PlayerDraftPreferTeam { message CDOTAClientMsg_AbilityAlert { optional uint32 ability_entindex = 1 [default = 16777215]; optional bool ctrl_held = 2; + optional int32 owner_entindex = 3 [default = -1]; + optional int32 ability_id = 4 [default = -1]; + optional uint32 primary_charges = 5; + optional uint32 secondary_charges = 6; + optional float reclaim_time = 7; +} + +message CDOTAClientMsg_SelectOverworldTokenRewards { + repeated uint32 token_ids = 1; +} + +message CDOTAClientMsg_FacetAlert { + optional uint32 facet_strhash = 1; + optional uint32 hero_entindex = 2 [default = 16777215]; + optional bool ctrl_held = 3; +} + +message CDOTAClientMsg_InnateAlert { + optional uint32 ability_entindex = 1 [default = 16777215]; + optional bool ctrl_held = 2; } diff --git a/proto/dota_commonmessages.proto b/proto/dota_commonmessages.proto index 9d4513929..6b9c87252 100644 --- a/proto/dota_commonmessages.proto +++ b/proto/dota_commonmessages.proto @@ -58,6 +58,7 @@ enum dotaunitorder_t { DOTA_UNIT_ORDER_TAKE_ITEM_FROM_NEUTRAL_ITEM_STASH = 38; DOTA_UNIT_ORDER_MOVE_RELATIVE = 39; DOTA_UNIT_ORDER_CAST_TOGGLE_ALT = 40; + DOTA_UNIT_ORDER_CONSUME_ITEM = 41; } enum EDOTAVersusScenePlayerBehavior { diff --git a/proto/dota_gcmessages_client.proto b/proto/dota_gcmessages_client.proto index 78dc7edd0..1b7010b52 100644 --- a/proto/dota_gcmessages_client.proto +++ b/proto/dota_gcmessages_client.proto @@ -106,6 +106,12 @@ enum EDOTADraftTriviaAnswerResult { 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; } @@ -568,11 +574,6 @@ message CMsgGCItemEditorReleaseReservationResponse { optional bool released = 2; } -message CMsgDOTARewardTutorialPrizes { - optional uint32 location_id = 1; - optional bool tracking_only = 2; -} - message CMsgFlipLobbyTeams { } @@ -599,50 +600,6 @@ message CMsgDOTAClaimEventAction { optional .CMsgDOTAClaimEventActionData data = 4; } -message CMsgDOTAClaimEventActionResponse { - message MysteryItemRewardData { - optional uint32 item_def = 1; - optional uint32 item_category = 2; - } - - message LootListRewardData { - repeated uint32 item_def = 1; - } - - message ActionListRewardData { - optional uint32 action_id = 1; - optional bytes result_reward_data = 2; - } - - message GrantedRewardData { - optional uint32 grant_index = 1; - optional uint32 score_index = 2; - optional uint32 reward_index = 3; - optional bytes reward_data = 4; - } - - enum ResultCode { - Success = 0; - InvalidEvent = 1; - EventNotActive = 2; - InvalidAction = 3; - ServerError = 4; - InsufficientPoints = 5; - InsufficentLevel = 6; - AlreadyClaimed = 7; - SDOLockFailure = 8; - SDOLoadFailure = 9; - EventNotOwned = 10; - Timeout = 11; - RequiresPlusSubscription = 12; - InvalidItem = 13; - AsyncRewards = 14; - } - - optional .CMsgDOTAClaimEventActionResponse.ResultCode result = 1 [default = Success]; - repeated .CMsgDOTAClaimEventActionResponse.GrantedRewardData reward_results = 2; -} - message CMsgClientToGCClaimEventActionUsingItem { optional uint32 event_id = 1; optional uint32 action_id = 2; @@ -758,6 +715,7 @@ message CMsgDOTAGetPlayerMatchHistoryResponse { 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; @@ -1860,6 +1818,7 @@ message CMsgGCToClientCommendNotification { optional uint32 commender_account_id = 1; optional string commender_name = 2; optional uint32 flags = 3; + optional uint32 commender_hero_id = 4; } message CMsgDOTAClientToGCQuickStatsRequest { @@ -3333,3 +3292,35 @@ message CMsgLobbyRoadToTIMatchQuestData { 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 uint32 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; +} diff --git a/proto/dota_gcmessages_client_battle_report.proto b/proto/dota_gcmessages_client_battle_report.proto index bba088a3d..ae2d528a9 100644 --- a/proto/dota_gcmessages_client_battle_report.proto +++ b/proto/dota_gcmessages_client_battle_report.proto @@ -184,6 +184,7 @@ message CMsgBattleReport_Game { optional int32 item3 = 48 [default = -1]; optional int32 item4 = 49 [default = -1]; optional int32 item5 = 50 [default = -1]; + optional uint32 selected_facet = 51; } message CMsgBattleReport_GameList { diff --git a/proto/dota_gcmessages_client_candy_shop.proto b/proto/dota_gcmessages_client_candy_shop.proto index c568eb500..0cdd7ad99 100644 --- a/proto/dota_gcmessages_client_candy_shop.proto +++ b/proto/dota_gcmessages_client_candy_shop.proto @@ -16,8 +16,11 @@ enum ECandyShopAuditAction { k_ECandyShopAuditAction_RerollRewards = 4; k_ECandyShopAuditAction_DoVariableExchange = 5; k_ECandyShopAuditAction_DoExchange = 6; - k_ECandyShopAuditAction_EventActionGrantInventorySizeIncrease = 7; + k_ECandyShopAuditAction_DEPRECATED_EventActionGrantInventorySizeIncrease = 7; k_ECandyShopAuditAction_EventActionGrantRerollChargesIncrease = 8; + k_ECandyShopAuditAction_EventActionGrantUpgrade_InventorySize = 100; + k_ECandyShopAuditAction_EventActionGrantUpgrade_RewardShelf = 101; + k_ECandyShopAuditAction_EventActionGrantUpgrade_ExtraExchangeRecipe = 102; } enum ECandyShopRewardType { @@ -49,7 +52,6 @@ message CMsgCandyShopRewardData_Item { message CMsgCandyShopRewardData_EventAction { optional .EEvent event_id = 1 [default = EVENT_ID_NONE]; optional uint32 action_id = 2; - optional uint32 quantity = 3; } message CMsgCandyShopRewardData_EventPoints { @@ -68,12 +70,15 @@ message CMsgCandyShopReward { } message CMsgCandyShopUserData { - optional uint32 inventory_size = 1; + optional uint32 inventory_max = 1; optional .CMsgCandyShopCandyQuantity inventory = 2; - optional fixed32 exchange_reset_timestamp = 3; - repeated .CMsgCandyShopExchangeRecipe exchange_recipes = 4; - repeated .CMsgCandyShopReward active_rewards = 5; - optional uint32 reroll_charges = 6; + optional uint32 exchange_recipe_max = 3; + optional fixed32 exchange_reset_timestamp = 4; + repeated .CMsgCandyShopExchangeRecipe exchange_recipes = 5; + optional uint32 active_reward_max = 6; + repeated .CMsgCandyShopReward active_rewards = 7; + optional uint32 reroll_charges_max = 8; + optional uint32 reroll_charges = 9; } message CMsgClientToGCCandyShopGetUserData { @@ -202,17 +207,13 @@ message CMsgClientToGCCandyShopRerollRewardsResponse { k_eInvalidShop = 5; k_eNoRerollCharges = 6; k_eExpiredShop = 7; + k_eShopNotOpen = 8; } optional .CMsgClientToGCCandyShopRerollRewardsResponse.EResponse response = 1 [default = k_eInternalError]; } -message CMsgClientToGCCandyShopDevGrantCandy { - optional uint32 candy_shop_id = 1; - optional .CMsgCandyShopCandyQuantity candy_quantity = 2; -} - -message CMsgClientToGCCandyShopDevGrantCandyResponse { +message CCandyShopDev { enum EResponse { k_eInternalError = 0; k_eSuccess = 1; @@ -223,8 +224,15 @@ message CMsgClientToGCCandyShopDevGrantCandyResponse { k_eInvalidShop = 6; k_eNotEnoughSpace = 7; } +} - optional .CMsgClientToGCCandyShopDevGrantCandyResponse.EResponse response = 1 [default = k_eInternalError]; +message CMsgClientToGCCandyShopDevGrantCandy { + optional uint32 candy_shop_id = 1; + optional .CMsgCandyShopCandyQuantity candy_quantity = 2; +} + +message CMsgClientToGCCandyShopDevGrantCandyResponse { + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; } message CMsgClientToGCCandyShopDevClearInventory { @@ -232,17 +240,7 @@ message CMsgClientToGCCandyShopDevClearInventory { } message CMsgClientToGCCandyShopDevClearInventoryResponse { - enum EResponse { - k_eInternalError = 0; - k_eSuccess = 1; - k_eTooBusy = 2; - k_eDisabled = 3; - k_eTimeout = 4; - k_eNotAllowed = 5; - k_eInvalidShop = 6; - } - - optional .CMsgClientToGCCandyShopDevClearInventoryResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; } message CMsgClientToGCCandyShopDevGrantCandyBags { @@ -251,17 +249,7 @@ message CMsgClientToGCCandyShopDevGrantCandyBags { } message CMsgClientToGCCandyShopDevGrantCandyBagsResponse { - enum EResponse { - k_eInternalError = 0; - k_eSuccess = 1; - k_eTooBusy = 2; - k_eDisabled = 3; - k_eTimeout = 4; - k_eNotAllowed = 5; - k_eInvalidShop = 6; - } - - optional .CMsgClientToGCCandyShopDevGrantCandyBagsResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; } message CMsgClientToGCCandyShopDevShuffleExchange { @@ -269,17 +257,7 @@ message CMsgClientToGCCandyShopDevShuffleExchange { } message CMsgClientToGCCandyShopDevShuffleExchangeResponse { - enum EResponse { - k_eInternalError = 0; - k_eSuccess = 1; - k_eTooBusy = 2; - k_eDisabled = 3; - k_eTimeout = 4; - k_eNotAllowed = 5; - k_eInvalidShop = 6; - } - - optional .CMsgClientToGCCandyShopDevShuffleExchangeResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; } message CMsgClientToGCCandyShopDevGrantRerollCharges { @@ -288,15 +266,13 @@ message CMsgClientToGCCandyShopDevGrantRerollCharges { } message CMsgClientToGCCandyShopDevGrantRerollChargesResponse { - enum EResponse { - k_eInternalError = 0; - k_eSuccess = 1; - k_eTooBusy = 2; - k_eDisabled = 3; - k_eTimeout = 4; - k_eNotAllowed = 5; - k_eInvalidShop = 6; - } + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCCandyShopDevResetShop { + optional uint32 candy_shop_id = 1; +} - optional .CMsgClientToGCCandyShopDevGrantRerollChargesResponse.EResponse response = 1 [default = k_eInternalError]; +message CMsgClientToGCCandyShopDevResetShopResponse { + optional .CCandyShopDev.EResponse response = 1 [default = k_eInternalError]; } diff --git a/proto/dota_gcmessages_client_chat.proto b/proto/dota_gcmessages_client_chat.proto index 3e83986bd..e1b5c68f0 100644 --- a/proto/dota_gcmessages_client_chat.proto +++ b/proto/dota_gcmessages_client_chat.proto @@ -103,7 +103,6 @@ message CMsgDOTAChatMessage { optional uint32 fantasy_draft_player_account_id = 9; optional uint32 event_id = 10; optional bool suggest_invite_to_lobby = 11; - optional uint32 event_points = 12; optional bool coin_flip = 13; optional int32 player_id = 14 [default = -1]; optional uint32 share_profile_account_id = 15; @@ -131,6 +130,8 @@ message CMsgDOTAChatMessage { optional int32 suggest_player_draft_pick = 39 [default = -1]; optional .CMsgDOTAChatMessage.PlayerDraftPick player_draft_pick = 40; optional .CMsgDOTAChatMessage.ChatWheelMessage chat_wheel_message = 41; + optional uint32 event_level = 42; + optional uint32 suggest_pick_hero_facet = 43; } message CMsgDOTAChatMember { diff --git a/proto/dota_gcmessages_client_match_management.proto b/proto/dota_gcmessages_client_match_management.proto index ff22be3d3..64d4a983a 100644 --- a/proto/dota_gcmessages_client_match_management.proto +++ b/proto/dota_gcmessages_client_match_management.proto @@ -100,6 +100,9 @@ message CMsgReadyUpStatus { optional fixed64 lobby_id = 1; repeated uint32 accepted_ids = 2; repeated uint32 declined_ids = 3; + repeated uint32 accepted_indices = 4; + repeated uint32 declined_indices = 5; + optional .DOTALobbyReadyState local_ready_state = 6 [default = DOTALobbyReadyState_UNDECLARED]; } message CMsgAbandonCurrentGame { diff --git a/proto/dota_gcmessages_client_showcase.proto b/proto/dota_gcmessages_client_showcase.proto index 5717950b3..547d4e857 100644 --- a/proto/dota_gcmessages_client_showcase.proto +++ b/proto/dota_gcmessages_client_showcase.proto @@ -214,6 +214,7 @@ message CMsgShowcaseItemData { .CMsgShowcaseItem_EconItem creep = 17; .CMsgShowcaseItem_EconItem tower = 18; .CMsgShowcaseItem_EconItem effigy = 19; + .CMsgShowcaseItem_EconItem decoration = 20; .CMsgShowcaseBackground background = 100; } } diff --git a/proto/dota_gcmessages_client_watch.proto b/proto/dota_gcmessages_client_watch.proto index 613033abf..fdccabdaf 100644 --- a/proto/dota_gcmessages_client_watch.proto +++ b/proto/dota_gcmessages_client_watch.proto @@ -4,6 +4,8 @@ message CSourceTVGameSmall { message Player { optional uint32 account_id = 1; optional uint32 hero_id = 2; + optional uint32 team_slot = 3; + optional uint32 team = 4; } optional uint32 activate_time = 1; diff --git a/proto/dota_gcmessages_common.proto b/proto/dota_gcmessages_common.proto index 95090518d..81ac21b3f 100644 --- a/proto/dota_gcmessages_common.proto +++ b/proto/dota_gcmessages_common.proto @@ -111,6 +111,22 @@ enum EStickerbookPageType { STICKER_PAGE_TALENT = 2; } +enum ENewBloomGiftingResponse { + kENewBloomGifting_Success = 0; + kENewBloomGifting_UnknownFailure = 1; + kENewBloomGifting_MalformedRequest = 2; + kENewBloomGifting_FeatureDisabled = 3; + kENewBloomGifting_ItemNotFound = 4; + kENewBloomGifting_PlayerNotAllowedToGiveGifts = 5; + kENewBloomGifting_TargetNotAllowedToReceiveGifts = 6; + kENewBloomGifting_ServerNotAuthorized = 100; + kENewBloomGifting_PlayerNotInLobby = 101; + kENewBloomGifting_TargetNotInLobby = 102; + kENewBloomGifting_LobbyNotEligible = 103; + kENewBloomGifting_TargetNotFriend = 200; + kENewBloomGifting_TargetFriendDurationTooShort = 201; +} + message CSODOTAGameAccountClient { message RoleHandicap { optional uint32 role = 1; @@ -172,6 +188,7 @@ message CSODOTAGameAccountClient { repeated .CSODOTAGameAccountClient.RoleHandicap role_handicaps = 115; optional uint32 event_mode_recent_time = 120; optional uint32 mmr_recalibration_time = 121; + repeated uint32 banned_hero_ids = 123; } message CSODOTAGameAccountPlus { @@ -410,7 +427,6 @@ message CMsgDOTAProfileCard { optional uint32 account_id = 1; repeated .CMsgDOTAProfileCard.Slot slots = 3; optional uint32 badge_points = 4; - optional uint32 event_points = 5; optional uint32 event_id = 6; optional .CMsgBattleCupVictory recent_battle_cup_victory = 7; optional uint32 rank_tier = 8; @@ -422,6 +438,7 @@ message CMsgDOTAProfileCard { optional uint32 title = 23; optional uint64 favorite_team_packed = 24; optional uint32 lifetime_games = 25; + optional uint32 event_level = 26; } message CSODOTAPlayerChallenge { @@ -983,6 +1000,7 @@ message CMsgDOTAMatch { optional uint32 outposts_captured = 78; optional .DOTA_GC_TEAM team_number = 80 [default = DOTA_GC_TEAM_GOOD_GUYS]; optional uint32 team_slot = 81; + optional uint32 selected_facet = 82; } message BroadcasterInfo { @@ -1435,6 +1453,14 @@ message CMsgGameDataSpecialValues { repeated .CMsgGameDataSpecialValueBonus bonuses = 6; repeated float values_shard = 7; repeated float values_scepter = 8; + optional .CMsgGameDataFacetAbilityBonus facet_bonus = 9; + optional string required_facet = 10; +} + +message CMsgGameDataFacetAbilityBonus { + optional string name = 1; + repeated float values = 2; + optional uint32 operation = 3; } message CMsgGameDataAbilityOrItem { @@ -1446,6 +1472,7 @@ message CMsgGameDataAbilityOrItem { repeated string notes_loc = 8; optional string shard_loc = 9; optional string scepter_loc = 10; + repeated string facets_loc = 11; optional uint32 type = 20; optional uint64 behavior = 21; optional uint32 target_team = 22; @@ -1470,6 +1497,7 @@ message CMsgGameDataAbilityOrItem { optional bool ability_has_shard = 61; optional bool ability_is_granted_by_scepter = 62; optional bool ability_is_granted_by_shard = 63; + optional bool ability_is_innate = 64; optional uint32 item_cost = 70; optional uint32 item_initial_charges = 71; optional uint32 item_neutral_tier = 72; @@ -1478,7 +1506,20 @@ message CMsgGameDataAbilityOrItem { optional uint32 item_quality = 85; } +message CMsgGameDataAbilityOrItemList { + repeated .CMsgGameDataAbilityOrItem abilities = 1; +} + message CMsgGameDataHero { + message Facet { + optional uint32 color = 1; + optional string title_loc = 2; + optional string description_loc = 3; + optional string name = 4; + optional string icon = 5; + optional int32 gradient_id = 6; + } + optional uint32 id = 1; optional string name = 2; optional uint32 order_id = 3; @@ -1486,6 +1527,7 @@ message CMsgGameDataHero { optional string bio_loc = 6; optional string hype_loc = 7; optional string npe_desc_loc = 8; + repeated .CMsgGameDataHero.Facet facets = 43; optional uint32 str_base = 10; optional float str_gain = 11; optional uint32 agi_base = 12; @@ -1513,6 +1555,7 @@ message CMsgGameDataHero { optional float mana_regen = 38; repeated .CMsgGameDataAbilityOrItem abilities = 40; repeated .CMsgGameDataAbilityOrItem talents = 41; + repeated .CMsgGameDataAbilityOrItemList facet_abilities = 42; } message CMsgGameDataAbilities { @@ -1665,3 +1708,78 @@ message CMsgTrackedStat { optional uint32 tracked_stat_id = 1; optional int32 tracked_stat_value = 2; } + +message CMsgDOTAClaimEventActionResponse { + message MysteryItemRewardData { + optional uint32 item_def = 1; + optional uint32 item_category = 2; + } + + message LootListRewardData { + repeated uint32 item_def = 1; + } + + message ActionListRewardData { + optional uint32 action_id = 1; + optional bytes result_reward_data = 2; + } + + message OverworldTokenRewardData { + message TokenQuantity { + optional uint32 token_id = 1; + optional uint32 token_count = 2; + } + + repeated .CMsgDOTAClaimEventActionResponse.OverworldTokenRewardData.TokenQuantity tokens = 1; + } + + message GrantedRewardData { + optional uint32 grant_index = 1; + optional uint32 score_index = 2; + optional uint32 reward_index = 3; + optional bytes reward_data = 4; + optional uint32 action_id = 5; + } + + enum ResultCode { + Success = 0; + InvalidEvent = 1; + EventNotActive = 2; + InvalidAction = 3; + ServerError = 4; + InsufficientPoints = 5; + InsufficentLevel = 6; + AlreadyClaimed = 7; + SDOLockFailure = 8; + SDOLoadFailure = 9; + EventNotOwned = 10; + Timeout = 11; + RequiresPlusSubscription = 12; + InvalidItem = 13; + AsyncRewards = 14; + } + + optional .CMsgDOTAClaimEventActionResponse.ResultCode result = 1 [default = Success]; + repeated .CMsgDOTAClaimEventActionResponse.GrantedRewardData reward_results = 2; + optional uint32 action_id = 3; +} + +message CMsgClientToGCDotaLabsFeedback { + optional uint32 language = 1; + optional uint32 feedback_item = 2; + optional string feedback = 3; +} + +message CMsgClientToGCDotaLabsFeedbackResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidItem = 6; + } + + optional .CMsgClientToGCDotaLabsFeedbackResponse.EResponse response = 1 [default = k_eInternalError]; +} diff --git a/proto/dota_gcmessages_common_lobby.proto b/proto/dota_gcmessages_common_lobby.proto index 7788a28a1..6a1203464 100644 --- a/proto/dota_gcmessages_common_lobby.proto +++ b/proto/dota_gcmessages_common_lobby.proto @@ -53,6 +53,7 @@ message CMsgLobbyEventPoints { optional uint32 normal_points = 2; optional uint32 premium_points = 3; optional bool owned = 4; + optional uint32 event_level = 7; optional uint64 active_effects_mask = 12; optional uint32 wager_streak = 23; repeated .CMsgEventActionData event_game_custom_actions = 25; @@ -131,6 +132,7 @@ message CSODOTALobbyMember { optional bool is_steam_china = 54; optional uint32 live_spectator_account_id = 55; optional uint32 comms_reports_available = 56; + repeated uint32 banned_hero_ids = 57; } message CSODOTAServerLobbyMember { @@ -140,6 +142,7 @@ message CSODOTAStaticLobbyMember { } message CSODOTAServerStaticLobbyMember { + optional fixed64 steam_id = 1; } message CLobbyTeamDetails { @@ -199,6 +202,13 @@ message CLobbyGuildChallenge { repeated uint32 eligible_account_ids = 8; } +message CDOTALobbyMatchQualityData { + optional uint32 overall_quality = 1; + optional uint32 team_balance = 2; + optional uint32 match_skill_range = 3; + optional uint32 match_behavior = 4; +} + message CSODOTALobby { message CExtraMsg { optional uint32 id = 1; @@ -326,6 +336,7 @@ message CSODOTALobby { optional uint32 lobby_creation_time = 128; optional string event_game_definition = 129; repeated .CSODOTALobby.CExtraMsg extra_startup_messages = 130; + optional .CDOTALobbyMatchQualityData match_quality_data = 131; } message CSODOTAServerLobby { @@ -340,6 +351,7 @@ message CSODOTAStaticLobby { message CSODOTAServerStaticLobby { repeated .CSODOTAServerStaticLobbyMember all_members = 1; + optional float post_patch_strategy_time_buffer = 2; } message CMsgAdditionalLobbyStartupAccountData { diff --git a/proto/dota_gcmessages_common_match_management.proto b/proto/dota_gcmessages_common_match_management.proto index 775a1eac7..cb3b6991a 100644 --- a/proto/dota_gcmessages_common_match_management.proto +++ b/proto/dota_gcmessages_common_match_management.proto @@ -75,6 +75,7 @@ message CSODOTAPartyMember { optional bool has_hp_resource = 15; optional bool joined_from_partyfinder = 12; optional bool is_steam_china = 16; + repeated uint32 banned_hero_ids = 17; } message CSODOTAParty { @@ -137,6 +138,8 @@ message CSODOTAParty { optional uint32 bot_script_index_mask = 73; optional bool restricted_from_ranked = 74; optional uint32 restricted_from_ranked_account_id = 75; + optional uint32 rank_spread_likert_scale = 76; + optional uint32 behavior_score_likert_scale = 77; } message CSODOTAPartyInvite { diff --git a/proto/dota_gcmessages_common_overworld.proto b/proto/dota_gcmessages_common_overworld.proto new file mode 100644 index 000000000..e900b004d --- /dev/null +++ b/proto/dota_gcmessages_common_overworld.proto @@ -0,0 +1,411 @@ +import "steammessages.proto"; +import "dota_shared_enums.proto"; +import "dota_gcmessages_common.proto"; +import "gcsdk_gcmessages.proto"; + +enum EOverworldNodeState { + k_eOverworldNodeState_Invalid = 0; + k_eOverworldNodeState_Locked = 1; + k_eOverworldNodeState_Unlocked = 2; +} + +enum EOverworldAuditAction { + k_eOverworldAuditAction_Invalid = 0; + k_eOverworldAuditAction_DevModifyTokens = 1; + k_eOverworldAuditAction_DevClearInventory = 2; + k_eOverworldAuditAction_DevGrantTokens = 3; + k_eOverworldAuditAction_CompletePath = 4; + k_eOverworldAuditAction_ClaimEncounterReward = 5; + k_eOverworldAuditAction_DevResetNode = 6; + k_eOverworldAuditAction_DevResetPath = 7; + k_eOverworldAuditAction_MatchRewardsFull = 8; + k_eOverworldAuditAction_MatchRewardsHalf = 9; + k_eOverworldAuditAction_EventActionTokenGrant = 10; + k_eOverworldAuditAction_TokenTraderLost = 11; + k_eOverworldAuditAction_TokenTraderGained = 12; + k_eOverworldAuditAction_EncounterRewardTokenCost = 13; + k_eOverworldAuditAction_EncounterRewardTokenReward = 14; + k_eOverworldAuditAction_SupportGrantTokens = 16; +} + +message CMsgOverworldTokenCount { + optional uint32 token_id = 1; + optional uint32 token_count = 2; +} + +message CMsgOverworldTokenQuantity { + repeated .CMsgOverworldTokenCount token_counts = 1; +} + +message CMsgOverworldEncounterTokenTreasureData { + message RewardOption { + optional uint32 reward_data = 1; + optional .CMsgOverworldTokenQuantity token_cost = 2; + optional .CMsgOverworldTokenQuantity token_reward = 3; + } + + repeated .CMsgOverworldEncounterTokenTreasureData.RewardOption reward_options = 1; +} + +message CMsgOverworldEncounterTokenQuestData { + message Quest { + optional uint32 reward_data = 1; + optional .CMsgOverworldTokenQuantity token_cost = 2; + optional .CMsgOverworldTokenQuantity token_reward = 3; + } + + repeated .CMsgOverworldEncounterTokenQuestData.Quest quests = 1; +} + +message CMsgOverworldHeroList { + repeated uint32 hero_ids = 1; +} + +message CMsgOverworldEncounterChooseHeroData { + optional .CMsgOverworldHeroList hero_list = 1; + optional bool additive = 2; +} + +message CMsgOverworldEncounterProgressData { + optional int32 choice = 1; + optional int32 progress = 2; + optional int32 max_progress = 3; + optional bool visited = 4; +} + +message CMsgOverworldEncounterData { + repeated .CExtraMsgBlock extra_encounter_data = 1; +} + +message CMsgOverworldNode { + optional uint32 node_id = 1; + optional .EOverworldNodeState node_state = 2 [default = k_eOverworldNodeState_Invalid]; + optional .CMsgOverworldEncounterData node_encounter_data = 3; +} + +message CMsgOverworldPath { + optional uint32 path_id = 1; + optional .CMsgOverworldTokenQuantity path_cost = 2; +} + +message CMsgOverworldUserData { + optional .CMsgOverworldTokenQuantity token_inventory = 1; + repeated .CMsgOverworldNode overworld_nodes = 2; + repeated .CMsgOverworldPath overworld_paths = 3; + optional uint32 current_node_id = 4; +} + +message CMsgOverworldMatchRewards { + message Player { + optional uint32 player_slot = 1; + optional .CMsgOverworldTokenQuantity tokens = 2; + optional uint32 overworld_id = 3; + } + + repeated .CMsgOverworldMatchRewards.Player players = 1; +} + +message CMsgClientToGCOverworldGetUserData { + optional uint32 overworld_id = 1; +} + +message CMsgClientToGCOverworldGetUserDataResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidOverworld = 5; + } + + optional .CMsgClientToGCOverworldGetUserDataResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgOverworldUserData user_data = 2; +} + +message CMsgGCToClientOverworldUserDataUpdated { + optional uint32 overworld_id = 1; + optional .CMsgOverworldUserData user_data = 2; +} + +message CMsgClientToGCOverworldCompletePath { + optional uint32 overworld_id = 1; + optional uint32 path_id = 2; +} + +message CMsgClientToGCOverworldCompletePathResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidOverworld = 5; + k_eInvalidPath = 6; + k_eNotEnoughTokens = 7; + k_ePathIsLocked = 8; + k_ePathAlreadyUnlocked = 9; + } + + optional .CMsgClientToGCOverworldCompletePathResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgDOTAClaimEventActionResponse claim_response = 2; +} + +message CMsgOverworldEncounterPitFighterRewardData { + optional uint32 token_id = 1; + optional uint32 choice = 2; +} + +message CMsgClientToGCOverworldClaimEncounterReward { + optional uint32 overworld_id = 1; + optional uint32 node_id = 2; + optional uint32 reward_data = 3; + optional uint32 periodic_resource_id = 4; + optional .CMsgOverworldEncounterData extra_reward_data = 5; +} + +message CMsgClientToGCOverworldClaimEncounterRewardResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidOverworld = 5; + k_eInvalidNode = 6; + k_eNodeLocked = 7; + k_eRewardAlreadyClaimed = 8; + k_eNodeNotEncounter = 9; + k_eEncounterMissingRewards = 10; + k_eInvalidEncounterRewardStyle = 11; + k_eInvalidEncounterData = 12; + k_eNotEnoughTokensForReward = 13; + k_eNotEnoughResourceForReward = 14; + } + + optional .CMsgClientToGCOverworldClaimEncounterRewardResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgDOTAClaimEventActionResponse claim_response = 2; + optional .CMsgOverworldTokenQuantity tokens_received = 3; +} + +message CMsgClientToGCOverworldVisitEncounter { + optional uint32 overworld_id = 1; + optional uint32 node_id = 2; +} + +message CMsgClientToGCOverworldVisitEncounterResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidOverworld = 5; + k_eInvalidNode = 6; + k_eNodeLocked = 7; + k_eNodeNotEncounter = 8; + k_eAlreadyVisited = 9; + } + + optional .CMsgClientToGCOverworldVisitEncounterResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldMoveToNode { + optional uint32 overworld_id = 1; + optional uint32 node_id = 2; +} + +message CMsgClientToGCOverworldMoveToNodeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidOverworld = 5; + k_eInvalidNode = 6; + k_eNodeLocked = 7; + } + + optional .CMsgClientToGCOverworldMoveToNodeResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldTradeTokens { + enum ETradeRecipe { + k_eThreeToOneChosen = 1; + k_eFourToOneChosen = 2; + k_eThreeToTwoRandom = 3; + k_eSixScrapToOneChosen = 4; + } + + optional uint32 overworld_id = 1; + optional .CMsgOverworldTokenQuantity token_offer = 2; + optional .CMsgOverworldTokenQuantity token_request = 3; + optional .CMsgClientToGCOverworldTradeTokens.ETradeRecipe recipe = 4 [default = k_eThreeToOneChosen]; + optional uint32 encounter_id = 5; +} + +message CMsgClientToGCOverworldTradeTokensResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eNodeLocked = 6; + k_eInvalidOverworld = 7; + k_eInvalidOffer = 8; + k_eNotEnoughTokens = 9; + k_eInvalidNode = 10; + k_eInvalidEncounter = 11; + } + + optional .CMsgClientToGCOverworldTradeTokensResponse.EResponse response = 1 [default = k_eInternalError]; + optional .CMsgOverworldTokenQuantity tokens_received = 2; +} + +message CMsgClientToGCOverworldGiftTokens { + optional uint32 overworld_id = 1; + optional .CMsgOverworldTokenCount token_gift = 2; + optional uint32 recipient_account_id = 3; + optional uint32 periodic_resource_id = 4; +} + +message CMsgClientToGCOverworldGiftTokensResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eNodeLocked = 6; + k_eInvalidOverworld = 7; + k_eInvalidGift = 8; + k_eNotEnoughTokens = 9; + k_eInvalidRecipient = 10; + k_eNotEnoughPeriodicResource = 11; + } + + optional .CMsgClientToGCOverworldGiftTokensResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldDevResetAll { + optional uint32 overworld_id = 1; +} + +message CMsgClientToGCOverworldDevResetAllResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidOverworld = 6; + } + + optional .CMsgClientToGCOverworldDevResetAllResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldDevResetNode { + optional uint32 overworld_id = 1; + optional uint32 node_id = 2; +} + +message CMsgClientToGCOverworldDevResetNodeResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidOverworld = 6; + k_eInvalidNode = 7; + } + + optional .CMsgClientToGCOverworldDevResetNodeResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldDevGrantTokens { + optional uint32 overworld_id = 1; + optional .CMsgOverworldTokenQuantity token_quantity = 2; +} + +message CMsgClientToGCOverworldDevGrantTokensResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidOverworld = 6; + } + + optional .CMsgClientToGCOverworldDevGrantTokensResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldDevClearInventory { + optional uint32 overworld_id = 1; +} + +message CMsgClientToGCOverworldDevClearInventoryResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidOverworld = 6; + } + + optional .CMsgClientToGCOverworldDevClearInventoryResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldFeedback { + optional uint32 language = 1; + optional uint32 overworld_id = 2; + optional string feedback = 3; +} + +message CMsgClientToGCOverworldFeedbackResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eNotAllowed = 5; + k_eInvalidOverworld = 6; + } + + optional .CMsgClientToGCOverworldFeedbackResponse.EResponse response = 1 [default = k_eInternalError]; +} + +message CMsgClientToGCOverworldGetDynamicImage { + optional uint32 magic = 1; + optional uint32 image_id = 2; + optional uint32 language = 3; +} + +message CMsgClientToGCOverworldGetDynamicImageResponse { + message Image { + optional uint32 width = 1; + optional uint32 height = 2; + optional .CMsgClientToGCOverworldGetDynamicImageResponse.EDynamicImageFormat format = 3 [default = k_eUnknown]; + optional bytes image_bytes = 4; + } + + enum EDynamicImageFormat { + k_eUnknown = 0; + k_ePNG = 1; + k_eData = 2; + } + + optional uint32 image_id = 1; + repeated .CMsgClientToGCOverworldGetDynamicImageResponse.Image images = 2; +} diff --git a/proto/dota_gcmessages_msgid.proto b/proto/dota_gcmessages_msgid.proto index 94445fb8d..52ca4048f 100644 --- a/proto/dota_gcmessages_msgid.proto +++ b/proto/dota_gcmessages_msgid.proto @@ -117,7 +117,6 @@ enum EDOTAGCMsg { k_EMsgGCItemEditorReserveItemDefResponse = 7286; k_EMsgGCItemEditorReleaseReservation = 7287; k_EMsgGCItemEditorReleaseReservationResponse = 7288; - k_EMsgGCRewardTutorialPrizes = 7289; k_EMsgGCFantasyLivePlayerStats = 7308; k_EMsgGCFantasyFinalPlayerStats = 7309; k_EMsgGCFlipLobbyTeams = 7320; @@ -267,7 +266,6 @@ enum EDOTAGCMsg { k_EMsgServerToGCCavernCrawlIsHeroActiveResponse = 7626; k_EMsgClientToGCPlayerCardSpecificPurchaseRequest = 7627; k_EMsgClientToGCPlayerCardSpecificPurchaseResponse = 7628; - k_EMsgGCtoServerTensorflowInstance = 7629; k_EMsgSQLSetIsLeagueAdmin = 7630; k_EMsgGCToGCGetLiveLeagueMatches = 7631; k_EMsgGCToGCGetLiveLeagueMatchesResponse = 7632; @@ -393,8 +391,8 @@ enum EDOTAGCMsg { k_EMsgClientToGCHasPlayerVotedForMVPResponse = 8112; k_EMsgClientToGCVoteForMVP = 8113; k_EMsgClientToGCVoteForMVPResponse = 8114; - k_EMsgGCToGCGetEventOwnership = 8115; - k_EMsgGCToGCGetEventOwnershipResponse = 8116; + k_EMsgGCToGCGetEventParticipation = 8115; + k_EMsgGCToGCGetEventParticipationResponse = 8116; k_EMsgGCToClientAutomatedTournamentStateChange = 8117; k_EMsgClientToGCWeekendTourneyOpts = 8118; k_EMsgClientToGCWeekendTourneyOptsResponse = 8119; @@ -820,7 +818,7 @@ enum EDOTAGCMsg { k_EMsgGCToClientCollectorsCacheAvailableDataResponse = 8872; k_EMsgClientToGCUploadMatchClip = 8873; k_EMsgGCToClientUploadMatchClipResponse = 8874; - k_EMsgGCToServerSetSteamLearnKeysChanged = 8876; + k_EMsgGCToServerSteamLearnAccessTokensChanged = 8876; k_EMsgSignOutMuertaMinigame = 8877; k_EMsgGCToServerLobbyHeroRoleStats = 8878; k_EMsgClientToGCRankRequest = 8879; @@ -829,7 +827,6 @@ enum EDOTAGCMsg { k_EMsgSignOutMapStats = 8882; k_EMsgClientToGCMapStatsRequest = 8883; k_EMsgGCToClientMapStatsResponse = 8884; - k_EMsgGCToServerSetSteamLearnInferencing = 8885; k_EMsgClientToGCShowcaseGetUserData = 8886; k_EMsgClientToGCShowcaseGetUserDataResponse = 8887; k_EMsgClientToGCShowcaseSetUserData = 8888; @@ -887,4 +884,49 @@ enum EDOTAGCMsg { k_EMsgClientToGCShowcaseModerationGetQueueResponse = 8941; k_EMsgClientToGCShowcaseModerationApplyModeration = 8942; k_EMsgClientToGCShowcaseModerationApplyModerationResponse = 8943; + k_EMsgClientToGCOverworldGetUserData = 8944; + k_EMsgClientToGCOverworldGetUserDataResponse = 8945; + k_EMsgClientToGCOverworldCompletePath = 8946; + k_EMsgClientToGCOverworldCompletePathResponse = 8947; + k_EMsgClientToGCOverworldClaimEncounterReward = 8948; + k_EMsgClientToGCOverworldClaimEncounterRewardResponse = 8949; + k_EMsgClientToGCOverworldDevResetAll = 8950; + k_EMsgClientToGCOverworldDevResetAllResponse = 8951; + k_EMsgClientToGCOverworldDevResetNode = 8952; + k_EMsgClientToGCOverworldDevResetNodeResponse = 8953; + k_EMsgClientToGCOverworldDevResetPath = 8954; + k_EMsgClientToGCOverworldDevResetPathResponse = 8955; + k_EMsgClientToGCOverworldDevGrantTokens = 8956; + k_EMsgClientToGCOverworldDevGrantTokensResponse = 8957; + k_EMsgClientToGCOverworldDevClearInventory = 8958; + k_EMsgClientToGCOverworldDevClearInventoryResponse = 8959; + k_EMsgServerToGCNewBloomGift = 8960; + k_EMsgServerToGCNewBloomGiftResponse = 8961; + k_EMsgGCToClientOverworldUserDataUpdated = 8962; + k_EMsgClientToGCOverworldMoveToNode = 8963; + k_EMsgClientToGCOverworldMoveToNodeResponse = 8964; + k_EMsgClientToGCNewBloomGift = 8965; + k_EMsgClientToGCNewBloomGiftResponse = 8966; + k_EMsgSignOutOverworld = 8967; + k_EMsgClientToGCSetBannedHeroes = 8969; + k_EMsgClientToGCOverworldTradeTokens = 8970; + k_EMsgClientToGCOverworldTradeTokensResponse = 8971; + k_EMsgOverworldEncounterTokenTreasureData = 8972; + k_EMsgOverworldEncounterTokenQuestData = 8973; + k_EMsgOverworldEncounterChooseHeroData = 8974; + k_EMsgClientToGCUpdateComicBookStats = 8975; + k_EMsgClientToGCCandyShopDevResetShop = 8976; + k_EMsgClientToGCCandyShopDevResetShopResponse = 8977; + k_EMsgOverworldEncounterProgressData = 8978; + k_EMsgClientToGCOverworldFeedback = 8979; + k_EMsgClientToGCOverworldFeedbackResponse = 8980; + k_EMsgClientToGCOverworldVisitEncounter = 8981; + k_EMsgClientToGCOverworldVisitEncounterResponse = 8982; + k_EMsgClientToGCOverworldGiftTokens = 8983; + k_EMsgClientToGCOverworldGiftTokensResponse = 8984; + k_EMsgClientToGCDotaLabsFeedback = 8985; + k_EMsgClientToGCDotaLabsFeedbackResponse = 8986; + k_EMsgOverworldEncounterPitFighterRewardData = 8987; + k_EMsgClientToGCOverworldGetDynamicImage = 8988; + k_EMsgClientToGCOverworldGetDynamicImageResponse = 8989; } diff --git a/proto/dota_gcmessages_server.proto b/proto/dota_gcmessages_server.proto index 2ea5c5c08..535ab9024 100644 --- a/proto/dota_gcmessages_server.proto +++ b/proto/dota_gcmessages_server.proto @@ -6,6 +6,7 @@ import "econ_gcmessages.proto"; import "network_connection.proto"; import "dota_gcmessages_common_lobby.proto"; import "dota_gcmessages_common_match_management.proto"; +import "dota_gcmessages_common_overworld.proto"; import "gcsdk_gcmessages.proto"; import "steammessages_steamlearn.steamworkssdk.proto"; @@ -90,7 +91,6 @@ message CMsgGameServerInfo { UNSPECIFIED = 0; GAME = 1; PROXY = 2; - TENSORFLOW = 3; DOTA_ONLY = 4; CUSTOM_GAME_ONLY = 5; EVENT_GAME_ONLY = 6; @@ -127,7 +127,6 @@ message CMsgGameServerInfo { optional uint32 server_cluster = 20; optional .CMsgGameServerInfo.CustomGames allow_custom_games = 23 [default = BOTH]; optional uint32 build_version = 24; - optional uint32 tf_server_count = 25; optional uint32 srcds_instance = 26; optional bool dev_force_server_type = 28; optional bool is_recording_match_training_data = 29; @@ -274,6 +273,8 @@ message CMsgGameMatchSignOut { optional uint32 time_purchased_aghs = 78; repeated int32 ability_draft_abilities = 79; repeated .CMsgTrackedStat player_tracked_stats = 80; + optional uint32 predicted_rank = 81; + optional uint32 selected_facet = 82; } repeated .CMsgGameMatchSignOut.CTeam.CPlayer players = 1; @@ -467,6 +468,7 @@ message CMsgGameMatchSignoutResponse { optional fixed64 ow_private_key = 11; optional fixed32 ow_salt = 12; optional uint64 ow_replay_id = 13; + optional .CMsgOverworldMatchRewards overworld_rewards = 14; } message CMsgTimedRewardContainer { @@ -603,6 +605,9 @@ message CMsgServerToGCRequestBatchPlayerResourcesResponse { optional bool is_guide_player = 8; optional int32 comm_level = 9; optional int32 behavior_level = 10; + optional int32 wins = 11; + optional int32 losses = 12; + optional int32 smurf_category = 13; } repeated .CMsgServerToGCRequestBatchPlayerResourcesResponse.Result results = 6; @@ -758,10 +763,15 @@ message CSerializedCombatLog { } message CMsgServerToGCVictoryPredictions { + message PredictionItem { + optional uint64 item_id = 1; + optional uint32 item_def = 2; + } + message Record { optional uint32 account_id = 1; - optional uint64 item_id = 2; repeated uint64 item_ids = 5; + repeated .CMsgServerToGCVictoryPredictions.PredictionItem prediction_items = 6; } repeated .CMsgServerToGCVictoryPredictions.Record records = 1; @@ -1128,10 +1138,6 @@ message CMsgServerToGCCavernCrawlIsHeroActiveResponse { optional uint32 potential_plus_shard_winnings = 4; } -message CMsgGCtoServerTensorflowInstance { - optional uint32 server_instance = 1; -} - message CMsgNeutralItemStats { message NeutralItem { optional int32 item_id = 1 [default = -1]; @@ -1349,12 +1355,8 @@ message CMsgServerToGCGetStickerHeroesResponse { repeated .CMsgServerToGCGetStickerHeroesResponse.Player players = 1; } -message CMsgGCToServerSetSteamLearnInferencing { - optional bool enable = 1; -} - -message CMsgGCToServerSetSteamLearnKeysChanged { - optional .CMsgSteamLearnHMACKeys keys = 1; +message CMsgGCToServerSteamLearnAccessTokensChanged { + optional .CMsgSteamLearnAccessTokens access_tokens = 1; } message CMsgSteamLearnMatchInfo { @@ -1371,23 +1373,48 @@ message CMsgSteamLearnMatchInfoPlayer { optional uint32 duration = 3; optional uint32 game_mode = 4; optional uint32 lobby_type = 5; + optional uint32 player_mmr = 6; } -message CMsgSteamLearnMatchHeroes { +message CMsgSteamLearnMatchHeroesV2 { repeated uint32 radiant_hero_ids = 1 [(steamlearn_count) = 5]; repeated uint32 dire_hero_ids = 2 [(steamlearn_count) = 5]; repeated uint32 radiant_lanes = 3 [(steamlearn_count) = 5]; repeated uint32 dire_lanes = 4 [(steamlearn_count) = 5]; + repeated uint32 radiant_hero_facets = 5 [(steamlearn_count) = 5]; + repeated uint32 dire_hero_facets = 6 [(steamlearn_count) = 5]; } -message CMsgSteamLearnMatchHero { +message CMsgSteamLearnMatchHeroV2 { optional uint32 hero_id = 1; optional uint32 lane = 2; repeated uint32 allied_hero_ids = 3 [(steamlearn_count) = 4]; repeated uint32 enemy_hero_ids = 4 [(steamlearn_count) = 5]; + optional uint32 hero_facet = 5; + repeated uint32 allied_hero_facets = 6 [(steamlearn_count) = 4]; + repeated uint32 enemy_herofacets = 7 [(steamlearn_count) = 5]; +} + +message CMsgSteamLearnPlayerTimedStats { + message StatBucket { + optional float game_time = 1; + optional uint32 kills = 2; + optional uint32 deaths = 3; + optional uint32 assists = 4; + optional uint32 experience = 5; + optional uint32 last_hits = 6; + optional uint32 denies = 7; + optional uint32 net_worth = 8; + optional float idle_time = 9; + optional uint32 commands_issued = 10; + optional uint32 sentry_wards_placed = 11; + optional uint32 observer_wards_placed = 12; + } + + repeated .CMsgSteamLearnPlayerTimedStats.StatBucket stat_buckets = 1 [(steamlearn_count) = 90]; } -message CMsgSteamLearnMatchState { +message CMsgSteamLearnMatchStateV5 { message PlayerState { optional uint32 hero_id = 1; optional uint32 net_worth = 2; @@ -1398,11 +1425,12 @@ message CMsgSteamLearnMatchState { optional bool has_aegis = 7; optional bool has_rapier = 8; optional uint32 distance = 9; + optional uint32 hero_facet = 10; } message TeamState { optional uint32 team = 1; - repeated .CMsgSteamLearnMatchState.PlayerState player_states = 2 [(steamlearn_count) = 5]; + repeated .CMsgSteamLearnMatchStateV5.PlayerState player_states = 2 [(steamlearn_count) = 5]; repeated uint32 tower_health_pct = 3 [(steamlearn_count) = 11]; repeated uint32 barracks_health_pct = 4 [(steamlearn_count) = 6]; optional uint32 ancient_health_pct = 5; @@ -1414,8 +1442,8 @@ message CMsgSteamLearnMatchState { } optional float game_time = 1; - optional .CMsgSteamLearnMatchState.TeamState radiant_state = 2; - optional .CMsgSteamLearnMatchState.TeamState dire_state = 3; + optional .CMsgSteamLearnMatchStateV5.TeamState radiant_state = 2; + optional .CMsgSteamLearnMatchStateV5.TeamState dire_state = 3; } message CMsgSteamLearnItemPurchase { @@ -1473,3 +1501,25 @@ message CMsgSignOutMapStats { repeated .CMsgSignOutMapStats.Player players = 1; optional .CMsgMapStatsSnapshot global_stats = 2; } + +message CMsgServerToGCNewBloomGift { + optional uint32 defindex = 1; + optional uint32 gifter_account_id = 2; + repeated uint32 target_account_ids = 3; +} + +message CMsgServerToGCNewBloomGiftResponse { + optional .ENewBloomGiftingResponse result = 1 [default = kENewBloomGifting_UnknownFailure]; + repeated uint32 received_account_ids = 2; +} + +message CMsgSignOutOverworld { + message Player { + optional uint32 account_id = 1; + optional uint32 overworld_id = 2; + repeated uint32 desired_token_rewards = 3; + } + + repeated .CMsgSignOutOverworld.Player players = 1; + optional .EEvent event_id = 2 [default = EVENT_ID_NONE]; +} diff --git a/proto/dota_gcmessages_webapi.proto b/proto/dota_gcmessages_webapi.proto index 080eed20e..cb155cbe0 100644 --- a/proto/dota_gcmessages_webapi.proto +++ b/proto/dota_gcmessages_webapi.proto @@ -249,6 +249,7 @@ message CMsgDPCEvent { INTERNATIONAL_QUALIFIERS = 3; INTERNATIONAL = 4; LEAGUE_FINALS = 5; + EXTERNAL = 6; } enum ETour { diff --git a/proto/dota_match_metadata.proto b/proto/dota_match_metadata.proto index 540661a44..813a73ec9 100644 --- a/proto/dota_match_metadata.proto +++ b/proto/dota_match_metadata.proto @@ -1,6 +1,7 @@ import "base_gcmessages.proto"; import "dota_gcmessages_common_match_management.proto"; import "dota_gcmessages_common_lobby.proto"; +import "dota_gcmessages_common_overworld.proto"; import "dota_gcmessages_common.proto"; import "dota_shared_enums.proto"; import "gcsdk_gcmessages.proto"; @@ -81,7 +82,6 @@ message CDOTAMatchMetadata { optional uint32 action_id = 1; optional uint32 quantity = 2; optional uint32 audit = 3; - optional bool requires_win = 4; optional uint64 audit_data = 5; } @@ -142,6 +142,11 @@ message CDOTAMatchMetadata { optional bool completed = 7; } + message OverworldRewards { + optional uint32 overworld_id = 1; + optional .CMsgOverworldTokenQuantity tokens = 2; + } + repeated int32 ability_upgrades = 2; optional uint32 player_slot = 3; repeated .CDOTAMatchMetadata.Team.PlayerKill kills = 5; @@ -195,6 +200,7 @@ message CDOTAMatchMetadata { repeated .CDOTAMatchMetadata.EconItem equipped_econ_items = 56; optional int32 game_player_id = 57 [default = -1]; repeated .CMsgTrackedStat player_tracked_stats = 58; + optional .CDOTAMatchMetadata.Team.Player.OverworldRewards overworld_rewards = 59; } optional uint32 dota_team = 1; @@ -310,6 +316,7 @@ message CDOTAMatchPrivateMetadata { optional uint32 tome_of_knowledge = 4; optional uint32 outpost = 5; optional uint32 other = 6; + optional uint32 abilities = 7; } optional uint32 player_slot = 2; diff --git a/proto/dota_modifiers.proto b/proto/dota_modifiers.proto index 95722ba7b..b86665962 100644 --- a/proto/dota_modifiers.proto +++ b/proto/dota_modifiers.proto @@ -36,7 +36,7 @@ message CDOTAModifierBuffTableEntry { optional int32 dd_ability_id = 28 [default = -1]; optional string illusion_label = 29; optional bool active = 30; - optional string player_ids = 31 [default = "-1"]; + optional string player_ids = 31; optional string lua_name = 32; optional int32 attack_speed = 33; optional uint32 aura_owner = 34 [default = 16777215]; diff --git a/proto/dota_scenariomessages.proto b/proto/dota_scenariomessages.proto index bc90166d1..26bb177ec 100644 --- a/proto/dota_scenariomessages.proto +++ b/proto/dota_scenariomessages.proto @@ -157,6 +157,7 @@ message CMsgDotaScenario { repeated .CMsgDotaScenario.HeroHeroInt enemy_kills = 150; repeated .CMsgDotaScenario.DamageStatsByType damage_stats = 151; repeated .CMsgDotaScenario.HeroAbility abilities = 152; + optional uint32 hero_facet = 153; } message Stock { diff --git a/proto/dota_shared_enums.proto b/proto/dota_shared_enums.proto index e470634b7..950d64cc0 100644 --- a/proto/dota_shared_enums.proto +++ b/proto/dota_shared_enums.proto @@ -109,6 +109,7 @@ enum EEvent { EVENT_ID_TEAM_2023_TOUR3 = 43; EVENT_ID_INTERNATIONAL_2023 = 45; EVENT_ID_10TH_ANNIVERSARY = 46; + EVENT_ID_CROWNFALL = 47; EVENT_ID_FROSTIVUS_2023 = 48; } @@ -136,6 +137,7 @@ enum DOTALeaverStatus_t { DOTA_LEAVER_NEVER_CONNECTED_TOO_LONG = 6; DOTA_LEAVER_FAILED_TO_READY_UP = 7; DOTA_LEAVER_DECLINED = 8; + DOTA_LEAVER_DECLINED_REQUEUE = 9; } enum DOTAConnectionState_t { @@ -256,16 +258,18 @@ enum DOTACommType_t { DOTA_COMM_TYPE_DROPS = 12; DOTA_COMM_TYPE_NEWPLAYER_EXPERT = 13; DOTA_COMM_TYPE_COACHED = 14; + DOTA_COMM_TYPE_MAPDRAWING = 15; } enum DOTACommLevel_t { DOTA_COMM_LEVEL_NONE = 0; DOTA_COMM_LEVEL_COOLDOWN = 1; DOTA_COMM_LEVEL_PINGS = 2; - DOTA_COMM_LEVEL_CHAT = 3; - DOTA_COMM_LEVEL_TIPPING = 4; - DOTA_COMM_LEVEL_VOICE = 5; - DOTA_COMM_LEVEL_ALLIED_ABILITY = 6; + DOTA_COMM_LEVEL_MAPDRAWING = 3; + DOTA_COMM_LEVEL_CHAT = 4; + DOTA_COMM_LEVEL_TIPPING = 5; + DOTA_COMM_LEVEL_VOICE = 6; + DOTA_COMM_LEVEL_ALLIED_ABILITY = 7; } enum DOTABehaviorLevel_t { @@ -309,6 +313,7 @@ enum DOTALobbyReadyState { DOTALobbyReadyState_UNDECLARED = 0; DOTALobbyReadyState_ACCEPTED = 1; DOTALobbyReadyState_DECLINED = 2; + DOTALobbyReadyState_DECLINED_REQUEUE = 3; } enum DOTAJoinLobbyResult { @@ -689,6 +694,13 @@ enum EOverwatchReportReason { k_EOverwatchReportReason_AbilityAbuse = 5; } +enum ECandyShopUpgrade { + k_ECandyShopUpgradeInvalid = -1; + k_ECandyShopUpgrade_InventorySize = 0; + k_ECandyShopUpgrade_RewardShelf = 1; + k_ECandyShopUpgrade_ExtraExchangeRecipe = 2; +} + message CDOTAClientHardwareSpecs { optional uint32 logical_processors = 1; optional fixed64 cpu_cycles_per_second = 2; diff --git a/proto/dota_usermessages.proto b/proto/dota_usermessages.proto index 2bfb19284..5592d27c3 100644 --- a/proto/dota_usermessages.proto +++ b/proto/dota_usermessages.proto @@ -159,6 +159,10 @@ enum EDotaUserMessages { DOTA_UM_MuertaReleaseEvent_AssignedTargetKilled = 619; DOTA_UM_PlayerDraftSuggestPick = 620; DOTA_UM_PlayerDraftPick = 621; + DOTA_UM_UpdateLinearProjectileCPData = 622; + DOTA_UM_GiftPlayer = 623; + DOTA_UM_FacetPing = 624; + DOTA_UM_InnatePing = 625; } enum DOTA_CHAT_MESSAGE { @@ -354,6 +358,7 @@ enum DOTA_OVERHEAD_ALERT { OVERHEAD_ALERT_ITEM_RECEIVED = 22; OVERHEAD_ALERT_SHARD = 23; OVERHEAD_ALERT_DEADLY_BLOW = 24; + OVERHEAD_ALERT_FORCE_MISS = 25; } enum DOTA_ROSHAN_PHASE { @@ -496,6 +501,12 @@ message CDOTAUserMsg_ProjectileParticleCPData { optional .CMsgVector vector = 2; } +message CDOTAUserMsg_UpdateLinearProjectileCPData { + optional int32 handle = 1; + optional int32 control_point = 2; + optional .CMsgVector vector = 3; +} + message CDOTAUserMsg_MiniKillCamInfo { message Attacker { message Ability { @@ -1038,6 +1049,7 @@ message CDOTAUserMsg_AbilityPing { optional int32 secondary_charges = 10; optional bool ctrl_held = 12; optional float reclaim_time = 13; + optional int32 owner_entity = 14 [default = -1]; } message CDOTAUserMsg_TE_UnitAnimation { @@ -1306,6 +1318,7 @@ message CDOTAUserMsg_SuggestHeroPick { required int32 player_id = 1 [default = -1]; optional uint32 hero_id = 2; optional bool ban = 3; + optional uint32 facet_id = 4; } message CDOTAUserMsg_SuggestHeroRole { @@ -1386,6 +1399,12 @@ message CDOTAUserMsg_SalutePlayer { optional uint32 num_recent_tips = 6; } +message CDOTAUserMsg_GiftPlayer { + optional int32 source_player_id = 1 [default = -1]; + optional int32 target_player_id = 2 [default = -1]; + optional uint32 gift_item_def_index = 3; +} + message CDOTAUserMsg_TipAlert { optional int32 player_id = 1 [default = -1]; optional string tip_text = 2; @@ -1653,3 +1672,16 @@ message CDOTAUserMsg_PlayerDraftPick { optional int32 player_id_target = 2 [default = -1]; optional int32 team = 3; } + +message CDOTAUserMsg_FacetPing { + optional int32 player_id = 1 [default = -1]; + optional uint32 facet_strhash = 2; + optional uint32 entity_id = 3; + optional bool all_chat = 4; +} + +message CDOTAUserMsg_InnatePing { + optional int32 player_id = 1 [default = -1]; + optional uint32 entity_id = 2; + optional bool all_chat = 3; +} diff --git a/proto/econ_gcmessages.proto b/proto/econ_gcmessages.proto index 7448dd063..f6a22cc94 100644 --- a/proto/econ_gcmessages.proto +++ b/proto/econ_gcmessages.proto @@ -42,6 +42,7 @@ enum EGCItemMsg { k_EMsgGCResetStrangeGemCountResponse = 1095; k_EMsgGCServerUseItemRequest = 1103; k_EMsgGCAddGiftItem = 1104; + k_EMsgSQLGCToGCRevokeUntrustedGift = 1105; k_EMsgClientToGCRemoveItemGifterAttributes = 1109; k_EMsgClientToGCRemoveItemName = 1110; k_EMsgClientToGCRemoveItemDescription = 1111; @@ -128,6 +129,13 @@ enum EGCItemMsg { k_EMsgClientToGCGetLimitedItemPurchaseQuantity = 2609; k_EMsgClientToGCGetLimitedItemPurchaseQuantityResponse = 2610; k_EMsgGCToGCBetaDeleteItems = 2611; + k_EMsgClientToGCGetInFlightItemCharges = 2612; + k_EMsgClientToGCGetInFlightItemChargesResponse = 2613; + k_EMsgGCToClientInFlightChargesUpdated = 2614; + k_EMsgClientToGCPurchaseChargeCostItems = 2615; + k_EMsgClientToGCPurchaseChargeCostItemsResponse = 2616; + k_EMsgClientToGCCancelUnfinalizedTransactions = 2617; + k_EMsgClientToGCCancelUnfinalizedTransactionsResponse = 2618; } enum EGCMsgInitiateTradeResponse { @@ -335,7 +343,7 @@ message CMsgGCToGCGrantAccountRolledItems { repeated .CMsgGCToGCGrantAccountRolledItems.Item.DynamicAttribute dynamic_attributes = 5; repeated .CMsgGCToGCGrantAccountRolledItems.Item.AdditionalAuditEntry additional_audit_entries = 6; optional uint32 inventory_token = 7; - optional uint32 quality = 8; + optional int32 quality = 8 [default = -1]; } optional uint32 account_id = 1; @@ -453,6 +461,11 @@ message CMsgClientToGCWrapAndDeliverGift { optional string gift_message = 3; } +message CMsgSQLGCToGCRevokeUntrustedGift { + optional uint32 account_id = 1; + optional uint64 sent_item_id = 4; +} + message CMsgClientToGCWrapAndDeliverGiftResponse { optional .EGCMsgResponse response = 1 [default = k_EGCMsgResponseOK]; optional uint32 gifting_charge_uses = 2; @@ -840,6 +853,7 @@ message CMsgProcessTransactionOrder { optional int32 parent_stack_index = 7; optional bool default_price = 8; optional bool is_user_facing = 9; + optional int32 price_index = 11; } optional uint64 txn_id = 1; @@ -990,6 +1004,71 @@ message CMsgClientToGCGetLimitedItemPurchaseQuantityResponse { optional uint32 quantity_purchased = 2; } +message CMsgClientToGCGetInFlightItemCharges { + optional uint32 item_def = 1; +} + +message CMsgClientToGCGetInFlightItemChargesResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidItemDef = 5; + } + + optional .CMsgClientToGCGetInFlightItemChargesResponse.EResponse result = 1 [default = k_eInternalError]; + optional uint32 charges_in_flight = 2; +} + +message CMsgClientToGCPurchaseChargeCostItems { + message Item { + optional uint32 item_def_index = 1; + optional uint32 quantity = 2; + optional uint64 source_reference_id = 3; + optional int32 price_index = 4; + } + + repeated .CMsgClientToGCPurchaseChargeCostItems.Item items = 1; + optional uint32 currency = 2; +} + +message CMsgClientToGCPurchaseChargeCostItemsResponse { + enum EResponse { + k_eInternalError = 0; + k_eSuccess = 1; + k_eTooBusy = 2; + k_eDisabled = 3; + k_eTimeout = 4; + k_eInvalidParam = 5; + k_eInvalidPrice = 6; + k_eInsufficientCharges = 7; + k_eLimitedItem = 8; + k_eMissingPrereq = 10; + } + + optional .CMsgClientToGCPurchaseChargeCostItemsResponse.EResponse result = 1 [default = k_eInternalError]; + repeated uint64 item_ids = 2; +} + +message CMsgGCToClientInFlightChargesUpdated { + message ItemCharges { + optional uint32 item_def = 1; + optional uint32 charges_in_flight = 2; + } + + repeated .CMsgGCToClientInFlightChargesUpdated.ItemCharges in_flight_charges = 2; +} + +message CMsgClientToGCCancelUnfinalizedTransactions { + optional uint32 unused = 1; +} + +message CMsgClientToGCCancelUnfinalizedTransactionsResponse { + optional uint32 result = 1; +} + message CMsgGCToGCUpdateWelcomeMsg { optional bool server = 1; optional .CExtraMsgBlock new_msg = 2; diff --git a/proto/gcsdk_gcmessages.proto b/proto/gcsdk_gcmessages.proto index 32de46d2c..e3ec572d8 100644 --- a/proto/gcsdk_gcmessages.proto +++ b/proto/gcsdk_gcmessages.proto @@ -30,9 +30,15 @@ message CExtraMsgBlock { } message CMsgSteamLearnServerInfo { + message ProjectInfo { + optional uint32 project_id = 1; + optional uint32 snapshot_published_version = 2; + optional uint32 inference_published_version = 3; + } + optional bool enable_data_submission = 1; - optional bool enable_inferencing = 2; - optional .CMsgSteamLearnHMACKeys hmac_keys = 3; + optional .CMsgSteamLearnAccessTokens access_tokens = 4; + repeated .CMsgSteamLearnServerInfo.ProjectInfo project_infos = 5; } message CMsgGCAssertJobData { diff --git a/proto/netmessages.proto b/proto/netmessages.proto index 33c8d944a..74a702a3a 100644 --- a/proto/netmessages.proto +++ b/proto/netmessages.proto @@ -56,6 +56,7 @@ enum SVC_Messages { enum VoiceDataFormat_t { VOICEDATA_FORMAT_STEAM = 0; VOICEDATA_FORMAT_ENGINE = 1; + VOICEDATA_FORMAT_OPUS = 2; } enum RequestPause_t { @@ -132,6 +133,9 @@ message CMsgVoiceAudio { optional uint32 section_number = 4; optional uint32 sample_rate = 5; optional uint32 uncompressed_sample_offset = 6; + optional uint32 num_packets = 7; + repeated uint32 packet_offsets = 8 [packed = true]; + optional float voice_level = 9; } message CCLCMsg_VoiceData { @@ -185,9 +189,6 @@ message CCLCMsg_ServerStatus { optional bool simplified = 1; } -message CCLCMsg_ServerPing { -} - message CCLCMsg_RequestPause { optional .RequestPause_t pause_type = 1 [default = RP_PAUSE]; optional int32 pause_group = 2; @@ -357,9 +358,7 @@ message CSVCMsg_GameEventList { message CSVCMsg_PacketEntities { message command_queue_info_t { optional uint32 commands_queued = 1; - optional uint32 command_queue_desired_size = 2; optional uint32 starved_command_ticks = 3; - optional float time_dilation_percent = 4; optional uint32 discarded_command_ticks = 5; } @@ -368,9 +367,14 @@ message CSVCMsg_PacketEntities { optional int32 baseline_index = 2; } + message non_transmitted_entities_t { + optional int32 header_count = 1; + optional bytes data = 2; + } + optional int32 max_entries = 1; optional int32 updated_entries = 2; - optional bool is_delta = 3; + optional bool legacy_is_delta = 3; optional bool update_baseline = 4; optional int32 baseline = 5; optional int32 delta_from = 6; @@ -378,11 +382,16 @@ message CSVCMsg_PacketEntities { optional bool pending_full_frame = 8; optional uint32 active_spawngroup_handle = 9; optional uint32 max_spawngroup_creationsequence = 10; - optional uint32 last_cmd_number = 11; + optional uint32 last_cmd_number_executed = 11; + optional sint32 last_cmd_number_recv_delta = 17; optional uint32 server_tick = 12; optional bytes serialized_entities = 13; optional .CSVCMsg_PacketEntities.command_queue_info_t command_queue_info = 14; repeated .CSVCMsg_PacketEntities.alternate_baseline_t alternate_baselines = 15; + optional uint32 has_pvs_vis_bits = 16; + optional uint32 last_cmd_recv_margin = 18; + optional .CSVCMsg_PacketEntities.non_transmitted_entities_t non_transmitted_entities = 19; + optional bytes dev_padding = 999; } message CSVCMsg_TempEntities { @@ -493,6 +502,7 @@ message ProtoFlattenedSerializerField_t { optional int32 send_node_sym = 9; optional int32 var_encoder_sym = 10; repeated .ProtoFlattenedSerializerField_t.polymorphic_field_t polymorphic_types = 11; + optional int32 var_serializer_sym = 12; } message ProtoFlattenedSerializer_t { @@ -531,10 +541,12 @@ message CMsgServerNetworkStats { message Player { optional uint64 steamid = 1; optional string remote_addr = 2; - optional int32 ping_stddev_ms = 3; optional int32 ping_avg_ms = 4; optional float packet_loss_pct = 5; optional bool is_bot = 6; + optional float loss_in = 7; + optional float loss_out = 8; + optional int32 engine_latency_ms = 9; } optional bool dedicated = 1; @@ -549,8 +561,8 @@ message CMsgServerNetworkStats { optional int32 num_tv_relays = 11; optional float fps = 12; repeated .CMsgServerNetworkStats.Port ports = 17; - optional float avg_latency_out = 18; - optional float avg_latency_in = 19; + optional float avg_ping_ms = 18; + optional float avg_engine_latency_out = 19; optional float avg_packets_out = 20; optional float avg_packets_in = 21; optional float avg_loss_out = 22; diff --git a/proto/networkbasetypes.proto b/proto/networkbasetypes.proto index 9cf8680f9..df5ff4b22 100644 --- a/proto/networkbasetypes.proto +++ b/proto/networkbasetypes.proto @@ -13,7 +13,7 @@ enum SignonState_t { enum NET_Messages { net_NOP = 0; - net_Disconnect = 1; + net_Disconnect_Legacy = 1; net_SplitScreenUser = 3; net_Tick = 4; net_StringCmd = 5; @@ -105,7 +105,7 @@ message CNETMsg_SplitScreenUser { optional int32 slot = 1; } -message CNETMsg_Disconnect { +message CNETMsg_Disconnect_Legacy { optional .ENetworkDisconnectionReason reason = 2 [default = NETWORK_DISCONNECT_INVALID]; } @@ -119,6 +119,8 @@ message CNETMsg_Tick { optional uint32 host_loss = 7; optional uint32 host_unfiltered_frametime = 8; optional uint32 hltv_replay_flags = 9; + optional uint32 expected_long_tick = 10; + optional string expected_long_tick_reason = 11; } message CNETMsg_StringCmd { diff --git a/proto/steamdatagram_messages_sdr.proto b/proto/steamdatagram_messages_sdr.proto index 5aa17a280..11cb3ac4d 100644 --- a/proto/steamdatagram_messages_sdr.proto +++ b/proto/steamdatagram_messages_sdr.proto @@ -129,6 +129,7 @@ message CMsgSteamDatagramGameserverPingReplyData { optional string build = 9; optional uint64 network_config_version = 10; optional fixed32 my_unix_time = 11; + optional bytes routing_blob = 12; } message CMsgSteamDatagramNoSessionRelayToClient { diff --git a/proto/steammessages_gamenetworkingui.proto b/proto/steammessages_gamenetworkingui.proto index a5c67d03c..e6b70291a 100644 --- a/proto/steammessages_gamenetworkingui.proto +++ b/proto/steammessages_gamenetworkingui.proto @@ -40,3 +40,22 @@ message CGameNetworkingUI_ConnectionState { message CGameNetworkingUI_Message { repeated .CGameNetworkingUI_ConnectionState connection_state = 1; } + +message CGameNetworkingUI_ConnectionSummary { + optional uint32 transport_kind = 1; + optional uint32 connection_state = 8; + optional string sdrpop_local = 2; + optional string sdrpop_remote = 3; + optional uint32 ping_ms = 4; + optional float packet_loss = 5; + optional uint32 ping_default_internet_route = 6; + optional bool ip_was_shared = 7; +} + +message CGameNetworkingUI_AppSummary { + optional uint32 appid = 1; + optional bool ip_was_shared_with_friend = 10; + optional bool ip_was_shared_with_nonfriend = 11; + optional uint32 active_connections = 20; + optional .CGameNetworkingUI_ConnectionSummary main_cxn = 30; +} diff --git a/proto/steammessages_steamlearn.steamworkssdk.proto b/proto/steammessages_steamlearn.steamworkssdk.proto index 508178be3..893d15a15 100644 --- a/proto/steammessages_steamlearn.steamworkssdk.proto +++ b/proto/steammessages_steamlearn.steamworkssdk.proto @@ -50,8 +50,9 @@ enum ESteamLearnSnapshotProjectResult { STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_PUBLISHED_VERSION = 12; } -enum ESteamLearnGetHMACKeysResult { - STEAMLEARN_GET_HMAC_KEYS_SUCCESS = 0; +enum ESteamLearnGetAccessTokensResult { + STEAMLEARN_GET_ACCESS_TOKENS_ERROR = 0; + STEAMLEARN_GET_ACCESS_TOKENS_SUCCESS = 1; } enum ESteamLearnInferenceResult { @@ -122,15 +123,8 @@ message CMsgSteamLearnDataList { repeated .CMsgSteamLearnData data = 1; } -message CMsgSteamLearn_AccessData { - optional uint32 publisher_id = 1; - optional uint32 timestamp = 2; - optional uint64 random_value = 3; -} - message CMsgSteamLearn_RegisterDataSource_Request { optional string access_token = 1; - optional .CMsgSteamLearn_AccessData access_data = 2; optional .CMsgSteamLearnDataSource data_source = 3; } @@ -141,7 +135,6 @@ message CMsgSteamLearn_RegisterDataSource_Response { message CMsgSteamLearn_CacheData_Request { optional string access_token = 1; - optional .CMsgSteamLearn_AccessData access_data = 2; optional .CMsgSteamLearnData data = 3; } @@ -151,7 +144,6 @@ message CMsgSteamLearn_CacheData_Response { message CMsgSteamLearn_SnapshotProject_Request { optional string access_token = 1; - optional .CMsgSteamLearn_AccessData access_data = 2; optional uint32 project_id = 3; optional uint32 published_version = 7; repeated uint64 keys = 4; @@ -166,43 +158,48 @@ message CMsgSteamLearn_SnapshotProject_Response { message CMsgSteamLearn_BatchOperation_Request { repeated .CMsgSteamLearn_CacheData_Request cache_data_requests = 1; repeated .CMsgSteamLearn_SnapshotProject_Request snapshot_requests = 2; + repeated .CMsgSteamLearn_Inference_Request inference_requests = 3; } message CMsgSteamLearn_BatchOperation_Response { repeated .CMsgSteamLearn_CacheData_Response cache_data_responses = 1; repeated .CMsgSteamLearn_SnapshotProject_Response snapshot_responses = 2; + repeated .CMsgSteamLearn_Inference_Response inference_responses = 3; } -message CMsgSteamLearnHMACKeys { - message CacheDataKeys { +message CMsgSteamLearnAccessTokens { + message CacheDataAccessToken { optional uint32 data_source_id = 1; - optional uint32 version = 3; - optional string key = 2; + optional string access_token = 2; + } + + message SnapshotProjectAccessToken { + optional uint32 project_id = 1; + optional string access_token = 2; } - message SnapshotProjectKeys { + message InferenceAccessToken { optional uint32 project_id = 1; - optional uint32 published_version = 3; - optional string key = 2; + optional string access_token = 2; } - optional string register_data_source_key = 1; - repeated .CMsgSteamLearnHMACKeys.CacheDataKeys cache_data_keys = 2; - repeated .CMsgSteamLearnHMACKeys.SnapshotProjectKeys snapshot_project_keys = 3; + optional string register_data_source_access_token = 1; + repeated .CMsgSteamLearnAccessTokens.CacheDataAccessToken cache_data_access_tokens = 2; + repeated .CMsgSteamLearnAccessTokens.SnapshotProjectAccessToken snapshot_project_access_tokens = 3; + repeated .CMsgSteamLearnAccessTokens.InferenceAccessToken inference_access_tokens = 4; } -message CMsgSteamLearn_GetHMACKeys_Request { +message CMsgSteamLearn_GetAccessTokens_Request { optional uint32 appid = 1; } -message CMsgSteamLearn_GetHMACKeys_Response { - optional .ESteamLearnGetHMACKeysResult result = 1 [default = STEAMLEARN_GET_HMAC_KEYS_SUCCESS]; - optional .CMsgSteamLearnHMACKeys keys = 2; +message CMsgSteamLearn_GetAccessTokens_Response { + optional .ESteamLearnGetAccessTokensResult result = 1 [default = STEAMLEARN_GET_ACCESS_TOKENS_ERROR]; + optional .CMsgSteamLearnAccessTokens access_tokens = 2; } message CMsgSteamLearn_Inference_Request { optional string access_token = 1; - optional .CMsgSteamLearn_AccessData access_data = 2; optional uint32 project_id = 3; optional uint32 published_version = 4; optional uint32 override_train_id = 5; @@ -212,7 +209,6 @@ message CMsgSteamLearn_Inference_Request { message CMsgSteamLearn_InferenceMetadata_Request { optional string access_token = 1; - optional .CMsgSteamLearn_AccessData access_data = 2; optional uint32 project_id = 3; optional uint32 published_version = 4; optional uint32 override_train_id = 5; @@ -294,6 +290,10 @@ message CMsgSteamLearn_InferenceMetadata_Response { } message CMsgSteamLearn_InferenceBackend_Response { + message RegressionOutput { + optional float value = 1; + } + message BinaryCrossEntropyOutput { optional float value = 1; } @@ -313,6 +313,7 @@ message CMsgSteamLearn_InferenceBackend_Response { .CMsgSteamLearn_InferenceBackend_Response.BinaryCrossEntropyOutput binary_crossentropy = 1; .CMsgSteamLearn_InferenceBackend_Response.CategoricalCrossEntropyOutput categorical_crossentropy = 2; .CMsgSteamLearn_InferenceBackend_Response.MutliBinaryCrossEntropyOutput multi_binary_crossentropy = 3; + .CMsgSteamLearn_InferenceBackend_Response.RegressionOutput regression = 4; } } @@ -322,6 +323,7 @@ message CMsgSteamLearn_InferenceBackend_Response { message CMsgSteamLearn_Inference_Response { optional .ESteamLearnInferenceResult inference_result = 1 [default = STEAMLEARN_INFERENCE_ERROR]; optional .CMsgSteamLearn_InferenceBackend_Response backend_response = 2; + repeated uint64 keys = 3; } service SteamLearn { @@ -343,8 +345,8 @@ service SteamLearn { option (method_description) = "Batches multiple data updates, snapshots, and inference requests into a single call"; } - rpc GetHMACKeys (.CMsgSteamLearn_GetHMACKeys_Request) returns (.CMsgSteamLearn_GetHMACKeys_Response) { - option (method_description) = "Gets the HMAC keys needed for registering data sources, submitting data to them, and snapshotting projects"; + rpc GetAccessTokens (.CMsgSteamLearn_GetAccessTokens_Request) returns (.CMsgSteamLearn_GetAccessTokens_Response) { + option (method_description) = "Gets the access tokens needed for registering data sources, submitting data to them, and snapshotting projects"; } rpc Inference (.CMsgSteamLearn_Inference_Request) returns (.CMsgSteamLearn_Inference_Response) { diff --git a/proto/steamnetworkingsockets_messages.proto b/proto/steamnetworkingsockets_messages.proto index 11d872de3..055074007 100644 --- a/proto/steamnetworkingsockets_messages.proto +++ b/proto/steamnetworkingsockets_messages.proto @@ -91,34 +91,6 @@ message CMsgSteamDatagramLinkLifetimeStats { optional uint32 jitter_histogram_5 = 64; optional uint32 jitter_histogram_10 = 65; optional uint32 jitter_histogram_20 = 66; - optional uint32 txspeed_max = 67; - optional uint32 txspeed_histogram_16 = 68; - optional uint32 txspeed_histogram_32 = 69; - optional uint32 txspeed_histogram_64 = 70; - optional uint32 txspeed_histogram_128 = 71; - optional uint32 txspeed_histogram_256 = 72; - optional uint32 txspeed_histogram_512 = 73; - optional uint32 txspeed_histogram_1024 = 74; - optional uint32 txspeed_histogram_max = 75; - optional uint32 txspeed_ntile_5th = 76; - optional uint32 txspeed_ntile_50th = 77; - optional uint32 txspeed_ntile_75th = 78; - optional uint32 txspeed_ntile_95th = 79; - optional uint32 txspeed_ntile_98th = 80; - optional uint32 rxspeed_max = 81; - optional uint32 rxspeed_histogram_16 = 82; - optional uint32 rxspeed_histogram_32 = 83; - optional uint32 rxspeed_histogram_64 = 84; - optional uint32 rxspeed_histogram_128 = 85; - optional uint32 rxspeed_histogram_256 = 86; - optional uint32 rxspeed_histogram_512 = 87; - optional uint32 rxspeed_histogram_1024 = 88; - optional uint32 rxspeed_histogram_max = 89; - optional uint32 rxspeed_ntile_5th = 90; - optional uint32 rxspeed_ntile_50th = 91; - optional uint32 rxspeed_ntile_75th = 92; - optional uint32 rxspeed_ntile_95th = 93; - optional uint32 rxspeed_ntile_98th = 94; } message CMsgSteamDatagramConnectionQuality { diff --git a/proto/steamnetworkingsockets_messages_certs.proto b/proto/steamnetworkingsockets_messages_certs.proto index 3b85c9cfc..6ad2c3f04 100644 --- a/proto/steamnetworkingsockets_messages_certs.proto +++ b/proto/steamnetworkingsockets_messages_certs.proto @@ -3,7 +3,6 @@ option cc_generic_services = false; message CMsgSteamNetworkingIdentityLegacyBinary { optional fixed64 steam_id = 16; - optional string xbox_pairwise_id = 17; optional bytes generic_bytes = 2; optional string generic_string = 3; optional bytes ipv6_and_port = 4; diff --git a/proto/usercmd.proto b/proto/usercmd.proto index 5be3f6385..3f1023382 100644 --- a/proto/usercmd.proto +++ b/proto/usercmd.proto @@ -10,6 +10,8 @@ message CSubtickMoveStep { optional uint64 button = 1; optional bool pressed = 2; optional float when = 3; + optional float analog_forward_delta = 4; + optional float analog_left_delta = 5; } message CBaseUserCmdPB { @@ -25,7 +27,6 @@ message CBaseUserCmdPB { optional int32 random_seed = 10; optional int32 mousedx = 11; optional int32 mousedy = 12; - optional bool hasbeenpredicted = 13; optional uint32 pawn_entity_handle = 14 [default = 16777215]; repeated .CSubtickMoveStep subtick_moves = 18; optional bytes move_crc = 19; diff --git a/proto/usermessages.proto b/proto/usermessages.proto index dff8c2045..3f28f510a 100644 --- a/proto/usermessages.proto +++ b/proto/usermessages.proto @@ -19,6 +19,7 @@ enum EBaseUserMessages { UM_SayTextChannel = 119; UM_Shake = 120; UM_ShakeDir = 121; + UM_WaterShake = 122; UM_TextMsg = 124; UM_ScreenTilt = 125; UM_VoiceMask = 128; @@ -49,6 +50,8 @@ enum EBaseUserMessages { UM_RequestDiagnostic = 162; UM_DiagnosticResponse = 163; UM_ExtraUserData = 164; + UM_NotifyResponseFound = 165; + UM_PlayResponseConditional = 166; UM_MAX_BASE = 200; } @@ -100,6 +103,10 @@ enum PARTICLE_MESSAGE { GAME_PARTICLE_MANAGER_EVENT_UPDATE_TRANSFORM = 27; GAME_PARTICLE_MANAGER_EVENT_FREEZE_TRANSITION_OVERRIDE = 28; GAME_PARTICLE_MANAGER_EVENT_FREEZE_INVOLVING = 29; + GAME_PARTICLE_MANAGER_EVENT_ADD_MODELLIST_OVERRIDE_ELEMENT = 30; + GAME_PARTICLE_MANAGER_EVENT_CLEAR_MODELLIST_OVERRIDE = 31; + GAME_PARTICLE_MANAGER_EVENT_CREATE_PHYSICS_SIM = 32; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_PHYSICS_SIM = 33; } enum EHapticPulseType { @@ -163,6 +170,13 @@ message CUserMessageShakeDir { optional .CMsgVector direction = 2; } +message CUserMessageWaterShake { + optional uint32 command = 1; + optional float amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + message CUserMessageScreenTilt { optional uint32 command = 1; optional bool ease_in_out = 2; @@ -334,6 +348,8 @@ message CUserMsg_ParticleManager { optional bool apply_voice_ban_rules = 5; optional int32 team_behavior = 6; optional string control_point_configuration = 7; + optional bool cluster = 8; + optional float endcap_time = 9; } message DestroyParticle { @@ -475,6 +491,16 @@ message CUserMsg_ParticleManager { optional uint32 entity_handle = 3 [default = 16777215]; } + message AddModellistOverrideElement { + optional string model_name = 1; + optional float spawn_probability = 2; + optional uint32 groupid = 3; + } + + message ClearModellistOverride { + optional uint32 groupid = 1; + } + message SetParticleNamedValueContext { message FloatContextValue { optional uint32 value_name_hash = 1; @@ -503,6 +529,13 @@ message CUserMsg_ParticleManager { repeated .CUserMsg_ParticleManager.SetParticleNamedValueContext.EHandleContext ehandle_values = 4; } + message CreatePhysicsSim { + optional string prop_group_name = 1; + } + + message DestroyPhysicsSim { + } + required .PARTICLE_MESSAGE type = 1 [default = GAME_PARTICLE_MANAGER_EVENT_CREATE]; required uint32 index = 2; optional .CUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3; @@ -534,6 +567,10 @@ message CUserMsg_ParticleManager { optional .CUserMsg_ParticleManager.UpdateParticleTransform update_particle_transform = 30; optional .CUserMsg_ParticleManager.ParticleFreezeTransitionOverride particle_freeze_transition_override = 31; optional .CUserMsg_ParticleManager.FreezeParticleInvolving freeze_particle_involving = 32; + optional .CUserMsg_ParticleManager.AddModellistOverrideElement add_modellist_override_element = 33; + optional .CUserMsg_ParticleManager.ClearModellistOverride clear_modellist_override = 34; + optional .CUserMsg_ParticleManager.CreatePhysicsSim create_physics_sim = 35; + optional .CUserMsg_ParticleManager.DestroyPhysicsSim destroy_physics_sim = 36; extensions 100 to 201; } @@ -565,18 +602,6 @@ message CUserMessageAnimStateGraphState { optional bytes data = 2; } -message CUserMessageCommandQueueState { - message command_queue_info_t { - optional uint32 commands_queued = 1; - optional uint32 command_queue_desired_size = 2; - optional uint32 starved_command_ticks = 3; - optional int32 time_dilation_percent = 4; - } - - optional int32 player_slot = 1 [default = -1]; - optional .CUserMessageCommandQueueState.command_queue_info_t command_queue_info = 2; -} - message CUserMessageUpdateCssClasses { optional int32 target_world_panel = 1; optional string css_classes = 2; @@ -634,6 +659,13 @@ message CUserMessage_DllStatus { optional string string_value = 4; } + message CModule { + optional uint64 base_addr = 1; + optional string name = 2; + optional uint32 size = 3; + optional uint32 timestamp = 4; + } + optional string file_report = 1; optional string command_line = 2; optional uint32 total_files = 3; @@ -641,6 +673,7 @@ message CUserMessage_DllStatus { optional int32 osversion = 5; optional uint64 client_time = 6; repeated .CUserMessage_DllStatus.CVDiagnostic diagnostics = 7; + repeated .CUserMessage_DllStatus.CModule modules = 8; } message CUserMessageRequestInventory { @@ -675,6 +708,7 @@ message CUserMessage_Inventory_Response { optional int32 inv_type = 11; optional int32 build_version = 12; optional int32 instance = 13; + optional int64 start_time = 15; } message CUserMessageRequestDiagnostic { @@ -690,6 +724,8 @@ message CUserMessageRequestDiagnostic { optional int64 detail = 9; optional string name = 10; optional string alias = 11; + optional bytes vardetail = 12; + optional int32 context = 13; } repeated .CUserMessageRequestDiagnostic.Diagnostic diagnostics = 1; @@ -705,11 +741,21 @@ message CUserMessage_Diagnostic_Response { optional int64 base = 6; optional int64 range = 7; optional int32 type = 8; + optional string name = 10; + optional string alias = 11; + optional bytes backup = 12; + optional int32 context = 13; + optional int64 control = 14; + optional int64 augment = 15; + optional int64 placebo = 16; } repeated .CUserMessage_Diagnostic_Response.Diagnostic diagnostics = 1; optional int32 build_version = 2; optional int32 instance = 3; + optional int64 start_time = 4; + optional int32 osversion = 5; + optional int32 platform = 6; } message CUserMessage_ExtraUserData { @@ -719,3 +765,23 @@ message CUserMessage_ExtraUserData { repeated bytes detail1 = 4; repeated bytes detail2 = 5; } + +message CUserMessage_NotifyResponseFound { + message Criteria { + optional uint32 name_symbol = 1; + optional string value = 2; + } + + optional int32 ent_index = 1 [default = -1]; + optional string rule_name = 2; + optional string response_value = 3; + optional string response_concept = 4; + repeated .CUserMessage_NotifyResponseFound.Criteria criteria = 5; +} + +message CUserMessage_PlayResponseConditional { + optional int32 ent_index = 1 [default = -1]; + repeated int32 player_slots = 2; + optional string response = 3; + optional .CMsgVector ent_origin = 4; +} From f0e086250a2b6c05b54da98bb6976d7dc6b3939e Mon Sep 17 00:00:00 2001 From: builder_247 <14019974+builder-247@users.noreply.github.com> Date: Tue, 28 May 2024 16:46:32 +0300 Subject: [PATCH 2/7] add facets --- global.d.ts | 1 + routes/responses/MatchResponse.ts | 4 ++++ sql/create_tables.sql | 1 + store/getGcData.ts | 1 + 4 files changed, 7 insertions(+) diff --git a/global.d.ts b/global.d.ts index c959833d9..cf09db12e 100644 --- a/global.d.ts +++ b/global.d.ts @@ -213,6 +213,7 @@ interface GcPlayer { party_id: number; party_size: number; permanent_buffs: any[]; + selected_facet: number; // Currently not passed account_id?: number; diff --git a/routes/responses/MatchResponse.ts b/routes/responses/MatchResponse.ts index 2826e4803..314e6455f 100644 --- a/routes/responses/MatchResponse.ts +++ b/routes/responses/MatchResponse.ts @@ -552,6 +552,10 @@ export default { type: 'object', }, }, + selected_facet: { + description: '1-indexed facet, see https://github.com/odota/dotaconstants/blob/master/build/hero_abilities.json', + type: 'integer', + }, pings: { description: 'Total number of pings', type: 'integer', diff --git a/sql/create_tables.sql b/sql/create_tables.sql index f954091e4..23e7729e2 100644 --- a/sql/create_tables.sql +++ b/sql/create_tables.sql @@ -127,6 +127,7 @@ CREATE TABLE IF NOT EXISTS player_matches ( ability_upgrades_arr integer[], party_id int, permanent_buffs json[], + selected_facet int, lane int, lane_role int, is_roaming boolean, diff --git a/store/getGcData.ts b/store/getGcData.ts index 647144b20..a0d03c920 100644 --- a/store/getGcData.ts +++ b/store/getGcData.ts @@ -97,6 +97,7 @@ async function saveGcData( player_slot: p.player_slot, party_id: Number(p.party_id), permanent_buffs: p.permanent_buffs ?? [], + selected_facet: p.selected_facet, party_size: data.match.players.filter( (matchPlayer: any) => Number(matchPlayer.party_id) === Number(p.party_id), From dc4c0ad358d168fff3122a0faade27288dca0853 Mon Sep 17 00:00:00 2001 From: builder_247 <14019974+builder-247@users.noreply.github.com> Date: Tue, 28 May 2024 21:49:21 +0300 Subject: [PATCH 3/7] Get hero facet from api instead of gc --- global.d.ts | 1 - routes/responses/MatchResponse.ts | 2 +- sql/create_tables.sql | 2 +- store/getGcData.ts | 1 - 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/global.d.ts b/global.d.ts index cf09db12e..c959833d9 100644 --- a/global.d.ts +++ b/global.d.ts @@ -213,7 +213,6 @@ interface GcPlayer { party_id: number; party_size: number; permanent_buffs: any[]; - selected_facet: number; // Currently not passed account_id?: number; diff --git a/routes/responses/MatchResponse.ts b/routes/responses/MatchResponse.ts index 314e6455f..848faa597 100644 --- a/routes/responses/MatchResponse.ts +++ b/routes/responses/MatchResponse.ts @@ -552,7 +552,7 @@ export default { type: 'object', }, }, - selected_facet: { + hero_variant: { description: '1-indexed facet, see https://github.com/odota/dotaconstants/blob/master/build/hero_abilities.json', type: 'integer', }, diff --git a/sql/create_tables.sql b/sql/create_tables.sql index 23e7729e2..231101e3e 100644 --- a/sql/create_tables.sql +++ b/sql/create_tables.sql @@ -127,7 +127,7 @@ CREATE TABLE IF NOT EXISTS player_matches ( ability_upgrades_arr integer[], party_id int, permanent_buffs json[], - selected_facet int, + hero_variant int, lane int, lane_role int, is_roaming boolean, diff --git a/store/getGcData.ts b/store/getGcData.ts index a0d03c920..647144b20 100644 --- a/store/getGcData.ts +++ b/store/getGcData.ts @@ -97,7 +97,6 @@ async function saveGcData( player_slot: p.player_slot, party_id: Number(p.party_id), permanent_buffs: p.permanent_buffs ?? [], - selected_facet: p.selected_facet, party_size: data.match.players.filter( (matchPlayer: any) => Number(matchPlayer.party_id) === Number(p.party_id), From 117c75fe52e6b7d223967cb58d20788b7c9a8588 Mon Sep 17 00:00:00 2001 From: builder_247 <14019974+builder-247@users.noreply.github.com> Date: Tue, 28 May 2024 22:14:26 +0300 Subject: [PATCH 4/7] Add hero facet to more endpoints --- routes/playerFields.ts | 2 ++ routes/responses/PlayerMatchesResponse.ts | 4 ++++ routes/responses/PlayerRecentMatchesResponse.ts | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/routes/playerFields.ts b/routes/playerFields.ts index 73448bf27..4cef70659 100644 --- a/routes/playerFields.ts +++ b/routes/playerFields.ts @@ -52,6 +52,7 @@ export const matchesCols = [ 'average_rank', 'leaver_status', 'party_size', + 'hero_variant', ] as const; // Used in the UI to show items on match list @@ -92,6 +93,7 @@ export const recentMatchesCols = [ 'cluster', 'leaver_status', 'party_size', + 'hero_variant', ] as (keyof ParsedPlayerMatch)[]; export const heroesCols = ['heroes', 'account_id', 'start_time'] as const; diff --git a/routes/responses/PlayerMatchesResponse.ts b/routes/responses/PlayerMatchesResponse.ts index 93a81e12c..f56974125 100644 --- a/routes/responses/PlayerMatchesResponse.ts +++ b/routes/responses/PlayerMatchesResponse.ts @@ -60,6 +60,10 @@ export default { type: 'integer', nullable: true, }, + hero_variant: { + description: '1-indexed facet, see https://github.com/odota/dotaconstants/blob/master/build/hero_abilities.json', + type: 'integer', + }, }, }, }; diff --git a/routes/responses/PlayerRecentMatchesResponse.ts b/routes/responses/PlayerRecentMatchesResponse.ts index 160129fa9..73d9913ec 100644 --- a/routes/responses/PlayerRecentMatchesResponse.ts +++ b/routes/responses/PlayerRecentMatchesResponse.ts @@ -101,6 +101,10 @@ export default { type: 'integer', nullable: true, }, + hero_variant: { + description: '1-indexed facet, see https://github.com/odota/dotaconstants/blob/master/build/hero_abilities.json', + type: 'integer', + }, }, }, }; From d0a55a2c861ea2267986d29575ce5acea97cae1f Mon Sep 17 00:00:00 2001 From: builder_247 <14019974+builder-247@users.noreply.github.com> Date: Tue, 28 May 2024 22:20:59 +0300 Subject: [PATCH 5/7] typing --- global.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/global.d.ts b/global.d.ts index c959833d9..f4bb3a552 100644 --- a/global.d.ts +++ b/global.d.ts @@ -103,6 +103,7 @@ type Player = { hero_healing: number; tower_damage: number; leaver_status: number; + hero_variant?: number; ability_upgrades?: any[]; ability_upgrades_arr: number[]; From f22e28a128c85cc1555ae751650c7856b392c6ce Mon Sep 17 00:00:00 2001 From: builder_247 <14019974+builder-247@users.noreply.github.com> Date: Tue, 28 May 2024 22:25:56 +0300 Subject: [PATCH 6/7] add hero_variant to player_caches --- sql/create_tables.cql | 1 + 1 file changed, 1 insertion(+) diff --git a/sql/create_tables.cql b/sql/create_tables.cql index 7fe1fb4b3..04e125217 100644 --- a/sql/create_tables.cql +++ b/sql/create_tables.cql @@ -65,6 +65,7 @@ CREATE TABLE IF NOT EXISTS player_caches ( item_5 text, item_neutral text, average_rank int, + hero_variant int, ) WITH CLUSTERING ORDER BY (match_id DESC); ALTER TABLE player_caches WITH compaction = { 'class' : 'LeveledCompactionStrategy', 'sstable_size_in_mb' : 320 }; From e441fa5f762ef6b901daa0352cc75222440419ff Mon Sep 17 00:00:00 2001 From: builder_247 <14019974+builder-247@users.noreply.github.com> Date: Sun, 2 Jun 2024 10:58:50 +0300 Subject: [PATCH 7/7] Update create_tables.cql --- sql/create_tables.cql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/create_tables.cql b/sql/create_tables.cql index 04e125217..1d73f0c32 100644 --- a/sql/create_tables.cql +++ b/sql/create_tables.cql @@ -65,7 +65,7 @@ CREATE TABLE IF NOT EXISTS player_caches ( item_5 text, item_neutral text, average_rank int, - hero_variant int, + hero_variant text, ) WITH CLUSTERING ORDER BY (match_id DESC); ALTER TABLE player_caches WITH compaction = { 'class' : 'LeveledCompactionStrategy', 'sstable_size_in_mb' : 320 };