Jump to content
Sign in to follow this  
Reezo

SR5 Tactical IED Detection and Remote Det Script

Recommended Posts

Oh man what a story!! Listen to this.

I integrated your loudspeaker scripts with the IED scripts and drove the hmmvv into the crowd. The vehicle IED detector goes off and I back away a little. I then get out of the hmmvv and am on foot. The detector kicks in again and I decide to get the civilans away from danger, so I trigger the loudspeaker. Most civvies start to move and I'm scanning for a triggerman. I open the map and see the possible IED position MOVING !! Has to be a suicide bomber, so I track the civvy and hit him in the leg to down him.

Anyway I'm running ASRs AI rearming scripts and DAPs First Aid module. I get a detach IED addaction and of course remove the IED. HOWEVER, another AI runs up to me, GRABS THE IED, shouts Allah Akbar and blows the crap outta me (as I was healing the first suicide bomber!)

HOW COOL IS THAT !

This is by far then most amazing story this script has generated to date. Epic Armascripting win.

Share this post


Link to post
Share on other sites

I've been digging deeper mate. When inside a vehicle and the script triggers and shows me an IED (and remote detonation) when I get out the IED icon and remote det addaction disappear.

Likewise if I am on foot and get IED detection, IED position and remote det option, IF I get into a vehicle (with vehicle detection capabilities) the position and remote det disappear. Is it possible to 'push' the discovery from foot to inside a vehicle and vice versa ?

Am going to add random pressure sensitive IEDs into your test mission now .... MUHAHAHAHA

Share this post


Link to post
Share on other sites

Is the vehicle you are referring to a generic vehicle or a detector vehicle?

Detector units getting into detector vehicles is still bugged that is why I am asking.

Detector units into normal vehicles should work..lol at my majestic scripting skills, microwave and ready in 30 seconds lol

Share this post


Link to post
Share on other sites

HMMVV is a detector vehicle too. So there is a conflict.

Found out WHY I wasnt getting proximity scatter IEDs ... there are NO ROADS near the test mission ! Is there a way that IF the script detects there are no roads that it defaults to just random placement ?

Share this post


Link to post
Share on other sites

Yes, this is something I could do. No roads = random placement in areas.

I keep liking the fact that if enough road positions are available, those should be used. We are talking about bastards who want to make every unexploded thing they find count.

About detector units in detector vehicles, yes, bugzor is there. :)

PS: civilian traffic + proximity IED scattered on road positions = "what the heck was that?!" "stop the vehicle, stop the vehicle, somebody just got blown up!"

Edited by Reezo

Share this post


Link to post
Share on other sites

Kremator, try replacing the actual IEDdetect_proximity_scatter.sqf with this one:

//////////////////////////////////////////////////////////////////
// Function file for Armed Assault
// Created by: Reezo of SR5 Tactical - www.sr5tactical.net
// IED Detection and Disposal Scripts
//////////////////////////////////////////////////////////////////

// INIT
private ["_soldier","_ambientGROUP","_objects","_vehicles","_proximityIED","_minNumber","_chance","_interval","_bomb","_IEDtype","_beep","_scanArea","_fearArea","_detArea","_typeRate","_enemySide","_rnd","_fate","_actualPos","_y","_k","_ambientRadius","_IEDskins","_posX","_posY","_posZ","_randomPos"];

if !(isServer) exitWith{};

waitUntil {reezo_IEDdetect_initComplete};
if (count _this != 6) exitWith{ hint "IEDDETECT_AMBIENTPROXYIEDS error: wrong parameters!" };

_center = _this select 0;
_radius = _this select 1;
_quantity = _this select 2;
_chance = _this select 3;
_beep = _this select 4;
_typeRate = _this select 5;

_IEDskins = ["Land_IED_v1_PMC","Land_IED_v2_PMC","Land_IED_v3_PMC","Land_IED_v4_PMC"];

