-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy pathdota_gcmessages_common_match_management.proto
768 lines (726 loc) · 31.7 KB
/
dota_gcmessages_common_match_management.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
syntax = "proto2";
package dota;
import "steammessages.proto";
import "gcsdk_gcmessages.proto";
import "dota_shared_enums.proto";
import "dota_gcmessages_common.proto";
option optimize_for = SPEED;
option py_generic_services = false;
enum ELaneSelection {
k_ELaneSelection_SAFELANE = 0;
k_ELaneSelection_OFFLANE = 1;
k_ELaneSelection_MIDLANE = 2;
k_ELaneSelection_SUPPORT_SOFT = 3;
k_ELaneSelection_SUPPORT_HARD = 4;
}
enum ELaneSelectionFlags {
k_ELaneSelectionFlags_None = 0;
k_ELaneSelectionFlags_SAFELANE = 1;
k_ELaneSelectionFlags_OFFLANE = 2;
k_ELaneSelectionFlags_MIDLANE = 4;
k_ELaneSelectionFlags_CORE = 7;
k_ELaneSelectionFlags_SUPPORT_SOFT = 8;
k_ELaneSelectionFlags_SUPPORT_HARD = 16;
k_ELaneSelectionFlags_SUPPORT = 24;
k_ELaneSelectionFlags_ALL = 31;
}
enum EPartyMatchmakingFlags {
k_EPartyMatchmakingFlags_None = 0;
k_EPartyMatchmakingFlags_LargeRankSpread = 1;
}
enum EHighPriorityMMState {
k_EHighPriorityMM_Unknown = 0;
k_EHighPriorityMM_MissingMMData = 1;
k_EHighPriorityMM_ResourceMissing = 2;
k_EHighPriorityMM_ManuallyDisabled = 3;
k_EHighPriorityMM_Min_Enabled = 64;
k_EHighPriorityMM_AllRolesSelected = 65;
k_EHighPriorityMM_UsingResource = 66;
k_EHighPriorityMM_FiveStack = 67;
k_EHighPriorityMM_HighDemand = 68;
}
enum ELobbyMemberCoachRequestState {
k_eLobbyMemberCoachRequestState_None = 0;
k_eLobbyMemberCoachRequestState_Accepted = 1;
k_eLobbyMemberCoachRequestState_Rejected = 2;
}
enum LobbyDotaTVDelay {
LobbyDotaTV_10 = 0;
LobbyDotaTV_120 = 1;
LobbyDotaTV_300 = 2;
LobbyDotaTV_900 = 3;
}
enum LobbyDotaPauseSetting {
LobbyDotaPauseSetting_Unlimited = 0;
LobbyDotaPauseSetting_Limited = 1;
LobbyDotaPauseSetting_Disabled = 2;
}
enum EReadyCheckStatus {
k_EReadyCheckStatus_Unknown = 0;
k_EReadyCheckStatus_NotReady = 1;
k_EReadyCheckStatus_Ready = 2;
}
enum EReadyCheckRequestResult {
k_EReadyCheckRequestResult_Success = 0;
k_EReadyCheckRequestResult_AlreadyInProgress = 1;
k_EReadyCheckRequestResult_NotInParty = 2;
k_EReadyCheckRequestResult_SendError = 3;
k_EReadyCheckRequestResult_UnknownError = 4;
}
enum EMatchBehaviorScoreVariance {
k_EMatchBehaviorScoreVariance_Invalid = 0;
k_EMatchBehaviorScoreVariance_Low = 1;
k_EMatchBehaviorScoreVariance_Medium = 2;
k_EMatchBehaviorScoreVariance_High = 3;
}
message CSODOTAPartyMember {
optional dota.PartnerAccountType partner_type = 1 [default = PARTNER_NONE];
optional bool is_coach = 2;
repeated uint32 region_ping_codes = 4 [packed = true];
repeated uint32 region_ping_times = 5 [packed = true];
optional uint32 region_ping_failed_bitmask = 6;
optional bool is_plus_subscriber = 10;
optional uint32 tourney_skill_level = 7;
optional uint32 tourney_buyin = 8;
optional uint32 tourney_prevent_until = 9;
optional bool mm_data_valid = 13;
optional uint32 lane_selection_flags = 11;
optional bool high_priority_disabled = 14;
optional bool has_hp_resource = 15;
optional bool joined_from_partyfinder = 12;
}
message CSODOTAParty {
enum State {
UI = 0;
FINDING_MATCH = 1;
IN_MATCH = 2;
}
optional uint64 party_id = 1 [(key_field) = true];
optional fixed64 leader_id = 2;
repeated fixed64 member_ids = 3;
optional uint32 game_modes = 4;
optional dota.CSODOTAParty.State state = 6 [default = UI];
optional uint32 effective_started_matchmaking_time = 7;
optional uint32 raw_started_matchmaking_time = 32;
optional uint32 attempt_start_time = 33;
optional uint32 attempt_num = 34;
optional uint32 matchgroups = 11;
optional uint32 low_priority_account_id = 19;
optional dota.MatchType match_type = 21 [default = MATCH_TYPE_CASUAL];
optional dota.DOTABotDifficulty bot_difficulty = 22 [default = BOT_DIFFICULTY_PASSIVE];
optional uint32 team_id = 23;
optional string team_name = 51;
optional uint64 team_ui_logo = 52;
optional uint64 team_base_logo = 53;
optional uint32 match_disabled_until_date = 24;
optional uint32 match_disabled_account_id = 25;
optional uint32 matchmaking_max_range_minutes = 26;
optional uint32 matchlanguages = 27;
repeated dota.CSODOTAPartyMember members = 29;
optional uint32 low_priority_games_remaining = 35;
optional bool open_for_join_requests = 40;
repeated dota.CSODOTAPartyInvite sent_invites = 41;
repeated dota.CSODOTAPartyInvite recv_invites = 42;
optional uint32 account_flags = 43;
optional uint32 region_select_flags = 44;
optional uint32 exclusive_tournament_id = 45;
optional uint32 tourney_division_id = 47;
optional uint32 tourney_schedule_time = 48;
optional uint32 tourney_skill_level = 49;
optional uint32 tourney_bracket_round = 50;
optional uint32 tourney_queue_deadline_time = 54;
optional dota.ETourneyQueueDeadlineState tourney_queue_deadline_state = 55 [default = k_ETourneyQueueDeadlineState_Normal];
optional uint32 party_builder_slots_to_fill = 56;
optional uint32 party_builder_match_groups = 57;
optional uint32 party_builder_start_time = 58;
optional bool solo_queue = 59;
optional uint32 bot_script_index = 60;
optional uint32 steam_clan_account_id = 61;
optional dota.CMsgReadyCheckStatus ready_check = 62;
optional uint32 custom_game_disabled_until_date = 63;
optional uint32 custom_game_disabled_account_id = 64;
optional bool is_challenge_match = 65;
optional bool party_search_beacon_active = 66;
optional uint32 matchmaking_flags = 67;
optional dota.EHighPriorityMMState high_priority_state = 68 [default = k_EHighPriorityMM_Unknown];
optional bool lane_selections_enabled = 69;
optional uint32 custom_game_difficulty_mask = 70;
}
message CSODOTAPartyInvite {
message PartyMember {
optional string name = 1;
optional fixed64 steam_id = 2;
optional bool is_coach = 4;
}
optional uint64 group_id = 1 [(key_field) = true];
optional fixed64 sender_id = 2;
optional string sender_name = 3;
repeated dota.CSODOTAPartyInvite.PartyMember members = 4;
optional uint32 team_id = 5;
optional bool low_priority_status = 6;
optional bool as_coach = 7;
optional fixed64 invite_gid = 8;
}
message CSODOTALobbyInvite {
message LobbyMember {
optional string name = 1;
optional fixed64 steam_id = 2;
}
optional uint64 group_id = 1 [(key_field) = true];
optional fixed64 sender_id = 2;
optional string sender_name = 3;
repeated dota.CSODOTALobbyInvite.LobbyMember members = 4;
optional uint64 custom_game_id = 5;
optional fixed64 invite_gid = 6;
optional fixed64 custom_game_crc = 7;
optional fixed32 custom_game_timestamp = 8;
}
message CMsgLeaverState {
optional uint32 lobby_state = 1;
optional dota.DOTA_GameState game_state = 2 [default = DOTA_GAMERULES_STATE_INIT];
optional bool leaver_detected = 3;
optional bool first_blood_happened = 4;
optional bool discard_match_results = 5;
optional bool mass_disconnect = 6;
}
message CMsgLobbyCoachFriendRequest {
optional uint32 coach_account_id = 1;
optional uint32 player_account_id = 2;
optional dota.ELobbyMemberCoachRequestState request_state = 3 [default = k_eLobbyMemberCoachRequestState_None];
}
message CSODOTALobbyMember {
optional fixed64 id = 1 [(key_field) = true];
optional uint32 hero_id = 2;
optional dota.DOTA_GC_TEAM team = 3 [default = DOTA_GC_TEAM_GOOD_GUYS];
optional string name = 6;
optional uint32 slot = 7;
optional uint64 party_id = 12;
optional uint32 meta_level = 13;
optional uint32 meta_xp = 14;
optional uint32 meta_xp_awarded = 15;
optional dota.DOTALeaverStatus_t leaver_status = 16 [default = DOTA_LEAVER_NONE];
optional uint32 leaver_actions = 28;
optional uint32 channel = 17 [default = 6];
repeated uint32 disabled_hero_id = 20;
optional dota.PartnerAccountType partner_account_type = 21 [default = PARTNER_NONE];
repeated uint32 enabled_hero_id = 22;
optional dota.DOTA_GC_TEAM coach_team = 23 [default = DOTA_GC_TEAM_NOTEAM];
repeated uint32 coached_account_ids = 53;
optional uint32 coach_rating = 42;
optional uint32 pwrd_cyber_cafe_id = 24;
optional string pwrd_cyber_cafe_name = 25;
repeated fixed32 disabled_random_hero_bits = 41;
optional sint32 rank_change = 29;
optional bool cameraman = 30;
repeated uint32 custom_game_product_ids = 31;
optional dota.MatchType search_match_type = 33 [default = MATCH_TYPE_CASUAL];
optional uint64 favorite_team_packed = 35;
optional bool is_plus_subscriber = 36;
optional bool rank_tier_updated = 37;
optional uint32 lane_selection_flags = 38;
optional bool can_earn_rewards = 39;
optional dota.DOTA_GC_TEAM live_spectator_team = 40 [default = DOTA_GC_TEAM_NOTEAM];
optional bool was_mvp_last_game = 43;
repeated dota.CMsgPendingEventAward pending_awards = 44;
repeated dota.CMsgPendingEventAward pending_awards_on_victory = 45;
optional dota.EDOTAMMRBoostType rank_mmr_boost_type = 46 [default = k_EDOTAMMRBoostType_None];
optional sint32 queue_point_adjustment = 47;
optional int32 rank_tier = 48;
optional uint32 title = 50;
optional uint32 guild_id = 51;
optional uint32 reports_available = 52;
}
message CLobbyTeamDetails {
optional string team_name = 1;
optional string team_tag = 3;
optional uint32 team_id = 4;
optional uint64 team_logo = 5;
optional uint64 team_base_logo = 6;
optional uint64 team_banner_logo = 7;
optional bool team_complete = 8;
optional uint32 rank = 15;
optional sint32 rank_change = 16;
optional bool is_home_team = 17;
optional bool is_challenge_match = 18;
optional uint64 challenge_match_token_account = 19;
optional string team_logo_url = 20;
optional string team_abbreviation = 21;
}
message CLobbyGuildDetails {
optional uint32 guild_id = 1;
optional uint32 guild_primary_color = 2;
optional uint32 guild_secondary_color = 3;
optional uint32 guild_pattern = 4;
optional uint64 guild_logo = 5;
optional uint32 guild_points = 6;
optional uint32 guild_event = 7;
optional uint32 guild_flags = 8;
optional dota.DOTA_GC_TEAM team_for_guild = 9 [default = DOTA_GC_TEAM_GOOD_GUYS];
optional string guild_tag = 10;
optional uint32 guild_weekly_percentile = 11;
}
message CLobbyTimedRewardDetails {
optional uint32 item_def_index = 2;
optional bool is_supply_crate = 3;
optional bool is_timed_drop = 4;
optional uint32 account_id = 5;
optional uint32 origin = 6;
}
message CLobbyBroadcastChannelInfo {
optional uint32 channel_id = 1;
optional string country_code = 2;
optional string description = 3;
optional string language_code = 4;
}
message CLobbyGuildChallenge {
optional uint32 guild_id = 1;
optional dota.EEvent event_id = 2 [default = EVENT_ID_NONE];
optional uint32 challenge_instance_id = 3;
optional uint32 challenge_parameter = 4;
optional uint32 challenge_timestamp = 5;
optional uint32 challenge_period_serial = 6;
optional uint32 challenge_progress_at_start = 7;
repeated uint32 eligible_account_ids = 8;
}
message CSODOTALobby {
message CExtraMsg {
optional uint32 id = 1;
optional bytes contents = 2;
}
enum State {
UI = 0;
READYUP = 4;
SERVERSETUP = 1;
RUN = 2;
POSTGAME = 3;
NOTREADY = 5;
SERVERASSIGN = 6;
}
enum LobbyType {
INVALID = -1;
CASUAL_MATCH = 0;
PRACTICE = 1;
COOP_BOT_MATCH = 4;
LEGACY_TEAM_MATCH = 5;
LEGACY_SOLO_QUEUE_MATCH = 6;
COMPETITIVE_MATCH = 7;
CASUAL_1V1_MATCH = 8;
WEEKEND_TOURNEY = 9;
LOCAL_BOT_MATCH = 10;
SPECTATOR = 11;
EVENT_MATCH = 12;
GAUNTLET = 13;
NEW_PLAYER_POOL = 14;
}
optional uint64 lobby_id = 1 [(key_field) = true];
repeated dota.CSODOTALobbyMember v2_members = 2;
repeated dota.CSODOTALobbyMember v2_left_members = 7;
repeated dota.CSODOTALobbyMember all_members = 120;
repeated uint32 member_indices = 121;
repeated uint32 left_member_indices = 122;
repeated uint32 free_member_indices = 123;
optional fixed64 leader_id = 11;
optional fixed64 server_id = 6 [default = 0];
optional uint32 game_mode = 3;
repeated fixed64 pending_invites = 10;
optional dota.CSODOTALobby.State state = 4 [default = UI];
optional string connect = 5;
optional dota.CSODOTALobby.LobbyType lobby_type = 12 [default = INVALID];
optional bool allow_cheats = 13;
optional bool fill_with_bots = 14;
optional bool intro_mode = 15;
optional string game_name = 16;
repeated dota.CLobbyTeamDetails team_details = 17;
optional uint32 tutorial_lesson = 18;
optional uint32 tournament_id = 19;
optional uint32 tournament_game_id = 20;
optional uint32 server_region = 21 [default = 0];
optional dota.DOTA_GameState game_state = 22 [default = DOTA_GAMERULES_STATE_INIT];
optional uint32 num_spectators = 23;
optional uint32 matchgroup = 25;
optional dota.DOTA_CM_PICK cm_pick = 28 [default = DOTA_CM_RANDOM];
optional uint64 match_id = 30;
optional bool allow_spectating = 31 [default = true];
optional dota.DOTABotDifficulty bot_difficulty_radiant = 36 [default = BOT_DIFFICULTY_HARD];
optional dota.DOTAGameVersion game_version = 37 [default = GAME_VERSION_CURRENT];
repeated dota.CLobbyTimedRewardDetails timed_reward_details = 38;
optional string pass_key = 39;
optional uint32 leagueid = 42;
optional uint32 penalty_level_radiant = 43 [default = 0];
optional uint32 penalty_level_dire = 44 [default = 0];
optional uint32 load_game_id = 45;
optional uint32 series_type = 46;
optional uint32 radiant_series_wins = 47;
optional uint32 dire_series_wins = 48;
optional uint32 loot_generated = 49;
optional uint32 loot_awarded = 50;
optional bool allchat = 51 [default = false];
optional dota.LobbyDotaTVDelay dota_tv_delay = 53 [default = LobbyDotaTV_10];
optional string custom_game_mode = 54;
optional string custom_map_name = 55;
optional uint32 custom_difficulty = 56;
optional bool lan = 57;
repeated dota.CLobbyBroadcastChannelInfo broadcast_channel_info = 58;
optional uint32 first_leaver_accountid = 59;
optional uint32 series_id = 60;
optional bool low_priority = 61;
repeated dota.CSODOTALobby.CExtraMsg extra_messages = 62;
optional dota.CDOTASaveGame save_game = 63;
optional bool first_blood_happened = 65;
optional dota.EMatchOutcome match_outcome = 70 [default = k_EMatchOutcome_Unknown];
optional bool mass_disconnect = 67;
optional uint64 custom_game_id = 68;
optional uint32 custom_min_players = 71;
optional uint32 custom_max_players = 72;
optional dota.PartnerAccountType partner_type = 73 [default = PARTNER_NONE];
optional dota.DOTALobbyVisibility visibility = 75 [default = DOTALobbyVisibility_Public];
optional fixed64 custom_game_crc = 76;
optional bool custom_game_auto_created_lobby = 77;
optional fixed32 custom_game_timestamp = 80;
repeated uint64 previous_series_matches = 81;
optional uint64 previous_match_override = 82;
optional bool custom_game_uses_account_records = 83;
optional uint32 game_start_time = 87;
optional dota.LobbyDotaPauseSetting pause_setting = 88 [default = LobbyDotaPauseSetting_Unlimited];
optional uint32 lobby_mvp_account_id = 89;
optional uint32 weekend_tourney_division_id = 90;
optional uint32 weekend_tourney_skill_level = 91;
optional uint32 weekend_tourney_bracket_round = 92;
optional dota.DOTABotDifficulty bot_difficulty_dire = 93 [default = BOT_DIFFICULTY_HARD];
optional uint64 bot_radiant = 94;
optional uint64 bot_dire = 95;
repeated dota.EEvent event_progression_enabled = 96;
optional dota.DOTASelectionPriorityRules selection_priority_rules = 97 [default = k_DOTASelectionPriorityRules_Manual];
optional uint32 series_previous_selection_priority_team_id = 98;
optional uint32 series_current_selection_priority_team_id = 99;
optional dota.DOTASelectionPriorityChoice series_current_priority_team_choice = 100 [default = k_DOTASelectionPriorityChoice_Invalid];
optional dota.DOTASelectionPriorityChoice series_current_non_priority_team_choice = 101 [default = k_DOTASelectionPriorityChoice_Invalid];
optional bool series_current_selection_priority_used_coin_toss = 102;
optional dota.EEvent current_primary_event = 103 [default = EVENT_ID_NONE];
repeated uint32 emergency_disabled_hero_ids = 105;
optional fixed64 custom_game_private_key = 106;
optional bool custom_game_penalties = 107;
optional string lan_host_ping_location = 109;
optional uint32 league_node_id = 110;
optional uint32 match_duration = 111;
optional bool custom_game_browseable = 112;
optional uint32 league_phase = 113;
optional bool record_detailed_stats = 114;
optional bool experimental_gameplay_enabled = 116;
repeated dota.CLobbyGuildChallenge guild_challenges = 117;
repeated dota.CLobbyGuildDetails guild_details = 118;
repeated dota.CMsgLobbyEventPoints lobby_event_points = 119;
repeated uint32 requested_hero_ids = 124;
repeated dota.CMsgLobbyCoachFriendRequest coach_friend_requests = 125;
}
message CMsgLobbyPlaytestDetails {
optional string json = 1;
}
message CMsgReadyCheckStatus {
message ReadyMember {
optional uint32 account_id = 1;
optional dota.EReadyCheckStatus ready_status = 2 [default = k_EReadyCheckStatus_Unknown];
}
optional uint32 start_timestamp = 1;
optional uint32 finish_timestamp = 2;
optional uint32 initiator_account_id = 3;
repeated dota.CMsgReadyCheckStatus.ReadyMember ready_members = 4;
}
message CMsgPartyReadyCheckRequest {
}
message CMsgPartyReadyCheckResponse {
optional dota.EReadyCheckRequestResult result = 1 [default = k_EReadyCheckRequestResult_Success];
}
message CMsgPartyReadyCheckAcknowledge {
optional dota.EReadyCheckStatus ready_status = 1 [default = k_EReadyCheckStatus_Unknown];
}
message CMsgLobbyEventGameDetails {
optional bytes kv_data = 1;
}
message CMsgMatchMatchmakingStats {
optional uint32 average_queue_time = 1;
optional uint32 maximum_queue_time = 2;
optional dota.EMatchBehaviorScoreVariance behavior_score_variance = 3 [default = k_EMatchBehaviorScoreVariance_Invalid];
}
message CMvpData {
message MvpDatum {
message MvpAccolade {
enum MvpAccoladeType {
kills = 1;
deaths = 2;
assists = 3;
net_worth = 5;
item_value = 6;
support_gold_spent = 7;
wards_placed = 8;
dewards = 9;
camps_stacked = 10;
last_hits = 11;
denies = 12;
kKillEaterEvent_Killing_Sprees = 13;
kKillEaterEvent_Godlike = 14;
kKillEaterEvent_Towers_Destroyed = 15;
kKillEaterEventType_Invoker_SunstrikeKills = 16;
kKillEaterEventType_Axe_Culls = 17;
kKillEaterEventType_Axe_BattleHungerKills = 18;
kKillEaterEventType_LowHealthKills = 19;
kKillEaterEventType_Invoker_TornadoKills = 20;
kKillEaterEventType_Sven_DoubleStuns = 21;
kKillEaterEventType_Sven_WarcryAssists = 22;
kKillEaterEventType_Sven_CleaveDoubleKills = 23;
kKillEaterEventType_Sven_TeleportInterrupts = 24;
kKillEaterEventType_Faceless_MultiChrono = 25;
kKillEaterEventType_Faceless_ChronoKills = 26;
kKillEaterEventType_Ursa_MultiShocks = 27;
kKillEaterEventType_RoshanKills = 28;
kKillEaterEventType_Lion_FingerKills = 29;
kKillEaterEventType_Riki_SmokedHeroKills = 32;
kKillEaterEventType_HeroesRevealedWithDust = 33;
kKillEaterEventType_SkeletonKing_ReincarnationKills = 34;
kKillEaterEventType_Skywrath_FlareKills = 35;
kKillEaterEventType_Leshrac_SplitEarthStuns = 36;
kKillEaterEventType_Mirana_MaxStunArrows = 37;
kKillEaterEventType_PhantomAssassin_CoupdeGraceCrits = 38;
kKillEaterEventType_PhantomAssassin_DaggerCrits = 39;
kKillEaterEventType_Meepo_Earthbinds = 40;
kKillEaterEventType_Bloodseeker_RuptureKills = 41;
kKillEaterEventType_Slark_LeashedEnemies = 42;
kKillEaterEventType_Disruptor_FountainGlimpses = 43;
kKillEaterEventType_Rubick_SpellsStolen = 44;
kKillEaterEventType_Rubick_UltimatesStolen = 45;
kKillEaterEventType_Doom_EnemiesDoomed = 46;
kKillEaterEventType_Omniknight_Purifications = 47;
kKillEaterEventType_Omniknight_AlliesRepelled = 48;
kKillEaterEventType_Omniknight_EnemiesRepelled = 49;
kKillEaterEventType_Warlock_FiveHeroFatalBonds = 50;
kKillEaterEventType_CrystalMaiden_FrostbittenEnemies = 51;
kKillEaterEventType_CrystalMaiden_CrystalNovas = 52;
kKillEaterEventType_Kunkka_DoubleHeroTorrents = 53;
kKillEaterEventType_Kunkka_TripleHeroGhostShips = 54;
kKillEaterEventType_NagaSiren_EnemiesEnsnared = 55;
kKillEaterEventType_NagaSiren_TripleHeroRipTides = 56;
kKillEaterEventType_Lycan_KillsDuringShapeshift = 57;
kKillEaterEventType_Pudge_DismemberKills = 58;
kKillEaterEventType_Pudge_EnemyHeroesHooked = 59;
kKillEaterEventType_Pudge_HookKills = 60;
kKillEaterEventType_Pudge_UnseenEnemyHeroesHooked = 61;
kKillEaterEventType_DrowRanger_EnemiesSilenced = 62;
kKillEaterEventType_DrowRanger_MultiHeroSilences = 63;
kKillEaterEventType_DrowRanger_SilencedKills = 64;
kKillEaterEventType_DrowRanger_FrostArrowKills = 65;
kKillEaterEventType_DragonKnight_KillsInDragonForm = 66;
kKillEaterEventType_DragonKnight_BreatheFireKills = 67;
kKillEaterEventType_DragonKnight_SplashKills = 68;
kKillEaterEventType_WitchDoctor_CaskStuns = 69;
kKillEaterEventType_WitchDoctor_MaledictKills = 70;
kKillEaterEventType_WitchDoctor_MultiHeroMaledicts = 71;
kKillEaterEventType_WitchDoctor_DeathWardKills = 72;
kKillEaterEventType_Disruptor_ThunderStrikeKills = 73;
kKillEaterEventType_Disruptor_HeroesGlimpsed = 74;
kKillEaterEventType_CrystalMaiden_FreezingFieldKills = 75;
kKillEaterEventType_Medusa_EnemiesPetrified = 77;
kKillEaterEventType_Warlock_FatalBondsKills = 78;
kKillEaterEventType_Warlock_GolemKills = 79;
kKillEaterEventType_Tusk_WalrusPunches = 80;
kKillEaterEventType_Tusk_SnowballStuns = 81;
kKillEaterEventType_Earthshaker_FissureStuns = 82;
kKillEaterEventType_Earthshaker_3HeroEchoslams = 83;
kKillEaterEventType_SandKing_BurrowstrikeStuns = 84;
kKillEaterEventType_SandKing_EpicenterKills = 85;
kKillEaterEventType_SkywrathMage_AncientSealKills = 86;
kKillEaterEventType_SkywrathMage_ConcussiveShotKills = 87;
kKillEaterEventType_Luna_LucentBeamKills = 88;
kKillEaterEventType_Luna_EclipseKills = 89;
kKillEaterEventType_KeeperOfTheLight_IlluminateKills = 90;
kKillEaterEventType_KeeperOfTheLight_ManaLeakStuns = 91;
kKillEaterEventType_KeeperOfTheLight_TeammatesRecalled = 92;
kKillEaterEventType_LegionCommander_DuelsWon = 93;
kKillEaterEventType_Beastmaster_RoarKills = 94;
kKillEaterEventType_Beastmaster_RoarMultiKills = 95;
kKillEaterEventType_Windrunner_FocusFireBuildings = 96;
kKillEaterEventType_Windrunner_PowershotKills = 97;
kKillEaterEventType_PhantomAssassin_DaggerLastHits = 98;
kKillEaterEventType_PhantomAssassin_PhantomStrikeKills = 99;
kKillEaterEventType_DeathProphet_CryptSwarmKills = 100;
kKillEaterEventType_DeathProphet_ExorcismBuildingKills = 101;
kKillEaterEventType_DeathProphet_ExorcismSpiritsSummoned = 102;
kKillEaterEventType_DeathProphet_MultiHeroSilences = 103;
kKillEaterEventType_Abaddon_MistCoilKills = 104;
kKillEaterEventType_Abaddon_MistCoilHealed = 105;
kKillEaterEventType_Abaddon_AphoticShieldKills = 106;
kKillEaterEventType_Lich_ChainFrostTripleKills = 107;
kKillEaterEventType_Lich_ChainFrostMultiKills = 108;
kKillEaterEventType_Lich_ChainFrostBounces = 109;
kKillEaterEventType_Ursa_EnragedKills = 110;
kKillEaterEventType_Ursa_EarthshockKills = 111;
kKillEaterEventType_Lina_LagunaBladeKills = 112;
kKillEaterEventType_Lina_DragonSlaveKills = 113;
kKillEaterEventType_Lina_LightStrikeArrayStuns = 114;
kKillEaterEvent_Barracks_Destroyed = 115;
kKillEaterEvent_TemplarAssassin_MeldKills = 116;
kKillEaterEvent_TemplarAssassin_HeroesSlowed = 117;
kKillEaterEvent_Sniper_AssassinationKills = 118;
kKillEaterEvent_Sniper_HeadshotStuns = 119;
kKillEaterEvent_EarthSpirit_SmashStuns = 120;
kKillEaterEvent_EarthSpirit_GripSilences = 121;
kKillEaterEvent_ShadowShaman_ShackleKills = 122;
kKillEaterEvent_ShadowShaman_HexKills = 123;
kKillEaterEvent_Centaur_EnemiesStomped = 124;
kKillEaterEvent_Centaur_DoubleEdgeKills = 125;
kKillEaterEvent_Centaur_ReturnKills = 126;
kKillEaterEvent_EmberSpirit_EnemiesChained = 127;
kKillEaterEvent_EmberSpirit_SleightOfFistMultiKills = 128;
kKillEaterEvent_Puck_OrbKills = 129;
kKillEaterEvent_VengefulSpirit_EnemiesStunned = 130;
kKillEaterEvent_Lifestealer_RageKills = 131;
kKillEaterEvent_Lifestealer_OpenWoundsKills = 132;
kKillEaterEvent_Lifestealer_InfestKills = 133;
kKillEaterEvent_ElderTitan_SpiritKills = 134;
kKillEaterEvent_ElderTitan_GoodStomps = 135;
kKillEaterEvent_Clockwerk_RocketKills = 136;
kKillEaterEvent_Clockwerk_BlindRocketKills = 137;
kKillEaterEvent_StormSpirit_BallKills = 138;
kKillEaterEvent_StormSpirit_DoubleRemnantKills = 139;
kKillEaterEvent_StormSpirit_VortexKills = 140;
kKillEaterEvent_Tinker_DoubleMissileKills = 141;
kKillEaterEvent_Tinker_LaserKills = 142;
kKillEaterEvent_Techies_SuicideKills = 143;
kKillEaterEvent_Techies_LandMineKills = 144;
kKillEaterEvent_Techies_StatisTrapStuns = 145;
kKillEaterEvent_Techies_RemoteMineKills = 146;
kKillEaterEvent_ShadowFiend_TripleRazeKills = 147;
kKillEaterEvent_ShadowFiend_RequiemMultiKills = 148;
kKillEaterEvent_ShadowFiend_QRazeKills = 149;
kKillEaterEvent_ShadowFiend_WRazeKills = 150;
kKillEaterEvent_ShadowFiend_ERazeKills = 151;
kKillEaterEvent_Oracle_FatesEdictKills = 152;
kKillEaterEvent_Oracle_FalsePromiseSaves = 153;
kKillEaterEvent_Juggernaut_OmnislashKills = 154;
kKillEaterEventType_SkeletonKing_SkeletonHeroKills = 157;
kKillEaterEventType_DarkWillow_CursedCrownTripleStuns = 158;
kKillEaterEventType_Dazzle_ShallowGraveSaves = 159;
kKillEaterEventType_Dazzle_PoisonTouchKills = 160;
kKillEaterEventType_ThreeManMeks = 161;
kKillEaterEventType_Viper_PoisonAttackKills = 162;
kKillEaterEventType_Viper_CorrosiveSkinKills = 163;
kKillEaterEventType_ThreeHeroVeils = 164;
kKillEaterEventType_Viper_KillsDuringViperStrike = 165;
kKillEaterEventType_SolarCrestKills = 166;
kKillEaterEventType_Tiny_TreeThrowKills = 167;
kKillEaterEventType_Riki_BackstabKills = 168;
kKillEaterEventType_Phoenix_ThreeHeroSupernovaStuns = 169;
kKillEaterEventType_Terrorblade_MetamorphosisKills = 170;
kKillEaterEventType_Lion_GreatFingerKills = 171;
kKillEaterEventType_Antimage_SpellsBlockedWithAghanims = 172;
kKillEaterEventType_Antimage_ThreeManManaVoids = 173;
kKillEaterEventType_ArcWarden_TempestDoubleKills = 174;
kKillEaterEventType_ArcWarden_SparkWraithKills = 175;
kKillEaterEventType_Bane_BrainSapKills = 176;
kKillEaterEventType_Bane_FiendsGripKills = 177;
kKillEaterEventType_Batrider_TripleHeroFlamebreaks = 178;
kKillEaterEventType_Batrider_DoubleHeroLassoes = 179;
kKillEaterEventType_Brewmaster_KillsDuringPrimalSplit = 180;
kKillEaterEventType_Bristleback_KillsUnderFourQuillStacks = 181;
kKillEaterEventType_Bristleback_TripleHeroNasalGoo = 182;
kKillEaterEventType_Broodmother_SpiderlingHeroKills = 183;
kKillEaterEventType_Broodmother_KillsInsideWeb = 184;
kKillEaterEventType_Centaur_ThreeHeroStampede = 185;
kKillEaterEventType_ChaosKnight_RealityRiftKills = 186;
kKillEaterEventType_Chen_KillsWithPenitence = 187;
kKillEaterEventType_CrystalMaiden_TwoHeroCrystalNovas = 188;
kKillEaterEventType_CrystalMaiden_ThreeHeroFreezingFields = 189;
kKillEaterEventType_Dazzle_ShadowWaveKills = 190;
kKillEaterEventType_DeathProphet_SiphonKills = 191;
kKillEaterEventType_DeathProphet_ExorcismKillsDuringEuls = 192;
kKillEaterEventType_Disruptor_ThreeHeroKineticFieldStaticStorm = 193;
kKillEaterEventType_Doom_InfernalBladeBurnKills = 194;
kKillEaterEventType_DrowRanger_PrecisionAuraCreepTowerKills = 195;
kKillEaterEventType_EmberSpirit_RemnantKills = 196;
kKillEaterEventType_EmberSpirit_SleightOfFistKills = 197;
kKillEaterEventType_Enigma_MidnightPulseBlackHoleCombos = 198;
kKillEaterEventType_Enigma_ThreeManBlackHoles = 199;
kKillEaterEventType_FacelessVoid_MultiHeroTimeDilation = 200;
kKillEaterEventType_Gyrocopter_ThreeHeroFlakCannon = 201;
kKillEaterEventType_Gyrocopter_HomingMissileKills = 202;
kKillEaterEventType_Gyrocopter_RocketBarrageKills = 203;
kKillEaterEventType_Huskar_KillsDuringLifeBreak = 204;
kKillEaterEventType_Huskar_BurningSpearKills = 205;
kKillEaterEventType_Invoker_MultiHeroIceWall = 206;
kKillEaterEventType_Invoker_ThreeHeroEMP = 207;
kKillEaterEventType_Invoker_ThreeHeroDeafeningBlast = 208;
kKillEaterEventType_Invoker_MultiHeroChaosMeteor = 209;
kKillEaterEventType_Jakiro_MultiHeroDualBreath = 210;
kKillEaterEventType_Jakiro_IcePathMacropyreCombos = 211;
kKillEaterEventType_Leshrac_PulseNovaKills = 212;
kKillEaterEventType_Leshrac_ThreeHeroLightningStorm = 213;
kKillEaterEventType_Lion_ThreeHeroFingerOfDeath = 214;
kKillEaterEventType_Meepo_PoofKills = 215;
kKillEaterEventType_Meepo_MultiHeroEarthbinds = 216;
kKillEaterEventType_NightStalker_NighttimeKills = 217;
kKillEaterEventType_Morphling_KillsDuringReplicate = 218;
kKillEaterEventType_OgreMagi_FireblastKills = 219;
kKillEaterEventType_OgreMagi_IgniteKills = 220;
kKillEaterEventType_DominatingKillStreaks = 221;
kKillEaterEventType_MegaKillStreaks = 222;
kKillEaterEventType_Alchemist_AghanimsGiven = 223;
kKillEaterEventType_VeilsLeadingToKills = 224;
kKillEaterEventType_DustLeadingToKills = 225;
kKillEaterEventType_WitchDoctor_MultiHeroCaskStuns = 226;
kKillEaterEventType_Weaver_ShukuchiKills = 227;
kKillEaterEventType_Windrunner_ShackleFocusFireKills = 228;
kKillEaterEventType_VengefulSpirit_VengeanceAuraIllusionKills = 229;
kKillEaterEventType_Tusk_WalrusPunchKills = 230;
kKillEaterEventType_Tinker_MultiHeroLasers = 231;
kKillEaterEventType_TemplarAssassin_MultiHeroPsiBlades = 232;
kKillEaterEventType_Sven_KillsDuringGodsStrength = 233;
kKillEaterEventType_Sniper_ThreeHeroShrapnels = 234;
kKillEaterEventType_Slark_KillsDuringShadowDance = 235;
kKillEaterEventType_ShadowShaman_MultiHeroEtherShocks = 236;
kKillEaterEventType_ShadowShaman_SerpentWardShackleKills = 237;
kKillEaterEventType_Riki_ThreeHeroTricksOfTheTrade = 238;
kKillEaterEventType_Razor_EyeOfTheStormKills = 239;
kKillEaterEventType_Pugna_LifeDrainKills = 240;
kKillEaterEventType_ObsidianDestroyer_SanitysEclipseKills = 241;
kKillEaterEventType_Oracle_MultiHeroFortunesEnd = 242;
kKillEaterEventType_Omniknight_PurificationKills = 243;
kKillEaterEventType_NightStalker_EnemyMissesUnderCripplingFear = 244;
kKillEaterEventType_Warlock_ThreeHeroFatalBonds = 245;
kKillEaterEventType_Riki_TricksOfTheTradeKills = 246;
kKillEaterEventType_Earthshaker_AftershockHits10 = 247;
kKillEaterEventType_Earthshaker_5HeroEchoslams = 248;
kKillEaterEventType_Lina_LagunaBladeHeroKills = 249;
kKillEaterEventType_Lina_LightStrikeHeroStuns = 250;
kKillEaterEventType_Earthshaker_FissureMultiStuns = 251;
kKillEaterEventType_Earthshaker_TotemKills = 252;
kKillEaterEventType_Pangolier_SwashbuckleKills = 253;
kKillEaterEventType_Furion_EnemyHeroesTrapped = 254;
kKillEaterEventType_Pangolier_HeartpiercerKills = 255;
kKillEaterEventType_Medusa_MultiHeroStoneGaze = 256;
kKillEaterEventType_Medusa_SplitShotKills = 257;
kKillEaterEventType_Mirana_MultiHeroStarstorm = 258;
kKillEaterEventType_Mirana_KillsFromMoonlightShadow = 259;
kKillEaterEventType_Magnus_MultiHeroSkewers = 260;
kKillEaterEventType_Magnus_MultiHeroReversePolarity = 261;
kKillEaterEventType_Magnus_HeroesSlowedWithShockwave = 262;
kKillEaterEventType_NagaSiren_MultiHeroSong = 263;
kKillEaterEventType_NagaSiren_AlliesHealedBySong = 264;
kKillEaterEventType_LoneDruid_MultiHeroRoar = 265;
kKillEaterEventType_LoneDruid_BattleCryKills = 266;
kKillEaterEventType_WinterWyvern_ThreeHeroCurses = 267;
kKillEaterEventType_Antimage_SpellsBlockedWithCounterspell = 268;
kKillEaterEventType_Mars_EnemiesKilledInArena = 269;
kKillEaterEventType_Mars_MultiHeroGodsRebuke = 270;
kKillEaterEventType_Mars_GodsRebukeKills = 271;
kKillEaterEventType_Snapfire_LizardBlobsKills = 272;
kKillEaterEventType_Snapfire_TwoHeroCookieStuns = 273;
Custom_KillStreak = 274;
}
optional dota.CMvpData.MvpDatum.MvpAccolade.MvpAccoladeType type = 1 [default = kills];
optional float detail_value = 2;
}
optional uint32 slot = 1;
repeated dota.CMvpData.MvpDatum.MvpAccolade accolades = 2;
optional uint32 account_id = 3;
}
repeated dota.CMvpData.MvpDatum mvps = 1;
}