Jump to content
darkxess

How to make smoke stay around longer?

Recommended Posts

Hey guys, when a vehicle is destroyed, it smokes, explodes, and at the beginning has fire too (obviously)

Well I am wondering how to make it simmer for longer, once the fire and exploding has finished, how to make the smoke go from thick, less thick, and then just normal

in a longer period than it does now (around 2/3 mins). I am thinking 7/8 mins long and/or when I have left the area or moved to such and such distance it would make the

smoke die down until stopped altogether.

Any help please?

Thank you.

Share this post


Link to post
Share on other sites

What about creating a new smoke grenade every X seconds until your desired time? I'm not aware of any way to extend the time it takes for wrecks to smoke n' burn... except maybe running Blastcore

Share this post


Link to post
Share on other sites

It's my biggest immersion killer when the fire and smoke from destroyed vehicles disappears so quickly, and looks like some spirit leaving earth once finished.. In my opinion if it needs to die out then it should do from reverse top to bottom?

in a longer period than it does now (around 2/3 mins). I am thinking 7/8 mins long and/or when I have left the area or moved to such and such distance it would make the

I'd love for it to be able to stay around indefinitely, possibly have some cap if there are over a certain amount of vehicles, although having a lighter weighted smoke should be ok.

The smoke and fire is an actual "object" that can be placed on the map, I imagine you would need some script that would check when the smoke is about to exit and spawn another one on the vehicle.. It needn't be thick billowing smoke, I'm sure there are already variations with smaller fire and wispy smoke?

Share this post


Link to post
Share on other sites

I built such a script for ARMA a few years back. It replaces the burning object with a fresh one in a loop. Script may need updating, but you can take a look at it here. It was pretty simple, just sleeps awhile and then creates an identical object at position [0,0,0], sets its damage to zero so it starts burning/smoking, deletes the original object, and teleports the new one to the original object's position. Script is probably .sqs instead of .sqf, but it should work.

Share this post


Link to post
Share on other sites

What Cobra4v320 said, use a smoke module (you can easily change the params to set the color, thickness and density of the smoke also). It stays as long as you want (up to forever). It also works in MP. If you want the fire to persist, use a fire module also. You can set it to not cause damage so it doesn't create a huge hazard. These modules are found under effects. Real easy to us.

Das

Share this post


Link to post
Share on other sites
What Cobra4v320 said, use a smoke module (you can easily change the params to set the color, thickness and density of the smoke also). It stays as long as you want (up to forever). It also works in MP. If you want the fire to persist, use a fire module also. You can set it to not cause damage so it doesn't create a huge hazard. These modules are found under effects. Real easy to us.

Das

As being new to A3 that also includes being new to scripting - so as much help would be great, maybe even an example mission and then explaining which parts to edit etc?

Thank you guys.

Share this post


Link to post
Share on other sites

No scripting required. It is all in the editor. Just plop down a smoke module on the "wrecked" chopper and viola, you are done. You can play with the sliders in the module (like lifespan or size of particles) to change the look and feel of the smoke if you want but it comes out looking like smoke from a large fire. The only way you would need to script it is if you wanted to have it appear after the game starts at a dynamic location. For this, you would need a couple of lines of script to get it to work. To help out some, let us know what you are specifically trying to achieve and we can get more detailed in the help.

Das

ps - I am not a scripting guru like some of the brains on here but I will do what I can for you.

Share this post


Link to post
Share on other sites
No scripting required. It is all in the editor. Just plop down a smoke module on the "wrecked" chopper and viola, you are done. You can play with the sliders in the module (like lifespan or size of particles) to change the look and feel of the smoke if you want but it comes out looking like smoke from a large fire. The only way you would need to script it is if you wanted to have it appear after the game starts at a dynamic location. For this, you would need a couple of lines of script to get it to work. To help out some, let us know what you are specifically trying to achieve and we can get more detailed in the help.

Das

ps - I am not a scripting guru like some of the brains on here but I will do what I can for you.

I dont mean this way mate, I mean I want to script the whole games smoke system so when im playing a mission this smoke system would work on everything that I or my team

have destroyed in game. Now with new and "random" units spawning around the map - they will all have to then work with this system, UNLESS a you suggest I would have to manually

place each and every vehicle on the map myself and script it. But I dont want it this way, I want it all random and the smoke system will always work from the start SP and MP.

:)

Share this post


Link to post
Share on other sites

The closest I've seen to lasting fire and smoke was JTD's fireandsmoke mod in Arma 2, but he hasn't fixed it yet to be updated with Arma 3 in its current release. Fingers still crossed though.

