Difference between revisions of "Cabal Common Library Doc Comms"
m (Doc for Cabal_Common_Library_Comms) |
Cholmondely (talk | contribs) (Added Links) |
||
(9 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. | + | 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:''' | '''script_info:''' | ||
− | :;ccl_secureChannel:String. Property in the script that holds the comm object. | + | :;ccl_secureChannel:String. Property in the ship-script that holds the comm object. |
− | :;ccl_secureChannelPrep:String. Function in the 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 | + | {{CodeEx|codeex=addToComm: function( obj )}} |
− | Adds incoming object to the list. | + | {{CodeExTime|native=0.000158|extension=0.000068|js=0.000124}} |
+ | 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 32: | Line 38: | ||
Example for a ship: | Example for a ship: | ||
− | + | 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"}] |
− | }; | + | }; |
− | worldScripts.Cabal_Common_Comms.addToComm(this.myComm); | + | worldScripts.Cabal_Common_Comms.addToComm(this.myComm); |
Examle for a worldScript: | Examle for a worldScript: | ||
− | + | 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"}] |
− | }; | + | }; |
− | worldScripts.Cabal_Common_Comms.addToComm(this.myComm); | + | worldScripts.Cabal_Common_Comms.addToComm(this.myComm); |
=== removeFromComm() === | === removeFromComm() === | ||
− | {{CodeEx|codeex=removeFromComm | + | {{CodeEx|codeex=removeFromComm: function( obj )}} |
+ | {{CodeExTime|native=0.000038|extension=0.000010|js=0.000114}} | ||
Removes object from the list. | 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() === | ||
− | {{CodeEx|codeex=changeChoicesComm | + | {{CodeEx|codeex=changeChoicesComm: function( pID, newSet )}} |
+ | {{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: | ||
− | + | var newSet = [{display:"Hail"},{display:"Back"}]; | |
− | worldScripts.Cabal_Common_Comms.changeChoicesComm(this.ship.entityPersonality,newSet); | + | 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: | + | [[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).