diff --git a/common/netmessages.proto b/common/netmessages.proto index 5295a467..45c880e9 100644 --- a/common/netmessages.proto +++ b/common/netmessages.proto @@ -48,6 +48,7 @@ enum SVC_Messages { svc_Broadcast_Command = 74; svc_HltvFixupOperatorStatus = 75; svc_UserCmds = 76; + svc_NextMsgPredicted = 77; } enum VoiceDataFormat_t { @@ -179,6 +180,8 @@ message CCLCMsg_RequestPause { } message CCLCMsg_CmdKeyValues { + option (maximum_size_bytes) = 1500; + optional bytes data = 1; } @@ -240,6 +243,12 @@ message CMsgSource2NetworkFlowQuality { optional uint32 enginemsgs_total = 20; optional uint32 enginemsgs_sec_p95 = 21; optional uint32 enginemsgs_sec_p99 = 22; + optional uint32 netframes_total = 30; + optional uint32 netframes_dropped = 31; + optional uint32 netframes_outoforder = 32; + optional uint32 netframes_size_exceeds_mtu = 34; + optional uint32 netframes_size_p95 = 35; + optional uint32 netframes_size_p99 = 36; optional uint32 ticks_total = 40; optional uint32 ticks_good = 41; optional uint32 ticks_good_almost_late = 42; @@ -260,6 +269,15 @@ message CMsgSource2NetworkFlowQuality { optional sint32 recvmargin_p50 = 64; optional sint32 recvmargin_p75 = 65; optional sint32 recvmargin_p95 = 66; + optional uint32 netframe_jitter_p50 = 70; + optional uint32 netframe_jitter_p99 = 71; + optional uint32 interval_peakjitter_p50 = 72; + optional uint32 interval_peakjitter_p95 = 73; + optional uint32 packet_misdelivery_rate_p50_x4 = 74; + optional uint32 packet_misdelivery_rate_p95_x4 = 75; + optional uint32 net_ping_p5 = 80; + optional uint32 net_ping_p50 = 81; + optional uint32 net_ping_p95 = 82; } message CMsgSource2PerfIntervalSample { @@ -277,6 +295,8 @@ message CMsgSource2PerfIntervalSample { } message CCLCMsg_Diagnostic { + option (maximum_size_bytes) = 16384; + optional .CMsgSource2SystemSpecs system_specs = 1; optional .CMsgSource2VProfLiteReport vprof_report = 2; optional .CMsgSource2NetworkFlowQuality downstream_flow = 3; @@ -305,6 +325,8 @@ message CSource2Metrics_MatchPerfSummary_Notification { } message CSVCMsg_ServerInfo { + option (maximum_size_bytes) = 102400; + optional int32 protocol = 1; optional int32 server_count = 2; optional bool is_dedicated = 3; @@ -458,6 +480,8 @@ message CSVCMsg_GameEventList { } message CSVCMsg_PacketEntities { + option (maximum_size_bytes) = 0; + message alternate_baseline_t { optional int32 entity_index = 1; optional int32 baseline_index = 2; @@ -504,6 +528,8 @@ message CSVCMsg_TempEntities { } message CSVCMsg_CreateStringTable { + option (maximum_size_bytes) = 49152; + optional string name = 1; optional int32 num_entries = 2; optional bool user_data_fixed_size = 3; @@ -517,6 +543,8 @@ message CSVCMsg_CreateStringTable { } message CSVCMsg_UpdateStringTable { + option (maximum_size_bytes) = 262144; + optional int32 table_id = 1; optional int32 num_changed_entries = 2; optional bytes string_data = 3; @@ -615,6 +643,8 @@ message ProtoFlattenedSerializer_t { } message CSVCMsg_FlattenedSerializer { + option (maximum_size_bytes) = 0; + repeated .ProtoFlattenedSerializer_t serializers = 1; repeated string symbols = 2; repeated .ProtoFlattenedSerializerField_t fields = 3; @@ -741,3 +771,8 @@ message CMsgServerUserCmd { message CSVCMsg_UserCommands { repeated .CMsgServerUserCmd commands = 1; } + +message CSVCMsg_NextMsgPredicted { + optional int32 predicted_by_player_slot = 1 [default = -1]; + optional uint32 message_type_id = 2; +} diff --git a/common/networkbasetypes.proto b/common/networkbasetypes.proto index ed0cd4b7..07c0a6e7 100644 --- a/common/networkbasetypes.proto +++ b/common/networkbasetypes.proto @@ -1,5 +1,10 @@ +import "google/protobuf/descriptor.proto"; import "network_connection.proto"; +extend .google.protobuf.MessageOptions { + optional int32 maximum_size_bytes = 50000; +} + enum SignonState_t { SIGNONSTATE_NONE = 0; SIGNONSTATE_CHALLENGE = 1; @@ -124,6 +129,8 @@ message CNETMsg_StringCmd { } message CNETMsg_SetConVar { + option (maximum_size_bytes) = 4096; + optional .CMsg_CVars convars = 1; } @@ -163,6 +170,8 @@ message CSVCMsgList_GameEvents { } message CNETMsg_SpawnGroup_Load { + option (maximum_size_bytes) = 131072; + optional string worldname = 1; optional string entitylumpname = 2; optional string entityfiltername = 3; diff --git a/game/shared/base_gcmessages.proto b/game/shared/base_gcmessages.proto index 02f453ae..2bfa6cb4 100644 --- a/game/shared/base_gcmessages.proto +++ b/game/shared/base_gcmessages.proto @@ -31,7 +31,7 @@ enum GC_BannedWordType { message CGCStorePurchaseInit_LineItem { optional uint32 item_def_id = 1; optional uint32 quantity = 2; - optional uint32 cost_in_local_currency = 3; + optional uint64 cost_in_local_currency = 3; optional uint32 purchase_type = 4; optional uint64 supplemental_data = 5; } diff --git a/game/shared/cs/cs_gameevents.proto b/game/shared/cs/cs_gameevents.proto index f9bddd6d..e2d18157 100644 --- a/game/shared/cs/cs_gameevents.proto +++ b/game/shared/cs/cs_gameevents.proto @@ -17,6 +17,17 @@ message CMsgTERadioIcon { } message CMsgTEFireBullets { + message Extra { + optional .CMsgQAngle aim_punch = 1; + optional int32 attack_tick_count = 2; + optional float attack_tick_frac = 3; + optional int32 render_tick_count = 4; + optional float render_tick_frac = 5; + optional float inaccuracy_move = 6; + optional float inaccuracy_air = 7; + optional int32 type = 8; + } + optional .CMsgVector origin = 1; optional .CMsgQAngle angles = 2; optional uint32 weapon_id = 3 [default = 16777215]; @@ -32,4 +43,5 @@ message CMsgTEFireBullets { optional .CMsgVector ent_origin = 13; optional uint32 num_bullets_remaining = 14; optional uint32 attack_type = 15; + optional .CMsgTEFireBullets.Extra extra = 16; } diff --git a/game/shared/cstrike15/cstrike15_usermessages.proto b/game/shared/cstrike15/cstrike15_usermessages.proto index 32e7f5e5..2de6f97e 100644 --- a/game/shared/cstrike15/cstrike15_usermessages.proto +++ b/game/shared/cstrike15/cstrike15_usermessages.proto @@ -464,6 +464,8 @@ message CCSUsrMsg_SurvivalStats { } message CCSUsrMsg_EndOfMatchAllPlayersData { + option (maximum_size_bytes) = 4096; + message Accolade { optional int32 eaccolade = 1; optional float value = 2; @@ -610,6 +612,8 @@ message CCSUsrMsg_RecurringMissionSchema { } message CCSUsrMsg_SendPlayerLoadout { + option (maximum_size_bytes) = 16384; + message LoadoutItem { optional .CEconItemPreviewDataBlock econ_item = 1; optional int32 team = 2; diff --git a/game/shared/gameevents.proto b/game/shared/gameevents.proto index 5dc61401..2f5c6e86 100644 --- a/game/shared/gameevents.proto +++ b/game/shared/gameevents.proto @@ -26,6 +26,7 @@ message CMsgPlaceDecalEvent { optional .CMsgVector normal = 2; optional .CMsgVector saxis = 3; optional int32 boneindex = 4; + optional int32 triangleindex = 13; optional uint32 flags = 5; optional fixed32 color = 6; optional int32 random_seed = 7; @@ -50,6 +51,8 @@ message CMsgClearDecalsForEntityEvent { } message CMsgSource1LegacyGameEventList { + option (maximum_size_bytes) = 24576; + message key_t { optional int32 type = 1; optional string name = 2; diff --git a/game/shared/usermessages.proto b/game/shared/usermessages.proto index cea4ffb8..201f9d33 100644 --- a/game/shared/usermessages.proto +++ b/game/shared/usermessages.proto @@ -342,6 +342,8 @@ message CUserMessageCameraTransition { } message CUserMsg_ParticleManager { + option (maximum_size_bytes) = 4096; + message ReleaseParticleIndex { }