diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/shared/econ/econ_gcmessages.proto | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/shared/econ/econ_gcmessages.proto')
| -rw-r--r-- | game/shared/econ/econ_gcmessages.proto | 644 |
1 files changed, 644 insertions, 0 deletions
diff --git a/game/shared/econ/econ_gcmessages.proto b/game/shared/econ/econ_gcmessages.proto new file mode 100644 index 0000000..19cb487 --- /dev/null +++ b/game/shared/econ/econ_gcmessages.proto @@ -0,0 +1,644 @@ +//====== Copyright 1996-2010, Valve Corporation, All rights reserved. ======= +// +// Purpose: The file defines our Google Protocol Buffers which are used in over +// the wire messages between servers as well as between the TF GC and TF gameservers +// and clients. +// +//============================================================================= + +// We care more about speed than code size +option optimize_for = SPEED; + +// We don't use the service generation functionality +option cc_generic_services = false; + + +// +// STYLE NOTES: +// +// Use CamelCase CMsgMyMessageName style names for messages. +// +// Use lowercase _ delimited names like my_steam_id for field names, this is non-standard for Steam, +// but plays nice with the Google formatted code generation. +// +// Try not to use required fields ever. Only do so if you are really really sure you'll never want them removed. +// Optional should be preffered as it will make versioning easier and cleaner in the future if someone refactors +// your message and wants to remove or rename fields. +// +// Use fixed64 for JobId_t, GID_t, or SteamID. This is appropriate for any field that is normally +// going to be larger than 2^56. Otherwise use int64 for 64 bit values that are frequently smaller +// than 2^56 as it will safe space on the wire in those cases. +// +// Similar to fixed64, use fixed32 for RTime32 or other 32 bit values that are frequently larger than +// 2^28. It will save space in those cases, otherwise use int32 which will safe space for smaller values. +// An exception to this rule for RTime32 is if the value will frequently be zero rather than set to an actual +// time. +// + +import "steammessages.proto"; + +enum EGCItemMsg +{ + k_EMsgGCBase = 1000; + k_EMsgGCSetSingleItemPosition = 1001; // uses old-school struct for a single item. Prefer k_EMsgGCSetItemPositions + k_EMsgGCCraft = 1002; + k_EMsgGCCraftResponse = 1003; + k_EMsgGCDelete = 1004; + k_EMsgGCVerifyCacheSubscription = 1005; // sent by gameservers who don't have a cache they expect + k_EMsgGCNameItem = 1006; + k_EMsgGCUnlockCrate = 1007; // used by decoder rings to unlock supply crates + k_EMsgGCUnlockCrateResponse = 1008; + k_EMsgGCPaintItem = 1009; // used by paint cans to paint items + k_EMsgGCPaintItemResponse = 1010; + k_EMsgGCGoldenWrenchBroadcast = 1011; // sent to all users when a Golden Wrench is crafted or deleted + k_EMsgGCMOTDRequest = 1012; // client is asking for a set of MOTDs + k_EMsgGCMOTDRequestResponse = 1013; + +// k_EMsgGCAddItemToSocket_DEPRECATED = 1014; +// k_EMsgGCAddItemToSocketResponse_DEPRECATED = 1015; +// k_EMsgGCAddSocketToBaseItem_DEPRECATED = 1016; +// k_EMsgGCAddSocketToItem_DEPRECATED = 1017; +// k_EMsgGCAddSocketToItemResponse_DEPRECATED = 1018; + + k_EMsgGCNameBaseItem = 1019; + k_EMsgGCNameBaseItemResponse = 1020; + + k_EMsgGCRemoveSocketItem_DEPRECATED = 1021; + k_EMsgGCRemoveSocketItemResponse_DEPRECATED = 1022; + + k_EMsgGCCustomizeItemTexture = 1023; + k_EMsgGCCustomizeItemTextureResponse = 1024; + k_EMsgGCUseItemRequest = 1025; // client/game server => GC + k_EMsgGCUseItemResponse = 1026; // GC => client/game server + +// k_EMsgGCSpawnItem_DEPRECATED = 1028; // GC => game server + k_EMsgGCRespawnPostLoadoutChange = 1029; // client => GC => game server + k_EMsgGCRemoveItemName = 1030; // client => GC + k_EMsgGCRemoveItemPaint = 1031; // client => GC + k_EMsgGCGiftWrapItem = 1032; // client => GC (the player requests an item to be gift wrapped) + k_EMsgGCGiftWrapItemResponse = 1033; // GC => client (confirmation that an item was gift wrapped) + k_EMsgGCDeliverGift = 1034; + k_EMsgGCDeliverGiftResponseReceiver = 1036; + k_EMsgGCUnwrapGiftRequest = 1037; + k_EMsgGCUnwrapGiftResponse = 1038; + k_EMsgGCSetItemStyle = 1039; + + k_EMsgGCUsedClaimCodeItem = 1040; + k_EMsgGCSortItems = 1041; + + k_EMsgGC_RevolvingLootList_DEPRECATED= 1042; // GC => client; revolving loot list + + k_EMsgGCLookupAccount = 1043; // client is requesting a lookup of an account + k_EMsgGCLookupAccountResponse = 1044; + k_EMsgGCLookupAccountName = 1045; // old-school struct for single account. client is requesting a lookup of an account name + k_EMsgGCLookupAccountNameResponse = 1046; + + //k_EMsgGCStartupCheck = 1047; // GC => client + //k_EMsgGCStartupCheckResponse = 1048; // client => GC + k_EMsgGCUpdateItemSchema = 1049; // GC => client + k_EMsgGCRequestInventoryRefresh = 1050; // client => GC + + k_EMsgGCRemoveCustomTexture = 1051; // client => GC + k_EMsgGCRemoveCustomTextureResponse = 1052; // GC => client + k_EMsgGCRemoveMakersMark = 1053; // client => GC + k_EMsgGCRemoveMakersMarkResponse = 1054; // GC => client + k_EMsgGCRemoveUniqueCraftIndex = 1055; // client => GC + k_EMsgGCRemoveUniqueCraftIndexResponse = 1056; // GC => client + + k_EMsgGCSaxxyBroadcast = 1057; // sent to all users when a Saxxy is deleted + + k_EMsgGCBackpackSortFinished = 1058; // GC => client + k_EMsgGCAdjustItemEquippedState = 1059; // GC => client +// k_EMsgGCRequestItemSchemaData_DEPRECATED = 1060; // client => GC Should only be used in dev universe + + k_EMsgGCCollectItem = 1061; + + k_EMsgGCItemAcknowledged = 1062; // sent to a dedicated server when a client acknowledges an item + + // item presets + k_EMsgGCPresets_SelectPresetForClass = 1063; // client => GC + k_EMsgGCPresets_SetItemPosition = 1064; // client => GC + + // Abuse reporting + k_EMsgGC_ReportAbuse = 1065; // client => GC + k_EMsgGC_ReportAbuseResponse = 1066; // GC => client + + // more item presets + k_EMsgGCPresets_SelectPresetForClassReply = 1067; // GC => client + + // item naming broadcast + k_EMsgGCNameItemNotification = 1068; // GC => client + +// !FIXME! DOTAMERGE +// these messages are particular to DOTA, or +// conflict with corresponding TF messages +// +// k_EMsgGCGiftedItems = 1027; // GC => game server +// k_EMsgGCDeliverGiftResponseGiver = 1035; +// +// k_EMsgGCApplyConsumableEffects = 1069; +// +// k_EMsgGCConsumableExhausted = 1070; +// k_EMsgGCApplyStrangePart = 1073; // GC => client +// k_EMsgGCShowItemsPickedUp = 1071; +// +// // generic broadcast +// k_EMsgGCClientDisplayNotification = 1072; // GC => client +// +//// OBSOLETE k_EMsgGC_IncrementKillCountAttribute = 1074; // client => GC +// k_EMsgGC_IncrementKillCountResponse = 1075; // GC => client +// k_EMsgGCApplyPennantUpgrade = 1076; // GC => client +// +// k_EMsgGCSetItemPositions = 1077; // client => GC; protobuf batched item position update +// +// k_EMsgGCUnlockItemStyle = 1080; +// k_EMsgGCUnlockItemStyleResponse = 1081; +// +// k_EMsgGCFulfillDynamicRecipeComponent = 1082; +// k_EMsgGCFulfillDynamicRecipeComponentResponse = 1083; +// k_EMsgGCApplyEggEssence = 1078; +// k_EMsgGCNameEggEssenceResponse = 1079; +// +// k_EMsgGCClientRequestMarketData = 1084; +// k_EMsgGCClientRequestMarketDataResponse = 1085; +// k_EMsgGCExtractGems = 1086; +// k_EMsgGCAddSocket = 1087; // client -> GC +// k_EMsgGCAddItemToSocket = 1088; // client -> GC +// k_EMsgGCAddItemToSocketResponse = 1089; // GC -> client +// k_EMsgGCAddSocketResponse = 1090; // GC -> client +// +// k_EMsgGCResetStrangeGemCount = 1091; // client -> GC + +// << DOTA + +// TF >> + + // generic broadcast + k_EMsgGCClientDisplayNotification = 1069; // GC => client + + k_EMsgGCApplyStrangePart = 1070; // GC => client + k_EMsgGC_IncrementKillCountAttribute = 1071; // client => GC + k_EMsgGC_IncrementKillCountResponse = 1072; // GC => client + k_EMsgGCRemoveStrangePart = 1073; // GC => client + k_EMsgGCResetStrangeScores = 1074; // client => GC + + k_EMsgGCGiftedItems = 1075; // GC => game server + + k_EMsgGCApplyUpgradeCard = 1077; // client => GC + k_EMsgGCRemoveUpgradeCard = 1078; // client => GC + + k_EMsgGCApplyStrangeRestriction = 1079; // client => GC + + k_EMsgGCClientRequestMarketData = 1080; // client => GC + k_EMsgGCClientRequestMarketDataResponse = 1081; // GC => client + + k_EMsgGCApplyXifier = 1082; // client => GC + k_EMsgGCApplyXifierResponse = 1083; // GC => Client + + k_EMsgGC_TrackUniquePlayerPairEvent = 1084; // client => GC + k_EMsgGCFulfillDynamicRecipeComponent = 1085; // client => GC + k_EMsgGCFulfillDynamicRecipeComponentResponse = 1086; // GC => client + + k_EMsgGCSetItemEffectVerticalOffset = 1087; // client => GC + k_EMsgGCSetHatEffectUseHeadOrigin = 1088; // client => GC + + k_EMsgGCItemEaterRecharger = 1089; // client => GC + k_EMsgGCItemEaterRechargerResponse = 1090; // GC => Client + + k_EMsgGCApplyBaseItemXifier = 1091; // client => GC + + k_EMsgGCApplyClassTransmogrifier = 1092; // client => GC + k_EMsgGCApplyHalloweenSpellbookPage = 1093; // client => GC + + k_EMsgGCRemoveKillStreak = 1094; // client => GC + k_EMsgGCRemoveKillStreakResponse = 1095; // GC => client + + k_EMsgGCTFSpecificItemBroadcast = 1096; // GC => client (broadcast) + k_EMsgGC_IncrementKillCountAttribute_Multiple = 1097; // client (game server) => GC + k_EMsgGCDeliverGiftResponseGiver = 1098; + + k_EMsgGCSetItemPositions = 1100; // client => GC; protobuf batched item position update + +// << TF + + k_EMsgGCLookupMultipleAccountNames = 1101; + k_EMsgGCLookupMultipleAccountNamesResponse = 1102; + + // trading! + k_EMsgGCTradingBase = 1500; + k_EMsgGCTrading_InitiateTradeRequest = 1501; // client A -> GC and then GC -> client B + k_EMsgGCTrading_InitiateTradeResponse = 1502; // client B -> GC or GC -> client A + k_EMsgGCTrading_StartSession = 1503; // GC -> client A & B +// k_EMsgGCTrading_SetItem = 1504; // client -> GC +// k_EMsgGCTrading_RemoveItem = 1505; // client -> GC +// k_EMsgGCTrading_UpdateTradeInfo = 1506; // GC -> client A & B in response to SetItem or RemoveItem message +// k_EMsgGCTrading_SetReadiness = 1507; // client -> GC +// k_EMsgGCTrading_ReadinessResponse = 1508; // GC -> client A & B + k_EMsgGCTrading_SessionClosed = 1509; // GC -> client A & B + k_EMsgGCTrading_CancelSession = 1510; // client -> GC +// k_EMsgGCTrading_TradeChatMsg = 1511; // client -> GC and then GC -> other client +// k_EMsgGCTrading_ConfirmOffer = 1512; // client -> GC +// k_EMsgGCTrading_TradeTypingChatMsg = 1513; // client -> GC and then GC -> other client + k_EMsgGCTrading_InitiateTradeRequestResponse = 1514; // GC -> client + + // serverbrowser messages + k_EMsgGCServerBrowser_FavoriteServer = 1601; + k_EMsgGCServerBrowser_BlacklistServer = 1602; + + // rentals & previews + k_EMsgGCServerRentalsBase = 1700; + k_EMsgGCItemPreviewCheckStatus = 1701; + k_EMsgGCItemPreviewStatusResponse = 1702; + k_EMsgGCItemPreviewRequest = 1703; + k_EMsgGCItemPreviewRequestResponse = 1704; + k_EMsgGCItemPreviewExpire = 1705; + k_EMsgGCItemPreviewExpireNotification = 1706; + +// !FIXME! DOTAMERGE +// This message is 1707 in DOTA, but it came from TF, where it was 1707 at one time, then switched to 1708 +// when the message format changed. +// k_EMsgGCItemPreviewItemBoughtNotification = 1707; + k_EMsgGCItemPreviewItemBoughtNotification = 1708; + + // Development only messages + k_EMsgGCDev_NewItemRequest = 2001; + k_EMsgGCDev_NewItemRequestResponse = 2002; + k_EMsgGCDev_DebugRollLootRequest = 2003; + + // Microtransaction messages + k_EMsgGCStoreGetUserData = 2500; // Gets the current price sheet from the GC + k_EMsgGCStoreGetUserDataResponse = 2501; // Response + k_EMsgGCStorePurchaseInit_DEPRECATED = 2502; // Initiate a purchase (old pre-protobuff format -- deprecated!) + k_EMsgGCStorePurchaseInitResponse_DEPRECATED = 2503; // Response + +// !FIXME! DOTAMERGE +// These messages have different values in TF and DOTA. +// k_EMsgGCStorePurchaseFinalize = 2504; // Finalize a purchase +// k_EMsgGCStorePurchaseFinalizeResponse = 2505; // Response +// k_EMsgGCStorePurchaseCancel = 2506; // Cancel a purchase +// k_EMsgGCStorePurchaseCancelResponse = 2507; // Response + k_EMsgGCStorePurchaseFinalize = 2512; // Finalize a purchase + k_EMsgGCStorePurchaseFinalizeResponse = 2513; // Response + k_EMsgGCStorePurchaseCancel = 2514; // Cancel a purchase + k_EMsgGCStorePurchaseCancelResponse = 2515; // Response + + k_EMsgGCStorePurchaseQueryTxn = 2508; // Query the status of a transaction + k_EMsgGCStorePurchaseQueryTxnResponse = 2509; // Response + k_EMsgGCStorePurchaseInit = 2510; // Initiate a purchase + k_EMsgGCStorePurchaseInitResponse = 2511; // Response + +// !FIXME! DOTAMERGE +// Conflict with TF messages +// k_EMsgGCBannedWordListRequest = 2512; // Request a list of new banned words +// k_EMsgGCBannedWordListResponse = 2513; // response to a request, or a push of a new banned word update to clients +// k_EMsgGCToGCBannedWordListBroadcast = 2514; // sent from GC to GC so the main GC can broadcast a banned word change to clients +// k_EMsgGCToGCBannedWordListUpdated = 2515; // sent from GC to other GCs so that they can be kept in sync with banned word list updates + + k_EMsgGCToGCDirtySDOCache = 2516; // when an SDO cache needs to be dirtied on another GC + k_EMsgGCToGCDirtyMultipleSDOCache = 2517; // when a list of SDO caches needs to be dirtied on another GC + + k_EMsgGCToGCUpdateSQLKeyValue = 2518; // when a key value changes and needs to be updated on other GCs +// k_EMsgGCToGCIsTrustedServer = 2519; // Is the specified server trusted? +// k_EMsgGCToGCIsTrustedServerResponse = 2520; // response to whether or not this is a trusted server + k_EMsgGCToGCBroadcastConsoleCommand = 2521; // run a console command remotely on another GC from a GC + + k_EMsgGCServerVersionUpdated = 2522; // Sent when the active version of a server changes so servers can restart + + k_EMsgGCApplyAutograph = 2523; // + k_EMsgGCToGCWebAPIAccountChanged = 2524; + k_EMsgGCRequestAnnouncements = 2525; // + k_EMsgGCRequestAnnouncementsResponse = 2526; // + k_EMsgGCRequestPassportItemGrant = 2527; + + k_EMsgGCClientVersionUpdated = 2528; // Sent when the client doesn't match the appropriate version + + 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 + k_EMsgGCItemPurgatory_FinalizePurchaseResponse = 2532; + k_EMsgGCItemPurgatory_RefundPurchase = 2533; + k_EMsgGCItemPurgatory_RefundPurchaseResponse = 2534; + + k_EMsgGCToGCPlayerStrangeCountAdjustments = 2535; + + k_EMsgGCRequestStoreSalesData = 2536; // get which items are currently on sale + k_EMsgGCRequestStoreSalesDataResponse = 2537; + k_EMsgGCRequestStoreSalesDataUpToDateResponse = 2538; + + k_EMsgGCToGCPingRequest = 2539; + k_EMsgGCToGCPingResponse = 2540; + + k_EMsgGCToGCGetUserSessionServer = 2541; // GC->GC, see what the steam ID is of the server that this user is on + k_EMsgGCToGCGetUserSessionServerResponse = 2542; // --response + k_EMsgGCToGCGetUserServerMembers = 2543; // GC->GC, what members are on the server and spectating + k_EMsgGCToGCGetUserServerMembersResponse = 2544; // --response + + k_EMsgGCToGCGrantSelfMadeItemToAccount = 2555; // GC->GC, via SQL message queue, grant one specific self-made item to this contributor account ID + 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 + + k_EMsgGCShuffleCrateContents = 2557; // game client->GC, shuffle the contents of the line item loot list for this crate + + k_EMsgGCQuestObjective_Progress = 2558; // client/game -> GC, report progress in a quest objective + k_EMsgGCQuestCompleted = 2559; // GC -> client, report completion of a quest + + k_EMsgGCApplyDuckToken = 2560; // client => GC + + k_EMsgGCQuestComplete_Request = 2561; // client -> GC + k_EMsgGCQuestObjective_PointsChange = 2562; // server -> GC + k_EMsgGCQuestObjective_RequestLoanerItems = 2564; // client -> GC + k_EMsgGCQuestObjective_RequestLoanerResponse = 2565; // GC -> client + + k_EMsgGCApplyStrangeCountTransfer = 2566; // client => GC + k_EMsgGCCraftCollectionUpgrade = 2567; // client => GC + k_EMsgGCCraftHalloweenOffering = 2568; // client => GC + + k_EMsgGCQuestDiscard_Request = 2569; // client => GC + + k_EMsgGCRemoveGiftedBy = 2570; // client => GC + k_EMsgGCRemoveGiftedByResponse = 2571; // GC => client + + k_EMsgGCRemoveFestivizer = 2572; // client => GC + k_EMsgGCRemoveFestivizerResponse = 2573; // GC => client + + k_EMsgGCCraftCommonStatClock = 2574; // client => GC + + // Game specific messages start at 5000 and GCGameBase messages start at 3000 + // So all these must be < 3000 +}; + +enum EGCMsgResponse +{ + k_EGCMsgResponseOK = 0; // Request succeeded + k_EGCMsgResponseDenied = 1; // Request denied + k_EGCMsgResponseServerError = 2; // Request failed due to a temporary server error + k_EGCMsgResponseTimeout = 3; // Request timed out + k_EGCMsgResponseInvalid = 4; // Request was corrupt + k_EGCMsgResponseNoMatch = 5; // No item definition matched the request + k_EGCMsgResponseUnknownError = 6; // Request failed with an unknown error + k_EGCMsgResponseNotLoggedOn = 7; // Client not logged on to steam + k_EGCMsgFailedToCreate = 8; // Failed to create whatever object the GC was asked to create + +// k_EGCMsgResponseForceSizeInt = 0x7FFFFFFF +}; + +enum EUnlockStyle +{ + k_UnlockStyle_Succeeded = 0; + k_UnlockStyle_Failed_PreReq = 1; + k_UnlockStyle_Failed_CantAfford = 2; + k_UnlockStyle_Failed_CantCommit = 3; + k_UnlockStyle_Failed_CantLockCache = 4; + k_UnlockStyle_Failed_CantAffordAttrib = 5; + k_UnlockStyle_Failed_CantAffordGem = 6; +}; + +enum EItemPurgatoryResponse_Finalize +{ + k_ItemPurgatoryResponse_Finalize_Succeeded = 0; + k_ItemPurgatoryResponse_Finalize_Failed_Incomplete = 1; // Some but not all finalized + k_ItemPurgatoryResponse_Finalize_Failed_ItemsNotInPurgatory = 2; // Item ID's sent up were not in purgatory + k_ItemPurgatoryResponse_Finalize_Failed_CouldNotFindItems = 3; // One or more items do not belong to the given steam ID or were deleted, etc. + k_ItemPurgatoryResponse_Finalize_Failed_NoSOCache = 4; // Couldn't load the user's SO cache + k_ItemPurgatoryResponse_Finalize_BackpackFull = 5; // Backpack was full. We may have finalized some items. +}; + +enum EItemPurgatoryResponse_Refund +{ + k_ItemPurgatoryResponse_Refund_Succeeded = 0; + k_ItemPurgatoryResponse_Refund_Failed_ItemNotInPurgatory = 1; // Item ID's sent up were not in purgatory + k_ItemPurgatoryResponse_Refund_Failed_CouldNotFindItem = 2; // One or more items do not belong to the given steam ID or were deleted, etc. + k_ItemPurgatoryResponse_Refund_Failed_NoSOCache = 3; // Couldn't load the user's SO cache + k_ItemPurgatoryResponse_Refund_Failed_NoDetail = 4; // Generic error to avoid giving the client too much detail + k_ItemPurgatoryResponse_Refund_Failed_NexonWebAPI = 5; // The Nexon WebAPI failed +}; + +// +// k_EMsgGCApplyAutograph +// +message CMsgApplyAutograph +{ + optional uint64 autograph_item_id = 1; // which autograph? + optional uint64 item_item_id = 2; // which item is getting this autograph +}; + + +// k_EMsgGCToGCPlayerStrangeCountAdjustments +// Used in the GC SQL Msg queue and in match signout +message CMsgEconPlayerStrangeCountAdjustment +{ + message CStrangeCountAdjustment + { + optional uint32 event_type = 1; + optional uint64 item_id = 2; + optional uint32 adjustment = 3; + }; + + optional uint32 account_id = 1; + repeated CStrangeCountAdjustment strange_count_adjustments = 2; +}; + + +// +// k_EMsgGCItemPurgatory_FinalizePurchase +// +message CMsgRequestItemPurgatory_FinalizePurchase +{ + repeated uint64 item_ids = 1; +}; + +// +// k_EMsgGCItemPurgatory_FinalizePurchaseResponse +// +message CMsgRequestItemPurgatory_FinalizePurchaseResponse +{ + optional uint32 result = 1; +}; + +// +// k_EMsgGCItemPurgatory_RefundPurchase +// +message CMsgRequestItemPurgatory_RefundPurchase +{ + optional uint64 item_id = 1; +}; + +// +// k_EMsgGCItemPurgatory_RefundPurchaseResponse +// +message CMsgRequestItemPurgatory_RefundPurchaseResponse +{ + optional uint32 result = 1; +}; + +message CMsgCraftingResponse +{ + repeated uint64 item_ids = 1; +}; + +// k_EMsgGCRequestStoreSalesData +message CMsgGCRequestStoreSalesData +{ + optional uint32 version = 1; // the last received version (used to identify when sales data may have changed) + optional uint32 currency = 2; // which currency we want the sales values for +}; + +// k_EMsgGCRequestStoreSalesDataResponse +message CMsgGCRequestStoreSalesDataResponse +{ + message Price + { + optional uint32 item_def = 1; + optional uint32 price = 2; + }; + repeated Price sale_price = 1; // the list of items on sale and their sale price for the requested currency + optional uint32 version = 2; // the version of this data, future sale requests should provide this value so redundant requests can be ignored + 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 +}; + +// k_EMsgGCRequestStoreSalesDataUpToDateResponse +message CMsgGCRequestStoreSalesDataUpToDateResponse +{ + optional uint32 version = 1; // the last received version (used to identify when sales data may have changed) + 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 +}; + +// k_EMsgGCToGCPingRequest +message CMsgGCToGCPingRequest +{ +}; + +// k_EMsgGCToGCPingResponse +message CMsgGCToGCPingResponse +{ +}; + +// k_EMsgGCToGCGetUserSessionServer +message CMsgGCToGCGetUserSessionServer +{ + optional uint32 account_id = 1; // the user to lookup the server information for +}; + +// k_EMsgGCToGCGetUserSessionServerResponse +message CMsgGCToGCGetUserSessionServerResponse +{ + optional fixed64 server_steam_id = 1; // zero if this user is not online or not on a server +}; + +// k_EMsgGCToGCGetUserServerMembers +message CMsgGCToGCGetUserServerMembers +{ + optional uint32 account_id = 1; // the account ID to look up the server and spectators from + optional uint32 max_spectators = 2; // do you want spectators? If so what is the limit of how many will be returned (otherwise specify zero) +}; + +// k_EMsgGCToGCGetUserServerMembersResponse +message CMsgGCToGCGetUserServerMembersResponse +{ + repeated uint32 member_account_id = 1; // the list of other server members or spectators +}; + +// k_EMsgGCLookupMultipleAccountNames +message CMsgLookupMultipleAccountNames +{ + repeated uint32 accountids = 1 [ packed=true ]; +}; + +// k_EMsgGCLookupMultipleAccountNamesResponse +message CMsgLookupMultipleAccountNamesResponse +{ + message Account + { + optional uint32 accountid = 1; + optional string persona = 2; + } + repeated Account accounts = 1; +}; + +// k_EMsgGCToGCGrantSelfMadeItemToAccount +message CMsgGCToGCGrantSelfMadeItemToAccount +{ + optional uint32 item_def_index = 1; + optional uint32 accountid = 2; +} + +// k_EMsgGCToGCThankedByNewUser +message CMsgGCToGCThankedByNewUser +{ + optional uint32 new_user_accountid = 1; // guy who did the thanking + optional uint32 thanked_user_accountid = 2; // guy who was thanked +} + +// k_EMsgGCShuffleCrateContents +message CMsgGCShuffleCrateContents +{ + optional uint64 crate_item_id = 1; + optional string user_code_string = 2; +} + +// k_EMsgGCQuestObjective_Progress +message CMsgGCQuestObjective_Progress +{ + optional uint64 quest_item_id = 1; + optional uint32 quest_attrib_index = 2; + optional uint32 delta = 3; + optional fixed64 owner_steamid = 4; +} + +// CMsgGCQuestObjective_PointsChange +message CMsgGCQuestObjective_PointsChange +{ + optional uint64 quest_item_id = 1; + optional uint32 standard_points = 2; + optional uint32 bonus_points = 3; + optional fixed64 owner_steamid = 4; + optional bool update_base_points = 5 [default = false]; +} + +// k_EMsgGCQuestComplete_Request +message CMsgGCQuestComplete_Request +{ + optional uint64 quest_item_id = 1; +} + +// k_EMsgGCQuestCompleted +message CMsgGCQuestCompleted +{ +} + +// k_EMsgGCQuestObjective_RequestLoanerItems +message CMsgGCQuestObjective_RequestLoanerItems +{ + optional uint64 quest_item_id = 1; +} + +// k_EMsgGCQuestObjective_RequestLoanerResponse +message CMsgGCQuestObjective_RequestLoanerResponse +{ +} + +// k_EMsgGCCraftCollectionUpgrader +message CMsgCraftCollectionUpgrade +{ + repeated uint64 item_id = 1; // list of item ids +}; + +// k_EMsgGCCraftHalloweenOffering +message CMsgCraftHalloweenOffering +{ + optional uint64 tool_id = 1; // tool that is invoking this call + repeated uint64 item_id = 2; // list of item ids +}; + +// k_EMsgGCCraftCommonStatClock +message CMsgCraftCommonStatClock +{ + optional uint64 tool_id = 1; // tool that is invoking this call + repeated uint64 item_id = 2; // list of item ids +}; + +// k_EMsgGCQuestDiscard_Request +message CMsgGCQuestDiscard_Request +{ + optional uint64 quest_item_id = 1; +} + +// Do not remove this comment due to a bug on the Mac OS X protobuf compiler - lol + |