diff --git a/game/shared/base_gcmessages.proto b/game/shared/base_gcmessages.proto new file mode 100644 index 00000000..54522956 --- /dev/null +++ b/game/shared/base_gcmessages.proto @@ -0,0 +1,571 @@ +import "steammessages.proto"; + +enum EGCBaseMsg { + k_EMsgGCSystemMessage = 4001; + k_EMsgGCReplicateConVars = 4002; + k_EMsgGCConVarUpdated = 4003; + k_EMsgGCInQueue = 4008; + 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_EMsgGCReplay_UploadedToYouTube = 4510; + k_EMsgGCLANServerAvailable = 4511; +} + +enum EGCBaseProtoObjectTypes { + k_EProtoObjectPartyInvite = 1001; + k_EProtoObjectLobbyInvite = 1002; +} + +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 supplemental_data = 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; + optional string url = 3; + repeated uint64 item_ids = 4; +} + +message CSOPartyInvite { + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; +} + +message CSOLobbyInvite { + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; +} + +message CMsgSystemBroadcast { + optional string message = 1; +} + +message CMsgInviteToParty { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; + optional uint32 team_invite = 3; +} + +message CMsgInvitationCreated { + optional uint64 group_id = 1; + optional fixed64 steam_id = 2; +} + +message CMsgPartyInviteResponse { + optional uint64 party_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional uint32 team_invite = 4; +} + +message CMsgKickFromParty { + optional fixed64 steam_id = 1; +} + +message CMsgLeaveParty { +} + +message CMsgServerAvailable { +} + +message CMsgLANServerAvailable { + optional fixed64 lobby_id = 1; +} + +message CSOEconGameAccountClient { + optional uint32 additional_backpack_slots = 1 [default = 0]; + optional fixed32 bonus_xp_timestamp_refresh = 12; + optional uint32 bonus_xp_usedflags = 13; + optional uint32 elevated_state = 14; + optional uint32 elevated_timestamp = 15; +} + +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 int32 item_rarity = 10; + optional bool item_rarity_set = 11; + optional bool recent_only = 12; +} + +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 CMsgDevNewItemRequest { + optional fixed64 receiver = 1; + optional .CSOItemCriteria criteria = 2; +} + +message CMsgIncrementKillCountAttribute { + optional fixed32 killer_account_id = 1; + optional fixed32 victim_account_id = 2; + optional uint64 item_id = 3; + optional uint32 event_type = 4; + optional uint32 amount = 5; +} + +message CMsgApplySticker { + optional uint64 sticker_item_id = 1; + optional uint64 item_item_id = 2; + optional uint32 sticker_slot = 3; + optional uint32 baseitem_defidx = 4; + optional float sticker_wear = 5; + optional float sticker_rotation = 6; + optional float sticker_scale = 7; + optional float sticker_offset_x = 8; + optional float sticker_offset_y = 9; +} + +message CMsgModifyItemAttribute { + optional uint64 item_id = 1; + optional uint32 attr_defidx = 2; + optional uint32 attr_value = 3; +} + +message CMsgApplyStatTrakSwap { + optional uint64 tool_item_id = 1; + optional uint64 item_1_item_id = 2; + optional uint64 item_2_item_id = 3; +} + +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; + optional uint32 level = 6; + optional uint32 quality = 7; + optional uint32 flags = 8 [default = 0]; + optional uint32 origin = 9; + optional string custom_name = 10; + optional string custom_desc = 11; + 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; + optional uint32 rarity = 19; +} + +message CMsgAdjustItemEquippedState { + optional uint64 item_id = 1; + optional uint32 new_class = 2; + optional uint32 new_slot = 3; + optional bool swap = 4; +} + +message CMsgAdjustItemEquippedStateMulti { + repeated uint64 t_equips = 1; + repeated uint64 ct_equips = 2; + repeated uint64 noteam_equips = 3; +} + +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; + optional int32 currency = 2; +} + +message CMsgStoreGetUserDataResponse { + optional int32 result = 1; + optional int32 currency_deprecated = 2; + optional string country_deprecated = 3; + optional fixed32 price_sheet_version = 4; + optional bytes price_sheet = 8; +} + +message CMsgUpdateItemSchema { + optional bytes items_game = 1; + optional fixed32 item_schema_version = 2; + optional string items_game_url = 4; +} + +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 CMsgUseItem { + optional uint64 item_id = 1; + optional fixed64 target_steam_id = 2; + repeated uint32 gift__potential_targets = 3; + optional uint32 duel__class_lock = 4; + optional fixed64 initiator_steam_id = 5; +} + +message CMsgReplayUploadedToYouTube { + optional string youtube_url = 1; + optional string youtube_account_name = 2; + optional uint64 session_id = 3; +} + +message CMsgConsumableExhausted { + optional int32 item_def_id = 1; +} + +message CMsgItemAcknowledged__DEPRECATED { + 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; + optional uint64 item_id = 7; +} + +message CMsgSetItemPositions { + message ItemPosition { + optional uint32 legacy_item_id = 1; + optional uint32 position = 2; + optional uint64 item_id = 3; + } + + repeated .CMsgSetItemPositions.ItemPosition item_positions = 1; +} + +message CMsgGCReportAbuse { + optional fixed64 target_steam_id = 1; + optional string description = 4; + optional uint64 gid = 5; + optional uint32 abuse_type = 2; + optional uint32 content_type = 3; + optional fixed32 target_game_server_ip = 6; + optional uint32 target_game_server_port = 7; +} + +message CMsgGCReportAbuseResponse { + optional fixed64 target_steam_id = 1; + optional uint32 result = 2; + optional string error_message = 3; +} + +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; + optional fixed32 expiration_date = 2; + optional float bonus = 3; + optional uint32 bonus_count = 4; + optional uint64 item_id = 5; + optional uint32 def_index = 6; +} + +message CSOEconItemLeagueViewPass { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 league_id = 2 [(key_field) = true]; + optional uint32 admin = 3; + optional uint32 itemindex = 4; +} + +message CSOEconItemEventTicket { + optional uint32 account_id = 1; + optional uint32 event_id = 2; + optional uint64 item_id = 3; +} + +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 CMsgGCRequestAnnouncements { +} + +message CMsgGCRequestAnnouncementsResponse { + optional string announcement_title = 1; + optional string announcement = 2; + optional string nextmatch_title = 3; + optional string nextmatch = 4; +} + +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 CSOEconDefaultEquippedDefinitionInstanceClient { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 item_definition = 2; + optional uint32 class_id = 3 [(key_field) = true]; + optional uint32 slot_id = 4 [(key_field) = true]; +} + +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 CMsgGCCollectItem { + optional uint64 collection_item_id = 1; + optional uint64 subject_item_id = 2; +} + +message CMsgSDONoMemcached { +} + +message CMsgGCToGCUpdateSQLKeyValue { + optional string key_name = 1; +} + +message CMsgGCToGCIsTrustedServer { + optional fixed64 steam_id = 1; +} + +message CMsgGCToGCIsTrustedServerResponse { + optional bool is_trusted = 1; +} + +message CMsgGCToGCBroadcastConsoleCommand { + optional string con_command = 1; +} + +message CMsgGCServerVersionUpdated { + optional uint32 server_version = 1; +} + +message CMsgGCClientVersionUpdated { + optional uint32 client_version = 1; +} + +message CMsgGCToGCWebAPIAccountChanged { +} + +message CMsgGCToGCRequestPassportItemGrant { + optional fixed64 steam_id = 1; + optional uint32 league_id = 2; + optional int32 reward_flag = 3; +} + +message CMsgGameServerInfo { + enum ServerType { + UNSPECIFIED = 0; + GAME = 1; + PROXY = 2; + } + + optional fixed32 server_public_ip_addr = 1; + optional fixed32 server_private_ip_addr = 2; + optional uint32 server_port = 3; + optional uint32 server_tv_port = 4; + optional string server_key = 5; + optional bool server_hibernation = 6; + optional .CMsgGameServerInfo.ServerType server_type = 7 [default = UNSPECIFIED]; + optional uint32 server_region = 8; + optional float server_loadavg = 9; + optional float server_tv_broadcast_time = 10; + optional float server_game_time = 11; + optional fixed64 server_relay_connected_steam_id = 12; + optional uint32 relay_slots_max = 13; + optional int32 relays_connected = 14; + optional int32 relay_clients_connected = 15; + optional fixed64 relayed_game_server_steam_id = 16; + optional uint32 parent_relay_count = 17; + optional fixed64 tv_secret_code = 18; +} + +message CSOEconEquipSlot { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 class_id = 2 [(key_field) = true]; + optional uint32 slot_id = 3 [(key_field) = true]; + optional uint64 item_id = 4; + optional uint32 item_definition = 5; +} + +message CMsgAdjustEquipSlot { + optional uint32 class_id = 1; + optional uint32 slot_id = 2; + optional uint64 item_id = 3; +} + +message CMsgAdjustEquipSlots { + repeated .CMsgAdjustEquipSlot slots = 1; + optional uint32 change_num = 2; +} + +message CMsgOpenCrate { + optional uint64 tool_item_id = 1; + optional uint64 subject_item_id = 2; + optional bool for_rental = 3; +} + +message CSOEconRentalHistory { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint64 crate_item_id = 2 [(key_field) = true]; + optional uint32 crate_def_index = 3; + optional uint32 issue_date = 4; + optional uint32 expiration_date = 5; +} + +message CMsgAcknowledgeRentalExpiration { + optional uint64 crate_item_id = 1; +}