BIS fnc initIntelObject: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " {{Function|Comments=" to "{{Function|Comments=")
m (Text replacement - "<br/>" to "<br>")
Line 7: Line 7:
____________________________________________________________________________________________
____________________________________________________________________________________________


| The function sets up an object as intel retrievable by the players by adding a "Take Intel" [[addAction]] to it.<br/>
| The function sets up an object as intel retrievable by the players by adding a "Take Intel" [[addAction]] to it.<br>
When a player uses the action, they will play an animation to pick the object up and the object will be deleted from the mission.<br/>
When a player uses the action, they will play an animation to pick the object up and the object will be deleted from the mission.<br>
The player and any defined recipients will then receive a diary entry which can contain a ''title'', ''description'' and ''picture''.<br/>
The player and any defined recipients will then receive a diary entry which can contain a ''title'', ''description'' and ''picture''.<br>
The diary entry will also contain a marker shortcut showing where the intel was found.<br/><br/>
The diary entry will also contain a marker shortcut showing where the intel was found.<br><br>
This function is similar to when placing an Intel object as Zeus, whose interface provides settings for some of the extra options like..<br/>
This function is similar to when placing an Intel object as Zeus, whose interface provides settings for some of the extra options like..<br>
*Which sides can interact with the action
*Which sides can interact with the action
*The picture, title and description used in the diary entry
*The picture, title and description used in the diary entry
<br/>
<br>
However when using this function from script there are several variables that need to be set up to acquire the same results and can be seen in the examples below.<br/>
However when using this function from script there are several variables that need to be set up to acquire the same results and can be seen in the examples below.<br>
Without this extra setup the functionality provided is minimal and only includes..
Without this extra setup the functionality provided is minimal and only includes..
*The "Take Intel" action on the object
*The "Take Intel" action on the object
Line 21: Line 21:
*When picked up will have no title or description and the picture will be a default exclamation mark
*When picked up will have no title or description and the picture will be a default exclamation mark
*Diary entry will only be given to the person who picked it up
*Diary entry will only be given to the person who picked it up
<br/>
<br>
There are some optional features of intel objects that can be used..
There are some optional features of intel objects that can be used..
*The diary entries ''description'' can be further enhanced by using any of the supported tags as found on the [[createDiaryRecord]] page.
*The diary entries ''description'' can be further enhanced by using any of the supported tags as found on the [[createDiaryRecord]] page.
*There is also a [[BIS_fnc_addScriptedEventHandler|scripted eventhandler]] that can be registered too called ''"IntelObjectFound"'' on the '''intel object'''. The event provides the parameters [ object, caller ] where ''object'' is the intel object and ''caller'' the person who picked it up.
*There is also a [[BIS_fnc_addScriptedEventHandler|scripted eventhandler]] that can be registered too called ''"IntelObjectFound"'' on the '''intel object'''. The event provides the parameters [ object, caller ] where ''object'' is the intel object and ''caller'' the person who picked it up.
*A Zeus who has the intel object registered as an curator editable object can also receive feedback that the intel has been picked up via registering too the [[BIS_fnc_addScriptedEventHandler|scripted eventhandler]] called ''"intelObjectFound"'' on the '''curator module'''. The event provides the parameters [ zeus, caller, object ] where ''zeus'' is the curator module, ''caller'' the person who picked it up and ''object'' is the intel object
*A Zeus who has the intel object registered as an curator editable object can also receive feedback that the intel has been picked up via registering too the [[BIS_fnc_addScriptedEventHandler|scripted eventhandler]] called ''"intelObjectFound"'' on the '''curator module'''. The event provides the parameters [ zeus, caller, object ] where ''zeus'' is the curator module, ''caller'' the person who picked it up and ''object'' is the intel object
The usage of scripted eventhandlers is shown in '''Example 3'''<br/>
The usage of scripted eventhandlers is shown in '''Example 3'''<br>
<!---{{Informative|All the code examples provide comments ( // ) to describe each setting, please make sure you remove each commented line when copying to object inits otherwise you will receive errors}}---> |DESCRIPTION=
<!---{{Informative|All the code examples provide comments ( // ) to describe each setting, please make sure you remove each commented line when copying to object inits otherwise you will receive errors}}---> |DESCRIPTION=
____________________________________________________________________________________________
____________________________________________________________________________________________
Line 37: Line 37:
____________________________________________________________________________________________
____________________________________________________________________________________________
{{Informative|}}
{{Informative|}}
|x1= Setup an object as intel from its init attribute in the editor.<br/>
|x1= Setup an object as intel from its init attribute in the editor.<br>
Basic version including ''picture'', ''title'', ''description'', ''recipients'' and ''which sides can interact with it''.<br/>
Basic version including ''picture'', ''title'', ''description'', ''recipients'' and ''which sides can interact with it''.<br>
<code>[ this ] call BIS_fnc_initIntelObject;
<code>[ this ] call BIS_fnc_initIntelObject;


Line 66: Line 66:


};</code> |=
};</code> |=
<br/>
<br>
|x2= Setup an object as intel from its init attribute in the editor with custom [[addAction]] title<br/>Replace the first line of '''Example 1''' with..<code>if ( hasInterface ) then {
|x2= Setup an object as intel from its init attribute in the editor with custom [[addAction]] title<br>Replace the first line of '''Example 1''' with..<code>if ( hasInterface ) then {
this addAction [
this addAction [
[[comment]] "Custom addAction Title";
[[comment]] "Custom addAction Title";
Line 81: Line 81:
];
];
};</code> |Example2=
};</code> |Example2=
|x3= Setup an object as intel from its init attribute in the editor.<br/>
|x3= Setup an object as intel from its init attribute in the editor.<br>
Basic version plus curator and object scripted eventhandlers.<br/>
Basic version plus curator and object scripted eventhandlers.<br>
<code>[ this ] call BIS_fnc_initIntelObject;
<code>[ this ] call BIS_fnc_initIntelObject;



Revision as of 13:34, 14 March 2020

Hover & click on the images for description

Description

Description:
The function sets up an object as intel retrievable by the players by adding a "Take Intel" addAction to it.
When a player uses the action, they will play an animation to pick the object up and the object will be deleted from the mission.
The player and any defined recipients will then receive a diary entry which can contain a title, description and picture.
The diary entry will also contain a marker shortcut showing where the intel was found.

This function is similar to when placing an Intel object as Zeus, whose interface provides settings for some of the extra options like..
  • Which sides can interact with the action
  • The picture, title and description used in the diary entry

However when using this function from script there are several variables that need to be set up to acquire the same results and can be seen in the examples below.
Without this extra setup the functionality provided is minimal and only includes..
  • The "Take Intel" action on the object
  • The object can be picked up by a player from any side
  • When picked up will have no title or description and the picture will be a default exclamation mark
  • Diary entry will only be given to the person who picked it up

There are some optional features of intel objects that can be used..
  • The diary entries description can be further enhanced by using any of the supported tags as found on the createDiaryRecord page.
  • There is also a scripted eventhandler that can be registered too called "IntelObjectFound" on the intel object. The event provides the parameters [ object, caller ] where object is the intel object and caller the person who picked it up.
  • A Zeus who has the intel object registered as an curator editable object can also receive feedback that the intel has been picked up via registering too the scripted eventhandler called "intelObjectFound" on the curator module. The event provides the parameters [ zeus, caller, object ] where zeus is the curator module, caller the person who picked it up and object is the intel object
The usage of scripted eventhandlers is shown in Example 3
Execution:
call
Groups:
Uncategorised

Syntax

Syntax:
[ object ] call BIS_fnc_initIntelObject;
Parameters:
object: Object - Object to place intel action on
Return Value:
true

Examples

Example 1:
Setup an object as intel from its init attribute in the editor.
Basic version including picture, title, description, recipients and which sides can interact with it.
[ this ] call BIS_fnc_initIntelObject; if (isServer) then { comment "Diary picture"; this setVariable [ "RscAttributeDiaryRecord_texture", comment "Path to picture"; "a3\structures_f_epc\Items\Documents\Data\document_secret_01_co.paa", true ]; comment "Diary Title and Description"; [ this, "RscAttributeDiaryRecord", comment "[ Title, Description]"; ["Top Secret Docs","These Docs outline the enemies defenses"] ] call BIS_fnc_setServerVariable; comment "Diary entry shared with.. follows BIS_fnc_MP target rules"; this setVariable ["recipients", west, true]; comment "Sides that can interact with intelObject"; this setVariable ["RscAttributeOwners", [west], true]; };
Example 2:
Setup an object as intel from its init attribute in the editor with custom addAction title
Replace the first line of Example 1 with..if ( hasInterface ) then { this addAction [ comment "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:
Setup an object as intel from its init attribute in the editor.
Basic version plus curator and object scripted eventhandlers.
[ this ] call BIS_fnc_initIntelObject; if (isServer) then { comment "Diary picture"; this setVariable [ "RscAttributeDiaryRecord_texture", comment "Path to picture"; "a3\structures_f_epc\Items\Documents\Data\document_secret_01_co.paa", true ]; comment "Diary Title and Description"; [ this, "RscAttributeDiaryRecord", comment "[ Title, Description]"; ["Top Secret Docs","These Docs outline the enemies defenses"] ] call BIS_fnc_setServerVariable; comment "Diary entry shared with.. follows BIS_fnc_MP target rules"; this setVariable ["recipients", west, true]; comment "Sides that can interact with intelObject"; this setVariable ["RscAttributeOwners", [west], true]; comment "Optional scripted event handlers"; comment "Register intel object with Zeus as curator editable, Where _zeus is the curator module"; _zeus addCuratorEditableObjects [ [ this ], false ]; comment "Add Zeus scripted event, Where _zeus is the curator module"; [ _zeus, "IntelObjectFound", { hint "Intel found" } ] call BIS_fnc_addScriptedEventHandler; comment "Add intel object scripted event that systemchats to all clients when found and by who"; [ this, "IntelObjectFound", { params[ "", "_foundBy" ]; private _msg = format[ "Intel Found by %1", name _foundBy ]; _msg remoteExec[ "systemChat" ]; } ] call BIS_fnc_addScriptedEventHandler; }; Although both scripted eventhandlers supply a reference to the intel object it is deleted from the mission almost immediately so could possibly 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

Notes

Bottom Section