//CHECK HOW MANY ROADS ARE IN THE AREA
_nearRoads = []; 
_goodSpots = []; 
_nearRoads = (getMarkerPos _center) nearRoads _radius;

if (reezo_IEDdetect_debug) then { _soldier globalChat "DEBUG IEDDETECT SCATTER: SPOTS ACQUIRED" };

//FIND SUITABLE SPOTS IN THE GIVEN AREA
if (count _nearRoads > 0) then {
 for [{_y = 0},{_y < (count _nearRoads)},{_y = _y + 1}] do {
   _goodSpots = _goodSpots + [getPos (_nearRoads select _y)];
   if (reezo_IEDdetect_debug) then {
     _soldier globalChat "DEBUG IEDDETECT SCATTER: GOOD SPOT FOUND (ON ROAD)";
     hintSilent Format["GOOD SPOT:\n%1\n\nPOSITION:\n%2",(_nearRoads select _y),(getPos (_nearRoads select _y))];
     sleep 0.05;
   };
 };
} else {
 for [{_y = 0},{_y < _quantity},{_y = _y + 1}] do {
   _segno = random 1; if (_segno < 0.5) then { _posX = random _radius } else { _posX = -1 * (random _radius) };
   _segno = random 1; if (_segno < 0.5) then { _posY = random _radius } else { _posY = -1 * (random _radius) };
   _posX = _posX + ((getMarkerPos _center) select 0);
   _posY = _posY + ((getMarkerPos _center) select 1);
   _posZ = (getMarkerPos _center) select 2;
   _randomPos = [_posX,_posY,_posZ];
   _goodSpots = _goodSpots + [_randomPos];
   if (reezo_IEDdetect_debug) then {
     _soldier globalChat "DEBUG IEDDETECT SCATTER: GOOD SPOT FOUND (NOT ON ROAD)";
     hintSilent Format["GOOD SPOT:\n\nPOSITION:\n%1",_randomPos];
     sleep 0.05;
   };
 };
};

_n = 0;

// MAIN LOOP 
while { _n <= _quantity && count _goodSpots > 0} do {

 if (reezo_IEDdetect_debug) then { _soldier globalChat "DEBUG IEDDETECT SCATTER: START MAIN LOOP" };

 //RANDOMIZE BASED ON CHANCE
 _fate = random 100;
 if (_fate < _chance) then {

   //RANDOMIZE A GOOD POSITION, AN IED TYPE AND REMOVE THAT LOCATION FROM THE AVAILABLE SPOTS
   _IEDtype = _IEDskins select (floor (random (count _IEDskins)));
   _IEDpos = _goodSpots select (floor (random (count _goodSpots)));
   _goodSpots = _goodSpots - [_IEDpos];
   _n = _n + 1;

   //RANDOMIZE POSITION AROUND THE GOOD SPOT FOUND
   _rndX = 5.5 + random 1.5;
   _rndY = 5.5 + random 1.5;
   _segno = random 1; if (_segno < 0.5) then { _rndX = -1 * _rndX };
   _segno = random 1; if (_segno < 0.5) then { _rndY = -1 * _rndY };
   _IEDpos = [(_IEDpos select 0) + _rndX, (_IEDpos select 1) + _rndY, (_IEDpos select 2)];

   _proximityIED = createVehicle [_IEDtype, _IEDpos, [], 0, "NONE"];
   _proximityIED setDir (random 360);

   _rnd = random 100;
   if (_rnd < _typeRate) then {
     nul0 = [_proximityIED,_beep,0] execVM "scripts\IEDdetect\IEDdetect_proximity.sqf";
   } else {
     nul0 = [_proximityIED,_beep,1] execVM "scripts\IEDdetect\IEDdetect_proximity.sqf";
   };

   if (reezo_IEDdetect_debug) then {
     hintSilent Format["IEDTYPE:\n%1\n\nIEDPOS:\n%2",_IEDtype,_IEDpos];
     _soldier globalChat "DEBUG IEDDETECT SCATTER: PROXIMITY IED SPAWNED";
     _debugProxyName = Format["DEBUG_PROXY_MARKER_%1",_n];
     _debugMRK1 = createMarkerLocal[_debugProxyName,position _proximityIED];
     _debugMRK1 setMarkerShapeLocal "ICON";
     _debugMRK1 setMarkerTypeLocal "DOT";
     _debugMRK1 setMarkerTextLocal "DEBUG: Proximity IED Scatter";
     sleep 0.05;
   };
 }; //END IF
}; //END MAIN LOOP


