you have 2 syntax problems:
1) your "else" has a condition.. else blocks never have a condition. Please read /help /if to look at the syntax for if/elseif/else-- you probably want elseif.
2) you have two independent if branches. both will execute-- meaning if %ve is 0, you will *always* close the window, regardless of the initial check for the list. This is what is happening:
if (%nick isin %nolist) ...
followed by:
if (%nick && %ve) ...
else ...
both of these branches will get executed. it will check if the nick is in the list, and THEN check if %ve is 1 or 0. If it is 0, it will close the window. Your second "if" should be an "elseif" if you want it to only execute the first matched condition of the three.