All of these are correct if you mean to allow normal operator precedence (&& is higher than ||):
if (($2 == on) && ($nick ishop #ftpxdcc-wolf) || ($nick isop #ftpxdcc-wolf)) { .run command here }
if ($2 == on) && ($nick ishop #ftpxdcc-wolf) || ($nick isop #ftpxdcc-wolf) { .run command here }
if ($2 == on && $nick ishop #ftpxdcc-wolf || $nick isop #ftpxdcc-wolf) { .run command here }
if $2 == on && $nick ishop #ftpxdcc-wolf || $nick isop #ftpxdcc-wolf { .run command here }
if (($2 == on) && ($nick ishop #ftpxdcc-wolf) || ($nick isop #ftpxdcc-wolf)) .run command here
if ($2 == on) && ($nick ishop #ftpxdcc-wolf) || ($nick isop #ftpxdcc-wolf) .run command here
if ($2 == on && $nick ishop #ftpxdcc-wolf || $nick isop #ftpxdcc-wolf) .run command here
if $2 == on && $nick ishop #ftpxdcc-wolf || $nick isop #ftpxdcc-wolf .run command here
if (($2 == on) && ($nick ishop #ftpxdcc-wolf) || ($nick isop #ftpxdcc-wolf)) $&
.run command here
if ($2 == on) && ($nick ishop #ftpxdcc-wolf) || ($nick isop #ftpxdcc-wolf) $&
.run command here
if ($2 == on && $nick ishop #ftpxdcc-wolf || $nick isop #ftpxdcc-wolf) $&
.run command here
if $2 == on && $nick ishop #ftpxdcc-wolf || $nick isop #ftpxdcc-wolf $&
.run command here
if (($2 == on) && ($nick ishop #ftpxdcc-wolf) || ($nick isop #ftpxdcc-wolf)) {
.run command here
}
if ($2 == on) && ($nick ishop #ftpxdcc-wolf) || ($nick isop #ftpxdcc-wolf) {
.run command here
}
if ($2 == on && $nick ishop #ftpxdcc-wolf || $nick isop #ftpxdcc-wolf) {
.run command here
}
if $2 == on && $nick ishop #ftpxdcc-wolf || $nick isop #ftpxdcc-wolf {
.run command here
}
If you don't want ($2 == on AND $nick ishop #ftpxdcc-wolf) OR ($nick isop #ftpxdcc-wolf), then you need to at least group the two OR'd conditions together.
if (($2 == on) && (($nick ishop #ftpxdcc-wolf) || ($nick isop #ftpxdcc-wolf))) .run command here
if ($2 == on) && (($nick ishop #ftpxdcc-wolf) || ($nick isop #ftpxdcc-wolf)) .run command here
if ($2 == on && ($nick ishop #ftpxdcc-wolf || $nick isop #ftpxdcc-wolf)) .run command here
if $2 == on && ($nick ishop #ftpxdcc-wolf || $nick isop #ftpxdcc-wolf) .run command here
NOTE: if your ".run command here" really consists of multiple commands, then { and } are required to group those commands within the condition block.
Also, you might think about switching those two ($nick is___ #ftpxdcc-wolf) conditions to a single ($nick(#ftpxdcc-wolf, $nick, oh) != $null). If you leave the parentheses around the $nick() identifier, you don't even need the != $null.
if (($2 == on) && ($nick(#ftpxdcc-wolf, $nick, oh) != $null)) .run command here
if ($2 == on) && ($nick(#ftpxdcc-wolf, $nick, oh) != $null) .run command here
if ($2 == on && $nick(#ftpxdcc-wolf, $nick, oh) != $null) .run command here
if $2 == on && $nick(#ftpxdcc-wolf, $nick, oh) != $null .run command here
if (($2 == on) && ($nick(#ftpxdcc-wolf, $nick, oh))) .run command here
if ($2 == on) && ($nick(#ftpxdcc-wolf, $nick, oh)) .run command here
if ($2 == on && ($nick(#ftpxdcc-wolf, $nick, oh))) .run command here
if $2 == on && ($nick(#ftpxdcc-wolf, $nick, oh)) .run command here
How you choose to format your script is largely a matter of personal choice. Some of those configurations are faster than others, some conditional expressions require parenthesis or braces to delineate when the conditional expression has stopped (such as isin or iswm). If you're not interested in optimizing your script for speed, then pick the one that makes the most "sense" to you or the one you happen to like the looks of the best. Try to stick with the same format through your script, wherever you can. You'll get used to seeing the same constructions which will make it easier for you to grasp the sense of what a section of script is supposed to be doing.