Jump to content
vihkr

Nuclear Blast Effects

Recommended Posts

I'm attempting to model an area that has been nuked sometime in the past on the Rosche terrain. The various estimated effects are here at NUKEMAP

 

Currently, I am replacing buildings, trees and bushes with stumps and burned versions using GR's scripts:

http://www.armaholic.com/page.php?id=34852

http://www.armaholic.com/page.php?id=34874

 

I've then edited a few specific buildings with the module Edit Terrain Object and replaced them with burned/damaged models.

 

I then placed an object at the epicenter with Feuerex's example to cause damage to objects:

things = nearestobjects [this,[],3370];{_x SetDamage 1} foreach things

Where 3370 is the radius of the 5psi blast effects (buildings and tress flattened).

 

I've then overlaid the object with the Ravage Radioactive Zone Placement module with the appropriate radius.

 

So it should be all good, right? Wrong.

 

I have 2 problems:

1. Manually placed building objects are destroyed too by Feuerex's script, even if I uncheck enable damage/enable simulation. How do I prevent them from being destroyed/damaged by the script?

2. Because it's such a large area, Feuerex's script is slow AF to execute. It really lags the server on mission load. Any more efficient options?

 

Bonus question 1: does anyone know how to break all building windows in a certain radius? 1psi (windows broken) radius of a 300kt 300m altitude airburst is roughly 8700m.

 

Bonus 2: any scripts to scatter random garbarge/wreckage/rubble in a radius?

Thx guys.

  • Like 1

Share this post


Link to post
Share on other sites

Hello there vihkr !

 

Nice and cool idea !

You can use the script and add

_createVehicle allowdamage false;

but generally you can use the script even for the building destruction , because it will work faster , than  waiting to get derstoyed and you can add after some smoke and fire effects.

You can hide also the trees in this area.

Share this post


Link to post
Share on other sites
23 minutes ago, vihkr said:

Bonus 2: any scripts to scatter random garbarge/wreckage/rubble in a radius?

 

//_________________________ Spawn random wrecks _________________________

{
  _accepted = false;
  _position = [0,0,0];
  while {!_accepted} do
  {
    _position = [] call BIS_fnc_randomPos;
    if (_position distance GF_centerPosition > 1000) then
    {
      _accepted = true;
    };
  };
  _randomWreck = _x createVehicle _position;
  _randomWreck setDir (random 360);
} forEach 
[
	"Land_Wreck_Commanche_F","Land_Wreck_Offroad_F","Land_UWreck_Heli_Attack_02_F","Land_UWreck_Mv22_F","Land_Wreck_BMP2_F",
	"Land_Wreck_Car_F","Land_Wreck_Car2_F","Land_Wreck_Car3_F","Land_Wreck_CarDismantled_F","Land_Wreck_Heli_Attack_01_F",
	"Land_Wreck_Heli_Attack_02_F","Land_Wreck_HMMWV_F","Land_Wreck_Hunter_F","Land_Wreck_Offroad2_F",
	"Land_Wreck_Plane_Transport_01_F","Land_Wreck_Skodovka_F","Land_Wreck_Slammer_F","Land_Wreck_Slammer_hull_F",
	"Land_Wreck_Slammer_turret_F","Land_Wreck_Slammer_turret_F","Land_Wreck_T72_turret_F","Land_Wreck_Truck_dropside_F",
	"Land_Wreck_Truck_F","Land_Wreck_UAZ_F","Land_Wreck_Ural_F","Land_Wreck_Van_F",
	"Plane_Fighter_01_wreck_F","Plane_Fighter_02_wreck_F","Plane_Fighter_04_wreck_F"
	];

 

Share this post


Link to post
Share on other sites
18 minutes ago, GEORGE FLOROS GR said:

You can use the script and add


_createVehicle allowdamage false;

but generally you can use the script even for the building destruction , because it will work faster , than  waiting to get derstoyed and you can add after some smoke and fire effects.

You can hide also the trees in this area.

 

Hei! So what you're saying is that your building replace script should be used to replace buildings with the ruined versions instead of running Feuerex's damage script (to increase performance)?

