Difference between revisions of "Cabal Common Library Doc Comms"

From Elite Wiki
m (Furher info about the script_info keys and list cleaning.)
(Added Links)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Overview ==
 
== Overview ==
This is the main class for the secure comms channels with its members.
+
This is the main class for the secure comms channels with its members and part of the [[Cabal_Common_Library]].
  
The script is mainly used to store and handle incoming data from shipscripts and worldScripts for a secure communication channel.  Entities can place, change or remove their data fairly simple and a few parameters are handled.  The equipment itself is not visible to the player and added automagically by adding a entry. Additionally entities can use script_info keys to give the player the option to open a channel. Entries are valid until the player leaves the system or in case of entities is out of scanner range. The range check can by bypassed.
+
The script is mainly used to store and handle incoming data from shipscripts and worldScripts for a secure communication channel.  Entities can place, change or remove their data fairly simple and a few parameters are handled.  The equipment itself is not visible to the player and added automagically by adding a entry. Additionally entities can use script_info keys to give the player the option to open a channel. Entries are valid until the player leaves the system or in case of entities is out of scanner range based on a timer with 25 sec intervals. The range check can by bypassed.
  
 
The script checks the following shipdata.plist script_info key when the player receives a comms message from that entity.
 
The script checks the following shipdata.plist script_info key when the player receives a comms message from that entity.
Line 10: Line 10:
 
:;ccl_secureChannelPrep:String.  Function in the ship-script that initiates the object.
 
:;ccl_secureChannelPrep:String.  Function in the ship-script that initiates the object.
  
The scripts should keep a valid object to use removeFromComm() or changeChoicesComm.
+
The scripts should keep a valid object to use removeFromComm() or changeChoicesComm().
  
 
Everything else is performed within the EQ-script.
 
Everything else is performed within the EQ-script.
 
  
 
== Functions ==
 
== Functions ==
 
=== addToComm() ===
 
=== addToComm() ===
{{CodeEx|codeex=addToComm = function( obj )}}
+
{{CodeEx|codeex=addToComm: function( obj )}}
 
{{CodeExTime|native=0.000158|extension=0.000068|js=0.000124}}
 
{{CodeExTime|native=0.000158|extension=0.000068|js=0.000124}}
Adds incoming object to the list.
+
Adds incoming object to the list. Make sure that the object is extensible and not sealed or frozen.
 +
 
 +
'''Parameters:'''
 +
:;obj:Object.
 +
 
 +
'''Returns:'''
 +
:;bool: Boolean. True on success.
  
 
If the player selects a action, the script will pass the index of the action in the set.  Therefor it is necessary to provide some infos when adding a entry.
 
If the player selects a action, the script will pass the index of the action in the set.  Therefor it is necessary to provide some infos when adding a entry.
Line 33: Line 38:
  
 
Example for a ship:
 
Example for a ship:
{{CodeEx|codeex=this.myComm = {
+
  this.myComm = {
:display:"My channel",
+
    display:"My channel",
:who:this.ship,
+
    who:this.ship,
:ent:true,
+
    ent:true,
:pID:this.ship.entityPersonality,
+
    pID:this.ship.entityPersonality,
:callback:"commCall",
+
    callback:"commCall",
:react:[{display:"Hail"},{display:"Back"}]
+
    react:[{display:"Hail"},{display:"Back"}]
};<br>
+
  };
worldScripts.Cabal_Common_Comms.addToComm(this.myComm);}}
+
  worldScripts.Cabal_Common_Comms.addToComm(this.myComm);
  
 
Examle for a worldScript:
 
Examle for a worldScript:
{{CodeEx|codeex=this.myComm = {
+
  this.myComm = {
:display:"Snoopers",
+
    display:"Snoopers",
:who:this.name,
+
    who:this.name,
:pID:"Snoopers",
+
    pID:"Snoopers",
:callback:"commCall",
+
    callback:"commCall",
:react:[{display:"Snoopers status"},{display:"Back"}]
+
    react:[{display:"Snoopers status"},{display:"Back"}]
};<br>
+
  };
worldScripts.Cabal_Common_Comms.addToComm(this.myComm);}}
+
  worldScripts.Cabal_Common_Comms.addToComm(this.myComm);
  
  
 
=== removeFromComm() ===
 
=== removeFromComm() ===
{{CodeEx|codeex=removeFromComm = function( obj )}}
+
{{CodeEx|codeex=removeFromComm: function( obj )}}
 
{{CodeExTime|native=0.000038|extension=0.000010|js=0.000114}}
 
{{CodeExTime|native=0.000038|extension=0.000010|js=0.000114}}
 
Removes object from the list.
 
Removes object from the list.
  
{{CodeEx|codeex=worldScripts.Cabal_Common_Comms.removeFromComm(this.myComm);}}
+
'''Parameters:'''
 +
:;obj:Object. To be removed.
 +
 
 +
'''Returns:'''
 +
:;bool: Boolean. True on success.
 +
 
 +
  worldScripts.Cabal_Common_Comms.removeFromComm(this.myComm);
  
  
 
