Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
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.
 
 
 
 
 
 

345 lines
7.7 KiB

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: This file defines all of our over-the-wire net protocols for the
// Game Coordinator for the item system. Note that we never use types
// with undefined length (like int). Always use an explicit type
// (like int32).
//
//=============================================================================
#ifndef ITEM_GCMESSAGES_H
#define ITEM_GCMESSAGES_H
#ifdef _WIN32
#pragma once
#endif
#include "econ_gcmessages.pb.h"
#pragma pack( push, 1 )
// generic zero-length message struct
struct MsgGCEmpty_t
{
};
// k_EMsgGCSetItemPosition
struct MsgGCSetItemPosition_t
{
uint64 m_unItemID;
uint32 m_unNewPosition;
};
// k_EMsgGCCraft
struct MsgGCCraft_t
{
int16 m_nRecipeDefIndex;
uint16 m_nItemCount;
// list of m_nItemCount uint64 item IDs
};
// k_EMsgGCDelete
struct MsgGCDelete_t
{
uint64 m_unItemID;
};
// k_EMsgGCCraftResponse
struct MsgGCStandardResponse_t
{
int16 m_nResponseIndex;
uint32 m_eResponse;
};
// k_EMsgGCVerifyCacheSubscription
struct MsgGCVerifyCacheSubscription_t
{
uint64 m_ulSteamID;
};
// k_EMsgGCNameItem
struct MsgGCNameItem_t
{
uint64 m_unToolItemID; // the Nametag item
uint64 m_unSubjectItemID; // the item to be renamed
bool m_bDescription;
// Varchar: Item name
};
// k_EMsgGCNameBaseItem
struct MsgGCNameBaseItem_t
{
uint64 m_unToolItemID; // the Nametag item
uint32 m_unBaseItemDefinitionID; // the base item definition to be renamed
bool m_bDescription;
// Varchar: Item name
};
// k_EMsgGCUnlockCrate
struct MsgGCUnlockCrate_t
{
uint64 m_unToolItemID; // the crate key
uint64 m_unSubjectItemID; // the crate to be decoded
};
// k_EMsgGCPaintItem
struct MsgGCPaintItem_t
{
uint64 m_unToolItemID; // the Paint Can item
uint64 m_unSubjectItemID; // the item to be painted
};
// k_EMsgGCGiftWrapItem
struct MsgGCGiftWrapItem_t
{
uint64 m_unToolItemID; // the Gift Wrap item
uint64 m_unSubjectItemID; // the item to be wrapped
};
// k_EMsgGCDeliverGift
struct MsgGCDeliverGift_t
{
uint64 m_unGiftID;
uint64 m_ulGiverSteamID;
uint64 m_ulTargetSteamID;
};
// k_EMsgGCUnwrapGiftRequest
struct MsgGCUnwrapGiftRequest_t
{
uint64 m_unItemID;
};
// k_EMsgGCMOTDRequest
struct MsgGCMOTDRequest_t
{
RTime32 m_nLastMOTDRequest; // Time at which the client last asked for MOTDs. GC will send back all MOTDs posted since.
int16 m_eLanguage;
};
// k_EMsgGCMOTDRequestResponse
struct MsgGCMOTDRequestResponse_t
{
int16 m_nEntries;
};
// k_EMsgGCCustomizeItemTexture
struct MsgGCCustomizeItemTexture_t
{
uint64 m_unToolItemID; // the tool
uint64 m_unSubjectItemID; // the item wants the texture
uint64 m_unImageUGCHandle; // cloud ID of image file (UGCHandle_t)
};
// k_EMsgGCSetItemStyle
struct MsgGCSetItemStyle_t
{
uint64 m_unItemID;
uint8 m_iStyle;
};
// k_EMsgGCItemPreviewCheckStatus
struct MsgGCCheckItemPreviewStatus_t
{
uint32 m_unItemDefIndex;
};
// k_EMsgGCItemPreviewCheckStatusResponse
struct MsgGCItemPreviewCheckStatusResponse_t
{
uint32 m_unItemDefIndex;
uint32 m_eResponse;
RTime32 m_timePreviewTime;
};
// k_EMsgGCItemPreviewRequest
struct MsgGCItemPreviewRequest_t
{
uint32 m_unItemDefIndex;
};
// k_EMsgGCItemPreviewRequestResponse
struct MsgGCItemPreviewRequestResponse_t
{
uint32 m_unItemDefIndex;
uint32 m_eResponse;
};
// k_EMsgGCItemPreviewExpire
struct MsgGCItemPreviewExpire_t
{
};
// k_EMsgGCItemPreviewExpireNotification
struct MsgGCItemPreviewExpireNotification_t
{
uint32 m_unItemDefIndex;
};
//-----------------------------------------------------------------------------
// k_EMsgGCUseItemResponse
enum EGCMsgUseItemResponse
{
k_EGCMsgUseItemResponse_ItemUsed = 0,
k_EGCMsgUseItemResponse_GiftNoOtherPlayers = 1,
k_EGCMsgUseItemResponse_ServerError = 2,
k_EGCMsgUseItemResponse_MiniGameAlreadyStarted = 3,
k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted = 4,
k_EGCMsgUseItemResponse_CannotBeUsedByAccount = 5,
k_EGCMsgUseItemResponse_ForceSizeInt = 0x7FFFFFFF
};
// k_EMsgGCUseItemResponse
struct MsgGCUseItemResponse_t
{
uint32 m_eResponse;
};
// k_EMsgGCSpawnItem
struct MsgGCSpawnItem_t
{
uint64 m_ulInitiatorSteamID;
uint32 m_unItemDefinitionID;
// other data dynamically added:
// string of initiator name
};
// k_EMsgGCRespawnPostLoadoutChange
struct MsgGCRespawnPostLoadoutChange_t
{
uint64 m_ulInitiatorSteamID;
};
// k_EMsgGCRemoveItemName
struct MsgGCRemoveItemName_t
{
uint64 m_unItemID;
bool m_bDescription;
};
//-----------------------------------------------------------------------------
// Trading
// k_EMsgGCTrading_InitiateTradeRequest
struct MsgGCTrading_InitiateTradeRequest_t
{
uint32 m_unTradeRequestID;
uint64 m_ulOtherSteamID;
// @note player A's name as string when sent to party B
};
enum EGCMsgInitiateTradeResponse
{
k_EGCMsgInitiateTradeResponse_Accepted = 0,
k_EGCMsgInitiateTradeResponse_Declined = 1,
k_EGCMsgInitiateTradeResponse_VAC_Banned_Initiator = 2,
k_EGCMsgInitiateTradeResponse_VAC_Banned_Target = 3,
k_EGCMsgInitiateTradeResponse_Target_Already_Trading = 4,
k_EGCMsgInitiateTradeResponse_Disabled = 5,
k_EGCMsgInitiateTradeResponse_NotLoggedIn = 6,
k_EGCMsgInitiateTradeResponse_Cancel = 7,
k_EGCMsgInitiateTradeResponse_TooSoon = 8,
k_EGCMsgInitiateTradeResponse_TooSoonPenalty = 9,
k_EGCMsgInitiateTradeResponse_Trade_Banned_Initiator = 10,
k_EGCMsgInitiateTradeResponse_Trade_Banned_Target = 11,
k_EGCMsgInitiateTradeResponse_Free_Account_Initiator_DEPRECATED = 12, // free accounts can initiate trades now
k_EGCMsgInitiateTradeResponse_Shared_Account_Initiator= 13,
k_EGCMsgInitiateTradeResponse_Service_Unavailable = 14,
k_EGCMsgInitiateTradeResponse_Target_Blocked = 15,
k_EGCMsgInitiateTradeResponse_NeedVerifiedEmail = 16,
k_EGCMsgInitiateTradeResponse_NeedSteamGuard = 17,
k_EGCMsgInitiateTradeResponse_SteamGuardDuration = 18,
k_EGCMsgInitiateTradeResponse_TheyCannotTrade = 19,
k_EGCMsgInitiateTradeResponse_Recent_Password_Reset = 20,
k_EGCMsgInitiateTradeResponse_Using_New_Device = 21,
k_EGCMsgInitiateTradeResponse_Sent_Invalid_Cookie = 22,
k_EGCMsgInitiateTradeResponse_Count,
k_EGCMsgInitiateTradeResponse_ForceSizeInt = 0x7FFFFFFF
};
// k_EMsgGCTrading_InitiateTradeResponse
struct MsgGCTrading_InitiateTradeResponse_t
{
uint32 m_eResponse;
uint32 m_unTradeRequestID;
};
// k_EMsgGCTrading_StartSession
struct MsgGCTrading_StartSession_t
{
uint32 m_unSessionVersion;
uint64 m_ulSteamIDPartyA;
uint64 m_ulSteamIDPartyB;
// @note strings from player names will be added to the message
};
// k_EMsgGCTrading_CancelSession
struct MsgGCTrading_CancelSession_t
{
};
// k_EMsgGCUsedClaimCodeItem
struct MsgGCUsedClaimCodeItem_t
{
// string of URL
};
//-----------------------------------------------------------------------------
// ServerBrowser messages
enum EGCMsgServerBrowser
{
k_EGCMsgServerBrowser_FromServerBrowser = 0,
k_EGCMsgServerBrowser_FromAutoAskDialog = 1,
};
// k_EMsgGCServerBrowser_FavoriteServer
// k_EMsgGCServerBrowser_BlacklistServer
struct MsgGCServerBrowser_Server_t
{
uint32 m_unIP;
int m_usPort;
uint8 m_ubSource; // 0=serverbrowser, 1=auto-ask dialog
};
//-----------------------------------------------------------------------------
// Public facing loot lists.
// k_EMsgGC_RevolvingLootList
struct MsgGC_RevolvingLootList_t
{
uint8 m_usListID; // Id of this list.
// Var Data:
// Serialized Lootlist KV
};
// k_EMsgGCLookupAccount
struct MsgGCLookupAccount_t
{
uint16 m_uiFindType;
// Var Data
// string containing Persona / URL / etc
};
// k_EMsgGCLookupAccountName
struct MsgGCLookupAccountName_t
{
uint32 m_unAccountID;
};
// k_EMsgGCLookupAccountNameResponse
struct MsgGCLookupAccountNameResponse_t
{
uint32 m_unAccountID;
// string containing persona name
};
#pragma pack( pop )
#endif