It's a cool idea but I want all the trees to be burnt and/or stumps and then blown over and the damage script does that.

Furthermore, there are tons of other objects in the are that I want destroyed.

And

allowDamage false

is equivalent to unchecking Enable Damage in the attributes dialogue which doesn't work.

Share this post


Link to post
Share on other sites
2 minutes ago, vihkr said:

Enable Damage in the attributes dialogue

 

in the script not in the editor.

Share this post


Link to post
Share on other sites

So this should be able to handle props like

Land_ruin_rubble

as well? Cool thanks.

Share this post


Link to post
Share on other sites
4 minutes ago, GEORGE FLOROS GR said:

 

in the script not in the editor.

Understood. Neither works.

Share this post


Link to post
Share on other sites

You can destruct then the certain area , but only certain objects and not everything such as buildings.

Share this post


Link to post
Share on other sites
1 hour ago, vihkr said:

Bonus 2: any scripts to scatter random garbarge/wreckage/rubble in a radius?

 

 

Just wrote it :

 

WIP GF Object Spawner Script - Mod

Spoiler




//________________	Author : GEORGE FLOROS [GR]	___________	13.03.19	_____________ 


/*
________________ GF Object Spawner Script - Mod	________________

Not Published yet	SOON !

Please keep the Credits or add them to your Diary

https://community.bistudio.com/wiki/SQF_syntax
Don't try to open this with the simple notepad.
For everything that is with comment  //  in front  or between /*
means that it is disabled , so there is no need to delete the extra lines.

You can open this ex:
with notepad++
https://notepad-plus-plus.org/

ArmA 3 | Notepad ++ SQF tutorial
https://www.youtube.com/watch?v=aI5P7gp3x90

and also use the extra pluggins
(this way will be better , it will give also some certain colors to be able to detect ex. problems )
http://www.armaholic.com/page.php?id=8680

or use any other program for editing .

For the Compilation List of my GF Scripts , you can search in:
https://forums.bohemia.net/forums/topic/215850-compilation-list-of-my-gf-scripts/

BI Forum Ravage Club Owner :
https://forums.bohemia.net/clubs/73-bi-forum-ravage-club/
*/


//________________ Settings _____________
//________________ Set true or false  _____________

GF_Object_Spawner_Debug_Markers				= true;
GF_Object_Spawner_Systemchat_info			= true;		
GF_Object_Spawner_diag_log_info				= true;

GF_Object_Spawner_Number					= 100;		//	Number of spawned objects
GF_Object_Spawner_Minimum_Distance			= 1000;		//	Minimum Distance from the center , this can be changed to maximum by changing < (of the Map , _centerPosition)
GF_Object_Spawner_DynamicSimulationSystem	= true;		//	enableDynamicSimulationSystem




if (GF_Object_Spawner_Systemchat_info) then {
systemchat "GF Object Spawner Script initializing - Mod";			
};	

if (GF_Object_Spawner_diag_log_info) then {
diag_log "//________________	GF Object Spawner Script - Mod initializing	________________";
};



	
if(GF_Object_Spawner_DynamicSimulationSystem) then {
enableDynamicSimulationSystem true;
};	


_centerPosition = getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition");

