Author: beno_83au
Author Website:

Requirements: No addons required

Version: 2.1

Short description: MIL_ExplosiveBreaching is a set of scripts that allows designated players to breach urban walls, fences and building doors using vanilla Explosive Charges.

Date: 2018-11-08 09:03


Comments: (0)
Rating:



 







MIL ExplosiveBreaching

by
beno_83au


Description:
MIL_ExplosiveBreaching is a set of scripts that allows designated players to breach urban walls, fences and building doors using vanilla Explosive Charges. Anyone in the same group as a breacher can be within 2m of a charge. Anyone else within 5m of a charge and not in cover may be knocked down for a short time. Any AI up to 10m and not knocked over will have their skills severely reduced for a short time.
In a hosted MP environment please allow up to 30 seconds before trying to breach anything, otherwise breaching won't occur.

Features:
    - Easy-to-use GUI system for managing breaching charges.
    - Uses explosive charges as breaching charges.
    - Optional Red/Green indicator on each charge to indicate a player's safe distance from a charge.
    - Specific players can be used as designated breachers.
    - All players (including non-breachers) can see effects/features of the system.
    - Disorientating effects for anyone, human or AI, caught by the explosive breach.
    - Single/Multiple charges can be used together.


Installation / Usage:
For usage instructions and information of how to use the MIL ExplosiveBreaching please refer to the included documentation and/or example mission.

Demo Missions - Dropbox
* Mission #2 requires Advanced Rappelling to be run on the host/server only.
* Mission haven't been updated with door breaching, and still use the old system at this stage.

Previous demo missions are still set up for the old system. They will be updated at some point.
New demo missions (supports vanilla/RHS/CUP) - Dropbox
    - Co-op (4)
    - Attack-Defend (4v4)

Recommended and/or optional addons and mods to use with MIL ExplosiveBreaching:
- Advanced Rappelling

***Mission makers***
    - Two variables to check if a unit's lifeState == "INCAPACITATED" have been added to account for conflicts with other lifeState checks that may be in use on other scripts.
      - e.g. Running custom revive scripts when lifeState == "INCAPACITATED".
      - In this case, it would be wrong to run the custom revive if a player was a bit too close to the breaching charge and got knocked out.
    - When being affected by breaching, a unit's lifeState will return "INCAPACITATED" for a few seconds.
    - This system makes use of publicVariables to return if a unit has been scripted into being unconscious.
    - The variables are:
      - MIL_ExplosiveBreaching_Stunned_Player & MIL_ExplosiveBreaching_Stunned_AI.
      - Each variable is a 4 index array:
        - _array select 0/1/2/3 will return number of unconscious units for BLUFOR/OPFOR/INDI/CIV respectively
    Example:
    - If a BluFor player stands too close to a door on breaching, and there's 2 AI OpFor on the other side and close enough to get knocked down the returns would be:
      - MIL_ExplosiveBreaching_Stunned_Player - [1,0,0,0];
      - MIL_ExplosiveBreaching_Stunned_AI ------- [0,2,0,0];
    - This might take some tweaking, but suits my purpose for what this breaching function was originally being made for, and so that's where it stands for now unless someone needs it changed/improved.

To use:
    - Copy the folder MIL_ExplosiveBreaching to your mission folder.
    - Anyone assigned as a breacher will require Explosive Charges ("DemoCharge_Remote_Mag") to breach.
    - To avoid damage, the better the ballistic protection of a player's vest, the safer they will be.

    - For MP use:
    initServer.sqf
    nul = [_indicator] execVM "MIL_ExplosiveBreaching\initialiseServer.sqf";
    initPlayerLocal.sqf
    nul = [] execVM "MIL_ExplosiveBreaching\initialiseClient.sqf";

    - _indicator - boolean (optional - default: true)
      - true - a safe distance indicator will spawn with the charge
      - false - no safe distance indicator will spawn

    - For SP use:
    init.sqf
    nul = [_indicator] execVM "MIL_ExplosiveBreaching\initialiseServer.sqf";
    nul = [] execVM "MIL_ExplosiveBreaching\initialiseClient.sqf";

