もしかして、こうしたいんじゃなかろうか。

for(i=0;i<4;i+=1)
{
inst.parts[i] = instance_create(x, y, obj_parts);
inst.parts[i].number = i;
}

こうすることで、
「パーツのステップでもしbase.parts[i]のiが0なら位置はどこどこ、1ならどこどこと決める」
という動作ができる。
このとき、参照するのはiじゃなくnumberな。