Huzzah! Fix'd it. It had nothing to do with breaks, though - it set the "triggeractive" variable to false for every combo that wasn't the trigger; now it sets it to false at the end of the while(true) loop. If it still doesn't work, I would blame the SFX script interfering with it, in which case I could (try to) combine the two scripts.
CODE
ffc script changeCombosIfFound2Way{
void run ( int triggercombo, int targetcombo ){
bool triggerActive = false;
bool combosChanged = false;
while(true){
for(int i=0; i<175; i++){
//Check for the trigger combo
if(Screen->ComboD[i]==triggercombo) triggerActive = true;
}
//If trigger is ON and target is NOT changed, change it
if(triggerActive==true && combosChanged==false){
for(int i=0; i<175; i++)
if(Screen->ComboD[i]==targetcombo) Screen->ComboD[i]++;
combosChanged = true;
}
//If trigger is OFF and target IS changed, change it back
if(triggerActive==false && combosChanged==true){
for(int i=0; i<175; i++)
if(Screen->ComboD[i]==targetcombo+1) Screen->ComboD[i]--;
combosChanged = false;
}
triggerActive = false;
Waitframe();
}
}
}