<?xml version="1.0" standalone="yes" ?>
<?xml-stylesheet href="x2script.xsl" type="text/xsl" ?>
<script>
<name>plugin.FLDS.Ship.Command.Monitor</name>
<version>12</version>
<engineversion>25</engineversion>
<description>Monitors a  Ship Command change</description>
<arguments>
<argument index="1" name="Expected.Command" type="Object Command" desc="Command" />
<argument index="2" name="Name.Local.Variable.Flag" type="Var/String" desc="Local Flag Name" />
</arguments>
<sourcetext>
<line linenr="001" indent=""><comment><text>*&#160;</text><var>This&#160;script&#160;monitors&#160;the&#160;current&#160;command&#160;on&#160;the&#160;ship,&#160;and&#160;maintains&#160;a&#160;local</var></comment></line>
<line linenr="002" indent=""><comment><text>*&#160;</text><var>variable&#160;flag&#160;that&#160;indicates&#160;if&#160;the&#160;command&#160;is&#160;still&#160;active.</var></comment></line>
<line linenr="003" indent=""></line>
<line linenr="004" indent=""><comment><text>*&#160;</text><var>CALL&#160;this&#160;script&#160;if&#160;you&#160;wish&#160;to&#160;know&#160;if&#160;it&#160;started&#160;successfully</var></comment></line>
<line linenr="005" indent=""></line>
<line linenr="006" indent=""><comment><text>*&#160;</text><var>This&#160;script&#160;only&#160;works&#160;on&#160;ships</var></comment></line>
<line linenr="007" indent=""><var>skip&#160;if&#160;</var><var>[THIS]&#160;-&gt;</var><text>&#160;is&#160;of&#160;class&#160;</text><var>Ship</var></line>
<line linenr="008" indent="&#160;"><text>return&#160;</text><var>[FALSE]</var></line>
<line linenr="009" indent=""></line>
<line linenr="010" indent=""><comment><text>*&#160;</text><var>This&#160;script&#160;should&#160;run&#160;as&#160;background&#160;task&#160;9101</var></comment></line>
<line linenr="011" indent=""><var>$Task.ID&#160;=&#160;</var><text>get&#160;task&#160;ID</text></line>
<line linenr="012" indent=""><comment><text>*&#160;</text><var>If&#160;the&#160;current&#160;task&#160;ID&#160;is&#160;not&#160;9101</var></comment></line>
<line linenr="013" indent=""><var>if&#160;</var><var>$Task.ID</var><text>&#160;</text><var>!=</var><text>&#160;</text><var>9101</var></line>
<line linenr="014" indent=""><comment><text>*&#160;</text><var>start&#160;this&#160;script&#160;as&#160;backgound&#160;task&#160;9101,&#160;and&#160;exit</var></comment></line>
<line linenr="015" indent="&#160;"><var>[THIS]&#160;-&gt;</var><text>&#160;start&#160;task&#160;</text><var>9101</var><text>&#160;with&#160;script&#160;</text><call>plugin.FLDS.Ship.Command.Monitor</call><text>&#160;and&#160;prio&#160;</text><var>0</var><text>:&#160;arg1=</text><var>$Expected.Command</var><text>&#160;arg2=</text><var>$Name.Local.Variable.Flag</var><text>&#160;arg3=</text><var>null</var><text>&#160;arg4=</text><var>null</var><text>&#160;arg5=</text><var>null</var></line>
<line linenr="016" indent="&#160;"><text>return&#160;</text><var>[TRUE]</var></line>
<line linenr="017" indent=""><text>end</text></line>
<line linenr="018" indent=""></line>
<line linenr="019" indent=""><comment><text>*&#160;</text><var>Set&#160;the&#160;command&#160;and&#160;flag&#160;on&#160;the&#160;ship</var></comment></line>
<line linenr="020" indent=""><var>[THIS]&#160;-&gt;</var><text>&#160;set&#160;command:&#160;</text><var>$Expected.Command</var></line>
<line linenr="021" indent=""><var>[THIS]&#160;-&gt;</var><text>&#160;set&#160;local&#160;variable:&#160;name=</text><var>$Name.Local.Variable.Flag</var><text>&#160;value=</text><var>[TRUE]</var></line>
<line linenr="022" indent=""><comment><text>*&#160;</text><var>Loop&#160;while&#160;the&#160;ship&#160;is&#160;still&#160;set&#160;to&#160;the&#160;command</var></comment></line>
<line linenr="023" indent=""><var>$Current.Command&#160;=&#160;</var><var>$Expected.Command</var></line>
<line linenr="024" indent=""><var>while&#160;</var><var>$Current.Command</var><text>&#160;</text><var>==</var><text>&#160;</text><var>$Expected.Command</var></line>
<line linenr="025" interruptable="@" indent="&#160;"><var>=&#160;</var><text>wait&#160;</text><var>30000</var><text>&#160;ms</text></line>
<line linenr="026" indent="&#160;"><var>$Current.Command&#160;=&#160;</var><var>[THIS]&#160;-&gt;</var><text>&#160;get&#160;command</text></line>
<line linenr="027" indent=""><text>end</text></line>
<line linenr="028" indent=""><comment><text>*&#160;</text><var>Clear&#160;the&#160;ship&#160;local&#160;flag&#160;to&#160;indicate&#160;the&#160;given&#160;command&#160;has&#160;ceased</var></comment></line>
<line linenr="029" indent=""><var>[THIS]&#160;-&gt;</var><text>&#160;set&#160;local&#160;variable:&#160;name=</text><var>$Name.Local.Variable.Flag</var><text>&#160;value=</text><var>null</var></line>
<line linenr="030" indent=""><text>return&#160;</text><var>null</var></line>
</sourcetext>
<codearray>
<sval type="array" size="10"><sval type="string" val="plugin.FLDS.Ship.Command.Monitor" /><sval type="int" val="25" /><sval type="string" val="Monitors a  Ship Command change" /><sval type="int" val="12" /><sval type="int" val="0" /><sval type="array" size="4"><sval type="string" val="Expected.Command" /><sval type="string" val="Name.Local.Variable.Flag" /><sval type="string" val="Task.ID" /><sval type="string" val="Current.Command" /></sval><sval type="array" size="15"><sval type="array" size="6"><sval type="int" val="705" /><sval type="int" val="131075" /><sval type="int" val="65536" /><sval type="int" val="-536870393" /><sval type="int" val="12" /><sval type="int" val="2004" /></sval><sval type="array" size="3"><sval type="int" val="103" /><sval type="int" val="131075" /><sval type="int" val="9" /></sval><sval type="array" size="2"><sval type="int" val="147" /><sval type="int" val="2" /></sval><sval type="array" size="13"><sval type="int" val="104" /><sval type="int" val="-1610611197" /><sval type="int" val="3" /><sval type="int" val="131074" /><sval type="int" val="2" /><sval type="int" val="4" /><sval type="int" val="9101" /><sval type="int" val="15" /><sval type="int" val="1" /><sval type="int" val="3" /><sval type="int" val="-1" /><sval type="int" val="1" /><sval type="int" val="-2" /></sval><sval type="array" size="18"><sval type="int" val="1017" /><sval type="int" val="131075" /><sval type="int" val="65536" /><sval type="string" val="plugin.FLDS.Ship.Command.Monitor" /><sval type="int" val="4" /><sval type="int" val="9101" /><sval type="int" val="4" /><sval type="int" val="0" /><sval type="int" val="131074" /><sval type="int" val="0" /><sval type="int" val="131074" /><sval type="int" val="1" /><sval type="int" val="0" /><sval type="int" val="0" /><sval type="int" val="0" /><sval type="int" val="0" /><sval type="int" val="0" /><sval type="int" val="0" /></sval><sval type="array" size="3"><sval type="int" val="103" /><sval type="int" val="131075" /><sval type="int" val="10" /></sval><sval type="array" size="5"><sval type="int" val="524" /><sval type="int" val="131075" /><sval type="int" val="65536" /><sval type="int" val="131074" /><sval type="int" val="0" /></sval><sval type="array" size="7"><sval type="int" val="155" /><sval type="int" val="131075" /><sval type="int" val="65536" /><sval type="int" val="131074" /><sval type="int" val="1" /><sval type="int" val="131075" /><sval type="int" val="10" /></sval><sval type="array" size="7"><sval type="int" val="104" /><sval type="int" val="3" /><sval type="int" val="1" /><sval type="int" val="131074" /><sval type="int" val="0" /><sval type="int" val="1" /><sval type="int" val="-1" /></sval><sval type="array" size="13"><sval type="int" val="104" /><sval type="int" val="-1610609399" /><sval type="int" val="3" /><sval type="int" val="131074" /><sval type="int" val="3" /><sval type="int" val="131074" /><sval type="int" val="0" /><sval type="int" val="15" /><sval type="int" val="0" /><sval type="int" val="3" /><sval type="int" val="-1" /><sval type="int" val="0" /><sval type="int" val="-2" /></sval><sval type="array" size="4"><sval type="int" val="105" /><sval type="int" val="-2147483647" /><sval type="int" val="4" /><sval type="int" val="8000" /></sval><sval type="array" size="4"><sval type="int" val="525" /><sval type="int" val="131075" /><sval type="int" val="65536" /><sval type="int" val="3" /></sval><sval type="array" size="2"><sval type="int" val="112" /><sval type="int" val="9" /></sval><sval type="array" size="7"><sval type="int" val="155" /><sval type="int" val="131075" /><sval type="int" val="65536" /><sval type="int" val="131074" /><sval type="int" val="1" /><sval type="int" val="0" /><sval type="int" val="0" /></sval><sval type="array" size="3"><sval type="int" val="103" /><sval type="int" val="0" /><sval type="int" val="0" /></sval></sval><sval type="array" size="2"><sval type="array" size="2"><sval type="int" val="31" /><sval type="string" val="Command" /></sval><sval type="array" size="2"><sval type="int" val="11" /><sval type="string" val="Local Flag Name" /></sval></sval><sval type="array" size="16"><sval type="array" size="3"><sval type="int" val="0" /><sval type="int" val="1" /><sval type="string" val="This script monitors the current command on the ship, and maintains a local" /></sval><sval type="array" size="3"><sval type="int" val="0" /><sval type="int" val="1" /><sval type="string" val="variable flag that indicates if the command is still active." /></sval><sval type="array" size="2"><sval type="int" val="0" /><sval type="int" val="2" /></sval><sval type="array" size="3"><sval type="int" val="0" /><sval type="int" val="1" /><sval type="string" val="CALL this script if you wish to know if it started successfully" /></sval><sval type="array" size="2"><sval type="int" val="0" /><sval type="int" val="2" /></sval><sval type="array" size="3"><sval type="int" val="0" /><sval type="int" val="1" /><sval type="string" val="This script only works on ships" /></sval><sval type="array" size="2"><sval type="int" val="2" /><sval type="int" val="2" /></sval><sval type="array" size="3"><sval type="int" val="2" /><sval type="int" val="1" /><sval type="string" val="This script should run as background task 9101" /></sval><sval type="array" size="3"><sval type="int" val="3" /><sval type="int" val="1" /><sval type="string" val="If the current task ID is not 9101" /></sval><sval type="array" size="3"><sval type="int" val="4" /><sval type="int" val="1" /><sval type="string" val="start this script as backgound task 9101, and exit" /></sval><sval type="array" size="2"><sval type="int" val="6" /><sval type="int" val="4" /></sval><sval type="array" size="2"><sval type="int" val="6" /><sval type="int" val="2" /></sval><sval type="array" size="3"><sval type="int" val="6" /><sval type="int" val="1" /><sval type="string" val="Set the command and flag on the ship" /></sval><sval type="array" size="3"><sval type="int" val="8" /><sval type="int" val="1" /><sval type="string" val="Loop while the ship is still set to the command" /></sval><sval type="array" size="2"><sval type="int" val="13" /><sval type="int" val="4" /></sval><sval type="array" size="3"><sval type="int" val="13" /><sval type="int" val="1" /><sval type="string" val="Clear the ship local flag to indicate the given command has ceased" /></sval></sval><sval type="string" val="Background Command Monitor" /></sval>
</codearray>
</script>
