FTEQCC does not support QCCX syntax. it never has, it probably never will.
%5 is meant to be equivelent to 5i, although there are some other differences like fteqcc implicitly converting ints to floats as needed - which for non-constants depends upon opcode extensions.
Presumably that line can be fixed with:
bprint(substring(vip.noise2, 1, -1));
If you want to avoid extra builtin dependancies, you can also do:
local string tmp = vip.noise2;
asm ADD_F tmp 1i tmp;
bprint(tmp);
Unfortunately, the following requires opcode extensions (because its rare enough that I didn't bother trying to emulate it), but would do the same thing:
bprint(vip.noisei2 + 1);
Of course, you'll have other issues elsewhere.