Next revision | Previous revision |
modding:function:shporder [2014/12/27 04:40] – external edit 127.0.0.1 | modding:function:shporder [2017/06/25 05:06] (current) – 0xabcdef |
---|
^ Description | Gives the ship the order. | | ^ Description | Gives the ship the order. | |
| |
=== Variations === | * **shpOrder** |
| * **ship** |
| * **order** |
| * **"guard"**: Ship docks with a target and fights enemies that attack or come near the target. Ship gives up attacking an enemy if it is no longer detectable to the target. Ship is considered a subordinate of **target**. Order ends if **target** is destroyed. |
| * SpaceObject: **target** |
| * **"sentry"**: Similar to **guard** but makes the ship hold at its current position and has a duration. Usually given to ships that rotate but do not thrust (such as turrets). Ship is considered a subordinate of **target**. Order ends if **target** is destroyed. |
| * SpaceObject: **target** |
| * Integer: Duration in seconds; indefinite by default. |
| * **"dock"**: Ship attempts to dock with a target. If no docking ports are available, ship will move back and forth over the target until a port is available. |
| * SpaceObject: **target** |
| * **"attack"**: Ship fires its weapons against a target for a specified duration or until the target is destroyed. |
| * SpaceObject: **target** |
| * [Integer]: Duration in seconds; indefinite by default |
| * **"wait"**: Ship does absolutely nothing for a specified duration. |
| * [Integer]: Duration in seconds; indefinite by default |
| * **"gate"**: Ship attempts to leave the system through an object (typically a stargate). |
| * SpaceObject (does not need to be a stargate): **target** |
| * **"gateOnThreat"**: Ship **wait**s until it is attacked and then attempts to leave the system. This order usually comes after a **dock** order. Ship is considered a subordinate of the object it is docked at. |
| * **"gateOnStationDestroyed"**: Ship **wait**s until a station is destroyed and then attempts to leave the system. This order usually comes after a **dock** order. Ship is considered a subordinate of the object it is docked at. |
| * **"patrol"**: Ship **orbit**s the target at a specified distance and fights enemies that attack or come near the target. Ship gives up fighting an enemy if it is no longer detectable by the target. Ship is considered a subordinate of **target**. Order ends if the **target** is destroyed. |
| * SpaceObject: **target** |
| * [Integer]: **distance** in light-seconds at which to orbit the target. |
| * **"escort"**: Ship **follow**s a target, fighting enemies that attack or come near the target. Ship gives up fighting an enemy if it is no longer detectable by the target. |
| * SpaceObject: **target** |
| * [Integer]: **angle** or **formation** |
| * [Integer]: **distance** |
| * **"scavenge"**: Ship **wanders** around system until there is a wreck with items in it, at which point the ship will **loot** the wreck. Does not retaliate if the wreck is destroyed. |
| * **"followPlayerThroughGate"**: Cannot be given by **shpOrder**; returned by the event **OnPlayerLeftSystem** as **"followPlayer"**. Ship follows the player through the nearest gate. |
| * SpaceObject: **target** |
| * **"attackNearestEnemy"**: Attack the nearest enemy at the time that this order is assigned. |
| * **"tradeRoute"** |
| * **"wander"**: Ship follows a diamond-like path around the system, fighting enemies that attack it |
| * **"loot"**: Ship takes all items from the target after a few seconds, ignoring cargo space. Ship does not retaliate to attacks while looting. Does not retaliate if target is destroyed. |
| * SpaceObject: **target** |
| * **"hold"**: Ship brakes and attempts to stay at its current position, attacking nearby enemies |
| * Integer: **duration** in seconds |
| * **"mine"**: Ship mines asteroids in the system. Ship is considered a subordinate of the **base**. |
| * SpaceObject: **base** object that the ship is working for. |
| * **"waitForPlayer"**: Cannot be given by **shpOrder**; returned by the event **OnPlayerLeftSystem**. Ship waits for the player to return to the system. |
| * **"attackPlayerOnReturn"**: Usually given during the **OnPlayerLeftSystem** event. Ship will attack player upon gating back into the system. |
| * **"follow"**: Ship follows a target, staying at a position relative to the target and matching the target's direction. |
| * SpaceObject: **target** |
| * Integer: Angle in degrees |
| * Integer: Distance in light-seconds |
| * **"navPath"** |
| * ?: **navID** |
| * **"goto"**: |
| * SpaceObject: **destination** |
| * Integer: **distance** |
| * **"waitForTarget"**: Ship waits until a target approaches a certain distance or until a certain amount of time passes. |
| * SpaceObject: **target** to wait for. |
| * Integer: **distance** from the target in light-seconds, defaults to detection range. |
| * Integer: **duration** in seconds until the wait ends; indefinite by default. |
| * **"waitForEnemy"**: Ship waits until it detects an enemy |
| * Integer: **duration** in seconds until the wait ends; indefinite by default. |
| * **"bombard"**: Orders a ship to **attack** a station |
| * SpaceObject (must be a station): **target** |
| * Integer: **duration** in seconds that the ship will spend bombarding |
| * **"approach"**: Ship approaches a target until a certain distance |
| * SpaceObject: **target** |
| * Integer: **distance** in light-seconds |
| * **"aim"**: Ship aims at a target without firing weapons |
| * SpaceObject: **target** |
| * **"orbit"**: Ship moves clockwise in a circular path around the target at a specified distance for a specified duration |
| * SpaceObject: **target** |
| * Integer: **distance** in light-seconds |
| * Integer: **duration** in seconds |
| * **"holdCourse"**: Ship travels in a specified direction for a specified distance. |
| * Integer: **angle** (absolute) in degrees |
| * Integer: **distance** in light-seconds |
| * **"turnTo"**: Ship turns until its rotation matches a given angle. |
| * Distance: **angle** (absolute) in degrees |
| * **"attackHold"**: Ship attacks a specified target for a specified duration while trying to stay at its current position. |
| * SpaceObject: **target** |
| * Integer: **duration** in seconds; indefinite by default. |
| * **"attackStation"**: |
| * SpaceObject: **target** |
| * [?]: **unknown** |
| * **"fireEvent"**: Fires the event on the target's event handler. **aShipObj** is the ship that fired it. |
| * SpaceObject: **target** |
| * String: **event** to fire |
| * **"waitForUndock"**: Ship waits until the **target** undocks or the **duration** passes. |
| * SpaceObject: **target** |
| * Integer: **duration** in seconds |
| * **"sendMessage"**: Ship sends a **message** to a **target**. If the **target** is the player ship, then the message displays on the screen. Otherwise, nothing useful happens. |
| * SpaceObject: **target** |
| * String: **message** |
| * **"attackArea"**: Ship attacks all enemies that are within a specified distance of a specified object for a specified time, probably in random order<sup>verify</sup> |
| * SpaceObject: **target** |
| * Integer: **distance** in light-seconds |
| * [Integer]: **time** in seconds; indefinite by default. |
| * **"holdAndAttack"**: Same as **attackHold** |
| * SpaceObject: **target** to attack |
| * Integer: **duration** in seconds |
| * **"gotoPos"**: Ship moves to the specified position. |
| * Position: **destination** |
| * **"waitForThreat"**: Ship waits until it detects an enemy or the **duration** passes. |
| * Integer: **duration** in seconds |
| === Example === |
| |
* (shpOrder source 'waitForTarget target) | <code lisp> |
* (shpOrder source 'attack target) | (shpOrder |
* (shpOrder source 'dock target) | (random (sysFindObject Nil "s A")) |
* (shpOrder source 'escort target) | 'gate |
* (shpOrder source 'hold Nil 5) | (random (sysFindObject Nil "G A")) |
* (shpOrder source 'gate) | ) |
* (shpOrder source 'wander) | </code> |
* (shpOrder source 'hold) | |
* (shpOrder source 'wait Nil (random 3 7)) | |
* (shpOrder source 'goto target) | |
* (shpOrder source 'patrol target distance) | |
* (shpOrder source 'aim target) | |
* (shpOrder source 'guard target) | |
* (shpOrder wingman 'attackNearestEnemy) | |
* (shpOrder source 'bombard target) | |
* (shpOrder source 'approach marker 15) | |
* (shpOrder source 'turnTo 90) | |
* (shpOrder source 'holdCourse ??) | |
* (shpOrder source 'turnTo angle) ; added in 1.03 | |
| |
=== Example === | |
| |
<code lisp>(shpOrder gPlayerShip 'wait)</code> | Orders a random ship in the system to exit through a random gate as soon as all its orders are done. |
| |
Returns True, ordering the player to wait doesn't do much. | |
Return to [[:Functions]] list | Return to [[:Functions]] list |
| |