Here's a code segment I've made for spinning planets. It works as far as I can tell. I've gotten up to seven full rotations out of the planet without any glitches. (It has a turnrate of 0.001) It seems that every 7th or so rotation, it achieves its desired heading JUST before the timer expires, so it slows down and then noticeably speeds up as the next timer kicks in, but it does always spin. (And you could probably fix this by slightly tweaking the "turnrate".)
<create type ="neutral" x="19300" y="0" z="22700" name="Archer IV" angle="359" hulltype="23"/>
<log text="creating planet\n"/>
<direct name="Archer IV" pointX="19400" pointZ="25000"/>
<log text="setting initial heading"/>
<set_timer name="planet1Spin1" seconds="33"/>
<log text="setting first timer for the first time"/>
<big_message title="Planet Test" subtitle1="Does it work?"/>
<log text="Starting\n"/>
</start>
<event>
<if_variable name="planet1Spin1Finished" comparator="!=" value="1"/>
<if_timer_finished name="planet1Spin1"/>
<log text="stopping first timer\n"/>
<direct name="Archer IV" pointX="19000" pointZ="22800"/>
<log text="new heading 1\n"/>
<set_timer name="planet1Spin2" seconds="33"/>
<log text="starting second timer\n"/>
<set_variable name="planet1Spin1Finished" value="1"/>
<set_variable name="planet1Spin2Finished" value="0"/>
</event>
<event>
<if_variable name="planet1Spin2Finished" comparator="!=" value="1"/>
<if_timer_finished name="planet1Spin2"/>
<log text="stopping second timer\n"/>
<direct name="Archer IV" pointX="19300" pointZ="21000"/>
<log text="new heading 2\n"/>
<set_timer name="planet1Spin3" seconds="33"/>
<log text="starting third timer\n"/>
<set_variable name="planet1Spin2Finished" value="1"/>
<set_variable name="planet1Spin3Finished" value="0"/>
</event>
<event>
<if_variable name="planet1Spin3Finished" comparator="!=" value="1"/>
<if_timer_finished name="planet1Spin3"/>
<log text="stopping third timer\n"/>
<direct name="Archer IV" pointX="19700" pointZ="22700"/>
<log text="new heading 3\n"/>
<set_timer name="planet1Spin4" seconds="33"/>
<log text="staring fourth timer\n"/>
<set_variable name="planet1Spin3Finished" value="1"/>
<set_variable name="planet1Spin4Finished" value="0"/>
</event>
<event>
<if_variable name="planet1Spin4Finished" comparator="!=" value="1"/>
<if_timer_finished name="planet1Spin4"/>
<log text="stopping fourth timer\n"/>
<direct name="Archer IV" pointX="19400" pointZ="25000"/>
<log text="new heading 4\n"/>
<set_timer name="planet1Spin1" seconds="33"/>
<log text="re-starting first timer\n"/>
<set_variable name="planet1Spin4Finished" value="1"/>
<set_variable name="planet1Spin1Finished" value="0"/>
</event>
[Last edited Jun 20, 2011 19:06:14]