// EXIT
if (reezo_IEDdetect_debug) then { _soldier globalChat "DEBUG IEDDETECT SCATTER: SCRIPT COMPLETE"; sleep 1; };
if (true) exitWith{};

and try it out where no roads are available..it should work but I coded it blindly ;) again..

---

Spectre, try replacing IEDdetect_detector_vehicle.sqf with the following:

//////////////////////////////////////////////////////////////////
// Function file for Armed Assault
// Created by: Reezo of SR5 Tactical - www.sr5tactical.net
// IED Detection and Disposal Scripts
//////////////////////////////////////////////////////////////////

// INIT
private ["_detector","_vehicle","_range","_interval","_skill","_fakeRatio","_title","_text"];
if (count _this != 5) exitWith {hint "REEZO_IEDDETECT_DETECTOR_VEHICLE: WRONG PARAMETERS, QUITTING.."};

_vehicle = _this select 0;

if (_detector isKindOf "Man") exitWith { hint "REEZO_IEDDETECT: DETECTOR IS NOT A VEHICLE, QUITTING.."};

_range = _this select 1;
_interval = _this select 2;
_skill = _this select 3;
_fakeRatio = _this select 4;

waitUntil {!(isNull _vehicle)};
waitUntil {_vehicle == _vehicle};
waitUntil {reezo_IEDdetect_initComplete};

if (_range < 5) then { _range = 5 };
if (_interval < 5) then { _interval = 5 };

reezo_IEDdetect_EODvehicles = reezo_IEDdetect_EODvehicles + [_vehicle];
publicVariable "reezo_IEDdetect_EODvehicles";

while { true } do {
 while {isNull driver _vehicle} do { sleep (_interval * 2) };
 if (!(isNull driver _vehicle) && alive _vehicle) then {
   _detector = driver _vehicle;
   nul0 = [_detector,_range,_interval,_skill,_fakeRatio,_vehicle] execVM "scripts\IEDdetect\IEDdetect_vehicle.sqf";
   while {alive _vehicle && alive _detector && _detector == driver _vehicle} do { sleep (_interval); _detector = driver _vehicle;};
 };
};

if (reezo_IEDdetect_debug) then { player globalChat "REEZO_IEDDETECT DEBUG: DETECTOR.SQF COMPLETE" };

if (true) exitWith {};

and if you want, replace IEDdetect_vehicle.sqf with the following:

//////////////////////////////////////////////////////////////////
// Function file for Armed Assault
// Created by: Reezo of SR5 Tactical - www.sr5tactical.net
// IED Detection and Disposal Scripts
//////////////////////////////////////////////////////////////////

// INIT
private ["_detector","_range","_interval","_skill","_fakeRatio","_vehicle","_near","_nearCount","_IEDmarker","_rnd","_posX","_posY","_sign","_y","_h","_iedMarkename","_createvarname","_numberMarker","_action_reezo_IEDdetect_remoteDet","_action_reezo_IEDdetect_manualDefuse","_lapse","_nearHosts","_thisHost","_action_reezo_IEDdetect_detach","_fakeIED"];

_detector = _this select 0;
_range = _this select 1;
_interval = _this select 2;
_skill = _this select 3;
_fakeRatio = _this select 4;
_vehicle = _this select 5;

if !(local _detector) exitWith {};
if (damage _vehicle > 0.75) exitWith{};
waitUntil {reezo_IEDdetect_initComplete};

