overlook-csgo 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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