MOOSE/docs/Documentation/Client.html
2017-02-28 14:01:38 +01:00

1103 lines
24 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="AI_Balancer.html">AI_Balancer</a></li>
<li><a href="AI_Cap.html">AI_Cap</a></li>
<li><a href="AI_Cas.html">AI_Cas</a></li>
<li><a href="AI_Patrol.html">AI_Patrol</a></li>
<li><a href="Account.html">Account</a></li>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="AirbasePolice.html">AirbasePolice</a></li>
<li><a href="Assign.html">Assign</a></li>
<li><a href="Base.html">Base</a></li>
<li><a href="Cargo.html">Cargo</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li>Client</li>
<li><a href="CommandCenter.html">CommandCenter</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="DetectionManager.html">DetectionManager</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li>
<li><a href="Smoke.html">Smoke</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="Task.html">Task</a></li>
<li><a href="Task_A2G.html">Task_A2G</a></li>
<li><a href="Task_PICKUP.html">Task_PICKUP</a></li>
<li><a href="Task_SEAD.html">Task_SEAD</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Utils.html">Utils</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Client</code></h1>
<p>This module contains the CLIENT class.</p>
<h1>1) <a href="Client.html##(CLIENT)">Client#CLIENT</a> class, extends <a href="Unit.html##(UNIT)">Unit#UNIT</a></h1>
<p>Clients are those <strong>Units</strong> defined within the Mission Editor that have the skillset defined as <strong>Client</strong> or <strong>Player</strong>.
Note that clients are NOT the same as Units, they are NOT necessarily alive.
The <a href="Client.html##(CLIENT)">Client#CLIENT</a> class is a wrapper class to handle the DCS Unit objects that have the skillset defined as <strong>Client</strong> or <strong>Player</strong>:</p>
<ul>
<li>Wraps the DCS Unit objects with skill level set to Player or Client.</li>
<li>Support all DCS Unit APIs.</li>
<li>Enhance with Unit specific APIs not in the DCS Group API set.</li>
<li>When player joins Unit, execute alive init logic.</li>
<li>Handles messages to players.</li>
<li>Manage the "state" of the DCS Unit.</li>
</ul>
<p>Clients are being used by the <a href="MISSION.html">MISSION</a> class to follow players and register their successes.</p>
<h2>1.1) CLIENT reference methods</h2>
<p>For each DCS Unit having skill level Player or Client, a CLIENT wrapper object (instance) will be created within the _<a href="DATABASE.html">DATABASE</a> object.
This is done at the beginning of the mission (when the mission starts).</p>
<p>The CLIENT class does not contain a :New() method, rather it provides :Find() methods to retrieve the object reference
using the DCS Unit or the DCS UnitName.</p>
<p>Another thing to know is that CLIENT objects do not "contain" the DCS Unit object.
The CLIENT methods will reference the DCS Unit object by name when it is needed during API execution.
If the DCS Unit object does not exist or is nil, the CLIENT methods will return nil and log an exception in the DCS.log file.</p>
<p>The CLIENT class provides the following functions to retrieve quickly the relevant CLIENT instance:</p>
<ul>
<li><a href="##(CLIENT).Find">CLIENT.Find</a>(): Find a CLIENT instance from the _DATABASE object using a DCS Unit object.</li>
<li><a href="##(CLIENT).FindByName">CLIENT.FindByName</a>(): Find a CLIENT instance from the _DATABASE object using a DCS Unit name.</li>
</ul>
<p>IMPORTANT: ONE SHOULD NEVER SANATIZE these CLIENT OBJECT REFERENCES! (make the CLIENT object references nil).</p>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#CLIENT">CLIENT</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(CLIENT)">Type <code>CLIENT</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).AddBriefing">CLIENT:AddBriefing(ClientBriefing)</a></td>
<td class="summary">
<p>AddBriefing adds a briefing to a CLIENT when a player joins a mission.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).Alive">CLIENT:Alive(CallBackFunction, ...)</a></td>
<td class="summary">
<p>Checks for a client alive event and calls a function on a continuous basis.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClassName">CLIENT.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClientAlive">CLIENT.ClientAlive</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClientAlive2">CLIENT.ClientAlive2</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClientBriefing">CLIENT.ClientBriefing</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClientBriefingShown">CLIENT.ClientBriefingShown</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClientCallBack">CLIENT.ClientCallBack</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClientGroupID">CLIENT.ClientGroupID</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClientGroupName">CLIENT.ClientGroupName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClientGroupUnit">CLIENT.ClientGroupUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClientName">CLIENT.ClientName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClientParameters">CLIENT.ClientParameters</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ClientTransport">CLIENT.ClientTransport</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).Find">CLIENT:Find(ClientName, ClientBriefing, DCSUnit)</a></td>
<td class="summary">
<p>Finds a CLIENT from the _DATABASE using the relevant DCS Unit.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).FindByName">CLIENT:FindByName(ClientName, ClientBriefing, Error)</a></td>
<td class="summary">
<p>Finds a CLIENT from the _DATABASE using the relevant Client Unit Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).GetClientGroupDCSUnit">CLIENT:GetClientGroupDCSUnit()</a></td>
<td class="summary">
<p>Returns the DCSUnit of the CLIENT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).GetClientGroupID">CLIENT:GetClientGroupID()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).GetClientGroupName">CLIENT:GetClientGroupName()</a></td>
<td class="summary">
<p>Get the name of the group of the client.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).GetClientGroupUnit">CLIENT:GetClientGroupUnit()</a></td>
<td class="summary">
<p>Returns the UNIT of the CLIENT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).GetDCSGroup">CLIENT:GetDCSGroup()</a></td>
<td class="summary">
<p>Return the DCSGroup of a Client.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).IsMultiSeated">CLIENT:IsMultiSeated()</a></td>
<td class="summary">
<p>Checks if the CLIENT is a multi-seated UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).IsTransport">CLIENT:IsTransport()</a></td>
<td class="summary">
<p>Evaluates if the CLIENT is a transport.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).Message">CLIENT:Message(Message, MessageDuration, MessageCategory, MessageInterval, MessageID)</a></td>
<td class="summary">
<p>The main message driver for the CLIENT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).Messages">CLIENT.Messages</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ONBOARDSIDE">CLIENT.ONBOARDSIDE</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).Register">CLIENT:Register(ClientName)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).Reset">CLIENT:Reset(ClientName)</a></td>
<td class="summary">
<p>Resets a CLIENT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ShowBriefing">CLIENT:ShowBriefing()</a></td>
<td class="summary">
<p>Show the briefing of a CLIENT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ShowCargo">CLIENT:ShowCargo()</a></td>
<td class="summary">
<p>Shows the <a href="AI_Cargo.html##(CARGO)">AI_Cargo#CARGO</a> contained within the CLIENT to the player as a message.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).ShowMissionBriefing">CLIENT:ShowMissionBriefing(MissionBriefing)</a></td>
<td class="summary">
<p>Show the mission briefing of a MISSION to the CLIENT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).SwitchMessages">CLIENT.SwitchMessages(PrmTable)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).Transport">CLIENT:Transport()</a></td>
<td class="summary">
<p>Transport defines that the Client is a Transport.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT)._AliveCheckScheduler">CLIENT:_AliveCheckScheduler(SchedulerName)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT)._Menus">CLIENT._Menus</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT)._Tasks">CLIENT._Tasks</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(CLIENT)">#CLIENT</a></em>
<a id="CLIENT" >
<strong>CLIENT</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Client)" >Type <code>Client</code></a></h2>
<h2><a id="#(CLIENT)" >Type <code>CLIENT</code></a></h2>
<p>The CLIENT class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(CLIENT).AddBriefing" >
<strong>CLIENT:AddBriefing(ClientBriefing)</strong>
</a>
</dt>
<dd>
<p>AddBriefing adds a briefing to a CLIENT when a player joins a mission.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string ClientBriefing </em></code>:
is the text defining the Mission briefing.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(CLIENT)">#CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).Alive" >
<strong>CLIENT:Alive(CallBackFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Checks for a client alive event and calls a function on a continuous basis.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#function CallBackFunction </em></code>:
Create a function that will be called when a player joins the slot.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(CLIENT)">#CLIENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(CLIENT).ClassName" >
<strong>CLIENT.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(CLIENT).ClientAlive" >
<strong>CLIENT.ClientAlive</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(CLIENT).ClientAlive2" >
<strong>CLIENT.ClientAlive2</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(CLIENT).ClientBriefing" >
<strong>CLIENT.ClientBriefing</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(CLIENT).ClientBriefingShown" >
<strong>CLIENT.ClientBriefingShown</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(CLIENT).ClientCallBack" >
<strong>CLIENT.ClientCallBack</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(CLIENT).ClientGroupID" >
<strong>CLIENT.ClientGroupID</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(CLIENT).ClientGroupName" >
<strong>CLIENT.ClientGroupName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).ClientGroupUnit" >
<strong>CLIENT.ClientGroupUnit</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).ClientName" >
<strong>CLIENT.ClientName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(CLIENT).ClientParameters" >
<strong>CLIENT.ClientParameters</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(CLIENT).ClientTransport" >
<strong>CLIENT.ClientTransport</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).Find" >
<strong>CLIENT:Find(ClientName, ClientBriefing, DCSUnit)</strong>
</a>
</dt>
<dd>
<p>Finds a CLIENT from the _DATABASE using the relevant DCS Unit.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string ClientName </em></code>:
Name of the DCS <strong>Unit</strong> as defined within the Mission Editor.</p>
</li>
<li>
<p><code><em>#string ClientBriefing </em></code>:
Text that describes the briefing of the mission when a Player logs into the Client.</p>
</li>
<li>
<p><code><em> DCSUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(CLIENT)">#CLIENT</a>:</em></p>
<h3>Usage:</h3>
<pre class="example"><code>-- Create new Clients.
local Mission = MISSIONSCHEDULER.AddMission( 'Russia Transport Troops SA-6', 'Operational', 'Transport troops from the control center to one of the SA-6 SAM sites to activate their operation.', 'Russia' )
Mission:AddGoal( DeploySA6TroopsGoal )
Mission:AddClient( CLIENT:FindByName( 'RU MI-8MTV2*HOT-Deploy Troops 1' ):Transport() )
Mission:AddClient( CLIENT:FindByName( 'RU MI-8MTV2*RAMP-Deploy Troops 3' ):Transport() )
Mission:AddClient( CLIENT:FindByName( 'RU MI-8MTV2*HOT-Deploy Troops 2' ):Transport() )
Mission:AddClient( CLIENT:FindByName( 'RU MI-8MTV2*RAMP-Deploy Troops 4' ):Transport() )</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).FindByName" >
<strong>CLIENT:FindByName(ClientName, ClientBriefing, Error)</strong>
</a>
</dt>
<dd>
<p>Finds a CLIENT from the _DATABASE using the relevant Client Unit Name.</p>
<p>As an optional parameter, a briefing text can be given also.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string ClientName </em></code>:
Name of the DCS <strong>Unit</strong> as defined within the Mission Editor.</p>
</li>
<li>
<p><code><em>#string ClientBriefing </em></code>:
Text that describes the briefing of the mission when a Player logs into the Client.</p>
</li>
<li>
<p><code><em>#boolean Error </em></code>:
A flag that indicates whether an error should be raised if the CLIENT cannot be found. By default an error will be raised.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(CLIENT)">#CLIENT</a>:</em></p>
<h3>Usage:</h3>
<pre class="example"><code>-- Create new Clients.
local Mission = MISSIONSCHEDULER.AddMission( 'Russia Transport Troops SA-6', 'Operational', 'Transport troops from the control center to one of the SA-6 SAM sites to activate their operation.', 'Russia' )
Mission:AddGoal( DeploySA6TroopsGoal )
Mission:AddClient( CLIENT:FindByName( 'RU MI-8MTV2*HOT-Deploy Troops 1' ):Transport() )
Mission:AddClient( CLIENT:FindByName( 'RU MI-8MTV2*RAMP-Deploy Troops 3' ):Transport() )
Mission:AddClient( CLIENT:FindByName( 'RU MI-8MTV2*HOT-Deploy Troops 2' ):Transport() )
Mission:AddClient( CLIENT:FindByName( 'RU MI-8MTV2*RAMP-Deploy Troops 4' ):Transport() )</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).GetClientGroupDCSUnit" >
<strong>CLIENT:GetClientGroupDCSUnit()</strong>
</a>
</dt>
<dd>
<p>Returns the DCSUnit of the CLIENT.</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Unit)">Dcs.DCSTypes#Unit</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).GetClientGroupID" >
<strong>CLIENT:GetClientGroupID()</strong>
</a>
</dt>
<dd>
<p> TODO: Check Dcs.DCSTypes#Group.ID
- Get the group ID of the client.
@param #CLIENT self
@return Dcs.DCSTypes#Group.ID</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).GetClientGroupName" >
<strong>CLIENT:GetClientGroupName()</strong>
</a>
</dt>
<dd>
<p>Get the name of the group of the client.</p>
<h3>Return value</h3>
<p><em>#string:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).GetClientGroupUnit" >
<strong>CLIENT:GetClientGroupUnit()</strong>
</a>
</dt>
<dd>
<p>Returns the UNIT of the CLIENT.</p>
<h3>Return value</h3>
<p><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).GetDCSGroup" >
<strong>CLIENT:GetDCSGroup()</strong>
</a>
</dt>
<dd>
<p>Return the DCSGroup of a Client.</p>
<p>This function is modified to deal with a couple of bugs in DCS 1.5.3</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSWrapper.Group.html##(Group)">Dcs.DCSWrapper.Group#Group</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).IsMultiSeated" >
<strong>CLIENT:IsMultiSeated()</strong>
</a>
</dt>
<dd>
<p>Checks if the CLIENT is a multi-seated UNIT.</p>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if multi-seated.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).IsTransport" >
<strong>CLIENT:IsTransport()</strong>
</a>
</dt>
<dd>
<p>Evaluates if the CLIENT is a transport.</p>
<h3>Return value</h3>
<p><em>#boolean:</em>
true is a transport.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).Message" >
<strong>CLIENT:Message(Message, MessageDuration, MessageCategory, MessageInterval, MessageID)</strong>
</a>
</dt>
<dd>
<p>The main message driver for the CLIENT.</p>
<p>This function displays various messages to the Player logged into the CLIENT through the DCS World Messaging system.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Message </em></code>:
is the text describing the message.</p>
</li>
<li>
<p><code><em>#number MessageDuration </em></code>:
is the duration in seconds that the Message should be displayed.</p>
</li>
<li>
<p><code><em>#string MessageCategory </em></code>:
is the category of the message (the title).</p>
</li>
<li>
<p><code><em>#number MessageInterval </em></code>:
is the interval in seconds between the display of the <a href="Message.html##(MESSAGE)">Message#MESSAGE</a> when the CLIENT is in the air.</p>
</li>
<li>
<p><code><em>#string MessageID </em></code>:
is the identifier of the message when displayed with intervals.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(CLIENT).Messages" >
<strong>CLIENT.Messages</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(CLIENT).ONBOARDSIDE" >
<strong>CLIENT.ONBOARDSIDE</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).Register" >
<strong>CLIENT:Register(ClientName)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> ClientName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).Reset" >
<strong>CLIENT:Reset(ClientName)</strong>
</a>
</dt>
<dd>
<p>Resets a CLIENT.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string ClientName </em></code>:
Name of the Group as defined within the Mission Editor. The Group must have a Unit with the type Client.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).ShowBriefing" >
<strong>CLIENT:ShowBriefing()</strong>
</a>
</dt>
<dd>
<p>Show the briefing of a CLIENT.</p>
<h3>Return value</h3>
<p><em><a href="##(CLIENT)">#CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).ShowCargo" >
<strong>CLIENT:ShowCargo()</strong>
</a>
</dt>
<dd>
<p>Shows the <a href="AI_Cargo.html##(CARGO)">AI_Cargo#CARGO</a> contained within the CLIENT to the player as a message.</p>
<p>The <a href="AI_Cargo.html##(CARGO)">AI_Cargo#CARGO</a> is shown using the <a href="Message.html##(MESSAGE)">Message#MESSAGE</a> distribution system.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).ShowMissionBriefing" >
<strong>CLIENT:ShowMissionBriefing(MissionBriefing)</strong>
</a>
</dt>
<dd>
<p>Show the mission briefing of a MISSION to the CLIENT.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string MissionBriefing </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(CLIENT)">#CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).SwitchMessages" >
<strong>CLIENT.SwitchMessages(PrmTable)</strong>
</a>
</dt>
<dd>
<p> TODO (1) I urgently need to revise this.
- A local function called by the DCS World Menu system to switch off messages.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> PrmTable </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).Transport" >
<strong>CLIENT:Transport()</strong>
</a>
</dt>
<dd>
<p>Transport defines that the Client is a Transport.</p>
<p>Transports show cargo.</p>
<h3>Return value</h3>
<p><em><a href="##(CLIENT)">#CLIENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT)._AliveCheckScheduler" >
<strong>CLIENT:_AliveCheckScheduler(SchedulerName)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> SchedulerName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(CLIENT)._Menus" >
<strong>CLIENT._Menus</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(CLIENT)._Tasks" >
<strong>CLIENT._Tasks</strong>
</a>
</dt>
<dd>
</dd>
</dl>
</div>
</div>
</body>
</html>