reezo_IEDdetect_EODs = reezo_IEDdetect_EODs + [_detector];
publicVariable "reezo_IEDdetect_EODs";

waitUntil {!dialog}; cutRsc ["IEDdetect_13", "PLAIN", 0];
playsound "IEDdetect_beep2";

// MAIN SCAN LOOP
while {alive _detector && alive _vehicle && driver _vehicle == _detector} do {
 if (reezo_IEDdetect_debug) then { player globalChat "NOW RUNNING: MAIN SCAN LOOP" };

 _detector = driver _vehicle;
 _fakeIED = 0;

 if !(_detector in reezo_IEDdetect_EODs && driver _vehicle == _detector) then {
   reezo_IEDdetect_EODs = reezo_IEDdetect_EODs + [_detector];
   publicVariable "reezo_IEDdetect_EODs";
 };

 while {count reezo_IED_detector_objects == 0} do { sleep (_interval * 2) };

 if (reezo_IEDdetect_busy == 0) then {

   _near = (getPos _vehicle) nearObjects (_range - ((speed _vehicle) * 1.25));
   _nearCount = count _near;
   if (_nearCount > 50) then {_nearCount = 50};

   // CASE 1. FAKE IED DETECTED (radio interferences or whatever gizmo might trigger it)
   _rnd = random 100;  

   if (_rnd < _fakeRatio && reezo_IEDdetect_busy == 0 && _nearCount > 5 && _detector == driver _vehicle) then {
     if (reezo_IEDdetect_debug) then { player globalChat "NOW RUNNING: FAKE IED CODE" };

     // Script goes busy
     reezo_IEDdetect_busy = 1;
     publicVariable "reezo_IEDdetect_busy";
     _fakeIED = 1;

     // ACQUIRE IED AND BROADCAST, adding it to the "Found IEDs" array
     reezo_IEDdetect_activeIED = _near select (floor (random _nearCount));
     publicVariable "reezo_IEDdetect_activeIED";
     reezo_IEDdetect_activeEOD = _detector;
     publicVariable "reezo_IEDdetect_activeEOD";

     // Scanner notification (Scanning..)
     waitUntil {!dialog}; cutRsc ["IEDdetect_01", "PLAIN", 0];
     playsound "IEDdetect_beep"; sleep 1;
     playsound "IEDdetect_beep"; sleep 1;
     playsound "IEDdetect_beep"; sleep 1;
     sleep 2;

     //MARKER PLACEMENT (approximate)
     deleteMarkerLocal "REEZOIED";
     deleteMarkerLocal _iedMarkename;
     sleep 0.1;    
     _rnd = random _range;
     _sign = random 1;
     if (_sign < 0.5) then { _rnd = -1 * _rnd };
     _posX = (getPos (_detector) select 0) + _rnd;
     _rnd = random _range;
     _sign = random 1;
     if (_sign < 0.5) then { _rnd = -1 * _rnd };
     _posY = (getPos (_detector) select 1) + _rnd;

     // GENERATE NAME NOT IN USE GLOBALLY
     _iedMarkename = "REEZOIED";
     _numberMarker = 0;
     if (isnil ("REEZOIED")) then {_iedMarkename="REEZOIED"} else {
       _createvarname = true;
       while {_createvarname} do {
         _iedMarkename = format["REEZOIED_%1",_numberMarker];
         if (isnil ("_iedMarkename")) then {
           _createvarname = false;
         } else {
           _numberMarker = _numberMarker+ 1;
         };
       };
     };
     _IEDmarker = createMarkerLocal[_iedMarkename,[_posX,_posY]];
     _IEDmarker setMarkerShape "ICON";
     _IEDmarker setMarkerType "WARNING";
     _IEDmarker setMarkerColor "colorRed";
     _IEDmarker setMarkerText "IED Approx. Position";
     _IEDmarker setMarkerSize [.50, .50];

     // Report the fake IED
     waitUntil {!dialog}; cutRsc ["IEDdetect_02", "PLAIN", 0];
     playsound "IEDdetect_beep2";
     sleep 15 + floor (random 90);

     // After some time..declare the IED fake
     waitUntil {!dialog}; cutRsc ["IEDdetect_07", "PLAIN", 0];
     playsound "IEDdetect_beep2";

     // Cleaning
     deleteMarkerLocal "REEZOIED";
     deleteMarkerLocal _iedMarkename;
   };

   if (_fakeIED == 0 && _detector == driver _vehicle && alive _detector) then {
     for [{_y = 0},{_y < _nearCount},{_y = _y + 1}] do {

       // CASE 2. REAL IED DETECTED
         if ((_near select _y) in reezo_IED_detector_objects && _detector == driver _vehicle) then {
           if (reezo_IEDdetect_debug) then { player globalChat "NOW RUNNING: REAL IED CODE" }; sleep 1;

           // Script goes busy
           reezo_IEDdetect_busy = 1;
           publicVariable "reezo_IEDdetect_busy";

           // ACQUIRE IED AND BROADCAST, adding it to the "Found IEDs" array
           reezo_IEDdetect_activeIED = _near select _y;
           publicVariable "reezo_IEDdetect_activeIED";
           reezo_IEDdetect_activeEOD = _detector;
           publicVariable "reezo_IEDdetect_activeEOD";

               if (reezo_IEDdetect_debug) then {
                 hint Format["Array:\n\n%1\n\nActiveIED:\n\n%2\n\nActiveEOD:\n\n%3",reezo_IED_detector_objects,reezo_IEDdetect_activeIED, reezo_IEDdetect_activeEOD];
                 sleep 1;
               };

           // Scanner notification (Scanning..)
           waitUntil {!dialog}; cutRsc ["IEDdetect_01", "PLAIN", 0];
           playsound "IEDdetect_beep"; sleep 1;
           playsound "IEDdetect_beep"; sleep 1;
           playsound "IEDdetect_beep"; sleep 1;
           sleep 2;

           //MARKER PLACEMENT (approximate)
           deleteMarkerLocal "REEZOIED";
           deleteMarkerLocal _iedMarkename;
           sleep 0.1;    
           _rnd = random 5;
           _sign = random 1;
           if (_sign < 0.5) then { _rnd = -1 * _rnd };
           _posX = (getPos (reezo_IEDdetect_activeIED) select 0) + _rnd;
           _rnd = random 5;
           _sign = random 1;
           if (_sign < 0.5) then { _rnd = -1 * _rnd };
           _posY = (getPos (reezo_IEDdetect_activeIED) select 1) + _rnd;

           // GENERATE NAME NOT IN USE GLOBALLY
           _iedMarkename = "REEZOIED";
           _numberMarker = 0;
           if (isnil ("REEZOIED")) then {_iedMarkename="REEZOIED"} else {
             _createvarname = true;
             while {_createvarname} do {
               _iedMarkename = format["REEZOIED_%1",_numberMarker];
               if (isnil ("_iedMarkename")) then {
                 _createvarname = false;
               } else {
                 _numberMarker = _numberMarker+ 1;
               };
             };
           };
           _IEDmarker = createMarkerLocal[_iedMarkename,[_posX,_posY]];
           _IEDmarker setMarkerShape "ICON";
           _IEDmarker setMarkerType "WARNING";
           _IEDmarker setMarkerColor "colorRed";
           _IEDmarker setMarkerText "IED Approx. Position";
           _IEDmarker setMarkerSize [.50, .50];

           // Notify the IED found, add disarm actions     
           waitUntil {!dialog}; cutRsc ["IEDdetect_02", "PLAIN", 0];
           playsound "IEDdetect_beep2";
           reezo_IEDdetect_activeIED removeAction _action_reezo_IEDdetect_manualDefuse;
           _action_reezo_IEDdetect_manualDefuse = reezo_IEDdetect_activeIED addAction ['<t color="#FF9800">'+"Defuse Bomb"+'</t>', "scripts\IEDdetect\IEDdetect_manualDefuse.sqf", [], 0, false, true, "",""];

           //check if IED is attached to something and if it is, place a Detach action on it
           if (reezo_IEDdetect_activeIED in reezo_IEDdetect_attachedIEDs) then {
             _nearHosts = ((getPos reezo_IEDdetect_activeIED) nearObjects 3) - [reezo_IEDdetect_activeIED];
             for [{_h= 0},{_h < (count _nearhosts)},{_h = _h + 1}] do {
               _thisHost = _nearHosts select _h;
               if (_thisHost in reezo_IEDdetect_hostIEDs) then {
                 _action_reezo_IEDdetect_detach = _thisHost addAction ['<t color="#FF3300">'+"Detach IED"+'</t>', "scripts\IEDdetect\IEDdetect_detach.sqf", [reezo_IEDdetect_activeIED], 0, false, true, "",""];
               };
             };
           };

           // Remote Det possibility
           _rnd = random 100;
           if (_rnd < _skill) then {
             sleep 4;
             waitUntil {!dialog}; cutRsc ["IEDdetect_03", "PLAIN", 0];
             playsound "IEDdetect_beep2";
             _vehicle removeAction _action_reezo_IEDdetect_remoteDet;
             _action_reezo_IEDdetect_remoteDet = _vehicle addAction ['<t color="#FF9800">'+"Remotely Detonate Bomb"+'</t>', "scripts\IEDdetect\IEDdetect_remoteDet.sqf", [reezo_IEDdetect_activeIED], 0, false, true, "",""];
           };

         }; // END IF

       // MAIN WAIT LOOP
       _lapse = 1;
       while { _detector == driver _vehicle && reezo_IEDdetect_busy == 1 && _lapse < 36 && alive reezo_IEDdetect_activeIED && alive reezo_IEDdetect_activeEOD && _vehicle distance reezo_IEDdetect_activeEOD < 300} do {
         // update IED marker if it moved in the meantime
         if (speed reezo_IEDdetect_activeIED != 0) then {
           _rnd = random 5;
           _sign = random 1;
           if (_sign < 0.5) then { _rnd = -1 * _rnd };
           _posX = (getPos (reezo_IEDdetect_activeIED) select 0) + _rnd;
           _rnd = random 5;
           _sign = random 1;
           if (_sign < 0.5) then { _rnd = -1 * _rnd };
           _posY = (getPos (reezo_IEDdetect_activeIED) select 1) + _rnd;
           _iedMarkename setMarkerPos [_posX, _posY];
         };

         sleep 5;
         _lapse = _lapse + 1;
       };

       if (!alive _vehicle OR !alive reezo_IEDdetect_activeIED OR _detector != driver _vehicle) then {
         reezo_IEDdetect_activeIED removeAction _action_reezo_IEDdetect_manualDefuse;
         _vehicle removeAction _action_reezo_IEDdetect_remoteDet;
       };

       deleteMarkerLocal "REEZOIED";
       deleteMarkerLocal _iedMarkename;

       //reezo_IEDdetect_activeIED = _detector;
       //publicVariable "reezo_IEDdetect_activeIED";
       //reezo_IEDdetect_activeEOD = _detector;
       //publicVariable "reezo_IEDdetect_activeEOD";
     }; // END FOR
   }; //END IF FAKEIED == 0

   reezo_IEDdetect_busy = 0;
   publicVariable "reezo_IEDdetect_busy";
   reezo_IEDdetect_EODs = reezo_IEDdetect_EODs - [_detector];
   publicVariable "reezo_IEDdetect_EODs";
 }; // END IF IEDDETECT_BUSY == 0

 sleep _interval;

}; // END WHILE

