BIS fnc initIntelObject: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\{\{( *)Informative( *)\|" to "{{$1Feature$2|$2Informative$2|")
m (Text replacement - "\|gr([0-9]+) = " to "|gr$1= ")
Line 5: Line 5:
|1.00
|1.00


|gr1 = Interaction
|gr1= Interaction


| This function sets up an object as intel retrievable by the players by adding a "Take Intel" [[addAction]] to it.<br>
| This function sets up an object as intel retrievable by the players by adding a "Take Intel" [[addAction]] to it.<br>

Revision as of 12:36, 11 April 2021

Hover & click on the images for description

Description

Description:
Description needed
Execution:
call
Groups:
Interaction

Syntax

Syntax:
Syntax needed
Parameters:
object: Object - Object to place intel action on
Return Value:
Return value needed

Examples

Example 1:
Setup an object as intel from its init attribute in the editor.
Basic version including picture, title, description, recipients and sides that can interact with it:
[this] call BIS_fnc_initIntelObject; if (isServer) then { // Diary picture: this setVariable [ "RscAttributeDiaryRecord_texture", "a3\structures_f_epc\Items\Documents\Data\document_secret_01_co.paa", // Path to picture true ]; // Diary Title and Description: [ this, "RscAttributeDiaryRecord", ["New Intel", "The enemies have a cave troll!"] // Array in format [Title, Description] ] call BIS_fnc_setServerVariable; // Diary entry shared with (follows BIS_fnc_MP target rules): this setVariable ["recipients", west, true]; // Sides that can interact with the intel object: this setVariable ["RscAttributeOwners", [west], true]; };
Example 2:
To set up an object as intel from its init attribute in the editor with a custom addAction title, replace the first line of Example 1 with the following: if (hasInterface) then { this addAction [ // Custom addAction Title: "Pick up laptop", {[_this, "action"] spawn BIS_fnc_initIntelObject;}, [], 10, true, true, "", "isPlayer _this && {_this distance _target < 2} && {(side group _this) in (_target getVariable ['RscAttributeOwners', [west, east, resistance, civilian]])}" ]; };
Example 3:
Set up an object as intel from its init attribute in the editor.
Basic version plus curator and scripted event handlers: [this] call BIS_fnc_initIntelObject; if (isServer) then { // Diary picture: this setVariable [ "RscAttributeDiaryRecord_texture", "a3\structures_f_epc\Items\Documents\Data\document_secret_01_co.paa", // Path to picture true ]; // Diary Title and Description: [ this, "RscAttributeDiaryRecord", ["New Intel", "The enemies have a cave troll!"] // Array in format [Title, Description] ] call BIS_fnc_setServerVariable; // Diary entry shared with (follows BIS_fnc_MP target rules): this setVariable ["recipients", west, true]; // Sides that can interact with the intel object: this setVariable ["RscAttributeOwners", [west], true]; // Register intel object with Zeus as curator editable (_zeus is the curator module): _zeus addCuratorEditableObjects [[this], false]; // Add Zeus scripted event: [_zeus, "IntelObjectFound", {hint "Intel found"}] call BIS_fnc_addScriptedEventHandler; // Add a scripted event that notifies all clients via systemChat when the intel is found: [ this, "IntelObjectFound", { params ["", "_foundBy"]; private _msg = format ["Intel found by %1", name _foundBy]; _msg remoteExec ["systemChat", 0]; } ] call BIS_fnc_addScriptedEventHandler; }; Although both scripted event handlers supply a reference to the intel object, it is deleted from the mission almost immediately, so it could already be null when queried.

Additional Information

See also:
See also needed

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note