im not familiar with @opinput1_"variable" syntax, but it seems like i points to the same pointnumber as itself. So since you only have one point i input number two, the only point that finds anything is point number one on your mesh.
I dont know the endgoal here, but if you want to access the "colors" array on point 0 on all your points, you can write it like this.
vector array[] = point(1,"colors",0);
@Cd = array[@ptnum];