1use prost::Message;
4
5#[derive(Clone, PartialEq, Message)]
7pub struct CMsgGCClient {
8 #[prost(uint32, optional, tag = "1")]
9 pub appid: Option<u32>,
10 #[prost(uint32, optional, tag = "2")]
11 pub msgtype: Option<u32>,
12 #[prost(bytes = "vec", optional, tag = "3")]
13 pub payload: Option<Vec<u8>>,
14 #[prost(fixed64, optional, tag = "4")]
15 pub steamid: Option<u64>,
16 #[prost(string, optional, tag = "5")]
17 pub gcname: Option<String>,
18 #[prost(uint32, optional, tag = "6")]
19 pub ip: Option<u32>,
20 #[prost(uint32, optional, tag = "7")]
21 pub flags: Option<u32>,
22}
23
24pub mod cmsg_gc_client {
25 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, prost::Enumeration)]
27 #[repr(i32)]
28 pub enum EFlag {
29 ValveDs = 1,
30 }
31}
32
33#[derive(Clone, PartialEq, Message)]
35pub struct CMsgGCClientHello {
36 #[prost(uint32, optional, tag = "1")]
37 pub version: Option<u32>,
38 #[prost(uint32, optional, tag = "3")]
39 pub client_session_need: Option<u32>,
40 #[prost(uint32, optional, tag = "4")]
41 pub client_launcher: Option<u32>,
42 #[prost(uint32, optional, tag = "6")]
43 pub steam_launcher: Option<u32>,
44}
45
46#[derive(Clone, PartialEq, Message)]
48pub struct CMsgClientWelcome {
49 #[prost(uint32, optional, tag = "1")]
50 pub version: Option<u32>,
51 #[prost(bytes = "vec", optional, tag = "2")]
52 pub game_data: Option<Vec<u8>>,
53 #[prost(message, repeated, tag = "3")]
54 pub outofdate_subscribed_caches: Vec<CMsgClientWelcomeOutOfDateSubscribedCache>,
55}
56
57#[derive(Clone, PartialEq, Message)]
58pub struct CMsgClientWelcomeOutOfDateSubscribedCache {
59 #[prost(message, repeated, tag = "2")]
60 pub objects: Vec<CMsgClientWelcomeOutOfDateSubscribedCacheObject>,
61}
62
63#[derive(Clone, PartialEq, Message)]
64pub struct CMsgClientWelcomeOutOfDateSubscribedCacheObject {
65 #[prost(uint32, optional, tag = "1")]
66 pub type_id: Option<u32>,
67 #[prost(bytes = "vec", repeated, tag = "2")]
68 pub object_data: Vec<Vec<u8>>,
69}
70
71#[derive(Clone, PartialEq, Message)]
73pub struct CSOEconGameAccountClient {
74 #[prost(uint32, optional, tag = "13")]
75 pub bonus_xp_usedflags: Option<u32>,
76 #[prost(uint32, optional, tag = "14")]
77 pub elevated_state: Option<u32>,
78}
79
80#[derive(Clone, PartialEq, Message)]
82pub struct CMsgGccStrike15V2MatchmakingClient2GcHello {}
83
84#[derive(Clone, PartialEq, Message)]
91pub struct PlayerRankingInfo {
92 #[prost(uint32, optional, tag = "1")]
93 pub account_id: Option<u32>,
94 #[prost(uint32, optional, tag = "2")]
95 pub rank_id: Option<u32>,
96 #[prost(uint32, optional, tag = "3")]
97 pub wins: Option<u32>,
98 #[prost(float, optional, tag = "4")]
99 pub rank_change: Option<f32>,
100 #[prost(uint32, optional, tag = "6")]
101 pub rank_type_id: Option<u32>,
102 #[prost(uint32, optional, tag = "7")]
103 pub tv_control: Option<u32>,
104}
105
106#[derive(Clone, PartialEq, Message)]
108pub struct PlayerCommendationInfo {
109 #[prost(uint32, optional, tag = "1")]
110 pub cmd_friendly: Option<u32>,
111 #[prost(uint32, optional, tag = "2")]
112 pub cmd_teaching: Option<u32>,
113 #[prost(uint32, optional, tag = "4")]
114 pub cmd_leader: Option<u32>,
115}
116
117#[derive(Clone, PartialEq, Message)]
119pub struct PlayerMedalsInfo {
120 #[prost(uint32, repeated, tag = "7")]
121 pub display_items_defidx: Vec<u32>,
122 #[prost(uint32, optional, tag = "8")]
123 pub featured_display_item_defidx: Option<u32>,
124}
125
126#[derive(Clone, PartialEq, Message)]
128pub struct GlobalStatistics {
129 #[prost(uint32, optional, tag = "1")]
130 pub players_online: Option<u32>,
131 #[prost(uint32, optional, tag = "2")]
132 pub servers_online: Option<u32>,
133 #[prost(uint32, optional, tag = "3")]
134 pub players_searching: Option<u32>,
135 #[prost(uint32, optional, tag = "4")]
136 pub servers_available: Option<u32>,
137 #[prost(uint32, optional, tag = "5")]
138 pub ongoing_matches: Option<u32>,
139 #[prost(uint32, optional, tag = "6")]
140 pub search_time_avg: Option<u32>,
141 #[prost(string, optional, tag = "8")]
142 pub main_post_url: Option<String>,
143 #[prost(uint32, optional, tag = "9")]
144 pub required_appid_version: Option<u32>,
145 #[prost(uint32, optional, tag = "10")]
146 pub pricesheet_version: Option<u32>,
147}
148
149#[derive(Clone, PartialEq, Message)]
152pub struct CMsgGccStrike15V2MatchmakingGc2ClientHello {
153 #[prost(uint32, optional, tag = "1")]
154 pub account_id: Option<u32>,
155 #[prost(message, optional, tag = "3")]
156 pub global_stats: Option<GlobalStatistics>,
157 #[prost(uint32, optional, tag = "4")]
158 pub penalty_seconds: Option<u32>,
159 #[prost(uint32, optional, tag = "5")]
160 pub penalty_reason: Option<u32>,
161 #[prost(int32, optional, tag = "6")]
162 pub vac_banned: Option<i32>,
163 #[prost(message, optional, tag = "7")]
164 pub ranking: Option<PlayerRankingInfo>,
165 #[prost(message, optional, tag = "8")]
166 pub commendation: Option<PlayerCommendationInfo>,
167 #[prost(message, optional, tag = "9")]
168 pub medals: Option<PlayerMedalsInfo>,
169 #[prost(uint32, optional, tag = "14")]
170 pub survey_vote: Option<u32>,
171 #[prost(int32, optional, tag = "17")]
172 pub player_level: Option<i32>,
173 #[prost(int32, optional, tag = "18")]
174 pub player_cur_xp: Option<i32>,
175 #[prost(int32, optional, tag = "19")]
176 pub player_xp_bonus_flags: Option<i32>,
177 #[prost(message, repeated, tag = "20")]
178 pub rankings: Vec<PlayerRankingInfo>,
179}
180
181#[derive(Clone, PartialEq, Message)]
183pub struct CMsgGccStrike15V2ClientRequestPlayersProfile {
184 #[prost(uint32, optional, tag = "1")]
185 pub account_id: Option<u32>,
186 #[prost(uint32, optional, tag = "2")]
187 pub request_level: Option<u32>,
188}
189
190#[derive(Clone, PartialEq, Message)]
192pub struct CMsgGccStrike15V2PlayersProfile {
193 #[prost(message, repeated, tag = "1")]
194 pub account_profiles: Vec<CMsgGccStrike15V2MatchmakingGc2ClientHello>,
195}