effigy_wire 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/BIN_README.txt +18 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +3 -0
  6. data/Gemfile.lock +40 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +7 -0
  9. data/Rakefile +2 -0
  10. data/bin/clarity-protobuf/clean +36 -0
  11. data/bin/clarity-protobuf/copy +75 -0
  12. data/bin/effigy/compile-proto +81 -0
  13. data/bin/effigy/mk-require-turds +43 -0
  14. data/bin/effigy/package +56 -0
  15. data/bin/effigy/tweak-proto +30 -0
  16. data/bin/effigy/tweak-rb +20 -0
  17. data/effigy_wire.gemspec +24 -0
  18. data/lib/effigy/wire/demo.pb.rb +205 -0
  19. data/lib/effigy/wire/dota_commonmessages.pb.rb +209 -0
  20. data/lib/effigy/wire/dota_modifiers.pb.rb +78 -0
  21. data/lib/effigy/wire/dota_usermessages.pb.rb +1315 -0
  22. data/lib/effigy/wire/netmessages.pb.rb +177 -0
  23. data/lib/effigy/wire/networkbasetypes.pb.rb +268 -0
  24. data/lib/effigy/wire/s1/s1_dota_usermessages.pb.rb +102 -0
  25. data/lib/effigy/wire/s1/s1_netmessages.pb.rb +121 -0
  26. data/lib/effigy/wire/s1/s1_usermessages.pb.rb +271 -0
  27. data/lib/effigy/wire/s1.rb +3 -0
  28. data/lib/effigy/wire/s2/s2_base_gcmessages.pb.rb +57 -0
  29. data/lib/effigy/wire/s2/s2_dota_gcmessages_common.pb.rb +214 -0
  30. data/lib/effigy/wire/s2/s2_dota_match_metadata.pb.rb +106 -0
  31. data/lib/effigy/wire/s2/s2_dota_usermessages.pb.rb +117 -0
  32. data/lib/effigy/wire/s2/s2_gameevents.pb.rb +172 -0
  33. data/lib/effigy/wire/s2/s2_netmessages.pb.rb +158 -0
  34. data/lib/effigy/wire/s2/s2_te.pb.rb +330 -0
  35. data/lib/effigy/wire/s2/s2_usermessages.pb.rb +514 -0
  36. data/lib/effigy/wire/s2.rb +3 -0
  37. data/lib/effigy/wire.rb +9 -0
  38. data/lib/effigy.rb +3 -0
  39. data/proto/demo.proto +157 -0
  40. data/proto/dota_commonmessages.proto +183 -0
  41. data/proto/dota_modifiers.proto +54 -0
  42. data/proto/dota_usermessages.proto +1152 -0
  43. data/proto/netmessages.proto +133 -0
  44. data/proto/networkbasetypes.proto +219 -0
  45. data/proto/s1/google/protobuf/descriptor.proto +622 -0
  46. data/proto/s1/s1_dota_usermessages.proto +89 -0
  47. data/proto/s1/s1_netmessages.proto +86 -0
  48. data/proto/s1/s1_usermessages.proto +217 -0
  49. data/proto/s2/google/protobuf/descriptor.proto +622 -0
  50. data/proto/s2/s2_base_gcmessages.proto +37 -0
  51. data/proto/s2/s2_dota_gcmessages_common.proto +177 -0
  52. data/proto/s2/s2_dota_match_metadata.proto +67 -0
  53. data/proto/s2/s2_dota_usermessages.proto +104 -0
  54. data/proto/s2/s2_gameevents.proto +125 -0
  55. data/proto/s2/s2_netmessages.proto +120 -0
  56. data/proto/s2/s2_te.proto +276 -0
  57. data/proto/s2/s2_usermessages.proto +434 -0
  58. metadata +148 -0