reezo_IEDdetect_busy = 0;
publicVariable "reezo_IEDdetect_busy";
reezo_IEDdetect_EODs = reezo_IEDdetect_EODs - [_detector];
publicVariable "reezo_IEDdetect_EODs";


if (reezo_IEDdetect_debug) then { player globalChat "reezo_IEDDETECT DEBUG: IEDDETECT_VEHICLE.SQF COMPLETE" };

if (true) exitWith {};

and let me know if a detector unit in a detector vehicle is still bugged. It should also work for all units now, not for the server only, that was a stupid mistake I overlooked..

UPDATE: Tested and working on my end..awaiting feedback ;)

Edited by Reezo

Share this post


Link to post
Share on other sites

So,

Last night fire teams pulls up at a compound, gets out the stryker and moves into the compound, searches through it nothing.

When they get back to the Stryker a civi is stood there watching them. Knowing I have a suicide IED script they cover him with weapons move carefully round to the vehicle reverse it away and get in.

Just as the last man is getting in, the civilian pulls a pistol shoots him in the back and runs of. Its great what multiple scripts can do :)

http://forums.bistudio.com/showthread.php?t=107774&highlight=civilian+danger

Share this post


Link to post
Share on other sites
So,

Last night fire teams pulls up at a compound, gets out the stryker and moves into the compound, searches through it nothing.