_a = 0;
while {_a < GF_Object_Spawner_Number} do {

	_pos = [] call BIS_fnc_randomPos;
	
	_array = [
	"Land_Wreck_Commanche_F","Land_Wreck_Offroad_F","Land_UWreck_Heli_Attack_02_F","Land_UWreck_Mv22_F","Land_Wreck_BMP2_F",
	"Land_Wreck_Car_F","Land_Wreck_Car2_F","Land_Wreck_Car3_F","Land_Wreck_CarDismantled_F","Land_Wreck_Heli_Attack_01_F",
	"Land_Wreck_Heli_Attack_02_F","Land_Wreck_HMMWV_F","Land_Wreck_Hunter_F","Land_Wreck_Offroad2_F",
	"Land_Wreck_Plane_Transport_01_F","Land_Wreck_Skodovka_F","Land_Wreck_Slammer_F","Land_Wreck_Slammer_hull_F",
	"Land_Wreck_Slammer_turret_F","Land_Wreck_Slammer_turret_F","Land_Wreck_T72_turret_F","Land_Wreck_Truck_dropside_F",
	"Land_Wreck_Truck_F","Land_Wreck_UAZ_F","Land_Wreck_Ural_F","Land_Wreck_Van_F",
	"Plane_Fighter_01_wreck_F","Plane_Fighter_02_wreck_F","Plane_Fighter_04_wreck_F"
	];
	
	if (_pos distance _centerPosition > GF_Object_Spawner_Minimum_Distance) then {	//	this can be changed to maximum by changing <
		
		_a = _a + 1;
		
		_createVehicle = createVehicle [selectrandom _array, _pos, [], 0, "CAN_COLLIDE"];
		_createVehicle setDir random 360;
		_createVehicle setfuel random 1;
		_createVehicle setDamage random 1;
		//_createVehicle enableSimulationGlobal true;
		
		if(GF_Object_Spawner_DynamicSimulationSystem) then {
		_createVehicle enableDynamicSimulation true;
		};
		
		_format = format ["%1",_pos];
		_createVehicle setVehicleVarName _format;
		
		
		if(GF_Object_Spawner_Debug_Markers) then {
		
		_Marker_pos = format ["%1",_pos];
		_Marker = createMarker [_Marker_pos,_pos];		
		_Marker setMarkerShape "ICON"; 
		_Marker setMarkerType "mil_marker"; 
		_Marker setMarkerColor "ColorOrange"; 
		_Marker setMarkerText format ["object : %1",_a];	
		_Marker setMarkerSize [1,1]; 	
		};
		

		if (GF_Object_Spawner_Systemchat_info) then {
		systemchat format ["objects : %1",_a];				
		};	
		
		if (GF_Object_Spawner_diag_log_info) then {
		diag_log format ["objects : %1",_a];		
		};
	
	};
	
};


if (GF_Object_Spawner_Systemchat_info) then {
systemchat "GF Object Spawner Script - Mod initialized";			
};	

if (GF_Object_Spawner_diag_log_info) then {
diag_log "//________________	GF Object Spawner Script - Mod initialized	________________";
};

 

 

Share this post


Link to post
Share on other sites

this is damage without effects :

_nearestobjects = nearestobjects [this,[],3370];{_x setDamage [1, false];} foreach _nearestobjects;

 

Check also this :

// Set here the Destructive radius
_radius = 1000;

_nearObjects = (getPos player) nearObjects ["Static",_radius];	
{_x setDamage [1, false];} forEach _nearObjects;

 

Share this post


Link to post
Share on other sites
20 hours ago, GEORGE FLOROS GR said:

 

 

Just wrote it :

 

WIP GF Object Spawner Script - Mod

  Reveal hidden contents





//________________	Author : GEORGE FLOROS [GR]	___________	13.03.19	_____________ 


/*
________________ GF Object Spawner Script - Mod	________________

Not Published yet	SOON !

Please keep the Credits or add them to your Diary

https://community.bistudio.com/wiki/SQF_syntax
Don't try to open this with the simple notepad.
For everything that is with comment  //  in front  or between /*
means that it is disabled , so there is no need to delete the extra lines.

You can open this ex:
with notepad++
https://notepad-plus-plus.org/

ArmA 3 | Notepad ++ SQF tutorial
https://www.youtube.com/watch?v=aI5P7gp3x90

and also use the extra pluggins
(this way will be better , it will give also some certain colors to be able to detect ex. problems )
http://www.armaholic.com/page.php?id=8680

or use any other program for editing .

For the Compilation List of my GF Scripts , you can search in:
https://forums.bohemia.net/forums/topic/215850-compilation-list-of-my-gf-scripts/

BI Forum Ravage Club Owner :
https://forums.bohemia.net/clubs/73-bi-forum-ravage-club/
*/


//________________ Settings _____________
//________________ Set true or false  _____________

GF_Object_Spawner_Debug_Markers				= true;
GF_Object_Spawner_Systemchat_info			= true;		
GF_Object_Spawner_diag_log_info				= true;