=== changeChoicesComm() ===
 
=== changeChoicesComm() ===
{{CodeEx|codeex=changeChoicesComm = function( pID, newSet)}}
+
{{CodeEx|codeex=changeChoicesComm: function( pID, newSet )}}
 
{{CodeExTime|native=0.000154|extension=0.000068|js=0.000124}}
 
{{CodeExTime|native=0.000154|extension=0.000068|js=0.000124}}
 
Changes the stored actions for a specific entry.
 
Changes the stored actions for a specific entry.
 +
 +
'''Parameters:'''
 +
:;pID:Number/String. Must be entityPersonality for entities and this.name for worldScripts.
 +
:;newSet:Array. Set of new actions.
 +
 +
'''Returns:'''
 +
:;bool: Boolean. True on success.
  
 
Example for a ship:
 
Example for a ship:
{{CodeEx|codeex=var newSet = [{display:"Hail"},{display:"Back"}];
+
  var newSet = [{display:"Hail"},{display:"Back"}];
worldScripts.Cabal_Common_Comms.changeChoicesComm(this.ship.entityPersonality,newSet);<br>
+
  worldScripts.Cabal_Common_Comms.changeChoicesComm(this.ship.entityPersonality,newSet);
this.myComm.react = newSet;}}
+
  this.myComm.react = newSet;
  
 +
== Links ==
 +
*[https://bb.oolite.space/viewtopic.php?p=173966#p173966 CCL offers comms channels, but as far as I know only the Vector uses it (and the MaterialsFinder).] (Svengali, 2012 - and see next few posts).
  
[[Category:OXPDoc]]
+
[[Category:OXP API's]]

Latest revision as of 18:03, 10 April 2024

Overview

This is the main class for the secure comms channels with its members and part of the Cabal_Common_Library.

The script is mainly used to store and handle incoming data from shipscripts and worldScripts for a secure communication channel. Entities can place, change or remove their data fairly simple and a few parameters are handled. The equipment itself is not visible to the player and added automagically by adding a entry. Additionally entities can use script_info keys to give the player the option to open a channel. Entries are valid until the player leaves the system or in case of entities is out of scanner range based on a timer with 25 sec intervals. The range check can by bypassed.

The script checks the following shipdata.plist script_info key when the player receives a comms message from that entity.

script_info:

ccl_secureChannel
String. Property in the ship-script that holds the comm object.
ccl_secureChannelPrep
String. Function in the ship-script that initiates the object.

The scripts should keep a valid object to use removeFromComm() or changeChoicesComm().

Everything else is performed within the EQ-script.

Functions

addToComm()

addToComm: function( obj )
Profiler
Native 0.000158s
Extension 0.000068s
JS 0.000124s

Adds incoming object to the list. Make sure that the object is extensible and not sealed or frozen.

Parameters:

obj
Object.

Returns:

bool
Boolean. True on success.

If the player selects a action, the script will pass the index of the action in the set. Therefor it is necessary to provide some infos when adding a entry.

Properties:

display
String. Used for onscreen display.
who
Entity/String. The entity or worldScript.
ent
Boolean. Must be true for entities, blank for worldScripts.
pID
Number/String. Must be entityPersonality for entities and this.name for worldScripts.
callback
String. The function that handles the actions.
noDist
Boolean. Optional. If true keep entity entry if out of scanner range.
react
Array. Holds the names of the actions.

Example for a ship:

 this.myComm = {
   display:"My channel",
   who:this.ship,
   ent:true,
   pID:this.ship.entityPersonality,
   callback:"commCall",
   react:[{display:"Hail"},{display:"Back"}]
 };
 worldScripts.Cabal_Common_Comms.addToComm(this.myComm);

Examle for a worldScript:

 this.myComm = {
   display:"Snoopers",
   who:this.name,
   pID:"Snoopers",
   callback:"commCall",
   react:[{display:"Snoopers status"},{display:"Back"}]
 };
 worldScripts.Cabal_Common_Comms.addToComm(this.myComm);


removeFromComm()

removeFromComm: function( obj )
Profiler
Native 0.000038s
Extension 0.000010s
JS 0.000114s

Removes object from the list.

Parameters:

obj
Object. To be removed.

Returns:

bool
Boolean. True on success.
 worldScripts.Cabal_Common_Comms.removeFromComm(this.myComm);


changeChoicesComm()

changeChoicesComm: function( pID, newSet )
Profiler
Native 0.000154s
Extension 0.000068s
JS 0.000124s

Changes the stored actions for a specific entry.

Parameters:

pID
Number/String. Must be entityPersonality for entities and this.name for worldScripts.
newSet
Array. Set of new actions.

Returns:

bool
Boolean. True on success.

Example for a ship:

 var newSet = [{display:"Hail"},{display:"Back"}];
 worldScripts.Cabal_Common_Comms.changeChoicesComm(this.ship.entityPersonality,newSet);
 this.myComm.react = newSet;

Links