Veteran Member
Join Date: May 2012
Location: California
|
02-07-2014
, 17:32
Re: [TF2] Class Target Filters
|
#7
|
You may also want to replace some strings in the StrContains functions:
Spoiler
Code:
else if(StrContains(strPattern, "py", false) != -1)
with
Code:
else if(StrContains(strPattern, "pyr", false) != -1)
as "py" is also found in "sPY"
Code:
else if(StrContains(strPattern, "de", false) != -1)
with
Code:
else if(StrContains(strPattern, "dem", false) != -1)
as "de" is also found in "reDEngie" and similar
Code:
else if(StrContains(strPattern, "en", false) != -1)
with
Code:
else if(StrContains(strPattern, "eng", false) != -1)
as "en" is also found in "demomEN" and similar
Code:
else if(StrContains(strPattern, "me", false) != -1)
with
Code:
else if(StrContains(strPattern, "med", false) != -1)
as "me" is also found in "demoMEn" and similar
also
Code:
new bool:bOpposite;
if(StrContains(strPattern, "!") == -1)
bOpposite = true;
As I'm sure you're already aware, StrContains returns -1 if the string was NOT found. So you're setting bOpposite to true if ! was NOT in the @filter.
I find it a little bit ridiculous that the plugin has been downloaded 70 times with NO ONE ELSE reporting these errors over the last 4 months until WildCard chimed in.
Also, you should add this to OnPluginEnd(). Unlike most other things, Sourcemod does NOT seem to automatically handle this when a plugin is unloaded.
Spoiler
PHP Code:
public OnPluginEnd() { RemoveMultiTargetFilter("@scout", FilterClasses); RemoveMultiTargetFilter("@scouts", FilterClasses); RemoveMultiTargetFilter("@!scout", FilterClasses); RemoveMultiTargetFilter("@!scouts", FilterClasses); RemoveMultiTargetFilter("@redscout", FilterClasses); RemoveMultiTargetFilter("@scouts", FilterClasses); RemoveMultiTargetFilter("@!redscout", FilterClasses); RemoveMultiTargetFilter("@!redscouts", FilterClasses); RemoveMultiTargetFilter("@bluscout", FilterClasses); RemoveMultiTargetFilter("@bluscouts", FilterClasses); RemoveMultiTargetFilter("@!bluscout", FilterClasses); RemoveMultiTargetFilter("@!bluscouts", FilterClasses); RemoveMultiTargetFilter("@bluescout", FilterClasses); RemoveMultiTargetFilter("@bluescouts", FilterClasses); RemoveMultiTargetFilter("@!bluescout", FilterClasses); RemoveMultiTargetFilter("@!bluescouts", FilterClasses);
RemoveMultiTargetFilter("@soldier", FilterClasses); RemoveMultiTargetFilter("@soldiers", FilterClasses); RemoveMultiTargetFilter("@!soldier", FilterClasses); RemoveMultiTargetFilter("@!soldiers", FilterClasses); RemoveMultiTargetFilter("@redsoldier", FilterClasses); RemoveMultiTargetFilter("@redsoldiers", FilterClasses); RemoveMultiTargetFilter("@!redsoldier", FilterClasses); RemoveMultiTargetFilter("@!redsoldiers", FilterClasses); RemoveMultiTargetFilter("@blusoldier", FilterClasses); RemoveMultiTargetFilter("@blusoldiers", FilterClasses); RemoveMultiTargetFilter("@!blusoldier", FilterClasses); RemoveMultiTargetFilter("@!blusoldiers", FilterClasses); RemoveMultiTargetFilter("@bluesoldier", FilterClasses); RemoveMultiTargetFilter("@bluesoldiers", FilterClasses); RemoveMultiTargetFilter("@!bluesoldier", FilterClasses); RemoveMultiTargetFilter("@!bluesoldiers", FilterClasses);
RemoveMultiTargetFilter("@pyro", FilterClasses); RemoveMultiTargetFilter("@pyros", FilterClasses); RemoveMultiTargetFilter("@!pyro", FilterClasses); RemoveMultiTargetFilter("@!pyros", FilterClasses); RemoveMultiTargetFilter("@redpyro", FilterClasses); RemoveMultiTargetFilter("@redpyros", FilterClasses); RemoveMultiTargetFilter("@!redpyro", FilterClasses); RemoveMultiTargetFilter("@!redpyros", FilterClasses); RemoveMultiTargetFilter("@blupyro", FilterClasses); RemoveMultiTargetFilter("@blupyros", FilterClasses); RemoveMultiTargetFilter("@!blupyro", FilterClasses); RemoveMultiTargetFilter("@!blupyros", FilterClasses); RemoveMultiTargetFilter("@bluepyro", FilterClasses); RemoveMultiTargetFilter("@bluepyros", FilterClasses); RemoveMultiTargetFilter("@!bluepyro", FilterClasses); RemoveMultiTargetFilter("@!bluepyros", FilterClasses);
RemoveMultiTargetFilter("@demo", FilterClasses); RemoveMultiTargetFilter("@demos", FilterClasses); RemoveMultiTargetFilter("@demoman", FilterClasses); RemoveMultiTargetFilter("@demomans", FilterClasses); RemoveMultiTargetFilter("@demomen", FilterClasses); RemoveMultiTargetFilter("@!demo", FilterClasses); RemoveMultiTargetFilter("@!demos", FilterClasses); RemoveMultiTargetFilter("@!demoman", FilterClasses); RemoveMultiTargetFilter("@!demomans", FilterClasses); RemoveMultiTargetFilter("@!demomen", FilterClasses); RemoveMultiTargetFilter("@reddemo", FilterClasses); RemoveMultiTargetFilter("@reddemos", FilterClasses); RemoveMultiTargetFilter("@reddemoman", FilterClasses); RemoveMultiTargetFilter("@reddemomans", FilterClasses); RemoveMultiTargetFilter("@reddemomen", FilterClasses); RemoveMultiTargetFilter("@!reddemo", FilterClasses); RemoveMultiTargetFilter("@!reddemos", FilterClasses); RemoveMultiTargetFilter("@!reddemoman", FilterClasses); RemoveMultiTargetFilter("@!reddemomans", FilterClasses); RemoveMultiTargetFilter("@!reddemomen", FilterClasses); RemoveMultiTargetFilter("@bludemo", FilterClasses); RemoveMultiTargetFilter("@bludemos", FilterClasses); RemoveMultiTargetFilter("@bludemoman", FilterClasses); RemoveMultiTargetFilter("@bludemomans", FilterClasses); RemoveMultiTargetFilter("@bludemomen", FilterClasses); RemoveMultiTargetFilter("@!bludemo", FilterClasses); RemoveMultiTargetFilter("@!bludemos", FilterClasses); RemoveMultiTargetFilter("@!bludemoman", FilterClasses); RemoveMultiTargetFilter("@!bludemomans", FilterClasses); RemoveMultiTargetFilter("@!bludemomen", FilterClasses); RemoveMultiTargetFilter("@bluedemo", FilterClasses); RemoveMultiTargetFilter("@bluedemos", FilterClasses); RemoveMultiTargetFilter("@bluedemoman", FilterClasses); RemoveMultiTargetFilter("@bluedemomans", FilterClasses); RemoveMultiTargetFilter("@bluedemomen", FilterClasses); RemoveMultiTargetFilter("@!bluedemo", FilterClasses); RemoveMultiTargetFilter("@!bluedemos", FilterClasses); RemoveMultiTargetFilter("@!bluedemoman", FilterClasses); RemoveMultiTargetFilter("@!bluedemomans", FilterClasses); RemoveMultiTargetFilter("@!bluedemomen", FilterClasses);
RemoveMultiTargetFilter("@heavy", FilterClasses); RemoveMultiTargetFilter("@heavies", FilterClasses); RemoveMultiTargetFilter("@!heavy", FilterClasses); RemoveMultiTargetFilter("@!heavies", FilterClasses); RemoveMultiTargetFilter("@redheavy", FilterClasses); RemoveMultiTargetFilter("@redheavies", FilterClasses); RemoveMultiTargetFilter("@!redheavy", FilterClasses); RemoveMultiTargetFilter("@!redheavies", FilterClasses); RemoveMultiTargetFilter("@bluheavy", FilterClasses); RemoveMultiTargetFilter("@bluheavies", FilterClasses); RemoveMultiTargetFilter("@!bluheavy", FilterClasses); RemoveMultiTargetFilter("@!bluheavies", FilterClasses); RemoveMultiTargetFilter("@blueheavy", FilterClasses); RemoveMultiTargetFilter("@blueheavies", FilterClasses); RemoveMultiTargetFilter("@!blueheavy", FilterClasses); RemoveMultiTargetFilter("@!blueheavies", FilterClasses);
RemoveMultiTargetFilter("@engy", FilterClasses); RemoveMultiTargetFilter("@engys", FilterClasses); RemoveMultiTargetFilter("@engineer", FilterClasses); RemoveMultiTargetFilter("@engineers", FilterClasses); RemoveMultiTargetFilter("@!engy", FilterClasses); RemoveMultiTargetFilter("@!engys", FilterClasses); RemoveMultiTargetFilter("@!engineer", FilterClasses); RemoveMultiTargetFilter("@!engineers", FilterClasses); RemoveMultiTargetFilter("@redengy", FilterClasses); RemoveMultiTargetFilter("@redengys", FilterClasses); RemoveMultiTargetFilter("@redengineer", FilterClasses); RemoveMultiTargetFilter("@redengineers", FilterClasses); RemoveMultiTargetFilter("@!redengy", FilterClasses); RemoveMultiTargetFilter("@!redengys", FilterClasses); RemoveMultiTargetFilter("@!redengineer", FilterClasses); RemoveMultiTargetFilter("@!redengineers", FilterClasses); RemoveMultiTargetFilter("@bluengy", FilterClasses); RemoveMultiTargetFilter("@bluengys", FilterClasses); RemoveMultiTargetFilter("@bluengineer", FilterClasses); RemoveMultiTargetFilter("@bluengineers", FilterClasses); RemoveMultiTargetFilter("@!bluengy", FilterClasses); RemoveMultiTargetFilter("@!bluengys", FilterClasses); RemoveMultiTargetFilter("@!bluengineer", FilterClasses); RemoveMultiTargetFilter("@!bluengineers", FilterClasses); RemoveMultiTargetFilter("@blueengy", FilterClasses); RemoveMultiTargetFilter("@blueengys", FilterClasses); RemoveMultiTargetFilter("@blueengineer", FilterClasses); RemoveMultiTargetFilter("@blueengineers", FilterClasses); RemoveMultiTargetFilter("@!blueengy", FilterClasses); RemoveMultiTargetFilter("@!blueengys", FilterClasses); RemoveMultiTargetFilter("@!blueengineer", FilterClasses); RemoveMultiTargetFilter("@!blueengineers", FilterClasses);
RemoveMultiTargetFilter("@medic", FilterClasses); RemoveMultiTargetFilter("@medics", FilterClasses); RemoveMultiTargetFilter("@!medic", FilterClasses); RemoveMultiTargetFilter("@!medics", FilterClasses); RemoveMultiTargetFilter("@redmedic", FilterClasses); RemoveMultiTargetFilter("@redmedics", FilterClasses); RemoveMultiTargetFilter("@!redmedic", FilterClasses); RemoveMultiTargetFilter("@!redmedics", FilterClasses); RemoveMultiTargetFilter("@blumedic", FilterClasses); RemoveMultiTargetFilter("@blumedics", FilterClasses); RemoveMultiTargetFilter("@!blumedic", FilterClasses); RemoveMultiTargetFilter("@!blumedics", FilterClasses); RemoveMultiTargetFilter("@bluemedic", FilterClasses); RemoveMultiTargetFilter("@bluemedics", FilterClasses); RemoveMultiTargetFilter("@!bluemedic", FilterClasses); RemoveMultiTargetFilter("@!bluemedics", FilterClasses);
RemoveMultiTargetFilter("@sniper", FilterClasses); RemoveMultiTargetFilter("@snipers", FilterClasses); RemoveMultiTargetFilter("@!sniper", FilterClasses); RemoveMultiTargetFilter("@!snipers", FilterClasses); RemoveMultiTargetFilter("@redsniper", FilterClasses); RemoveMultiTargetFilter("@redsnipers", FilterClasses); RemoveMultiTargetFilter("@!redsniper", FilterClasses); RemoveMultiTargetFilter("@!redsnipers", FilterClasses); RemoveMultiTargetFilter("@blusniper", FilterClasses); RemoveMultiTargetFilter("@blusnipers", FilterClasses); RemoveMultiTargetFilter("@!blusniper", FilterClasses); RemoveMultiTargetFilter("@!blusnipers", FilterClasses); RemoveMultiTargetFilter("@bluesniper", FilterClasses); RemoveMultiTargetFilter("@bluesnipers", FilterClasses); RemoveMultiTargetFilter("@!bluesniper", FilterClasses); RemoveMultiTargetFilter("@!bluesnipers", FilterClasses);
RemoveMultiTargetFilter("@spy", FilterClasses); RemoveMultiTargetFilter("@spies", FilterClasses); RemoveMultiTargetFilter("@!spy", FilterClasses); RemoveMultiTargetFilter("@!spies", FilterClasses); RemoveMultiTargetFilter("@redspy", FilterClasses); RemoveMultiTargetFilter("@redspies", FilterClasses); RemoveMultiTargetFilter("@!redspy", FilterClasses); RemoveMultiTargetFilter("@!redspies", FilterClasses); RemoveMultiTargetFilter("@bluspy", FilterClasses); RemoveMultiTargetFilter("@bluspies", FilterClasses); RemoveMultiTargetFilter("@!bluspy", FilterClasses); RemoveMultiTargetFilter("@!bluspies", FilterClasses); RemoveMultiTargetFilter("@bluespy", FilterClasses); RemoveMultiTargetFilter("@bluespies", FilterClasses); RemoveMultiTargetFilter("@!bluespy", FilterClasses); RemoveMultiTargetFilter("@!bluespies", FilterClasses); }
__________________
Last edited by ddhoward; 02-07-2014 at 17:44.
|
|