Sign in to follow this  
Spin Khan

A Deeper look at colloquial understanding of BE Filters

1 post in this topic




Compare: verb (used with object), compared, comparing.

1. to examine (two or more objects, ideas, people, etc.) in order to note similarities and differences:


Intrinsic to the definition to compare anything we need at LEAST two terms.  Now in trying to get up to speed on the BE filter specs the exception type marker is usually explained like this,


The two options for exceptions are:
 • != The parameter must exactly match the exception. In scripts.txt the entire statement the keyword is found in must exactly match the exception.
 • ! The parameter must contain the exception. In scripts.txt the statement the keyword is found in must contain the exception.


Never mind that the terms 'parameter' and 'exception' aren't fully described or defined here, the author also surfaces another ambiguous term when he attempts to explain his first remark using the term 'statement'.

So here in lies the rub.  I'm trying to understand why I then SEE exceptions written like this, taken from vanilla Exile 1.0.3 distro, scripts.txt:


7 createVehicle !="ize.sqf\"\n\n\n\n\n\n\n\n\n\n\n\nExileClientMoonLight = \"#lightpoint\"..."

Now admittedly I've not seen a formal spec on BE's filter rules and precisely what the BE engine expects when it reads filter files, all we have, all I have is anecdotal information sharing, guides and what have you that I can find on the net, but logically, something here is inaccurate because the concept of "exactly match" as in the real implication here, the TWO items being compared must 'exactly match,' and  NOT the similar A is found IN B and is an 'exact match' ... (implication-->)... of the pattern!  The latter is NOT about what I'm discussing, please be sure you fully recognize this!

From what I understand, technically, this filter is incorrect and should be using the '!' marker as there is an obvious BOUNDARY break across the name of the script file ...ize.sqf, and THUS regardless of the true and accurate meaning of the terms "parameter" or "statement" above, this will NEVER be able to EXACTLY MATCH because NO parameter nor statement, taken as a whole, which is intrinsic to the definitions of both terms, will ever be similarly truncated across a script name boundary.

Now, if '!=" ALSO, pattern matches, then WHY '!' in the first place?   Now '!=' may also pattern match but '!' exists for efficiency.  But then that opens the question of why so much inefficient, and in my view wrong, snippets are so commonly found circulating. 

In the end, I've written some scripts to read, analyze and try to FIX BE filters automatically and I'm looking for more detailed and specific information about the formal ins and outs of how these scripts REALLY work but good, consistent and ultimately reliable information is difficult to find.

See the problem?   Appreciate any thoughtful feedback.




Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.