GF_Object_Spawner_Number					= 100;		//	Number of spawned objects
GF_Object_Spawner_Minimum_Distance			= 1000;		//	Minimum Distance from the center , this can be changed to maximum by changing < (of the Map , _centerPosition)
GF_Object_Spawner_DynamicSimulationSystem	= true;		//	enableDynamicSimulationSystem




if (GF_Object_Spawner_Systemchat_info) then {
systemchat "GF Object Spawner Script initializing - Mod";			
};	

if (GF_Object_Spawner_diag_log_info) then {
diag_log "//________________	GF Object Spawner Script - Mod initializing	________________";
};



	
if(GF_Object_Spawner_DynamicSimulationSystem) then {
enableDynamicSimulationSystem true;
};	


_centerPosition = getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition");

_a = 0;
while {_a < GF_Object_Spawner_Number} do {

	_pos = [] call BIS_fnc_randomPos;
	
	_array = [
	"Land_Wreck_Commanche_F","Land_Wreck_Offroad_F","Land_UWreck_Heli_Attack_02_F","Land_UWreck_Mv22_F","Land_Wreck_BMP2_F",
	"Land_Wreck_Car_F","Land_Wreck_Car2_F","Land_Wreck_Car3_F","Land_Wreck_CarDismantled_F","Land_Wreck_Heli_Attack_01_F",
	"Land_Wreck_Heli_Attack_02_F","Land_Wreck_HMMWV_F","Land_Wreck_Hunter_F","Land_Wreck_Offroad2_F",
	"Land_Wreck_Plane_Transport_01_F","Land_Wreck_Skodovka_F","Land_Wreck_Slammer_F","Land_Wreck_Slammer_hull_F",
	"Land_Wreck_Slammer_turret_F","Land_Wreck_Slammer_turret_F","Land_Wreck_T72_turret_F","Land_Wreck_Truck_dropside_F",
	"Land_Wreck_Truck_F","Land_Wreck_UAZ_F","Land_Wreck_Ural_F","Land_Wreck_Van_F",
	"Plane_Fighter_01_wreck_F","Plane_Fighter_02_wreck_F","Plane_Fighter_04_wreck_F"
	];
	
	if (_pos distance _centerPosition > GF_Object_Spawner_Minimum_Distance) then {	//	this can be changed to maximum by changing <
		
		_a = _a + 1;
		
		_createVehicle = createVehicle [selectrandom _array, _pos, [], 0, "CAN_COLLIDE"];
		_createVehicle setDir random 360;
		_createVehicle setfuel random 1;
		_createVehicle setDamage random 1;
		//_createVehicle enableSimulationGlobal true;
		
		if(GF_Object_Spawner_DynamicSimulationSystem) then {
		_createVehicle enableDynamicSimulation true;
		};
		
		_format = format ["%1",_pos];
		_createVehicle setVehicleVarName _format;
		
		
		if(GF_Object_Spawner_Debug_Markers) then {
		
		_Marker_pos = format ["%1",_pos];
		_Marker = createMarker [_Marker_pos,_pos];		
		_Marker setMarkerShape "ICON"; 
		_Marker setMarkerType "mil_marker"; 
		_Marker setMarkerColor "ColorOrange"; 
		_Marker setMarkerText format ["object : %1",_a];	
		_Marker setMarkerSize [1,1]; 	
		};
		

		if (GF_Object_Spawner_Systemchat_info) then {
		systemchat format ["objects : %1",_a];				
		};	
		
		if (GF_Object_Spawner_diag_log_info) then {
		diag_log format ["objects : %1",_a];		
		};
	
	};
	
};


if (GF_Object_Spawner_Systemchat_info) then {
systemchat "GF Object Spawner Script - Mod initialized";			
};	

if (GF_Object_Spawner_diag_log_info) then {
diag_log "//________________	GF Object Spawner Script - Mod initialized	________________";
};

 

 

 

George, how would you add a random fire and smoke effects to some of those wrecks?

Also, the wrecks won't spawn underwater or they can? Because them spawning underwater would be a waste of resources I guess.

  • Like 1

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

×