overlook-csgo 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +2 -0
  3. data/.gitignore +5 -0
  4. data/.rspec +2 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +3 -0
  7. data/Gemfile.lock +115 -0
  8. data/README.md +77 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +7 -0
  11. data/bin/setup +7 -0
  12. data/lib/overlook.rb +20 -0
  13. data/lib/overlook/bit_buffer.rb +52 -0
  14. data/lib/overlook/bit_reader.rb +64 -0
  15. data/lib/overlook/byte_reader.rb +58 -0
  16. data/lib/overlook/csgo.rb +9 -0
  17. data/lib/overlook/csgo/demo.rb +33 -0
  18. data/lib/overlook/csgo/demo/base.rb +20 -0
  19. data/lib/overlook/csgo/demo/command.rb +67 -0
  20. data/lib/overlook/csgo/demo/command_factory.rb +15 -0
  21. data/lib/overlook/csgo/demo/encrypted_data_handler.rb +16 -0
  22. data/lib/overlook/csgo/demo/game_event_list_message_handler.rb +19 -0
  23. data/lib/overlook/csgo/demo/game_event_message_handler.rb +35 -0
  24. data/lib/overlook/csgo/demo/header.rb +45 -0
  25. data/lib/overlook/csgo/demo/key_reader.rb +18 -0
  26. data/lib/overlook/csgo/demo/packet.rb +16 -0
  27. data/lib/overlook/csgo/demo/packet_factory.rb +22 -0
  28. data/lib/overlook/csgo/demo/packet_handler.rb +50 -0
  29. data/lib/overlook/csgo/demo/parser.rb +66 -0
  30. data/lib/overlook/csgo/demo/user_message_message_handler.rb +43 -0
  31. data/lib/overlook/csgo/match_info_decoder.rb +92 -0
  32. data/lib/overlook/csgo/sharecode_decoder.rb +83 -0
  33. data/lib/overlook/version.rb +3 -0
  34. data/lib/proto/.gitkeep +0 -0
  35. data/lib/proto/compiled/cstrike15_gcmessages.pb.rb +1382 -0
  36. data/lib/proto/compiled/cstrike15_usermessages.pb.rb +702 -0
  37. data/lib/proto/compiled/descriptor.pb.rb +280 -0
  38. data/lib/proto/compiled/netmessages.pb.rb +687 -0
  39. data/lib/proto/compiled/steammessages.pb.rb +798 -0
  40. data/overlook-csgo.gemspec +36 -0
  41. metadata +209 -0
