Built-In Engine Events
< Zh | Dota 2 Workshop Tools | Scripting
查阅 https://github.com/SteamDatabase/GameTracking-Dota2/blob/master/game/dota/pak01_dir/resource/game.gameevents 和 https://github.com/SteamDatabase/GameTracking-Dota2/blob/master/game/core/pak01_dir/resource/core.gameevents 来获取最新内容。
游戏事件格式
- 事件名称中不能有空格,最大长度32
- 所有字符都是大小写敏感的
- 总游戏事件字节长度必须 < 1024
- 有效的数据键值类型包括:
- none : 未联网的值
- string : 以0结尾的字符串
- bool : 无符号整数, 1 bit
- byte : 无符号整数, 8 bit
- short : 符号整数, 16 bit
- long : 符号整数, 32 bit
- float : 浮点数, 32 bit
- uint64 : 无符号整数 64 bit
- local : 任意数据, 不联网到客户端
- 下述的键值名是保留字
- local : 如果设置为1, 事件不与客户端联网
- unreliable : 联网, 但不可靠
- suppress : 永不触发
- time : 发送服务器时间
- eventid : 保持事件ID
核心队伍事件
- team_info: 队伍信息
- teamid ( byte ): 队伍id
- teamname ( string ): 队伍名称 (例如 Team Blue)
- team_score: 队伍得分改变
- teamid ( byte ): 队伍id
- score ( short ): 总计队伍得分
- teamplay_broadcast_audio: 对队伍成员发出声音信号
- team ( byte ): 队伍id
- sound ( string ): 要发射的声音名称
玩家事件
- player_team: 玩家改变队伍
- userid ( short ): 服务器上的用户id
- team ( byte ): 队伍id
- oldteam( byte ): 旧队伍id
- disconnect( bool ): 由于玩家失去连接改变队伍
- autoteam( bool ): 玩家被自动分配队伍则为true
- silent( bool ): 不输出加入队伍信息则为true
- player_class: 玩家改变职业(英雄)
- userid ( short ): 服务器上的用户id
- class ( string ): 新的玩家职业 / 模型
- player_death [broken]: 玩家死亡[损坏]
- userid ( short ): 死亡的用户ID
- attacker ( short ): 凶手ID
- player_hurt [broken]:玩家受伤害[损坏]
- userid ( short ): 受伤的玩家索引号
- attacker ( short ): 攻击者索引号
- health ( byte ): 剩余生命值
- player_chat [broken]: 公频玩家聊天[损坏]
- teamonly ( bool ): 队伍聊天则为true
- userid( short ): 聊天玩家
- text( string ): 聊天文本
- player_score: 玩家得分改变
- userid ( short ): 服务器上的用户id
- kills ( short ): 击杀数
- deaths ( short ): 死亡数
- score ( short ): 总游戏得分
- player_spawn: 玩家在游戏中出生
- userid ( short ): 服务器上的用户id
- player_shoot: 玩家射出武器
- userid ( short ): 服务器上的用户id
- weapon ( byte ): 武器ID
- mode ( byte ): 武器模式
- player_use: 玩家使用实体情况
- userid ( short ): 服务器上的用户id
- entity ( short ): 玩家使用的实体
- player_changename: 玩家改变名称
- userid ( short ): 服务器上的用户id
- oldname ( string ): 玩家旧(当前)名称
- newname ( string ): 玩家新名称
- player_hintmessage: 玩家提示信息
- hintmessage ( string ): 提示本地化字符串
- player_reconnected : 玩家重连进游戏
- event(local): 包含相关信息的数据
游戏事件
- game_init: 游戏开始时发送
- game_newmap: 地图完全载入时发送
- mapname ( string ): 地图名称
- game_start: 新游戏开始
- roundslimit ( long ): 最大回合数
- timelimit ( long ): 回合时间限制
- fraglimit ( long ): frag时间限制
- objective ( string ): 回合物件
- game_end: 游戏结束
- winner ( byte ): 获胜队伍/用户id
- round_start
- timelimit ( long ): 回合时间限制,按秒
- fraglimit ( long ): frag时间限制,按秒
- objective ( string ): 回合物件
- round_end
- winner ( byte ): 获胜队伍/用户id
- reason ( byte ): 获胜理由
- message ( string ): 结束文字信息
- round_start_pre_entity: 回合开始预实体
- teamplay_round_start: 回合重新开始
- full_reset ( bool ): 是否地图完全重置
- hostname_changed: 主机名称改变
- hostname ( string ): 主机名称
- difficulty_changed: 难度改变
- newDifficulty ( short ): 新难度
- oldDifficulty ( short ): 旧难度
- strDifficulty( string ): 新难度,字符串
- finale_start: 终局开始
- rushes ( short )
- game_message: 游戏逻辑发送给每人的信息
- target ( byte ): 0 = console, 1 = HUD
- text ( string ): 信息文本
- break_breakable: 破坏可破坏物(breakable)
- entindex ( long ): 实体id
- userid ( short ): 用户id
- material ( byte ): BREAK_GLASS, BREAK_WOOD, etc
- break_prop: 破坏支柱(prop)
- entindex ( long ): 实体id
- userid ( short ): 用户id
- npc_spawned: NPC产生
- entindex ( long ): 实体id
- npc_replaced: NPC替换
- old_entindex ( long ):旧实体id
- new_entindex ( long ): 新实体id
- entity_killed: 实体被杀死
- entindex_killed( long ): 被杀实体id
- entindex_attacker ( long ): 攻击者实体id
- entindex_inflictor ( long ): 凶手实体id
- damagebits ( long ): 伤害值
- entity_hurt: 实体受伤
- entindex_killed( long ): 实体id
- entindex_attacker ( long ): 攻击者id
- entindex_inflictor ( long ): 凶手id
- damagebits ( long ): 伤害值
- bonus_updated: 奖励更新
- numadvanced ( short ): 高级数量
- numbronze ( short ): 青铜级数量
- numsilver ( short ): 白银级数量
- numgold ( short ): 黄金级数量
- player_stats_updated: 玩家状态更新
- forceupload ( bool ): 强制上传
- achievement_event: 成就事件
- achievement_name ( string ): 非本地化的成就名称
- cur_val ( short ): 朝向完成成就的步数
- max_val ( short ): 成就的总步数
- achievement_earned: 成就完成
- player ( byte ): 玩家实体id
- achievement ( short ): 成就ID
): 用于写入成就失败时的提示信息
- achievement_write_failed: 成就写入失败
- physgun_pickup: V蠢你根本是把HL里东西忘了删吧!!!!!
- entindex ( long ): entity picked up
- flare_ignite_npc: 同上
- entindex ( long ): entity ignited
- helicopter_grenade_punt_miss: V社你快够!
- user_data_downloaded: 当成就/状态从Steam或者XBox Live下载时发送
- ragdoll_dissolved: 骨骼贴图(Ragdoll)消散
- entindex ( long ): 实体id
- gameinstructor_draw
- gameinstructor_nodraw
- map_transition:地图过渡
- instructor_server_hint_create : 创建一个提示,完全使用服务器/地图提供的数据
- hint_name ( string ): 提示名称,用于随后引用(例如用指令清除提示,而不是等待其过期消失)
- hint_replace_key ( string ): 输入名称,同类信息将取代彼此
- hint_target ( long ): 显示提示的实体id
- hint_activator_userid ( short ): 激活者用户id
- hint_timeout ( short ): 消失前所需秒数, 0 = 永不
- hint_icon_onscreen ( string ): 提示在画面内时的提示图标(例如 icon_alert_red)
- hint_icon_offscreen ( string ): 提示在画面外时的提示图标(例如 icon_alert)
- hint_caption ( string ): 提示文本(例如 #ThisIsDangerous)
- hint_activator_caption ( string ): 只有激活者能看见的提示文本 (例如 #YouPushedItGood)
- hint_color ( string ): 提示颜色,使用(r,g,b(数值范围 0-255))格式
- hint_icon_offset ( float ): 相对实体原点的Z轴位移
- hint_range ( float ): 提示剔除范围
- hint_flags ( long ): 提示标签(flags)
- hint_binding ( string ): 当use_binding为屏幕内图标时,绑定使用
- hint_allow_nodraw_target ( bool ): 设置为false时, 当目标实体不可见时提示将消失
- hint_nooffscreen ( bool ): 设置为true时, 提示超出玩家视野时不会显示
- hint_forcecaption ( bool ): 设置为true时, 提示即使被阻挡也会显示文本
- hint_local_player_only ( bool ): 设置为true时, 只有本地玩家会看到提示
- instructor_server_hint_stop :摧毁一个服务器/地图产生的提示
- hint_name ( string ): 提示停止,将会停止全部此名称的提示
- chat_new_message: 包含新消息的指定频道
- channel ( byte ): 频道
- chat_members_changed: 玩家离开或加入的指定频道
- channel ( byte ): 频道
- game_rules_state_change: 游戏规则改变状态
经济事件
- inventory_updated
- itemdef ( short )
- cart_updated
- store_pricesheet_updated
- gc_connected
- item_schema_initialized
- drop_rate_modified
- event_ticket_modified
Mod事件
- modifier_event
- eventname ( string )
- caster ( short )
- ability ( short )
- dota_player_kill
- victim_userid ( short )
- killer1_userid ( short )
- killer2_userid ( short )
- killer3_userid ( short )
- killer4_userid ( short )
- killer5_userid ( short )
- bounty ( short )
- neutral ( short )
- greevil ( short )
- dota_player_deny
- killer_userid ( short )
- victim_userid ( short )
- dota_barracks_kill
- barracks_id ( short )
- dota_tower_kill
- killer_userid ( short )
- teamnumber ( short )
- gold ( short )
- dota_roshan_kill
- teamnumber ( short )
- gold ( short )
- dota_courier_lost
- teamnumber ( short )
- dota_courier_respawned
- teamnumber ( short )
- dota_glyph_used
- teamnumber ( short )
- dota_super_creeps
- teamnumber ( short )
- dota_item_purchased( edit: not dota_item_purchase )
- userid ( short )
- itemid ( short )
- dota_item_gifted
- userid ( short )
- itemid ( short )
- sourceid ( short )
- dota_rune_pickup
- userid ( short )
- type ( short )
- rune ( short )
- dota_rune_spotted
- userid ( short )
- rune ( short )
- dota_item_spotted
- userid ( short )
- itemid ( short )
- dota_no_battle_points
- userid ( short )
- reason ( short )
- dota_chat_informational
- userid ( short )
- type ( short )
- dota_action_item
- reason ( short )
- itemdef ( short )
- message ( short )
- dota_chat_ban_notification
- userid( short )
- dota_chat_event
- userid ( short )
- gold ( short )
- message ( short )
- dota_chat_timed_reward
- userid ( short )
- itmedef ( short )
- message ( short )
- dota_pause_event
- userid ( short )
- value ( short )
- message ( short )
- dota_chat_kill_streak
- gold ( short )
- killer_id ( short )
- killer_streak ( short )
- killer_multikill ( short )
- victim_id ( short )
- victim_streak ( short )
- dota_chat_first_blood
- gold ( short )
- killer_id ( short )
- victim_id ( short )
- dota_player_update_hero_selection
- tabcycle ( bool )
- dota_player_update_selected_unit
- dota_player_update_query_unit
- dota_player_update_killcam_unit
- dota_player_take_tower_damage
- PlayerID ( short )
- damage ( short )
- dota_hud_error_message
- reason ( byte )
- message ( string )
- dota_action_success
- dota_starting_position_changed
- dota_money_changed
- dota_enemy_money_changed
- dota_portrait_unit_stats_changed
- dota_portrait_unit_modifiers_changed
- dota_force_portrait_update
- dota_inventory_changed
- dota_item_picked_up
- itemname ( string )
- PlayerID ( short )
- ItemEntityIndex( short )
- HeroEntityIndex( short )
- dota_inventory_item_changed
- entityIndex ( short )
- dota_ability_changed
- dota_portrait_ability_layout_changed
- dota_inventory_item_added
- itemname ( string )
- dota_inventory_changed_query_unit
- dota_link_clicked
- link ( string )
- nav ( bool ): internal to item panel - preserve the nav stack
- nav_back ( bool ): internal to item panel - preserve the nav stack
- recipe ( short )
- shop ( short ): show the item in a particular shop
- dota_set_quick_buy
- item ( string )
- recipe ( byte )
- toggle ( bool )
- dota_quick_buy_changed
- item ( string )
- recipe ( byte )
- dota_player_shop_changed
- prevshopmask ( byte )
- shopmask ( byte )
- dota_player_show_killcam
- nodes ( byte )
- player ( short )
- dota_player_show_minikillcam
- nodes ( byte )
- player ( short )
- gc_user_session_created
- team_data_updated
- guild_data_updated
- guild_open_parties_updated
- fantasy_updated
- fantasy_league_changed
- fantasy_score_info_changed
- player_info_updated
- game_rules_state_change
- match_history_updated
- SteamID ( uint64 )
- match_details_updated
- matchID ( uint64 )
- result ( byte )
- live_games_updated
- recent_matches_updated
- Page ( short )
- news_updated
- persona_updated
- SteamID ( uint64 )
- tournament_state_updated
- party_updated
- lobby_updated
- dashboard_caches_cleared
- last_hit
- PlayerID ( short )
- EntKilled ( short )
- FirstBlood ( bool )
- HeroKill ( bool )
- TowerKill ( bool )
- player_completed_game
- PlayerID ( short )
- Winner ( byte )
- player_reconnected
- PlayerID ( short )
- nommed_tree
- PlayerID ( short )
- dota_rune_activated_server
- PlayerID ( short )
- rune ( short )
- dota_player_gained_level
- player ( short )
- level ( short )
- dota_player_pick_hero
- player ( short )
- heroindex ( short )
- hero ( string )
- dota_player_learned_ability
- player ( short )
- abilityname ( string )
- dota_player_used_ability
- PlayerID ( short )
- abilityname ( string )
- dota_non_player_used_ability
- abilityname ( string )
- dota_ability_channel_finished
- abilityname ( string )
- interrupted ( bool )
- dota_holdout_revive_complete
- caster( short )
- target( short )
- dota_player_killed
- PlayerID ( short )
- HeroKill ( bool )
- TowerKill ( bool )
- bindpanel_open
- bindpanel_close
- keybind_changed
- dota_item_drag_begin
- dota_item_drag_end
- dota_shop_item_drag_begin
- dota_shop_item_drag_end
- dota_item_purchased
- PlayerID ( short )
- itemname ( string )
- itemcost ( short )
- dota_item_used
- PlayerID ( short )
- itemname ( string )
- dota_item_auto_purchase
- item_id ( short )
- dota_unit_event
- victim ( short )
- attacker ( short )
- basepriority ( short )
- priority ( short )
- eventtype ( short ): EDOTAHeroChaseEventType
- dota_quest_started
- questIndex ( long ): entity index
- dota_quest_completed
- questIndex ( long ): entity index
- gameui_activated
- gameui_hidden
- player_fullyjoined
- userid ( short ): user ID on server
- name ( string ): player name
- dota_spectate_hero
- entindex ( byte )
- dota_match_done
- winningteam ( byte ): The ID of the winning team
- dota_match_done_client
- set_instructor_group_enabled
- group ( string )
- enabled ( short )
- joined_chat_channel
- channelName ( string )
- left_chat_channel
- channelName ( string )
- gc_chat_channel_list_updated
- today_messages_updated
- num_messages ( short )
- file_downloaded
- success ( bool )
- local_filename ( string )
- remote_url ( string )
- player_report_counts_updated
- positive_remaining ( byte )
- negative_remaining ( byte )
- positive_total ( short )
- negative_total ( short )
- scaleform_file_download_complete
- success ( bool )
- local_filename ( string )
- remote_url ( string )
- item_purchased
- itemid ( short )
- gc_mismatched_version
- demo_skip
- local (1)
- playback_tick ( long ): current playback tick
- skipto_tick ( long ): tick we're going to
- user_message_list ( local ): CSVCMsgList_UserMessages
- dota_hero_chase_list ( local ): CSVCMsgList_GameEvents
- demo_start
- local (1)
- dota_combatlog_list ( local ): CSVCMsgList_GameEvents that are combat log events
- dota_hero_chase_list ( local ): CSVCMsgList_GameEvents
- dota_pick_hero_list ( local ): CSVCMsgList_GameEvents
- demo_stop
- map_shutdown
- dota_workshop_fileselected
- filename ( string )
- dota_workshop_filecanceled
- rich_presence_updated
- dota_hero_random
- userid ( short )
- heroid ( short )
- dota_rd_chat_turn
- userid ( short )
- dota_favorite_heroes_updated
- profile_closed
- item_preview_closed
- dashboard_switched_section
- section ( short )
- dota_tournament_item_event
- winner_count ( short )
- event_type ( short )
- dota_hero_swap
- playerid1 ( byte )
- playerid2 ( byte )
- dota_reset_suggested_items : reset the purchased / checked off state of suggested items in the store
- halloween_high_score_received
- round ( short )
- halloween_phase_end
- phase ( byte )
- team ( byte )
- halloween_high_score_request_failed
- round ( short )
- dota_hud_skin_changed
- skin ( string )
- style ( byte )
- dota_inventory_player_got_item
- itemname ( string )
- player_is_experienced
- player_is_notexperienced
- dota_tutorial_lesson_start
- map_location_updated
- richpresence_custom_updated
- game_end_visible
- antiaddiction_update
- highlight_hud_element
- elementname ( string )
- duration ( float )
- hide_highlight_hud_element
- intro_video_finished
- matchmaking_status_visibility_changed
- practice_lobby_visibility_changed
- dota_courier_transfer_item
- full_ui_unlocked
- client_connectionless_packet
- local (1
- buffer( (local
- buffersize( long )
- address( string )
- hero_selector_preview_set
- setindex( short )
- antiaddiction_toast
- message ( string )
- duration ( float )
- hero_picker_shown
- hero_picker_hidden
- dota_local_quickbuy_changed
- show_center_message
- message ( string )
- duration ( float )
- clear_message_queue ( bool )
- hud_flip_changed
- flipped ( bool )
- frosty_points_updated
- defeated
- entindex ( short )
- reset_defeated
- booster_state_updated
- event_points_updated
- event_id ( short )
- points ( short )
- premium_points ( short )
- local_player_event_points
- points ( short )
- conversion_rate ( short )
- custom_game_difficulty
- difficulty ( byte )
- tree_cut
- tree_x ( float )
- tree_y ( float )
- ugc_details_arrived
- published_file_id ( uint64 )
- ugc_subscribed
- published_file_id ( uint64 )
- ugc_unsubscribed
- published_file_id ( uint64 )
- prizepool_received
- success ( bool )
- prizepool ( uint64 )
- leagueid ( uint64 )
- microtransaction_success
- txnid ( uint64 )
- dota_rubick_ability_steal
- abilityIndex ( short )
- abilityLevel ( byte )
- compendium_event_actions_loaded
- account_id ( uint64 )
- league_id ( uint64 )
- local_test( bool )
- original_points ( uint64 )
- compendium_selections_loaded
- account_id ( uint64 )
- league_id ( uint64 )
- local_test( bool )
- compendium_set_selection_failed
- account_id ( uint64 )
- league_id ( uint64 )
- local_test( bool )
- community_cached_names_updated