Jump to content
XMDM

Interactive Intel Items

Recommended Posts

Noticed some items with the editor under INTEL. You can pick them up and it takes you to the map with a pop-up window that says INTEL ADDED. Anybody know how to manipulate this intel to say whatever you want and how to possibly do this with more than 3 objects?

Share this post


Link to post
Share on other sites

+1 ... I can't find info on these items anywhere and would love to use them in a mission.

Das

Share this post


Link to post
Share on other sites

I guess I'll have to tweak with the inits of them and see what we can do

Share this post


Link to post
Share on other sites

I have found the config in Arma 3\Curator\Addons\data_f_curator\Intel and in there it states the eventhandler for the object

init="_this call bis_fnc_initIntelObject"

Now this works in Zeus mode as you get the UI to enter details about what you want to show up in the Diary entry when the object is taken.

initIntelObject.sqf (can be found in - Arma 3\Curator\Addons\functions_f_curator\Objects) doesn't really explain anything to any use on how the object is set up.

/*
   Author: Karel Moricky
   Description:    Init intel object.

   It will add "Take" action on it.
   When a player activates it, he and all players on his side will receive a diary item defined by curator.

   Parameter(s):    NONE

   Returns:    BOOL
*/

Share this post


Link to post
Share on other sites

Zeus put a intel item on a ground. (a map or something else) If he do this he define the "intel" if some player found and grab the intel.

That means you got a new diary record. Whats the content of that intel is your choise and your fantasy. Its not magic. :)

Share this post


Link to post
Share on other sites

These items have been added as placeable objects in the editor, but the intel up does not show in the diary when used like that - the diary adds a blank entry with a date/time stamp.

I think that is what the XMDM is after.

Edited by KevsnoTrev

Share this post


Link to post
Share on other sites


I have a little of it working.

this = intel object

not sure about "" at the end is a mystery it says texture in the function but I think it has to do with image
if (_texture != "") then {_text = _text + format ["<br /><img image='%1' height='200px' />",_texture];};
Maybe it includes a picture with that name in the text.

place in objects init.
data = [this,"RscAttributeDiaryRecord",["Title goes here","Text goes here",""]] call bis_fnc_setServerVariable; 

this seems to include a picture

this setvariable ["RscAttributeDiaryRecord_texture","Danger_Exp.jpg"];

Edited by F2k Sel
  • Like 2

Share this post


Link to post
Share on other sites

In the zeus interface you can add a picture to the intel object, whether on the object itself or in the diary info that is added.

I guess that's the texture. Its a list of paa files that are listed in Arma 3\Curator\Addons\ui_f_curator\config.bin from line 536

of course a custom picture should also be possible.

Share this post


Link to post
Share on other sites

You guys are awesome...I'll have to mess with it some more.

Sent from my HTC6435LVW using Tapatalk

Share this post


Link to post
Share on other sites

So I used this in a multiplayer mission to make Intel items give an intel entry, using F2k sel's code. The Intel object functions correctly, however, only the player who picks up the item gets the entry, and the mission relies on the entire team getting the entry in their briefing screens (since the mission doesn't use tasks, but rather Intel to guide the team on what to do). It wouldn't be so bad, but if the guy that picked up the Intel gets gunned down immediately after picking it up, the Intel is basically lost and the rest of the team will have no idea he found it or what it said. Any idea on how I'd fix that so the entire team gets an entry for the intel?

I was thinking it would involve that createDiaryRecord code, maybe syncing it to the intel object, but not exactly sure how to implement that. I'm very new to editing missions in the Arma series, forums have helped a ton so far, but this is the last thing I need to fix to make this particular mission perfect.

Share this post


Link to post
Share on other sites

Try this code in the init.sqf

// Triggers
if (!isDedicated) then {

// Your Task
[] spawn { 
	 waitUntil {"Classname_of_the_inventory_item" in (items player)}; 

                enter your code here what you want to do 
};

};

The classname above must be part of a CfgWeapon, not CfgVehicle! I got it working this way in SP and MP missions.

Share this post


Link to post
Share on other sites
Any idea on how I'd fix that so the entire team gets an entry for the intel?
The object needs the variable "recipients" defined on it, the script uses this in a BIS_fnc_MP call to determine who to share the intel with.

UNTESTED something like....

objects init

if (isServer) then {
this setVariable ["RscAttributeDiaryRecord_texture","a3\structures_f_epc\Items\Documents\Data\document_secret_01_co.paa", true];
[this,"RscAttributeDiaryRecord",["Top Secret Docs","These Docs outline the enemies defenses",""]] call bis_fnc_setServerVariable;
this setVariable ["recipients", west, true];
[this,"init"] spawn bis_fnc_initIntelObject;
};

The above should share the info with all WEST players..

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Any one of you guys know if there is a way to pick up a "intel" item and have it give a task to the whole group? for multiplayer....

Share this post


Link to post
Share on other sites

Thanks Larrow, I'll give that a try tomorrow. I'm a noob to Arma coding, but that looks like it'd work out from what I've gathered of it so far. I'll post an update as to its success when I have some results.

Share this post


Link to post
Share on other sites
Legislator;2710265']Try this code in the init.sqf

// Triggers
if (!isDedicated) then {

// Your Task
[] spawn { 
	 waitUntil {"Classname_of_the_inventory_item" in (items player)}; 

                enter your code here what you want to do 
};

};