When they get back to the Stryker a civi is stood there watching them. Knowing I have a suicide IED script they cover him with weapons move carefully round to the vehicle reverse it away and get in.

Just as the last man is getting in, the civilian pulls a pistol shoots him in the back and runs of. Its great what multiple scripts can do :)

http://forums.bistudio.com/showthread.php?t=107774&highlight=civilian+danger

Great story! Eheh

Anyway I've made slight fixes to the script, try and download it again, this should be fixed

- detector vehicle not working for all units

- proximity scatter not using random places when no roads were available

Share this post


Link to post
Share on other sites

Hey Reezo, please help me mate! im trying to get your IED script to work in my mission! ive got it to work just on its own, but adding it with other things in the description.ext is causing me problems! can you take a look at it here: http://forums.bistudio.com/showthread.php?t=116826 thanks man, cant wait for the update on your wonderful script. :)

Share this post


Link to post
Share on other sites

Posted on other thread DarkXess....send me you mission and I will sort it.

Good job Reezo. Will try the new version!

Share this post


Link to post
Share on other sites

Thanks guys for the additional support. Glad once again to be part of this community.

Share this post


Link to post
Share on other sites

Hey Reezo, ive finally got my troubles sorted with my mission thanks to Kremator! :)

Now ive some questions... Ive got a BIG mission, a team of 5 men with 1 engineer against an army of around 800 patrolling around fallujah, at night and with my own personal ambient sound, its awesome already. Now what I want to do now as your script etc is on it, I want to set up some Random IEDs around the city, plus suicide bombers, ambushes, booby traps, you name it .. all with using your script! ive got a zone of 1000 by 1000 to work in! so, for example.. your "IEDdetect_triggerman_Spawn" if I did this in a zone of 1000 x 1000 would it spawn random triggerman all around the place? or only the one? or would you suggest I make more than 1 trigger? the mission is based on taking out some AA in the city! also ill be adding more in future, maybe taking out an ammo dump and a VIP target etc... but I really want this based 90% on your IED Script!

