If half the people of (your?) chat servers have bad words in their whois, and you have no problem with it, then you do not need a script.
If that isn't obvious, ofcourse. :)
The scope of this script is far beyond bad/swear words in whois.
You want to know more about the people visiting your channels?
You want to know on which other channels they are, maybe to visit them too?
Your channel is pestered by a bunch lamers and they all seem to be on a certain channel (whatever it is named, bad/swear words or not)?
You want to keep track of all people that are op on other channels?
This script is essentially nothing more than a versatile filter that automatically grabs on request-available data for you, filters it according to your information needs, and can act, if desired. It gives you a much higher awareness of the people on your channels. And that is its purpose. 'Check' Channels.
on *:SNOTICE:*Failed OPER attempt by*: {
.notice $me Failed Oper Attempt
.notice $me $2-
inc -u240 %op.att.fail. $+ $5
if (%op.att.fail. [ $+ [ $5 ] ] <= 1 ) { .msg $5 Oper Attempt Failure. Repeated Failures are Unwise }
elseif ($v1 == 2 ) { .kill $5 $5 $+ $6 Failed in attempt to Oper }
elseif ($v1 >= 3 ) { .gline $5- 30d Failed Oper attempt }
}
Ok, repeat for you: one typo error on line 9, like he pressed enter so an ending piece of the line came on the next line.
That -single- typo causes the problem and since it happens in the on start event, the initialisation, of course this has consequences on more places.
Fixing that typo, and it works, it\'s unfair to consider a whole script as bad due to a typo.
Regarding \'spaces is your files\', as far as I see, he uses quotes around filenames in /commands, and when he does not, the path is just the relative part towards mirc dir so not needed.
Besides that simple typo, which seems to be due to an accidental enter, which happens me too sometimes when mirc is abit laggy and I press again, this script does what it claims to do and the interface uses mdx to make it attractive, which is rather in contradiction to your claim that he would have made this only for himself.
So good job, 14/20 is a score I support.
3 of the 4 errors you moan about, are caused by the first.
n9= hload XCeptAwayN XC\XCeptAwa
n10= .txt
This is obviously a typo error and easy to fix.
Regarding multiple entries in the list, I assume you mean here: double entries since it\'s quite normal to have multiple entries in a list?
The list is a hash, how can it then have double entries? /hadd will just overwrite the item if it exists.
For the rest, the UI looks nifty to me, and after fixing that typo, it seems to work as it should. Not that I need an away script, I\'m not that important and I consider them more as spam. :P
Talking about \'for us advanced users\' don\'t you all miss a key issue here?
Setting 10 banmasks to match a single user does not make sense at all.
A banmask effectively contains only 3 user parameters, nick, ident and host. Setting more banmask types to cover one user is therefore logically impossible because overruling happens.
As example, banmask 4 is !@.host which is wider than banmask 3 !user@.host as well as most other types, therefore those others are overruled.
So the discussion about how to code and what to tell the user is abit misplaced, lol...
Why timers?
Just let the last response of the previous /whois command trigger the next. Its then impossible the server sendqueue overflows.
Regarding the server receivequeue, if the sendqueue never overflows, then the receivequeue doesnt either, and /whois nick1,nick2 etc doesnt suffer this problem at all, since the server sends a RAW 416 too many lines in your output, which just stops the responses after that amount, so a part of the passed nicks need to be re-whoissed.
Just some ideas to make this better
It\'s UPX packed, rather uncommon for legit software and instead very common for malicious software. I unpacked it, viewed it in hexeditor
and it has registry change key functions, install screensaver function, TerminateProcess ExitWindowsEx SetFileAttributes functions etc.
I wonder why this is called a \'script\'. I don\'t think I\'ll run it to see more.
Was this file replaced or so, after reviewing?
Where is the benefit of using one event and conditions?
If you use one event for *, mIRC has to execute the code for every raw, regardless if it\'s for a /whois or /list or whatever, which can throw away quite some performance. With more events, mIRC does these conditions in its own code instead of script, which is much faster.
If it does not work for you, try to be more specific than \'it doesn\'t work\'.
Without information regarding how you configured and tested it, I can do little to help you.
Nevertheless, I noticed a bug:
:NICK | if ($newnick ison $2) { goto nexti } | var %com = msg $2 $+([,%net,]) $nick is now known as $newnick | goto output
should be:
:NICK | if ($newnick ison $2) { inc %i | continue } | var %com = msg $2 $+([,%net,]) $nick is now known as $newnick | goto output
An earlier version of this jumped to a label instead of immediately continuing the loop like it does now, and this occurence of the goto was forgotten.
It\'s not related to your problem however, since it would just spit out an error in case of a nickchange combined with a relay output channel on the same network as the nickchange where the nick is als present, this to avoid seeing a nickchange AND a message from the script (=double reporting).
A late thanks for the review.
I realize the dialog has alot tabs and is cramped.
I worked further on it, it has now 21 tabs. It will be a very big amount work to split it up in more dialogs, since that needs a whole new implementation of the interface, now the side listbox with connected servergroup membernicks, visible on all tabs, is used to load remote configuration, which is spreaded over all tabs, since those are organized per system.
And then, if DCX should be used, to make tabbed listboxes etc, again a complete rewrite.
I doubt I\'ll ever have the time for all this. The only acceptable job might be the concentration of all dialog changing code.
Also, it still lacks all the functionality I intended to have (especially handling of nickserv type network services), which has a higher priority for me.
Maybe I need a companion for this ;)
Regards.
Btw, is it worthwhile to update it? Quite some bugfixes, better making, and new stuff, some of it half finished.