forked from Mirrors/openclonk
415 lines
13 KiB
XML
415 lines
13 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
<!DOCTYPE funcs
|
|
SYSTEM '../../../clonk.dtd'>
|
|
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
|
|
<funcs>
|
|
<func>
|
|
<title>SetCommand</title>
|
|
<category>Objects</category>
|
|
<subcat>Commands</subcat>
|
|
<version>5.1 OC</version>
|
|
<syntax>
|
|
<rtype>bool</rtype>
|
|
<params>
|
|
<param>
|
|
<type>string</type>
|
|
<name>command</name>
|
|
<desc>Command name (as string). See the table below.</desc>
|
|
</param>
|
|
<param>
|
|
<type>object</type>
|
|
<name>target</name>
|
|
<optional />
|
|
<desc>target object for the command</desc>
|
|
</param>
|
|
<param>
|
|
<type>int</type>
|
|
<name>x</name>
|
|
<optional />
|
|
<desc>X target coordinate</desc>
|
|
</param>
|
|
<param>
|
|
<type>int</type>
|
|
<name>y</name>
|
|
<optional />
|
|
<desc>Y target coordinate</desc>
|
|
</param>
|
|
<param>
|
|
<type>object</type>
|
|
<name>target2</name>
|
|
<optional />
|
|
<desc>secondary target object</desc>
|
|
</param>
|
|
<param>
|
|
<type>any</type>
|
|
<name>Data</name>
|
|
<optional />
|
|
<desc>additional data for the command</desc>
|
|
</param>
|
|
<param>
|
|
<type>int</type>
|
|
<name>retries</name>
|
|
<optional />
|
|
<desc>Number of retries if the command fails, until the command fails completely.</desc>
|
|
</param>
|
|
</params>
|
|
</syntax>
|
|
<desc>Gives a command to an object. The object will try to complete the command using the internal artificial intelligence (including pathfinding).</desc>
|
|
<remark>
|
|
The following commands are defined:
|
|
<table>
|
|
<rowh>
|
|
<col>command</col>
|
|
<col>target</col>
|
|
<col>x, y</col>
|
|
<col>target2</col>
|
|
<col>Data</col>
|
|
<col>Description</col>
|
|
</rowh>
|
|
<row>
|
|
<literal_col>Acquire</literal_col>
|
|
<col>Null</col>
|
|
<col>0,0</col>
|
|
<col>Ignore container</col>
|
|
<col>Object type (id)</col>
|
|
<col>Type of object to be acquired. May be bought at the home base if necessary. Material contained in the specified container (Target2) is to be ignored in the search.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Activate</literal_col>
|
|
<col>Target object</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Activate the target object (exit from its container).</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Activate</literal_col>
|
|
<col>Null</col>
|
|
<col>0,0</col>
|
|
<col>Target object</col>
|
|
<col></col>
|
|
<col>Open the Get menu for the contents of the target object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Activate</literal_col>
|
|
<col>Null</col>
|
|
<col>Number,0</col>
|
|
<col>Target object</col>
|
|
<col>Object type (id)</col>
|
|
<col>Activate n objects of the specified type in the target object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Attack</literal_col>
|
|
<col>Target object</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Attack the target object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Buy</literal_col>
|
|
<col>Null</col>
|
|
<col>0,0</col>
|
|
<col>Null</col>
|
|
<col>Object type (id)</col>
|
|
<col>Buy an object of the specified type at the closest friendly home base.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Buy</literal_col>
|
|
<col>Basis</col>
|
|
<col>Number,0</col>
|
|
<col>Null</col>
|
|
<col>Object type (id)</col>
|
|
<col>Buy n objects of the specified type at the home base.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Buy</literal_col>
|
|
<col>Basis</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Open the Buy menu for the specified home base.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Call</literal_col>
|
|
<col>Object</col>
|
|
<col>Par(1),Par(2)</col>
|
|
<col>Par(3)</col>
|
|
<col><em>Function</em> (string)</col>
|
|
<col>Call <em>Function</em> in the object script. Par(0) will be the calling object. If the command fails because underlaying commands have failed, the function <em>Function</em>Failed is called instead.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Chop</literal_col>
|
|
<col>Target object</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Fell the target object object (tree).</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Dig</literal_col>
|
|
<col>Null</col>
|
|
<col>Target position</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Dig towards the target position.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Drop</literal_col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Immediately drop the first object in the inventory.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Drop</literal_col>
|
|
<col>Null</col>
|
|
<col>Target position</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Drop the first object in the inventory at the target position.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Drop</literal_col>
|
|
<col>Target object</col>
|
|
<col>Target position</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Collect the target object and drop it at the target position.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Enter</literal_col>
|
|
<col>Target object</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Enter the target object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Exit</literal_col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Exit the current container.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Follow</literal_col>
|
|
<col>Target object</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Follow the target object (permanently).</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Get</literal_col>
|
|
<col>Target object</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Collect the target object, dig it out if necessary.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Get</literal_col>
|
|
<col>Null</col>
|
|
<col>Number,0</col>
|
|
<col>Target object</col>
|
|
<col>Object type (id)</col>
|
|
<col>Get the specified number of objects from the target object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Grab</literal_col>
|
|
<col>Target object</col>
|
|
<col>Offset</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Grab the target object at the specified offset to the object center.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Home</literal_col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Return to the closest friendly home base.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Jump</literal_col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Jump into the current direction.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Jump</literal_col>
|
|
<col>Null</col>
|
|
<col>Target position</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Jump into the direction of the target position.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>MoveTo</literal_col>
|
|
<col>Target object</col>
|
|
<col>0,0</col>
|
|
<col>Null</col>
|
|
<col>No automatic adjustment? (bool)</col>
|
|
<col>Move to the position of the target object. Set iData to true to avoid automatic adjustment of the target coordinates to landscape surface.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>MoveTo</literal_col>
|
|
<col>Null</col>
|
|
<col>Target position</col>
|
|
<col>Null</col>
|
|
<col>No automatic adjustment? (bool)</col>
|
|
<col>Move to the target position. Set iData to true to avoid automatic adjustment of the target coordinates to landscape surface.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>None</literal_col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Clear all current commands.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>PushTo</literal_col>
|
|
<col>Target object</col>
|
|
<col>Target position</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Push the target object to the target position.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>PushTo</literal_col>
|
|
<col>Object</col>
|
|
<col>0,0</col>
|
|
<col>Target object</col>
|
|
<col></col>
|
|
<col>Push the target object into the secondary target object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Put</literal_col>
|
|
<col>Target object</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Put the first inventory object into the target object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Put</literal_col>
|
|
<col>Target object</col>
|
|
<col>Number,0</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Put the specified number of inventory objects into the target object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Put</literal_col>
|
|
<col>Target object</col>
|
|
<col>0,0</col>
|
|
<col>Object</col>
|
|
<col></col>
|
|
<col>Collect the target object and put it into the secondary target object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Put</literal_col>
|
|
<col>Target object</col>
|
|
<col>0,0</col>
|
|
<col>Null</col>
|
|
<col>Object type (id)</col>
|
|
<col>Put the inventory object of the specified type into the target object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Put</literal_col>
|
|
<col>Target object</col>
|
|
<col>Number,0</col>
|
|
<col>Null</col>
|
|
<col>Object type (id)</col>
|
|
<col>Put the specified number of inventory objects of the specified type into the target object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Sell</literal_col>
|
|
<col>Null</col>
|
|
<col>0,0</col>
|
|
<col>Object2</col>
|
|
<col>Object type (id)</col>
|
|
<col>Sell an object of the specified type at the closest home base. If Object2 is specified, this one will be sold first.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Sell</literal_col>
|
|
<col>Basis</col>
|
|
<col>Number,0</col>
|
|
<col>Object2</col>
|
|
<col>Object type (id)</col>
|
|
<col>Sell a number of objects of the specified type at the home base. If Object2 is specified, this one will be sold first.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Sell</literal_col>
|
|
<col>Basis</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Open Sell menu for the specified base object.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Throw</literal_col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Throw the first inventory item immediately.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Throw</literal_col>
|
|
<col>Null</col>
|
|
<col>Target position</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Throw the first inventory item towards the target position.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Throw</literal_col>
|
|
<col>Target object</col>
|
|
<col>Target position</col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Collect the target object and throw it towards the target position.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>UnGrab</literal_col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col></col>
|
|
<col>Let go of the object currently grabbed.</col>
|
|
</row>
|
|
<row>
|
|
<literal_col>Wait</literal_col>
|
|
<col>Null</col>
|
|
<col>0,0</col>
|
|
<col>Null</col>
|
|
<col>Frames</col>
|
|
<col>Wait specified number of frames/ticks.</col>
|
|
</row>
|
|
</table>
|
|
|
|
</remark>
|
|
<examples>
|
|
<example>
|
|
<code>SetCommand("Attack", <funclink>FindObject</funclink>(<funclink>Find_ID</funclink>(Clonk),<funclink>Sort_Distance</funclink>(0,0)), 0, 0, 0, 0, 10);</code>
|
|
<text>This script gives the clonk the order to attack the closest clonk of player 1. If the command fails (e.g. due to unsuccessful pathfinding), retry 10 times.</text>
|
|
</example>
|
|
</examples>
|
|
<related>
|
|
<funclink>GetCommand</funclink>
|
|
<funclink>AddCommand</funclink>
|
|
<funclink>AppendCommand</funclink>
|
|
<funclink>FinishCommand</funclink>
|
|
</related>
|
|
</func>
|
|
<author>PeterW</author><date>2001-11</date>
|
|
</funcs>
|