Showstopper, this cannot work properly. You\'re not using proper scripting syntax, ffs. Pairing if statements with a && means the script\'ll only trigger if both checks return true, which is obviously not what wanted here (you\'re going to akick people you don\'t want in only when they\'re BOTH in the channel at the same time?), and you cannot use { } brackets that way. I suggest a good beginner\'s scripting guide.
I contradicted myself how? You aren\'t making sense. Also: whether you like it or not, people WILL use bots for channel management. Even on networks with some type of channel registration, if channel registration has requirements (see Quakenet, Undernet, etc), people who don\'t meet those requirements will use a bot, or more than one, to manage the channel. It\'s their right to do that. And I still hold you should tell people this is insecure, or use a more secure way of identifying who gets access to the bot. Because there WILL be people who know next to nothing about scripting, and just copy the code in their remotes and end up with an insecure bot.
Bracket mismatch - you\'re missing a closing } - you should always doublecheck and close ALL the brackets you\'re using, otherwise the script is likely to mess up. Also, I can\'t fathom why you\'ve stuck write commands in there... that\'ll eventually make the text file HUGE, since every time somebody does !fortune the script writes all those lines to txt file. Why not just instruct people to make a file named fortune.txt in their mIRC directory? Also: I know it works anyway, but try and use $read properly (it\'s $read(filename.txt), not $read filename.txt).
This doesn\'t work properly... if the acronym is anything but the second word in the script, it\'ll not work. If the second word is the acronym and you have anything after that, it\'ll not work. Even if the acronym is the second word and nothing else comes after it, it\'ll message the channel the extended acronym as well as the previous message.
You don\'t need to check against all of those address types... a wildcard match check against the full mask (address type 5, which is nick!ident@host) will catch all banmasks that match you. I\'d also suggest using linebreaks rather than pipes ( | ), they keep multiline code much tidier :) Also, if you use network-specific commands (not all networks have chanserv, and not all networks with chanserv have protect and deprotect), you should specify what network they\'re for.
Well, personally I find it rude to post a new snippet just to correct somebody else\'s snippet... it\'ll not help as much as me pointing out problems / possible improvements on the actual snippet. If I post a new snippet with the corrections, all I\'m doing is going \"ohh, lookit me, I\'m good, I know how to script and you don\'t, nyah nyah nyah\". While if I post with suggestions I\'m helping others improve their scripting with suggestions. At least, that\'s my opinion. I know I\'d prefer a \"hey, your snippet has problem X\" comment on my snippet, so I KNOW where the problem is, rather than somebody just posting their own snippet because mine has a problem and they want to correct me.
\"The most people can do is kick ban op deop other people big deal\" - well, yes, big deal. Let\'s say you have your channel on a network without any sort of channel registration, so you are relying just on the bot to control the channel. I change my nick to a nick that contains yours, get ops from the bot, deop everybody else (including the bot), set modes +imklb aopsdyas 1 !@*, kick everybody out, and sit in the channel. You\'re going to get it back how? :) As for the while loop - no, actually it\'s not unsafe, it\'s got many, many useful uses in scripting. Otherwise it wouldn\'t be in the commands that can be used. ANYTHING can be unsafe, even just a CTCP event (backdoor anyone?) - that\'s no reason to say \"well, X can be unsafe, so it doesn\'t matter if there\'s an unsafe flaw in my snippet\".
Well... apart from the fact that you\'re missing a closing } at the end of it... most commands won\'t work if your nick isn\'t set up as a bot admin, but you give no indication of HOW to set up your nick as a bot admin. Even just to use the commands command you need to have your nick set up as an op... and again, you give no indication of how to set up your nick as an op (except an admin command which is inaccessible if you don\'t know how to set up your nick as an admin). Some of the commands listed in
commands are admin-only (most of them, in fact), which defeats the point of giving ops a command listing (which doesn\'t specify which commands are admin-only); admin nicks can\'t get a command listing (it\'s op-only). Some commands are not listed (op,
halfop, voice); adding or removing somebody as an op/halfop/voice does nothing (there\'s no on join event to automatically op/halfop/voice them).
say will only let you say one word (it should be $$2- rather than $$2, also you only need $2- because since it triggers on \"say *\" it\'ll not trigger if somebody simply says \"
say\", it\'ll want a space and something after that to trigger). You have an extra $+ in the kickban line. There\'s still the inherent insecurity of granting bot control by nick that Cypher87 mentioned, plus using a variable for each nick to store who is what you\'ll have the variables section full of variables after a bit... I\'d suggest either using a single variable (ie. %admins holding all admin nicks) and tokens, or access levels (which would be safer as well if you match it by ident@host rather than by nick). And finally, as I\'ve already mentioned, I dislike the use of
as a command prefix, because people with non-English keyboards will NOT be able to type it directly, they\'ll need to copypaste or do keyboard-acrobatics (I forget the alt+numbers combination, I copypasted it)... you really should use the more common ! or . as a command prefix, there\'s a reason they\'re widely used :)
Oh, and by the way, your comment about the \"endlis loop\" makes no sense. There\'s no endless loop snippet in this section that I can see, just a while loop demonstration - and if you try and make the finite while loop into an infinite while loop for flooding, you\'re more likely to flood off just yourself than flood off others. Try and learn a bit about the mechanics of flooding :)
I don\'t post negative things, I post constructive criticism, offering suggestions and pointing out mistakes and problems. As for \"insecure\" ... well, ANY command or script in mIRC is potentially insecure (for instance, a simple CTCP event can be turned into a backdoor). Does that mean I\'m going to keep quiet when I see a possible problem or mistake in a script (such as a bot where a person only has to change their nick to contain yours and they gain access to your channel, giving them the ability to take it over if you\'re relying only on the one bot for control)? Nope.
I don\'t \"bitch\", I post about problems that I see with snippets. Yes, there\'s a difference. I don\'t say things like \"this sucks\", or \"I hate this\" or similar, and I don\'t say things like \"this is a waste to have\" (even on this snippet, that just replicated an option mIRC already has, I offered a suggestion on how to make it better than the default instead of just saying \"this is useless\"). I point out problems and mistakes, give suggestions, and keep things constructive - since I figure we\'re all here to learn. If you find a problem or a mistake in one of my snippets, you\'re welcome to point it out, of course, but getting annoyed just because I point out a problem or mistake in your snippet is, well, fairly silly.