if ( ($nick != %fighter1) && ($nick != %fighter2) ) {
/msg %chan_duel $nick $+ , a duel between %fighter1 and %fighter2 is already underway. please wait until it finishes.
/halt }

The use of brackets may clarify .. what I am now saying is:

if NICK is not fighter 1 and if NICK is not fighter 2 then (send the message).

What you had originally was if NICK is not Fighter 1 or NICK is not fighter 2 : in this case if nick was fighter 2 then it was not fighter 1, and the command would still trigger.

I guess it helps if the result you want is written in plain language (using AND and/or OR) - it helps clarify what you want to achieve. && == AND, || == OR .




Junior Brat, In-no-cent(r)(tm) and original source of DK-itis!