So please, can you give me some ideas, pointers, and what can you suggest I can add to make it more the exciting mission?

Thanks man! and again thanks for your awesome script! :)

Oh, and Kremator! your the man... lol, thanks mate!

Share this post


Link to post
Share on other sites

Just giving back to the community mate..... I've been helped plenty of times, and I owe a HUGE debt of gratitude to every addon/script/mission maker out there.

I was one of the first people to play OFP when it came to London (in that dingy LAN dungeon!) and have been a fanboi ever since!

@Reezo have found a problem mate. When I blow up a proximity IED with a weapon the IED carcass is still left behind. I also noticed that in DarkXess's mission that the IED position would disappear after a while - don't think it was to do with his mission.

Suggestion - when MULTIPLE IEDs are close is it possible for the detector to deal with them all sequentially (or all at once)? Maybe it is working as planned but I found that I was picking up a farther away IED that one I was standing next to. Of course you can't 'find' it until you defuse the first one. Planned / bug ?

Share this post


Link to post
Share on other sites
Suggestion - when MULTIPLE IEDs are close is it possible for the detector to deal with them all sequentially (or all at once)? Maybe it is working as planned but I found that I was picking up a farther away IED that one I was standing next to. Of course you can't 'find' it until you defuse the first one. Planned / bug ?