@@ -0,0 +1,702 @@
1
+ ## Generated from cstrike15_usermessages.proto
2
+ require "beefcake"
3
+
4
+
5
+ module ECstrike15UserMessages
6
+ CS_UM_VGUIMenu = 1
7
+ CS_UM_Geiger = 2
8
+ CS_UM_Train = 3
9
+ CS_UM_HudText = 4
10
+ CS_UM_SayText = 5
11
+ CS_UM_SayText2 = 6
12
+ CS_UM_TextMsg = 7
13
+ CS_UM_HudMsg = 8
14
+ CS_UM_ResetHud = 9
15
+ CS_UM_GameTitle = 10
16
+ CS_UM_Shake = 12
17
+ CS_UM_Fade = 13
18
+ CS_UM_Rumble = 14
19
+ CS_UM_CloseCaption = 15
20
+ CS_UM_CloseCaptionDirect = 16
21
+ CS_UM_SendAudio = 17
22
+ CS_UM_RawAudio = 18
23
+ CS_UM_VoiceMask = 19
24
+ CS_UM_RequestState = 20
25
+ CS_UM_Damage = 21
26
+ CS_UM_RadioText = 22
27
+ CS_UM_HintText = 23
28
+ CS_UM_KeyHintText = 24
29
+ CS_UM_ProcessSpottedEntityUpdate = 25
30
+ CS_UM_ReloadEffect = 26
31
+ CS_UM_AdjustMoney = 27
32
+ CS_UM_UpdateTeamMoney = 28
33
+ CS_UM_StopSpectatorMode = 29
34
+ CS_UM_KillCam = 30
35
+ CS_UM_DesiredTimescale = 31
36
+ CS_UM_CurrentTimescale = 32
37
+ CS_UM_AchievementEvent = 33
38
+ CS_UM_MatchEndConditions = 34
39
+ CS_UM_DisconnectToLobby = 35
40
+ CS_UM_PlayerStatsUpdate = 36
41
+ CS_UM_DisplayInventory = 37
42
+ CS_UM_WarmupHasEnded = 38
43
+ CS_UM_ClientInfo = 39
44
+ CS_UM_XRankGet = 40
45
+ CS_UM_XRankUpd = 41
46
+ CS_UM_CallVoteFailed = 45
47
+ CS_UM_VoteStart = 46
48
+ CS_UM_VotePass = 47
49
+ CS_UM_VoteFailed = 48
50
+ CS_UM_VoteSetup = 49
51
+ CS_UM_ServerRankRevealAll = 50
52
+ CS_UM_SendLastKillerDamageToClient = 51
53
+ CS_UM_ServerRankUpdate = 52
54
+ CS_UM_ItemPickup = 53
55
+ CS_UM_ShowMenu = 54
56
+ CS_UM_BarTime = 55
57
+ CS_UM_AmmoDenied = 56
58
+ CS_UM_MarkAchievement = 57
59
+ CS_UM_MatchStatsUpdate = 58
60
+ CS_UM_ItemDrop = 59
61
+ CS_UM_GlowPropTurnOff = 60
62
+ CS_UM_SendPlayerItemDrops = 61
63
+ CS_UM_RoundBackupFilenames = 62
64
+ CS_UM_SendPlayerItemFound = 63
65
+ CS_UM_ReportHit = 64
66
+ CS_UM_XpUpdate = 65
67
+ CS_UM_QuestProgress = 66
68
+ end
69
+
70
+ class CCSUsrMsg_VGUIMenu
71
+ include Beefcake::Message
72
+
73
+ class Subkey
74
+ include Beefcake::Message
75
+ end
76
+ end
77
+
78
+ class CCSUsrMsg_Geiger
79
+ include Beefcake::Message
80
+ end
81
+
82
+ class CCSUsrMsg_Train
83
+ include Beefcake::Message
84
+ end
85
+
86
+ class CCSUsrMsg_HudText
87
+ include Beefcake::Message
88
+ end
89
+
90
+ class CCSUsrMsg_SayText
91
+ include Beefcake::Message
92
+ end
93
+
94
+ class CCSUsrMsg_SayText2
95
+ include Beefcake::Message
96
+ end
97
+
98
+ class CCSUsrMsg_TextMsg
99
+ include Beefcake::Message
100
+ end
101
+
102
+ class CCSUsrMsg_HudMsg
103
+ include Beefcake::Message
104
+ end
105
+
106
+ class CCSUsrMsg_Shake
107
+ include Beefcake::Message
108
+ end
109
+
110
+ class CCSUsrMsg_Fade
111
+ include Beefcake::Message
112
+ end
113
+
114
+ class CCSUsrMsg_Rumble
115
+ include Beefcake::Message
116
+ end
117
+
118
+ class CCSUsrMsg_CloseCaption
119
+ include Beefcake::Message
120
+ end
121
+
122
+ class CCSUsrMsg_CloseCaptionDirect
123
+ include Beefcake::Message
124
+ end
125
+
126
+ class CCSUsrMsg_SendAudio
127
+ include Beefcake::Message
128
+ end
129
+
130
+ class CCSUsrMsg_RawAudio
131
+ include Beefcake::Message
132
+ end
133
+
134
+ class CCSUsrMsg_VoiceMask
135
+ include Beefcake::Message
136
+
137
+ class PlayerMask
138
+ include Beefcake::Message
139
+ end
140
+ end
141
+
142
+ class CCSUsrMsg_Damage
143
+ include Beefcake::Message
144
+ end
145
+
146
+ class CCSUsrMsg_RadioText
147
+ include Beefcake::Message
148
+ end
149
+
150
+ class CCSUsrMsg_HintText
151
+ include Beefcake::Message
152
+ end
153
+
154
+ class CCSUsrMsg_KeyHintText
155
+ include Beefcake::Message
156
+ end
157
+
158
+ class CCSUsrMsg_ProcessSpottedEntityUpdate
159
+ include Beefcake::Message
160
+
161
+ class SpottedEntityUpdate
162
+ include Beefcake::Message
163
+ end
164
+ end
165
+
166
+ class CCSUsrMsg_SendPlayerItemDrops
167
+ include Beefcake::Message
168
+ end
169
+
170
+ class CCSUsrMsg_SendPlayerItemFound
171
+ include Beefcake::Message
172
+ end
173
+
174
+ class CCSUsrMsg_ReloadEffect
175
+ include Beefcake::Message
176
+ end
177
+
178
+ class CCSUsrMsg_AdjustMoney
179
+ include Beefcake::Message
180
+ end
181
+
182
+ class CCSUsrMsg_ReportHit
183
+ include Beefcake::Message
184
+ end
185
+
186
+ class CCSUsrMsg_KillCam
187
+ include Beefcake::Message
188
+ end
189
+
190
+ class CCSUsrMsg_DesiredTimescale
191
+ include Beefcake::Message
192
+ end
193
+
194
+ class CCSUsrMsg_CurrentTimescale
195
+ include Beefcake::Message
196
+ end
197
+
198
+ class CCSUsrMsg_AchievementEvent
199
+ include Beefcake::Message
200
+ end
201
+
202
+ class CCSUsrMsg_MatchEndConditions
203
+ include Beefcake::Message
204
+ end
205
+
206
+ class CCSUsrMsg_PlayerStatsUpdate
207
+ include Beefcake::Message
208
+
209
+ class Stat
210
+ include Beefcake::Message
211
+ end
212
+ end
213
+
214
+ class CCSUsrMsg_DisplayInventory
215
+ include Beefcake::Message
216
+ end
217
+
218
+ class CCSUsrMsg_QuestProgress
219
+ include Beefcake::Message
220
+ end
221
+
222
+ class CCSUsrMsg_XRankGet
223
+ include Beefcake::Message
224
+ end
225
+
226
+ class CCSUsrMsg_XRankUpd
227
+ include Beefcake::Message
228
+ end
229
+
230
+ class CCSUsrMsg_CallVoteFailed
231
+ include Beefcake::Message
232
+ end
233
+
234
+ class CCSUsrMsg_VoteStart
235
+ include Beefcake::Message
236
+ end
237
+
238
+ class CCSUsrMsg_VotePass
239
+ include Beefcake::Message
240
+ end
241
+
242
+ class CCSUsrMsg_VoteFailed
243
+ include Beefcake::Message
244
+ end
245
+
246
+ class CCSUsrMsg_VoteSetup
247
+ include Beefcake::Message
248
+ end
249
+
250
+ class CCSUsrMsg_SendLastKillerDamageToClient
251
+ include Beefcake::Message
252
+ end
253
+
254
+ class CCSUsrMsg_ServerRankUpdate
255
+ include Beefcake::Message
256
+
257
+ class RankUpdate
258
+ include Beefcake::Message
259
+ end
260
+ end
261
+
262
+ class CCSUsrMsg_XpUpdate
263
+ include Beefcake::Message
264
+ end
265
+
266
+ class CCSUsrMsg_ItemPickup
267
+ include Beefcake::Message
268
+ end
269
+
270
+ class CCSUsrMsg_ShowMenu
271
+ include Beefcake::Message
272
+ end
273
+
274
+ class CCSUsrMsg_BarTime
275
+ include Beefcake::Message
276
+ end
277
+
278
+ class CCSUsrMsg_AmmoDenied
279
+ include Beefcake::Message
280
+ end
281
+
282
+ class CCSUsrMsg_MarkAchievement
283
+ include Beefcake::Message
284
+ end
285
+
286
+ class CCSUsrMsg_MatchStatsUpdate
287
+ include Beefcake::Message
288
+ end
289
+
290
+ class CCSUsrMsg_ItemDrop
291
+ include Beefcake::Message
292
+ end
293
+
294
+ class CCSUsrMsg_GlowPropTurnOff
295
+ include Beefcake::Message
296
+ end
297
+
298
+ class CCSUsrMsg_RoundBackupFilenames
299
+ include Beefcake::Message
300
+ end
301
+
302
+ class CCSUsrMsg_ResetHud
303
+ include Beefcake::Message
304
+ end
305
+
306
+ class CCSUsrMsg_GameTitle
307
+ include Beefcake::Message
308
+ end
309
+
310
+ class CCSUsrMsg_RequestState
311
+ include Beefcake::Message
312
+ end
313
+
314
+ class CCSUsrMsg_StopSpectatorMode
315
+ include Beefcake::Message
316
+ end
317
+
318
+ class CCSUsrMsg_DisconnectToLobby
319
+ include Beefcake::Message
320
+ end
321
+
322
+ class CCSUsrMsg_WarmupHasEnded
323
+ include Beefcake::Message
324
+ end
325
+
326
+ class CCSUsrMsg_ClientInfo
327
+ include Beefcake::Message
328
+ end
329
+
330
+ class CCSUsrMsg_ServerRankRevealAll
331
+ include Beefcake::Message
332
+ end
333
+
334
+ class CCSUsrMsg_VGUIMenu
335
+
336
+ class Subkey
337
+ optional :name, :string, 1
338
+ optional :str, :string, 2
339
+ end
340
+ optional :name, :string, 1
341
+ optional :show, :bool, 2
342
+ repeated :subkeys, CCSUsrMsg_VGUIMenu::Subkey, 3
343
+ end
344
+
345
+ class CCSUsrMsg_Geiger
346
+ optional :range, :int32, 1
347
+ end
348
+
349
+ class CCSUsrMsg_Train
350
+ optional :train, :int32, 1
351
+ end
352
+
353
+ class CCSUsrMsg_HudText
354
+ optional :text, :string, 1
355
+ end
356
+
357
+ class CCSUsrMsg_SayText
358
+ optional :ent_idx, :int32, 1
359
+ optional :text, :string, 2
360
+ optional :chat, :bool, 3
361
+ optional :textallchat, :bool, 4
362
+ end
363
+
364
+ class CCSUsrMsg_SayText2
365
+ optional :ent_idx, :int32, 1
366
+ optional :chat, :bool, 2
367
+ optional :msg_name, :string, 3
368
+ repeated :params, :string, 4
369
+ optional :textallchat, :bool, 5
370
+ end
371
+
372
+ class CCSUsrMsg_TextMsg
373
+ optional :msg_dst, :int32, 1
374
+ repeated :params, :string, 3
375
+ end
376
+
377
+ class CCSUsrMsg_HudMsg
378
+ optional :channel, :int32, 1
379
+ optional :pos, CMsgVector2D, 2
380
+ optional :clr1, CMsgRGBA, 3
381
+ optional :clr2, CMsgRGBA, 4
382
+ optional :effect, :int32, 5
383
+ optional :fade_in_time, :float, 6
384
+ optional :fade_out_time, :float, 7
385
+ optional :hold_time, :float, 9
386
+ optional :fx_time, :float, 10
387
+ optional :text, :string, 11
388
+ end
389
+
390
+ class CCSUsrMsg_Shake
391
+ optional :command, :int32, 1
392
+ optional :local_amplitude, :float, 2
393
+ optional :frequency, :float, 3
394
+ optional :duration, :float, 4
395
+ end
396
+
397
+ class CCSUsrMsg_Fade
398
+ optional :duration, :int32, 1
399
+ optional :hold_time, :int32, 2
400
+ optional :flags, :int32, 3
401
+ optional :clr, CMsgRGBA, 4
402
+ end
403
+
404
+ class CCSUsrMsg_Rumble
405
+ optional :index, :int32, 1
406
+ optional :data, :int32, 2
407
+ optional :flags, :int32, 3
408
+ end
409
+
410
+ class CCSUsrMsg_CloseCaption
411
+ optional :hash, :uint32, 1
412
+ optional :duration, :int32, 2
413
+ optional :from_player, :bool, 3
414
+ end
415
+
416
+ class CCSUsrMsg_CloseCaptionDirect
417
+ optional :hash, :uint32, 1
418
+ optional :duration, :int32, 2
419
+ optional :from_player, :bool, 3
420
+ end
421
+
422
+ class CCSUsrMsg_SendAudio
423
+ optional :radio_sound, :string, 1
424
+ end
425
+
426
+ class CCSUsrMsg_RawAudio
427
+ optional :pitch, :int32, 1
428
+ optional :entidx, :int32, 2
429
+ optional :duration, :float, 3
430
+ optional :voice_filename, :string, 4
431
+ end
432
+
433
+ class CCSUsrMsg_VoiceMask
434
+
435
+ class PlayerMask
436
+ optional :game_rules_mask, :int32, 1
437
+ optional :ban_masks, :int32, 2
438
+ end
439
+ repeated :player_masks, CCSUsrMsg_VoiceMask::PlayerMask, 1
440
+ optional :player_mod_enable, :bool, 2
441
+ end
442
+
443
+ class CCSUsrMsg_Damage
444
+ optional :amount, :int32, 1
445
+ optional :inflictor_world_pos, CMsgVector, 2
446
+ end
447
+
448
+ class CCSUsrMsg_RadioText
449
+ optional :msg_dst, :int32, 1
450
+ optional :client, :int32, 2
451
+ optional :msg_name, :string, 3
452
+ repeated :params, :string, 4
453
+ end
454
+
455
+ class CCSUsrMsg_HintText
456
+ optional :text, :string, 1
457
+ end
458
+
459
+ class CCSUsrMsg_KeyHintText
460
+ repeated :hints, :string, 1
461
+ end
462
+
463
+ class CCSUsrMsg_ProcessSpottedEntityUpdate
464
+
465
+ class SpottedEntityUpdate
466
+ optional :entity_idx, :int32, 1
467
+ optional :class_id, :int32, 2
468
+ optional :origin_x, :int32, 3
469
+ optional :origin_y, :int32, 4
470
+ optional :origin_z, :int32, 5
471
+ optional :angle_y, :int32, 6
472
+ optional :defuser, :bool, 7
473
+ optional :player_has_defuser, :bool, 8
474
+ optional :player_has_c4, :bool, 9
475
+ end
476
+ optional :new_update, :bool, 1
477
+ repeated :entity_updates, CCSUsrMsg_ProcessSpottedEntityUpdate::SpottedEntityUpdate, 2
478
+ end
479
+
480
+ class CCSUsrMsg_SendPlayerItemDrops
481
+ # repeated :entity_updates, CEconItemPreviewDataBlock, 1
482
+ end
483
+
484
+ class CCSUsrMsg_SendPlayerItemFound
485
+ # optional :iteminfo, CEconItemPreviewDataBlock, 1
486
+ optional :entindex, :int32, 2
487
+ end
488
+
489
+ class CCSUsrMsg_ReloadEffect
490
+ optional :entidx, :int32, 1
491
+ optional :actanim, :int32, 2
492
+ optional :origin_x, :float, 3
493
+ optional :origin_y, :float, 4
494
+ optional :origin_z, :float, 5
495
+ end
496
+
497
+ class CCSUsrMsg_AdjustMoney
498
+ optional :amount, :int32, 1
499
+ end
500
+
501
+ class CCSUsrMsg_ReportHit
502
+ optional :pos_x, :float, 1
503
+ optional :pos_y, :float, 2
504
+ optional :timestamp, :float, 4
505
+ optional :pos_z, :float, 3
506
+ end
507
+
508
+ class CCSUsrMsg_KillCam
509
+ optional :obs_mode, :int32, 1
510
+ optional :first_target, :int32, 2
511
+ optional :second_target, :int32, 3
512
+ end
513
+
514
+ class CCSUsrMsg_DesiredTimescale
515
+ optional :desired_timescale, :float, 1
516
+ optional :duration_realtime_sec, :float, 2
517
+ optional :interpolator_type, :int32, 3
518
+ optional :start_blend_time, :float, 4
519
+ end
520
+
521
+ class CCSUsrMsg_CurrentTimescale
522
+ optional :cur_timescale, :float, 1
523
+ end
524
+
525
+ class CCSUsrMsg_AchievementEvent
526
+ optional :achievement, :int32, 1
527
+ optional :count, :int32, 2
528
+ optional :user_id, :int32, 3
529
+ end
530
+
531
+ class CCSUsrMsg_MatchEndConditions
532
+ optional :fraglimit, :int32, 1
533
+ optional :mp_maxrounds, :int32, 2
534
+ optional :mp_winlimit, :int32, 3
535
+ optional :mp_timelimit, :int32, 4
536
+ end
537
+
538
+ class CCSUsrMsg_PlayerStatsUpdate
539
+
540
+ class Stat
541
+ optional :idx, :int32, 1
542
+ optional :delta, :int32, 2
543
+ end
544
+ optional :version, :int32, 1
545
+ repeated :stats, CCSUsrMsg_PlayerStatsUpdate::Stat, 4
546
+ optional :user_id, :int32, 5
547
+ optional :crc, :int32, 6
548
+ end
549
+
550
+ class CCSUsrMsg_DisplayInventory
551
+ optional :display, :bool, 1
552
+ optional :user_id, :int32, 2
553
+ end
554
+
555
+ class CCSUsrMsg_QuestProgress
556
+ optional :quest_id, :uint32, 1
557
+ optional :normal_points, :uint32, 2
558
+ optional :bonus_points, :uint32, 3
559
+ end
560
+
561
+ class CCSUsrMsg_XRankGet
562
+ optional :mode_idx, :int32, 1
563
+ optional :controller, :int32, 2
564
+ end
565
+
566
+ class CCSUsrMsg_XRankUpd
567
+ optional :mode_idx, :int32, 1
568
+ optional :controller, :int32, 2
569
+ optional :ranking, :int32, 3
570
+ end
571
+
572
+ class CCSUsrMsg_CallVoteFailed
573
+ optional :reason, :int32, 1
574
+ optional :time, :int32, 2
575
+ end
576
+
577
+ class CCSUsrMsg_VoteStart
578
+ optional :team, :int32, 1
579
+ optional :ent_idx, :int32, 2
580
+ optional :vote_type, :int32, 3
581
+ optional :disp_str, :string, 4
582
+ optional :details_str, :string, 5
583
+ optional :other_team_str, :string, 6
584
+ optional :is_yes_no_vote, :bool, 7
585
+ end
586
+
587
+ class CCSUsrMsg_VotePass
588
+ optional :team, :int32, 1
589
+ optional :vote_type, :int32, 2
590
+ optional :disp_str, :string, 3
591
+ optional :details_str, :string, 4
592
+ end
593
+
594
+ class CCSUsrMsg_VoteFailed
595
+ optional :team, :int32, 1
596
+ optional :reason, :int32, 2
597
+ end
598
+
599
+ class CCSUsrMsg_VoteSetup
600
+ repeated :potential_issues, :string, 1
601
+ end
602
+
603
+ class CCSUsrMsg_SendLastKillerDamageToClient
604
+ optional :num_hits_given, :int32, 1
605
+ optional :damage_given, :int32, 2
606
+ optional :num_hits_taken, :int32, 3
607
+ optional :damage_taken, :int32, 4
608
+ end
609
+
610
+ class CCSUsrMsg_ServerRankUpdate
611
+
612
+ class RankUpdate
613
+ optional :account_id, :int32, 1
614
+ optional :rank_old, :int32, 2
615
+ optional :rank_new, :int32, 3
616
+ optional :num_wins, :int32, 4
617
+ optional :rank_change, :float, 5
618
+ end
619
+ repeated :rank_update, CCSUsrMsg_ServerRankUpdate::RankUpdate, 1
620
+ end
621
+
622
+ class CMsgGCCstrike15_v2_GC2ServerNotifyXPRewarded
623
+ include Beefcake::Message
624
+ end
625
+
626
+ class CCSUsrMsg_XpUpdate
627
+ optional :data, CMsgGCCstrike15_v2_GC2ServerNotifyXPRewarded, 1
628
+ end
629
+
630
+ class CCSUsrMsg_ItemPickup
631
+ optional :item, :string, 1
632
+ end
633
+
634
+ class CCSUsrMsg_ShowMenu
635
+ optional :bits_valid_slots, :int32, 1
636
+ optional :display_time, :int32, 2
637
+ optional :menu_string, :string, 3
638
+ end
639
+
640
+ class CCSUsrMsg_BarTime
641
+ optional :time, :string, 1
642
+ end
643
+
644
+ class CCSUsrMsg_AmmoDenied
645
+ optional :ammoIdx, :int32, 1
646
+ end
647
+
648
+ class CCSUsrMsg_MarkAchievement
649
+ optional :achievement, :string, 1
650
+ end
651
+
652
+ class CCSUsrMsg_MatchStatsUpdate
653
+ optional :update, :string, 1
654
+ end
655
+
656
+ class CCSUsrMsg_ItemDrop
657
+ optional :itemid, :int64, 1
658
+ optional :death, :bool, 2
659
+ end
660
+
661
+ class CCSUsrMsg_GlowPropTurnOff
662
+ optional :entidx, :int32, 1
663
+ end
664
+
665
+ class CCSUsrMsg_RoundBackupFilenames
666
+ optional :count, :int32, 1
667
+ optional :index, :int32, 2
668
+ optional :filename, :string, 3
669
+ optional :nicename, :string, 4
670
+ end
671
+
672
+ class CCSUsrMsg_ResetHud
673
+ optional :reset, :bool, 1
674
+ end
675
+
676
+ class CCSUsrMsg_GameTitle
677
+ optional :dummy, :int32, 1
678
+ end
679
+
680
+ class CCSUsrMsg_RequestState
681
+ optional :dummy, :int32, 1
682
+ end
683
+
684
+ class CCSUsrMsg_StopSpectatorMode
685
+ optional :dummy, :int32, 1
686
+ end
687
+
688
+ class CCSUsrMsg_DisconnectToLobby
689
+ optional :dummy, :int32, 1
690
+ end
691
+
692
+ class CCSUsrMsg_WarmupHasEnded
693
+ optional :dummy, :int32, 1
694
+ end
695
+
696
+ class CCSUsrMsg_ClientInfo
697
+ optional :dummy, :int32, 1
698
+ end
699
+
700
+ class CCSUsrMsg_ServerRankRevealAll
701
+ optional :seconds_till_shutdown, :int32, 1
702
+ end