Example:
    - This will set any group leaders as breachers:
    if (player == (leader (group player))) then {
    	nul = [] execVM "MIL_ExplosiveBreaching\initialiseClient.sqf";
    };
    - This will set player4/8/12 as breachers:
    _allBreachers = ["player4","player8","player12"];
    if !(_allBreachers find (str player)) then {
    	nul = [] execVM "MIL_ExplosiveBreaching\initialiseClient.sqf";
    };


Media:

My YouTube channel playlist of all the videos I've put up to show the explosive breaching and its progress:
Playlist - ArmA 3 - Explosive Breaching

MP Demo of the single-storey wall breaching demo mission (an oldie) (5:17):


Coop demo mission, running the most recent version, v2.1 (2:06):


Armaholic.com has its own Youtube channel where we will cover the Community made releases.
Subscribe to the Armaholic.com Youtube channel


Known issues:
- Sometimes walls (I think only in specific locations/circumstances) will collapse when setting a charge. I haven't seen this for a while though, but let me know if it happens.
- Door breaching will not work on some buildings - https://feedback.bistudio.com/T133450.
- In MP, breaching will not work immediately. Likely only in hosted MP, and should be ready after 30 seconds game time.


Future plans:
- Add ability to change the minimum safe distance to avoid being knocked down (both breacher's group and for other nearby units).
- Add default compatability for charges from common mods to be used for breaching.
- Add ability to designate custom array of charge/s to be used for breaching.
- Add ACE menu compatability.
- Add a 2-second timer to stunned AI to delay reactionary firing.
- Adjust chance of being knocked if needed.


Notes:
If anyone happens across any bugs, or has any suggestions, please let me know. I would like to implement door breaching in the future too, so I'll see where that takes me.


Credits & Thanks:
- Credit to zorilya, who's code for aligning a bomb against a wall was offered up for use (in one of his replies in this video).
- Honestly, without the maths already being available I doubt this would've worked out for me. I'm a numbers kind of guy, but I'm no mathemagician (Simpsons reference).
- For the missions themselves, they are credit to a number of people within their briefings.
- My mates for playing my stuff in ways which no sane person plays ArmA.
- My kids for playing ArmA properly *THUMBS UP*


Changelog:
2.1
Added - GUI for user handling of setting and detonating breaching charges.
Added - Doors will now lock when a charge is placed on them.
Changed - AddAction commands changed and/or removed in favour of GUI.
Changed - Detonating all breaching charges now handled in their own door/wall lists (i.e. all door charges & all wall charges, instead of all charges).
Changed - Multiple charges on the same wall/door will now detonate simultaneously when one of them is detonated.
Changed - Action menu command colour.
Changed - Damage from breaching charge explosion is now handled differently. No damage should be taken regardless of armour equipped or distance to the explosion (please let me know if this IS NOT the case).
Changed - The breaching player, plus any players in the breacher's group, now only need to be 2m away from the charge to avoid being knocked down.
Changed - Breaching charges set too far away from a door will still detonate when the nearest door to them is breached (be warned!).
Fixed - Rubble will be less likely to spawn above ground on slopped terrain (please let me know if this IS NOT the case, and if you can, exactly where it occurred so I can tighten up the maths).
Fixed - Damage blocking handling now works properly in MP.

2.0
Changed - MIL_WallBreaching now becomes MIL_ExplosiveBreaching.
Changed - Folder structure was almost completely re-worked.
Changed - Breaching has now been expanded to include building doors.
Changed - Action names and priorities were adjusted for better organisation.
Added - Two variables to check if a unit's lifeState == "INCAPACITATED" have been added to account for conflicts with other lifeState checks that may be in use on other scripts (see OP for more detail).
Added - More crazy arse ArmA magic to facilitate door breaching.
There have been a number of other changes, fixes and additions that don't necessarily need mentioning, but have improved the function none-the-less.

1.1
Added - Option to turn green/red indicators on or off (via initServer.sqf - see readMe.txt).
Fixed - Client would attempt to run initialisation even if server had not yet compiled functions.

1.0
- Release.


Forum topic:
- BI forums
- Armaholic forums




Enable javascript to be able to download from Armaholic please!



Tags: Script,   Action,   Damage,   Modern,   Explosive,   Breach,   Wall,   Fence,   Door,   Explosive Charges