@@ -0,0 +1,1152 @@
1
+ package effigy.wire;
2
+
3
+ option java_package = "skadistats.clarity.wire.common.proto";
4
+ option java_outer_classname = "DotaUserMessages";
5
+
6
+ import "networkbasetypes.proto";
7
+ import "dota_commonmessages.proto";
8
+
9
+ option optimize_for = SPEED;
10
+ option cc_generic_services = false;
11
+
12
+ enum DOTA_COMBATLOG_TYPES {
13
+ DOTA_COMBATLOG_DAMAGE = 0;
14
+ DOTA_COMBATLOG_HEAL = 1;
15
+ DOTA_COMBATLOG_MODIFIER_ADD = 2;
16
+ DOTA_COMBATLOG_MODIFIER_REMOVE = 3;
17
+ DOTA_COMBATLOG_DEATH = 4;
18
+ DOTA_COMBATLOG_ABILITY = 5;
19
+ DOTA_COMBATLOG_ITEM = 6;
20
+ DOTA_COMBATLOG_LOCATION = 7;
21
+ DOTA_COMBATLOG_GOLD = 8;
22
+ DOTA_COMBATLOG_GAME_STATE = 9;
23
+ DOTA_COMBATLOG_XP = 10;
24
+ DOTA_COMBATLOG_PURCHASE = 11;
25
+ DOTA_COMBATLOG_BUYBACK = 12;
26
+ DOTA_COMBATLOG_ABILITY_TRIGGER = 13;
27
+ DOTA_COMBATLOG_PLAYERSTATS = 14;
28
+ DOTA_COMBATLOG_MULTIKILL = 15;
29
+ DOTA_COMBATLOG_KILLSTREAK = 16;
30
+ DOTA_COMBATLOG_TEAM_BUILDING_KILL = 17;
31
+ DOTA_COMBATLOG_FIRST_BLOOD = 18;
32
+ DOTA_COMBATLOG_MODIFIER_REFRESH = 19;
33
+ DOTA_COMBATLOG_NEUTRAL_CAMP_STACK = 20;
34
+ DOTA_COMBATLOG_PICKUP_RUNE = 21;
35
+ DOTA_COMBATLOG_REVEALED_INVISIBLE = 22;
36
+ DOTA_COMBATLOG_HERO_SAVED = 23;
37
+ DOTA_COMBATLOG_MANA_RESTORED = 24;
38
+ DOTA_COMBATLOG_HERO_LEVELUP = 25;
39
+ DOTA_COMBATLOG_BOTTLE_HEAL_ALLY = 26;
40
+ DOTA_COMBATLOG_ENDGAME_STATS = 27;
41
+ DOTA_COMBATLOG_INTERRUPT_CHANNEL = 28;
42
+ DOTA_COMBATLOG_ALLIED_GOLD = 29;
43
+ DOTA_COMBATLOG_AEGIS_TAKEN = 30;
44
+
45
+ }
46
+
47
+ enum DOTA_CHAT_MESSAGE {
48
+ CHAT_MESSAGE_INVALID = -1;
49
+ CHAT_MESSAGE_HERO_KILL = 0;
50
+ CHAT_MESSAGE_HERO_DENY = 1;
51
+ CHAT_MESSAGE_BARRACKS_KILL = 2;
52
+ CHAT_MESSAGE_TOWER_KILL = 3;
53
+ CHAT_MESSAGE_TOWER_DENY = 4;
54
+ CHAT_MESSAGE_FIRSTBLOOD = 5;
55
+ CHAT_MESSAGE_STREAK_KILL = 6;
56
+ CHAT_MESSAGE_BUYBACK = 7;
57
+ CHAT_MESSAGE_AEGIS = 8;
58
+ CHAT_MESSAGE_ROSHAN_KILL = 9;
59
+ CHAT_MESSAGE_COURIER_LOST = 10;
60
+ CHAT_MESSAGE_COURIER_RESPAWNED = 11;
61
+ CHAT_MESSAGE_GLYPH_USED = 12;
62
+ CHAT_MESSAGE_ITEM_PURCHASE = 13;
63
+ CHAT_MESSAGE_CONNECT = 14;
64
+ CHAT_MESSAGE_DISCONNECT = 15;
65
+ CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT = 16;
66
+ CHAT_MESSAGE_DISCONNECT_TIME_REMAINING = 17;
67
+ CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL = 18;
68
+ CHAT_MESSAGE_RECONNECT = 19;
69
+ CHAT_MESSAGE_PLAYER_LEFT = 20;
70
+ CHAT_MESSAGE_SAFE_TO_LEAVE = 21;
71
+ CHAT_MESSAGE_RUNE_PICKUP = 22;
72
+ CHAT_MESSAGE_RUNE_BOTTLE = 23;
73
+ CHAT_MESSAGE_INTHEBAG = 24;
74
+ CHAT_MESSAGE_SECRETSHOP = 25;
75
+ CHAT_MESSAGE_ITEM_AUTOPURCHASED = 26;
76
+ CHAT_MESSAGE_ITEMS_COMBINED = 27;
77
+ CHAT_MESSAGE_SUPER_CREEPS = 28;
78
+ CHAT_MESSAGE_CANT_USE_ACTION_ITEM = 29;
79
+ CHAT_MESSAGE_CHARGES_EXHAUSTED = 30;
80
+ CHAT_MESSAGE_CANTPAUSE = 31;
81
+ CHAT_MESSAGE_NOPAUSESLEFT = 32;
82
+ CHAT_MESSAGE_CANTPAUSEYET = 33;
83
+ CHAT_MESSAGE_PAUSED = 34;
84
+ CHAT_MESSAGE_UNPAUSE_COUNTDOWN = 35;
85
+ CHAT_MESSAGE_UNPAUSED = 36;
86
+ CHAT_MESSAGE_AUTO_UNPAUSED = 37;
87
+ CHAT_MESSAGE_YOUPAUSED = 38;
88
+ CHAT_MESSAGE_CANTUNPAUSETEAM = 39;
89
+ CHAT_MESSAGE_VOICE_TEXT_BANNED = 41;
90
+ CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME = 42;
91
+ CHAT_MESSAGE_REPORT_REMINDER = 43;
92
+ CHAT_MESSAGE_ECON_ITEM = 44;
93
+ CHAT_MESSAGE_TAUNT = 45;
94
+ CHAT_MESSAGE_RANDOM = 46;
95
+ CHAT_MESSAGE_RD_TURN = 47;
96
+ CHAT_MESSAGE_DROP_RATE_BONUS = 49;
97
+ CHAT_MESSAGE_NO_BATTLE_POINTS = 50;
98
+ CHAT_MESSAGE_DENIED_AEGIS = 51;
99
+ CHAT_MESSAGE_INFORMATIONAL = 52;
100
+ CHAT_MESSAGE_AEGIS_STOLEN = 53;
101
+ CHAT_MESSAGE_ROSHAN_CANDY = 54;
102
+ CHAT_MESSAGE_ITEM_GIFTED = 55;
103
+ CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL = 56;
104
+ CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED = 57;
105
+ CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED = 58;
106
+ CHAT_MESSAGE_HOLDOUT_WALL_FINISHED = 59;
107
+ CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO = 62;
108
+ CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION = 63;
109
+ CHAT_MESSAGE_DISCONNECT_LIMITED_HERO = 64;
110
+ CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION = 65;
111
+ CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS = 66;
112
+ CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE = 67;
113
+ CHAT_MESSAGE_PLAYER_LEFT_AFK = 73;
114
+ CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG = 74;
115
+ CHAT_MESSAGE_PLAYER_ABANDONED = 75;
116
+ CHAT_MESSAGE_PLAYER_ABANDONED_AFK = 76;
117
+ CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG = 77;
118
+ CHAT_MESSAGE_WILL_NOT_BE_SCORED = 78;
119
+ CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED = 79;
120
+ CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK = 80;
121
+ CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED = 81;
122
+ CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON = 82;
123
+ CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS = 83;
124
+ CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY = 84;
125
+ CHAT_MESSAGE_COMPENDIUM_LEVEL = 85;
126
+ CHAT_MESSAGE_VICTORY_PREDICTION_STREAK = 86;
127
+ CHAT_MESSAGE_ASSASSIN_ANNOUNCE = 87;
128
+ CHAT_MESSAGE_ASSASSIN_SUCCESS = 88;
129
+ CHAT_MESSAGE_ASSASSIN_DENIED = 89;
130
+ CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM = 90;
131
+ CHAT_MESSAGE_EFFIGY_KILL = 91;
132
+ CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW = 92;
133
+ CHAT_MESSAGE_YEAR_BEAST_KILLED = 93;
134
+ CHAT_MESSAGE_PAUSE_COUNTDOWN = 94;
135
+ CHAT_MESSAGE_COINS_WAGERED = 95;
136
+ CHAT_MESSAGE_HERO_NOMINATED_BAN = 96;
137
+ CHAT_MESSAGE_HERO_BANNED = 97;
138
+ CHAT_MESSAGE_HERO_BAN_COUNT = 98;
139
+ }
140
+
141
+ enum DOTA_NO_BATTLE_POINTS_REASONS {
142
+ NO_BATTLE_POINTS_WRONG_LOBBY_TYPE = 1;
143
+ NO_BATTLE_POINTS_PRACTICE_BOTS = 2;
144
+ NO_BATTLE_POINTS_CHEATS_ENABLED = 3;
145
+ NO_BATTLE_POINTS_LOW_PRIORITY = 4;
146
+ }
147
+
148
+ enum DOTA_CHAT_INFORMATIONAL {
149
+ INFO_COOP_BATTLE_POINTS_RULES = 1;
150
+ INFO_FROSTIVUS_ABANDON_REMINDER = 2;
151
+ INFO_RANKED_REMINDER = 3;
152
+ INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER = 4;
153
+ }
154
+
155
+ enum DOTA_ABILITY_PING_TYPE {
156
+ ABILITY_PING_READY = 1;
157
+ ABILITY_PING_MANA = 2;
158
+ ABILITY_PING_COOLDOWN = 3;
159
+ ABILITY_PING_ENEMY = 4;
160
+ ABILITY_PING_UNLEARNED = 5;
161
+ }
162
+
163
+ enum EDotaEntityMessages {
164
+ DOTA_UNIT_SPEECH = 0;
165
+ DOTA_UNIT_SPEECH_MUTE = 1;
166
+ DOTA_UNIT_ADD_GESTURE = 2;
167
+ DOTA_UNIT_REMOVE_GESTURE = 3;
168
+ DOTA_UNIT_REMOVE_ALL_GESTURES = 4;
169
+ DOTA_UNIT_FADE_GESTURE = 6;
170
+ DOTA_UNIT_SPEECH_CLIENTSIDE_RULES = 7;
171
+ }
172
+
173
+ enum DOTA_PARTICLE_MESSAGE {
174
+ DOTA_PARTICLE_MANAGER_EVENT_CREATE = 0;
175
+ DOTA_PARTICLE_MANAGER_EVENT_UPDATE = 1;
176
+ DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2;
177
+ DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3;
178
+ DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4;
179
+ DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5;
180
+ DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6;
181
+ DOTA_PARTICLE_MANAGER_EVENT_DESTROY = 7;
182
+ DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8;
183
+ DOTA_PARTICLE_MANAGER_EVENT_RELEASE = 9;
184
+ DOTA_PARTICLE_MANAGER_EVENT_LATENCY = 10;
185
+ DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11;
186
+ DOTA_PARTICLE_MANAGER_EVENT_FROZEN = 12;
187
+ DOTA_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT = 13;
188
+ DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION = 14;
189
+ }
190
+
191
+ enum DOTA_OVERHEAD_ALERT {
192
+ OVERHEAD_ALERT_GOLD = 0;
193
+ OVERHEAD_ALERT_DENY = 1;
194
+ OVERHEAD_ALERT_CRITICAL = 2;
195
+ OVERHEAD_ALERT_XP = 3;
196
+ OVERHEAD_ALERT_BONUS_SPELL_DAMAGE = 4;
197
+ OVERHEAD_ALERT_MISS = 5;
198
+ OVERHEAD_ALERT_DAMAGE = 6;
199
+ OVERHEAD_ALERT_EVADE = 7;
200
+ OVERHEAD_ALERT_BLOCK = 8;
201
+ OVERHEAD_ALERT_BONUS_POISON_DAMAGE = 9;
202
+ OVERHEAD_ALERT_HEAL = 10;
203
+ OVERHEAD_ALERT_MANA_ADD = 11;
204
+ OVERHEAD_ALERT_MANA_LOSS = 12;
205
+ OVERHEAD_ALERT_LAST_HIT_EARLY = 13;
206
+ OVERHEAD_ALERT_LAST_HIT_CLOSE = 14;
207
+ OVERHEAD_ALERT_LAST_HIT_MISS = 15;
208
+ OVERHEAD_ALERT_MAGICAL_BLOCK = 16;
209
+ }
210
+
211
+ enum DOTA_POSITION_CATEGORY {
212
+ DOTA_POSITION_NONE = 0;
213
+ DOTA_POSITION_BOTTOM_LANE = 1;
214
+ DOTA_POSITION_MID_LANE = 2;
215
+ DOTA_POSITION_TOP_LANE = 3;
216
+ DOTA_POSITION_RADIANT_JUNGLE = 4;
217
+ DOTA_POSITION_DIRE_JUNGLE = 5;
218
+ DOTA_POSITION_RADIANT_ANCIENTS = 6;
219
+ DOTA_POSITION_DIRE_ANCIENTS = 7;
220
+ DOTA_POSITION_RADIANT_SECRET_SHOP = 8;
221
+ DOTA_POSITION_DIRE_SECRET_SHOP = 9;
222
+ DOTA_POSITION_RIVER = 10;
223
+ DOTA_POSITION_ROSHAN_PIT = 11;
224
+ DOTA_POSITION_RADIANT_BASE = 12;
225
+ DOTA_POSITION_DIRE_BASE = 13;
226
+ DOTA_POSITION_FOUNTAIN = 14;
227
+ DOTA_POSITION_OTHER = 15;
228
+ }
229
+
230
+ enum DOTA_ABILITY_TARGET_TYPE {
231
+ DOTA_ABILITY_TARGET_NONE = 0;
232
+ DOTA_ABILITY_TARGET_SELF = 1;
233
+ DOTA_ABILITY_TARGET_ALLY_HERO = 2;
234
+ DOTA_ABILITY_TARGET_ALLY_CREEP = 3;
235
+ DOTA_ABILITY_TARGET_ENEMY_HERO = 4;
236
+ DOTA_ABILITY_TARGET_ENEMY_CREEP = 5;
237
+ }
238
+
239
+ enum EHeroStatType {
240
+ K_EHeroStatType_None = 0;
241
+ K_EHeroStatType_AxeTotalDamage = 2000;
242
+ K_EHeroStatType_BattleHungerDamage = 2001;
243
+ K_EHeroStatType_CounterHelixDamage = 2002;
244
+ K_EHeroStatType_CullingBladeDamage = 2003;
245
+ K_EHeroStatType_BerserkersCallCastCount = 2004;
246
+ K_EHeroStatType_BerserkersCallHeroesHitAverage = 2005;
247
+ K_EHeroStatType_BerserkersCallOtherUnitsHit = 2006;
248
+ K_EHeroStatType_BerserkersCallHeroAttacksTaken = 2007;
249
+ K_EHeroStatType_BerserkersCallOtherAttacksTaken = 2008;
250
+ K_EHeroStatType_BattleHungerCastCount = 2009;
251
+ K_EHeroStatType_BattleHungerPotentialDuration = 2010;
252
+ K_EHeroStatType_BattleHungerAverageDuration = 2011;
253
+ K_EHeroStatType_CounterHelixProcCount = 2012;
254
+ K_EHeroStatType_CounterHelixHeroProcCount = 2013;
255
+ K_EHeroStatType_CounterHelixHeroesHitAverage = 2014;
256
+ K_EHeroStatType_CounterHelixOtherUnitsHitCount = 2015;
257
+ K_EHeroStatType_CullingBladeCastCount = 2016;
258
+ K_EHeroStatType_CullingBladeKillCount = 2017;
259
+ K_EHeroStatType_CullingBladeAverageHealthCulled = 2018;
260
+ K_EHeroStatType_CullingBladeAverageDamageAvailable = 2019;
261
+ K_EHeroStatType_CullingBladeHeroBuffAverage = 2020;
262
+ }
263
+
264
+ enum EPlayerVoiceListenState {
265
+ KPVLS_None = 0;
266
+ KPVLS_DeniedChatBanned = 1;
267
+ KPVLS_DeniedPartner = 2;
268
+ KPVLS_DeniedHLTVTalkerNotSpectator = 3;
269
+ KPVLS_DeniedHLTVNoTalkerPlayerID = 4;
270
+ KPVLS_DeniedHLTVTalkerNotBroadcaster = 5;
271
+ KPVLS_DeniedTeamSpectator = 6;
272
+ KPVLS_DeniedStudent = 8;
273
+ KPVLS_Denied = 64;
274
+ KPVLS_AllowHLTVTalkerIsBroadcaster = 65;
275
+ KPVLS_AllowCoBroadcaster = 66;
276
+ KPVLS_AllowAllChat = 67;
277
+ KPVLS_AllowStudentToCoach = 68;
278
+ KPVLS_AllowFellowStudent = 69;
279
+ KPVLS_AllowTalkerIsCoach = 70;
280
+ KPVLS_AllowCoachHearTeam = 71;
281
+ KPVLS_AllowSameTeam = 72;
282
+ KPVLS_AllowShowcase = 73;
283
+ }
284
+
285
+ enum EProjectionEvent {
286
+ EPE_FirstBlood = 0;
287
+ }
288
+
289
+ message CDOTAUserMsg_AIDebugLine {
290
+ optional string message = 1;
291
+ optional uint32 ping = 2;
292
+ optional uint32 loss = 3;
293
+ }
294
+
295
+ message CDOTAUserMsg_Ping {
296
+ optional string message = 1;
297
+ }
298
+
299
+ message CDOTAUserMsg_SwapVerify {
300
+ optional uint32 player_id = 1;
301
+ }
302
+
303
+ message CDOTAUserMsg_ChatEvent {
304
+ optional DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
305
+ optional uint32 value = 2;
306
+ optional sint32 playerid_1 = 3 [default = -1];
307
+ optional sint32 playerid_2 = 4 [default = -1];
308
+ optional sint32 playerid_3 = 5 [default = -1];
309
+ optional sint32 playerid_4 = 6 [default = -1];
310
+ optional sint32 playerid_5 = 7 [default = -1];
311
+ optional sint32 playerid_6 = 8 [default = -1];
312
+ optional uint32 value2 = 9;
313
+ optional uint32 value3 = 10;
314
+ }
315
+
316
+ message CDOTAUserMsg_CombatLogShowDeath {
317
+ }
318
+
319
+ message CDOTAUserMsg_BotChat {
320
+ optional uint32 player_id = 1;
321
+ optional string format = 2;
322
+ optional string message = 3;
323
+ optional string target = 4;
324
+ }
325
+
326
+ message CDOTAUserMsg_CombatHeroPositions {
327
+ optional uint32 index = 1;
328
+ optional int32 time = 2;
329
+ optional CMsgVector2D world_pos = 3;
330
+ optional int32 health = 4;
331
+ }
332
+
333
+ message CDOTAUserMsg_MiniKillCamInfo {
334
+ message Attacker {
335
+ message Ability {
336
+ optional uint32 ability = 1;
337
+ optional int32 damage = 2;
338
+ }
339
+
340
+ optional uint32 attacker = 1;
341
+ optional int32 total_damage = 2;
342
+ repeated CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
343
+ }
344
+
345
+ repeated CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
346
+ }
347
+
348
+ message CDOTAUserMsg_GlobalLightColor {
349
+ optional uint32 color = 1;
350
+ optional float duration = 2;
351
+ }
352
+
353
+ message CDOTAUserMsg_GlobalLightDirection {
354
+ optional CMsgVector direction = 1;
355
+ optional float duration = 2;
356
+ }
357
+
358
+ message CDOTAUserMsg_LocationPing {
359
+ optional uint32 player_id = 1;
360
+ optional CDOTAMsg_LocationPing location_ping = 2;
361
+ }
362
+
363
+ message CDOTAUserMsg_ItemAlert {
364
+ optional uint32 player_id = 1;
365
+ optional CDOTAMsg_ItemAlert item_alert = 2;
366
+ }
367
+
368
+ message CDOTAUserMsg_EnemyItemAlert {
369
+ optional uint32 player_id = 1;
370
+ optional uint32 target_player_id = 2;
371
+ optional int32 itemid = 3;
372
+ optional uint32 rune_type = 4;
373
+ }
374
+
375
+ message CDOTAUserMsg_ModifierAlert {
376
+ optional uint32 player_id = 1;
377
+ optional string class_name = 2;
378
+ optional uint32 stack_count = 3;
379
+ optional bool is_debuff = 4;
380
+ optional uint32 target_entindex = 5;
381
+ }
382
+
383
+ message CDOTAUserMsg_HPManaAlert {
384
+ optional uint32 player_id = 1;
385
+ optional uint32 target_entindex = 2;
386
+ }
387
+
388
+ message CDOTAUserMsg_GlyphAlert {
389
+ optional uint32 player_id = 1;
390
+ optional bool negative = 2;
391
+ }
392
+
393
+ message CDOTAUserMsg_WillPurchaseAlert {
394
+ optional int32 itemid = 1;
395
+ optional int32 player_id = 2;
396
+ optional uint32 gold_remaining = 3;
397
+ }
398
+
399
+ message CDOTAUserMsg_BuyBackStateAlert {
400
+ optional int32 player_id = 1;
401
+ }
402
+
403
+ message CDOTAUserMsg_QuickBuyAlert {
404
+ optional int32 player_id = 1;
405
+ optional int32 itemid = 2;
406
+ optional int32 gold_required = 3;
407
+ }
408
+
409
+ message CDOTAUserMsg_CourierKilledAlert {
410
+ optional uint32 team = 1;
411
+ optional uint32 gold_value = 2;
412
+ optional int32 entity_handle = 3;
413
+ optional int32 timestamp = 4;
414
+ }
415
+
416
+ message CDOTAUserMsg_MinimapEvent {
417
+ optional int32 event_type = 1;
418
+ optional int32 entity_handle = 2;
419
+ optional int32 x = 3;
420
+ optional int32 y = 4;
421
+ optional int32 duration = 5;
422
+ }
423
+
424
+ message CDOTAUserMsg_MapLine {
425
+ optional int32 player_id = 1;
426
+ optional CDOTAMsg_MapLine mapline = 2;
427
+ }
428
+
429
+ message CDOTAUserMsg_MinimapDebugPoint {
430
+ optional CMsgVector location = 1;
431
+ optional uint32 color = 2;
432
+ optional int32 size = 3;
433
+ optional float duration = 4;
434
+ optional int32 index = 5;
435
+ }
436
+
437
+ message CDOTAUserMsg_CreateLinearProjectile {
438
+ optional CMsgVector origin = 1;
439
+ optional CMsgVector2D velocity = 2;
440
+ optional int32 latency = 3;
441
+ optional int32 entindex = 4;
442
+ optional uint64 particle_index = 5;
443
+ optional int32 handle = 6;
444
+ optional CMsgVector2D acceleration = 7;
445
+ optional float max_speed = 8;
446
+ }
447
+
448
+ message CDOTAUserMsg_DestroyLinearProjectile {
449
+ optional int32 handle = 1;
450
+ }
451
+
452
+ message CDOTAUserMsg_DodgeTrackingProjectiles {
453
+ required int32 entindex = 1;
454
+ optional bool attacks_only = 2;
455
+ }
456
+
457
+ message CDOTAUserMsg_SpectatorPlayerClick {
458
+ required int32 entindex = 1;
459
+ optional int32 order_type = 2;
460
+ optional int32 target_index = 3;
461
+ }
462
+
463
+ message CDOTAUserMsg_SpectatorPlayerUnitOrders {
464
+ optional int32 entindex = 1;
465
+ optional int32 order_type = 2;
466
+ repeated int32 units = 3;
467
+ optional int32 target_index = 4;
468
+ optional int32 ability_index = 5;
469
+ optional CMsgVector position = 6;
470
+ optional bool queue = 7;
471
+ optional int32 sequence_number = 8;
472
+ }
473
+
474
+ message CDOTAUserMsg_NevermoreRequiem {
475
+ optional int32 entity_handle = 1;
476
+ optional int32 lines = 2;
477
+ optional CMsgVector origin = 3;
478
+ optional bool reverse = 4;
479
+ }
480
+
481
+ message CDOTAUserMsg_InvalidCommand {
482
+ optional string message = 1;
483
+ }
484
+
485
+ message CDOTAUserMsg_HudError {
486
+ optional int32 order_id = 1;
487
+ }
488
+
489
+ message CDOTAUserMsg_SharedCooldown {
490
+ optional int32 entindex = 1;
491
+ optional string name = 2;
492
+ optional float cooldown = 3;
493
+ optional int32 name_index = 4;
494
+ }
495
+
496
+ message CDOTAUserMsg_SetNextAutobuyItem {
497
+ optional string name = 1;
498
+ }
499
+
500
+ message CDOTAUserMsg_HalloweenDrops {
501
+ repeated uint32 item_defs = 1;
502
+ repeated uint32 player_ids = 2;
503
+ optional uint32 prize_list = 3;
504
+ }
505
+
506
+ message CDOTAUserMsg_PredictionResult {
507
+ message Prediction {
508
+ enum EResult {
509
+ K_eResult_ItemGranted = 1;
510
+ K_eResult_Destroyed = 2;
511
+ }
512
+
513
+ optional uint32 item_def = 1;
514
+ optional uint32 num_correct = 2;
515
+ optional uint32 num_fails = 3;
516
+ optional CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = K_eResult_ItemGranted];
517
+ repeated uint32 granted_item_defs = 6;
518
+ }
519
+
520
+ optional uint32 account_id = 1;
521
+ optional uint64 match_id = 2;
522
+ optional bool correct = 3;
523
+ repeated CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
524
+ }
525
+
526
+ message CDOTAResponseQuerySerialized {
527
+ message Fact {
528
+ enum ValueType {
529
+ NUMERIC = 1;
530
+ STRING = 2;
531
+ }
532
+
533
+ required int32 key = 1;
534
+ required CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
535
+ optional float val_numeric = 3;
536
+ optional string val_string = 4;
537
+ }
538
+
539
+ repeated CDOTAResponseQuerySerialized.Fact facts = 1;
540
+ }
541
+
542
+ message CDOTASpeechMatchOnClient {
543
+ optional int32 concept = 1;
544
+ optional int32 recipient_type = 2;
545
+ optional CDOTAResponseQuerySerialized responsequery = 3;
546
+ optional sfixed32 randomseed = 4 [default = 0];
547
+ }
548
+
549
+ message CDOTAUserMsg_UnitEvent {
550
+ message Speech {
551
+ optional int32 concept = 1;
552
+ optional string response = 2;
553
+ optional int32 recipient_type = 3;
554
+ optional int32 level = 4;
555
+ optional bool muteable = 5 [default = false];
556
+ }
557
+
558
+ message SpeechMute {
559
+ optional float delay = 1 [default = 0.5];
560
+ }
561
+
562
+ message AddGesture {
563
+ optional int32 activity = 1;
564
+ optional int32 slot = 2;
565
+ optional float fade_in = 3 [default = 0];
566
+ optional float fade_out = 4 [default = 0.1];
567
+ }
568
+
569
+ message RemoveGesture {
570
+ optional int32 activity = 1;
571
+ }
572
+
573
+ message BloodImpact {
574
+ optional int32 scale = 1;
575
+ optional int32 x_normal = 2;
576
+ optional int32 y_normal = 3;
577
+ }
578
+
579
+ message FadeGesture {
580
+ optional int32 activity = 1;
581
+ }
582
+
583
+ required EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
584
+ required int32 entity_index = 2;
585
+ optional CDOTAUserMsg_UnitEvent.Speech speech = 3;
586
+ optional CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
587
+ optional CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
588
+ optional CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
589
+ optional CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
590
+ optional CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
591
+ optional CDOTASpeechMatchOnClient speech_match_on_client = 9;
592
+ }
593
+
594
+ message CDOTAUserMsg_ItemPurchased {
595
+ optional int32 item_index = 1;
596
+ }
597
+
598
+ message CDOTAUserMsg_ItemFound {
599
+ optional int32 player = 1;
600
+ optional int32 quality = 2;
601
+ optional int32 rarity = 3;
602
+ optional int32 method = 4;
603
+ optional int32 itemdef = 5;
604
+ }
605
+
606
+ message CDOTAUserMsg_ParticleManager {
607
+ message ReleaseParticleIndex {
608
+ }
609
+
610
+ message CreateParticle {
611
+ optional fixed64 particle_name_index = 1;
612
+ optional int32 attach_type = 2;
613
+ optional int32 entity_handle = 3;
614
+ optional int32 entity_handle_for_modifiers = 4;
615
+ }
616
+
617
+ message DestroyParticle {
618
+ optional bool destroy_immediately = 1;
619
+ }
620
+
621
+ message DestroyParticleInvolving {
622
+ optional bool destroy_immediately = 1;
623
+ optional int32 entity_handle = 3;
624
+ }
625
+
626
+ message UpdateParticle {
627
+ optional int32 control_point = 1;
628
+ optional CMsgVector position = 2;
629
+ }
630
+
631
+ message UpdateParticleFwd {
632
+ optional int32 control_point = 1;
633
+ optional CMsgVector forward = 2;
634
+ }
635
+
636
+ message UpdateParticleOrient {
637
+ optional int32 control_point = 1;
638
+ optional CMsgVector forward = 2;
639
+ optional CMsgVector right = 3;
640
+ optional CMsgVector up = 4;
641
+ }
642
+
643
+ message UpdateParticleFallback {
644
+ optional int32 control_point = 1;
645
+ optional CMsgVector position = 2;
646
+ }
647
+
648
+ message UpdateParticleOffset {
649
+ optional int32 control_point = 1;
650
+ optional CMsgVector origin_offset = 2;
651
+ }
652
+
653
+ message UpdateParticleEnt {
654
+ optional int32 control_point = 1;
655
+ optional int32 entity_handle = 2;
656
+ optional int32 attach_type = 3;
657
+ optional int32 attachment = 4;
658
+ optional CMsgVector fallback_position = 5;
659
+ optional bool include_wearables = 6;
660
+ }
661
+
662
+ message UpdateParticleSetFrozen {
663
+ optional bool set_frozen = 1;
664
+ }
665
+
666
+ message UpdateParticleShouldDraw {
667
+ optional bool should_draw = 1;
668
+ }
669
+
670
+ message ChangeControlPointAttachment {
671
+ optional int32 attachment_old = 1;
672
+ optional int32 attachment_new = 2;
673
+ optional int32 entity_handle = 3;
674
+ }
675
+
676
+ message UpdateEntityPosition {
677
+ optional int32 entity_handle = 1;
678
+ optional CMsgVector position = 2;
679
+ }
680
+
681
+ required DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
682
+ required uint32 index = 2;
683
+ optional CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
684
+ optional CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
685
+ optional CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
686
+ optional CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
687
+ optional CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
688
+ optional CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
689
+ optional CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
690
+ optional CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
691
+ optional CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
692
+ optional CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
693
+ optional CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
694
+ optional CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
695
+ optional CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16;
696
+ optional CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17;
697
+ }
698
+
699
+ message CDOTAUserMsg_OverheadEvent {
700
+ required DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
701
+ optional int32 value = 2;
702
+ optional int32 target_player_entindex = 3;
703
+ optional int32 target_entindex = 4;
704
+ optional int32 source_player_entindex = 5;
705
+ }
706
+
707
+ message CDOTAUserMsg_TutorialTipInfo {
708
+ optional string name = 1;
709
+ optional int32 progress = 2;
710
+ }
711
+
712
+ message CDOTAUserMsg_TutorialFinish {
713
+ optional string heading = 1;
714
+ optional string emblem = 2;
715
+ optional string body = 3;
716
+ optional bool success = 4;
717
+ }
718
+
719
+ message CDOTAUserMsg_TutorialMinimapPosition {
720
+ }
721
+
722
+ message CDOTAUserMsg_SendGenericToolTip {
723
+ optional string title = 1;
724
+ optional string text = 2;
725
+ optional int32 entindex = 3;
726
+ optional bool close = 4;
727
+ }
728
+
729
+ message CDOTAUserMsg_WorldLine {
730
+ optional int32 player_id = 1;
731
+ optional CDOTAMsg_WorldLine worldline = 2;
732
+ }
733
+
734
+ message CDOTAUserMsg_ChatWheel {
735
+ optional EDOTAChatWheelMessage chat_message = 1 [default = K_EDOTA_CW_Ok];
736
+ optional uint32 player_id = 2;
737
+ optional uint32 account_id = 3;
738
+ optional uint32 param_hero_id = 4;
739
+ }
740
+
741
+ message CDOTAUserMsg_ReceivedXmasGift {
742
+ optional int32 player_id = 1;
743
+ optional string item_name = 2;
744
+ optional int32 inventory_slot = 3;
745
+ }
746
+
747
+ message CDOTAUserMsg_ShowSurvey {
748
+ optional int32 survey_id = 1;
749
+ optional uint32 match_id = 2;
750
+ optional string response_style = 3;
751
+ optional uint32 teammate_hero_id = 4;
752
+ optional string teammate_name = 5;
753
+ optional uint32 teammate_account_id = 6;
754
+ }
755
+
756
+ message CDOTAUserMsg_UpdateSharedContent {
757
+ optional int32 slot_type = 1;
758
+ }
759
+
760
+ message CDOTAUserMsg_TutorialRequestExp {
761
+ }
762
+
763
+ message CDOTAUserMsg_TutorialFade {
764
+ optional int32 tgt_alpha = 1;
765
+ }
766
+
767
+ message CDOTAUserMsg_TutorialPingMinimap {
768
+ optional uint32 player_id = 1;
769
+ optional float pos_x = 2;
770
+ optional float pos_y = 3;
771
+ optional float pos_z = 4;
772
+ optional int32 entity_index = 5;
773
+ }
774
+
775
+ message CDOTAUserMsg_GamerulesStateChanged {
776
+ optional uint32 state = 1;
777
+ }
778
+
779
+ message CDOTAUserMsg_AddQuestLogEntry {
780
+ optional string npc_name = 1;
781
+ optional string npc_dialog = 2;
782
+ }
783
+
784
+ message CDOTAUserMsg_SendStatPopup {
785
+ optional int32 player_id = 1;
786
+ optional CDOTAMsg_SendStatPopup statpopup = 2;
787
+ }
788
+
789
+ message CDOTAUserMsg_SendRoshanPopup {
790
+ optional bool reclaimed = 1;
791
+ optional int32 gametime = 2;
792
+ }
793
+
794
+ message CDOTAUserMsg_SendFinalGold {
795
+ repeated uint32 reliable_gold = 1;
796
+ repeated uint32 unreliable_gold = 2;
797
+ }
798
+
799
+ message CDOTAUserMsg_CustomMsg {
800
+ optional string message = 1;
801
+ optional int32 player_id = 2;
802
+ optional int32 value = 3;
803
+ }
804
+
805
+ message CDOTAUserMsg_CoachHUDPing {
806
+ optional uint32 player_id = 1;
807
+ optional CDOTAMsg_CoachHUDPing hud_ping = 2;
808
+ }
809
+
810
+ message CDOTAUserMsg_ClientLoadGridNav {
811
+ }
812
+
813
+ message CDOTAUserMsg_TE_Projectile {
814
+ optional int32 hSource = 1;
815
+ optional int32 hTarget = 2;
816
+ optional int32 moveSpeed = 3;
817
+ optional int32 sourceAttachment = 4;
818
+ optional int64 particleSystemHandle = 5;
819
+ optional bool dodgeable = 6;
820
+ optional bool isAttack = 7;
821
+ optional bool isEvaded = 8;
822
+ optional float expireTime = 9;
823
+ optional float maximpacttime = 10;
824
+ optional fixed32 colorgemcolor = 11;
825
+ }
826
+
827
+ message CDOTAUserMsg_TE_ProjectileLoc {
828
+ optional CMsgVector vSourceLoc = 1;
829
+ optional int32 hTarget = 2;
830
+ optional int32 moveSpeed = 3;
831
+ optional int64 particleSystemHandle = 4;
832
+ optional bool dodgeable = 5;
833
+ optional bool isAttack = 6;
834
+ optional bool isEvaded = 8;
835
+ optional float expireTime = 9;
836
+ optional CMsgVector vTargetLoc = 10;
837
+ optional fixed32 colorgemcolor = 11;
838
+ }
839
+
840
+ message CDOTAUserMsg_TE_DotaBloodImpact {
841
+ optional int32 entity = 1;
842
+ optional float scale = 2;
843
+ optional float xnormal = 3;
844
+ optional float ynormal = 4;
845
+ }
846
+
847
+ message CDOTAUserMsg_AbilityPing {
848
+ optional uint32 player_id = 1;
849
+ optional uint32 ability_id = 2;
850
+ optional DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
851
+ optional uint32 cooldown_seconds = 4;
852
+ optional uint32 level = 5;
853
+ optional bool passive = 6;
854
+ optional uint32 mana_needed = 7;
855
+ }
856
+
857
+ message CDOTAUserMsg_TE_UnitAnimation {
858
+ optional int32 entity = 1;
859
+ optional int32 sequenceVariant = 2;
860
+ optional float playbackrate = 3;
861
+ optional float castpoint = 4;
862
+ optional int32 type = 5;
863
+ optional int32 activity = 6;
864
+ }
865
+
866
+ message CDOTAUserMsg_TE_UnitAnimationEnd {
867
+ optional int32 entity = 1;
868
+ optional bool snap = 2;
869
+ }
870
+
871
+ message CDOTAUserMsg_ShowGenericPopup {
872
+ required string header = 1;
873
+ required string body = 2;
874
+ optional string param1 = 3;
875
+ optional string param2 = 4;
876
+ optional bool tint_screen = 5;
877
+ optional bool show_no_other_dialogs = 6;
878
+ }
879
+
880
+ message CDOTAUserMsg_VoteStart {
881
+ optional string title = 1;
882
+ optional float duration = 2;
883
+ optional int32 choice_count = 3;
884
+ repeated string choices = 4;
885
+ }
886
+
887
+ message CDOTAUserMsg_VoteUpdate {
888
+ repeated int32 choice_counts = 1;
889
+ }
890
+
891
+ message CDOTAUserMsg_VoteEnd {
892
+ optional int32 selected_choice = 1;
893
+ }
894
+
895
+ message CDOTAUserMsg_BoosterStatePlayer {
896
+ optional uint32 player_id = 1;
897
+ optional float bonus = 2;
898
+ optional float event_bonus = 3;
899
+ optional uint32 bonus_item_id = 4;
900
+ optional uint32 event_bonus_item_id = 5;
901
+ }
902
+
903
+ message CDOTAUserMsg_BoosterState {
904
+ repeated CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
905
+ }
906
+
907
+ message CDOTAUserMsg_PlayerMMR {
908
+ repeated sint32 mmr = 1 [packed = true];
909
+ }
910
+
911
+ message CDOTAUserMsg_AbilitySteal {
912
+ optional uint32 player_id = 1;
913
+ optional uint32 ability_id = 2;
914
+ optional uint32 ability_level = 3;
915
+ }
916
+
917
+ message CDOTAUserMsg_StatsHeroLookup {
918
+ optional int32 player_id = 1;
919
+ optional int32 hero_id = 2;
920
+ optional string hero_name = 3;
921
+ optional string persona = 4;
922
+ }
923
+
924
+ message CDOTAUserMsg_StatsHeroPositionInfo {
925
+ message PositionPair {
926
+ optional DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
927
+ optional uint32 position_count = 2;
928
+ }
929
+
930
+ optional float average_position = 1;
931
+ repeated CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
932
+ }
933
+
934
+ message CDOTAUserMsg_StatsHeroMinuteDetails {
935
+ optional uint32 last_hits = 1;
936
+ optional uint32 hero_kills = 2;
937
+ optional uint32 hero_damage = 3;
938
+ optional uint32 tower_damage = 4;
939
+ optional CDOTAUserMsg_StatsHeroPositionInfo position_info = 5;
940
+ optional uint32 total_xp = 6;
941
+ optional uint32 NET_worth = 7;
942
+ optional uint32 harvested_creep_gold = 8;
943
+ optional uint32 claimed_farm = 9;
944
+ optional uint32 wards_placed = 10;
945
+ optional uint32 runes_collected = 11;
946
+ optional uint32 tps_used = 12;
947
+ repeated uint32 mana_spent = 13;
948
+ repeated uint32 damage_absorbed = 14;
949
+ repeated uint32 damage_done = 15;
950
+ }
951
+
952
+ message CDOTAUserMsg_StatsTeamMinuteDetails {
953
+ message LocationPerformance {
954
+ optional uint32 location_category = 1;
955
+ optional uint32 stat_type = 2;
956
+ optional uint32 value = 3;
957
+ }
958
+
959
+ repeated CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
960
+ optional uint32 tower_kills = 2;
961
+ optional uint32 barrack_kills = 3;
962
+ optional uint32 available_lane_creep_gold = 4;
963
+ optional uint32 balance_kill_value = 5;
964
+ optional uint32 balance_tower_value = 6;
965
+ optional uint32 balance_barracks_value = 7;
966
+ optional uint32 balance_gold_value = 8;
967
+ optional uint32 balance_xp_value = 9;
968
+ repeated CDOTAUserMsg_StatsTeamMinuteDetails.LocationPerformance lane_performance = 10;
969
+ }
970
+
971
+ message CDOTAUserMsg_StatsPlayerKillShare {
972
+ optional int32 player_id = 1;
973
+ optional float kill_share_percent = 2;
974
+ optional float player_loc_x = 3;
975
+ optional float player_loc_y = 4;
976
+ optional float health_percent = 5;
977
+ optional float mana_percent = 6;
978
+ }
979
+
980
+ message CDOTAUserMsg_StatsKillDetails {
981
+ optional uint32 victim_id = 1;
982
+ repeated CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
983
+ optional uint32 damage_to_kill = 3;
984
+ optional uint32 effective_health = 4;
985
+ optional float death_time = 5;
986
+ optional uint32 killer_id = 6;
987
+ }
988
+
989
+ message CDOTAUserMsg_StatsMatchDetails {
990
+ message CDOTAUserMsg_StatsFightTeamDetails {
991
+ repeated uint32 participants = 1;
992
+ repeated uint32 deaths = 2;
993
+ optional uint32 gold_delta = 3;
994
+ optional uint32 xp_delta = 4;
995
+ }
996
+
997
+ message CDOTAUserMsg_StatsFightDetails {
998
+ optional float start_time = 1;
999
+ optional float end_time = 2;
1000
+ optional CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails radiant_fight_details = 3;
1001
+ optional CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails dire_fight_details = 4;
1002
+ }
1003
+
1004
+ repeated CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
1005
+ repeated CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
1006
+ repeated CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
1007
+ repeated CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
1008
+ repeated CDOTAUserMsg_StatsKillDetails dire_kills = 5;
1009
+ repeated CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails fight_details = 6;
1010
+ }
1011
+
1012
+ message CDOTAUserMsg_MiniTaunt {
1013
+ optional uint32 taunting_player_id = 1;
1014
+ }
1015
+
1016
+ message CDOTAUserMsg_SpeechBubble {
1017
+ optional bool destroy_all = 1;
1018
+ }
1019
+
1020
+ message CDOTAUserMsg_CustomHeaderMessage {
1021
+ optional uint32 player_id = 1;
1022
+ optional float duration = 2;
1023
+ optional string message = 3;
1024
+ optional int32 value = 4;
1025
+ }
1026
+
1027
+ message CMsgHeroAbilityStat {
1028
+ optional EHeroStatType stat_type = 1 [default = K_EHeroStatType_None];
1029
+ optional int32 int_value = 2;
1030
+ optional float float_value = 3;
1031
+ }
1032
+
1033
+ message CMsgCombatAnalyzerPlayerStat {
1034
+ optional uint32 account_id = 1;
1035
+ repeated CMsgHeroAbilityStat hero_ability_stats = 2;
1036
+ }
1037
+
1038
+ message CMsgCombatAnalyzerStats {
1039
+ optional uint64 match_id = 1;
1040
+ repeated CMsgCombatAnalyzerPlayerStat player_stats = 2;
1041
+ }
1042
+
1043
+ message CDOTAUserMsg_BeastChat {
1044
+ optional uint32 team = 1;
1045
+ optional string format = 2;
1046
+ optional string message = 3;
1047
+ optional string target = 4;
1048
+ }
1049
+
1050
+ message CDOTAUserMsg_CustomHudElement_Create {
1051
+ optional string element_id = 1;
1052
+ optional string layout_filename = 2;
1053
+ optional bytes data = 3;
1054
+ }
1055
+
1056
+ message CDOTAUserMsg_CustomHudElement_Modify {
1057
+ optional string element_id = 1;
1058
+ optional bool modify_visible = 2;
1059
+ optional bytes data = 3;
1060
+ }
1061
+
1062
+ message CDOTAUserMsg_CustomHudElement_Destroy {
1063
+ optional string element_id = 1;
1064
+ }
1065
+
1066
+ message CDOTAUserMsg_CompendiumStatePlayer {
1067
+ optional uint32 player_id = 1;
1068
+ optional uint32 level = 2;
1069
+ }
1070
+
1071
+ message CDOTAUserMsg_CompendiumState {
1072
+ repeated CDOTAUserMsg_CompendiumStatePlayer compendium_players = 1;
1073
+ }
1074
+
1075
+ message CDOTAUserMsg_ProjectionAbility {
1076
+ optional uint32 ability_id = 1;
1077
+ optional int32 caster_ent_index = 2;
1078
+ optional int32 caster_team = 3;
1079
+ optional bool channel_end = 4;
1080
+ optional CMsgVector origin = 5;
1081
+ optional bool track_caster_only = 6;
1082
+ optional float end_time = 7;
1083
+ optional int32 victim_ent_index = 8;
1084
+ }
1085
+
1086
+ message CDOTAUserMsg_ProjectionEvent {
1087
+ optional EProjectionEvent event_id = 1 [default = EPE_FirstBlood];
1088
+ optional uint32 team = 2;
1089
+ }
1090
+
1091
+ message CDOTAUserMsg_XPAlert {
1092
+ optional uint32 player_id = 1;
1093
+ optional uint32 target_entindex = 2;
1094
+ }
1095
+
1096
+ message CDOTAUserMsg_UpdateQuestProgress {
1097
+ }
1098
+
1099
+ message CMsgDOTACombatLogEntry {
1100
+ optional DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
1101
+ optional uint32 target_name = 2;
1102
+ optional uint32 target_source_name = 3;
1103
+ optional uint32 attacker_name = 4;
1104
+ optional uint32 damage_source_name = 5;
1105
+ optional uint32 inflictor_name = 6;
1106
+ optional bool is_attacker_illusion = 7;
1107
+ optional bool is_attacker_hero = 8;
1108
+ optional bool is_target_illusion = 9;
1109
+ optional bool is_target_hero = 10;
1110
+ optional bool is_visible_radiant = 11;
1111
+ optional bool is_visible_dire = 12;
1112
+ optional uint32 value = 13;
1113
+ optional int32 health = 14;
1114
+ optional float timestamp = 15;
1115
+ optional float stun_duration = 16;
1116
+ optional float slow_duration = 17;
1117
+ optional bool is_ability_toggle_on = 18;
1118
+ optional bool is_ability_toggle_off = 19;
1119
+ optional uint32 ability_level = 20;
1120
+ optional float location_x = 21;
1121
+ optional float location_y = 22;
1122
+ optional uint32 gold_reason = 23;
1123
+ optional float timestamp_raw = 24;
1124
+ optional float modifier_duration = 25;
1125
+ optional uint32 xp_reason = 26;
1126
+ optional uint32 last_hits = 27;
1127
+ optional uint32 attacker_team = 28;
1128
+ optional uint32 target_team = 29;
1129
+ optional uint32 obs_wards_placed = 30;
1130
+ optional uint32 assist_player0 = 31;
1131
+ optional uint32 assist_player1 = 32;
1132
+ optional uint32 assist_player2 = 33;
1133
+ optional uint32 assist_player3 = 34;
1134
+ optional uint32 stack_count = 35;
1135
+ optional bool hidden_modifier = 36;
1136
+ optional bool is_target_building = 37;
1137
+ optional uint32 neutral_camp_type = 38;
1138
+ optional uint32 rune_type = 39;
1139
+ repeated uint32 assist_players = 40;
1140
+ optional bool is_heal_save = 41;
1141
+ optional bool is_ultimate_ability = 42;
1142
+ optional uint32 attacker_hero_level = 43;
1143
+ optional uint32 target_hero_level = 44;
1144
+ optional uint32 xpm = 45;
1145
+ optional uint32 gpm = 46;
1146
+ optional uint32 event_location = 47;
1147
+ optional bool target_is_self = 48;
1148
+ optional uint32 damage_type = 49;
1149
+ optional bool invisibility_modifier = 50;
1150
+ optional uint32 damage_category = 51;
1151
+ optional uint32 networth = 52;
1152
+ }