Jump to content

Recommended Posts

Survivable Crashes (& Shoot-downs)

 

When activated, this mod allows the crew of a vehicle to survive it's destruction and escape with some damage taken. While designed for helicopters, vehicle classes may be whitelisted. When the vehicle reaches fatal damage, players will be knocked unconscious, ejected when near the ground, applied randomized damage, and then woken up. The vehicle will explode after 40-80 seconds. These effects may be customized by using the Survivable Crashes Settings Module in your mission. ACE3 damage will be automatically applied if it is in the active mod pack.

 

This mod is being revitalized by Saborknight. 

 

Videos:

Crash @ 2:00

Crash @ 1:50

 

Additional Information

 

Download WIP - GITHUB

Old Download: Github Releases

Notes:

 

If using ACE advance medical, I would recommend significantly decreasing the damage multiplier to ~.2 to prevent people from bleeding out to the unconscious state in a few seconds.

Occasionally, players will not ragdoll when ejected.

In vanilla, players can not be shot out of white-listed vehicles. In ACE, they can be knocked unconscious. 

Mod can be repacked with line 3 changed to true in \r0ed_SurvivableCrashes\functions\init\init_default.sqf to make mod active by default, without the need for a module.

  • Like 10

Share this post


Link to post
Share on other sites

I actually think that the vanilla version is much nicer!

Share this post


Link to post
Share on other sites

Does this mod now apply to all helicopters that players use? I run a dedicated server where zeus can spawn in various things and it would be awesome to have this applicable to all helicopters.

Share this post


Link to post
Share on other sites

Release frontpaged on the Armaholic homepage.

Thank you

 

I actually think that the vanilla version is much nicer!

Thanks for the feedback. The main visual difference is that ACE add on it's own unconscious effect, makes the player look down, and disables input.

 

Wow good stuff to see you made this a mod, congrats man!

Thank you! It took me a few days to learn how to format everything into a mod and then fix the problems from the script version.

 

Does this mod now apply to all helicopters that players use? I run a dedicated server where zeus can spawn in various things and it would be awesome to have this applicable to all helicopters.

Yes, the default settings in the module applies the mod to all aircraft, however you can change it to a list of any vehicle classes you want. Just make sure players have the mod installed as well, or else the mod will not work for them.

The mod uses two ways for adding the event handler. When a player spawns inside the aircraft at the beginning of a mission, and when a player enters a helicopter by themselves. Creating vehicles through Zeus should work.

Share this post


Link to post
Share on other sites

Very interesting.  Passing that on to my unit mates to see if they want to test it out some.  Looks promising, to say the least.

Share this post


Link to post
Share on other sites

Just wondering if this was able to work for a whole crew of human players? like on a mp domination server and if the chopper got shot down all those on board will survive?

 

Thanks :)

Share this post


Link to post
Share on other sites

Just wondering if this was able to work for a whole crew of human players? like on a mp domination server and if the chopper got shot down all those on board will survive?

 

Thanks :)

Yes it should, I have tested this on a dedicated server with another player. Just make sure all the players have the mod installed.

  • Like 1

Share this post


Link to post
Share on other sites

I really like the premise of this, air vehicles especially in Arma are far too fragile and explode far too often even on hard landings, i.e. crashes that should have been at least somewhat survivable are almost universally fatal. However the flip-side of this (and the main question I have about this mod) is implementation. Does this just make you survive EVERY crash, and if so would it be possible to somewhat customize this so for instance eating a SAM at 2500 feet which should by all rights kill everyone in a helicopter (if not the missile detonation then the fall) does, but a really hard landing which would normally result in an explosion, instead leaves some injured survivors on the ground.

Share this post


Link to post
Share on other sites

I really like the premise of this, air vehicles especially in Arma are far too fragile and explode far too often even on hard landings, i.e. crashes that should have been at least somewhat survivable are almost universally fatal. However the flip-side of this (and the main question I have about this mod) is implementation. Does this just make you survive EVERY crash, and if so would it be possible to somewhat customize this so for instance eating a SAM at 2500 feet which should by all rights kill everyone in a helicopter (if not the missile detonation then the fall) does, but a really hard landing which would normally result in an explosion, instead leaves some injured survivors on the ground.

At 1:17 on the video, you can see the customization options for v1.1 . Right now there is no direct setting to customize what you are asking. However, there is an option to use your own medical setting to affect the players (which I just realized is fairly misleading because it still limits damage in v1.1). What you can do, assuming no other mods handleDamage, is remove all handleDamage Event Handlers and then create your own for the players in the vehicle.

