1. I prefer several events over one, especially when some of them can be filtered out based on userlevel, my channel status, matchtext or channel names. This is a classic example...
On @*:text:!*:#:{ parse command }
On @*:text:*:#:{ check text }
...which I'd definitely use instead of:
On @*:text:*:#:{
if !* iswm $1 {
parse command
return
}
check text
}
When it comes to dialogs I usually filter my events at the $dname level to avoid it being triggered on mouse movement. I wouldn't make a separate event for each $did because it doesn't look good (imo). Example:
On *:dialog:name:init:*:{ do stuff }
On *:dialog:name:sclick:*:{
var %did = $did
goto %did
:1 | do stuff | return
:2 | do stuff | return
:15 | do stuff | return
:%did
}
3.[*]
a: The
! prefix tells mIRC to bypass possible aliases. It's a good habit to prefix your commands with an
! whenever there's a chance they will be caught by a custom alias which will likely corrupt your script, as in the example of
!.echo -q $input(hello) when we intend to hide the identifier's output.
[*]
b: They say /raw is faster than other IRC commands like /msg, /kick and such because mIRC doesn't try to process the parameters being passed to it. If you use /raw to send a PRIVMSG instead of using /msg, mIRC will not echo your text to the corresponding channel/query window.
I use /raw if I want two commands to be sent in
one packet for faster response from the server. For example, this will produce a superfast kick:
//raw mode # +b $wildsite $+ $lf $+ kick # $nick :cya4. listfiles.dll,
findfiles.dll. I haven't tested them myself but you can get some impression from the comments.
5. I have no idea about MDX but you can try /showmirc (see the help file for available switches)