AdvancedTargeting: Added @talking / @!talking and @speaking / @!speaking
This commit is contained in:
		
							parent
							
								
									f63651ef0a
								
							
						
					
					
						commit
						70ea9aad49
					
				@ -8,9 +8,20 @@
 | 
				
			|||||||
#include <cstrike>
 | 
					#include <cstrike>
 | 
				
			||||||
#include <AdvancedTargeting>
 | 
					#include <AdvancedTargeting>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef REQUIRE_PLUGIN
 | 
				
			||||||
 | 
					#include <AdvancedTargeting>
 | 
				
			||||||
 | 
					#define REQUIRE_PLUGIN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef REQUIRE_EXTENSIONS
 | 
				
			||||||
 | 
					#tryinclude <voice>
 | 
				
			||||||
 | 
					#define REQUIRE_EXTENSIONS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma newdecls required
 | 
					#pragma newdecls required
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Handle g_FriendsArray[MAXPLAYERS + 1] = {INVALID_HANDLE, ...};
 | 
					Handle g_FriendsArray[MAXPLAYERS + 1] = {INVALID_HANDLE, ...};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool g_Plugin_voiceannounce_ex = false;
 | 
				
			||||||
 | 
					bool g_Extension_Voice = false;
 | 
				
			||||||
bool g_bLateLoad = false;
 | 
					bool g_bLateLoad = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <SteamAPI.secret> //#define STEAM_API_KEY here
 | 
					#include <SteamAPI.secret> //#define STEAM_API_KEY here
 | 
				
			||||||
@ -20,7 +31,7 @@ public Plugin myinfo =
 | 
				
			|||||||
	name = "Advanced Targeting",
 | 
						name = "Advanced Targeting",
 | 
				
			||||||
	author = "BotoX + Obus",
 | 
						author = "BotoX + Obus",
 | 
				
			||||||
	description = "Adds extra targeting methods",
 | 
						description = "Adds extra targeting methods",
 | 
				
			||||||
	version = "1.2",
 | 
						version = "1.3",
 | 
				
			||||||
	url = "https://github.com/CSSZombieEscape/sm-plugins/tree/master/AdvancedTargeting/"
 | 
						url = "https://github.com/CSSZombieEscape/sm-plugins/tree/master/AdvancedTargeting/"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -35,6 +46,10 @@ public void OnPluginStart()
 | 
				
			|||||||
	AddMultiTargetFilter("@randomt", Filter_RandomT, "a Random T", false);
 | 
						AddMultiTargetFilter("@randomt", Filter_RandomT, "a Random T", false);
 | 
				
			||||||
	AddMultiTargetFilter("@alivect", Filter_AliveCT, "Alive Humans", false);
 | 
						AddMultiTargetFilter("@alivect", Filter_AliveCT, "Alive Humans", false);
 | 
				
			||||||
	AddMultiTargetFilter("@alivet", Filter_AliveT, "Alive Zombies", false);
 | 
						AddMultiTargetFilter("@alivet", Filter_AliveT, "Alive Zombies", false);
 | 
				
			||||||
 | 
						AddMultiTargetFilter("@talking", Filter_Talking, "Talking", false);
 | 
				
			||||||
 | 
						AddMultiTargetFilter("@!talking", Filter_NotTalking, "Not Talking", false);
 | 
				
			||||||
 | 
						AddMultiTargetFilter("@speaking", Filter_Talking, "Talking", false);
 | 
				
			||||||
 | 
						AddMultiTargetFilter("@!speaking", Filter_NotTalking, "Not Talking", false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	RegConsoleCmd("sm_admins", Command_Admins, "Currently online admins.");
 | 
						RegConsoleCmd("sm_admins", Command_Admins, "Currently online admins.");
 | 
				
			||||||
	RegConsoleCmd("sm_friends", Command_Friends, "Currently online friends.");
 | 
						RegConsoleCmd("sm_friends", Command_Friends, "Currently online friends.");
 | 
				
			||||||
@ -64,6 +79,10 @@ public void OnPluginEnd()
 | 
				
			|||||||
	RemoveMultiTargetFilter("@randomt", Filter_RandomT);
 | 
						RemoveMultiTargetFilter("@randomt", Filter_RandomT);
 | 
				
			||||||
	RemoveMultiTargetFilter("@alivect", Filter_AliveCT);
 | 
						RemoveMultiTargetFilter("@alivect", Filter_AliveCT);
 | 
				
			||||||
	RemoveMultiTargetFilter("@alivet", Filter_AliveT);
 | 
						RemoveMultiTargetFilter("@alivet", Filter_AliveT);
 | 
				
			||||||
 | 
						RemoveMultiTargetFilter("@talking", Filter_Talking);
 | 
				
			||||||
 | 
						RemoveMultiTargetFilter("@!talking", Filter_NotTalking);
 | 
				
			||||||
 | 
						RemoveMultiTargetFilter("@speaking", Filter_Talking);
 | 
				
			||||||
 | 
						RemoveMultiTargetFilter("@!speaking", Filter_NotTalking);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max)
 | 
					public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max)
 | 
				
			||||||
@ -72,6 +91,13 @@ public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max
 | 
				
			|||||||
	CreateNative("ReadClientFriends", Native_ReadClientFriends);
 | 
						CreateNative("ReadClientFriends", Native_ReadClientFriends);
 | 
				
			||||||
	RegPluginLibrary("AdvancedTargeting");
 | 
						RegPluginLibrary("AdvancedTargeting");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						g_Plugin_voiceannounce_ex = LibraryExists("voiceannounce_ex");
 | 
				
			||||||
 | 
						g_Extension_Voice = LibraryExists("Voice");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						LogMessage("AdvancedTargeting capabilities:\nVoiceAnnounce: %s\nVoice: %s",
 | 
				
			||||||
 | 
							(g_Plugin_voiceannounce_ex ? "loaded" : "not loaded"),
 | 
				
			||||||
 | 
							(g_Extension_Voice ? "loaded" : "not loaded"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	g_bLateLoad = late;
 | 
						g_bLateLoad = late;
 | 
				
			||||||
	return APLRes_Success;
 | 
						return APLRes_Success;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -310,6 +336,47 @@ public bool Filter_RandomT(const char[] sPattern, Handle hClients, int client)
 | 
				
			|||||||
	return true;
 | 
						return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					stock bool _IsClientSpeaking(int client)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						#if defined _voiceannounceex_included_
 | 
				
			||||||
 | 
						if(g_Plugin_voiceannounce_ex)
 | 
				
			||||||
 | 
							return IsClientSpeaking(client);
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#if defined _voice_included
 | 
				
			||||||
 | 
						if(g_Extension_Voice)
 | 
				
			||||||
 | 
							return IsClientTalking(client);
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public bool Filter_Talking(const char[] sPattern, Handle hClients, int client)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						for(int i = 1; i <= MaxClients; i++)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if(IsClientInGame(i) && !IsFakeClient(i) && _IsClientSpeaking(i))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								PushArrayCell(hClients, i);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public bool Filter_NotTalking(const char[] sPattern, Handle hClients, int client)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						for(int i = 1; i <= MaxClients; i++)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if(IsClientInGame(i) && !IsFakeClient(i) && !_IsClientSpeaking(i))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								PushArrayCell(hClients, i);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public void OnClientAuthorized(int client, const char[] auth)
 | 
					public void OnClientAuthorized(int client, const char[] auth)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if(IsFakeClient(client))
 | 
						if(IsFakeClient(client))
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user