It gets complicated when dealing with damage sources and deciding when exactly you want a player to die, so I chose to make it so everyone survives all the time.

I will look into this whenever I work on the next version of this mod.

Share this post


Link to post
Share on other sites

Version 1.2 Released

 

  • Removes HandleDamage Event Handler when disabled
  • Script now does nothing to player health when when medical system is set to none "None"
  • Added parameter in the module to run code when the mod detects a crash

Share this post


Link to post
Share on other sites

At 1:17 on the video, you can see the customization options for v1.1 . Right now there is no direct setting to customize what you are asking. However, there is an option to use your own medical setting to affect the players (which I just realized is fairly misleading because it still limits damage in v1.1). What you can do, assuming no other mods handleDamage, is remove all handleDamage Event Handlers and then create your own for the players in the vehicle.

It gets complicated when dealing with damage sources and deciding when exactly you want a player to die, so I chose to make it so everyone survives all the time.

I will look into this whenever I work on the next version of this mod.

So I suppose making the player die from the explosion of say a MANPAD rather than the crash is out of the question?

Share this post


Link to post
Share on other sites

So I suppose making the player die from the explosion of say a MANPAD rather than the crash is out of the question?

In 1.2, I added a parameter in the module that activates a string of code when a crash is detected. In the string, the last event handler before the crash is passed so you can check the projectile type for the one you want, and then kill the crew based off of that. 

I do not plan on adding a feature where player would be killed by manpads or heavy AA sites since it really depends on player preference and knowing what sources you want units to be killed by, but I can make it easier for people to customize the mod the way they want it.

Share this post


Link to post
Share on other sites

Yes it should, I have tested this on a dedicated server with another player. Just make sure all the players have the mod installed.

 

Ok thanks, is there any plans on making a script version then? :)

Share this post


Link to post
Share on other sites

Ok thanks, is there any plans on making a script version then? :)

Here you go. I have not tested it in MP, but it is almost an exact duplicate of the mod, so it should work. There is a .zip you can download under releases.

  • Like 1

Share this post


Link to post
Share on other sites

Here you go. I have not tested it in MP, but it is almost an exact duplicate of the mod, so it should work. There is a .zip you can download under releases.

 

Thanks a lot mate, will test it and give you the feedback once I can :)

 

Ok, come across a problem - sorry for this.

 

I have tried added your description.ext to mine, but whatever I do its just not working. Can you help me out?

 

My description.ext:

 

#include "R3F_LOG\desc_include.h"
#include "pxs_satcom_a3\init_interface.hpp"

author = "DarkXess";
onLoadName = "Domination Takeover 1.01";
OnLoadMission = "A perpetual domination map with base building.";
overviewPicture = "images\c3p.jpg";

disabledAI = 1;
Respawn = 2;
RespawnDelay = 5;
RespawnDialog = 1;
respawnVehicleDelay = 2;
respawnTemplates[] = {"Revive", "MenuPosition"};
corpseLimit = 1;
corpseRemovalMinTime = 5;
corpseRemovalMaxTime = 15;
wreckLimit = 1;
wreckManagerMode = 3;
wreckRemovalMinTime = 45;
wreckRemovalMaxTime = 50;
allowSubordinatesTakeWeapons = 1;
joinUnassigned = 0;
aiKills = 1;
enableSaving = [false, false];
enableDebugConsole = 1;
briefing = 0;
debriefing = 0;
disableChannels[]={0};
corpseManagerMode = 1;
enableTeamSwitch = 1;
enableItemsDropping = 0;
respawnOnStart = 0;
showGPS = 1;
showCompass = 1;
showMap = 1;
showPad = 1;
showWatch = 1;
reviveDelay = 2;
reviveForceRespawnDelay = 1;
reviveBleedOutDelay = 500;

class Header {
	gameType = COOP;
	minPlayers = 1;
	maxPlayers = 100;
	playerCountMultipleOf = 1;
};

class CfgMovesFatigue {
	staminaRestoration = 1;
};

class CfgSounds
{
	sounds[] = {Vent,Vent2,Para,Hint,TASKFINISH,CLUNK,REPAIR,DING};
	
