package dota; import "networkbasetypes.proto"; import "dota_commonmessages.proto"; option optimize_for = SPEED; option cc_generic_services = false; enum EDotaUserMessages { DOTA_UM_AddUnitToSelection = 464; DOTA_UM_AIDebugLine = 465; DOTA_UM_ChatEvent = 466; DOTA_UM_CombatHeroPositions = 467; DOTA_UM_CombatLogData = 468; DOTA_UM_CombatLogShowDeath = 470; DOTA_UM_CreateLinearProjectile = 471; DOTA_UM_DestroyLinearProjectile = 472; DOTA_UM_DodgeTrackingProjectiles = 473; DOTA_UM_GlobalLightColor = 474; DOTA_UM_GlobalLightDirection = 475; DOTA_UM_InvalidCommand = 476; DOTA_UM_LocationPing = 477; DOTA_UM_MapLine = 478; DOTA_UM_MiniKillCamInfo = 479; DOTA_UM_MinimapDebugPoint = 480; DOTA_UM_MinimapEvent = 481; DOTA_UM_NevermoreRequiem = 482; DOTA_UM_OverheadEvent = 483; DOTA_UM_SetNextAutobuyItem = 484; DOTA_UM_SharedCooldown = 485; DOTA_UM_SpectatorPlayerClick = 486; DOTA_UM_TutorialTipInfo = 487; DOTA_UM_UnitEvent = 488; DOTA_UM_ParticleManager = 489; DOTA_UM_BotChat = 490; DOTA_UM_HudError = 491; DOTA_UM_ItemPurchased = 492; DOTA_UM_Ping = 493; DOTA_UM_ItemFound = 494; DOTA_UM_CharacterSpeakConcept = 495; DOTA_UM_SwapVerify = 496; DOTA_UM_WorldLine = 497; DOTA_UM_TournamentDrop = 498; DOTA_UM_ItemAlert = 499; DOTA_UM_HalloweenDrops = 500; DOTA_UM_ChatWheel = 501; DOTA_UM_ReceivedXmasGift = 502; DOTA_UM_UpdateSharedContent = 503; DOTA_UM_TutorialRequestExp = 504; DOTA_UM_TutorialPingMinimap = 505; DOTA_UM_GamerulesStateChanged = 506; DOTA_UM_ShowSurvey = 507; DOTA_UM_TutorialFade = 508; DOTA_UM_AddQuestLogEntry = 509; DOTA_UM_SendStatPopup = 510; DOTA_UM_TutorialFinish = 511; DOTA_UM_SendRoshanPopup = 512; DOTA_UM_SendGenericToolTip = 513; DOTA_UM_SendFinalGold = 514; DOTA_UM_CustomMsg = 515; DOTA_UM_CoachHUDPing = 516; DOTA_UM_ClientLoadGridNav = 517; DOTA_UM_TE_Projectile = 518; DOTA_UM_TE_ProjectileLoc = 519; DOTA_UM_TE_DotaBloodImpact = 520; DOTA_UM_TE_UnitAnimation = 521; DOTA_UM_TE_UnitAnimationEnd = 522; DOTA_UM_AbilityPing = 523; DOTA_UM_ShowGenericPopup = 524; DOTA_UM_VoteStart = 525; DOTA_UM_VoteUpdate = 526; DOTA_UM_VoteEnd = 527; DOTA_UM_BoosterState = 528; DOTA_UM_WillPurchaseAlert = 529; DOTA_UM_TutorialMinimapPosition = 530; DOTA_UM_PlayerMMR = 531; DOTA_UM_AbilitySteal = 532; DOTA_UM_CourierKilledAlert = 533; DOTA_UM_EnemyItemAlert = 534; DOTA_UM_StatsMatchDetails = 535; DOTA_UM_MiniTaunt = 536; DOTA_UM_BuyBackStateAlert = 537; DOTA_UM_SpeechBubble = 538; DOTA_UM_CustomHeaderMessage = 539; DOTA_UM_QuickBuyAlert = 540; DOTA_UM_StatsHeroDetails = 541; DOTA_UM_PredictionResult = 542; DOTA_UM_ModifierAlert = 543; DOTA_UM_HPManaAlert = 544; DOTA_UM_GlyphAlert = 545; DOTA_UM_BeastChat = 546; DOTA_UM_SpectatorPlayerUnitOrders = 547; DOTA_UM_CustomHudElement_Create = 548; DOTA_UM_CustomHudElement_Modify = 549; DOTA_UM_CustomHudElement_Destroy = 550; DOTA_UM_CompendiumState = 551; DOTA_UM_ProjectionAbility = 552; DOTA_UM_ProjectionEvent = 553; DOTA_UM_CombatLogDataHLTV = 554; DOTA_UM_XPAlert = 555; DOTA_UM_UpdateQuestProgress = 556; DOTA_UM_MatchMetadata = 557; DOTA_UM_MatchDetails = 558; DOTA_UM_QuestStatus = 559; } enum DOTA_CHAT_MESSAGE { CHAT_MESSAGE_INVALID = -1; CHAT_MESSAGE_HERO_KILL = 0; CHAT_MESSAGE_HERO_DENY = 1; CHAT_MESSAGE_BARRACKS_KILL = 2; CHAT_MESSAGE_TOWER_KILL = 3; CHAT_MESSAGE_TOWER_DENY = 4; CHAT_MESSAGE_FIRSTBLOOD = 5; CHAT_MESSAGE_STREAK_KILL = 6; CHAT_MESSAGE_BUYBACK = 7; CHAT_MESSAGE_AEGIS = 8; CHAT_MESSAGE_ROSHAN_KILL = 9; CHAT_MESSAGE_COURIER_LOST = 10; CHAT_MESSAGE_COURIER_RESPAWNED = 11; CHAT_MESSAGE_GLYPH_USED = 12; CHAT_MESSAGE_ITEM_PURCHASE = 13; CHAT_MESSAGE_CONNECT = 14; CHAT_MESSAGE_DISCONNECT = 15; CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT = 16; CHAT_MESSAGE_DISCONNECT_TIME_REMAINING = 17; CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL = 18; CHAT_MESSAGE_RECONNECT = 19; CHAT_MESSAGE_PLAYER_LEFT = 20; CHAT_MESSAGE_SAFE_TO_LEAVE = 21; CHAT_MESSAGE_RUNE_PICKUP = 22; CHAT_MESSAGE_RUNE_BOTTLE = 23; CHAT_MESSAGE_INTHEBAG = 24; CHAT_MESSAGE_SECRETSHOP = 25; CHAT_MESSAGE_ITEM_AUTOPURCHASED = 26; CHAT_MESSAGE_ITEMS_COMBINED = 27; CHAT_MESSAGE_SUPER_CREEPS = 28; CHAT_MESSAGE_CANT_USE_ACTION_ITEM = 29; CHAT_MESSAGE_CHARGES_EXHAUSTED = 30; CHAT_MESSAGE_CANTPAUSE = 31; CHAT_MESSAGE_NOPAUSESLEFT = 32; CHAT_MESSAGE_CANTPAUSEYET = 33; CHAT_MESSAGE_PAUSED = 34; CHAT_MESSAGE_UNPAUSE_COUNTDOWN = 35; CHAT_MESSAGE_UNPAUSED = 36; CHAT_MESSAGE_AUTO_UNPAUSED = 37; CHAT_MESSAGE_YOUPAUSED = 38; CHAT_MESSAGE_CANTUNPAUSETEAM = 39; CHAT_MESSAGE_VOICE_TEXT_BANNED = 41; CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME = 42; CHAT_MESSAGE_REPORT_REMINDER = 43; CHAT_MESSAGE_ECON_ITEM = 44; CHAT_MESSAGE_TAUNT = 45; CHAT_MESSAGE_RANDOM = 46; CHAT_MESSAGE_RD_TURN = 47; CHAT_MESSAGE_DROP_RATE_BONUS = 49; CHAT_MESSAGE_NO_BATTLE_POINTS = 50; CHAT_MESSAGE_DENIED_AEGIS = 51; CHAT_MESSAGE_INFORMATIONAL = 52; CHAT_MESSAGE_AEGIS_STOLEN = 53; CHAT_MESSAGE_ROSHAN_CANDY = 54; CHAT_MESSAGE_ITEM_GIFTED = 55; CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL = 56; CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED = 57; CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED = 58; CHAT_MESSAGE_HOLDOUT_WALL_FINISHED = 59; CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO = 62; CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION = 63; CHAT_MESSAGE_DISCONNECT_LIMITED_HERO = 64; CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION = 65; CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS = 66; CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE = 67; CHAT_MESSAGE_PLAYER_LEFT_AFK = 73; CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG = 74; CHAT_MESSAGE_PLAYER_ABANDONED = 75; CHAT_MESSAGE_PLAYER_ABANDONED_AFK = 76; CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG = 77; CHAT_MESSAGE_WILL_NOT_BE_SCORED = 78; CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED = 79; CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK = 80; CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED = 81; CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON = 82; CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS = 83; CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY = 84; CHAT_MESSAGE_COMPENDIUM_LEVEL = 85; CHAT_MESSAGE_VICTORY_PREDICTION_STREAK = 86; CHAT_MESSAGE_ASSASSIN_ANNOUNCE = 87; CHAT_MESSAGE_ASSASSIN_SUCCESS = 88; CHAT_MESSAGE_ASSASSIN_DENIED = 89; CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM = 90; CHAT_MESSAGE_EFFIGY_KILL = 91; CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW = 92; CHAT_MESSAGE_YEAR_BEAST_KILLED = 93; CHAT_MESSAGE_PAUSE_COUNTDOWN = 94; CHAT_MESSAGE_COINS_WAGERED = 95; CHAT_MESSAGE_HERO_NOMINATED_BAN = 96; CHAT_MESSAGE_HERO_BANNED = 97; CHAT_MESSAGE_HERO_BAN_COUNT = 98; CHAT_MESSAGE_RIVER_PAINTED = 99; CHAT_MESSAGE_SCAN_USED = 100; } enum DOTA_NO_BATTLE_POINTS_REASONS { NO_BATTLE_POINTS_WRONG_LOBBY_TYPE = 1; NO_BATTLE_POINTS_PRACTICE_BOTS = 2; NO_BATTLE_POINTS_CHEATS_ENABLED = 3; NO_BATTLE_POINTS_LOW_PRIORITY = 4; } enum DOTA_CHAT_INFORMATIONAL { INFO_COOP_BATTLE_POINTS_RULES = 1; INFO_FROSTIVUS_ABANDON_REMINDER = 2; INFO_RANKED_REMINDER = 3; INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER = 4; } enum DOTA_ABILITY_PING_TYPE { ABILITY_PING_READY = 1; ABILITY_PING_MANA = 2; ABILITY_PING_COOLDOWN = 3; ABILITY_PING_ENEMY = 4; ABILITY_PING_UNLEARNED = 5; } enum DOTA_REPLAY_STATE_EVENT { DOTA_REPLAY_STATE_EVENT_GAME_START = 1; DOTA_REPLAY_STATE_EVENT_STARTING_HORN = 2; DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD = 3; } enum EDotaEntityMessages { DOTA_UNIT_SPEECH = 0; DOTA_UNIT_SPEECH_MUTE = 1; DOTA_UNIT_ADD_GESTURE = 2; DOTA_UNIT_REMOVE_GESTURE = 3; DOTA_UNIT_REMOVE_ALL_GESTURES = 4; DOTA_UNIT_FADE_GESTURE = 6; DOTA_UNIT_SPEECH_CLIENTSIDE_RULES = 7; } enum DOTA_PARTICLE_MESSAGE { DOTA_PARTICLE_MANAGER_EVENT_CREATE = 0; DOTA_PARTICLE_MANAGER_EVENT_UPDATE = 1; DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2; DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3; DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4; DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5; DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6; DOTA_PARTICLE_MANAGER_EVENT_DESTROY = 7; DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8; DOTA_PARTICLE_MANAGER_EVENT_RELEASE = 9; DOTA_PARTICLE_MANAGER_EVENT_LATENCY = 10; DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11; DOTA_PARTICLE_MANAGER_EVENT_FROZEN = 12; DOTA_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT = 13; DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION = 14; } enum DOTA_OVERHEAD_ALERT { OVERHEAD_ALERT_GOLD = 0; OVERHEAD_ALERT_DENY = 1; OVERHEAD_ALERT_CRITICAL = 2; OVERHEAD_ALERT_XP = 3; OVERHEAD_ALERT_BONUS_SPELL_DAMAGE = 4; OVERHEAD_ALERT_MISS = 5; OVERHEAD_ALERT_DAMAGE = 6; OVERHEAD_ALERT_EVADE = 7; OVERHEAD_ALERT_BLOCK = 8; OVERHEAD_ALERT_BONUS_POISON_DAMAGE = 9; OVERHEAD_ALERT_HEAL = 10; OVERHEAD_ALERT_MANA_ADD = 11; OVERHEAD_ALERT_MANA_LOSS = 12; OVERHEAD_ALERT_LAST_HIT_EARLY = 13; OVERHEAD_ALERT_LAST_HIT_CLOSE = 14; OVERHEAD_ALERT_LAST_HIT_MISS = 15; OVERHEAD_ALERT_MAGICAL_BLOCK = 16; } enum DOTA_POSITION_CATEGORY { DOTA_POSITION_NONE = 0; DOTA_POSITION_BOTTOM_LANE = 1; DOTA_POSITION_MID_LANE = 2; DOTA_POSITION_TOP_LANE = 3; DOTA_POSITION_RADIANT_JUNGLE = 4; DOTA_POSITION_DIRE_JUNGLE = 5; DOTA_POSITION_RADIANT_ANCIENTS = 6; DOTA_POSITION_DIRE_ANCIENTS = 7; DOTA_POSITION_RADIANT_SECRET_SHOP = 8; DOTA_POSITION_DIRE_SECRET_SHOP = 9; DOTA_POSITION_RIVER = 10; DOTA_POSITION_ROSHAN_PIT = 11; DOTA_POSITION_RADIANT_BASE = 12; DOTA_POSITION_DIRE_BASE = 13; DOTA_POSITION_FOUNTAIN = 14; DOTA_POSITION_OTHER = 15; } enum DOTA_ABILITY_TARGET_TYPE { DOTA_ABILITY_TARGET_NONE = 0; DOTA_ABILITY_TARGET_SELF = 1; DOTA_ABILITY_TARGET_ALLY_HERO = 2; DOTA_ABILITY_TARGET_ALLY_CREEP = 3; DOTA_ABILITY_TARGET_ENEMY_HERO = 4; DOTA_ABILITY_TARGET_ENEMY_CREEP = 5; } enum EHeroStatType { k_EHeroStatType_None = 0; k_EHeroStatType_AxeTotalDamage = 2000; k_EHeroStatType_BattleHungerDamage = 2001; k_EHeroStatType_CounterHelixDamage = 2002; k_EHeroStatType_CullingBladeDamage = 2003; k_EHeroStatType_BerserkersCallCastCount = 2004; k_EHeroStatType_BerserkersCallHeroesHitAverage = 2005; k_EHeroStatType_BerserkersCallOtherUnitsHit = 2006; k_EHeroStatType_BerserkersCallHeroAttacksTaken = 2007; k_EHeroStatType_BerserkersCallOtherAttacksTaken = 2008; k_EHeroStatType_BattleHungerCastCount = 2009; k_EHeroStatType_BattleHungerPotentialDuration = 2010; k_EHeroStatType_BattleHungerAverageDuration = 2011; k_EHeroStatType_CounterHelixProcCount = 2012; k_EHeroStatType_CounterHelixHeroProcCount = 2013; k_EHeroStatType_CounterHelixHeroesHitAverage = 2014; k_EHeroStatType_CounterHelixOtherUnitsHitCount = 2015; k_EHeroStatType_CullingBladeCastCount = 2016; k_EHeroStatType_CullingBladeKillCount = 2017; k_EHeroStatType_CullingBladeAverageHealthCulled = 2018; k_EHeroStatType_CullingBladeAverageDamageAvailable = 2019; k_EHeroStatType_CullingBladeHeroBuffAverage = 2020; } enum EPlayerVoiceListenState { kPVLS_None = 0; kPVLS_DeniedChatBanned = 1; kPVLS_DeniedPartner = 2; kPVLS_DeniedHLTVTalkerNotSpectator = 3; kPVLS_DeniedHLTVNoTalkerPlayerID = 4; kPVLS_DeniedHLTVTalkerNotBroadcaster = 5; kPVLS_DeniedTeamSpectator = 6; kPVLS_DeniedStudent = 8; kPVLS_Denied = 64; kPVLS_AllowHLTVTalkerIsBroadcaster = 65; kPVLS_AllowCoBroadcaster = 66; kPVLS_AllowAllChat = 67; kPVLS_AllowStudentToCoach = 68; kPVLS_AllowFellowStudent = 69; kPVLS_AllowTalkerIsCoach = 70; kPVLS_AllowCoachHearTeam = 71; kPVLS_AllowSameTeam = 72; kPVLS_AllowShowcase = 73; } enum EProjectionEvent { ePE_FirstBlood = 0; ePE_Killstreak_godlike = 1; } message CDOTAUserMsg_AIDebugLine { optional string message = 1; } message CDOTAUserMsg_Ping { optional uint32 ping = 2; optional uint32 loss = 3; } message CDOTAUserMsg_SwapVerify { optional uint32 player_id = 1; } message CDOTAUserMsg_ChatEvent { required DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID]; optional uint32 value = 2; optional sint32 playerid_1 = 3 [default = -1]; optional sint32 playerid_2 = 4 [default = -1]; optional sint32 playerid_3 = 5 [default = -1]; optional sint32 playerid_4 = 6 [default = -1]; optional sint32 playerid_5 = 7 [default = -1]; optional sint32 playerid_6 = 8 [default = -1]; optional uint32 value2 = 9; optional uint32 value3 = 10; } message CDOTAUserMsg_CombatLogShowDeath { } message CDOTAUserMsg_BotChat { optional uint32 player_id = 1; optional string format = 2; optional string message = 3; optional string target = 4; } message CDOTAUserMsg_CombatHeroPositions { optional uint32 index = 1; optional int32 time = 2; optional CMsgVector2D world_pos = 3; optional int32 health = 4; } message CDOTAUserMsg_MiniKillCamInfo { message Attacker { message Ability { optional uint32 ability = 1; optional int32 damage = 2; } optional uint32 attacker = 1; optional int32 total_damage = 2; repeated CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3; } repeated CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1; } message CDOTAUserMsg_GlobalLightColor { optional uint32 color = 1; optional float duration = 2; } message CDOTAUserMsg_GlobalLightDirection { optional CMsgVector direction = 1; optional float duration = 2; } message CDOTAUserMsg_LocationPing { optional uint32 player_id = 1; optional CDOTAMsg_LocationPing location_ping = 2; } message CDOTAUserMsg_ItemAlert { optional uint32 player_id = 1; optional CDOTAMsg_ItemAlert item_alert = 2; } message CDOTAUserMsg_EnemyItemAlert { optional uint32 player_id = 1; optional uint32 target_player_id = 2; optional int32 itemid = 3; optional uint32 rune_type = 4; } message CDOTAUserMsg_ModifierAlert { optional uint32 player_id = 1; optional string class_name = 2; optional uint32 stack_count = 3; optional bool is_debuff = 4; optional uint32 target_entindex = 5; } message CDOTAUserMsg_HPManaAlert { optional uint32 player_id = 1; optional uint32 target_entindex = 2; } message CDOTAUserMsg_GlyphAlert { optional uint32 player_id = 1; optional bool negative = 2; } message CDOTAUserMsg_WillPurchaseAlert { optional int32 itemid = 1; optional int32 player_id = 2; optional uint32 gold_remaining = 3; } message CDOTAUserMsg_BuyBackStateAlert { optional int32 player_id = 1; } message CDOTAUserMsg_QuickBuyAlert { optional int32 player_id = 1; optional int32 itemid = 2; optional int32 gold_required = 3; } message CDOTAUserMsg_CourierKilledAlert { optional uint32 team = 1; optional uint32 gold_value = 2; optional int32 entity_handle = 3; optional int32 timestamp = 4; } message CDOTAUserMsg_MinimapEvent { optional int32 event_type = 1; optional int32 entity_handle = 2; optional int32 x = 3; optional int32 y = 4; optional int32 duration = 5; } message CDOTAUserMsg_MapLine { optional int32 player_id = 1; optional CDOTAMsg_MapLine mapline = 2; } message CDOTAUserMsg_MinimapDebugPoint { optional CMsgVector location = 1; optional uint32 color = 2; optional int32 size = 3; optional float duration = 4; optional int32 index = 5; } message CDOTAUserMsg_CreateLinearProjectile { optional CMsgVector origin = 1; optional CMsgVector2D velocity = 2; optional int32 entindex = 4; optional uint64 particle_index = 5; optional int32 handle = 6; optional CMsgVector2D acceleration = 7; optional float max_speed = 8; } message CDOTAUserMsg_DestroyLinearProjectile { optional int32 handle = 1; } message CDOTAUserMsg_DodgeTrackingProjectiles { required int32 entindex = 1; optional bool attacks_only = 2; } message CDOTAUserMsg_SpectatorPlayerClick { required int32 entindex = 1; optional int32 order_type = 2; optional int32 target_index = 3; } message CDOTAUserMsg_SpectatorPlayerUnitOrders { optional int32 entindex = 1; optional int32 order_type = 2; repeated int32 units = 3; optional int32 target_index = 4; optional int32 ability_index = 5; optional CMsgVector position = 6; optional bool queue = 7; optional int32 sequence_number = 8; } message CDOTAUserMsg_NevermoreRequiem { optional int32 entity_handle = 1; optional int32 lines = 2; optional CMsgVector origin = 3; optional bool reverse = 4; } message CDOTAUserMsg_InvalidCommand { optional string message = 1; } message CDOTAUserMsg_HudError { optional int32 order_id = 1; } message CDOTAUserMsg_SharedCooldown { optional int32 entindex = 1; optional string name = 2; optional float cooldown = 3; optional int32 name_index = 4; } message CDOTAUserMsg_SetNextAutobuyItem { optional string name = 1; } message CDOTAUserMsg_HalloweenDrops { repeated uint32 item_defs = 1; repeated uint32 player_ids = 2; optional uint32 prize_list = 3; } message CDOTAUserMsg_PredictionResult { message Prediction { enum EResult { k_eResult_ItemGranted = 1; k_eResult_Destroyed = 2; } optional uint32 item_def = 1; optional uint32 num_correct = 2; optional uint32 num_fails = 3; optional CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted]; repeated uint32 granted_item_defs = 6; } optional uint32 account_id = 1; optional uint64 match_id = 2; optional bool correct = 3; repeated CDOTAUserMsg_PredictionResult.Prediction predictions = 4; } message CDOTAResponseQuerySerialized { message Fact { enum ValueType { NUMERIC = 1; STRING = 2; } required int32 key = 1; required CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC]; optional float val_numeric = 3; optional string val_string = 4; } repeated CDOTAResponseQuerySerialized.Fact facts = 1; } message CDOTASpeechMatchOnClient { optional int32 concept = 1; optional int32 recipient_type = 2; optional CDOTAResponseQuerySerialized responsequery = 3; optional sfixed32 randomseed = 4 [default = 0]; } message CDOTAUserMsg_UnitEvent { message Speech { optional int32 concept = 1; optional string response = 2; optional int32 recipient_type = 3; optional int32 level = 4; optional bool muteable = 5 [default = false]; } message SpeechMute { optional float delay = 1 [default = 0.5]; } message AddGesture { optional int32 activity = 1; optional int32 slot = 2; optional float fade_in = 3 [default = 0]; optional float fade_out = 4 [default = 0.1]; optional float playback_rate = 5 [default = 1]; } message RemoveGesture { optional int32 activity = 1; } message BloodImpact { optional int32 scale = 1; optional int32 x_normal = 2; optional int32 y_normal = 3; } message FadeGesture { optional int32 activity = 1; } required EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH]; required int32 entity_index = 2; optional CDOTAUserMsg_UnitEvent.Speech speech = 3; optional CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4; optional CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5; optional CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6; optional CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7; optional CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8; optional CDOTASpeechMatchOnClient speech_match_on_client = 9; } message CDOTAUserMsg_ItemPurchased { optional int32 item_index = 1; } message CDOTAUserMsg_ItemFound { optional int32 player = 1; optional int32 quality = 2; optional int32 rarity = 3; optional int32 method = 4; optional int32 itemdef = 5; } message CDOTAUserMsg_ParticleManager { message ReleaseParticleIndex { } message CreateParticle { optional fixed64 particle_name_index = 1; optional int32 attach_type = 2; optional int32 entity_handle = 3; optional int32 entity_handle_for_modifiers = 4; } message DestroyParticle { optional bool destroy_immediately = 1; } message DestroyParticleInvolving { optional bool destroy_immediately = 1; optional int32 entity_handle = 3; } message UpdateParticle { optional int32 control_point = 1; optional CMsgVector position = 2; } message UpdateParticleFwd { optional int32 control_point = 1; optional CMsgVector forward = 2; } message UpdateParticleOrient { optional int32 control_point = 1; optional CMsgVector forward = 2; optional CMsgVector right = 3; optional CMsgVector up = 4; } message UpdateParticleFallback { optional int32 control_point = 1; optional CMsgVector position = 2; } message UpdateParticleOffset { optional int32 control_point = 1; optional CMsgVector origin_offset = 2; } message UpdateParticleEnt { optional int32 control_point = 1; optional int32 entity_handle = 2; optional int32 attach_type = 3; optional int32 attachment = 4; optional CMsgVector fallback_position = 5; optional bool include_wearables = 6; } message UpdateParticleSetFrozen { optional bool set_frozen = 1; } message UpdateParticleShouldDraw { optional bool should_draw = 1; } message ChangeControlPointAttachment { optional int32 attachment_old = 1; optional int32 attachment_new = 2; optional int32 entity_handle = 3; } message UpdateEntityPosition { optional int32 entity_handle = 1; optional CMsgVector position = 2; } required DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE]; required uint32 index = 2; optional CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3; optional CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4; optional CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5; optional CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6; optional CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7; optional CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8; optional CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9; optional CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10; optional CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11; optional CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12; optional CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14; optional CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15; optional CDOTAUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16; optional CDOTAUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17; } message CDOTAUserMsg_OverheadEvent { required DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD]; optional int32 value = 2; optional int32 target_player_entindex = 3; optional int32 target_entindex = 4; optional int32 source_player_entindex = 5; } message CDOTAUserMsg_TutorialTipInfo { optional string name = 1; optional int32 progress = 2; } message CDOTAUserMsg_TutorialFinish { optional string heading = 1; optional string emblem = 2; optional string body = 3; optional bool success = 4; } message CDOTAUserMsg_TutorialMinimapPosition { } message CDOTAUserMsg_SendGenericToolTip { optional string title = 1; optional string text = 2; optional int32 entindex = 3; optional bool close = 4; } message CDOTAUserMsg_WorldLine { optional int32 player_id = 1; optional CDOTAMsg_WorldLine worldline = 2; } message CDOTAUserMsg_ChatWheel { optional EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok]; optional uint32 player_id = 2; optional uint32 account_id = 3; optional uint32 param_hero_id = 4; } message CDOTAUserMsg_ReceivedXmasGift { optional int32 player_id = 1; optional string item_name = 2; optional int32 inventory_slot = 3; } message CDOTAUserMsg_ShowSurvey { optional int32 survey_id = 1; optional uint64 match_id = 2; optional string response_style = 3; optional uint32 teammate_hero_id = 4; optional string teammate_name = 5; optional uint32 teammate_account_id = 6; } message CDOTAUserMsg_UpdateSharedContent { optional int32 slot_type = 1; } message CDOTAUserMsg_TutorialRequestExp { } message CDOTAUserMsg_TutorialFade { optional int32 tgt_alpha = 1; } message CDOTAUserMsg_TutorialPingMinimap { optional uint32 player_id = 1; optional float pos_x = 2; optional float pos_y = 3; optional float pos_z = 4; optional int32 entity_index = 5; } message CDOTAUserMsg_GamerulesStateChanged { optional uint32 state = 1; } message CDOTAUserMsg_AddQuestLogEntry { optional string npc_name = 1; optional string npc_dialog = 2; } message CDOTAUserMsg_SendStatPopup { optional int32 player_id = 1; optional CDOTAMsg_SendStatPopup statpopup = 2; } message CDOTAUserMsg_SendRoshanPopup { optional bool reclaimed = 1; optional int32 gametime = 2; } message CDOTAUserMsg_SendFinalGold { repeated uint32 reliable_gold = 1; repeated uint32 unreliable_gold = 2; } message CDOTAUserMsg_CustomMsg { optional string message = 1; optional int32 player_id = 2; optional int32 value = 3; } message CDOTAUserMsg_CoachHUDPing { optional uint32 player_id = 1; optional CDOTAMsg_CoachHUDPing hud_ping = 2; } message CDOTAUserMsg_ClientLoadGridNav { } message CDOTAUserMsg_TE_Projectile { optional int32 hSource = 1; optional int32 hTarget = 2; optional int32 moveSpeed = 3; optional int32 sourceAttachment = 4; optional int64 particleSystemHandle = 5; optional bool dodgeable = 6; optional bool isAttack = 7; optional bool isEvaded = 8; optional float expireTime = 9; optional float maximpacttime = 10; optional fixed32 colorgemcolor = 11; } message CDOTAUserMsg_TE_ProjectileLoc { optional CMsgVector vSourceLoc = 1; optional int32 hTarget = 2; optional int32 moveSpeed = 3; optional int64 particleSystemHandle = 4; optional bool dodgeable = 5; optional bool isAttack = 6; optional bool isEvaded = 8; optional float expireTime = 9; optional CMsgVector vTargetLoc = 10; optional fixed32 colorgemcolor = 11; } message CDOTAUserMsg_TE_DotaBloodImpact { optional int32 entity = 1; optional float scale = 2; optional float xnormal = 3; optional float ynormal = 4; } message CDOTAUserMsg_AbilityPing { optional uint32 player_id = 1; optional uint32 ability_id = 2; optional DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY]; optional uint32 cooldown_seconds = 4; optional uint32 level = 5; optional bool passive = 6; optional uint32 mana_needed = 7; } message CDOTAUserMsg_TE_UnitAnimation { optional int32 entity = 1; optional int32 sequenceVariant = 2; optional float playbackrate = 3; optional float castpoint = 4; optional int32 type = 5; optional int32 activity = 6; } message CDOTAUserMsg_TE_UnitAnimationEnd { optional int32 entity = 1; optional bool snap = 2; } message CDOTAUserMsg_ShowGenericPopup { required string header = 1; required string body = 2; optional string param1 = 3; optional string param2 = 4; optional bool tint_screen = 5; optional bool show_no_other_dialogs = 6; } message CDOTAUserMsg_VoteStart { optional string title = 1; optional float duration = 2; optional int32 choice_count = 3; repeated string choices = 4; } message CDOTAUserMsg_VoteUpdate { repeated int32 choice_counts = 1; } message CDOTAUserMsg_VoteEnd { optional int32 selected_choice = 1; } message CDOTAUserMsg_BoosterStatePlayer { optional uint32 player_id = 1; optional float bonus = 2; optional float event_bonus = 3; optional uint32 bonus_item_id = 4; optional uint32 event_bonus_item_id = 5; } message CDOTAUserMsg_BoosterState { repeated CDOTAUserMsg_BoosterStatePlayer boosted_players = 1; } message CDOTAUserMsg_PlayerMMR { repeated sint32 mmr = 1 [packed = true]; } message CDOTAUserMsg_AbilitySteal { optional uint32 player_id = 1; optional uint32 ability_id = 2; optional uint32 ability_level = 3; } message CDOTAUserMsg_StatsHeroLookup { optional int32 player_id = 1; optional int32 hero_id = 2; optional string hero_name = 3; optional string persona = 4; } message CDOTAUserMsg_StatsHeroPositionInfo { message PositionPair { optional DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE]; optional uint32 position_count = 2; } optional float average_position = 1; repeated CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2; } message CDOTAUserMsg_StatsHeroMinuteDetails { optional uint32 last_hits = 1; optional uint32 hero_kills = 2; optional uint32 hero_damage = 3; optional uint32 tower_damage = 4; optional CDOTAUserMsg_StatsHeroPositionInfo position_info = 5; optional uint32 total_xp = 6; optional uint32 net_worth = 7; optional uint32 harvested_creep_gold = 8; optional uint32 claimed_farm = 9; optional uint32 wards_placed = 10; optional uint32 runes_collected = 11; optional uint32 tps_used = 12; repeated uint32 mana_spent = 13; repeated uint32 damage_absorbed = 14; repeated uint32 damage_done = 15; } message CDOTAUserMsg_StatsTeamMinuteDetails { message LocationPerformance { optional uint32 location_category = 1; optional uint32 stat_type = 2; optional uint32 value = 3; } repeated CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1; optional uint32 tower_kills = 2; optional uint32 barrack_kills = 3; optional uint32 available_lane_creep_gold = 4; optional uint32 balance_kill_value = 5; optional uint32 balance_tower_value = 6; optional uint32 balance_barracks_value = 7; optional uint32 balance_gold_value = 8; optional uint32 balance_xp_value = 9; repeated CDOTAUserMsg_StatsTeamMinuteDetails.LocationPerformance lane_performance = 10; } message CDOTAUserMsg_StatsPlayerKillShare { optional int32 player_id = 1; optional float kill_share_percent = 2; optional float player_loc_x = 3; optional float player_loc_y = 4; optional float health_percent = 5; optional float mana_percent = 6; } message CDOTAUserMsg_StatsKillDetails { optional uint32 victim_id = 1; repeated CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2; optional uint32 damage_to_kill = 3; optional uint32 effective_health = 4; optional float death_time = 5; optional uint32 killer_id = 6; } message CDOTAUserMsg_StatsMatchDetails { message CDOTAUserMsg_StatsFightTeamDetails { repeated uint32 participants = 1; repeated uint32 deaths = 2; optional uint32 gold_delta = 3; optional uint32 xp_delta = 4; } message CDOTAUserMsg_StatsFightDetails { optional float start_time = 1; optional float end_time = 2; optional CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails radiant_fight_details = 3; optional CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails dire_fight_details = 4; } repeated CDOTAUserMsg_StatsHeroLookup hero_lookup = 1; repeated CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2; repeated CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3; repeated CDOTAUserMsg_StatsKillDetails radiant_kills = 4; repeated CDOTAUserMsg_StatsKillDetails dire_kills = 5; repeated CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails fight_details = 6; } message CDOTAUserMsg_MiniTaunt { optional uint32 taunting_player_id = 1; } message CDOTAUserMsg_SpeechBubble { optional bool destroy_all = 1; } message CDOTAUserMsg_CustomHeaderMessage { optional uint32 player_id = 1; optional float duration = 2; optional string message = 3; optional int32 value = 4; } message CMsgHeroAbilityStat { optional EHeroStatType stat_type = 1 [default = k_EHeroStatType_None]; optional int32 int_value = 2; optional float float_value = 3; } message CMsgCombatAnalyzerPlayerStat { optional uint32 account_id = 1; repeated CMsgHeroAbilityStat hero_ability_stats = 2; } message CMsgCombatAnalyzerStats { optional uint64 match_id = 1; repeated CMsgCombatAnalyzerPlayerStat player_stats = 2; } message CDOTAUserMsg_BeastChat { optional uint32 team = 1; optional string format = 2; optional string message = 3; optional string target = 4; } message CDOTAUserMsg_CustomHudElement_Create { optional string element_id = 1; optional string layout_filename = 2; optional bytes data = 3; } message CDOTAUserMsg_CustomHudElement_Modify { optional string element_id = 1; optional bool modify_visible = 2; optional bytes data = 3; } message CDOTAUserMsg_CustomHudElement_Destroy { optional string element_id = 1; } message CDOTAUserMsg_CompendiumStatePlayer { optional uint32 player_id = 1; optional uint32 level = 2; } message CDOTAUserMsg_CompendiumState { repeated CDOTAUserMsg_CompendiumStatePlayer compendium_players = 1; } message CDOTAUserMsg_ProjectionAbility { optional uint32 ability_id = 1; optional int32 caster_ent_index = 2; optional int32 caster_team = 3; optional bool channel_end = 4; optional CMsgVector origin = 5; optional bool track_caster_only = 6; optional float end_time = 7; optional int32 victim_ent_index = 8; } message CDOTAUserMsg_ProjectionEvent { optional EProjectionEvent event_id = 1 [default = ePE_FirstBlood]; optional uint32 team = 2; } message CDOTAUserMsg_XPAlert { optional uint32 player_id = 1; optional uint32 target_entindex = 2; } message CDOTAUserMsg_UpdateQuestProgress { } message CDOTAUserMsg_QuestStatus { required uint32 player_id = 1; optional uint32 quest_id = 2; optional uint32 challenge_id = 3; optional uint32 progress = 4; optional uint32 goal = 5; optional uint32 query = 6; optional float fail_gametime = 7; optional uint32 item_id = 8; }