Forum Jump :

Author Message

Posts: 13

Level: Member

Country: au
Location: Sydney
In-game name: Millenwise

#199469 Posted at 2018-07-16 03:57        

MIL_ExplosiveBreaching - Dropbox/Armaholic
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)

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.

    - 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.

***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
    - 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:
    - Add the following lines to your description.ext:
    #include "MIL_ExplosiveBreaching\dialog\defines.hpp"
    #include "MIL_ExplosiveBreaching\dialog\dialog.hpp"

    - 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:
    nul = [_indicator] execVM "MIL_ExplosiveBreaching\initialiseServer.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:
    nul = [_indicator] execVM "MIL_ExplosiveBreaching\initialiseServer.sqf";
    nul = [] execVM "MIL_ExplosiveBreaching\initialiseClient.sqf";

    - 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";

    - 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*

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):

Known bugs:
    - 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 -
    - In MP, breaching will not work immediately. Likely only in hosted MP, and should be ready after 30 seconds game time.

To Do:
    - 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.

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.

Thank you.

Change log:

This post was edited by beno_83au (2018-12-13 05:05, 189 days ago)