From 91f0dce4f47601c9daf0f5806fd77d9b04e018fb Mon Sep 17 00:00:00 2001 From: Jackz Date: Thu, 13 May 2021 17:03:42 -0500 Subject: [PATCH] l4d2tools: Add playsound and stopsound cmds --- plugins/L4D2Tools.smx | Bin 16423 -> 17499 bytes scripting/L4D2Tools.sp | 83 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/plugins/L4D2Tools.smx b/plugins/L4D2Tools.smx index 0e5b8a019d3ae78fd32b4697fd9c5f934a2c2869..8701633029f73bbc49c74568564c399eac8ceab7 100644 GIT binary patch literal 17499 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 literal 16423 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 diff --git a/scripting/L4D2Tools.sp b/scripting/L4D2Tools.sp index 0be5f3a..13e3fd6 100644 --- a/scripting/L4D2Tools.sp +++ b/scripting/L4D2Tools.sp @@ -18,6 +18,7 @@ static ConVar hLaserNotice, hFinaleTimer, hFFNotice, hMPGamemode, hPingDropThres static int iFinaleStartTime, botDropMeleeWeapon[MAXPLAYERS+1], iHighPingCount[MAXPLAYERS+1]; static bool isHighPingIdle[MAXPLAYERS+1], isL4D1Survivors; static Handle hTakeOverBot, hGoAwayFromKeyboard; +static char lastSound[MAXPLAYERS+1][64]; static float OUT_OF_BOUNDS[3] = {0.0, -1000.0, 0.0}; @@ -94,9 +95,11 @@ public void OnPluginStart() { RegAdminCmd("sm_model", Command_SetClientModel, ADMFLAG_ROOT); RegAdminCmd("sm_surv", Cmd_SetSurvivor, ADMFLAG_ROOT); RegAdminCmd("sm_respawn_all", Command_RespawnAll, ADMFLAG_CHEATS, "Makes all dead players respawn in a closet"); + RegAdminCmd("sm_playsound", Command_PlaySound, ADMFLAG_CHEATS, "Plays a gamesound for player"); + RegAdminCmd("sm_stopsound", Command_StopSound, ADMFLAG_CHEATS, "Stops the last played gamesound for player"); RegConsoleCmd("sm_pmodels", Command_ListClientModels, "Lists all player's models"); - CreateTimer(5.0, Timer_CheckPlayerPings, _, TIMER_REPEAT); + CreateTimer(8.0, Timer_CheckPlayerPings, _, TIMER_REPEAT); } public Action Timer_CheckPlayerPings(Handle timer) { @@ -111,6 +114,7 @@ public Action Timer_CheckPlayerPings(Handle timer) { if(iHighPingCount[i]++ > 2) { PrintToChat(i, "Due to your high ping (%d ms) you have been moved to AFK.", ping); PrintToChat(i, "You will be automatically switched back once your ping restores"); + //PrintToChat(i, "Type /pingignore to disable this feature."); SDKCall(hGoAwayFromKeyboard, i); isHighPingIdle[i] = true; iHighPingCount[i] = 0; @@ -147,6 +151,83 @@ public Action Command_ListClientModels(int client, int args) { } } } +public Action Command_PlaySound(int client, int args) { + if(args < 2) { + ReplyToCommand(client, "Usage: sm_playsound "); + }else{ + char arg1[32], arg2[64]; + GetCmdArg(1, arg1, sizeof(arg1)); + GetCmdArg(2, arg2, sizeof(arg2)); + + char target_name[MAX_TARGET_LENGTH]; + int target_list[MAXPLAYERS], target_count; + bool tn_is_ml; + if ((target_count = ProcessTargetString( + arg1, + client, + target_list, + MAXPLAYERS, + COMMAND_FILTER_CONNECTED, + target_name, + sizeof(target_name), + tn_is_ml)) <= 0) + { + /* This function replies to the admin with a failure message */ + ReplyToTargetError(client, target_count); + return Plugin_Handled; + } + int target; + for (int i = 0; i < target_count; i++) { + target = target_list[i]; + StopSound(target, 0, lastSound[target]); + } + PrecacheSound(arg2); + for (int i = 0; i < target_count; i++) { + target = target_list[i]; + PrintToChatAll("playgamesound %s for %N", arg2, target); + if(IsClientConnected(target) && IsClientInGame(target)) { + strcopy(lastSound[target], 64, arg2); + } + } + } + return Plugin_Handled; +} +public Action Command_StopSound(int client, int args) { + if(args < 2) { + ReplyToCommand(client, "Usage: sm_stopsound [soundpath or leave blank for previous]"); + }else{ + char arg1[32], arg2[64]; + GetCmdArg(1, arg1, sizeof(arg1)); + GetCmdArg(2, arg2, sizeof(arg2)); + + char target_name[MAX_TARGET_LENGTH]; + int target_list[MAXPLAYERS], target_count; + bool tn_is_ml; + if ((target_count = ProcessTargetString( + arg1, + client, + target_list, + MAXPLAYERS, + COMMAND_FILTER_CONNECTED, + target_name, + sizeof(target_name), + tn_is_ml)) <= 0) + { + /* This function replies to the admin with a failure message */ + ReplyToTargetError(client, target_count); + return Plugin_Handled; + } + int target; + for (int i = 0; i < target_count; i++) { + target = target_list[i]; + if(args < 2) + StopSound(target, 0, lastSound[target]); + else + StopSound(target, 0, arg2); + } + } + return Plugin_Handled; +} public Action Command_SetClientModel(int client, int args) { if(args < 1) { ReplyToCommand(client, "Usage: sm_model [keep]");