(...) could you gimme the line finished up with error checking and all?
Put these lines to a remote file. Besides the aliases section, you can add your own aliases to remotes as well - you'll have to prefix them with "alias". I'm prefering this.
; You can add comments to a code - all lines prefixed with a ; will be ignored while processing your code.
; Of course you can remove all these comments if you like
; kickban per editbox command (example)
alias kb {
; the window where you entered the command is not a active channel
; [note how the operator "ison" has been negated with an exclamation mark]
if ($me !ison $acitve) { echo -a kickban: $active is not a channel! }
; no first parameter (no nick given)
; [using the 'negation-prefix' again, this time to check whether there was a parameter entered]
elseif (!$1) { echo -a kickban: no nick specified. Syntax: /kb <nick> <optional kick-reason> }
; first paramter given is not a nick on that chan
elseif ($1 !ison $chan) { echo -a kickban: $1 is not a nick on $active }
; no sufficient channel rights (only ops, halfops etc can kick or ban a user)
; [this line combines two "if" comparisons with "or"]
elseif (($me isreg $active) || ($me isvoice $active)) { echo -a kickban: Your have no sufficient channel rights on active to kick or ban }
; none of the possible errors above occured: perform the ban with "mode" as you liked, followed by a kick.
; [desired banmask "4" via $address(nick,4). "$2-" refers to the 2nd parameter onwards, in this case the kick reason]
else {
mode $active +b $address($1,4)
kick $active $1 $2-
}
}
As you see, the structure of this alias is: if....elseif....elseif...elseif...else. The respective command is executed once a condition is matched; processing stopps at that point. Thus, only if none of the "error message conditions" is true, the alias will procede to "else" and try to perform a kickban.
"$active" refers to the active window, In this case it's the name of the channel where command was entered - so you could use # instead, if you want.
Anyway. I think it might have something to do with /kb /mode # +b$1 | /kick # $1 needing $address. Somehow make it when I go /kb nick it takes the nick, $addresses it, and then puts it in as $1.
"mode $active +b $address($1,4) .... kick $active $1 $2-" does the same as "ban -k $active $1 4 $2-" (ban in combination with kick on $active of user $1 with mask 4; kick of user $1 with reason $2-).
If you only want to "stop processing" if invalid or insufficient parameters were given (no echo feedback), the alias could be much smaller - now you can combine multiple "error-conditions":
alias kb {
if ((($me isop $active) || ($me ishop $active)) && ($1 ison $active)) { ban -k $address($1,4) 4 $2- }
}
"if (I'm op on $active OR I'm halfop on $active) AND $1 is a nick on active".
The condition "$active has to be a valid channel" is inherent in these conditions. (if $1 has to be a nick on $active, $active for sure has to be a chan) - thus no need to check this condition on its own

I'm also looking at a /i /invite $1 $2 where $1nick and $2channel, but I also want it to work if I just type /i nick on a channel, but that would be just a /i /invite $1 #. So I dunno. Error checking included would pwn.
A good starting point for another if-then-else construction:
alias i {
; first parameter is a user in your internal address list
if ($ial($1)) {
; second parameter is a channel you're on: invite the user to that chan
if (#$2 ischan) { invite $1 #$2 }
; second parameter given, but it's no channel
elseif ($2) { echo -a Cannot invite $1 on $2 - $2 is no channel! }
; (no second parameter given) and typing the command in a channel window: invite the user to the active channel
elseif ($active ischan) { invite $1 $active }
; (no second parameter given) and typing the command in somo other window, e.g. status window
else { echo -a invite: neither is $active a channel; nor did you provide a channel to invite $1 }
}
; first parameter given, but it's not a user
elseif ($1) { echo -a invite: looks like $1 is no user sharing a channel with you! }
; no first parameter given
else { echo -a invite: no nickname given! }
}
Without error echos, it can be simplified again:
alias i {
if (($ial($1)) && ((#$2 ischan) || ($active ischan))) { invite $1 $iif(($2 ischan),#$2,$active) }
}
"If $1 is a user in your internal address list AND ($2 is a channel OR $active is a channel)"
You might have noted the # prefix for $2 in some of the lines above: "#$2". Take for example a channel named "#test": "/i John #Test" would work, but what about "/i John Test"? If you use #$2 instead of $2, mIRC will add that prefix if it's missing

alias kb {
.raw -q mode # +b $address($1,1) $crlf kick # $1 $iif($2,: $+ $2)
}
- I don't see any advantage of using rawmode here. Then, breaking lines with a pipe | or splitting the two commands on two lines looks a lot cleaner imho
- it should be $2- as the kick-reason could contain spaces