Share this post


Link to post
Share on other sites

Smoke module:

/*
File: fn_moduleEffectsSmoke.sqf
Author: Borivoj Hlava

Description:
Module function. Creates smoke on position of module (called usually by BIS_fnc_moduleEffectsEmitterCreator).

Parameter(s):
_this select 0 (Object) - Module logic.

Returned value:
None.
*/

_logic = [_this,0,objnull,[objnull]] call bis_fnc_param;
_emitter = (_logic getVariable "effectEmitter") select 0;
_pos = getPos _logic;
_emitter setPos _pos;


//--- variables set by user
_colorRed = _logic getVariable ["ColorRed","0.5"];
_colorGreen = _logic getVariable ["ColorGreen","0.5"];
_colorBlue = _logic getVariable ["ColorBlue","0.5"];
_colorAlpha = _logic getVariable ["ColorAlpha","0.5"];
_timeout = _logic getVariable ["Timeout",0];
_particleLifeTime = _logic getVariable ["ParticleLifeTime",50];
_particleDensity = _logic getVariable ["ParticleDensity",10];
_particleSize = _logic getVariable ["ParticleSize",1];
_particleSpeed = _logic getVariable ["ParticleSpeed",1];
_particleLifting = _logic getVariable ["ParticleLifting",1];
_windEffect = _logic getVariable ["WindEffect",1];
_effectSize = _logic getVariable ["EffectSize",1];
_expansion = _logic getVariable ["Expansion",1];

if (_colorRed > 1) then {_colorRed = 1};
if (_colorRed < 0) then {_colorRed = 0};
if (_colorGreen > 1) then {_colorGreen = 1};
if (_colorGreen < 0) then {_colorGreen = 0};
if (_colorBlue > 1) then {_colorBlue = 1};
if (_colorBlue < 0) then {_colorBlue = 0};


//--- particle effect creation
_emitter setParticleParams [["\A3\data_f\ParticleEffects\Universal\Universal_02",8,0,40,1],"","billboard",1,_particleLifeTime,[0,0,0],[0,0,2*_particleSpeed],0,0.05,0.04*_particleLifting,0.05*_windEffect,[1 *_particleSize + 1,1.8 * _particleSize + 15],
	[[0.7*_colorRed,0.7*_colorGreen,0.7*_colorBlue,0.7*_colorAlpha],[0.7*_colorRed,0.7*_colorGreen,0.7*_colorBlue,0.6*_colorAlpha],[0.7*_colorRed,0.7*_colorGreen,0.7*_colorBlue,0.45*_colorAlpha],
	[0.84*_colorRed,0.84*_colorGreen,0.84*_colorBlue,0.28*_colorAlpha],[0.84*_colorRed,0.84*_colorGreen,0.84*_colorBlue,0.16*_colorAlpha],[0.84*_colorRed,0.84*_colorGreen,0.84*_colorBlue,0.09*_colorAlpha],
	[0.84*_colorRed,0.84*_colorGreen,0.84*_colorBlue,0.06*_colorAlpha],[1*_colorRed,1*_colorGreen,1*_colorBlue,0.02*_colorAlpha],[1*_colorRed,1*_colorGreen,1*_colorBlue,0*_colorAlpha]],
	[1,0.55,0.35], 0.1, 0.08*_expansion, "", "", ""];
// ["JmenoModelu"],"NazevAnimace","TypAnimace",RychlostAnimace,DobaZivota,[Pozice],[silaPohybu],Rotace,Hmotnost,Objem,Rubbing,[Velikost],
// [barva],[FazeAnimace],PeriodaNahodnehoSmeru,IntensitaNahodnehoSmeru,"OnTimer","PredZnicenim","Objekt";
_emitter setParticleRandom [_particleLifeTime/2, [0.5*_effectSize,0.5*_effectSize,0.2*_effectSize], [0.3,0.3,0.5], 1, 0, [0,0,0,0.06], 0, 0];
					//[lifeTime, position, moveVelocity, rotationVelocity, size, color, randomDirectionPeriod, randomDirectionIntensity] 
_emitter setDropInterval (1/_particleDensity);


//--- timeout
if (_timeout != 0) then {
[_logic,_timeout] spawn {
	_logic = _this select 0;
	_timeout = _this select 1;

	sleep _timeout;
	deleteVehicle ((_logic getVariable "effectEmitter") select 0);
};
};

Not all that complicated.

To remove standart smoke I guess you will have to delete vehicle's wreck and create new wreck that doesn't smoking.

Share this post


Link to post
Share on other sites

