Zh/CS:GO VScript Examples: Difference between revisions
< Zh
Jump to navigation
Jump to search
No edit summary |
1416006136 (talk | contribs) m (language bar) |
||
(8 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{LanguageBar|title=CS:GO VScript 范例}} | |||
{{Orphan|date=January 2024}} | |||
{{csgo}} 以下是适用于[[Counter-Strike: Global Offensive]] 的 [[VScript|vscripts]] 脚本 . | {{csgo}} 以下是适用于[[Counter-Strike: Global Offensive]] 的 [[VScript|vscripts]] 脚本 . | ||
Line 53: | Line 56: | ||
<source lang=cpp> | <source lang=cpp> | ||
//以下脚本需要以下在hammer里放好以下实体: | //以下脚本需要以下在hammer里放好以下实体: | ||
//一个叫sentry_main的的枪模型 | //一个叫sentry_main的的枪模型 | ||
//然后运行StartAimBot | //然后运行StartAimBot | ||
Line 59: | Line 61: | ||
function StartAimBot() { | function StartAimBot() { | ||
sentry <- Entities.FindByName(null,"sentry_main"); | sentry <- Entities.FindByName(null,"sentry_main"); | ||
} | } | ||
function Think() { | function Think() { | ||
local Target = Entities.FindByClassnameNearest( "player", | local Target = Entities.FindByClassnameNearest( "player", sentry.GetOrigin(), 512 ); | ||
if(Target != null) { | if(Target != null) { | ||
local m_targetVector = Target.EyePosition(); | local m_targetVector = Target.EyePosition(); | ||
Line 77: | Line 78: | ||
sentry.SetAngles(pitch,yaw,0); | sentry.SetAngles(pitch,yaw,0); | ||
} | } | ||
} | } | ||
</source> | </source> | ||
{{todo}} | ===在hud上显示消息=== | ||
<source lang=cpp> | |||
_msg <- null | |||
//如何调用? | |||
//ShowMsg(activator,"<font color='#FFFF00'>这是一条红色的消息"); | |||
function ShowMsg(player, message) | |||
{ | |||
if(_msg == null) | |||
_msg <- Entities.CreateByClassname("env_message"); | |||
_msg.__KeyValueFromString("message", message); | |||
_msg.SetOwner(player); | |||
EntFireByHandle(_msg, "showmessage", "", 0, player, player); | |||
} | |||
</source> | |||
===事件监听器=== | |||
来自:[https://www.reddit.com/r/csmapmakers/comments/4qlmqt/vscript_csgo_event_listener_snippet/?st=j6evoodd&sh=4e92c813 daniilshukshin] | |||
<source lang=cpp> | |||
//EVENTS | |||
EVENT_PLAYER_DEATH <- 0; | |||
EVENT_OTHER_DEATH <- 1; | |||
EVENT_PLAYER_HURT <- 2; | |||
EVENT_ITEM_PURCHASE <- 3; | |||
EVENT_BOMB_BEGINPLANT <- 4; | |||
EVENT_BOMB_ABORTPLANT <- 5; | |||
EVENT_BOMB_PLANTED <- 6; | |||
EVENT_BOMB_DEFUSED <- 7; | |||
EVENT_BOMB_EXPLODED <- 8; | |||
EVENT_BOMB_DROPPED <- 9; | |||
EVENT_BOMB_PICKUP <- 10; | |||
EVENT_DEFUSER_DROPPED <- 11; | |||
EVENT_DEFUSER_PICKUP <- 12; | |||
EVENT_ANNOUNCE_PHASE_END <- 13; | |||
EVENT_CS_INTERMISSION <- 14; | |||
EVENT_BOMB_BEGINDEFUSE <- 15; | |||
EVENT_BOMB_ABORTDEFUSE <- 16; | |||
EVENT_HOSTAGE_FOLLOWS <- 17; | |||
EVENT_HOSTAGE_HURT <- 18; | |||
EVENT_HOSTAGE_KILLED <- 19; | |||
EVENT_HOSTAGE_RESCUED <- 20; | |||
EVENT_HOSTAGE_STOPS_FOLLOWING <- 21; | |||
EVENT_HOSTAGE_RESCUED_ALL <- 22; | |||
EVENT_HOSTAGE_CALL_FOR_HELP <- 23; | |||
EVENT_VIP_ESCAPED <- 24; | |||
EVENT_VIP_KILLED <- 25; | |||
EVENT_PLAYER_RADIO <- 26; | |||
EVENT_BOMB_BEEP <- 27; | |||
EVENT_WEAPON_FIRE <- 28; | |||
EVENT_WEAPON_FIRE_ON_EMPTY <- 29; | |||
EVENT_WEAPON_OUTOFAMMO <- 30; | |||
EVENT_WEAPON_RELOAD <- 31; | |||
EVENT_WEAPON_ZOOM <- 32; | |||
EVENT_SILENCER_DETACH <- 33; | |||
EVENT_INSPECT_WEAPON <- 34; | |||
EVENT_WEAPON_ZOOM_RIFLE <- 35; | |||
EVENT_PLAYER_SPAWNED <- 36; | |||
EVENT_ITEM_PICKUP <- 37; | |||
EVENT_AMMO_PICKUP <- 38; | |||
EVENT_ITEM_EQUIP <- 39; | |||
EVENT_ENTER_BUYZONE <- 40; | |||
EVENT_EXIT_BUYZONE <- 41; | |||
EVENT_BUYTIME_ENDED <- 42; | |||
EVENT_ENTER_BOMBZONE <- 43; | |||
EVENT_EXIT_BOMBZONE <- 44; | |||
EVENT_ENTER_RESCUE_ZONE <- 45; | |||
EVENT_EXIT_RESCUE_ZONE <- 46; | |||
EVENT_SILENCER_OFF <- 47; | |||
EVENT_SILENCER_ON <- 48; | |||
EVENT_BUYMENU_OPEN <- 49; | |||
EVENT_BUYMENU_CLOSE <- 50; | |||
EVENT_ROUND_PRESTART <- 51; | |||
EVENT_ROUND_POSTSTART <- 52; | |||
EVENT_ROUND_START <- 53; | |||
EVENT_ROUND_END <- 54; | |||
EVENT_GRENADE_BOUNCE <- 55; | |||
EVENT_HEGRENADE_DETONATE <- 56; | |||
EVENT_FLASHBANG_DETONATE <- 57; | |||
EVENT_SMOKEGRENADE_DETONATE <- 58; | |||
EVENT_SMOKEGRENADE_EXPIRED <- 59; | |||
EVENT_MOLOTOV_DETONATE <- 60; | |||
EVENT_DECOY_DETONATE <- 61; | |||
EVENT_DECOY_STARTED <- 62; | |||
EVENT_TAGRENADE_DETONATE <- 63; | |||
EVENT_INFERNO_STARTBURN <- 64; | |||
EVENT_INFERNO_EXPIRE <- 65; | |||
EVENT_INFERNO_EXTINGUISH <- 66; | |||
EVENT_DECOY_FIRING <- 67; | |||
EVENT_BULLET_IMPACT <- 68; | |||
EVENT_PLAYER_FOOTSTEP <- 69; | |||
EVENT_PLAYER_JUMP <- 70; | |||
EVENT_PLAYER_BLIND <- 71; | |||
EVENT_PLAYER_FALLDAMAGE <- 72; | |||
EVENT_DOOR_MOVING <- 73; | |||
EVENT_ROUND_FREEZE_END <- 74; | |||
EVENT_MB_INPUT_LOCK_SUCCESS <- 75; | |||
EVENT_MB_INPUT_LOCK_CANCEL <- 76; | |||
EVENT_NAV_BLOCKED <- 77; | |||
EVENT_NAV_GENERATE <- 78; | |||
EVENT_PLAYER_STATS_UPDATED <- 79; | |||
EVENT_ACHIEVEMENT_INFO_LOADED <- 80; | |||
EVENT_SPEC_TARGET_UPDATED <- 81; | |||
EVENT_SPEC_MODE_UPDATED <- 82; | |||
EVENT_HLTV_CHANGED_MODE <- 83; | |||
EVENT_CS_GAME_DISCONNECTED <- 84; | |||
EVENT_CS_WIN_PANEL_ROUND <- 85; | |||
EVENT_CS_WIN_PANEL_MATCH <- 86; | |||
EVENT_CS_MATCH_END_RESTART <- 87; | |||
EVENT_CS_PRE_RESTART <- 88; | |||
EVENT_SHOW_FREEZEPANEL <- 89; | |||
EVENT_HIDE_FREEZEPANEL <- 90; | |||
EVENT_FREEZECAM_STARTED <- 91; | |||
EVENT_PLAYER_AVENGED_TEAMMATE <- 92; | |||
EVENT_ACHIEVEMENT_EARNED <- 93; | |||
EVENT_ACHIEVEMENT_EARNED_LOCAL <- 94; | |||
EVENT_ITEM_FOUND <- 95; | |||
EVENT_ITEMS_GIFTED <- 96; | |||
EVENT_REPOST_XBOX_ACHIEVEMENTS <- 97; | |||
EVENT_MATCH_END_CONDITIONS <- 98; | |||
EVENT_ROUND_MVP <- 99; | |||
EVENT_PLAYER_DECAL <- 100; | |||
EVENT_TEAMPLAY_ROUND_START <- 101; | |||
EVENT_CLIENT_DISCONNECT <- 102; | |||
EVENT_GG_PLAYER_LEVELUP <- 103; | |||
EVENT_GGTR_PLAYER_LEVELUP <- 104; | |||
EVENT_ASSASSINATION_TARGET_KILLED <- 105; | |||
EVENT_GGPROGRESSIVE_PLAYER_LEVELUP <- 106; | |||
EVENT_GG_KILLED_ENEMY <- 107; | |||
EVENT_GG_FINAL_WEAPON_ACHIEVED <- 108; | |||
EVENT_GG_BONUS_GRENADE_ACHIEVED <- 109; | |||
EVENT_SWITCH_TEAM <- 110; | |||
EVENT_GG_LEADER <- 111; | |||
EVENT_GG_TEAM_LEADER <- 112; | |||
EVENT_GG_PLAYER_IMPENDING_UPGRADE <- 113; | |||
EVENT_WRITE_PROFILE_DATA <- 114; | |||
EVENT_TRIAL_TIME_EXPIRED <- 115; | |||
EVENT_UPDATE_MATCHMAKING_STATS <- 116; | |||
EVENT_PLAYER_RESET_VOTE <- 117; | |||
EVENT_ENABLE_RESTART_VOTING <- 118; | |||
EVENT_SFUIEVENT <- 119; | |||
EVENT_START_VOTE <- 120; | |||
EVENT_PLAYER_GIVEN_C4 <- 121; | |||
EVENT_GG_RESET_ROUND_START_SOUNDS <- 122; | |||
EVENT_TR_PLAYER_FLASHBANGED <- 123; | |||
EVENT_TR_MARK_COMPLETE <- 124; | |||
EVENT_TR_MARK_BEST_TIME <- 125; | |||
EVENT_TR_EXIT_HINT_TRIGGER <- 126; | |||
EVENT_BOT_TAKEOVER <- 127; | |||
EVENT_TR_SHOW_FINISH_MSGBOX <- 128; | |||
EVENT_TR_SHOW_EXIT_MSGBOX <- 129; | |||
EVENT_RESET_PLAYER_CONTROLS <- 130; | |||
EVENT_JOINTEAM_FAILED <- 131; | |||
EVENT_TEAMCHANGE_PENDING <- 132; | |||
EVENT_MATERIAL_DEFAULT_COMPLETE <- 133; | |||
EVENT_CS_PREV_NEXT_SPECTATOR <- 134; | |||
EVENT_CS_HANDLE_IME_EVENT <- 135; | |||
EVENT_NEXTLEVEL_CHANGED <- 136; | |||
EVENT_SEASONCOIN_LEVELUP <- 137; | |||
EVENT_TOURNAMENT_REWARD <- 138; | |||
EVENT_START_HALFTIME <- 139; | |||
EVENT_HLTV_STATUS <- 140; | |||
EVENT_HLTV_CAMERAMAN <- 141; | |||
EVENT_HLTV_RANK_CAMERA <- 142; | |||
EVENT_HLTV_RANK_ENTITY <- 143; | |||
EVENT_HLTV_FIXED <- 144; | |||
EVENT_HLTV_CHASE <- 145; | |||
EVENT_HLTV_MESSAGE <- 146; | |||
EVENT_HLTV_TITLE <- 147; | |||
EVENT_HLTV_CHAT <- 148; | |||
EVENT_HLTV_CHANGED_TARGET <- 149; | |||
EVENT_TEAM_INFO <- 150; | |||
EVENT_TEAM_SCORE <- 151; | |||
EVENT_TEAMPLAY_BROADCAST_AUDIO <- 152; | |||
EVENT_GAMEUI_HIDDEN <- 153; | |||
EVENT_ITEMS_GIFTED <- 154; | |||
EVENT_PLAYER_TEAM <- 155; | |||
EVENT_PLAYER_CLASS <- 156; | |||
//EVENT_PLAYER_DEATH <- 157; | |||
EVENT_PLAYER_HURT <- 158; | |||
EVENT_PLAYER_CHAT <- 159; | |||
EVENT_PLAYER_SCORE <- 160; | |||
EVENT_PLAYER_SPAWN <- 161; | |||
EVENT_PLAYER_SHOOT <- 162; | |||
EVENT_PLAYER_USE <- 163; | |||
EVENT_PLAYER_CHANGENAME <- 164; | |||
EVENT_PLAYER_HINTMESSAGE <- 165; | |||
EVENT_GAME_INIT <- 166; | |||
EVENT_GAME_NEWMAP <- 167; | |||
EVENT_GAME_START <- 168; | |||
EVENT_GAME_END <- 169; | |||
//EVENT_ROUND_START <- 170; | |||
EVENT_ROUND_ANNOUNCE_MATCH_POINT <- 171; | |||
EVENT_ROUND_ANNOUNCE_FINAL <- 172; | |||
EVENT_ROUND_ANNOUNCE_LAST_ROUND_HALF <- 173; | |||
EVENT_ROUND_ANNOUNCE_MATCH_START <- 174; | |||
EVENT_ROUND_ANNOUNCE_WARMUP <- 175; | |||
//EVENT_ROUND_END <- 176; | |||
EVENT_ROUND_END_UPLOAD_STATS <- 177; | |||
EVENT_ROUND_OFFICIALLY_ENDED <- 178; | |||
EVENT_ROUND_TIME_WARNING <- 179; | |||
EVENT_UGC_MAP_INFO_RECEIVED <- 180; | |||
EVENT_UGC_MAP_UNSUBSCRIBED <- 181; | |||
EVENT_UGC_MAP_DOWNLOAD_ERROR <- 182; | |||
EVENT_UGC_FILE_DOWNLOAD_FINISHED <- 183; | |||
EVENT_UGC_FILE_DOWNLOAD_START <- 184; | |||
EVENT_BEGIN_NEW_MATCH <- 185; | |||
EVENT_ROUND_START_PRE_ENTITY <- 186; | |||
EVENT_TEAMPLAY_ROUND_START <- 187; | |||
EVENT_HOSTNAME_CHANGED <- 188; | |||
EVENT_DIFFICULTY_CHANGED <- 189; | |||
EVENT_FINALE_START <- 190; | |||
EVENT_GAME_MESSAGE <- 191; | |||
EVENT_DM_BONUS_WEAPON_START <- 192; | |||
EVENT_SURVIVAL_ANNOUNCE_PHASE <- 193; | |||
EVENT_BREAK_BREAKABLE <- 194; | |||
EVENT_BREAK_PROP <- 195; | |||
EVENT_PLAYER_DECAL <- 196; | |||
EVENT_ENTITY_KILLED <- 197; | |||
EVENT_BONUS_UPDATED <- 198; | |||
EVENT_PLAYER_STATS_UPDATED <- 199; | |||
EVENT_ACHIEVEMENT_EVENT <- 200; | |||
EVENT_ACHIEVEMENT_INCREMENT <- 201; | |||
EVENT_ACHIEVEMENT_EARNED <- 202; | |||
EVENT_ACHIEVEMENT_WRITE_FAILED <- 203; | |||
EVENT_PHYSGUN_PICKUP <- 204; | |||
EVENT_FLARE_IGNITE_NPC <- 205; | |||
EVENT_HELICOPTER_GRENADE_PUNT_MISS <- 206; | |||
EVENT_USER_DATA_DOWNLOADED <- 207; | |||
EVENT_RAGDOLL_DISSOLVED <- 208; | |||
EVENT_GAMEINSTRUCTOR_DRAW <- 209; | |||
EVENT_GAMEINSTRUCTOR_NODRAW <- 210; | |||
EVENT_MAP_TRANSITION <- 211; | |||
EVENT_ENTITY_VISIBLE <- 212; | |||
EVENT_SET_INSTRUCTOR_GROUP_ENABLED <- 213; | |||
EVENT_INSTRUCTOR_SERVER_HINT_CREATE <- 214; | |||
EVENT_INSTRUCTOR_SERVER_HINT_STOP <- 215; | |||
EVENT_READ_GAME_TITLEDATA <- 216; | |||
EVENT_WRITE_GAME_TITLEDATA <- 217; | |||
EVENT_RESET_GAME_TITLEDATA <- 218; | |||
EVENT_WEAPON_RELOAD_DATABASE <- 219; | |||
EVENT_VOTE_ENDED <- 220; | |||
EVENT_VOTE_STARTED <- 221; | |||
EVENT_VOTE_CHANGED <- 222; | |||
EVENT_VOTE_PASSED <- 223; | |||
EVENT_VOTE_FAILED <- 224; | |||
EVENT_VOTE_CAST <- 225; | |||
EVENT_VOTE_OPTIONS <- 226; | |||
EVENT_ENDMATCH_MAPVOTE_SELECTING_MAP <- 227; | |||
EVENT_ENDMATCH_CMM_START_REVEAL_ITEMS <- 228; | |||
EVENT_INVENTORY_UPDATED <- 229; | |||
EVENT_CART_UPDATED <- 230; | |||
EVENT_STORE_PRICESHEET_UPDATED <- 231; | |||
EVENT_GC_CONNECTED <- 232; | |||
EVENT_ITEM_SCHEMA_INITIALIZED <- 233; | |||
EVENT_CLIENT_LOADOUT_CHANGED <- 234; | |||
EVENT_ADD_PLAYER_SONAR_ICON <- 235; | |||
EVENT_ADD_BULLET_HIT_MARKER <- 236; | |||
EVENT_VERIFY_CLIENT_HIT <- 237; | |||
EVENT_SERVER_SPAWN <- 238; | |||
EVENT_SERVER_PRE_SHUTDOWN <- 239; | |||
EVENT_SERVER_SHUTDOWN <- 240; | |||
EVENT_SERVER_CVAR <- 241; | |||
EVENT_SERVER_MESSAGE <- 242; | |||
EVENT_SERVER_ADDBAN <- 243; | |||
EVENT_SERVER_REMOVEBAN <- 244; | |||
EVENT_PLAYER_CONNECT <- 245; | |||
EVENT_PLAYER_INFO <- 246; | |||
EVENT_PLAYER_DISCONNECT <- 247; | |||
EVENT_PLAYER_ACTIVATE <- 248; | |||
EVENT_PLAYER_CONNECT_FULL <- 249; | |||
EVENT_PLAYER_SAY <- 250; | |||
EVENT_CS_ROUND_START_BEEP <- 251; | |||
EVENT_CS_ROUND_FINAL_BEEP <- 252; | |||
EVENT_ROUND_TIME_WARNING <- 253; | |||
events_ids_translate <- {}; | |||
events_ids_translate[EVENT_PLAYER_DEATH] <- ["player_death",["userid","attacker","assister","weapon","weapon_itemid","weapon_fauxitemid","weapon_originalowner_xuid","headshot","dominated","revenge","penetrated","noreplay"]]; | |||
events_ids_translate[EVENT_OTHER_DEATH] <- ["other_death",["otherid","othertype","attacker","weapon","weapon_itemid","weapon_fauxitemid","weapon_originalowner_xuid","headshot","penetrated"]]; | |||
events_ids_translate[EVENT_PLAYER_HURT] <- ["player_hurt",["userid","attacker","health","armor","weapon","dmg_health","dmg_armor","hitgroup"]]; | |||
events_ids_translate[EVENT_ITEM_PURCHASE] <- ["item_purchase",["userid","team","weapon"]]; | |||
events_ids_translate[EVENT_BOMB_BEGINPLANT] <- ["bomb_beginplant",["userid","site"]]; | |||
events_ids_translate[EVENT_BOMB_ABORTPLANT] <- ["bomb_abortplant",["userid","site"]]; | |||
events_ids_translate[EVENT_BOMB_PLANTED] <- ["bomb_planted",["userid","site"]]; | |||
events_ids_translate[EVENT_BOMB_DEFUSED] <- ["bomb_defused",["userid","site"]]; | |||
events_ids_translate[EVENT_BOMB_EXPLODED] <- ["bomb_exploded",["userid","site"]]; | |||
events_ids_translate[EVENT_BOMB_DROPPED] <- ["bomb_dropped",["userid","entindex"]]; | |||
events_ids_translate[EVENT_BOMB_PICKUP] <- ["bomb_pickup",["userid"]]; | |||
events_ids_translate[EVENT_DEFUSER_DROPPED] <- ["defuser_dropped",["entityid"]]; | |||
events_ids_translate[EVENT_DEFUSER_PICKUP] <- ["defuser_pickup",["entityid","userid"]]; | |||
events_ids_translate[EVENT_ANNOUNCE_PHASE_END] <- ["announce_phase_end",[]]; | |||
events_ids_translate[EVENT_CS_INTERMISSION] <- ["cs_intermission",[]]; | |||
events_ids_translate[EVENT_BOMB_BEGINDEFUSE] <- ["bomb_begindefuse",["userid","haskit"]]; | |||
events_ids_translate[EVENT_BOMB_ABORTDEFUSE] <- ["bomb_abortdefuse",["userid"]]; | |||
events_ids_translate[EVENT_HOSTAGE_FOLLOWS] <- ["hostage_follows",["userid","hostage"]]; | |||
events_ids_translate[EVENT_HOSTAGE_HURT] <- ["hostage_hurt",["userid","hostage"]]; | |||
events_ids_translate[EVENT_HOSTAGE_KILLED] <- ["hostage_killed",["userid","hostage"]]; | |||
events_ids_translate[EVENT_HOSTAGE_RESCUED] <- ["hostage_rescued",["userid","hostage","site"]]; | |||
events_ids_translate[EVENT_HOSTAGE_STOPS_FOLLOWING] <- ["hostage_stops_following",["userid","hostage"]]; | |||
events_ids_translate[EVENT_HOSTAGE_RESCUED_ALL] <- ["hostage_rescued_all",[]]; | |||
events_ids_translate[EVENT_HOSTAGE_CALL_FOR_HELP] <- ["hostage_call_for_help",["hostage"]]; | |||
events_ids_translate[EVENT_VIP_ESCAPED] <- ["vip_escaped",["userid"]]; | |||
events_ids_translate[EVENT_VIP_KILLED] <- ["vip_killed",["userid","attacker"]]; | |||
events_ids_translate[EVENT_PLAYER_RADIO] <- ["player_radio",["userid","slot"]]; | |||
events_ids_translate[EVENT_BOMB_BEEP] <- ["bomb_beep",["entindex"]]; | |||
events_ids_translate[EVENT_WEAPON_FIRE] <- ["weapon_fire",["userid","weapon","silenced"]]; | |||
events_ids_translate[EVENT_WEAPON_FIRE_ON_EMPTY] <- ["weapon_fire_on_empty",["userid","weapon"]]; | |||
events_ids_translate[EVENT_WEAPON_OUTOFAMMO] <- ["weapon_outofammo",["userid"]]; | |||
events_ids_translate[EVENT_WEAPON_RELOAD] <- ["weapon_reload",["userid"]]; | |||
events_ids_translate[EVENT_WEAPON_ZOOM] <- ["weapon_zoom",["userid"]]; | |||
events_ids_translate[EVENT_SILENCER_DETACH] <- ["silencer_detach",["userid"]]; | |||
events_ids_translate[EVENT_INSPECT_WEAPON] <- ["inspect_weapon",["userid"]]; | |||
events_ids_translate[EVENT_WEAPON_ZOOM_RIFLE] <- ["weapon_zoom_rifle",["userid"]]; | |||
events_ids_translate[EVENT_PLAYER_SPAWNED] <- ["player_spawned",["userid","inrestart"]]; | |||
events_ids_translate[EVENT_ITEM_PICKUP] <- ["item_pickup",["userid","item","silent"]]; | |||
events_ids_translate[EVENT_AMMO_PICKUP] <- ["ammo_pickup",["userid","item","index"]]; | |||
events_ids_translate[EVENT_ITEM_EQUIP] <- ["item_equip",["userid","item","canzoom","hassilencer","issilenced","hastracers","weptype","ispainted"]]; | |||
events_ids_translate[EVENT_ENTER_BUYZONE] <- ["enter_buyzone",["userid","canbuy"]]; | |||
events_ids_translate[EVENT_EXIT_BUYZONE] <- ["exit_buyzone",["userid","canbuy"]]; | |||
events_ids_translate[EVENT_BUYTIME_ENDED] <- ["buytime_ended",[]]; | |||
events_ids_translate[EVENT_ENTER_BOMBZONE] <- ["enter_bombzone",["userid","hasbomb","isplanted"]]; | |||
events_ids_translate[EVENT_EXIT_BOMBZONE] <- ["exit_bombzone",["userid","hasbomb","isplanted"]]; | |||
events_ids_translate[EVENT_ENTER_RESCUE_ZONE] <- ["enter_rescue_zone",["userid"]]; | |||
events_ids_translate[EVENT_EXIT_RESCUE_ZONE] <- ["exit_rescue_zone",["userid"]]; | |||
events_ids_translate[EVENT_SILENCER_OFF] <- ["silencer_off",["userid"]]; | |||
events_ids_translate[EVENT_SILENCER_ON] <- ["silencer_on",["userid"]]; | |||
events_ids_translate[EVENT_BUYMENU_OPEN] <- ["buymenu_open",["userid"]]; | |||
events_ids_translate[EVENT_BUYMENU_CLOSE] <- ["buymenu_close",["userid"]]; | |||
events_ids_translate[EVENT_ROUND_PRESTART] <- ["round_prestart",[]]; | |||
events_ids_translate[EVENT_ROUND_POSTSTART] <- ["round_poststart",[]]; | |||
events_ids_translate[EVENT_ROUND_START] <- ["round_start",["timelimit","fraglimit","objective"]]; | |||
events_ids_translate[EVENT_ROUND_END] <- ["round_end",["winner","reason","message","legacy","player_count"]]; | |||
events_ids_translate[EVENT_GRENADE_BOUNCE] <- ["grenade_bounce",["userid"]]; | |||
events_ids_translate[EVENT_HEGRENADE_DETONATE] <- ["hegrenade_detonate",["userid","entityid","vector"]]; | |||
events_ids_translate[EVENT_FLASHBANG_DETONATE] <- ["flashbang_detonate",["userid","entityid","vector"]]; | |||
events_ids_translate[EVENT_SMOKEGRENADE_DETONATE] <- ["smokegrenade_detonate",["userid","entityid","vector"]]; | |||
events_ids_translate[EVENT_SMOKEGRENADE_EXPIRED] <- ["smokegrenade_expired",["userid","entityid","vector"]]; | |||
events_ids_translate[EVENT_MOLOTOV_DETONATE] <- ["molotov_detonate",["userid","vector"]]; | |||
events_ids_translate[EVENT_DECOY_DETONATE] <- ["decoy_detonate",["userid","entityid","vector"]]; | |||
events_ids_translate[EVENT_DECOY_STARTED] <- ["decoy_started",["userid","entityid","vector"]]; | |||
events_ids_translate[EVENT_TAGRENADE_DETONATE] <- ["tagrenade_detonate",["userid","entityid","vector"]]; | |||
events_ids_translate[EVENT_INFERNO_STARTBURN] <- ["inferno_startburn",["entityid","vector"]]; | |||
events_ids_translate[EVENT_INFERNO_EXPIRE] <- ["inferno_expire",["entityid","vector"]]; | |||
events_ids_translate[EVENT_INFERNO_EXTINGUISH] <- ["inferno_extinguish",["entityid","vector"]]; | |||
events_ids_translate[EVENT_DECOY_FIRING] <- ["decoy_firing",["userid","entityid","vector"]]; | |||
events_ids_translate[EVENT_BULLET_IMPACT] <- ["bullet_impact",["userid","vector"]]; | |||
events_ids_translate[EVENT_PLAYER_FOOTSTEP] <- ["player_footstep",["userid"]]; | |||
events_ids_translate[EVENT_PLAYER_JUMP] <- ["player_jump",["userid"]]; | |||
events_ids_translate[EVENT_PLAYER_BLIND] <- ["player_blind",["userid"]]; | |||
events_ids_translate[EVENT_PLAYER_FALLDAMAGE] <- ["player_falldamage",["userid","damage"]]; | |||
events_ids_translate[EVENT_DOOR_MOVING] <- ["door_moving",["entindex","userid"]]; | |||
events_ids_translate[EVENT_ROUND_FREEZE_END] <- ["round_freeze_end",[]]; | |||
events_ids_translate[EVENT_MB_INPUT_LOCK_SUCCESS] <- ["mb_input_lock_success",[]]; | |||
events_ids_translate[EVENT_MB_INPUT_LOCK_CANCEL] <- ["mb_input_lock_cancel",[]]; | |||
events_ids_translate[EVENT_NAV_BLOCKED] <- ["nav_blocked",["area","blocked"]]; | |||
events_ids_translate[EVENT_NAV_GENERATE] <- ["nav_generate",[]]; | |||
events_ids_translate[EVENT_PLAYER_STATS_UPDATED] <- ["player_stats_updated",["forceupload"]]; | |||
events_ids_translate[EVENT_ACHIEVEMENT_INFO_LOADED] <- ["achievement_info_loaded",[]]; | |||
events_ids_translate[EVENT_SPEC_TARGET_UPDATED] <- ["spec_target_updated",["userid"]]; | |||
events_ids_translate[EVENT_SPEC_MODE_UPDATED] <- ["spec_mode_updated",["userid"]]; | |||
events_ids_translate[EVENT_HLTV_CHANGED_MODE] <- ["hltv_changed_mode",["oldmode","newmode","obs_target"]]; | |||
events_ids_translate[EVENT_CS_GAME_DISCONNECTED] <- ["cs_game_disconnected",[]]; | |||
events_ids_translate[EVENT_CS_WIN_PANEL_ROUND] <- ["cs_win_panel_round",["show_timer_defend","show_timer_attack","timer_time","final_event","funfact_token","funfact_player","funfact_data1","funfact_data2","funfact_data3"]]; | |||
events_ids_translate[EVENT_CS_WIN_PANEL_MATCH] <- ["cs_win_panel_match",[]]; | |||
events_ids_translate[EVENT_CS_MATCH_END_RESTART] <- ["cs_match_end_restart",[]]; | |||
events_ids_translate[EVENT_CS_PRE_RESTART] <- ["cs_pre_restart",[]]; | |||
events_ids_translate[EVENT_SHOW_FREEZEPANEL] <- ["show_freezepanel",["victim","killer","hits_taken","damage_taken","hits_given","damage_given"]]; | |||
events_ids_translate[EVENT_HIDE_FREEZEPANEL] <- ["hide_freezepanel",[]]; | |||
events_ids_translate[EVENT_FREEZECAM_STARTED] <- ["freezecam_started",[]]; | |||
events_ids_translate[EVENT_PLAYER_AVENGED_TEAMMATE] <- ["player_avenged_teammate",["avenger_id","avenged_player_id"]]; | |||
events_ids_translate[EVENT_ACHIEVEMENT_EARNED] <- ["achievement_earned",["player","achievement"]]; | |||
events_ids_translate[EVENT_ACHIEVEMENT_EARNED_LOCAL] <- ["achievement_earned_local",["achievement","splitscreenplayer"]]; | |||
events_ids_translate[EVENT_ITEM_FOUND] <- ["item_found",["player","quality","method","itemdef","itemid"]]; | |||
events_ids_translate[EVENT_ITEMS_GIFTED] <- ["items_gifted",["player","itemdef","numgifts","giftidx","accountid"]]; | |||
events_ids_translate[EVENT_REPOST_XBOX_ACHIEVEMENTS] <- ["repost_xbox_achievements",["splitscreenplayer"]]; | |||
events_ids_translate[EVENT_MATCH_END_CONDITIONS] <- ["match_end_conditions",["frags","max_rounds","win_rounds","time"]]; | |||
events_ids_translate[EVENT_ROUND_MVP] <- ["round_mvp",["userid","reason","musickitmvps"]]; | |||
events_ids_translate[EVENT_PLAYER_DECAL] <- ["player_decal",["userid"]]; | |||
events_ids_translate[EVENT_TEAMPLAY_ROUND_START] <- ["teamplay_round_start",["full_reset"]]; | |||
events_ids_translate[EVENT_CLIENT_DISCONNECT] <- ["client_disconnect",[]]; | |||
events_ids_translate[EVENT_GG_PLAYER_LEVELUP] <- ["gg_player_levelup",["userid","weaponrank","weaponname"]]; | |||
events_ids_translate[EVENT_GGTR_PLAYER_LEVELUP] <- ["ggtr_player_levelup",["userid","weaponrank","weaponname"]]; | |||
events_ids_translate[EVENT_ASSASSINATION_TARGET_KILLED] <- ["assassination_target_killed",["target","killer"]]; | |||
events_ids_translate[EVENT_GGPROGRESSIVE_PLAYER_LEVELUP] <- ["ggprogressive_player_levelup",["userid","weaponrank","weaponname"]]; | |||
events_ids_translate[EVENT_GG_KILLED_ENEMY] <- ["gg_killed_enemy",["victimid","attackerid","dominated","revenge","bonus"]]; | |||
events_ids_translate[EVENT_GG_FINAL_WEAPON_ACHIEVED] <- ["gg_final_weapon_achieved",["playerid"]]; | |||
events_ids_translate[EVENT_GG_BONUS_GRENADE_ACHIEVED] <- ["gg_bonus_grenade_achieved",["userid"]]; | |||
events_ids_translate[EVENT_SWITCH_TEAM] <- ["switch_team",["numplayers","numspectators","avg_rank","numtslotsfree","numctslotsfree"]]; | |||
events_ids_translate[EVENT_GG_LEADER] <- ["gg_leader",["playerid"]]; | |||
events_ids_translate[EVENT_GG_TEAM_LEADER] <- ["gg_team_leader",["playerid"]]; | |||
events_ids_translate[EVENT_GG_PLAYER_IMPENDING_UPGRADE] <- ["gg_player_impending_upgrade",["userid"]]; | |||
events_ids_translate[EVENT_WRITE_PROFILE_DATA] <- ["write_profile_data",[]]; | |||
events_ids_translate[EVENT_TRIAL_TIME_EXPIRED] <- ["trial_time_expired",["slot"]]; | |||
events_ids_translate[EVENT_UPDATE_MATCHMAKING_STATS] <- ["update_matchmaking_stats",[]]; | |||
events_ids_translate[EVENT_PLAYER_RESET_VOTE] <- ["player_reset_vote",["userid","vote"]]; | |||
events_ids_translate[EVENT_ENABLE_RESTART_VOTING] <- ["enable_restart_voting",["enable"]]; | |||
events_ids_translate[EVENT_SFUIEVENT] <- ["sfuievent",["action","data","slot"]]; | |||
events_ids_translate[EVENT_START_VOTE] <- ["start_vote",["userid","type","vote_parameter"]]; | |||
events_ids_translate[EVENT_PLAYER_GIVEN_C4] <- ["player_given_c4",["userid"]]; | |||
events_ids_translate[EVENT_GG_RESET_ROUND_START_SOUNDS] <- ["gg_reset_round_start_sounds",["userid"]]; | |||
events_ids_translate[EVENT_TR_PLAYER_FLASHBANGED] <- ["tr_player_flashbanged",["userid"]]; | |||
events_ids_translate[EVENT_TR_MARK_COMPLETE] <- ["tr_mark_complete",["complete"]]; | |||
events_ids_translate[EVENT_TR_MARK_BEST_TIME] <- ["tr_mark_best_time",["time"]]; | |||
events_ids_translate[EVENT_TR_EXIT_HINT_TRIGGER] <- ["tr_exit_hint_trigger",[]]; | |||
events_ids_translate[EVENT_BOT_TAKEOVER] <- ["bot_takeover",["userid","botid","index"]]; | |||
events_ids_translate[EVENT_TR_SHOW_FINISH_MSGBOX] <- ["tr_show_finish_msgbox",["userid"]]; | |||
events_ids_translate[EVENT_TR_SHOW_EXIT_MSGBOX] <- ["tr_show_exit_msgbox",["userid"]]; | |||
events_ids_translate[EVENT_RESET_PLAYER_CONTROLS] <- ["reset_player_controls",[]]; | |||
events_ids_translate[EVENT_JOINTEAM_FAILED] <- ["jointeam_failed",["userid","reason"]]; | |||
events_ids_translate[EVENT_TEAMCHANGE_PENDING] <- ["teamchange_pending",["userid","toteam"]]; | |||
events_ids_translate[EVENT_MATERIAL_DEFAULT_COMPLETE] <- ["material_default_complete",[]]; | |||
events_ids_translate[EVENT_CS_PREV_NEXT_SPECTATOR] <- ["cs_prev_next_spectator",["next"]]; | |||
events_ids_translate[EVENT_CS_HANDLE_IME_EVENT] <- ["cs_handle_ime_event",["local","eventtype","eventdata"]]; | |||
events_ids_translate[EVENT_NEXTLEVEL_CHANGED] <- ["nextlevel_changed",["nextlevel"]]; | |||
events_ids_translate[EVENT_SEASONCOIN_LEVELUP] <- ["seasoncoin_levelup",["player","category","rank"]]; | |||
events_ids_translate[EVENT_TOURNAMENT_REWARD] <- ["tournament_reward",["defindex","totalrewards","accountid"]]; | |||
events_ids_translate[EVENT_START_HALFTIME] <- ["start_halftime",[]]; | |||
events_ids_translate[EVENT_HLTV_STATUS] <- ["hltv_status",["clients","slots","proxies","master","externaltotal","externallinked"]]; | |||
events_ids_translate[EVENT_HLTV_CAMERAMAN] <- ["hltv_cameraman",["index"]]; | |||
events_ids_translate[EVENT_HLTV_RANK_CAMERA] <- ["hltv_rank_camera",["index","rank","target"]]; | |||
events_ids_translate[EVENT_HLTV_RANK_ENTITY] <- ["hltv_rank_entity",["index","rank","target"]]; | |||
events_ids_translate[EVENT_HLTV_FIXED] <- ["hltv_fixed",["posx","posy","posz","theta","phi","offset","fov","target"]]; | |||
events_ids_translate[EVENT_HLTV_CHASE] <- ["hltv_chase",["target1","target2","distance","theta","phi","inertia","ineye"]]; | |||
events_ids_translate[EVENT_HLTV_MESSAGE] <- ["hltv_message",["text"]]; | |||
events_ids_translate[EVENT_HLTV_TITLE] <- ["hltv_title",["text"]]; | |||
events_ids_translate[EVENT_HLTV_CHAT] <- ["hltv_chat",["text"]]; | |||
events_ids_translate[EVENT_HLTV_CHANGED_TARGET] <- ["hltv_changed_target",["mode","old_target","obs_target"]]; | |||
events_ids_translate[EVENT_TEAM_INFO] <- ["team_info",["teamid","teamname"]]; | |||
events_ids_translate[EVENT_TEAM_SCORE] <- ["team_score",["teamid","score"]]; | |||
events_ids_translate[EVENT_TEAMPLAY_BROADCAST_AUDIO] <- ["teamplay_broadcast_audio",["team","sound"]]; | |||
events_ids_translate[EVENT_GAMEUI_HIDDEN] <- ["gameui_hidden",[]]; | |||
events_ids_translate[EVENT_ITEMS_GIFTED] <- ["items_gifted",["player","itemdef","numgifts","giftidx","accountid"]]; | |||
events_ids_translate[EVENT_PLAYER_TEAM] <- ["player_team",["userid","team","oldteam","disconnect","autoteam","silent","isbot"]]; | |||
events_ids_translate[EVENT_PLAYER_CLASS] <- ["player_class",["userid","class"]]; | |||
//events_ids_translate[EVENT_PLAYER_DEATH] <- ["player_death",["userid","attacker"]]; | |||
//events_ids_translate[EVENT_PLAYER_HURT] <- ["player_hurt",["userid","attacker","health"]]; | |||
events_ids_translate[EVENT_PLAYER_CHAT] <- ["player_chat",["teamonly","userid","text"]]; | |||
events_ids_translate[EVENT_PLAYER_SCORE] <- ["player_score",["userid","kills","deaths","score"]]; | |||
events_ids_translate[EVENT_PLAYER_SPAWN] <- ["player_spawn",["userid","teamnum"]]; | |||
events_ids_translate[EVENT_PLAYER_SHOOT] <- ["player_shoot",["userid","weapon","mode"]]; | |||
events_ids_translate[EVENT_PLAYER_USE] <- ["player_use",["userid","entity"]]; | |||
events_ids_translate[EVENT_PLAYER_CHANGENAME] <- ["player_changename",["userid","oldname","newname"]]; | |||
events_ids_translate[EVENT_PLAYER_HINTMESSAGE] <- ["player_hintmessage",["hintmessage"]]; | |||
events_ids_translate[EVENT_GAME_INIT] <- ["game_init",[]]; | |||
events_ids_translate[EVENT_GAME_NEWMAP] <- ["game_newmap",["mapname"]]; | |||
events_ids_translate[EVENT_GAME_START] <- ["game_start",["roundslimit","timelimit","fraglimit","objective"]]; | |||
events_ids_translate[EVENT_GAME_END] <- ["game_end",["winner"]]; | |||
//events_ids_translate[EVENT_ROUND_START] <- ["round_start",["timelimit","fraglimit","objective"]]; | |||
events_ids_translate[EVENT_ROUND_ANNOUNCE_MATCH_POINT] <- ["round_announce_match_point",[]]; | |||
events_ids_translate[EVENT_ROUND_ANNOUNCE_FINAL] <- ["round_announce_final",[]]; | |||
events_ids_translate[EVENT_ROUND_ANNOUNCE_LAST_ROUND_HALF] <- ["round_announce_last_round_half",[]]; | |||
events_ids_translate[EVENT_ROUND_ANNOUNCE_MATCH_START] <- ["round_announce_match_start",[]]; | |||
events_ids_translate[EVENT_ROUND_ANNOUNCE_WARMUP] <- ["round_announce_warmup",[]]; | |||
//events_ids_translate[EVENT_ROUND_END] <- ["round_end",["winner","reason","message","legacy"]]; | |||
events_ids_translate[EVENT_ROUND_END_UPLOAD_STATS] <- ["round_end_upload_stats",[]]; | |||
events_ids_translate[EVENT_ROUND_OFFICIALLY_ENDED] <- ["round_officially_ended",[]]; | |||
events_ids_translate[EVENT_ROUND_TIME_WARNING] <- ["round_time_warning",[]]; | |||
events_ids_translate[EVENT_UGC_MAP_INFO_RECEIVED] <- ["ugc_map_info_received",["published_file_id"]]; | |||
events_ids_translate[EVENT_UGC_MAP_UNSUBSCRIBED] <- ["ugc_map_unsubscribed",["published_file_id"]]; | |||
events_ids_translate[EVENT_UGC_MAP_DOWNLOAD_ERROR] <- ["ugc_map_download_error",["published_file_id","error_code"]]; | |||
events_ids_translate[EVENT_UGC_FILE_DOWNLOAD_FINISHED] <- ["ugc_file_download_finished",["hcontent"]]; | |||
events_ids_translate[EVENT_UGC_FILE_DOWNLOAD_START] <- ["ugc_file_download_start",["hcontent","published_file_id"]]; | |||
events_ids_translate[EVENT_BEGIN_NEW_MATCH] <- ["begin_new_match",[]]; | |||
events_ids_translate[EVENT_ROUND_START_PRE_ENTITY] <- ["round_start_pre_entity",[]]; | |||
events_ids_translate[EVENT_TEAMPLAY_ROUND_START] <- ["teamplay_round_start",["full_reset"]]; | |||
events_ids_translate[EVENT_HOSTNAME_CHANGED] <- ["hostname_changed",["hostname"]]; | |||
events_ids_translate[EVENT_DIFFICULTY_CHANGED] <- ["difficulty_changed",["newdifficulty","olddifficulty","strdifficulty"]]; | |||
events_ids_translate[EVENT_FINALE_START] <- ["finale_start",["rushes"]]; | |||
events_ids_translate[EVENT_GAME_MESSAGE] <- ["game_message",["target","text"]]; | |||
events_ids_translate[EVENT_DM_BONUS_WEAPON_START] <- ["dm_bonus_weapon_start",["time","wepid","pos"]]; | |||
events_ids_translate[EVENT_SURVIVAL_ANNOUNCE_PHASE] <- ["survival_announce_phase",["phase"]]; | |||
events_ids_translate[EVENT_BREAK_BREAKABLE] <- ["break_breakable",["entindex","userid","material"]]; | |||
events_ids_translate[EVENT_BREAK_PROP] <- ["break_prop",["entindex","userid"]]; | |||
events_ids_translate[EVENT_PLAYER_DECAL] <- ["player_decal",["userid"]]; | |||
events_ids_translate[EVENT_ENTITY_KILLED] <- ["entity_killed",["entindex_killed","entindex_attacker","entindex_inflictor","damagebits"]]; | |||
events_ids_translate[EVENT_BONUS_UPDATED] <- ["bonus_updated",["numadvanced","numbronze","numsilver","numgold"]]; | |||
events_ids_translate[EVENT_PLAYER_STATS_UPDATED] <- ["player_stats_updated",["forceupload"]]; | |||
events_ids_translate[EVENT_ACHIEVEMENT_EVENT] <- ["achievement_event",["achievement_name","cur_val","max_val"]]; | |||
events_ids_translate[EVENT_ACHIEVEMENT_INCREMENT] <- ["achievement_increment",["achievement_id","cur_val","max_val"]]; | |||
events_ids_translate[EVENT_ACHIEVEMENT_EARNED] <- ["achievement_earned",["player","achievement"]]; | |||
events_ids_translate[EVENT_ACHIEVEMENT_WRITE_FAILED] <- ["achievement_write_failed",[]]; | |||
events_ids_translate[EVENT_PHYSGUN_PICKUP] <- ["physgun_pickup",["entindex"]]; | |||
events_ids_translate[EVENT_FLARE_IGNITE_NPC] <- ["flare_ignite_npc",["entindex"]]; | |||
events_ids_translate[EVENT_HELICOPTER_GRENADE_PUNT_MISS] <- ["helicopter_grenade_punt_miss",[]]; | |||
events_ids_translate[EVENT_USER_DATA_DOWNLOADED] <- ["user_data_downloaded",[]]; | |||
events_ids_translate[EVENT_RAGDOLL_DISSOLVED] <- ["ragdoll_dissolved",["entindex"]]; | |||
events_ids_translate[EVENT_GAMEINSTRUCTOR_DRAW] <- ["gameinstructor_draw",[]]; | |||
events_ids_translate[EVENT_GAMEINSTRUCTOR_NODRAW] <- ["gameinstructor_nodraw",[]]; | |||
events_ids_translate[EVENT_MAP_TRANSITION] <- ["map_transition",[]]; | |||
events_ids_translate[EVENT_ENTITY_VISIBLE] <- ["entity_visible",["userid","subject","classname","entityname"]]; | |||
events_ids_translate[EVENT_SET_INSTRUCTOR_GROUP_ENABLED] <- ["set_instructor_group_enabled",["group","enabled"]]; | |||
events_ids_translate[EVENT_INSTRUCTOR_SERVER_HINT_CREATE] <- ["instructor_server_hint_create",["hint_name","hint_replace_key","hint_target","hint_activator_userid","hint_timeout","hint_icon_onscreen","hint_icon_offscreen","hint_caption","hint_activator_caption","hint_color","hint_icon_offset","hint_range","hint_flags","hint_binding","hint_gamepad_binding","hint_allow_nodraw_target","hint_nooffscreen","hint_forcecaption","hint_local_player_only"]]; | |||
events_ids_translate[EVENT_INSTRUCTOR_SERVER_HINT_STOP] <- ["instructor_server_hint_stop",["hint_name"]]; | |||
events_ids_translate[EVENT_READ_GAME_TITLEDATA] <- ["read_game_titledata",["controllerid"]]; | |||
events_ids_translate[EVENT_WRITE_GAME_TITLEDATA] <- ["write_game_titledata",["controllerid"]]; | |||
events_ids_translate[EVENT_RESET_GAME_TITLEDATA] <- ["reset_game_titledata",["controllerid"]]; | |||
events_ids_translate[EVENT_WEAPON_RELOAD_DATABASE] <- ["weapon_reload_database",[]]; | |||
events_ids_translate[EVENT_VOTE_ENDED] <- ["vote_ended",[]]; | |||
events_ids_translate[EVENT_VOTE_STARTED] <- ["vote_started",["issue","param1","team","initiator"]]; | |||
events_ids_translate[EVENT_VOTE_CHANGED] <- ["vote_changed",["vote_option1","vote_option2","vote_option3","vote_option4","vote_option5","potentialvotes"]]; | |||
events_ids_translate[EVENT_VOTE_PASSED] <- ["vote_passed",["details","param1","team"]]; | |||
events_ids_translate[EVENT_VOTE_FAILED] <- ["vote_failed",["team"]]; | |||
events_ids_translate[EVENT_VOTE_CAST] <- ["vote_cast",["vote_option","team","entityid"]]; | |||
events_ids_translate[EVENT_VOTE_OPTIONS] <- ["vote_options",["count","option1","option2","option3","option4","option5"]]; | |||
events_ids_translate[EVENT_ENDMATCH_MAPVOTE_SELECTING_MAP] <- ["endmatch_mapvote_selecting_map",["count","slot1","slot2","slot3","slot4","slot5","slot6","slot7","slot8","slot9","slot10"]]; | |||
events_ids_translate[EVENT_ENDMATCH_CMM_START_REVEAL_ITEMS] <- ["endmatch_cmm_start_reveal_items",[]]; | |||
events_ids_translate[EVENT_INVENTORY_UPDATED] <- ["inventory_updated",[]]; | |||
events_ids_translate[EVENT_CART_UPDATED] <- ["cart_updated",[]]; | |||
events_ids_translate[EVENT_STORE_PRICESHEET_UPDATED] <- ["store_pricesheet_updated",[]]; | |||
events_ids_translate[EVENT_GC_CONNECTED] <- ["gc_connected",[]]; | |||
events_ids_translate[EVENT_ITEM_SCHEMA_INITIALIZED] <- ["item_schema_initialized",[]]; | |||
events_ids_translate[EVENT_CLIENT_LOADOUT_CHANGED] <- ["client_loadout_changed",[]]; | |||
events_ids_translate[EVENT_ADD_PLAYER_SONAR_ICON] <- ["add_player_sonar_icon",["userid","vector"]]; | |||
events_ids_translate[EVENT_ADD_BULLET_HIT_MARKER] <- ["add_bullet_hit_marker",["userid","bone","vector","vector","vector","hit"]]; | |||
events_ids_translate[EVENT_VERIFY_CLIENT_HIT] <- ["verify_client_hit",["userid","vector","timestamp"]]; | |||
events_ids_translate[EVENT_SERVER_SPAWN] <- ["server_spawn",["hostname","address","port","game","mapname","maxplayers","os","dedicated","official","password"]]; | |||
events_ids_translate[EVENT_SERVER_PRE_SHUTDOWN] <- ["server_pre_shutdown",["reason"]]; | |||
events_ids_translate[EVENT_SERVER_SHUTDOWN] <- ["server_shutdown",["reason"]]; | |||
events_ids_translate[EVENT_SERVER_CVAR] <- ["server_cvar",["cvarname","cvarvalue"]]; | |||
events_ids_translate[EVENT_SERVER_MESSAGE] <- ["server_message",["text"]]; | |||
events_ids_translate[EVENT_SERVER_ADDBAN] <- ["server_addban",["name","userid","networkid","ip","duration","by","kicked"]]; | |||
events_ids_translate[EVENT_SERVER_REMOVEBAN] <- ["server_removeban",["networkid","ip","by"]]; | |||
events_ids_translate[EVENT_PLAYER_CONNECT] <- ["player_connect",["name","index","userid","networkid","address"]]; | |||
events_ids_translate[EVENT_PLAYER_INFO] <- ["player_info",["name","index","userid","networkid","bot"]]; | |||
events_ids_translate[EVENT_PLAYER_DISCONNECT] <- ["player_disconnect",["userid","reason","name","networkid"]]; | |||
events_ids_translate[EVENT_PLAYER_ACTIVATE] <- ["player_activate",["userid"]]; | |||
events_ids_translate[EVENT_PLAYER_CONNECT_FULL] <- ["player_connect_full",["userid","index"]]; | |||
events_ids_translate[EVENT_PLAYER_SAY] <- ["player_say",["userid","text"]]; | |||
events_ids_translate[EVENT_CS_ROUND_START_BEEP] <- ["cs_round_start_beep",[]]; | |||
events_ids_translate[EVENT_CS_ROUND_FINAL_BEEP] <- ["cs_round_final_beep",[]]; | |||
events_ids_translate[EVENT_ROUND_TIME_WARNING] <- ["round_time_warning",[]]; | |||
if ( !("gameevents_proxy" in getroottable()) || ! (::gameevents_proxy.IsValid()) ) { | |||
::gameevents_proxy <- Entities.CreateByClassname("info_game_event_proxy"); | |||
::gameevents_proxy.__KeyValueFromString("event_name","player_use"); | |||
::gameevents_proxy.__KeyValueFromInt("range",0); | |||
} | |||
::GameEventsCapturedPlayer <- null | |||
function Think() { | |||
player <- null; | |||
while( (player = Entities.FindByClassname(player,"*")) != null ) { | |||
if (player.GetClassname() == "player") { | |||
if (player.ValidateScriptScope()) { | |||
local script_scope=player.GetScriptScope() | |||
if (!("userid" in script_scope) && !("attemptogenerateuserid" in script_scope)) { | |||
script_scope.attemptogenerateuserid <- true; | |||
::GameEventsCapturedPlayer=player; | |||
EntFireByHandle(::gameevents_proxy,"GenerateGameEvent","",0.0,player,null); | |||
return | |||
} | |||
} | |||
} | |||
} | |||
} | |||
//item_equip weptype enums | |||
::WEAPONTYPE_UNKNOWN <- -1 | |||
::WEAPONTYPE_KNIFE <- 0 | |||
::WEAPONTYPE_PISTOL <- 1 | |||
::WEAPONTYPE_SUBMACHINEGUN <- 2 | |||
::WEAPONTYPE_RIFLE <- 3 | |||
::WEAPONTYPE_SHOTGUN <- 4 | |||
::WEAPONTYPE_SNIPER_RIFLE <- 5 | |||
::WEAPONTYPE_MACHINEGUN <- 6 | |||
::WEAPONTYPE_C4 <- 7 | |||
::WEAPONTYPE_GRENADE <- 8 | |||
function FireEventFormat(id ,event_data) { | |||
local name = "OnGameEvent_" + events_ids_translate[id][0] | |||
local args = {} | |||
local vector = Vector(0,0,0) | |||
local writedx = false | |||
local writedy = false | |||
local writedz = false | |||
local offset = 0 | |||
local order = events_ids_translate[id][1] | |||
foreach (key,arg in event_data) { | |||
local shouldwrite=true | |||
if (key == "userid" || key == "attacker" || key == "assister" || key == "victimid" || key == "attackerid" || key == "playerid" || key == "botid") { | |||
arg=GetPlayerForUserID(arg); | |||
} | |||
if (key == "entindex" || key == "entindex_killed" || key == "entindex_attacker" || key == "entindex_inflictor" || key == "site" || key == "hostage" || key == "index" || key == "victim" || key == "killer" || key == "player" || key == "entity") { | |||
arg=GetEntityForIndex(arg); | |||
} | |||
if (key == "x" || key == "pos_x" || key == "start_x" || key == "ang_x") { | |||
vector.x=arg | |||
writedx=true | |||
shouldwrite=false | |||
} | |||
if (key == "y" || key == "pos_y" || key == "start_y" || key == "ang_y") { | |||
vector.y=arg | |||
writedy=true | |||
shouldwrite=false | |||
} | |||
if (key == "z" || key == "pos_z" || key == "start_z" || key == "ang_z") { | |||
vector.z=arg | |||
writedz=true | |||
shouldwrite=false | |||
} | |||
if (writedx && writedy && writedz) { | |||
foreach (index,k in order) { | |||
if (k == "vector") { | |||
args[index+1] <- vector | |||
writedx=false | |||
writedy=false | |||
writedz=false | |||
break | |||
} | |||
} | |||
} | |||
if (shouldwrite) { | |||
foreach (index,k in order) { | |||
if (k == key) { | |||
if(arg == null) | |||
args[index + 1] <- "null" | |||
else | |||
args[index + 1] <- arg | |||
break | |||
} | |||
} | |||
} | |||
} | |||
foreach(arg in args) { | |||
printl(arg.tostring()) | |||
} | |||
switch (args.len()) { | |||
case 0: | |||
getroottable()[name]() | |||
break | |||
case 1: | |||
getroottable()[name](args[1]) | |||
break | |||
case 2: | |||
getroottable()[name](args[1],args[2]) | |||
break | |||
case 3: | |||
getroottable()[name](args[1],args[2],args[3]) | |||
break | |||
case 4: | |||
getroottable()[name](args[1],args[2],args[3],args[4]) | |||
break | |||
case 5: | |||
getroottable()[name](args[1],args[2],args[3],args[4],args[5]); | |||
break | |||
case 6: | |||
getroottable()[name](args[1],args[2],args[3],args[4],args[5],args[6]) | |||
break | |||
case 7: | |||
getroottable()[name](args[1],args[2],args[3],args[4],args[5],args[6],args[7]) | |||
break | |||
case 8: | |||
getroottable()[name](args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8]) | |||
break | |||
case 9: | |||
getroottable()[name](args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8],args[9]) | |||
break | |||
case 10: | |||
getroottable()[name](args[1],args[3],args[4],args[5],args[6],args[7],args[8],args[9],args[10]) | |||
break | |||
} | |||
} | |||
//Used for assign user ids | |||
function userid_assigner(params) { | |||
if (::GameEventsCapturedPlayer != null && params.entity == 0) { | |||
local script_scope = ::GameEventsCapturedPlayer.GetScriptScope(); | |||
script_scope.userid <- params.userid; | |||
::GameEventsCapturedPlayer = null; | |||
return true | |||
} | |||
} | |||
function OnEventFired(EVENT_ID) { | |||
if (EVENT_ID == EVENT_PLAYER_USE) { | |||
if (userid_assigner(this.event_data)) { | |||
return | |||
} | |||
} | |||
if ("event_data" in this) { | |||
if ("OnGameEvent_" + events_ids_translate[EVENT_ID][0] in getroottable()) { | |||
FireEventFormat(EVENT_ID,this.event_data) | |||
} | |||
if ("OnGameEvent_" + events_ids_translate[EVENT_ID][0] + "_raw" in getroottable()) { | |||
getroottable()["OnGameEvent_"+events_ids_translate[EVENT_ID][0]+"_raw"](this.event_data) | |||
} | |||
} | |||
} | |||
::GetPlayerForUserID <- function(userid) { | |||
player <- null; | |||
while((player = Entities.FindByClassname(player,"*")) != null) { | |||
if ( player.GetClassname() == "player" ) { | |||
if ( player.ValidateScriptScope() ) { | |||
local script_scope = player.GetScriptScope() | |||
if (script_scope.userid == userid) { | |||
return player | |||
} | |||
} | |||
} | |||
} | |||
return null | |||
} | |||
::GetEntityForIndex <- function(entindex) { | |||
ent <- null; | |||
while((ent= Entities.FindByClassname(ent,"*")) != null) { | |||
if (ent.entindex() == entindex) {return ent} | |||
} | |||
return null | |||
} | |||
</source> | |||
食用方法:在地图内放置 logic_eventlistener 实体,并如下设置: | |||
[[File:EventListener.jpg|frameless|left|EventListener]]<br /> | |||
并且添加一条触发<br /> | |||
OnEventFired -> !self -> RunScriptCode("OnEventFired(EVENT_PLAYER_USE)")<br /> | |||
然后就可以食用啦<br /> | |||
比如你要监听玩家重生<br /> | |||
就复制一个这个实体,Event Name修改为:player_spawned<br /> | |||
触发修改为<br /> | |||
OnEventFired -> !self -> RunScriptCode("OnEventFired(EVENT_PLAYER_SPAWNED)")<br /> | |||
就可以在vscript里监听到了<br /> | |||
你可以使用两个类型的函数:<br /> | |||
OnGameEvent_player_spawned 和 OnGameEvent_player_spawned_raw<br /> | |||
前者可能会出一些问题比如这个player_spawned就只能使用后者了<br /> | |||
<source lang=cpp> | |||
::OnGameEvent_player_spawned_raw <- function (eventData) { | |||
local player = GetPlayerForUserID(eventData["userid"]) | |||
EntFireByHandle(player,"alpha","255",0.0,player,player) | |||
//player fields | |||
player.GetScriptScope().perk_jugg <- 0 | |||
player.GetScriptScope().perk_staminup <- 0 | |||
} | |||
</source> | |||
怎么样是不是很屌呢,这样能监听138个事件,可以在[https://wiki.alliedmods.net/Counter-Strike:_Global_Offensive_Events Allied Moder Wiki上找到完整的Event列表]以及参数<br /> | |||
比如 player hurt<br /> | |||
<source> | |||
player_hurt | |||
Note: When a client is damaged | |||
Name: player_hurt | |||
Structure: | |||
short userid user ID who was hurt | |||
short attacker user ID who attacked | |||
byte health remaining health points | |||
byte armor remaining armor points | |||
string weapon weapon name attacker used, if not the world | |||
short dmg_health damage done to health | |||
byte dmg_armor damage done to armor | |||
byte hitgroup hitgroup that was damaged ; 1=hs 2=upper torso 3=lower torso 4=left arm 5=right arm 6=left leg 7=right leg | |||
</source> | |||
你就可以这样食用函数: | |||
<source lang=cpp> | |||
::OnGameEvent_player_hurt <- function (player,attacker,health,armor,weapon,dmg_health,dmg_armor,hitgroup) { | |||
//搞事情 | |||
} | |||
</source> | |||
{{Note|请注意!你可以看到上面的userid在我的定义里直接变成player,这是因为这个上面的那个很长的脚本可以自动将userid转换成Entity Handle!不过当你使用raw的监听函数的时候就只能自己转换了}} | |||
{{todo|求更多大佬完善这个界面}} | |||
==看一下这些吧== | ==看一下这些吧== | ||
Line 92: | Line 861: | ||
* [http://en.wikipedia.org/wiki/Squirrel_(programming_language) Squirrel (programming language)] - Wikipedia Article on Squirrel | * [http://en.wikipedia.org/wiki/Squirrel_(programming_language) Squirrel (programming language)] - Wikipedia Article on Squirrel | ||
* {{sq}}[http://squirrel-lang.org/ Squirrel: The Programming Language - Documentation and Sample Code] | * {{sq}}[http://squirrel-lang.org/ Squirrel: The Programming Language - Documentation and Sample Code] | ||
[[Category:Counter-Strike:_Global_Offensive]] | [[Category:Counter-Strike:_Global_Offensive]] | ||
[[Category:Scripting]] | [[Category:Scripting]] |
Latest revision as of 02:50, 16 January 2025

This article is an orphan, meaning that few or no articles link to it.
You can help by
adding links to this article from other relevant articles.
January 2024
You can help by

January 2024
以下是适用于Counter-Strike: Global Offensive 的 vscripts 脚本 .
找到离一个已知实体实体最近的玩家
buttonReference <- Entities.FindByName( null, "button_01" ); // 找到一个叫 "button_01" 的实体并且储存它的targetname(名字)
player <- Entities.FindByClassnameNearest( "player", buttonReference.GetOrigin(), 512 ); // 在距离按钮中心 512 Hammer单位(英寸) 的范围内寻找玩家并且储存为一个变量.
会原地爆炸爆的诱弹
//以下的脚本需要附加到一个类似logic_script之类的实体上
EXPLOSION_SOUND <- "c4.Explode"; //这个可以在Hammer的声音浏览器里找到
function Precache() /如果这个函数定义了那么他会在脚本执行时自动执行
{
self.PrecacheScriptSound( EXPLOSION_SOUND );
}
//以下脚本的作用是每间隔 0.1 秒检查地图上有没有 decoy_projectiles 这个实体
//当地图上有这个实体的时候检测他的速度是否为 0,0,0
//如果是的那么诱弹就是停下来了然后就可以运行剩下的部分:
//创建一个 env_explosion 并且移动到诱弹的中心点
//然后触发这玩意,随后kill掉诱弹
function Think()
{
ent <- null;
while ((ent = Entities.FindByClassname(ent, "decoy_projectile")) != null)
{
if(ent.GetVelocity().Length() == Vector(0,0,0).Length())
{
owner <- ent.GetOwner();
origin <- ent.GetOrigin();
exp <- Entities.CreateByClassname("env_explosion");
exp.__KeyValueFromInt("iMagnitude", 2000);
ent.EmitSound(EXPLOSION_SOUND);
exp.SetOrigin(origin);
exp.SetOwner(owner);
EntFireByHandle(exp, "Explode", "", 0.1, owner,owner);
ent.Destroy();
DispatchParticleEffect("explosion_c4_500", origin, origin);
}
}
}
一把始终瞄准着玩家的枪
//以下脚本需要以下在hammer里放好以下实体:
//一个叫sentry_main的的枪模型
//然后运行StartAimBot
function StartAimBot() {
sentry <- Entities.FindByName(null,"sentry_main");
}
function Think() {
local Target = Entities.FindByClassnameNearest( "player", sentry.GetOrigin(), 512 );
if(Target != null) {
local m_targetVector = Target.EyePosition();
local m_sentryOrigin = sentry.GetOrigin();
local m_dir = m_targetVector - m_sentryOrigin;
local UCSX = sqrt(pow(m_dir.x,2)+pow(m_dir.y,2));
local pitch = asin(m_dir.z / sqrt( pow(UCSX,2) + pow(m_dir.z,2) )) * 180 / PI * -1;
local yaw = asin(m_dir.y / sqrt( pow(m_dir.x,2) + pow(m_dir.y,2) )) * 180 / PI;
if(m_dir.x < 0)
yaw = 180 - yaw;
sentry.SetAngles(pitch,yaw,0);
}
}
在hud上显示消息
_msg <- null
//如何调用?
//ShowMsg(activator,"<font color='#FFFF00'>这是一条红色的消息");
function ShowMsg(player, message)
{
if(_msg == null)
_msg <- Entities.CreateByClassname("env_message");
_msg.__KeyValueFromString("message", message);
_msg.SetOwner(player);
EntFireByHandle(_msg, "showmessage", "", 0, player, player);
}
事件监听器
//EVENTS
EVENT_PLAYER_DEATH <- 0;
EVENT_OTHER_DEATH <- 1;
EVENT_PLAYER_HURT <- 2;
EVENT_ITEM_PURCHASE <- 3;
EVENT_BOMB_BEGINPLANT <- 4;
EVENT_BOMB_ABORTPLANT <- 5;
EVENT_BOMB_PLANTED <- 6;
EVENT_BOMB_DEFUSED <- 7;
EVENT_BOMB_EXPLODED <- 8;
EVENT_BOMB_DROPPED <- 9;
EVENT_BOMB_PICKUP <- 10;
EVENT_DEFUSER_DROPPED <- 11;
EVENT_DEFUSER_PICKUP <- 12;
EVENT_ANNOUNCE_PHASE_END <- 13;
EVENT_CS_INTERMISSION <- 14;
EVENT_BOMB_BEGINDEFUSE <- 15;
EVENT_BOMB_ABORTDEFUSE <- 16;
EVENT_HOSTAGE_FOLLOWS <- 17;
EVENT_HOSTAGE_HURT <- 18;
EVENT_HOSTAGE_KILLED <- 19;
EVENT_HOSTAGE_RESCUED <- 20;
EVENT_HOSTAGE_STOPS_FOLLOWING <- 21;
EVENT_HOSTAGE_RESCUED_ALL <- 22;
EVENT_HOSTAGE_CALL_FOR_HELP <- 23;
EVENT_VIP_ESCAPED <- 24;
EVENT_VIP_KILLED <- 25;
EVENT_PLAYER_RADIO <- 26;
EVENT_BOMB_BEEP <- 27;
EVENT_WEAPON_FIRE <- 28;
EVENT_WEAPON_FIRE_ON_EMPTY <- 29;
EVENT_WEAPON_OUTOFAMMO <- 30;
EVENT_WEAPON_RELOAD <- 31;
EVENT_WEAPON_ZOOM <- 32;
EVENT_SILENCER_DETACH <- 33;
EVENT_INSPECT_WEAPON <- 34;
EVENT_WEAPON_ZOOM_RIFLE <- 35;
EVENT_PLAYER_SPAWNED <- 36;
EVENT_ITEM_PICKUP <- 37;
EVENT_AMMO_PICKUP <- 38;
EVENT_ITEM_EQUIP <- 39;
EVENT_ENTER_BUYZONE <- 40;
EVENT_EXIT_BUYZONE <- 41;
EVENT_BUYTIME_ENDED <- 42;
EVENT_ENTER_BOMBZONE <- 43;
EVENT_EXIT_BOMBZONE <- 44;
EVENT_ENTER_RESCUE_ZONE <- 45;
EVENT_EXIT_RESCUE_ZONE <- 46;
EVENT_SILENCER_OFF <- 47;
EVENT_SILENCER_ON <- 48;
EVENT_BUYMENU_OPEN <- 49;
EVENT_BUYMENU_CLOSE <- 50;
EVENT_ROUND_PRESTART <- 51;
EVENT_ROUND_POSTSTART <- 52;
EVENT_ROUND_START <- 53;
EVENT_ROUND_END <- 54;
EVENT_GRENADE_BOUNCE <- 55;
EVENT_HEGRENADE_DETONATE <- 56;
EVENT_FLASHBANG_DETONATE <- 57;
EVENT_SMOKEGRENADE_DETONATE <- 58;
EVENT_SMOKEGRENADE_EXPIRED <- 59;
EVENT_MOLOTOV_DETONATE <- 60;
EVENT_DECOY_DETONATE <- 61;
EVENT_DECOY_STARTED <- 62;
EVENT_TAGRENADE_DETONATE <- 63;
EVENT_INFERNO_STARTBURN <- 64;
EVENT_INFERNO_EXPIRE <- 65;
EVENT_INFERNO_EXTINGUISH <- 66;
EVENT_DECOY_FIRING <- 67;
EVENT_BULLET_IMPACT <- 68;
EVENT_PLAYER_FOOTSTEP <- 69;
EVENT_PLAYER_JUMP <- 70;
EVENT_PLAYER_BLIND <- 71;
EVENT_PLAYER_FALLDAMAGE <- 72;
EVENT_DOOR_MOVING <- 73;
EVENT_ROUND_FREEZE_END <- 74;
EVENT_MB_INPUT_LOCK_SUCCESS <- 75;
EVENT_MB_INPUT_LOCK_CANCEL <- 76;
EVENT_NAV_BLOCKED <- 77;
EVENT_NAV_GENERATE <- 78;
EVENT_PLAYER_STATS_UPDATED <- 79;
EVENT_ACHIEVEMENT_INFO_LOADED <- 80;
EVENT_SPEC_TARGET_UPDATED <- 81;
EVENT_SPEC_MODE_UPDATED <- 82;
EVENT_HLTV_CHANGED_MODE <- 83;
EVENT_CS_GAME_DISCONNECTED <- 84;
EVENT_CS_WIN_PANEL_ROUND <- 85;
EVENT_CS_WIN_PANEL_MATCH <- 86;
EVENT_CS_MATCH_END_RESTART <- 87;
EVENT_CS_PRE_RESTART <- 88;
EVENT_SHOW_FREEZEPANEL <- 89;
EVENT_HIDE_FREEZEPANEL <- 90;
EVENT_FREEZECAM_STARTED <- 91;
EVENT_PLAYER_AVENGED_TEAMMATE <- 92;
EVENT_ACHIEVEMENT_EARNED <- 93;
EVENT_ACHIEVEMENT_EARNED_LOCAL <- 94;
EVENT_ITEM_FOUND <- 95;
EVENT_ITEMS_GIFTED <- 96;
EVENT_REPOST_XBOX_ACHIEVEMENTS <- 97;
EVENT_MATCH_END_CONDITIONS <- 98;
EVENT_ROUND_MVP <- 99;
EVENT_PLAYER_DECAL <- 100;
EVENT_TEAMPLAY_ROUND_START <- 101;
EVENT_CLIENT_DISCONNECT <- 102;
EVENT_GG_PLAYER_LEVELUP <- 103;
EVENT_GGTR_PLAYER_LEVELUP <- 104;
EVENT_ASSASSINATION_TARGET_KILLED <- 105;
EVENT_GGPROGRESSIVE_PLAYER_LEVELUP <- 106;
EVENT_GG_KILLED_ENEMY <- 107;
EVENT_GG_FINAL_WEAPON_ACHIEVED <- 108;
EVENT_GG_BONUS_GRENADE_ACHIEVED <- 109;
EVENT_SWITCH_TEAM <- 110;
EVENT_GG_LEADER <- 111;
EVENT_GG_TEAM_LEADER <- 112;
EVENT_GG_PLAYER_IMPENDING_UPGRADE <- 113;
EVENT_WRITE_PROFILE_DATA <- 114;
EVENT_TRIAL_TIME_EXPIRED <- 115;
EVENT_UPDATE_MATCHMAKING_STATS <- 116;
EVENT_PLAYER_RESET_VOTE <- 117;
EVENT_ENABLE_RESTART_VOTING <- 118;
EVENT_SFUIEVENT <- 119;
EVENT_START_VOTE <- 120;
EVENT_PLAYER_GIVEN_C4 <- 121;
EVENT_GG_RESET_ROUND_START_SOUNDS <- 122;
EVENT_TR_PLAYER_FLASHBANGED <- 123;
EVENT_TR_MARK_COMPLETE <- 124;
EVENT_TR_MARK_BEST_TIME <- 125;
EVENT_TR_EXIT_HINT_TRIGGER <- 126;
EVENT_BOT_TAKEOVER <- 127;
EVENT_TR_SHOW_FINISH_MSGBOX <- 128;
EVENT_TR_SHOW_EXIT_MSGBOX <- 129;
EVENT_RESET_PLAYER_CONTROLS <- 130;
EVENT_JOINTEAM_FAILED <- 131;
EVENT_TEAMCHANGE_PENDING <- 132;
EVENT_MATERIAL_DEFAULT_COMPLETE <- 133;
EVENT_CS_PREV_NEXT_SPECTATOR <- 134;
EVENT_CS_HANDLE_IME_EVENT <- 135;
EVENT_NEXTLEVEL_CHANGED <- 136;
EVENT_SEASONCOIN_LEVELUP <- 137;
EVENT_TOURNAMENT_REWARD <- 138;
EVENT_START_HALFTIME <- 139;
EVENT_HLTV_STATUS <- 140;
EVENT_HLTV_CAMERAMAN <- 141;
EVENT_HLTV_RANK_CAMERA <- 142;
EVENT_HLTV_RANK_ENTITY <- 143;
EVENT_HLTV_FIXED <- 144;
EVENT_HLTV_CHASE <- 145;
EVENT_HLTV_MESSAGE <- 146;
EVENT_HLTV_TITLE <- 147;
EVENT_HLTV_CHAT <- 148;
EVENT_HLTV_CHANGED_TARGET <- 149;
EVENT_TEAM_INFO <- 150;
EVENT_TEAM_SCORE <- 151;
EVENT_TEAMPLAY_BROADCAST_AUDIO <- 152;
EVENT_GAMEUI_HIDDEN <- 153;
EVENT_ITEMS_GIFTED <- 154;
EVENT_PLAYER_TEAM <- 155;
EVENT_PLAYER_CLASS <- 156;
//EVENT_PLAYER_DEATH <- 157;
EVENT_PLAYER_HURT <- 158;
EVENT_PLAYER_CHAT <- 159;
EVENT_PLAYER_SCORE <- 160;
EVENT_PLAYER_SPAWN <- 161;
EVENT_PLAYER_SHOOT <- 162;
EVENT_PLAYER_USE <- 163;
EVENT_PLAYER_CHANGENAME <- 164;
EVENT_PLAYER_HINTMESSAGE <- 165;
EVENT_GAME_INIT <- 166;
EVENT_GAME_NEWMAP <- 167;
EVENT_GAME_START <- 168;
EVENT_GAME_END <- 169;
//EVENT_ROUND_START <- 170;
EVENT_ROUND_ANNOUNCE_MATCH_POINT <- 171;
EVENT_ROUND_ANNOUNCE_FINAL <- 172;
EVENT_ROUND_ANNOUNCE_LAST_ROUND_HALF <- 173;
EVENT_ROUND_ANNOUNCE_MATCH_START <- 174;
EVENT_ROUND_ANNOUNCE_WARMUP <- 175;
//EVENT_ROUND_END <- 176;
EVENT_ROUND_END_UPLOAD_STATS <- 177;
EVENT_ROUND_OFFICIALLY_ENDED <- 178;
EVENT_ROUND_TIME_WARNING <- 179;
EVENT_UGC_MAP_INFO_RECEIVED <- 180;
EVENT_UGC_MAP_UNSUBSCRIBED <- 181;
EVENT_UGC_MAP_DOWNLOAD_ERROR <- 182;
EVENT_UGC_FILE_DOWNLOAD_FINISHED <- 183;
EVENT_UGC_FILE_DOWNLOAD_START <- 184;
EVENT_BEGIN_NEW_MATCH <- 185;
EVENT_ROUND_START_PRE_ENTITY <- 186;
EVENT_TEAMPLAY_ROUND_START <- 187;
EVENT_HOSTNAME_CHANGED <- 188;
EVENT_DIFFICULTY_CHANGED <- 189;
EVENT_FINALE_START <- 190;
EVENT_GAME_MESSAGE <- 191;
EVENT_DM_BONUS_WEAPON_START <- 192;
EVENT_SURVIVAL_ANNOUNCE_PHASE <- 193;
EVENT_BREAK_BREAKABLE <- 194;
EVENT_BREAK_PROP <- 195;
EVENT_PLAYER_DECAL <- 196;
EVENT_ENTITY_KILLED <- 197;
EVENT_BONUS_UPDATED <- 198;
EVENT_PLAYER_STATS_UPDATED <- 199;
EVENT_ACHIEVEMENT_EVENT <- 200;
EVENT_ACHIEVEMENT_INCREMENT <- 201;
EVENT_ACHIEVEMENT_EARNED <- 202;
EVENT_ACHIEVEMENT_WRITE_FAILED <- 203;
EVENT_PHYSGUN_PICKUP <- 204;
EVENT_FLARE_IGNITE_NPC <- 205;
EVENT_HELICOPTER_GRENADE_PUNT_MISS <- 206;
EVENT_USER_DATA_DOWNLOADED <- 207;
EVENT_RAGDOLL_DISSOLVED <- 208;
EVENT_GAMEINSTRUCTOR_DRAW <- 209;
EVENT_GAMEINSTRUCTOR_NODRAW <- 210;
EVENT_MAP_TRANSITION <- 211;
EVENT_ENTITY_VISIBLE <- 212;
EVENT_SET_INSTRUCTOR_GROUP_ENABLED <- 213;
EVENT_INSTRUCTOR_SERVER_HINT_CREATE <- 214;
EVENT_INSTRUCTOR_SERVER_HINT_STOP <- 215;
EVENT_READ_GAME_TITLEDATA <- 216;
EVENT_WRITE_GAME_TITLEDATA <- 217;
EVENT_RESET_GAME_TITLEDATA <- 218;
EVENT_WEAPON_RELOAD_DATABASE <- 219;
EVENT_VOTE_ENDED <- 220;
EVENT_VOTE_STARTED <- 221;
EVENT_VOTE_CHANGED <- 222;
EVENT_VOTE_PASSED <- 223;
EVENT_VOTE_FAILED <- 224;
EVENT_VOTE_CAST <- 225;
EVENT_VOTE_OPTIONS <- 226;
EVENT_ENDMATCH_MAPVOTE_SELECTING_MAP <- 227;
EVENT_ENDMATCH_CMM_START_REVEAL_ITEMS <- 228;
EVENT_INVENTORY_UPDATED <- 229;
EVENT_CART_UPDATED <- 230;
EVENT_STORE_PRICESHEET_UPDATED <- 231;
EVENT_GC_CONNECTED <- 232;
EVENT_ITEM_SCHEMA_INITIALIZED <- 233;
EVENT_CLIENT_LOADOUT_CHANGED <- 234;
EVENT_ADD_PLAYER_SONAR_ICON <- 235;
EVENT_ADD_BULLET_HIT_MARKER <- 236;
EVENT_VERIFY_CLIENT_HIT <- 237;
EVENT_SERVER_SPAWN <- 238;
EVENT_SERVER_PRE_SHUTDOWN <- 239;
EVENT_SERVER_SHUTDOWN <- 240;
EVENT_SERVER_CVAR <- 241;
EVENT_SERVER_MESSAGE <- 242;
EVENT_SERVER_ADDBAN <- 243;
EVENT_SERVER_REMOVEBAN <- 244;
EVENT_PLAYER_CONNECT <- 245;
EVENT_PLAYER_INFO <- 246;
EVENT_PLAYER_DISCONNECT <- 247;
EVENT_PLAYER_ACTIVATE <- 248;
EVENT_PLAYER_CONNECT_FULL <- 249;
EVENT_PLAYER_SAY <- 250;
EVENT_CS_ROUND_START_BEEP <- 251;
EVENT_CS_ROUND_FINAL_BEEP <- 252;
EVENT_ROUND_TIME_WARNING <- 253;
events_ids_translate <- {};
events_ids_translate[EVENT_PLAYER_DEATH] <- ["player_death",["userid","attacker","assister","weapon","weapon_itemid","weapon_fauxitemid","weapon_originalowner_xuid","headshot","dominated","revenge","penetrated","noreplay"]];
events_ids_translate[EVENT_OTHER_DEATH] <- ["other_death",["otherid","othertype","attacker","weapon","weapon_itemid","weapon_fauxitemid","weapon_originalowner_xuid","headshot","penetrated"]];
events_ids_translate[EVENT_PLAYER_HURT] <- ["player_hurt",["userid","attacker","health","armor","weapon","dmg_health","dmg_armor","hitgroup"]];
events_ids_translate[EVENT_ITEM_PURCHASE] <- ["item_purchase",["userid","team","weapon"]];
events_ids_translate[EVENT_BOMB_BEGINPLANT] <- ["bomb_beginplant",["userid","site"]];
events_ids_translate[EVENT_BOMB_ABORTPLANT] <- ["bomb_abortplant",["userid","site"]];
events_ids_translate[EVENT_BOMB_PLANTED] <- ["bomb_planted",["userid","site"]];
events_ids_translate[EVENT_BOMB_DEFUSED] <- ["bomb_defused",["userid","site"]];
events_ids_translate[EVENT_BOMB_EXPLODED] <- ["bomb_exploded",["userid","site"]];
events_ids_translate[EVENT_BOMB_DROPPED] <- ["bomb_dropped",["userid","entindex"]];
events_ids_translate[EVENT_BOMB_PICKUP] <- ["bomb_pickup",["userid"]];
events_ids_translate[EVENT_DEFUSER_DROPPED] <- ["defuser_dropped",["entityid"]];
events_ids_translate[EVENT_DEFUSER_PICKUP] <- ["defuser_pickup",["entityid","userid"]];
events_ids_translate[EVENT_ANNOUNCE_PHASE_END] <- ["announce_phase_end",[]];
events_ids_translate[EVENT_CS_INTERMISSION] <- ["cs_intermission",[]];
events_ids_translate[EVENT_BOMB_BEGINDEFUSE] <- ["bomb_begindefuse",["userid","haskit"]];
events_ids_translate[EVENT_BOMB_ABORTDEFUSE] <- ["bomb_abortdefuse",["userid"]];
events_ids_translate[EVENT_HOSTAGE_FOLLOWS] <- ["hostage_follows",["userid","hostage"]];
events_ids_translate[EVENT_HOSTAGE_HURT] <- ["hostage_hurt",["userid","hostage"]];
events_ids_translate[EVENT_HOSTAGE_KILLED] <- ["hostage_killed",["userid","hostage"]];
events_ids_translate[EVENT_HOSTAGE_RESCUED] <- ["hostage_rescued",["userid","hostage","site"]];
events_ids_translate[EVENT_HOSTAGE_STOPS_FOLLOWING] <- ["hostage_stops_following",["userid","hostage"]];
events_ids_translate[EVENT_HOSTAGE_RESCUED_ALL] <- ["hostage_rescued_all",[]];
events_ids_translate[EVENT_HOSTAGE_CALL_FOR_HELP] <- ["hostage_call_for_help",["hostage"]];
events_ids_translate[EVENT_VIP_ESCAPED] <- ["vip_escaped",["userid"]];
events_ids_translate[EVENT_VIP_KILLED] <- ["vip_killed",["userid","attacker"]];
events_ids_translate[EVENT_PLAYER_RADIO] <- ["player_radio",["userid","slot"]];
events_ids_translate[EVENT_BOMB_BEEP] <- ["bomb_beep",["entindex"]];
events_ids_translate[EVENT_WEAPON_FIRE] <- ["weapon_fire",["userid","weapon","silenced"]];
events_ids_translate[EVENT_WEAPON_FIRE_ON_EMPTY] <- ["weapon_fire_on_empty",["userid","weapon"]];
events_ids_translate[EVENT_WEAPON_OUTOFAMMO] <- ["weapon_outofammo",["userid"]];
events_ids_translate[EVENT_WEAPON_RELOAD] <- ["weapon_reload",["userid"]];
events_ids_translate[EVENT_WEAPON_ZOOM] <- ["weapon_zoom",["userid"]];
events_ids_translate[EVENT_SILENCER_DETACH] <- ["silencer_detach",["userid"]];
events_ids_translate[EVENT_INSPECT_WEAPON] <- ["inspect_weapon",["userid"]];
events_ids_translate[EVENT_WEAPON_ZOOM_RIFLE] <- ["weapon_zoom_rifle",["userid"]];
events_ids_translate[EVENT_PLAYER_SPAWNED] <- ["player_spawned",["userid","inrestart"]];
events_ids_translate[EVENT_ITEM_PICKUP] <- ["item_pickup",["userid","item","silent"]];
events_ids_translate[EVENT_AMMO_PICKUP] <- ["ammo_pickup",["userid","item","index"]];
events_ids_translate[EVENT_ITEM_EQUIP] <- ["item_equip",["userid","item","canzoom","hassilencer","issilenced","hastracers","weptype","ispainted"]];
events_ids_translate[EVENT_ENTER_BUYZONE] <- ["enter_buyzone",["userid","canbuy"]];
events_ids_translate[EVENT_EXIT_BUYZONE] <- ["exit_buyzone",["userid","canbuy"]];
events_ids_translate[EVENT_BUYTIME_ENDED] <- ["buytime_ended",[]];
events_ids_translate[EVENT_ENTER_BOMBZONE] <- ["enter_bombzone",["userid","hasbomb","isplanted"]];
events_ids_translate[EVENT_EXIT_BOMBZONE] <- ["exit_bombzone",["userid","hasbomb","isplanted"]];
events_ids_translate[EVENT_ENTER_RESCUE_ZONE] <- ["enter_rescue_zone",["userid"]];
events_ids_translate[EVENT_EXIT_RESCUE_ZONE] <- ["exit_rescue_zone",["userid"]];
events_ids_translate[EVENT_SILENCER_OFF] <- ["silencer_off",["userid"]];
events_ids_translate[EVENT_SILENCER_ON] <- ["silencer_on",["userid"]];
events_ids_translate[EVENT_BUYMENU_OPEN] <- ["buymenu_open",["userid"]];
events_ids_translate[EVENT_BUYMENU_CLOSE] <- ["buymenu_close",["userid"]];
events_ids_translate[EVENT_ROUND_PRESTART] <- ["round_prestart",[]];
events_ids_translate[EVENT_ROUND_POSTSTART] <- ["round_poststart",[]];
events_ids_translate[EVENT_ROUND_START] <- ["round_start",["timelimit","fraglimit","objective"]];
events_ids_translate[EVENT_ROUND_END] <- ["round_end",["winner","reason","message","legacy","player_count"]];
events_ids_translate[EVENT_GRENADE_BOUNCE] <- ["grenade_bounce",["userid"]];
events_ids_translate[EVENT_HEGRENADE_DETONATE] <- ["hegrenade_detonate",["userid","entityid","vector"]];
events_ids_translate[EVENT_FLASHBANG_DETONATE] <- ["flashbang_detonate",["userid","entityid","vector"]];
events_ids_translate[EVENT_SMOKEGRENADE_DETONATE] <- ["smokegrenade_detonate",["userid","entityid","vector"]];
events_ids_translate[EVENT_SMOKEGRENADE_EXPIRED] <- ["smokegrenade_expired",["userid","entityid","vector"]];
events_ids_translate[EVENT_MOLOTOV_DETONATE] <- ["molotov_detonate",["userid","vector"]];
events_ids_translate[EVENT_DECOY_DETONATE] <- ["decoy_detonate",["userid","entityid","vector"]];
events_ids_translate[EVENT_DECOY_STARTED] <- ["decoy_started",["userid","entityid","vector"]];
events_ids_translate[EVENT_TAGRENADE_DETONATE] <- ["tagrenade_detonate",["userid","entityid","vector"]];
events_ids_translate[EVENT_INFERNO_STARTBURN] <- ["inferno_startburn",["entityid","vector"]];
events_ids_translate[EVENT_INFERNO_EXPIRE] <- ["inferno_expire",["entityid","vector"]];
events_ids_translate[EVENT_INFERNO_EXTINGUISH] <- ["inferno_extinguish",["entityid","vector"]];
events_ids_translate[EVENT_DECOY_FIRING] <- ["decoy_firing",["userid","entityid","vector"]];
events_ids_translate[EVENT_BULLET_IMPACT] <- ["bullet_impact",["userid","vector"]];
events_ids_translate[EVENT_PLAYER_FOOTSTEP] <- ["player_footstep",["userid"]];
events_ids_translate[EVENT_PLAYER_JUMP] <- ["player_jump",["userid"]];
events_ids_translate[EVENT_PLAYER_BLIND] <- ["player_blind",["userid"]];
events_ids_translate[EVENT_PLAYER_FALLDAMAGE] <- ["player_falldamage",["userid","damage"]];
events_ids_translate[EVENT_DOOR_MOVING] <- ["door_moving",["entindex","userid"]];
events_ids_translate[EVENT_ROUND_FREEZE_END] <- ["round_freeze_end",[]];
events_ids_translate[EVENT_MB_INPUT_LOCK_SUCCESS] <- ["mb_input_lock_success",[]];
events_ids_translate[EVENT_MB_INPUT_LOCK_CANCEL] <- ["mb_input_lock_cancel",[]];
events_ids_translate[EVENT_NAV_BLOCKED] <- ["nav_blocked",["area","blocked"]];
events_ids_translate[EVENT_NAV_GENERATE] <- ["nav_generate",[]];
events_ids_translate[EVENT_PLAYER_STATS_UPDATED] <- ["player_stats_updated",["forceupload"]];
events_ids_translate[EVENT_ACHIEVEMENT_INFO_LOADED] <- ["achievement_info_loaded",[]];
events_ids_translate[EVENT_SPEC_TARGET_UPDATED] <- ["spec_target_updated",["userid"]];
events_ids_translate[EVENT_SPEC_MODE_UPDATED] <- ["spec_mode_updated",["userid"]];
events_ids_translate[EVENT_HLTV_CHANGED_MODE] <- ["hltv_changed_mode",["oldmode","newmode","obs_target"]];
events_ids_translate[EVENT_CS_GAME_DISCONNECTED] <- ["cs_game_disconnected",[]];
events_ids_translate[EVENT_CS_WIN_PANEL_ROUND] <- ["cs_win_panel_round",["show_timer_defend","show_timer_attack","timer_time","final_event","funfact_token","funfact_player","funfact_data1","funfact_data2","funfact_data3"]];
events_ids_translate[EVENT_CS_WIN_PANEL_MATCH] <- ["cs_win_panel_match",[]];
events_ids_translate[EVENT_CS_MATCH_END_RESTART] <- ["cs_match_end_restart",[]];
events_ids_translate[EVENT_CS_PRE_RESTART] <- ["cs_pre_restart",[]];
events_ids_translate[EVENT_SHOW_FREEZEPANEL] <- ["show_freezepanel",["victim","killer","hits_taken","damage_taken","hits_given","damage_given"]];
events_ids_translate[EVENT_HIDE_FREEZEPANEL] <- ["hide_freezepanel",[]];
events_ids_translate[EVENT_FREEZECAM_STARTED] <- ["freezecam_started",[]];
events_ids_translate[EVENT_PLAYER_AVENGED_TEAMMATE] <- ["player_avenged_teammate",["avenger_id","avenged_player_id"]];
events_ids_translate[EVENT_ACHIEVEMENT_EARNED] <- ["achievement_earned",["player","achievement"]];
events_ids_translate[EVENT_ACHIEVEMENT_EARNED_LOCAL] <- ["achievement_earned_local",["achievement","splitscreenplayer"]];
events_ids_translate[EVENT_ITEM_FOUND] <- ["item_found",["player","quality","method","itemdef","itemid"]];
events_ids_translate[EVENT_ITEMS_GIFTED] <- ["items_gifted",["player","itemdef","numgifts","giftidx","accountid"]];
events_ids_translate[EVENT_REPOST_XBOX_ACHIEVEMENTS] <- ["repost_xbox_achievements",["splitscreenplayer"]];
events_ids_translate[EVENT_MATCH_END_CONDITIONS] <- ["match_end_conditions",["frags","max_rounds","win_rounds","time"]];
events_ids_translate[EVENT_ROUND_MVP] <- ["round_mvp",["userid","reason","musickitmvps"]];
events_ids_translate[EVENT_PLAYER_DECAL] <- ["player_decal",["userid"]];
events_ids_translate[EVENT_TEAMPLAY_ROUND_START] <- ["teamplay_round_start",["full_reset"]];
events_ids_translate[EVENT_CLIENT_DISCONNECT] <- ["client_disconnect",[]];
events_ids_translate[EVENT_GG_PLAYER_LEVELUP] <- ["gg_player_levelup",["userid","weaponrank","weaponname"]];
events_ids_translate[EVENT_GGTR_PLAYER_LEVELUP] <- ["ggtr_player_levelup",["userid","weaponrank","weaponname"]];
events_ids_translate[EVENT_ASSASSINATION_TARGET_KILLED] <- ["assassination_target_killed",["target","killer"]];
events_ids_translate[EVENT_GGPROGRESSIVE_PLAYER_LEVELUP] <- ["ggprogressive_player_levelup",["userid","weaponrank","weaponname"]];
events_ids_translate[EVENT_GG_KILLED_ENEMY] <- ["gg_killed_enemy",["victimid","attackerid","dominated","revenge","bonus"]];
events_ids_translate[EVENT_GG_FINAL_WEAPON_ACHIEVED] <- ["gg_final_weapon_achieved",["playerid"]];
events_ids_translate[EVENT_GG_BONUS_GRENADE_ACHIEVED] <- ["gg_bonus_grenade_achieved",["userid"]];
events_ids_translate[EVENT_SWITCH_TEAM] <- ["switch_team",["numplayers","numspectators","avg_rank","numtslotsfree","numctslotsfree"]];
events_ids_translate[EVENT_GG_LEADER] <- ["gg_leader",["playerid"]];
events_ids_translate[EVENT_GG_TEAM_LEADER] <- ["gg_team_leader",["playerid"]];
events_ids_translate[EVENT_GG_PLAYER_IMPENDING_UPGRADE] <- ["gg_player_impending_upgrade",["userid"]];
events_ids_translate[EVENT_WRITE_PROFILE_DATA] <- ["write_profile_data",[]];
events_ids_translate[EVENT_TRIAL_TIME_EXPIRED] <- ["trial_time_expired",["slot"]];
events_ids_translate[EVENT_UPDATE_MATCHMAKING_STATS] <- ["update_matchmaking_stats",[]];
events_ids_translate[EVENT_PLAYER_RESET_VOTE] <- ["player_reset_vote",["userid","vote"]];
events_ids_translate[EVENT_ENABLE_RESTART_VOTING] <- ["enable_restart_voting",["enable"]];
events_ids_translate[EVENT_SFUIEVENT] <- ["sfuievent",["action","data","slot"]];
events_ids_translate[EVENT_START_VOTE] <- ["start_vote",["userid","type","vote_parameter"]];
events_ids_translate[EVENT_PLAYER_GIVEN_C4] <- ["player_given_c4",["userid"]];
events_ids_translate[EVENT_GG_RESET_ROUND_START_SOUNDS] <- ["gg_reset_round_start_sounds",["userid"]];
events_ids_translate[EVENT_TR_PLAYER_FLASHBANGED] <- ["tr_player_flashbanged",["userid"]];
events_ids_translate[EVENT_TR_MARK_COMPLETE] <- ["tr_mark_complete",["complete"]];
events_ids_translate[EVENT_TR_MARK_BEST_TIME] <- ["tr_mark_best_time",["time"]];
events_ids_translate[EVENT_TR_EXIT_HINT_TRIGGER] <- ["tr_exit_hint_trigger",[]];
events_ids_translate[EVENT_BOT_TAKEOVER] <- ["bot_takeover",["userid","botid","index"]];
events_ids_translate[EVENT_TR_SHOW_FINISH_MSGBOX] <- ["tr_show_finish_msgbox",["userid"]];
events_ids_translate[EVENT_TR_SHOW_EXIT_MSGBOX] <- ["tr_show_exit_msgbox",["userid"]];
events_ids_translate[EVENT_RESET_PLAYER_CONTROLS] <- ["reset_player_controls",[]];
events_ids_translate[EVENT_JOINTEAM_FAILED] <- ["jointeam_failed",["userid","reason"]];
events_ids_translate[EVENT_TEAMCHANGE_PENDING] <- ["teamchange_pending",["userid","toteam"]];
events_ids_translate[EVENT_MATERIAL_DEFAULT_COMPLETE] <- ["material_default_complete",[]];
events_ids_translate[EVENT_CS_PREV_NEXT_SPECTATOR] <- ["cs_prev_next_spectator",["next"]];
events_ids_translate[EVENT_CS_HANDLE_IME_EVENT] <- ["cs_handle_ime_event",["local","eventtype","eventdata"]];
events_ids_translate[EVENT_NEXTLEVEL_CHANGED] <- ["nextlevel_changed",["nextlevel"]];
events_ids_translate[EVENT_SEASONCOIN_LEVELUP] <- ["seasoncoin_levelup",["player","category","rank"]];
events_ids_translate[EVENT_TOURNAMENT_REWARD] <- ["tournament_reward",["defindex","totalrewards","accountid"]];
events_ids_translate[EVENT_START_HALFTIME] <- ["start_halftime",[]];
events_ids_translate[EVENT_HLTV_STATUS] <- ["hltv_status",["clients","slots","proxies","master","externaltotal","externallinked"]];
events_ids_translate[EVENT_HLTV_CAMERAMAN] <- ["hltv_cameraman",["index"]];
events_ids_translate[EVENT_HLTV_RANK_CAMERA] <- ["hltv_rank_camera",["index","rank","target"]];
events_ids_translate[EVENT_HLTV_RANK_ENTITY] <- ["hltv_rank_entity",["index","rank","target"]];
events_ids_translate[EVENT_HLTV_FIXED] <- ["hltv_fixed",["posx","posy","posz","theta","phi","offset","fov","target"]];
events_ids_translate[EVENT_HLTV_CHASE] <- ["hltv_chase",["target1","target2","distance","theta","phi","inertia","ineye"]];
events_ids_translate[EVENT_HLTV_MESSAGE] <- ["hltv_message",["text"]];
events_ids_translate[EVENT_HLTV_TITLE] <- ["hltv_title",["text"]];
events_ids_translate[EVENT_HLTV_CHAT] <- ["hltv_chat",["text"]];
events_ids_translate[EVENT_HLTV_CHANGED_TARGET] <- ["hltv_changed_target",["mode","old_target","obs_target"]];
events_ids_translate[EVENT_TEAM_INFO] <- ["team_info",["teamid","teamname"]];
events_ids_translate[EVENT_TEAM_SCORE] <- ["team_score",["teamid","score"]];
events_ids_translate[EVENT_TEAMPLAY_BROADCAST_AUDIO] <- ["teamplay_broadcast_audio",["team","sound"]];
events_ids_translate[EVENT_GAMEUI_HIDDEN] <- ["gameui_hidden",[]];
events_ids_translate[EVENT_ITEMS_GIFTED] <- ["items_gifted",["player","itemdef","numgifts","giftidx","accountid"]];
events_ids_translate[EVENT_PLAYER_TEAM] <- ["player_team",["userid","team","oldteam","disconnect","autoteam","silent","isbot"]];
events_ids_translate[EVENT_PLAYER_CLASS] <- ["player_class",["userid","class"]];
//events_ids_translate[EVENT_PLAYER_DEATH] <- ["player_death",["userid","attacker"]];
//events_ids_translate[EVENT_PLAYER_HURT] <- ["player_hurt",["userid","attacker","health"]];
events_ids_translate[EVENT_PLAYER_CHAT] <- ["player_chat",["teamonly","userid","text"]];
events_ids_translate[EVENT_PLAYER_SCORE] <- ["player_score",["userid","kills","deaths","score"]];
events_ids_translate[EVENT_PLAYER_SPAWN] <- ["player_spawn",["userid","teamnum"]];
events_ids_translate[EVENT_PLAYER_SHOOT] <- ["player_shoot",["userid","weapon","mode"]];
events_ids_translate[EVENT_PLAYER_USE] <- ["player_use",["userid","entity"]];
events_ids_translate[EVENT_PLAYER_CHANGENAME] <- ["player_changename",["userid","oldname","newname"]];
events_ids_translate[EVENT_PLAYER_HINTMESSAGE] <- ["player_hintmessage",["hintmessage"]];
events_ids_translate[EVENT_GAME_INIT] <- ["game_init",[]];
events_ids_translate[EVENT_GAME_NEWMAP] <- ["game_newmap",["mapname"]];
events_ids_translate[EVENT_GAME_START] <- ["game_start",["roundslimit","timelimit","fraglimit","objective"]];
events_ids_translate[EVENT_GAME_END] <- ["game_end",["winner"]];
//events_ids_translate[EVENT_ROUND_START] <- ["round_start",["timelimit","fraglimit","objective"]];
events_ids_translate[EVENT_ROUND_ANNOUNCE_MATCH_POINT] <- ["round_announce_match_point",[]];
events_ids_translate[EVENT_ROUND_ANNOUNCE_FINAL] <- ["round_announce_final",[]];
events_ids_translate[EVENT_ROUND_ANNOUNCE_LAST_ROUND_HALF] <- ["round_announce_last_round_half",[]];
events_ids_translate[EVENT_ROUND_ANNOUNCE_MATCH_START] <- ["round_announce_match_start",[]];
events_ids_translate[EVENT_ROUND_ANNOUNCE_WARMUP] <- ["round_announce_warmup",[]];
//events_ids_translate[EVENT_ROUND_END] <- ["round_end",["winner","reason","message","legacy"]];
events_ids_translate[EVENT_ROUND_END_UPLOAD_STATS] <- ["round_end_upload_stats",[]];
events_ids_translate[EVENT_ROUND_OFFICIALLY_ENDED] <- ["round_officially_ended",[]];
events_ids_translate[EVENT_ROUND_TIME_WARNING] <- ["round_time_warning",[]];
events_ids_translate[EVENT_UGC_MAP_INFO_RECEIVED] <- ["ugc_map_info_received",["published_file_id"]];
events_ids_translate[EVENT_UGC_MAP_UNSUBSCRIBED] <- ["ugc_map_unsubscribed",["published_file_id"]];
events_ids_translate[EVENT_UGC_MAP_DOWNLOAD_ERROR] <- ["ugc_map_download_error",["published_file_id","error_code"]];
events_ids_translate[EVENT_UGC_FILE_DOWNLOAD_FINISHED] <- ["ugc_file_download_finished",["hcontent"]];
events_ids_translate[EVENT_UGC_FILE_DOWNLOAD_START] <- ["ugc_file_download_start",["hcontent","published_file_id"]];
events_ids_translate[EVENT_BEGIN_NEW_MATCH] <- ["begin_new_match",[]];
events_ids_translate[EVENT_ROUND_START_PRE_ENTITY] <- ["round_start_pre_entity",[]];
events_ids_translate[EVENT_TEAMPLAY_ROUND_START] <- ["teamplay_round_start",["full_reset"]];
events_ids_translate[EVENT_HOSTNAME_CHANGED] <- ["hostname_changed",["hostname"]];
events_ids_translate[EVENT_DIFFICULTY_CHANGED] <- ["difficulty_changed",["newdifficulty","olddifficulty","strdifficulty"]];
events_ids_translate[EVENT_FINALE_START] <- ["finale_start",["rushes"]];
events_ids_translate[EVENT_GAME_MESSAGE] <- ["game_message",["target","text"]];
events_ids_translate[EVENT_DM_BONUS_WEAPON_START] <- ["dm_bonus_weapon_start",["time","wepid","pos"]];
events_ids_translate[EVENT_SURVIVAL_ANNOUNCE_PHASE] <- ["survival_announce_phase",["phase"]];
events_ids_translate[EVENT_BREAK_BREAKABLE] <- ["break_breakable",["entindex","userid","material"]];
events_ids_translate[EVENT_BREAK_PROP] <- ["break_prop",["entindex","userid"]];
events_ids_translate[EVENT_PLAYER_DECAL] <- ["player_decal",["userid"]];
events_ids_translate[EVENT_ENTITY_KILLED] <- ["entity_killed",["entindex_killed","entindex_attacker","entindex_inflictor","damagebits"]];
events_ids_translate[EVENT_BONUS_UPDATED] <- ["bonus_updated",["numadvanced","numbronze","numsilver","numgold"]];
events_ids_translate[EVENT_PLAYER_STATS_UPDATED] <- ["player_stats_updated",["forceupload"]];
events_ids_translate[EVENT_ACHIEVEMENT_EVENT] <- ["achievement_event",["achievement_name","cur_val","max_val"]];
events_ids_translate[EVENT_ACHIEVEMENT_INCREMENT] <- ["achievement_increment",["achievement_id","cur_val","max_val"]];
events_ids_translate[EVENT_ACHIEVEMENT_EARNED] <- ["achievement_earned",["player","achievement"]];
events_ids_translate[EVENT_ACHIEVEMENT_WRITE_FAILED] <- ["achievement_write_failed",[]];
events_ids_translate[EVENT_PHYSGUN_PICKUP] <- ["physgun_pickup",["entindex"]];
events_ids_translate[EVENT_FLARE_IGNITE_NPC] <- ["flare_ignite_npc",["entindex"]];
events_ids_translate[EVENT_HELICOPTER_GRENADE_PUNT_MISS] <- ["helicopter_grenade_punt_miss",[]];
events_ids_translate[EVENT_USER_DATA_DOWNLOADED] <- ["user_data_downloaded",[]];
events_ids_translate[EVENT_RAGDOLL_DISSOLVED] <- ["ragdoll_dissolved",["entindex"]];
events_ids_translate[EVENT_GAMEINSTRUCTOR_DRAW] <- ["gameinstructor_draw",[]];
events_ids_translate[EVENT_GAMEINSTRUCTOR_NODRAW] <- ["gameinstructor_nodraw",[]];
events_ids_translate[EVENT_MAP_TRANSITION] <- ["map_transition",[]];
events_ids_translate[EVENT_ENTITY_VISIBLE] <- ["entity_visible",["userid","subject","classname","entityname"]];
events_ids_translate[EVENT_SET_INSTRUCTOR_GROUP_ENABLED] <- ["set_instructor_group_enabled",["group","enabled"]];
events_ids_translate[EVENT_INSTRUCTOR_SERVER_HINT_CREATE] <- ["instructor_server_hint_create",["hint_name","hint_replace_key","hint_target","hint_activator_userid","hint_timeout","hint_icon_onscreen","hint_icon_offscreen","hint_caption","hint_activator_caption","hint_color","hint_icon_offset","hint_range","hint_flags","hint_binding","hint_gamepad_binding","hint_allow_nodraw_target","hint_nooffscreen","hint_forcecaption","hint_local_player_only"]];
events_ids_translate[EVENT_INSTRUCTOR_SERVER_HINT_STOP] <- ["instructor_server_hint_stop",["hint_name"]];
events_ids_translate[EVENT_READ_GAME_TITLEDATA] <- ["read_game_titledata",["controllerid"]];
events_ids_translate[EVENT_WRITE_GAME_TITLEDATA] <- ["write_game_titledata",["controllerid"]];
events_ids_translate[EVENT_RESET_GAME_TITLEDATA] <- ["reset_game_titledata",["controllerid"]];
events_ids_translate[EVENT_WEAPON_RELOAD_DATABASE] <- ["weapon_reload_database",[]];
events_ids_translate[EVENT_VOTE_ENDED] <- ["vote_ended",[]];
events_ids_translate[EVENT_VOTE_STARTED] <- ["vote_started",["issue","param1","team","initiator"]];
events_ids_translate[EVENT_VOTE_CHANGED] <- ["vote_changed",["vote_option1","vote_option2","vote_option3","vote_option4","vote_option5","potentialvotes"]];
events_ids_translate[EVENT_VOTE_PASSED] <- ["vote_passed",["details","param1","team"]];
events_ids_translate[EVENT_VOTE_FAILED] <- ["vote_failed",["team"]];
events_ids_translate[EVENT_VOTE_CAST] <- ["vote_cast",["vote_option","team","entityid"]];
events_ids_translate[EVENT_VOTE_OPTIONS] <- ["vote_options",["count","option1","option2","option3","option4","option5"]];
events_ids_translate[EVENT_ENDMATCH_MAPVOTE_SELECTING_MAP] <- ["endmatch_mapvote_selecting_map",["count","slot1","slot2","slot3","slot4","slot5","slot6","slot7","slot8","slot9","slot10"]];
events_ids_translate[EVENT_ENDMATCH_CMM_START_REVEAL_ITEMS] <- ["endmatch_cmm_start_reveal_items",[]];
events_ids_translate[EVENT_INVENTORY_UPDATED] <- ["inventory_updated",[]];
events_ids_translate[EVENT_CART_UPDATED] <- ["cart_updated",[]];
events_ids_translate[EVENT_STORE_PRICESHEET_UPDATED] <- ["store_pricesheet_updated",[]];
events_ids_translate[EVENT_GC_CONNECTED] <- ["gc_connected",[]];
events_ids_translate[EVENT_ITEM_SCHEMA_INITIALIZED] <- ["item_schema_initialized",[]];
events_ids_translate[EVENT_CLIENT_LOADOUT_CHANGED] <- ["client_loadout_changed",[]];
events_ids_translate[EVENT_ADD_PLAYER_SONAR_ICON] <- ["add_player_sonar_icon",["userid","vector"]];
events_ids_translate[EVENT_ADD_BULLET_HIT_MARKER] <- ["add_bullet_hit_marker",["userid","bone","vector","vector","vector","hit"]];
events_ids_translate[EVENT_VERIFY_CLIENT_HIT] <- ["verify_client_hit",["userid","vector","timestamp"]];
events_ids_translate[EVENT_SERVER_SPAWN] <- ["server_spawn",["hostname","address","port","game","mapname","maxplayers","os","dedicated","official","password"]];
events_ids_translate[EVENT_SERVER_PRE_SHUTDOWN] <- ["server_pre_shutdown",["reason"]];
events_ids_translate[EVENT_SERVER_SHUTDOWN] <- ["server_shutdown",["reason"]];
events_ids_translate[EVENT_SERVER_CVAR] <- ["server_cvar",["cvarname","cvarvalue"]];
events_ids_translate[EVENT_SERVER_MESSAGE] <- ["server_message",["text"]];
events_ids_translate[EVENT_SERVER_ADDBAN] <- ["server_addban",["name","userid","networkid","ip","duration","by","kicked"]];
events_ids_translate[EVENT_SERVER_REMOVEBAN] <- ["server_removeban",["networkid","ip","by"]];
events_ids_translate[EVENT_PLAYER_CONNECT] <- ["player_connect",["name","index","userid","networkid","address"]];
events_ids_translate[EVENT_PLAYER_INFO] <- ["player_info",["name","index","userid","networkid","bot"]];
events_ids_translate[EVENT_PLAYER_DISCONNECT] <- ["player_disconnect",["userid","reason","name","networkid"]];
events_ids_translate[EVENT_PLAYER_ACTIVATE] <- ["player_activate",["userid"]];
events_ids_translate[EVENT_PLAYER_CONNECT_FULL] <- ["player_connect_full",["userid","index"]];
events_ids_translate[EVENT_PLAYER_SAY] <- ["player_say",["userid","text"]];
events_ids_translate[EVENT_CS_ROUND_START_BEEP] <- ["cs_round_start_beep",[]];
events_ids_translate[EVENT_CS_ROUND_FINAL_BEEP] <- ["cs_round_final_beep",[]];
events_ids_translate[EVENT_ROUND_TIME_WARNING] <- ["round_time_warning",[]];
if ( !("gameevents_proxy" in getroottable()) || ! (::gameevents_proxy.IsValid()) ) {
::gameevents_proxy <- Entities.CreateByClassname("info_game_event_proxy");
::gameevents_proxy.__KeyValueFromString("event_name","player_use");
::gameevents_proxy.__KeyValueFromInt("range",0);
}
::GameEventsCapturedPlayer <- null
function Think() {
player <- null;
while( (player = Entities.FindByClassname(player,"*")) != null ) {
if (player.GetClassname() == "player") {
if (player.ValidateScriptScope()) {
local script_scope=player.GetScriptScope()
if (!("userid" in script_scope) && !("attemptogenerateuserid" in script_scope)) {
script_scope.attemptogenerateuserid <- true;
::GameEventsCapturedPlayer=player;
EntFireByHandle(::gameevents_proxy,"GenerateGameEvent","",0.0,player,null);
return
}
}
}
}
}
//item_equip weptype enums
::WEAPONTYPE_UNKNOWN <- -1
::WEAPONTYPE_KNIFE <- 0
::WEAPONTYPE_PISTOL <- 1
::WEAPONTYPE_SUBMACHINEGUN <- 2
::WEAPONTYPE_RIFLE <- 3
::WEAPONTYPE_SHOTGUN <- 4
::WEAPONTYPE_SNIPER_RIFLE <- 5
::WEAPONTYPE_MACHINEGUN <- 6
::WEAPONTYPE_C4 <- 7
::WEAPONTYPE_GRENADE <- 8
function FireEventFormat(id ,event_data) {
local name = "OnGameEvent_" + events_ids_translate[id][0]
local args = {}
local vector = Vector(0,0,0)
local writedx = false
local writedy = false
local writedz = false
local offset = 0
local order = events_ids_translate[id][1]
foreach (key,arg in event_data) {
local shouldwrite=true
if (key == "userid" || key == "attacker" || key == "assister" || key == "victimid" || key == "attackerid" || key == "playerid" || key == "botid") {
arg=GetPlayerForUserID(arg);
}
if (key == "entindex" || key == "entindex_killed" || key == "entindex_attacker" || key == "entindex_inflictor" || key == "site" || key == "hostage" || key == "index" || key == "victim" || key == "killer" || key == "player" || key == "entity") {
arg=GetEntityForIndex(arg);
}
if (key == "x" || key == "pos_x" || key == "start_x" || key == "ang_x") {
vector.x=arg
writedx=true
shouldwrite=false
}
if (key == "y" || key == "pos_y" || key == "start_y" || key == "ang_y") {
vector.y=arg
writedy=true
shouldwrite=false
}
if (key == "z" || key == "pos_z" || key == "start_z" || key == "ang_z") {
vector.z=arg
writedz=true
shouldwrite=false
}
if (writedx && writedy && writedz) {
foreach (index,k in order) {
if (k == "vector") {
args[index+1] <- vector
writedx=false
writedy=false
writedz=false
break
}
}
}
if (shouldwrite) {
foreach (index,k in order) {
if (k == key) {
if(arg == null)
args[index + 1] <- "null"
else
args[index + 1] <- arg
break
}
}
}
}
foreach(arg in args) {
printl(arg.tostring())
}
switch (args.len()) {
case 0:
getroottable()[name]()
break
case 1:
getroottable()[name](args[1])
break
case 2:
getroottable()[name](args[1],args[2])
break
case 3:
getroottable()[name](args[1],args[2],args[3])
break
case 4:
getroottable()[name](args[1],args[2],args[3],args[4])
break
case 5:
getroottable()[name](args[1],args[2],args[3],args[4],args[5]);
break
case 6:
getroottable()[name](args[1],args[2],args[3],args[4],args[5],args[6])
break
case 7:
getroottable()[name](args[1],args[2],args[3],args[4],args[5],args[6],args[7])
break
case 8:
getroottable()[name](args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8])
break
case 9:
getroottable()[name](args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8],args[9])
break
case 10:
getroottable()[name](args[1],args[3],args[4],args[5],args[6],args[7],args[8],args[9],args[10])
break
}
}
//Used for assign user ids
function userid_assigner(params) {
if (::GameEventsCapturedPlayer != null && params.entity == 0) {
local script_scope = ::GameEventsCapturedPlayer.GetScriptScope();
script_scope.userid <- params.userid;
::GameEventsCapturedPlayer = null;
return true
}
}
function OnEventFired(EVENT_ID) {
if (EVENT_ID == EVENT_PLAYER_USE) {
if (userid_assigner(this.event_data)) {
return
}
}
if ("event_data" in this) {
if ("OnGameEvent_" + events_ids_translate[EVENT_ID][0] in getroottable()) {
FireEventFormat(EVENT_ID,this.event_data)
}
if ("OnGameEvent_" + events_ids_translate[EVENT_ID][0] + "_raw" in getroottable()) {
getroottable()["OnGameEvent_"+events_ids_translate[EVENT_ID][0]+"_raw"](this.event_data)
}
}
}
::GetPlayerForUserID <- function(userid) {
player <- null;
while((player = Entities.FindByClassname(player,"*")) != null) {
if ( player.GetClassname() == "player" ) {
if ( player.ValidateScriptScope() ) {
local script_scope = player.GetScriptScope()
if (script_scope.userid == userid) {
return player
}
}
}
}
return null
}
::GetEntityForIndex <- function(entindex) {
ent <- null;
while((ent= Entities.FindByClassname(ent,"*")) != null) {
if (ent.entindex() == entindex) {return ent}
}
return null
}
食用方法:在地图内放置 logic_eventlistener 实体,并如下设置:
并且添加一条触发
OnEventFired -> !self -> RunScriptCode("OnEventFired(EVENT_PLAYER_USE)")
然后就可以食用啦
比如你要监听玩家重生
就复制一个这个实体,Event Name修改为:player_spawned
触发修改为
OnEventFired -> !self -> RunScriptCode("OnEventFired(EVENT_PLAYER_SPAWNED)")
就可以在vscript里监听到了
你可以使用两个类型的函数:
OnGameEvent_player_spawned 和 OnGameEvent_player_spawned_raw
前者可能会出一些问题比如这个player_spawned就只能使用后者了
::OnGameEvent_player_spawned_raw <- function (eventData) {
local player = GetPlayerForUserID(eventData["userid"])
EntFireByHandle(player,"alpha","255",0.0,player,player)
//player fields
player.GetScriptScope().perk_jugg <- 0
player.GetScriptScope().perk_staminup <- 0
}
怎么样是不是很屌呢,这样能监听138个事件,可以在Allied Moder Wiki上找到完整的Event列表以及参数
比如 player hurt
player_hurt
Note: When a client is damaged
Name: player_hurt
Structure:
short userid user ID who was hurt
short attacker user ID who attacked
byte health remaining health points
byte armor remaining armor points
string weapon weapon name attacker used, if not the world
short dmg_health damage done to health
byte dmg_armor damage done to armor
byte hitgroup hitgroup that was damaged ; 1=hs 2=upper torso 3=lower torso 4=left arm 5=right arm 6=left leg 7=right leg
你就可以这样食用函数:
::OnGameEvent_player_hurt <- function (player,attacker,health,armor,weapon,dmg_health,dmg_armor,hitgroup) {
//搞事情
}

待完善: 求更多大佬完善这个界面
看一下这些吧
外部链接
- Squirrel (programming language) - Wikipedia Article on Squirrel
Squirrel: The Programming Language - Documentation and Sample Code