Was going to report that as soon as I got home. Clearing a building of IEDs, and only the back one was detected, but the IED models I placed down there prior to the rear detected one were quite obvious and not able to be interacted with.

Also, again Reezo, would it be possible to limit the vehicle detector to only detect an object within X degrees of the point of travel? Possibly make a new variable in the vehicle detector init...?

Share this post


Link to post
Share on other sites

Yes it could be done..right now the detector stops when one IED is detected but I think it could just cycle all possibilities and attach defuse actions to it. Only problem is the remote Det, you won't know what you are detonating lol or probably just get to detonate the last one found..

For vehicles, the "cone area" is something I haven't figured out yet, need more math skills :)

Share this post


Link to post
Share on other sites

Is it possible to change the marker color for the remote detonation one to, blue or some other color? (Possibly change the IED Approx Marker to orange as a warning, and then the Locked Detonation IED Approx Marker changes to Red).

Share this post


Link to post
Share on other sites

Like SpectreRSGs idea of marker colour.

Don't like the cone idea that much, I'm afraid.

Share this post


Link to post
Share on other sites

Well if it can be a variable you can set, that would be great. 360 would be all around, it'd be based on degree's, so the variable would always have 3 XXX's.

Share this post


Link to post
Share on other sites

.......Erm, an answer to my question above would be great :( I did ask kindly, lol.

Also to add: using the Trigger Man spawn, the marker named "gg_3" need to be in game?

as when I removed it, also removed the civs who were already spawned in your demo mission, it didnt seem

to want to spawn the trigger man! ... its dependent on the "gg_3" or the spawned civs? What if I were to

use the alice module for civs? would the trigger spawn still be working in a 1000 by 1000 trigger zone?

I want it to basicly spawn a triggerman in random places around the map! and when in the mission

bang, you get a detection and then you need to find the IED. Not one, but I want these all over the zone.

How to do all this please? this is all including the above thread too, any help would be great! thanks.

Edited by DarkXess

Share this post


Link to post
Share on other sites

I'm new with scripting and such - Can somone walk me through parts #2 and #3 a little more? And what do I open the "description.sqf with?

How to set it up:

1) Copy the following folder into your mission folder:

> scripts\IEDdetect

2) Open the description.sqf and add the #include lines to your description.ext

3) Open the init.sqf and add that line to your init.sqf

Share this post


Link to post
Share on other sites
And what do I open the "description.sqf with?

You can use a text editor, notepad, or my favorite, notepad++. This goes for all .SQFs or .SQMs, and .FSM plus some more.

If you have problems or issues actually doing the steps let me know, but that should answer your question to the point where you can open the stuff up and do copy/pastes. (Also note, if your mission doesn't have a description.sqf or init.sqf, you can simply create it as a blank file).

...using the Trigger Man spawn, the marker named "gg_3" need to be in game?

The trigger man script doesn't have to do anything with a marker. That nul0 field in 4e (on the first page) goes directly into the init field of you placed man that you want to be the trigger man. You also have to tell it where you want to place the bomb, ie the skodabomb part.

I want it to basicly spawn a triggerman in random places around the map! and when in the mission

bang, you get a detection and then you need to find the IED. Not one, but I want these all over the zone.

This is relatively easy to do, just use the Ambient Bombers on the first page, section 4g.

Edited by SpectreRSG

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×