Difference between revisions of "Cabal Common Library Doc Comms"
Cholmondely (talk | contribs) m (Retagged!) |
Cholmondely (talk | contribs) (Added Links) |
||
Line 90: | Line 90: | ||
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:OXP API's]] | [[Category:OXP API's]] |
Latest revision as of 18:03, 10 April 2024
Contents
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
- 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).