To remove standart smoke I guess you will have to delete vehicle's wreck and create new wreck that doesn't smoking.

So this is a script above then or how do I add this?

Thanks

Share this post


Link to post
Share on other sites

This is not a script. This is a code inside "smoke effect module", you can use it as an example. Good luck.

Edited by Champ-1

Share this post


Link to post
Share on other sites
This is not a script. This is a code inside "smoke effect module", you can use it as an example. Good luck.

Ok, ive no idea how to add this... just look in the editor, seen the smoke module then what? but this code where? I do not understand, mind helping me maybe with an example mission?

Thanks

Edit: This is still not going to do what I want right? when I leave the area the smoke will cut out? etc...

Edited by DarkXess

Share this post


Link to post
Share on other sites

Basicly you telling "I want this and this. Please make it from scratch for me, thanks".

It's not gonna happen, you need to have at least something to begin with.

Share this post


Link to post
Share on other sites
Basicly you telling "I want this and this. Please make it from scratch for me, thanks".

It's not gonna happen, you need to have at least something to begin with.

So DON'T bother replying then! I ASKED FOR help and you come slandering me saying that I want everything done when in fact its not. Its just one simple thing to some people

like you but I have no idea on this ONE simple thing, so don't go saying that I want the f**king thing to be done for me when that is not the case! I CAN NOT and DO NOT know

how to do it, that is a different matter.

Champ-1 maybe your new to this community, as ive been around for a while and we always help each other out, not some pig headed fool like yourself that's been around 5 minutes

and then thinking he knows the place, so don't even bother going there. I don't want your help okay, I will wait for a reply from others pointing me in the right way - goodbye!

Edited by DarkXess

Share this post


Link to post
Share on other sites
On 4/24/2014 at 10:15 AM, johnnyboy said:

I built such a script for ARMA a few years back. It replaces the burning object with a fresh one in a loop. Script may need updating, but you can take a look at it here. It was pretty simple, just sleeps awhile and then creates an identical object at position [0,0,0], sets its damage to zero so it starts burning/smoking, deletes the original object, and teleports the new one to the original object's position. Script is probably .sqs instead of .sqf, but it should work.


would this be difficult to impliment in a mod to work across all SP missions similar to blastcore?

Blastcore is too CPU heavy, would be better with vanilla smoke look for burning wrecks...

any tips?

Share this post


Link to post
Share on other sites
4 hours ago, bendy303 said:

would this be difficult to impliment in a mod to work across all SP missions similar to blastcore?

Blastcore is too CPU heavy, would be better with vanilla smoke look for burning wrecks...

any tips?

I don't know.  You could make an experiment where you place 100 vehicles, and setDamage 1 on all of them.   Then test FPS with blastcore.   Then run it again without blastcore, and run a burning vehicle replacement script on the 100 vehicles.  My gut feel is won't be better, but I really have no idea.

Share this post


Link to post
Share on other sites
2 hours ago, johnnyboy said:

I don't know.  You could make an experiment where you place 100 vehicles, and setDamage 1 on all of them.   Then test FPS with blastcore.   Then run it again without blastcore, and run a burning vehicle replacement script on the 100 vehicles.  My gut feel is won't be better, but I really have no idea.


the reason i mentioned blastcore is because it has the longer smoke for burned vehicles already.......but I would like just this effect but with vanilla. And want it in a mod, (that i can load with the launcher.)... so I saw your script but I have no idea how to turn it into a mod. Blastcore is generally heavier on cpu

 

I am a newbie to ARMA scripting but i do know how to code a little in js and php,...is it much of a learning curve to impliment your script into a mod?

Share this post


Link to post
Share on other sites
8 hours ago, johnnyboy said:

I don't know.  You could make an experiment where you place 100 vehicles, and setDamage 1 on all of them.   Then test FPS with blastcore.   Then run it again without blastcore, and run a burning vehicle replacement script on the 100 vehicles.  My gut feel is won't be better, but I really have no idea.


to put it simply: your code is not a lot of code - is there a fast and easy method to put this in a mod? (not a mission, but a mod that affects all mission in Arma)

Share this post


Link to post
Share on other sites
15 minutes ago, bendy303 said:

to put it simply: your code is not a lot of code - is there a fast and easy method to put this in a mod? (not a mission, but a mod that affects all mission in Arma)

I've made alot of scripts, but never actually made a mod.  Its probably not too hard, just have to research what the steps are.

Share this post


Link to post
Share on other sites
13 hours ago, bendy303 said:

is there a fast and easy method to put this in a mod?

Have a look at the Guides and Tutorials for modding, im sure theres something there that can help:

 

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

×