The classname above must be part of a CfgWeapon' date=' not CfgVehicle! I got it working this way in SP and MP missions.[/quote']

Great, thanks for sharing.

Share this post


Link to post
Share on other sites
Any one of you guys know if there is a way to pick up a "intel" item and have it give a task to the whole group? for multiplayer....

You could bury a execute command into the intel text like...

if (isServer) then {
   this setVariable ["RscAttributeDiaryRecord_texture","a3\structures_f_epc\Items\Documents\Data\document_secret_01_co.paa", true];
   [this,"RscAttributeDiaryRecord",["Top Secret Docs","<br /><execute expression=""[(group player), 'my intel task', ['an intel task', 'secret docs', ''], [0,0,0], 'ASSIGNED', 0] call BIS_fnc_taskCreate"">These Docs outline the enemies defenses</execute><br />",""]] call bis_fnc_setServerVariable;
   this setVariable ["recipients", west, true];
   [this,"init"] spawn bis_fnc_initIntelObject;
}; 

When some one clicks on the "These Docs outline the enemies defenses" inside of the intel his whole group will receive the task "secret docs".

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks Larrow, that worked out fine, the whole team gets the Intel now. I wasn't told if it popped up a "New Intel" hint thing in the top-center of the screen by the guy I tested it with like it does for the person picking it up, but he wasn't aware he had gotten it until I told him where to look for it. Would I just need to add a hint command to the script for it to make that happen for everyone?

One weird thing I noticed though, when facing the Intel and opening up the Action Menu, there are two entries for "Take Intel"... any idea why? They both disappear once you pick it up, it's just a bit strange.

Share this post


Link to post
Share on other sites
One weird thing I noticed though, when facing the Intel and opening up the Action Menu, there are two entries for "Take Intel"... any idea why?
If you are placing an Intel item from the editor InsertUnit->Empty->Intel-># then these items already have an init event on them in the config init = "_this call bis_fnc_initIntelObject;"; so there is no need to call the function from their init box as well [this,"init"] spawn bis_fnc_initIntelObject; (doing so is placing the second action) all you need to do here is set the variables (just omit this last line from my previous code).
I wasn't told if it popped up a "New Intel" hint thing in the top-center of the screen by the guy I tested it with like it does for the person picking it up, but he wasn't aware he had gotten it until I told him where to look for it. Would I just need to add a hint command to the script for it to make that happen for everyone?

The "hint thing" is called a notification. A quick browse of the BIS Intel function looks like it should show for everyone as the information is being pulled from the server and if they are getting the Intel diary record then the notification should work as well ? Would need more testing in an MP environment to see whats actually happening as all I've done is to browse BIS_fnc_initIntelItem to see what information its looking for to create the diary record.
  • Thanks 1

Share this post


Link to post
Share on other sites

He probably just wasn't paying enough attention. I'll test it again after I fix the other thing with someone else and have them watch out for it. Thanks again for all your help, that should be all I need to get this in full working order.

Share this post


Link to post
Share on other sites

if (isServer) then {
   this setVariable ["RscAttributeDiaryRecord_texture","a3\structures_f_epc\Items\Documents\Data\document_secret_01_co.paa", true];
   [this,"RscAttributeDiaryRecord",["Top Secret Docs","<br /><execute expression= ""[(group player), 'my intel task', ['an intel task', 'secret docs', ''], [0,0,0], 'ASSIGNED', 0] call BIS_fnc_taskCreate"" >These Docs outline the enemies defenses</execute><br />",""]] call bis_fnc_setServerVariable;
   this setVariable ["recipients", west, true];
};

In the above, would anyone know exactly what I would replace to add the task using the taskmaster2 method?

["Newtask1","Task1Title","Task1Desc",true,["mrkTask1",getpos car]] call SHK_Taskmaster_Add

Edited by Tay-uk

Share this post


Link to post
Share on other sites

I've been having a look at the intel objects and stumbled across this helpful post. Using Larrow's code for starters works nicely. Im trying to embed a value from a variable into the text in the intel entry, but I cant get the syntax correct. I can print the variable value using a "hint format" just fine, but Im struggling to get the code below correct so that it appears in the intel entry instead. Can anyone assist? Im not even sure if what im trying to do is possible.

if (isServer) then {
   this setVariable ["RscAttributeDiaryRecord_texture","a3\structures_f_epc\Items\Documents\Data\document_secret_01_co.paa", true];
   [this,"RscAttributeDiaryRecord",["Bomb Schematics","To defuse the bomb, cut the [b][format ["%1", disarm;]][/b] wire ",""]] call bis_fnc_setServerVariable;
   this setVariable ["recipients", west, true];
   [this,"init"] spawn bis_fnc_initIntelObject;
};  

Share this post


Link to post
Share on other sites

EDIT: Read too quickly:

format ["To disarm, cut %1 wire",disarm]

Edited by JShock

Share this post


Link to post
Share on other sites

Thanks JShock.......so like this?

if (isServer) then {this setVariable ["RscAttributeDiaryRecord_texture","a3\structures_f_epc\Items\Documents\Data\document_secret_01_co.paa", true];      
[this,"RscAttributeDiaryRecord",["Bomb Schematics","format ["To disarm the bomb, cut the %1 wire",disarm]",""]] call bis_fnc_setServerVariable; this setVariable ["recipients", west, true];
[this,"init"] spawn bis_fnc_initIntelObject;  };

I'll keep trying, still no joy.

Share this post


Link to post
Share on other sites

Format creates strings, so there is no need to put quotes around it...

[this,"RscAttributeDiaryRecord",["Bomb Schematics",format ["To disarm the bomb, cut the %1 wire",disarm]]] call bis_fnc_setServerVariable;

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×