Interrogate Units

A friend of mine wanted to use this in his mission, so I rewrote my approach with some inspiration from F2k Sel’s approach.

The direction from my friend was “I want every civilian to be interrogate able but only one to be arrestable.”

So in every civilian’s init I put this. It limits it to 3m range “approx face to face”. Outside that range you don’t see the option. Also once interrogated that civilian is not questionable again.

this addAction ["Interrogate","civ_i.sqf",[false],1,false,true,"","(_target distance _this) < 3"];

The orange false there controls if they are innocent or guilty. Change that to true if it’s the one you want arrested.

Here’s the rewritten scripts:


// grab a value for the suspect and check for guilt flag
_suspect = _this select 0;
_bomber = (_this select 3) select 0;

// Remove all actions from the suspect
_action = _suspect addAction["foo", "foo.sqf"];
while {_action >= 0} do	{
	_suspect removeAction _action;
	_action = _action - 1;

// Quick animation, I really need to find a better Action for this, talking or something.
_suspect playAction "gestureNod";
sleep 3;

// If he's NOT the bomber, just quit.
if (!_bomber) exitwith {hint "You realize this guy is of no use to you."};

// He is the bomber, so lets get all up in ur bidness!
// This animation is a little long, but definitely looks like someone over explaining something.
_suspect playAction "SceneCommanderTalk";
sleep 5;

// Add an action to the suspect to arrest him
hint "This guy is obviously up to something...  Arrest him!";
_suspect addAction ["Arrest","civ_a.sqf"];


// Grab a value for the suspect
_suspect = _this select 0;

// Remove all actions from the suspect
_action = _suspect addAction["foo", "foo.sqf"];
while {_action >= 0} do	{
	_suspect removeAction _action;
	_action = _action - 1;

// Stop the current animation and surrender
_suspect switchmove "";
_suspect playActionNow "Surrender";
sleep 3;

// Alert the soldier
hint "You send the suspect to holdover.";

// "Teleport" the suspect to holdover, a GameLogic location pre-placed.
_suspect setPos getPos logic1;

As an aside, another feature we have is the ability for Engineers to disarm C4 IEDs.

Explosive Charge’s init. Limited to only Engineer class players.

this addAction ["Disarm C4","disarmC4.sqf",[this],1,false,true,"","typeOf _this == ""USMC_SoldierS_Engineer"""];


// Who's who...
_bomb = _this select 0;
_eod = _this select 1;

// "disarming" animation
_eod playMove "AinvPknlMstpSlayWrflDnon_medic";
sleep 3.0;
WaitUntil {animationState _eod != "AmovPercMstpSnonWnonDnon_talking"};

deletevehicle _bomb;
_eod commandChat "C4 disarmed!";  // local unless broadcast, wish there was directChat


  1. #1 by K9 on August 18, 2010 - 5:56 PM

    Can you make a little demo mission?

  2. #2 by app0815 on October 5, 2010 - 6:19 PM

    is it possible to include a local interpreter into the questioning? so that the local Terp repeats the question in his language and then repeats the answer the interrogated gave in a foreign language in english?

  3. #3 by SINcere on November 1, 2010 - 11:54 PM

    the interpreter idea is pretty cool, especially if you could have him be a part of your group and follows you around to your different tasks (if they are to interrogate and arrest certain units). Nice idea!

Comments are closed.