Jump to content
🛡️FORUMS ARE IN READ-ONLY MODE Read more... ×
Sign in to follow this  
Cyper

Smoke, dust, fire, and shaking screen

Recommended Posts

My old tricks that I used for smoke, dust and fire effects in ARMA II does not work anymore. I have found one firescript for ARMA III but with that script I couldn't control the fires size, lenght etc.

And the camera shake effect does not work for me.

Share this post


Link to post
Share on other sites

For the cam shake:

enableCamShake true; addCamShake [5,200,5];

To stop it:

enableCamShake false;

The parameters are explained here: https://community.bistudio.com/wiki/addCamShake

Concerning the particle effects, you can use this tool to generate your smoke ect. : http://forums.bistudio.com/showthread.php?157226-Particle-Editor

(I am not advertising my stuff, it is a port from arma 1 ;))

Share this post


Link to post
Share on other sites

I have already tried to use ''addshake'' before through a trigger, and it does not work anymore.

Is there any way to add smoke, dust and fire without having to download something? There must be a script for it. At least for fire because i've seen it in a campaign mission.

Share this post


Link to post
Share on other sites

I use this one; it's taken from the first episode of the campaign:

private ["_effect","_pos","_fire","_smoke"];
private ["_light","_brightness","_color","_ambient","_intensity","_attenuation"];

_pos 	= _this select 0;
_effect = _this select 1;

_fire	= "";
_smoke	= "";
_light	= objNull;
_color	= [1,0.85,0.6];
_ambient = [1,0.3,0];

switch (_effect) do {
case "FIRE_SMALL" : {
	_fire 	= "SmallDestructionFire";
	_smoke 	= "SmallDestructionSmoke";
	_brightness	= 1.0;
	_intensity	= 10;
	_attenuation = [0,0,0,1];
};
case "FIRE_MEDIUM" : {
	_fire 	= "MediumDestructionFire";
	_smoke 	= "MediumDestructionSmoke";
	_brightness	= 1.0;
	_intensity	= 400;
	_attenuation = [0,0,0,2];
};
case "FIRE_BIG" : {
	_fire 	= "BigDestructionFire";
	_smoke 	= "BigDestructionSmoke";
	_brightness	= 1.0;
	_intensity	= 1600;
	_attenuation = [0,0,0,1.6];
};
case "SMOKE_SMALL" : {
	_smoke 	= "SmallDestructionSmoke";
};
case "SMOKE_MEDIUM" : {
	_smoke 	= "MediumSmoke";
};
case "SMOKE_BIG" : {
	_smoke 	= "BigDestructionSmoke";
};
};

if (_fire != "") then {
_eFire = "#particlesource" createVehicleLocal _pos;
_eFire setParticleClass _fire;
_eFire setPosATL _pos;
};

if (_smoke != "") then {
_eSmoke = "#particlesource" createVehicleLocal _pos;
_eSmoke setParticleClass _smoke;
_eSmoke setPosATL _pos;
};

//create lightsource
if (_effect in ["FIRE_BIG", "FIRE_MEDIUM", "FIRE_SMALL"]) then {
_pos   = [_pos select 0,_pos select 1,(_pos select 2)+1];
_light = createVehicle ["#lightpoint", _pos, [], 0, "CAN_COLLIDE"];
_light setPosATL _pos;

_light setLightBrightness _brightness;
_light setLightColor _color;
_light setLightAmbient _ambient;
_light setLightIntensity _intensity;
_light setLightAttenuation _attenuation;
_light setLightDayLight false;
};

Simply execute via:

nul = [(getPos player), "FIRE_BIG"] execVM "createFireEffect.sqf";

Or make a function out of it if you intend to use it multiple times.

Share this post


Link to post
Share on other sites
Sign in to follow this  

×