Jump to content
Sign in to follow this  
Drakenof

Spawning fire

Recommended Posts

I'm running into an issue, i can't spawn fire using the " old " method :

BIS_Effects_Burn=compile preprocessFileLineNumbers "\ca\Data\ParticleEffects\SCRIPTS\destruction\burn.sqf";

[object, intensity, time, lifecheck, fade] spawn BIS_Effects_Burn;

Doesn't seems to work in the alpha. So far i didn't manage to pull off another method, can someone give me some help with this ?

Thanks.

Share this post


Link to post
Share on other sites

I am actually wondering the same. I found a reference to this file: "\A3\data_f\ParticleEffects\SCRIPTS\destruction\burn.sqf" but it doesn't seem to exist.

If anyone has anything on this, I would be much obliged.

Share this post


Link to post
Share on other sites

This file doesn't exist anymore. Some scripted particle effects were moved into configs, reworked, renamed, etc. If you need fire and smoke in your mission, you can insert emitter in editor (insert unit > empty > emitters > fire). But unfortunately you won't be able to change the intensity of this effect.

Share this post


Link to post
Share on other sites
This file doesn't exist anymore. Some scripted particle effects were moved into configs, reworked, renamed, etc. If you need fire and smoke in your mission, you can insert emitter in editor (insert unit > empty > emitters > fire). But unfortunately you won't be able to change the intensity of this effect.

i've not such emitters in my editor

Share this post


Link to post
Share on other sites

Here's a simple way to add a fire, on the editor put any object and in the init field enter:

TheObject = "test_EmptyObjectForFireBig" createVehicle position this;
TheObject attachTo[this,[0,1.5,-1]];

If you want to hide the object and just have the fire you can use hideObject.

And here's a little more complete script that I think it's used on the survie campaign:

[] spawn
{
sleep 0.01;

private["_fn_createEffect"];

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

	//["[PARTICLE EFFECT CREATED]: %1",_this] call BIS_fnc_logFormat;

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

	_fire	= "";
	_smoke	= "";
	_light	= objNull;

	/*
	_color		= [1,0.85,0.6];
	_ambient	= [1,0.45,3];
	*/

	_color		= [1,0.85,0.6];
	_ambient	= [1,0.3,0];


	switch (_effect) do
	{
		case "FIRE_SMALL":
		{
			_fire 	= "SmallDestructionFire";
			_smoke 	= "SmallDestructionSmoke";
		};
		case "FIRE_MEDIUM":
		{
			_fire 	= "MediumDestructionFire";
			_smoke 	= "MediumDestructionSmoke";

			_brightness	= 1.0;
			//_color	= [1,0.85,0.6];
			//_ambient	= [1,0.3,0];
			_intensity	= 400;
			_attenuation	= [0,0,0,2];
		};
		case "FIRE_BIG":
		{
			_fire 	= "BigDestructionFire";
			_smoke 	= "BigDestructionSmoke";

			_brightness	= 1.0;
			//_color	= [1,0.85,0.6];
			//_ambient	= [1,0.45,3];
			_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"]) 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;
	};
};

#define FIRE_SMALL	"Sign_Pointer_Yellow_F"
#define FIRE_MEDIUM     "Sign_Arrow_Large_Cyan_F"
#define FIRE_BIG        "Sign_Arrow_Large_Pink_F"
#define SMOKE_SMALL     "Sign_Pointer_Green_F"
#define SMOKE_MEDIUM    "Sign_Pointer_Blue_F"
#define SMOKE_BIG	"Sign_Arrow_Large_Blue_F"

private["_helperClass","_effectType"];

{
	_helperClass 	= _x select 0;
	_effectType 	= _x select 1;

	{
		[getPosATL _x,_effectType] call _fn_createEffect;
	}
	forEach (allMissionObjects _helperClass);
}
forEach
[
	[FIRE_SMALL,"FIRE_SMALL"],
	[FIRE_MEDIUM,"FIRE_MEDIUM"],
	[FIRE_BIG,"FIRE_BIG"],
	[sMOKE_SMALL,"SMOKE_SMALL"],
	[sMOKE_MEDIUM,"SMOKE_MEDIUM"],
	[sMOKE_BIG,"SMOKE_BIG"]
];
};

Edited by wok

Share this post


Link to post
Share on other sites

Or use my method, which is also based on a script from the campaign and works with all objects, not just with _helperClass.

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
Sign in to follow this  

×