Jump to content

Recommended Posts

Hey all, 


I'm working on a paradrop mission for my ARMA group and having a little trouble.

I have a trigger set up to activate when the players'  fly over a certain point that turns on an Effect:Tracers module.

 

My question: How can I set up a second trigger to toggle the tracer module off? As cool as the effect is, once your boots are on the ground it's immersive breaking to see the tracers come from thin air.

Share this post


Link to post
Share on other sites

Solved.

In case anyone else is curious, I just gave each tracer module a variable name (Tracer, Tracer1, Tracer2, etc.) and then used the deleteVehicle command on a second trigger activated by the plane after the paradrop.


deleteVehicle Tracer;
deleteVehicle Tracer1;

deleteVehicle Tracer2;
etc.
 

  • Like 2

Share this post


Link to post
Share on other sites

Sorry for off topic but how to use Tracers Module with custom weapon or vehicle (ZU-23)?

  • Like 1

Share this post


Link to post
Share on other sites

Enter weapon and magazine classnames in the designated fields:

 

PFHvi1y.png

 

The magazine class is only necessary if you want to use a specific magazine. Leave it empty to use the weapon's default magazine, though often the default magazine has no tracers.

 

Note that the "Tracer Color" pull-down does nothing when you define a custom weapon.

 

For the life of me I can't get any vehicle/turret weapons to work. Not sure what the trick is there, if it's possible.

  • Like 1

Share this post


Link to post
Share on other sites
50 minutes ago, Harzach said:

For the life of me I can't get any vehicle/turret weapons to work.

As the function does absolutely nothing with those settings, CustomWeapon, CustomMagazine and CustomTarget.

Never mind was looking at the old version of the script, it was overwritten in modules_f_curator. Posted below...

Spoiler

params
[
	["_logic",objNull,[objNull]],
	"",
	["_activated",true,[true]]
];

