added inverse filters

This commit is contained in:
neon 2018-07-24 21:43:12 +02:00
parent 77c7cc0b04
commit 5e41ddd86c

View File

@ -128,7 +128,10 @@ public void OnPluginStart()
AddCommandListener(Radio, "enemydown"); AddCommandListener(Radio, "enemydown");
AddMultiTargetFilter("@leaders", Filter_Leaders, "Possible Leaders", false); AddMultiTargetFilter("@leaders", Filter_Leaders, "Possible Leaders", false);
AddMultiTargetFilter("@!leaders", Filter_NotLeaders, "Everyone but Possible Leaders", false);
AddMultiTargetFilter("@leader", Filter_Leader, "Current Leader", false); AddMultiTargetFilter("@leader", Filter_Leader, "Current Leader", false);
AddMultiTargetFilter("@!leader", Filter_NotLeader, "Every one but the Current Leader", false);
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -137,8 +140,9 @@ public void OnPluginStart()
public void OnPluginEnd() public void OnPluginEnd()
{ {
RemoveMultiTargetFilter("@leaders", Filter_Leaders); RemoveMultiTargetFilter("@leaders", Filter_Leaders);
RemoveMultiTargetFilter("@!leaders", Filter_NotLeaders);
RemoveMultiTargetFilter("@leader", Filter_Leader); RemoveMultiTargetFilter("@leader", Filter_Leader);
RemoveMultiTargetFilter("@!leader", Filter_NotLeader);
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -620,6 +624,21 @@ public bool Filter_Leaders(const char[] sPattern, Handle hClients)
return true; return true;
} }
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public bool Filter_NotLeaders(const char[] sPattern, Handle hClients)
{
for(int i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i) && !IsFakeClient(i) && !IsPossibleLeader(i))
{
PushArrayCell(hClients, i);
}
}
return true;
}
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
// Purpose: // Purpose:
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -627,10 +646,24 @@ public bool Filter_Leader(const char[] sPattern, Handle hClients)
{ {
if(IsValidClient(leaderClient)) if(IsValidClient(leaderClient))
{ {
PushArrayCell(hClients, leaderClient); PushArrayCell(hClients, leaderClient);
return true;
} }
return false; return true;
}
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public bool Filter_NotLeader(const char[] sPattern, Handle hClients)
{
for(int i = 1; i <= MaxClients; i++)
{
if(IsValidClient(i) && (i != leaderClient))
{
PushArrayCell(hClients, i);
}
}
return true;
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------