That's quite a monster of a script you've got there, Krieg.
I'm taking a look at it now. But off the top of my head, about || : if you have two conditions, condition1 and condition2, then
condition1 || condition2
will be true if
(1) condition1 is true, condition2 is false
(2) condition1 is false, condition2 is true
(3) condition1 is true, condition2 is true
It will be false if and only if:
(4) condition1 is false, condition2 is false
If you understand that, and you remembered to place parentheses properly, then I'm not sure how you could have misused || .
EDIT: I think it's a parentheses problem. Take this line, for example:
?(!alive f1 && !alive f2 && !alive f3 && alive g1 || alive g2 || alive g3) : goto "1stdown"
The engine is probably interpreting that to mean:
?((!alive f1 && !alive f2 && !alive f3 && alive g1) || (alive g2) || (alive g3)) : goto "1stdown"
And that makes it go to 1stdown if g2 is alive. Presumably he's alive at the start of the mission, so it goes to 1stdown immediately. You probably want
?((!alive f1 && !alive f2 && !alive f3) && (alive g1 || alive g2 || alive g3)) : goto "1stdown"
And et cetera for similar lines throughout the whole script. Now it should go to 1stdown if f1, f2, and f3 are all dead, and any of the g's are alive.