if (_activated) then {
	if (isserver) then {
		private _sideID = (_logic getvariable ["Side","0"]) call BIS_fnc_parseNumberSafe;
		private _side = _sideID call bis_fnc_sideType;
		private _min = (_logic getvariable ["Min","10"]) call BIS_fnc_parseNumberSafe;
		private _max = (_logic getvariable ["Max","20"]) call BIS_fnc_parseNumberSafe;
		private _max = _max - _min;

		private _weapon = (_logic getVariable ["Weapon",""]);
		private _magazine = toLower (_logic getVariable ["Magazine",""]);
		private _target = call compile (_logic getVariable ["Target",""]);

		if(isNil "_target")then{_target = objNull};

		if(_weapon != "" )then
		{
			// Validate weapon
			private _weaponCfg = configFile >> "CfgWeapons" >> _weapon;
			if(!isClass _weaponCfg)exitWith
			{
				if (_weapon != "") then {["'%1' not found in CfgWeapons",_weapon] call bis_fnc_error;};
			};
			private _compatibileMagazine = [_weapon] call bis_fnc_compatibleMagazines;
			// Automatically add first compatibile magazine
			if(_magazine == "")then
			{
				if(_compatibileMagazine isEqualTo [])exitWith
				{
					if (_weapon != "") then {["'%1' doesn't have any valid magazines",_weapon] call bis_fnc_error;};
				};
				_magazine = _compatibileMagazine # 0;
			}else
			{
				// Validate magazine manually selected magazine
				if(! (_magazine in _compatibileMagazine) )exitWith
				{
					if (_magazine != "") then {["'%1' is not compatible with '%2'",_magazine,_weapon] call bis_fnc_error;};
				};
			};
		}else
		{
			_weapon = "FakeWeapon_moduleTracers_F";
			_magazine = (["200Rnd_65x39_belt_Tracer_Green","200Rnd_65x39_belt_Tracer_Red","200Rnd_65x39_belt_Tracer_Yellow"] select _sideID);
		};
		_gunner = createagent ["b_soldier_f",position _logic,[],0,"none"];
		_gunner attachto [_logic];
		_gunner setcaptive true;
		_gunner hideobject true;
		_gunner allowDamage false;
		_gunner switchmove "amovpercmstpsraswrfldnon";
		_gunner disableai "anim";
		_gunner disableai "move";
		_gunner disableai "target";
		_gunner disableai "autotarget";
		_gunner setbehaviour "careless";
		_gunner setcombatmode "blue";
		removeallweapons _gunner;
		_gunner addmagazine _magazine;
		_gunner addweapon _weapon;
		_gunner selectweapon _weapon;
		_logic setvariable ["bis_fnc_moduleTracers_gunner",_gunner,true];

		private _vectorToTarget	= [0,0,0];
		private _targetPos		= [0,0,0];
		private _logicPos		= getPosASLVisual _logic;
		private _dir			= 0;
		private _pitch			= 0;

		while {!isnull _gunner && !isnull _logic} do {
			if ({_gunner distance _x < 100} count (playableunits + switchableunits) == 0) then {
				_delay = 0.05 + random 0.1;

		 		private _target = call compile (_logic getVariable ["Target","objNull"]);
				if(isNil "_target")then{_target = objNull};

				// Sets vector to the target if it's specified
				if(!(_target isEqualTo objNull))then{
					// Refresh target
					if(_target isEqualType objNull)then
					{
						_targetPos = getPosASLVisual _target;
					}else
					{
						_targetPos = _target;
					};
					_vectorToTarget = _logicPos vectorFromTo _targetPos;

					// Vector randomization
					_vectorToTarget = _vectorToTarget vectorAdd [random[-0.05,0,0.05],random[-0.05,0,0.05],random[-0.05,0,0.05]];
					_logic setVectorDirAndUp [_vectorToTarget,_vectorToTarget vectorCrossProduct [-(_vectorToTarget # 1), _vectorToTarget # 0, 0]];
				}else
				{
					// Random firing (old behavior)
					_dir = -5 + random 10;
					_pitch = 30 + random 60;
					_gunner setdir (random 360);
					[_gunner,_pitch,0] call bis_fnc_setpitchbank;
				};

				sleep 0.1;
				_time = time + 0.1 + random 0.9;
				while {time < _time} do {
					// Restore ammo
					_gunner setAmmo [_weapon,999];
					[_gunner,_weapon] call BIS_fnc_fire;
					sleep _delay;

					if(!(_target isEqualTo objNull))then{
						_vectorToTarget = _vectorToTarget vectorAdd [random[-0.05,0,0.05],random[-0.05,0,0.05],random[-0.05,0,0.05]];
						_logic setVectorDirAndUp [_vectorToTarget,_vectorToTarget vectorCrossProduct [-(_vectorToTarget # 1), _vectorToTarget # 0, 0]];
					}else{
						_gunner setdir (direction _gunner + _dir);
						[_gunner,_pitch,0] call bis_fnc_setpitchbank;
					};

					if (random 1 > 0.95) then {sleep (2 * _delay)};
				};
			};
			sleep (_min + random _max);
		};
		deletevehicle _gunner;
	} else {
		waituntil {!isnull (_logic getvariable ["bis_fnc_moduleTracers_gunner",objnull])};
		_gunner = _logic getvariable ["bis_fnc_moduleTracers_gunner",objnull];
		_gunner hideobject true;
	};
} else {
	if (isserver) then {
		_gunner = _logic getvariable ["bis_fnc_moduleTracers_gunner",objnull];
		deletevehicle _gunner;
	};
};

 

 

 

On 10/20/2020 at 7:46 PM, LostWolf87 said:

Solved.

In case anyone else is curious, I just gave each tracer module a variable name (Tracer, Tracer1, Tracer2, etc.) and then used the deleteVehicle command on a second trigger activated by the plane after the paradrop.

I know I'm replying to an old thread but what you have done here does not remove all the other stuff the module creates. ( vehicle, group, unit )

In fact, even the module's own removal option does not remove all the objects it creates.

Spoiler

{
	[ _x, nil, false ] call BIS_fnc_moduleTracers
}forEach [ tracer, tracer1, tracer2 ];

 

 

  • Like 1

Share this post


Link to post
Share on other sites

I should have looked through the function before - it's clear now why vehicle weapons/turrets don't work.

 

Basically, any weapon that a "man" unit can carry and fire should work. More testing tomorrow.

  • Like 1

Share this post


Link to post
Share on other sites

@pierremgi I use your module tracers and they are awesome, especially if the player is piloting and needs to see were friendly forces are shooting so he can drop the load. 🙂

I need some time to test the suggestions. I really need better tracers with the module, the default ones are not intended for fierce battle in the background. 😃

Share this post


Link to post
Share on other sites

The lower the delay times, the more rounds will be fired (the module will fire more often). Setting them to 0/0 will basically give you full-auto.

  • Thanks 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

×