package dota; import "steammessages.proto"; option optimize_for = SPEED; option cc_generic_services = false; enum EGCBaseMsg { k_EMsgGCSystemMessage = 4001; k_EMsgGCReplicateConVars = 4002; k_EMsgGCConVarUpdated = 4003; k_EMsgGCInviteToParty = 4501; k_EMsgGCInvitationCreated = 4502; k_EMsgGCPartyInviteResponse = 4503; k_EMsgGCKickFromParty = 4504; k_EMsgGCLeaveParty = 4505; k_EMsgGCServerAvailable = 4506; k_EMsgGCClientConnectToServer = 4507; k_EMsgGCGameServerInfo = 4508; k_EMsgGCError = 4509; k_EMsgGCLANServerAvailable = 4511; k_EMsgGCInviteToLobby = 4512; k_EMsgGCLobbyInviteResponse = 4513; } enum EGCBaseProtoObjectTypes { k_EProtoObjectPartyInvite = 1001; k_EProtoObjectLobbyInvite = 1002; } enum ECustomGameInstallStatus { k_ECustomGameInstallStatus_Unknown = 0; k_ECustomGameInstallStatus_Ready = 1; k_ECustomGameInstallStatus_Busy = 2; k_ECustomGameInstallStatus_FailedGeneric = 101; k_ECustomGameInstallStatus_FailedInternalError = 102; k_ECustomGameInstallStatus_RequestedTimestampTooOld = 103; k_ECustomGameInstallStatus_RequestedTimestampTooNew = 104; k_ECustomGameInstallStatus_CRCMismatch = 105; k_ECustomGameInstallStatus_FailedSteam = 106; k_ECustomGameInstallStatus_FailedCanceled = 107; } enum GC_BannedWordType { GC_BANNED_WORD_DISABLE_WORD = 0; GC_BANNED_WORD_ENABLE_WORD = 1; } message CGCStorePurchaseInit_LineItem { optional uint32 item_def_id = 1; optional uint32 quantity = 2; optional uint32 cost_in_local_currency = 3; optional uint32 purchase_type = 4; optional uint64 source_reference_id = 5; } message CMsgGCStorePurchaseInit { optional string country = 1; optional int32 language = 2; optional int32 currency = 3; repeated CGCStorePurchaseInit_LineItem line_items = 4; } message CMsgGCStorePurchaseInitResponse { optional int32 result = 1; optional uint64 txn_id = 2; } message CMsgSystemBroadcast { optional string message = 1; } message CMsgClientPingData { repeated fixed32 relay_codes = 4 [packed = true]; repeated uint32 relay_pings = 5 [packed = true]; repeated uint32 region_codes = 8 [packed = true]; repeated uint32 region_pings = 9 [packed = true]; optional uint32 region_ping_failed_bitmask = 10; } message CMsgInviteToParty { optional fixed64 steam_id = 1; optional uint32 client_version = 2; optional uint32 team_id = 3; optional bool as_coach = 4; optional CMsgClientPingData ping_data = 5; } message CMsgInviteToLobby { optional fixed64 steam_id = 1; optional uint32 client_version = 2; } message CMsgInvitationCreated { optional uint64 group_id = 1; optional fixed64 steam_id = 2; optional bool user_offline = 3; } message CMsgPartyInviteResponse { optional uint64 party_id = 1; optional bool accept = 2; optional uint32 client_version = 3; optional CMsgClientPingData ping_data = 8; } message CMsgLobbyInviteResponse { optional fixed64 lobby_id = 1; optional bool accept = 2; optional uint32 client_version = 3; optional fixed64 custom_game_crc = 6; optional fixed32 custom_game_timestamp = 7; } message CMsgKickFromParty { optional fixed64 steam_id = 1; } message CMsgLeaveParty { } message CMsgCustomGameInstallStatus { optional ECustomGameInstallStatus status = 1 [default = k_ECustomGameInstallStatus_Unknown]; optional string message = 2; optional fixed32 latest_timestamp_from_steam = 3; } message CMsgServerAvailable { optional CMsgCustomGameInstallStatus custom_game_install_status = 1; } message CMsgLANServerAvailable { optional fixed64 lobby_id = 1; } message CSOEconGameAccountClient { optional uint32 additional_backpack_slots = 1 [default = 0]; optional bool trial_account = 2 [default = false]; optional bool eligible_for_online_play = 3 [default = true]; optional bool need_to_choose_most_helpful_friend = 4; optional bool in_coaches_list = 5; optional fixed32 trade_ban_expiration = 6; optional fixed32 duel_ban_expiration = 7; optional uint32 preview_item_def = 8 [default = 0]; optional bool made_first_purchase = 9 [default = false]; } message CSOItemCriteriaCondition { optional int32 op = 1; optional string field = 2; optional bool required = 3; optional float float_value = 4; optional string string_value = 5; } message CSOItemCriteria { optional uint32 item_level = 1; optional int32 item_quality = 2; optional bool item_level_set = 3; optional bool item_quality_set = 4; optional uint32 initial_inventory = 5; optional uint32 initial_quantity = 6; optional bool ignore_enabled_flag = 8; repeated CSOItemCriteriaCondition conditions = 9; optional bool recent_only = 10; } message CSOItemRecipe { optional uint32 def_index = 1; optional string name = 2; optional string n_a = 3; optional string desc_inputs = 4; optional string desc_outputs = 5; optional string di_a = 6; optional string di_b = 7; optional string di_c = 8; optional string do_a = 9; optional string do_b = 10; optional string do_c = 11; optional bool requires_all_same_class = 12; optional bool requires_all_same_slot = 13; optional int32 class_usage_for_output = 14; optional int32 slot_usage_for_output = 15; optional int32 set_for_output = 16; repeated CSOItemCriteria input_items_criteria = 20; repeated CSOItemCriteria output_items_criteria = 21; repeated uint32 input_item_dupe_counts = 22; } message CMsgApplyStrangePart { optional uint64 strange_part_item_id = 1; optional uint64 item_item_id = 2; } message CMsgApplyPennantUpgrade { optional uint64 upgrade_item_id = 1; optional uint64 pennant_item_id = 2; } message CMsgApplyEggEssence { optional uint64 essence_item_id = 1; optional uint64 egg_item_id = 2; } message CSOEconItemAttribute { optional uint32 def_index = 1; optional uint32 value = 2; optional bytes value_bytes = 3; } message CSOEconItemEquipped { optional uint32 new_class = 1; optional uint32 new_slot = 2; } message CSOEconItem { optional uint64 id = 1; optional uint32 account_id = 2; optional uint32 inventory = 3; optional uint32 def_index = 4; optional uint32 quantity = 5 [default = 1]; optional uint32 level = 6 [default = 1]; optional uint32 quality = 7 [default = 4]; optional uint32 flags = 8 [default = 0]; optional uint32 origin = 9 [default = 0]; repeated CSOEconItemAttribute attribute = 12; optional CSOEconItem interior_item = 13; optional bool in_use = 14 [default = false]; optional uint32 style = 15 [default = 0]; optional uint64 original_id = 16 [default = 0]; repeated CSOEconItemEquipped equipped_state = 18; } message CMsgSortItems { optional uint32 sort_type = 1; } message CSOEconClaimCode { optional uint32 account_id = 1; optional uint32 code_type = 2; optional uint32 time_acquired = 3; optional string code = 4; } message CMsgStoreGetUserData { optional fixed32 price_sheet_version = 1; } message CMsgStoreGetUserDataResponse { optional int32 result = 1; optional int32 currency = 2; optional string country = 3; optional fixed32 price_sheet_version = 4; optional uint64 experiment_data = 5 [default = 0]; optional int32 featured_item_idx = 6; optional bool show_hat_descriptions = 7 [default = true]; optional bytes price_sheet = 8; optional int32 default_item_sort = 9 [default = 0]; repeated uint32 popular_items = 10; } message CMsgUpdateItemSchema { optional bytes items_game = 1; optional fixed32 item_schema_version = 2; optional string items_game_url = 3; } message CMsgGCError { optional string error_text = 1; } message CMsgRequestInventoryRefresh { } message CMsgConVarValue { optional string name = 1; optional string value = 2; } message CMsgReplicateConVars { repeated CMsgConVarValue convars = 1; } message CMsgConsumableExhausted { optional int32 item_def_id = 1; } message CMsgItemAcknowledged { optional uint32 account_id = 1; optional uint32 inventory = 2; optional uint32 def_index = 3; optional uint32 quality = 4; optional uint32 rarity = 5; optional uint32 origin = 6; } message CMsgSetItemPositions { message ItemPosition { optional uint64 item_id = 1; optional uint32 position = 2; } repeated CMsgSetItemPositions.ItemPosition item_positions = 1; } message CMsgGCNameItemNotification { optional fixed64 player_steamid = 1; optional uint32 item_def_index = 2; optional string item_name_custom = 3; } message CMsgGCClientDisplayNotification { optional string notification_title_localization_key = 1; optional string notification_body_localization_key = 2; repeated string body_substring_keys = 3; repeated string body_substring_values = 4; } message CMsgGCShowItemsPickedUp { optional fixed64 player_steamid = 1; } message CMsgGCIncrementKillCountResponse { optional uint32 killer_account_id = 1 [(key_field) = true]; optional uint32 num_kills = 2; optional uint32 item_def = 3; optional uint32 level_type = 4; } message CSOEconItemDropRateBonus { optional uint32 account_id = 1 [(key_field) = true]; optional fixed32 expiration_date = 2; optional float bonus = 3 [(key_field) = true]; optional uint32 bonus_count = 4; optional uint64 item_id = 5; optional uint32 def_index = 6; optional uint32 seconds_left = 7; optional uint32 booster_type = 8 [(key_field) = true]; } message CSOEconItemLeagueViewPass { optional uint32 account_id = 1 [(key_field) = true]; optional uint32 league_id = 2 [(key_field) = true]; optional uint32 itemindex = 4; optional uint32 grant_reason = 5; } message CSOEconItemEventTicket { optional uint32 account_id = 1; optional uint32 event_id = 2; optional uint64 item_id = 3; } message CSOEconItemTournamentPassport { optional uint32 account_id = 1; optional uint32 league_id = 2; optional uint64 item_id = 3; optional uint32 original_purchaser_id = 4; optional uint32 passports_bought = 5; optional uint32 version = 6; optional uint32 def_index = 7; optional uint32 reward_flags = 8; } message CMsgGCItemPreviewItemBoughtNotification { optional uint32 item_def_index = 1; } message CMsgGCStorePurchaseCancel { optional uint64 txn_id = 1; } message CMsgGCStorePurchaseCancelResponse { optional uint32 result = 1; } message CMsgGCStorePurchaseFinalize { optional uint64 txn_id = 1; } message CMsgGCStorePurchaseFinalizeResponse { optional uint32 result = 1; repeated uint64 item_ids = 2; } message CMsgGCBannedWordListRequest { optional uint32 ban_list_group_id = 1; optional uint32 word_id = 2; } message CMsgGCBannedWord { optional uint32 word_id = 1; optional GC_BannedWordType word_type = 2 [default = GC_BANNED_WORD_DISABLE_WORD]; optional string word = 3; } message CMsgGCBannedWordListResponse { optional uint32 ban_list_group_id = 1; repeated CMsgGCBannedWord word_list = 2; } message CMsgGCToGCBannedWordListBroadcast { optional CMsgGCBannedWordListResponse broadcast = 1; } message CMsgGCToGCBannedWordListUpdated { optional uint32 group_id = 1; } message CMsgGCToGCDirtySDOCache { optional uint32 sdo_type = 1; optional uint64 key_uint64 = 2; } message CMsgGCToGCDirtyMultipleSDOCache { optional uint32 sdo_type = 1; repeated uint64 key_uint64 = 2; } message CMsgGCToGCApplyLocalizationDiff { optional uint32 language = 1; optional string packed_diff = 2; } message CMsgGCToGCApplyLocalizationDiffResponse { optional bool success = 1; } message CMsgGCCollectItem { optional uint64 collection_item_id = 1; optional uint64 subject_item_id = 2; } message CMsgSDONoMemcached { } message CMsgGCToGCUpdateSQLKeyValue { optional string key_name = 1; } message CMsgGCServerVersionUpdated { optional uint32 server_version = 1; } message CMsgGCClientVersionUpdated { optional uint32 client_version = 1; } message CMsgGCToGCWebAPIAccountChanged { } message CMsgRecipeComponent { optional uint64 subject_item_id = 1; optional uint64 attribute_index = 2; } message CMsgFulfillDynamicRecipeComponent { optional uint64 tool_item_id = 1; repeated CMsgRecipeComponent consumption_components = 2; } message CMsgGCClientMarketDataRequest { optional uint32 user_currency = 1; } message CMsgGCClientMarketDataEntry { optional uint32 item_def_index = 1; optional uint32 item_quality = 2; optional uint32 item_sell_listings = 3; optional uint32 price_in_local_currency = 4; } message CMsgGCClientMarketData { repeated CMsgGCClientMarketDataEntry entries = 1; } message CMsgExtractGems { optional uint64 tool_item_id = 1; optional uint64 item_item_id = 2; optional uint32 item_socket_id = 3 [default = 65535]; } message CMsgExtractGemsResponse { enum EExtractGems { k_ExtractGems_Succeeded = 0; k_ExtractGems_Failed_ToolIsInvalid = 1; k_ExtractGems_Failed_ItemIsInvalid = 2; k_ExtractGems_Failed_ToolCannotRemoveGem = 3; k_ExtractGems_Failed_FailedToRemoveGem = 4; } optional uint64 item_id = 1; optional CMsgExtractGemsResponse.EExtractGems response = 2 [default = k_ExtractGems_Succeeded]; } message CMsgAddSocket { optional uint64 tool_item_id = 1; optional uint64 item_item_id = 2; optional bool unusual = 3; } message CMsgAddSocketResponse { enum EAddSocket { k_AddSocket_Succeeded = 0; k_AddSocket_Failed_ToolIsInvalid = 1; k_AddSocket_Failed_ItemCannotBeSocketed = 2; k_AddSocket_Failed_FailedToAddSocket = 3; } optional uint64 item_id = 1; repeated uint32 updated_socket_index = 2; optional CMsgAddSocketResponse.EAddSocket response = 3 [default = k_AddSocket_Succeeded]; } message CMsgAddItemToSocketData { optional uint64 gem_item_id = 1; optional uint32 socket_index = 2; } message CMsgAddItemToSocket { optional uint64 item_item_id = 1; repeated CMsgAddItemToSocketData gems_to_socket = 2; } message CMsgAddItemToSocketResponse { enum EAddGem { k_AddGem_Succeeded = 0; k_AddGem_Failed_GemIsInvalid = 1; k_AddGem_Failed_ItemIsInvalid = 2; k_AddGem_Failed_FailedToAddGem = 3; k_AddGem_Failed_InvalidGemTypeForSocket = 4; k_AddGem_Failed_InvalidGemTypeForHero = 5; k_AddGem_Failed_InvalidGemTypeForSlot = 6; k_AddGem_Failed_SocketContainsUnremovableGem = 7; } optional uint64 item_item_id = 1; repeated uint32 updated_socket_index = 2; optional CMsgAddItemToSocketResponse.EAddGem response = 3 [default = k_AddGem_Succeeded]; } message CMsgResetStrangeGemCount { optional uint64 item_item_id = 1; optional uint32 socket_index = 2; } message CMsgResetStrangeGemCountResponse { enum EResetGem { k_ResetGem_Succeeded = 0; k_ResetGem_Failed_FailedToResetGem = 1; k_ResetGem_Failed_ItemIsInvalid = 2; k_ResetGem_Failed_InvalidSocketId = 3; k_ResetGem_Failed_SocketCannotBeReset = 4; } optional CMsgResetStrangeGemCountResponse.EResetGem response = 1 [default = k_ResetGem_Succeeded]; }