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.

644 lines
24 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. enum EGCItemMsg
  35. {
  36. k_EMsgGCBase = 1000;
  37. k_EMsgGCSetSingleItemPosition = 1001; // uses old-school struct for a single item. Prefer k_EMsgGCSetItemPositions
  38. k_EMsgGCCraft = 1002;
  39. k_EMsgGCCraftResponse = 1003;
  40. k_EMsgGCDelete = 1004;
  41. k_EMsgGCVerifyCacheSubscription = 1005; // sent by gameservers who don't have a cache they expect
  42. k_EMsgGCNameItem = 1006;
  43. k_EMsgGCUnlockCrate = 1007; // used by decoder rings to unlock supply crates
  44. k_EMsgGCUnlockCrateResponse = 1008;
  45. k_EMsgGCPaintItem = 1009; // used by paint cans to paint items
  46. k_EMsgGCPaintItemResponse = 1010;
  47. k_EMsgGCGoldenWrenchBroadcast = 1011; // sent to all users when a Golden Wrench is crafted or deleted
  48. k_EMsgGCMOTDRequest = 1012; // client is asking for a set of MOTDs
  49. k_EMsgGCMOTDRequestResponse = 1013;
  50. // k_EMsgGCAddItemToSocket_DEPRECATED = 1014;
  51. // k_EMsgGCAddItemToSocketResponse_DEPRECATED = 1015;
  52. // k_EMsgGCAddSocketToBaseItem_DEPRECATED = 1016;
  53. // k_EMsgGCAddSocketToItem_DEPRECATED = 1017;
  54. // k_EMsgGCAddSocketToItemResponse_DEPRECATED = 1018;
  55. k_EMsgGCNameBaseItem = 1019;
  56. k_EMsgGCNameBaseItemResponse = 1020;
  57. k_EMsgGCRemoveSocketItem_DEPRECATED = 1021;
  58. k_EMsgGCRemoveSocketItemResponse_DEPRECATED = 1022;
  59. k_EMsgGCCustomizeItemTexture = 1023;
  60. k_EMsgGCCustomizeItemTextureResponse = 1024;
  61. k_EMsgGCUseItemRequest = 1025; // client/game server => GC
  62. k_EMsgGCUseItemResponse = 1026; // GC => client/game server
  63. // k_EMsgGCSpawnItem_DEPRECATED = 1028; // GC => game server
  64. k_EMsgGCRespawnPostLoadoutChange = 1029; // client => GC => game server
  65. k_EMsgGCRemoveItemName = 1030; // client => GC
  66. k_EMsgGCRemoveItemPaint = 1031; // client => GC
  67. k_EMsgGCGiftWrapItem = 1032; // client => GC (the player requests an item to be gift wrapped)
  68. k_EMsgGCGiftWrapItemResponse = 1033; // GC => client (confirmation that an item was gift wrapped)
  69. k_EMsgGCDeliverGift = 1034;
  70. k_EMsgGCDeliverGiftResponseReceiver = 1036;
  71. k_EMsgGCUnwrapGiftRequest = 1037;
  72. k_EMsgGCUnwrapGiftResponse = 1038;
  73. k_EMsgGCSetItemStyle = 1039;
  74. k_EMsgGCUsedClaimCodeItem = 1040;
  75. k_EMsgGCSortItems = 1041;
  76. k_EMsgGC_RevolvingLootList_DEPRECATED= 1042; // GC => client; revolving loot list
  77. k_EMsgGCLookupAccount = 1043; // client is requesting a lookup of an account
  78. k_EMsgGCLookupAccountResponse = 1044;
  79. k_EMsgGCLookupAccountName = 1045; // old-school struct for single account. client is requesting a lookup of an account name
  80. k_EMsgGCLookupAccountNameResponse = 1046;
  81. //k_EMsgGCStartupCheck = 1047; // GC => client
  82. //k_EMsgGCStartupCheckResponse = 1048; // client => GC
  83. k_EMsgGCUpdateItemSchema = 1049; // GC => client
  84. k_EMsgGCRequestInventoryRefresh = 1050; // client => GC
  85. k_EMsgGCRemoveCustomTexture = 1051; // client => GC
  86. k_EMsgGCRemoveCustomTextureResponse = 1052; // GC => client
  87. k_EMsgGCRemoveMakersMark = 1053; // client => GC
  88. k_EMsgGCRemoveMakersMarkResponse = 1054; // GC => client
  89. k_EMsgGCRemoveUniqueCraftIndex = 1055; // client => GC
  90. k_EMsgGCRemoveUniqueCraftIndexResponse = 1056; // GC => client
  91. k_EMsgGCSaxxyBroadcast = 1057; // sent to all users when a Saxxy is deleted
  92. k_EMsgGCBackpackSortFinished = 1058; // GC => client
  93. k_EMsgGCAdjustItemEquippedState = 1059; // GC => client
  94. // k_EMsgGCRequestItemSchemaData_DEPRECATED = 1060; // client => GC Should only be used in dev universe
  95. k_EMsgGCCollectItem = 1061;
  96. k_EMsgGCItemAcknowledged = 1062; // sent to a dedicated server when a client acknowledges an item
  97. // item presets
  98. k_EMsgGCPresets_SelectPresetForClass = 1063; // client => GC
  99. k_EMsgGCPresets_SetItemPosition = 1064; // client => GC
  100. // Abuse reporting
  101. k_EMsgGC_ReportAbuse = 1065; // client => GC
  102. k_EMsgGC_ReportAbuseResponse = 1066; // GC => client
  103. // more item presets
  104. k_EMsgGCPresets_SelectPresetForClassReply = 1067; // GC => client
  105. // item naming broadcast
  106. k_EMsgGCNameItemNotification = 1068; // GC => client
  107. // !FIXME! DOTAMERGE
  108. // these messages are particular to DOTA, or
  109. // conflict with corresponding TF messages
  110. //
  111. // k_EMsgGCGiftedItems = 1027; // GC => game server
  112. // k_EMsgGCDeliverGiftResponseGiver = 1035;
  113. //
  114. // k_EMsgGCApplyConsumableEffects = 1069;
  115. //
  116. // k_EMsgGCConsumableExhausted = 1070;
  117. // k_EMsgGCApplyStrangePart = 1073; // GC => client
  118. // k_EMsgGCShowItemsPickedUp = 1071;
  119. //
  120. // // generic broadcast
  121. // k_EMsgGCClientDisplayNotification = 1072; // GC => client
  122. //
  123. //// OBSOLETE k_EMsgGC_IncrementKillCountAttribute = 1074; // client => GC
  124. // k_EMsgGC_IncrementKillCountResponse = 1075; // GC => client
  125. // k_EMsgGCApplyPennantUpgrade = 1076; // GC => client
  126. //
  127. // k_EMsgGCSetItemPositions = 1077; // client => GC; protobuf batched item position update
  128. //
  129. // k_EMsgGCUnlockItemStyle = 1080;
  130. // k_EMsgGCUnlockItemStyleResponse = 1081;
  131. //
  132. // k_EMsgGCFulfillDynamicRecipeComponent = 1082;
  133. // k_EMsgGCFulfillDynamicRecipeComponentResponse = 1083;
  134. // k_EMsgGCApplyEggEssence = 1078;
  135. // k_EMsgGCNameEggEssenceResponse = 1079;
  136. //
  137. // k_EMsgGCClientRequestMarketData = 1084;
  138. // k_EMsgGCClientRequestMarketDataResponse = 1085;
  139. // k_EMsgGCExtractGems = 1086;
  140. // k_EMsgGCAddSocket = 1087; // client -> GC
  141. // k_EMsgGCAddItemToSocket = 1088; // client -> GC
  142. // k_EMsgGCAddItemToSocketResponse = 1089; // GC -> client
  143. // k_EMsgGCAddSocketResponse = 1090; // GC -> client
  144. //
  145. // k_EMsgGCResetStrangeGemCount = 1091; // client -> GC
  146. // << DOTA
  147. // TF >>
  148. // generic broadcast
  149. k_EMsgGCClientDisplayNotification = 1069; // GC => client
  150. k_EMsgGCApplyStrangePart = 1070; // GC => client
  151. k_EMsgGC_IncrementKillCountAttribute = 1071; // client => GC
  152. k_EMsgGC_IncrementKillCountResponse = 1072; // GC => client
  153. k_EMsgGCRemoveStrangePart = 1073; // GC => client
  154. k_EMsgGCResetStrangeScores = 1074; // client => GC
  155. k_EMsgGCGiftedItems = 1075; // GC => game server
  156. k_EMsgGCApplyUpgradeCard = 1077; // client => GC
  157. k_EMsgGCRemoveUpgradeCard = 1078; // client => GC
  158. k_EMsgGCApplyStrangeRestriction = 1079; // client => GC
  159. k_EMsgGCClientRequestMarketData = 1080; // client => GC
  160. k_EMsgGCClientRequestMarketDataResponse = 1081; // GC => client
  161. k_EMsgGCApplyXifier = 1082; // client => GC
  162. k_EMsgGCApplyXifierResponse = 1083; // GC => Client
  163. k_EMsgGC_TrackUniquePlayerPairEvent = 1084; // client => GC
  164. k_EMsgGCFulfillDynamicRecipeComponent = 1085; // client => GC
  165. k_EMsgGCFulfillDynamicRecipeComponentResponse = 1086; // GC => client
  166. k_EMsgGCSetItemEffectVerticalOffset = 1087; // client => GC
  167. k_EMsgGCSetHatEffectUseHeadOrigin = 1088; // client => GC
  168. k_EMsgGCItemEaterRecharger = 1089; // client => GC
  169. k_EMsgGCItemEaterRechargerResponse = 1090; // GC => Client
  170. k_EMsgGCApplyBaseItemXifier = 1091; // client => GC
  171. k_EMsgGCApplyClassTransmogrifier = 1092; // client => GC
  172. k_EMsgGCApplyHalloweenSpellbookPage = 1093; // client => GC
  173. k_EMsgGCRemoveKillStreak = 1094; // client => GC
  174. k_EMsgGCRemoveKillStreakResponse = 1095; // GC => client
  175. k_EMsgGCTFSpecificItemBroadcast = 1096; // GC => client (broadcast)
  176. k_EMsgGC_IncrementKillCountAttribute_Multiple = 1097; // client (game server) => GC
  177. k_EMsgGCDeliverGiftResponseGiver = 1098;
  178. k_EMsgGCSetItemPositions = 1100; // client => GC; protobuf batched item position update
  179. // << TF
  180. k_EMsgGCLookupMultipleAccountNames = 1101;
  181. k_EMsgGCLookupMultipleAccountNamesResponse = 1102;
  182. // trading!
  183. k_EMsgGCTradingBase = 1500;
  184. k_EMsgGCTrading_InitiateTradeRequest = 1501; // client A -> GC and then GC -> client B
  185. k_EMsgGCTrading_InitiateTradeResponse = 1502; // client B -> GC or GC -> client A
  186. k_EMsgGCTrading_StartSession = 1503; // GC -> client A & B
  187. // k_EMsgGCTrading_SetItem = 1504; // client -> GC
  188. // k_EMsgGCTrading_RemoveItem = 1505; // client -> GC
  189. // k_EMsgGCTrading_UpdateTradeInfo = 1506; // GC -> client A & B in response to SetItem or RemoveItem message
  190. // k_EMsgGCTrading_SetReadiness = 1507; // client -> GC
  191. // k_EMsgGCTrading_ReadinessResponse = 1508; // GC -> client A & B
  192. k_EMsgGCTrading_SessionClosed = 1509; // GC -> client A & B
  193. k_EMsgGCTrading_CancelSession = 1510; // client -> GC
  194. // k_EMsgGCTrading_TradeChatMsg = 1511; // client -> GC and then GC -> other client
  195. // k_EMsgGCTrading_ConfirmOffer = 1512; // client -> GC
  196. // k_EMsgGCTrading_TradeTypingChatMsg = 1513; // client -> GC and then GC -> other client
  197. k_EMsgGCTrading_InitiateTradeRequestResponse = 1514; // GC -> client
  198. // serverbrowser messages
  199. k_EMsgGCServerBrowser_FavoriteServer = 1601;
  200. k_EMsgGCServerBrowser_BlacklistServer = 1602;
  201. // rentals & previews
  202. k_EMsgGCServerRentalsBase = 1700;
  203. k_EMsgGCItemPreviewCheckStatus = 1701;
  204. k_EMsgGCItemPreviewStatusResponse = 1702;
  205. k_EMsgGCItemPreviewRequest = 1703;
  206. k_EMsgGCItemPreviewRequestResponse = 1704;
  207. k_EMsgGCItemPreviewExpire = 1705;
  208. k_EMsgGCItemPreviewExpireNotification = 1706;
  209. // !FIXME! DOTAMERGE
  210. // This message is 1707 in DOTA, but it came from TF, where it was 1707 at one time, then switched to 1708
  211. // when the message format changed.
  212. // k_EMsgGCItemPreviewItemBoughtNotification = 1707;
  213. k_EMsgGCItemPreviewItemBoughtNotification = 1708;
  214. // Development only messages
  215. k_EMsgGCDev_NewItemRequest = 2001;
  216. k_EMsgGCDev_NewItemRequestResponse = 2002;
  217. k_EMsgGCDev_DebugRollLootRequest = 2003;
  218. // Microtransaction messages
  219. k_EMsgGCStoreGetUserData = 2500; // Gets the current price sheet from the GC
  220. k_EMsgGCStoreGetUserDataResponse = 2501; // Response
  221. k_EMsgGCStorePurchaseInit_DEPRECATED = 2502; // Initiate a purchase (old pre-protobuff format -- deprecated!)
  222. k_EMsgGCStorePurchaseInitResponse_DEPRECATED = 2503; // Response
  223. // !FIXME! DOTAMERGE
  224. // These messages have different values in TF and DOTA.
  225. // k_EMsgGCStorePurchaseFinalize = 2504; // Finalize a purchase
  226. // k_EMsgGCStorePurchaseFinalizeResponse = 2505; // Response
  227. // k_EMsgGCStorePurchaseCancel = 2506; // Cancel a purchase
  228. // k_EMsgGCStorePurchaseCancelResponse = 2507; // Response
  229. k_EMsgGCStorePurchaseFinalize = 2512; // Finalize a purchase
  230. k_EMsgGCStorePurchaseFinalizeResponse = 2513; // Response
  231. k_EMsgGCStorePurchaseCancel = 2514; // Cancel a purchase
  232. k_EMsgGCStorePurchaseCancelResponse = 2515; // Response
  233. k_EMsgGCStorePurchaseQueryTxn = 2508; // Query the status of a transaction
  234. k_EMsgGCStorePurchaseQueryTxnResponse = 2509; // Response
  235. k_EMsgGCStorePurchaseInit = 2510; // Initiate a purchase
  236. k_EMsgGCStorePurchaseInitResponse = 2511; // Response
  237. // !FIXME! DOTAMERGE
  238. // Conflict with TF messages
  239. // k_EMsgGCBannedWordListRequest = 2512; // Request a list of new banned words
  240. // k_EMsgGCBannedWordListResponse = 2513; // response to a request, or a push of a new banned word update to clients
  241. // k_EMsgGCToGCBannedWordListBroadcast = 2514; // sent from GC to GC so the main GC can broadcast a banned word change to clients
  242. // k_EMsgGCToGCBannedWordListUpdated = 2515; // sent from GC to other GCs so that they can be kept in sync with banned word list updates
  243. k_EMsgGCToGCDirtySDOCache = 2516; // when an SDO cache needs to be dirtied on another GC
  244. k_EMsgGCToGCDirtyMultipleSDOCache = 2517; // when a list of SDO caches needs to be dirtied on another GC
  245. k_EMsgGCToGCUpdateSQLKeyValue = 2518; // when a key value changes and needs to be updated on other GCs
  246. // k_EMsgGCToGCIsTrustedServer = 2519; // Is the specified server trusted?
  247. // k_EMsgGCToGCIsTrustedServerResponse = 2520; // response to whether or not this is a trusted server
  248. k_EMsgGCToGCBroadcastConsoleCommand = 2521; // run a console command remotely on another GC from a GC
  249. k_EMsgGCServerVersionUpdated = 2522; // Sent when the active version of a server changes so servers can restart
  250. k_EMsgGCApplyAutograph = 2523; //
  251. k_EMsgGCToGCWebAPIAccountChanged = 2524;
  252. k_EMsgGCRequestAnnouncements = 2525; //
  253. k_EMsgGCRequestAnnouncementsResponse = 2526; //
  254. k_EMsgGCRequestPassportItemGrant = 2527;
  255. k_EMsgGCClientVersionUpdated = 2528; // Sent when the client doesn't match the appropriate version
  256. k_EMsgGCItemPurgatory_FinalizePurchase = 2531; // Sent for Korean government requirement - move a purchased item from the "maybe box" (referred to as item purgatory in code) to the backpack
  257. k_EMsgGCItemPurgatory_FinalizePurchaseResponse = 2532;
  258. k_EMsgGCItemPurgatory_RefundPurchase = 2533;
  259. k_EMsgGCItemPurgatory_RefundPurchaseResponse = 2534;
  260. k_EMsgGCToGCPlayerStrangeCountAdjustments = 2535;
  261. k_EMsgGCRequestStoreSalesData = 2536; // get which items are currently on sale
  262. k_EMsgGCRequestStoreSalesDataResponse = 2537;
  263. k_EMsgGCRequestStoreSalesDataUpToDateResponse = 2538;
  264. k_EMsgGCToGCPingRequest = 2539;
  265. k_EMsgGCToGCPingResponse = 2540;
  266. k_EMsgGCToGCGetUserSessionServer = 2541; // GC->GC, see what the steam ID is of the server that this user is on
  267. k_EMsgGCToGCGetUserSessionServerResponse = 2542; // --response
  268. k_EMsgGCToGCGetUserServerMembers = 2543; // GC->GC, what members are on the server and spectating
  269. k_EMsgGCToGCGetUserServerMembersResponse = 2544; // --response
  270. k_EMsgGCToGCGrantSelfMadeItemToAccount = 2555; // GC->GC, via SQL message queue, grant one specific self-made item to this contributor account ID
  271. k_EMsgGCToGCThankedByNewUser = 2556; // GC->GC, via SQL message queue, this account was thanked by a new user account, so grant a thanked item or level up the current item
  272. k_EMsgGCShuffleCrateContents = 2557; // game client->GC, shuffle the contents of the line item loot list for this crate
  273. k_EMsgGCQuestObjective_Progress = 2558; // client/game -> GC, report progress in a quest objective
  274. k_EMsgGCQuestCompleted = 2559; // GC -> client, report completion of a quest
  275. k_EMsgGCApplyDuckToken = 2560; // client => GC
  276. k_EMsgGCQuestComplete_Request = 2561; // client -> GC
  277. k_EMsgGCQuestObjective_PointsChange = 2562; // server -> GC
  278. k_EMsgGCQuestObjective_RequestLoanerItems = 2564; // client -> GC
  279. k_EMsgGCQuestObjective_RequestLoanerResponse = 2565; // GC -> client
  280. k_EMsgGCApplyStrangeCountTransfer = 2566; // client => GC
  281. k_EMsgGCCraftCollectionUpgrade = 2567; // client => GC
  282. k_EMsgGCCraftHalloweenOffering = 2568; // client => GC
  283. k_EMsgGCQuestDiscard_Request = 2569; // client => GC
  284. k_EMsgGCRemoveGiftedBy = 2570; // client => GC
  285. k_EMsgGCRemoveGiftedByResponse = 2571; // GC => client
  286. k_EMsgGCRemoveFestivizer = 2572; // client => GC
  287. k_EMsgGCRemoveFestivizerResponse = 2573; // GC => client
  288. k_EMsgGCCraftCommonStatClock = 2574; // client => GC
  289. // Game specific messages start at 5000 and GCGameBase messages start at 3000
  290. // So all these must be < 3000
  291. };
  292. enum EGCMsgResponse
  293. {
  294. k_EGCMsgResponseOK = 0; // Request succeeded
  295. k_EGCMsgResponseDenied = 1; // Request denied
  296. k_EGCMsgResponseServerError = 2; // Request failed due to a temporary server error
  297. k_EGCMsgResponseTimeout = 3; // Request timed out
  298. k_EGCMsgResponseInvalid = 4; // Request was corrupt
  299. k_EGCMsgResponseNoMatch = 5; // No item definition matched the request
  300. k_EGCMsgResponseUnknownError = 6; // Request failed with an unknown error
  301. k_EGCMsgResponseNotLoggedOn = 7; // Client not logged on to steam
  302. k_EGCMsgFailedToCreate = 8; // Failed to create whatever object the GC was asked to create
  303. // k_EGCMsgResponseForceSizeInt = 0x7FFFFFFF
  304. };
  305. enum EUnlockStyle
  306. {
  307. k_UnlockStyle_Succeeded = 0;
  308. k_UnlockStyle_Failed_PreReq = 1;
  309. k_UnlockStyle_Failed_CantAfford = 2;
  310. k_UnlockStyle_Failed_CantCommit = 3;
  311. k_UnlockStyle_Failed_CantLockCache = 4;
  312. k_UnlockStyle_Failed_CantAffordAttrib = 5;
  313. k_UnlockStyle_Failed_CantAffordGem = 6;
  314. };
  315. enum EItemPurgatoryResponse_Finalize
  316. {
  317. k_ItemPurgatoryResponse_Finalize_Succeeded = 0;
  318. k_ItemPurgatoryResponse_Finalize_Failed_Incomplete = 1; // Some but not all finalized
  319. k_ItemPurgatoryResponse_Finalize_Failed_ItemsNotInPurgatory = 2; // Item ID's sent up were not in purgatory
  320. k_ItemPurgatoryResponse_Finalize_Failed_CouldNotFindItems = 3; // One or more items do not belong to the given steam ID or were deleted, etc.
  321. k_ItemPurgatoryResponse_Finalize_Failed_NoSOCache = 4; // Couldn't load the user's SO cache
  322. k_ItemPurgatoryResponse_Finalize_BackpackFull = 5; // Backpack was full. We may have finalized some items.
  323. };
  324. enum EItemPurgatoryResponse_Refund
  325. {
  326. k_ItemPurgatoryResponse_Refund_Succeeded = 0;
  327. k_ItemPurgatoryResponse_Refund_Failed_ItemNotInPurgatory = 1; // Item ID's sent up were not in purgatory
  328. k_ItemPurgatoryResponse_Refund_Failed_CouldNotFindItem = 2; // One or more items do not belong to the given steam ID or were deleted, etc.
  329. k_ItemPurgatoryResponse_Refund_Failed_NoSOCache = 3; // Couldn't load the user's SO cache
  330. k_ItemPurgatoryResponse_Refund_Failed_NoDetail = 4; // Generic error to avoid giving the client too much detail
  331. k_ItemPurgatoryResponse_Refund_Failed_NexonWebAPI = 5; // The Nexon WebAPI failed
  332. };
  333. //
  334. // k_EMsgGCApplyAutograph
  335. //
  336. message CMsgApplyAutograph
  337. {
  338. optional uint64 autograph_item_id = 1; // which autograph?
  339. optional uint64 item_item_id = 2; // which item is getting this autograph
  340. };
  341. // k_EMsgGCToGCPlayerStrangeCountAdjustments
  342. // Used in the GC SQL Msg queue and in match signout
  343. message CMsgEconPlayerStrangeCountAdjustment
  344. {
  345. message CStrangeCountAdjustment
  346. {
  347. optional uint32 event_type = 1;
  348. optional uint64 item_id = 2;
  349. optional uint32 adjustment = 3;
  350. };
  351. optional uint32 account_id = 1;
  352. repeated CStrangeCountAdjustment strange_count_adjustments = 2;
  353. };
  354. //
  355. // k_EMsgGCItemPurgatory_FinalizePurchase
  356. //
  357. message CMsgRequestItemPurgatory_FinalizePurchase
  358. {
  359. repeated uint64 item_ids = 1;
  360. };
  361. //
  362. // k_EMsgGCItemPurgatory_FinalizePurchaseResponse
  363. //
  364. message CMsgRequestItemPurgatory_FinalizePurchaseResponse
  365. {
  366. optional uint32 result = 1;
  367. };
  368. //
  369. // k_EMsgGCItemPurgatory_RefundPurchase
  370. //
  371. message CMsgRequestItemPurgatory_RefundPurchase
  372. {
  373. optional uint64 item_id = 1;
  374. };
  375. //
  376. // k_EMsgGCItemPurgatory_RefundPurchaseResponse
  377. //
  378. message CMsgRequestItemPurgatory_RefundPurchaseResponse
  379. {
  380. optional uint32 result = 1;
  381. };
  382. message CMsgCraftingResponse
  383. {
  384. repeated uint64 item_ids = 1;
  385. };
  386. // k_EMsgGCRequestStoreSalesData
  387. message CMsgGCRequestStoreSalesData
  388. {
  389. optional uint32 version = 1; // the last received version (used to identify when sales data may have changed)
  390. optional uint32 currency = 2; // which currency we want the sales values for
  391. };
  392. // k_EMsgGCRequestStoreSalesDataResponse
  393. message CMsgGCRequestStoreSalesDataResponse
  394. {
  395. message Price
  396. {
  397. optional uint32 item_def = 1;
  398. optional uint32 price = 2;
  399. };
  400. repeated Price sale_price = 1; // the list of items on sale and their sale price for the requested currency
  401. optional uint32 version = 2; // the version of this data, future sale requests should provide this value so redundant requests can be ignored
  402. optional uint32 expiration_time = 3; // the time after which this sale is likely to expire. It could expire sooner than this if the GC restarts
  403. };
  404. // k_EMsgGCRequestStoreSalesDataUpToDateResponse
  405. message CMsgGCRequestStoreSalesDataUpToDateResponse
  406. {
  407. optional uint32 version = 1; // the last received version (used to identify when sales data may have changed)
  408. optional uint32 expiration_time = 2; // the time after which this sale is likely to expire. It could expire sooner than this if the GC restarts
  409. };
  410. // k_EMsgGCToGCPingRequest
  411. message CMsgGCToGCPingRequest
  412. {
  413. };
  414. // k_EMsgGCToGCPingResponse
  415. message CMsgGCToGCPingResponse
  416. {
  417. };
  418. // k_EMsgGCToGCGetUserSessionServer
  419. message CMsgGCToGCGetUserSessionServer
  420. {
  421. optional uint32 account_id = 1; // the user to lookup the server information for
  422. };
  423. // k_EMsgGCToGCGetUserSessionServerResponse
  424. message CMsgGCToGCGetUserSessionServerResponse
  425. {
  426. optional fixed64 server_steam_id = 1; // zero if this user is not online or not on a server
  427. };
  428. // k_EMsgGCToGCGetUserServerMembers
  429. message CMsgGCToGCGetUserServerMembers
  430. {
  431. optional uint32 account_id = 1; // the account ID to look up the server and spectators from
  432. optional uint32 max_spectators = 2; // do you want spectators? If so what is the limit of how many will be returned (otherwise specify zero)
  433. };
  434. // k_EMsgGCToGCGetUserServerMembersResponse
  435. message CMsgGCToGCGetUserServerMembersResponse
  436. {
  437. repeated uint32 member_account_id = 1; // the list of other server members or spectators
  438. };
  439. // k_EMsgGCLookupMultipleAccountNames
  440. message CMsgLookupMultipleAccountNames
  441. {
  442. repeated uint32 accountids = 1 [ packed=true ];
  443. };
  444. // k_EMsgGCLookupMultipleAccountNamesResponse
  445. message CMsgLookupMultipleAccountNamesResponse
  446. {
  447. message Account
  448. {
  449. optional uint32 accountid = 1;
  450. optional string persona = 2;
  451. }
  452. repeated Account accounts = 1;
  453. };
  454. // k_EMsgGCToGCGrantSelfMadeItemToAccount
  455. message CMsgGCToGCGrantSelfMadeItemToAccount
  456. {
  457. optional uint32 item_def_index = 1;
  458. optional uint32 accountid = 2;
  459. }
  460. // k_EMsgGCToGCThankedByNewUser
  461. message CMsgGCToGCThankedByNewUser
  462. {
  463. optional uint32 new_user_accountid = 1; // guy who did the thanking
  464. optional uint32 thanked_user_accountid = 2; // guy who was thanked
  465. }
  466. // k_EMsgGCShuffleCrateContents
  467. message CMsgGCShuffleCrateContents
  468. {
  469. optional uint64 crate_item_id = 1;
  470. optional string user_code_string = 2;
  471. }
  472. // k_EMsgGCQuestObjective_Progress
  473. message CMsgGCQuestObjective_Progress
  474. {
  475. optional uint64 quest_item_id = 1;
  476. optional uint32 quest_attrib_index = 2;
  477. optional uint32 delta = 3;
  478. optional fixed64 owner_steamid = 4;
  479. }
  480. // CMsgGCQuestObjective_PointsChange
  481. message CMsgGCQuestObjective_PointsChange
  482. {
  483. optional uint64 quest_item_id = 1;
  484. optional uint32 standard_points = 2;
  485. optional uint32 bonus_points = 3;
  486. optional fixed64 owner_steamid = 4;
  487. optional bool update_base_points = 5 [default = false];
  488. }
  489. // k_EMsgGCQuestComplete_Request
  490. message CMsgGCQuestComplete_Request
  491. {
  492. optional uint64 quest_item_id = 1;
  493. }
  494. // k_EMsgGCQuestCompleted
  495. message CMsgGCQuestCompleted
  496. {
  497. }
  498. // k_EMsgGCQuestObjective_RequestLoanerItems
  499. message CMsgGCQuestObjective_RequestLoanerItems
  500. {
  501. optional uint64 quest_item_id = 1;
  502. }
  503. // k_EMsgGCQuestObjective_RequestLoanerResponse
  504. message CMsgGCQuestObjective_RequestLoanerResponse
  505. {
  506. }
  507. // k_EMsgGCCraftCollectionUpgrader
  508. message CMsgCraftCollectionUpgrade
  509. {
  510. repeated uint64 item_id = 1; // list of item ids
  511. };
  512. // k_EMsgGCCraftHalloweenOffering
  513. message CMsgCraftHalloweenOffering
  514. {
  515. optional uint64 tool_id = 1; // tool that is invoking this call
  516. repeated uint64 item_id = 2; // list of item ids
  517. };
  518. // k_EMsgGCCraftCommonStatClock
  519. message CMsgCraftCommonStatClock
  520. {
  521. optional uint64 tool_id = 1; // tool that is invoking this call
  522. repeated uint64 item_id = 2; // list of item ids
  523. };
  524. // k_EMsgGCQuestDiscard_Request
  525. message CMsgGCQuestDiscard_Request
  526. {
  527. optional uint64 quest_item_id = 1;
  528. }
  529. // Do not remove this comment due to a bug on the Mac OS X protobuf compiler - lol