how about isowner and iscreator too? What about isoper? Well I know why isoper would be a challange... but the other two would be nice...
The problem with those (any probably the reason they aren't added [yet]) is that not all networks use the same symbols and modes for each of those modes. On some, an owner may be ~, while on others, an owner may by &. Ops, halfops, and voices are the same on all networks afaik, so it's easy to determine if someone is an op or halfop or voice. The others aren't as easily handled.
I do see a possible solution that mIRC could possible allow, however. It could be that something like isowner could be made to require that you tell the script what character is used for owner on the network(s) the script is being used on:
if ($nick isowner(~) $chan) { }
if ($nick $isowner(~) $chan) { }
... Something like that. I gave 2 examples because any commands with ()'s generally have $ in front of the command, so the second line would follow that standard. But the isop doesn't use $, so the first one follows that standard. In either case, that may be a possible way to handle it, though probably not the "nicest" method.
Edit: Btw, you can use a scripted method...
alias isadmin {
if ($3 isin $nick($1,$2).pnick) { return $true }
}
Use:
if $isadmin(#chan,nick,admin_mode) { do this }
if $isadmin(#Invision,Riamus,!) { echo -a Riamus is an admin }
That may not be the nicest way to handle those modes, but it would work as long as you stay on networks that use the mode you use in your script.
Note that this identifier only works properly if the network(s) it's used on won't allow nicks that use those modes. I tried on 2 networks and neither allowed me to change to a nick that used !,&,~ even if the network didn't have those modes. I didn't try other networks, so you'd want to check multiple networks to make sure they don't allow nicks to have those characters in them.
Anyhow, you could use that same identifier for all modes (change it to $ismode or something) because you're entering the mode to look for. Or, you can duplicate it for different modes so that you can easily see what you're checking for ($isadmin, $isowner, etc).
And, yes, you could do this without an identifier as well. I did this for those who might like such a thing.
Without an identifier, you'd just do:
if (! isin $nick(#chan,$nick).pnick) { do this }
That may be a preferable method for people.