Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1031 lines
27 KiB

  1. //====== Copyright 1996-2010, Valve Corporation, All rights reserved. =======
  2. //
  3. // Purpose: The file defines our Google Protocol Buffers which are used in over
  4. // the wire messages between servers as well as between the TF GC and TF gameservers
  5. // and clients.
  6. //
  7. //=============================================================================
  8. // We care more about speed than code size
  9. option optimize_for = SPEED;
  10. // We don't use the service generation functionality
  11. option cc_generic_services = false;
  12. //
  13. // STYLE NOTES:
  14. //
  15. // Use CamelCase CMsgMyMessageName style names for messages.
  16. //
  17. // Use lowercase _ delimited names like my_steam_id for field names, this is non-standard for Steam,
  18. // but plays nice with the Google formatted code generation.
  19. //
  20. // Try not to use required fields ever. Only do so if you are really really sure you'll never want them removed.
  21. // Optional should be preffered as it will make versioning easier and cleaner in the future if someone refactors
  22. // your message and wants to remove or rename fields.
  23. //
  24. // Use fixed64 for JobId_t, GID_t, or SteamID. This is appropriate for any field that is normally
  25. // going to be larger than 2^56. Otherwise use int64 for 64 bit values that are frequently smaller
  26. // than 2^56 as it will safe space on the wire in those cases.
  27. //
  28. // Similar to fixed64, use fixed32 for RTime32 or other 32 bit values that are frequently larger than
  29. // 2^28. It will save space in those cases, otherwise use int32 which will safe space for smaller values.
  30. // An exception to this rule for RTime32 is if the value will frequently be zero rather than set to an actual
  31. // time.
  32. //
  33. import "steammessages.proto";
  34. // Messages
  35. enum EGCBaseMsg
  36. {
  37. k_EMsgGCSystemMessage = 4001; // broadcast announcements from the GC
  38. k_EMsgGCReplicateConVars = 4002; // GC => client
  39. k_EMsgGCConVarUpdated = 4003; // GC => client
  40. //k_EMsgGCInQueue = 4008; // GC => client
  41. // !GROSS! These have ben moved to gcsystemmsgs.proto. But I didn't reassign their number
  42. //k_EMsgGCClientWelcome = 4004; // GC => client
  43. //k_EMsgGCServerWelcome = 4005; // GC => server
  44. //k_EMsgGCClientHello = 4006; // client => GC
  45. //k_EMsgGCServerHello = 4007; // server => GC
  46. //k_EMsgGCClientConnectionStatus = 4009; // GC => client
  47. //k_EMsgGCServerConnectionStatus = 4010; // GC => server
  48. // Matchmaking messages
  49. k_EMsgGCInviteToParty = 4501; // inviting another player to your party
  50. k_EMsgGCInvitationCreated = 4502; // sent from GC to sender
  51. k_EMsgGCPartyInviteResponse = 4503; // client accepting a party invite
  52. k_EMsgGCKickFromParty = 4504; // sent from party leader to GC to kick a player from the party
  53. k_EMsgGCLeaveParty = 4505; // sent from party member to GC to leave a party
  54. k_EMsgGCServerAvailable = 4506; // send from a dedicated server when its ready
  55. k_EMsgGCClientConnectToServer = 4507; // sent to a client to connect to a server
  56. k_EMsgGCGameServerInfo = 4508; // send from a dedicated server for server address information
  57. k_EMsgGCError = 4509; // sent from GC to client telling client about an error
  58. k_EMsgGCReplay_UploadedToYouTube = 4510; // client => GC
  59. k_EMsgGCLANServerAvailable = 4511; // send from a listen server when its ready
  60. };
  61. //enum EGCSharedMsg = 7001-7006
  62. enum EGCBaseProtoObjectTypes
  63. {
  64. k_EProtoObjectPartyInvite = 1001;
  65. k_EProtoObjectLobbyInvite = 1002;
  66. };
  67. // Econ
  68. message CGCStorePurchaseInit_LineItem
  69. {
  70. optional uint32 item_def_id = 1; // DefIndex of the item to purchase
  71. optional uint32 quantity = 2; // quantity to purchase
  72. optional uint32 cost_in_local_currency = 3; // cost in cents of the local currency the user thinks he should pay (if you change this update item_price_t!)
  73. optional uint32 purchase_type = 4; // is this a regular purchase? a rental? maps to ECartItemType
  74. };
  75. // k_EMsgGCStorePurchaseInit
  76. message CMsgGCStorePurchaseInit
  77. {
  78. optional string country = 1; // Country the purchase is being made from (obtained from Steam)
  79. optional int32 language = 2; // Client's language
  80. optional int32 currency = 3; // Currency the purchase is in (obtained from Steam)
  81. repeated CGCStorePurchaseInit_LineItem line_items = 4;
  82. };
  83. // k_EMsgGCStorePurchaseInitResponse
  84. message CMsgGCStorePurchaseInitResponse
  85. {
  86. optional int32 result = 1; // Result of the operation
  87. optional uint64 txn_id = 2; // Transaction ID of the new transaction
  88. };
  89. // Shared objects
  90. //
  91. // CSOPartyInvite - sent from the GC to possible new party member
  92. //
  93. message CSOPartyInvite
  94. {
  95. optional uint64 group_id = 1 [ (key_field) = true ];
  96. optional fixed64 sender_id = 2;
  97. optional string sender_name = 3;
  98. };
  99. // Sent from the GC to possible new lobby member
  100. //
  101. message CSOLobbyInvite
  102. {
  103. optional uint64 group_id = 1 [ (key_field) = true ];
  104. optional fixed64 sender_id = 2;
  105. optional string sender_name = 3;
  106. // TODO: Game mode, etc.
  107. };
  108. //
  109. // CMsgSystemBroadcast
  110. //
  111. message CMsgSystemBroadcast
  112. {
  113. optional string message = 1; // the message to display on the client
  114. };
  115. //
  116. // CMsgClientHello
  117. //
  118. message CMsgClientHello
  119. {
  120. optional uint32 version = 1;
  121. };
  122. //
  123. // CMsgServerHello
  124. //
  125. message CMsgServerHello
  126. {
  127. optional uint32 version = 1;
  128. };
  129. //
  130. // CMsgClientWelcome
  131. //
  132. message CMsgClientWelcome
  133. {
  134. optional uint32 version = 1;
  135. optional bytes game_data = 2;
  136. };
  137. //
  138. // CMsgServerWelcome
  139. //
  140. message CMsgServerWelcome
  141. {
  142. optional uint32 min_allowed_version = 1;
  143. optional uint32 active_version = 2;
  144. };
  145. enum GCGoodbyeReason
  146. {
  147. GCGoodbyeReason_GC_GOING_DOWN = 1;
  148. GCGoodbyeReason_NO_SESSION = 2;
  149. };
  150. //
  151. // CMsgClientGoodbye
  152. //
  153. message CMsgClientGoodbye
  154. {
  155. optional GCGoodbyeReason reason = 1;
  156. };
  157. //
  158. // CMsgServerGoodbye
  159. //
  160. message CMsgServerGoodbye
  161. {
  162. optional GCGoodbyeReason reason = 1;
  163. };
  164. //
  165. // CMsgInviteToParty - sent from party leader to the GC
  166. //
  167. message CMsgInviteToParty
  168. {
  169. optional fixed64 steam_id = 1;
  170. optional uint32 client_version = 2;
  171. optional uint32 team_id = 3;
  172. optional bool as_coach = 4;
  173. };
  174. //
  175. // CMsgInvitationCreated - sent from GC to the party leader
  176. //
  177. message CMsgInvitationCreated
  178. {
  179. optional uint64 group_id = 1;
  180. optional fixed64 steam_id = 2;
  181. };
  182. //
  183. // CMsgPartyInviteResponse - sent from client to GC when accepting/rejecting a CMsgPartyInvite
  184. //
  185. message CMsgPartyInviteResponse
  186. {
  187. optional uint64 party_id = 1;
  188. optional bool accept = 2;
  189. optional uint32 client_version = 3;
  190. optional uint32 team_id = 4;
  191. optional bool as_coach = 5;
  192. };
  193. //
  194. // CMsgKickFromParty - sent from party leader to the GC
  195. //
  196. message CMsgKickFromParty
  197. {
  198. optional fixed64 steam_id = 1;
  199. };
  200. //
  201. // CMsgLeaveParty - sent from party member to the GC
  202. //
  203. message CMsgLeaveParty
  204. {
  205. optional uint64 party_id = 1; // Party the user wants to leave
  206. optional uint64 lobby_id = 2; // Lobby the user wants to leave
  207. };
  208. //
  209. // CMsgServerAvailable - send from a dedicated server to the GC to indicate availability
  210. //
  211. message CMsgServerAvailable
  212. {
  213. };
  214. //
  215. // CMsgLANServerAvailable - send from a listen server to the GC to indicate availability
  216. //
  217. message CMsgLANServerAvailable
  218. {
  219. optional fixed64 lobby_id = 1;
  220. };
  221. //
  222. // Used by CEconGameAccountClient
  223. //
  224. message CSOEconGameAccountClient
  225. {
  226. optional uint32 additional_backpack_slots = 1 [ default = 0 ]; // the number of backpack slots this user has on top of DEFAULT_NUM_BACKPACK_SLOTS
  227. optional bool trial_account = 2 [ default = false ];
  228. // optional bool eligible_for_online_play = 3 [ default = true ]; // DEPRECATED
  229. optional bool need_to_choose_most_helpful_friend = 4;
  230. optional bool in_coaches_list = 5;
  231. optional fixed32 trade_ban_expiration = 6;
  232. optional fixed32 duel_ban_expiration = 7;
  233. optional uint32 preview_item_def = 8 [ default = 0 ];
  234. // optional bool eligible_for_community_market = 9; // DEPRECATED
  235. optional bool phone_verified = 19 [ default = false ];
  236. optional uint32 skill_rating_6v6 = 20;
  237. optional uint32 skill_rating_9v9 = 21;
  238. // optional bool two_factor_enabled = 22 [ default = false ]; // No longer shared with clients
  239. optional bool competitive_access = 23 [ default = false ];
  240. // !! 18 out of order slightly to be more properly grouped with the various ban fields
  241. optional uint32 matchmaking_ranked_ban_expiration = 18; // player can't matchmake in ranked groups until this time
  242. optional uint32 matchmaking_ranked_low_priority_expiration = 24; // MM low priority in ranked groups until
  243. optional uint32 matchmaking_ranked_ban_last_duration = 25; // How long the current ranked ban's total duration was set for
  244. optional uint32 matchmaking_ranked_low_priority_last_duration = 26; // How long the current ranked ban's total duration was set for
  245. optional uint32 matchmaking_casual_ban_expiration = 27; // player can't matchmake in casual groups until this time
  246. optional uint32 matchmaking_casual_low_priority_expiration = 28; // MM low priority in casual groups until
  247. optional uint32 matchmaking_casual_ban_last_duration = 29; // How long the current casual ban's total duration was set for
  248. optional uint32 matchmaking_casual_low_priority_last_duration = 30; // How long the current casual ban's total duration was set for
  249. optional bool phone_identifying = 31 [ default = false ];
  250. };
  251. //
  252. // Used by CEconCraftingRecipe
  253. //
  254. message CSOItemCriteriaCondition
  255. {
  256. optional int32 op = 1;
  257. optional string field = 2;
  258. optional bool required = 3;
  259. optional float float_value = 4;
  260. optional string string_value = 5;
  261. }
  262. message CSOItemCriteria
  263. {
  264. optional uint32 item_level = 1;
  265. optional int32 item_quality = 2;
  266. optional bool item_level_set = 3;
  267. optional bool item_quality_set = 4;
  268. optional uint32 initial_inventory = 5;
  269. optional uint32 initial_quantity = 6;
  270. // optional bool forced_quality_match__DEPRECATED = 7;
  271. optional bool ignore_enabled_flag = 8;
  272. repeated CSOItemCriteriaCondition conditions = 9;
  273. optional bool recent_only = 10;
  274. optional string tags = 11;
  275. };
  276. message CSOItemRecipe
  277. {
  278. optional uint32 def_index = 1;
  279. optional string name = 2;
  280. optional string n_a = 3;
  281. optional string desc_inputs = 4;
  282. optional string desc_outputs = 5;
  283. optional string di_a = 6;
  284. optional string di_b = 7;
  285. optional string di_c = 8;
  286. optional string do_a = 9;
  287. optional string do_b = 10;
  288. optional string do_c = 11;
  289. optional bool requires_all_same_class = 12;
  290. optional bool requires_all_same_slot = 13;
  291. optional int32 class_usage_for_output = 14;
  292. optional int32 slot_usage_for_output = 15;
  293. optional int32 set_for_output = 16;
  294. repeated CSOItemCriteria input_items_criteria = 20;
  295. repeated CSOItemCriteria output_items_criteria = 21;
  296. repeated uint32 input_item_dupe_counts = 22;
  297. };
  298. //
  299. // k_EMsgGCDev_NewItemRequest
  300. //
  301. message CMsgDevNewItemRequest
  302. {
  303. //using fixed64 since steamids have lots of entropy in their bits
  304. optional fixed64 receiver = 1;
  305. optional CSOItemCriteria criteria = 2;
  306. };
  307. //
  308. // k_EMsgGCDev_DebugRollLootRequest
  309. //
  310. message CMsgDevDebugRollLootRequest
  311. {
  312. //using fixed64 since steamids have lots of entropy in their bits
  313. optional fixed64 receiver = 1;
  314. optional string loot_list_name = 2;
  315. };
  316. //
  317. // k_EMsgGC_IncrementKillCountAttribute
  318. //
  319. message CMsgIncrementKillCountAttribute
  320. {
  321. optional uint64 killer_steam_id = 1; // Kyle says: we could make these both fixed32!
  322. optional uint64 victim_steam_id = 2;
  323. optional uint64 item_id = 3;
  324. optional uint32 event_type = 4;
  325. optional uint32 increment_value = 5; // How much to increment the score by
  326. };
  327. //
  328. // k_EMsgGC_IncrementKillCountAttribute_Multiple
  329. //
  330. message CMsgIncrementKillCountAttribute_Multiple
  331. {
  332. repeated CMsgIncrementKillCountAttribute msgs = 1;
  333. };
  334. //
  335. // k_EMsgGC_TrackUniquePlayerPairEvent
  336. //
  337. message CMsgTrackUniquePlayerPairEvent
  338. {
  339. optional uint64 killer_steam_id = 1; // Kyle says: we could make these both fixed32!
  340. optional uint64 victim_steam_id = 2;
  341. optional uint64 item_id = 3;
  342. optional uint32 event_type = 4;
  343. };
  344. //
  345. // k_EMsgGCApplyStrangeCountTransfer
  346. //
  347. message CMsgApplyStrangeCountTransfer
  348. {
  349. optional uint64 tool_item_id = 1; // item id of the xfer tool
  350. optional uint64 item_src_item_id = 2;
  351. optional uint64 item_dest_item_id = 3;
  352. };
  353. //
  354. // k_EMsgGCApplyStrangePart
  355. //
  356. message CMsgApplyStrangePart
  357. {
  358. optional uint64 strange_part_item_id = 1; // which part are we "inserting"?
  359. optional uint64 item_item_id = 2; // what strange item are we inserting this new part into?
  360. };
  361. //
  362. // k_EMsgGCApplyStrangeRestriction
  363. //
  364. message CMsgApplyStrangeRestriction
  365. {
  366. optional uint64 strange_part_item_id = 1; // which restriction item are we "inserting"?
  367. optional uint64 item_item_id = 2; // what strange item are we inserting this new part into?
  368. optional uint32 strange_attr_index = 3; // which slot did the user select for application?
  369. };
  370. //
  371. // k_EMsgGCApplyUpgradeCard
  372. //
  373. message CMsgApplyUpgradeCard
  374. {
  375. optional uint64 upgrade_card_item_id = 1; // which card are we attaching?
  376. optional uint64 subject_item_id = 2; // what item are we applying this new card to?
  377. };
  378. //
  379. // Used by CEconItem
  380. //
  381. message CSOEconItemAttribute
  382. {
  383. optional uint32 def_index = 1;
  384. optional uint32 value = 2; // DEPRECATED -- see value_bytes
  385. optional bytes value_bytes = 3;
  386. }
  387. message CSOEconItemEquipped
  388. {
  389. optional uint32 new_class = 1;
  390. optional uint32 new_slot = 2;
  391. }
  392. message CSOEconItem
  393. {
  394. optional uint64 id = 1;
  395. optional uint32 account_id = 2;
  396. optional uint32 inventory = 3;
  397. optional uint32 def_index = 4;
  398. optional uint32 quantity = 5;
  399. optional uint32 level = 6;
  400. optional uint32 quality = 7;
  401. optional uint32 flags = 8 [ default = 0 ];
  402. optional uint32 origin = 9;
  403. optional string custom_name = 10;
  404. optional string custom_desc = 11;
  405. repeated CSOEconItemAttribute attribute = 12;
  406. optional CSOEconItem interior_item = 13;
  407. optional bool in_use = 14 [ default = false ];
  408. optional uint32 style = 15 [default = 0 ];
  409. optional uint64 original_id = 16 [ default = 0 ];
  410. optional bool contains_equipped_state = 17; // DEPRECATED
  411. repeated CSOEconItemEquipped equipped_state = 18;
  412. optional bool contains_equipped_state_v2 = 19; // will be set to true even if equipped_state is an empty array, meaning "unequipped from everything"
  413. }
  414. //
  415. // k_EMsgGCAdjustItemEquippedState
  416. //
  417. message CMsgAdjustItemEquippedState
  418. {
  419. optional uint64 item_id = 1;
  420. optional uint32 new_class = 2;
  421. optional uint32 new_slot = 3; // will be -1 if not equipped on this class any longer
  422. }
  423. //
  424. // k_EMsgGCSortItems
  425. //
  426. message CMsgSortItems
  427. {
  428. optional uint32 sort_type = 1;
  429. }
  430. //
  431. // Used by CEconClaimCode
  432. //
  433. message CSOEconClaimCode
  434. {
  435. optional uint32 account_id = 1;
  436. optional uint32 code_type = 2;
  437. optional uint32 time_acquired = 3;
  438. optional string code = 4;
  439. }
  440. //
  441. // k_EMsgGCStoreGetUserData
  442. //
  443. message CMsgStoreGetUserData
  444. {
  445. optional fixed32 price_sheet_version = 1;
  446. }
  447. //
  448. // k_EMsgGCStoreGetUserDataResponse
  449. //
  450. message CMsgStoreGetUserDataResponse
  451. {
  452. optional int32 result = 1; // Result of the call
  453. optional int32 currency = 2; // Currency to display to the user
  454. optional string country = 3; // Country the purchase is being made from (Send back in k_EMsgGCStorePurchaseInit)
  455. optional fixed32 price_sheet_version = 4; // Version of the current price sheet on the GC
  456. // experiments
  457. optional uint64 experiment_data = 5 [ default = 0 ]; // top 32 bits = experiment id, bottom 32 bits = experiment group number
  458. optional int32 featured_item_idx = 6;
  459. optional bool show_hat_descriptions = 7 [ default = true ];
  460. // Serialized KV representing the price sheet menu
  461. optional bytes price_sheet = 8;
  462. optional int32 default_item_sort = 9 [ default = 0 ];
  463. // popular items by def
  464. repeated uint32 popular_items = 10;
  465. };
  466. //
  467. // k_EMsgGCUpdateItemSchema
  468. //
  469. message CMsgUpdateItemSchema
  470. {
  471. optional bytes items_game = 1; // actual contents of items_game.txt (only used on dev)
  472. optional fixed32 item_schema_version = 2; // Version of the items_game.txt we're using
  473. optional string items_game_url = 3; // HTTP URL where they can use to fetch the one we're using, if theirs is out of date and we don't send the contents
  474. optional bytes signature = 4; // signature of the schema (either the one at the CDN, or the bytes we are providing). In certain branches (TF) this is required.
  475. };
  476. // sent from the GC to a client telling him about a GC error
  477. message CMsgGCError
  478. {
  479. optional string error_text = 1;
  480. };
  481. //
  482. // k_EMsgGCRequestInventoryRefresh
  483. //
  484. message CMsgRequestInventoryRefresh
  485. {
  486. };
  487. //
  488. // k_EMsgGCConvarUpdated
  489. //
  490. message CMsgConVarValue
  491. {
  492. optional string name = 1;
  493. optional string value = 2;
  494. };
  495. //
  496. // k_EMsgGCReplicateConVars
  497. //
  498. message CMsgReplicateConVars
  499. {
  500. repeated CMsgConVarValue convars = 1;
  501. };
  502. //
  503. // k_EMsgGCUseItemRequest
  504. //
  505. message CMsgUseItem
  506. {
  507. optional uint64 item_id = 1;
  508. optional fixed64 target_steam_id = 2; // 64-bit field left over from original message
  509. repeated uint32 gift__potential_targets = 3;
  510. optional uint32 duel__class_lock = 4;
  511. optional fixed64 initiator_steam_id = 5;
  512. optional bool itempack__ack_immediately = 6;
  513. };
  514. //
  515. // k_EMsgGCReplay_UploadedToYouTube
  516. //
  517. message CMsgReplayUploadedToYouTube
  518. {
  519. optional string youtube_url = 1;
  520. optional string youtube_account_name = 2;
  521. optional uint64 session_id = 3;
  522. };
  523. //
  524. // k_EMsgGCConsumableExhausted
  525. //
  526. message CMsgConsumableExhausted
  527. {
  528. optional int32 item_def_id = 1;
  529. };
  530. //
  531. // k_EMsgGCItemAcknowledged
  532. //
  533. message CMsgItemAcknowledged
  534. {
  535. optional uint32 account_id = 1;
  536. optional uint32 inventory = 2;
  537. optional uint32 def_index = 3;
  538. optional uint32 quality = 4;
  539. optional uint32 rarity = 5;
  540. optional uint32 origin = 6;
  541. optional uint32 is_strange = 7;
  542. optional uint32 is_unusual = 8;
  543. optional float wear = 9;
  544. };
  545. //
  546. // CMsgSetPresetItemPosition
  547. //
  548. message CMsgSetPresetItemPosition
  549. {
  550. optional uint32 class_id = 1;
  551. optional uint32 preset_id = 2;
  552. optional uint32 slot_id = 3;
  553. optional uint64 item_id = 4;
  554. };
  555. //
  556. // CMsgSetItemPositions
  557. //
  558. message CMsgSetItemPositions
  559. {
  560. message ItemPosition
  561. {
  562. optional uint64 item_id = 1;
  563. optional uint32 position = 2;
  564. }
  565. repeated ItemPosition item_positions = 1;
  566. };
  567. //
  568. // CSOEconItemPresetInstance - The preset, class and slot ID's are all marked key fields, so that those
  569. // fields will always be networked down to clients, even if only the item ID is modified. This is so that
  570. // when CSharedObjectTypeCache::BUpdateFromMsg() calls its FindSharedObject(), it will have the necessary
  571. // key data for CEconItemPresetInstance::BIsKeyLess() to be able to function. Without these, FindSharedObject()
  572. // fails and no object is updated.
  573. //
  574. message CSOEconItemPresetInstance
  575. {
  576. // optional uint32 account_id = 1; // NOTE: Never use id '1' again - but we don't need to transmit the account id here
  577. optional uint32 class_id = 2 [ (key_field) = true ];
  578. optional uint32 preset_id = 3 [ (key_field) = true ];
  579. optional uint32 slot_id = 4 [ (key_field) = true ];
  580. optional uint64 item_id = 5;
  581. };
  582. //
  583. // k_EMsgGCPresets_SelectPresetForClass
  584. //
  585. message CMsgSelectPresetForClass
  586. {
  587. optional uint32 class_id = 1; // which class we're changing the selection on
  588. optional uint32 preset_id = 2; // which preset we want to change to
  589. };
  590. //
  591. // CSOClassPresetClientData
  592. //
  593. message CSOClassPresetClientData
  594. {
  595. optional uint32 account_id = 1;
  596. optional uint32 class_id = 2;
  597. optional uint32 active_preset_id = 3;
  598. };
  599. //
  600. // k_EMsgGC_ReportAbuse
  601. //
  602. message CMsgGCReportAbuse
  603. {
  604. optional fixed64 target_steam_id = 1; // who is the user accusing?
  605. optional string description = 4; // in the user's own words
  606. optional uint64 gid = 5; // meaning depends on content type
  607. // If accusing a player:
  608. optional uint32 abuse_type = 2; // EAbuseReportType
  609. optional uint32 content_type = 3; // ECommunityContentType
  610. // If accusing a game server:
  611. optional fixed32 target_game_server_ip = 6;
  612. optional uint32 target_game_server_port = 7;
  613. };
  614. //
  615. // k_EMsgGC_ReportAbuseResponse
  616. //
  617. message CMsgGCReportAbuseResponse
  618. {
  619. optional fixed64 target_steam_id = 1; // target to which this reply is in reference
  620. optional uint32 result = 2; // EResult
  621. optional string error_message = 3; // Diagnostic error message (not localized, for debugging purposes only)
  622. };
  623. //
  624. // k_EMsgGCNameItemNotification
  625. //
  626. message CMsgGCNameItemNotification
  627. {
  628. optional fixed64 player_steamid = 1;
  629. optional uint32 item_def_index = 2;
  630. optional string item_name_custom = 3;
  631. };
  632. //
  633. // k_EMsgGCClientDisplayNotification
  634. //
  635. message CMsgGCClientDisplayNotification
  636. {
  637. optional string notification_title_localization_key = 1;
  638. optional string notification_body_localization_key = 2;
  639. repeated string body_substring_keys = 3;
  640. repeated string body_substring_values = 4;
  641. };
  642. //
  643. // k_EMsgGCShowItemsPickedUp
  644. //
  645. message CMsgGCShowItemsPickedUp
  646. {
  647. optional fixed64 player_steamid = 1;
  648. };
  649. //
  650. // k_EMsgGC_UpdatePeriodicEvent
  651. //
  652. message CMsgUpdatePeriodicEvent
  653. {
  654. optional uint32 account_id = 1;
  655. optional uint32 event_type = 2;
  656. optional uint32 amount = 3;
  657. };
  658. //
  659. // k_EMsgGCIncrementKillCountResponse
  660. //
  661. message CMsgGCIncrementKillCountResponse // was CMsgTFIncrementKillCountResponse
  662. {
  663. optional uint32 killer_account_id = 1 [ (key_field) = true ]; // name of the user who got the kill
  664. optional uint32 num_kills = 2; // number of kills (or: ubers released; or gifts given out; etc.)
  665. optional uint32 item_def = 3; // id of the item in question
  666. optional uint32 level_type = 4; // what sort of rank is this? (ie., kills, gifts, etc.) used for looking up strings
  667. };
  668. //
  669. // k_EMsgGCRemoveStrangePart
  670. //
  671. message CMsgGCRemoveStrangePart
  672. {
  673. optional uint64 item_id = 1; // ID of the item we're removing a part from
  674. optional uint32 strange_part_score_type = 2; // score type counted by the strange part we want to remove -- it doesn't matter what slot this part is in or what item def it came from as each item can only have one counter of each type
  675. };
  676. //
  677. // k_EMsgGCRemoveUpgradeCard
  678. //
  679. message CMsgGCRemoveUpgradeCard
  680. {
  681. optional uint64 item_id = 1; // ID of the item we're removing a part from
  682. optional uint32 attribute_index = 2; // the attribute index of the attribute we want to remove; this is only valid if the attribute is set to be user-customizable
  683. };
  684. //
  685. // k_EMsgGCRemoveItemPaint
  686. // k_EMsgGCRemoveCustomTexture
  687. // k_EMsgGCRemoveMakersMark
  688. //
  689. message CMsgGCRemoveCustomizationAttributeSimple
  690. {
  691. optional uint64 item_id = 1;
  692. };
  693. //
  694. // k_EMsgGCResetStrangeScores
  695. //
  696. message CMsgGCResetStrangeScores
  697. {
  698. optional uint64 item_id = 1;
  699. };
  700. //
  701. // k_EMsgGCItemPreviewItemBoughtNotification
  702. //
  703. message CMsgGCItemPreviewItemBoughtNotification
  704. {
  705. optional uint32 item_def_index = 1;
  706. };
  707. //
  708. // k_EMsgGCStorePurchaseCancel
  709. //
  710. message CMsgGCStorePurchaseCancel
  711. {
  712. optional uint64 txn_id = 1; // Transaction ID for the the transaction
  713. };
  714. //
  715. // k_EMsgGCStorePurchaseCancelResponse
  716. //
  717. message CMsgGCStorePurchaseCancelResponse
  718. {
  719. optional uint32 result = 1; // Result of the operation
  720. };
  721. //
  722. // k_EMsgGCStorePurchaseFinalize
  723. //
  724. message CMsgGCStorePurchaseFinalize
  725. {
  726. optional uint64 txn_id = 1; // Transaction ID for the the transaction
  727. };
  728. //
  729. // k_EMsgGCStorePurchaseFinalizeResponse
  730. //
  731. message CMsgGCStorePurchaseFinalizeResponse
  732. {
  733. optional uint32 result = 1; // Result of the operation
  734. repeated uint64 item_ids = 2; // If successful, list of uint64's that represent the purchased items
  735. };
  736. // k_EMsgGCBannedWordListRequest
  737. message CMsgGCBannedWordListRequest
  738. {
  739. optional uint32 ban_list_group_id = 1; // The group code to request the word list from (English, Chinese, etc)
  740. optional uint32 word_id = 2; // The most recent word ID that we want to request (the response will include this ID if present)
  741. };
  742. //
  743. // k_EMsgGCGiftedItems
  744. //
  745. message CMsgGCGiftedItems
  746. {
  747. optional uint64 gifter_steam_id = 1;
  748. optional bool was_random_person = 2;
  749. repeated uint32 recipient_account_ids = 3;
  750. };
  751. //
  752. // k_EMsgGCCollectItem
  753. //
  754. message CMsgGCCollectItem
  755. {
  756. optional uint64 collection_item_id = 1;
  757. optional uint64 subject_item_id = 2;
  758. };
  759. //
  760. // k_EMsgGCClientRequestMarketData
  761. //
  762. message CMsgGCClientMarketDataRequest
  763. {
  764. optional uint32 user_currency = 1;
  765. };
  766. //
  767. // k_EMsgGCClientRequestMarketDataResponse
  768. //
  769. message CMsgGCClientMarketDataEntry
  770. {
  771. optional uint32 item_def_index = 1;
  772. optional uint32 item_quality = 2;
  773. optional uint32 item_sell_listings = 3;
  774. optional uint32 price_in_local_currency = 4;
  775. };
  776. message CMsgGCClientMarketData
  777. {
  778. repeated CMsgGCClientMarketDataEntry entries = 1;
  779. };
  780. //
  781. // k_EMsgGCApplyStrangifier
  782. // k_EMsgGCUseItemEaterRecharger
  783. //
  784. message CMsgApplyToolToItem
  785. {
  786. optional uint64 tool_item_id = 1; // which item tool are we using
  787. optional uint64 subject_item_id = 2; // what item are we applying this tool to?
  788. };
  789. message CMsgApplyToolToBaseItem
  790. {
  791. optional uint64 tool_item_id = 1; // which item tool are we using
  792. optional uint32 baseitem_def_index = 2; // which base item def index are we applying this tool to?
  793. };
  794. message CMsgRecipeComponent
  795. {
  796. optional uint64 subject_item_id = 1;
  797. optional uint64 attribute_index = 2;
  798. };
  799. //
  800. // k_EMsgGCFulfillDynamicRecipeComponent
  801. //
  802. message CMsgFulfillDynamicRecipeComponent
  803. {
  804. optional uint64 tool_item_id = 1; // which item tool are we using
  805. repeated CMsgRecipeComponent consumption_components = 2; // Items to consume
  806. };
  807. //
  808. // k_EMsgGCSetItemEffectVerticalOffset
  809. //
  810. message CMsgSetItemEffectVerticalOffset
  811. {
  812. optional uint64 item_id = 1;
  813. optional float offset = 2;
  814. };
  815. //
  816. // k_EMsgGCSetHatEffectUseHeadOrigin
  817. //
  818. message CMsgSetHatEffectUseHeadOrigin
  819. {
  820. optional uint64 item_id = 1;
  821. optional bool use_head = 2;
  822. };
  823. //
  824. // k_EMsgGCDeliverGiftResponseGiver
  825. //
  826. message CMsgDeliverGiftResponseGiver
  827. {
  828. optional uint32 response_code = 1;
  829. optional string receiver_account_name = 2; // will only be set if found and if the user wasn't specifically selected
  830. };
  831. //
  832. // Used by CEconGameAccountClientForGameServers
  833. //
  834. message CSOEconGameAccountForGameServers
  835. {
  836. // Deprecated.
  837. // optional uint32 skill_rating = 3;
  838. // optional uint32 skill_rating_6v6 = 2;
  839. // optional uint32 skill_rating_9v9 = 4;
  840. // optional uint32 skill_rating_12v12 = 5;
  841. };
  842. // ================================================================================================
  843. // ================================================================================================
  844. // PROTOBUF DEFINITIONS COPIED FROM STEAM
  845. // ================================================================================================
  846. // ================================================================================================
  847. message CWorkshop_PopulateItemDescriptions_Request
  848. {
  849. message SingleItemDescription
  850. {
  851. optional uint32 gameitemid = 1;
  852. optional string item_description = 2;
  853. }
  854. message ItemDescriptionsLanguageBlock
  855. {
  856. optional string language = 1; // ICU name
  857. repeated SingleItemDescription descriptions = 2;
  858. }
  859. optional uint32 appid = 1;
  860. repeated ItemDescriptionsLanguageBlock languages = 2;
  861. }
  862. message CWorkshop_GetContributors_Request
  863. {
  864. optional uint32 appid = 1;
  865. optional uint32 gameitemid = 2;
  866. }
  867. message CWorkshop_GetContributors_Response
  868. {
  869. repeated fixed64 contributors = 1;
  870. }
  871. // ------------------------------------------------------------------------------------------------
  872. message CWorkshop_SetItemPaymentRules_Request
  873. {
  874. message WorkshopItemPaymentRule
  875. {
  876. optional uint64 workshop_file_id = 1;
  877. optional float revenue_percentage = 2;
  878. optional string rule_description = 3;
  879. }
  880. message PartnerItemPaymentRule
  881. {
  882. optional uint32 account_id = 1;
  883. optional float revenue_percentage = 2;
  884. optional string rule_description = 3;
  885. }
  886. optional uint32 appid = 1;
  887. optional uint32 gameitemid = 2;
  888. repeated WorkshopItemPaymentRule associated_workshop_files = 3;
  889. repeated PartnerItemPaymentRule partner_accounts = 4;
  890. }
  891. message CWorkshop_SetItemPaymentRules_Response
  892. {
  893. }
  894. // Don�t remove this line at the end of the file due a bug in the Mac OS X protobuf compiler