vector r1=<135, 0, 0>; // rotazione senso 1 vector r2=<225, 0, 180>; // rotazione senso 2 vector p1=<85.4375, 38.4954-2, 23.3226>; // punto 1 della spola vector p2=<51.8792, 41.5985-2, 23.3226>; // punto 2 della spola integer FACT=100; // quantità di passi per senso di marcia vector diff; vector from; vector to; default { state_entry() { llSetRot(llEuler2Rot(DEG_TO_RAD*r1)); diff=(p2-p1)/FACT; from=p1; to=p2; llSetPos(p1); llSetTimerEvent(0.5); } timer() { if(llVecDist(llGetPos(),to)<3) state state2; llSetPos(llGetPos()+diff); } } state state2 { state_entry() { llSetRot(llEuler2Rot(DEG_TO_RAD*r2)); diff=(p1-p2)/FACT; from=p2; to=p1; llSetPos(p2); llSetTimerEvent(0.5); } timer() { if(llVecDist(llGetPos(),to)<3) state default; llSetPos(llGetPos()+diff); } }