diff --git a/plugins/basetriggers.sp b/plugins/basetriggers.sp index 9bf0d77a..6010b4d4 100644 --- a/plugins/basetriggers.sp +++ b/plugins/basetriggers.sp @@ -60,9 +60,9 @@ ConVar g_Cvar_WinLimit; ConVar g_Cvar_FragLimit; ConVar g_Cvar_MaxRounds; -#define TIMELEFT_ALL_ALWAYS 0 /* Print to all players */ -#define TIMELEFT_ALL_MAYBE 1 /* Print to all players if sm_trigger_show allows */ -#define TIMELEFT_ONE 2 /* Print to a single player */ +#define PRINT_TO_ALL_ALWAYS 0 /* Print to all players */ +#define PRINT_TO_ALL_MAYBE 1 /* Print to all players if sm_trigger_show allows */ +#define PRINT_TO_ONE 2 /* Print to a single player */ bool mapchooser; @@ -188,12 +188,12 @@ public void ConVarChange_TimeleftInterval(ConVar convar, const char[] oldValue, public Action Timer_DisplayTimeleft(Handle timer) { - ShowTimeLeft(0, TIMELEFT_ALL_ALWAYS); + ShowTimeLeft(0, PRINT_TO_ALL_ALWAYS); } public Action Command_Timeleft(int client, int args) { - ShowTimeLeft(client, TIMELEFT_ONE); + ShowTimeLeft(client, PRINT_TO_ONE); return Plugin_Handled; } @@ -238,16 +238,7 @@ public Action Command_Motd(int client, int args) public Action Command_FriendlyFire(int client, int args) { - if (client == 0) - { - ReplyToCommand(client, "[SM] %t", "Command is in-game only"); - return Plugin_Handled; - } - - if (!IsClientInGame(client)) - return Plugin_Handled; - - ShowFriendlyFire(client); + ShowFriendlyFire(client, PRINT_TO_ONE); return Plugin_Handled; } @@ -259,7 +250,7 @@ public void OnClientSayCommand_Post(int client, const char[] command, const char } else if (strcmp(sArgs, "timeleft", false) == 0) { - ShowTimeLeft(client, TIMELEFT_ALL_MAYBE); + ShowTimeLeft(client, PRINT_TO_ALL_MAYBE); } else if (strcmp(sArgs, "thetime", false) == 0) { @@ -277,7 +268,7 @@ public void OnClientSayCommand_Post(int client, const char[] command, const char } else if (strcmp(sArgs, "ff", false) == 0) { - ShowFriendlyFire(client); + ShowFriendlyFire(client, PRINT_TO_ALL_MAYBE); } else if (strcmp(sArgs, "currentmap", false) == 0) { @@ -336,8 +327,8 @@ void ShowTimeLeft(int client, int who) char finalOutput[1024]; - if (who == TIMELEFT_ALL_ALWAYS - || (who == TIMELEFT_ALL_MAYBE && g_Cvar_TriggerShow.IntValue)) + if (who == PRINT_TO_ALL_ALWAYS + || (who == PRINT_TO_ALL_MAYBE && g_Cvar_TriggerShow.IntValue)) { client = 0; } @@ -491,8 +482,8 @@ void ShowTimeLeft(int client, int who) FormatEx(finalOutput, sizeof(finalOutput), "%T", "NoTimelimit", client); } - if (who == TIMELEFT_ALL_ALWAYS - || (who == TIMELEFT_ALL_MAYBE && g_Cvar_TriggerShow.IntValue)) + if (who == PRINT_TO_ALL_ALWAYS + || (who == PRINT_TO_ALL_MAYBE && g_Cvar_TriggerShow.IntValue)) { PrintToChatAll("[SM] %s", finalOutput); } @@ -507,7 +498,7 @@ void ShowTimeLeft(int client, int who) } } -void ShowFriendlyFire(int client) +void ShowFriendlyFire(int client, int who) { if (g_Cvar_FriendlyFire) { @@ -520,14 +511,21 @@ void ShowFriendlyFire(int client) { strcopy(phrase, sizeof(phrase), "Friendly Fire Off"); } - - if (g_Cvar_TriggerShow.IntValue) + + if (who == PRINT_TO_ALL_ALWAYS + || (who == PRINT_TO_ALL_MAYBE && g_Cvar_TriggerShow.IntValue)) { + client = 0; PrintToChatAll("[SM] %t", phrase); } - else + else if (client != 0 && IsClientInGame(client)) { - PrintToChat(client,"[SM] %t", phrase); + PrintToChat(client, "[SM] %t", phrase); + } + + if (client == 0) + { + PrintToServer("[SM] %T", phrase, client); } } }