	class Vent {name="Vent";sound[]={ATM_airdrop\data\Vent.ogg,db-11,1.0};titles[] = {};};
	class Vent2 {name="Vent2";sound[]={ATM_airdrop\data\Vent2.ogg,db-11,1.0};titles[] = {};};
	class Para {name="Para";sound[]={ATM_airdrop\data\parachute.ogg,db-11,1.0};titles[] = {};};
	class Hint { name = "Hint"; sound[] = {"sound\hint.ogg", 1, 1}; titles[] = {}; };
	class TASKFINISH { name = "TASKFINISH"; sound[] = {"sound\task_finish.ogg", 1, 1}; titles[] = {}; };
	class CLUNK { name = "CLUNK"; sound[] = {\sfx\CLUNK.ogg, 1.8, 1.0};	titles[] = {}; };
	class REPAIR { name = "REPAIR";	sound[] = {\sfx\REPAIR.ogg, 2, 1.0}; titles[] = {}; };
	class DING { name = "DING";	sound[] = {\sfx\DING.ogg, 1, 1.0}; titles[] = {}; };
};

class CfgNotifications
{
	
	#include "Hercx_taskSystem\notifications.h"
};

#include "CHVD\dialog.hpp"

class CfgFunctions
{
	#include "Hercx_taskSystem\Functions.h"
        #include "CHVD\CfgFunctions.hpp"
	
	class FETT {
		class curator {
			class eventHandlers {postInit = 1;};
			class objPlaced {};
			class grpPlaced {};
		};
	};
};

class CfgTaskEnhancements
{
   enable       = 1;            //0: disable new task features (default), 1: enable new task features & add new task markers and task widgets into the map
   3d           = 1;            //0: do not use new 3D markers (default), 1: replace task waypoints with new 3D markers
   3dDrawDist   = 10000;        //3d marker draw distance (default: 2000)
   share        = 1;            //0: do not count assigned players (default), 1: count how many players have the task assigned
   propagate    = 1;            //0: do not propagate (default), 1: propagate shared tasks to subordinates
};

class CfgORBAT
{
	class euroforce
	{
		id = 0;
		idType = 0;
		side = "West";
		insignia = "\a3\missions_f_epa\data\img\orbat\B_Aegis_ca.paa";
		colorInisgnia[] = {0, 0, 0, 1};
		commander = "Slug";
		size = "Army";
		type = "HQ";
		commanderRank = "General";
		text = "%1 Euro Force";
		textShort = "%1 EuroForce";
		assets[] = {"B_Plane_CAS_01_F","B_MBT_01_arty_F","B_UAV_02_F","B_Heli_Attack_01_F","B_MBT_01_cannon_F"};
		description = "EUROFORCE deployed its fifth fleet under the command of Admiral Slug in the Aegean sea region in order to guard the borderline between the European Federation and the Middle Eastern Corporation.";
		
		class 1stinf
		{
			id = 1;
			idType = 0;
			side = "West";
			insignia = "\a3\missions_f_epa\data\img\orbat\B_Aegis_ca.paa";
			colorInisgnia[] = {0, 0, 0, 1};
			commander = "Smith";
			size = "Troop";
			type = "MotorizedInfantry";
			commanderRank = "Colonel";
			text = "%1 Infantry";
			textShort = "%1 Infantry";
			assets[] = {"B_Truck_01_box_F", "B_Truck_01_covered_F"};
			description = "The First Infantry divison is led by Corporal Smith.  A competent individual who has participated in several campaigns during his military career.";
		};
		class 2ndinf
		{
			id = 2;
			idType = 0;
			side = "West";
			insignia = "\a3\missions_f_epa\data\img\orbat\B_Aegis_ca.paa";
			colorInisgnia[] = {0, 0, 0, 1};
			commander = "Spartan";
			size = "Troop";
			type = "MechanizedInfantry";
			commanderRank = "Captain";
			text = "%2 Infantry";
			textShort = "%2 Infantry";
			assets[] = {"B_MRAP_01_F","B_APC_Wheeled_01_cannon_F"};
			description = "The Mechanized Infantry divison is led by Corporal Spartan.  A competent scripter with a passion for explosions and kebabs.";
		};	
		class 1stair
		{
			id = 3;
			idType = 0;
			side = "West";
			insignia = "\a3\missions_f_epa\data\img\orbat\B_Aegis_ca.paa";
			colorInisgnia[] = {0, 0, 0, 1};
			commander = "Sc0rpion3";
			size = "Troop";
			type = "Airborne";
			commanderRank = "Captain";
			text = "%1 Airborne Division";
			textShort = "%1 Airborne Division";
			assets[] = {"B_Heli_Transport_01_F","B_Plane_CAS_01_F","B_Heli_Transport_03_F","B_Heli_Attack_01_F"};
			description = "The First airborne divison is led by Air Marshal Sc0rpion3.  A superb pilot with many years of experience in various battlefields.";
		};	
		class 3rdinf
		{
			id = 4;
			idType = 0;
			side = "West";
			insignia = "\a3\missions_f_epa\data\img\orbat\B_Aegis_ca.paa";
			colorInisgnia[] = {0, 0, 0, 1};
			commander = "Shunshine";
			size = "Troop";
			type = "Infantry";
			commanderRank = "Private";
			text = "%3 Infantry";
			textShort = "%3 Infantry";
			assets[] = {"B_G_Van_01_transport_F"};
			description = "An incompetent individual who haphazardly rushes into battle and is currently under investigation for multiple incidents of friendly fire.";
		};
		
		class 4thinf
		{
			id = 4;
			idType = 0;
			side = "West";
			insignia = "\a3\missions_f_epa\data\img\orbat\B_Aegis_ca.paa";
			colorInisgnia[] = {0, 0, 0, 1};
			commander = "Dart";
			size = "Troop";
			type = "Airborne";
			commanderRank = "Private";
			text = "%4 Infantry";
			textShort = "%4 Infantry";
			assets[] = {"B_MRAP_01_F","B_APC_Wheeled_01_cannon_F"};
			description = "A dedicated commander who has particpated in several military campaigns through out his career.";
		};
		
		class 5thinf
		{
			id = 4;
			idType = 0;
			side = "West";
			insignia = "\a3\missions_f_epa\data\img\orbat\B_Aegis_ca.paa";
			colorInisgnia[] = {0, 0, 0, 1};
			commander = "Sam";
			size = "Troop";
			type = "MechanizedInfantry";
			commanderRank = "Private";
			text = "%5 Infantry";
			textShort = "%5 Infantry";
			assets[] = {"B_MRAP_01_F","B_APC_Wheeled_01_cannon_F"};
			description = "A brave soldier who often can be found running head first into battle with little to no regard for his own safety.";
		};
	};
};	

Share this post


Link to post
Share on other sites

I have tried added your description.ext to mine, but whatever I do its just not working. Can you help me out?

 

Try this:

Add:

	class r0ed
	{
		tag = "r0ed";
		class SurvivableCrashes
		{
			file = "r0ed_SurvivableCrashes\functions";
			class vehicleCrashLocal{};
			class crashVisualEffects{};
			class vehicleInit{};
		};
	}; 

under class CfgFunctions

 

and add

	class AutorotationWarn
	{
		name = "AutorotationWarn";
		sound[]={"r0ed_SurvivableCrashes\sounds\ACE_AutorotationWarning.ogg",4,1};
		titles[]={};
	}; 

under class CfgSounds 

  • Like 1

Share this post


Link to post
Share on other sites

This is a great idea!  Thanks for sharing the source code with it.

Share this post


Link to post
Share on other sites

@rafael09ed worked fine mate, don't know what I did at first for it to not work, I just added it like you said and works now.

 

One small problem though, I had a time when 2 AI aircraft flew over, I was with an AA team and they took both AI aircraft out, lol but what happened next was crazy.

The 2 aircrafts pilots ejected, BUT the aircraft just stayed paused in the air, no fire or explosion, smoke - nothing! and they just stayed there lol.

 

Is there a way to have it only work on human players and not the AI?

 

:)

 

Edit: ok more feedback, it seems when the aircraft pause in midair they stay there, but if you move close to where the aircraft is then it starts its course again and crashes

to the ground in which its already hit from the shots taken before though the pilot is already landed as he ejected by this time.

Share this post


Link to post
Share on other sites

Is there a way to have it only work on human players and not the AI?

I don't think the script works on AI. Normally it only works on vehicles players are driving. I do not know why the aircraft would stop in the air. 

Share this post


Link to post
Share on other sites

I don't think the script works on AI. Normally it only works on vehicles players are driving. I do not know why the aircraft would stop in the air. 

 

Its possible it could be clashing with one of the other scripts I have running?!?!

 

Can you maybe add something later to the script to disable it altogether on AI aircraft? 

 

:)

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

×