Jump to content

fortune144

Member
  • Content Count

    63
  • Joined

  • Last visited

  • Medals

Posts posted by fortune144


  1. Hello everybody,

    I ported a wool cap from Arma 2 to Arma 3.

    For that I used the original textures and therefore also the original UV maps.

    This texture is all in 2024x2024 before this is much too large for my use case.

    Now I wanted to create with blender a new UV based on the original for a size 512x512.

     

    original texture

     

    texture i use now

     

    result

     

    wool hat after using only the needed area

     

    i think the texture i use now is not the best solution. But there is something i don't understand with uv maps. In my opinion when i make a new uv map 512x512 from original and fit in the part i need from the big size texture it should work..

     

    So what im doing wrong?

     

     

    • Confused 1

  2. Hey there,

     

    i would like to add the arsenal to my custom ReammoBox_F - box  in UserActions. The Problem is the arsenal opens only on click on my action then the action menu contains Uniforms and Arsenal. yeah i know with open i can solve the problem but then i cant add my custom classes to it.

     

    class UserActions
    		{
    			class Rifleman_Uniform_Arsenal
    			{
    				displayName = "<t color='#FF9900'>Uniforms</t>";
    				priority = 6;
    				radius = 4;
    				position = "camera";
    				showWindow = 0;
    				hideOnUse = 1;
    				onlyForPlayer = 1;
    				condition = true;
    				statement = "[this] execVM ""crates\data\arsenal.sqf"";";
    			};
    		};

     

    arsenal.sqf

     

    _crate = _this select 0;
    
    ["AmmoboxInit",[_crate, false, {true}]] spawn BIS_fnc_arsenal;
    
    _availableHeadgear = [
    	"UK3CB_BAF_H_Wool_Hat"
    ];
    
    _availableUniforms = [
    	"UK3CB_BAF_U_Smock_DPMW"
    ];
    
    [_crate,((itemCargo _crate) + _availableHeadgear + _availableUniforms), false, true] call BIS_fnc_addVirtualItemCargo;

     


  3. Hey i would like to launch the left hand script on my server.

     

    In my InitServer.sqf i have

     

    [[],"scripts\dual_arms.sqf",true,true] call BIS_fnc_MP;	

     

     

    and my  dual_arms.sqf

    waitUntil {time > 0};
    waitUntil {!isNull player};
    	check_backWeapon = true;
    	aa_fnc_gearInterupt = 
    	{
    	if (isNull (_this select 2)) then 
    	{
    		if (!isNil {(_this select 1) getVariable "AA_wpnHolder"}) then 
    		{
    			aa_grounds = [];
    			_ground = "GroundWeaponHolder" createVehicle position player; 
    			_ground setPosATL (player modelToWorld [0,0.4,0]);
    			_ground setDir getDir player;
    			_ground enableSimulation false;
    			_ground setVariable ["tempHolder", true];
    			_ground spawn {waitUntil {sleep 3; isNull (findDisplay 602)}; _this enableSimulation true};
    			_nearSup = ((player modelToWorld [0,.8,1]) nearSupplies 2.3);
    			{
    				_x spawn
    				{
    					if (!(_this getVariable ['AA_wpnHolder',false])) then 
    					{
    						if !((_this isKindOf "man") && (alive _this)) then {aa_grounds = aa_grounds + [_this]}
    					}
    				}
    			} forEach _nearSup;
    			if (count aa_grounds > 0) then 
    			{
    				if (((aa_grounds select 0) isKindOf "man") && (!isNull wpnHolderLeft)) then 
    				{
    					_gear = "GroundWeaponHolder" createVehicle position player; 
    					_gear attachTo [(_this select 1),[0,0,0], "pelvis"]; 
    					detach _gear; 
    					_gear enableSimulation false; 
    					_gear setVariable ["tempHolder", true];
    					_gear spawn 
    					{
    						waitUntil {!(isNull (findDisplay 602))};
    						sleep 1;
    						_this setPosATL (player modelToWorld [0,1,0]);
    						_this enableSimulation true; 
    						_this setDir getDir player; 
    					};
    					player action ["Gear", aa_grounds select 0];
    				}
    				else
    				{
    					player action ["Gear", aa_grounds select 0];		
    				};
    			}
    			else
    			{
    				private "_ground";
    				_ground = "GroundWeaponHolder" createVehicle position player; 
    				_ground setPosATL (player modelToWorld [0,0.4,0]);
    				_ground setDir getDir player;
    				_ground setVariable ["tempHolder", true];
    				player action ["Gear",_ground];
    				waitUntil {!(isNull (findDisplay 602))};
    				waitUntil {(isNull (findDisplay 602))};
    				_ground spawn {waitUntil {sleep 3; isNull (findDisplay 602)}; _this enableSimulation true};
    				sleep 1;
    			};
    			_ground enableSimulation true;
    		}
    		else 
    		{
    			if ((_this select 1) isKindOf "man") then 
    			{
    				_gear = "GroundWeaponHolder" createVehicle position player; 
    				_gear attachTo [(_this select 1),[0,0,0], "pelvis"]; 
    				detach _gear; 
    				_gear enableSimulation false; 
    				_gear setVariable ["tempHolder", true];
    				[_gear,(_this select 1)] spawn 
    				{
    					_gear = (_this select 0);
    					sleep 1;
    					waitUntil {!(isNull (findDisplay 602))};
    					sleep 2;
    					_gear setPosATL ((_this select 1) modelToWorld [0,0,0]);
    					_gear enableSimulation true; 
    					_gear setDir getDir player; 
    				};
    				player action ["Gear", (_this select 1)];
    			};
    		};
    	}
    	else
    	{
    		if (!isNil {(_this select 2) getVariable "AA_wpnHolder"}) then 
    		{
    			_tempGear = (_this select 1);
    			_tempGear spawn 
    			{
    				_gear = "GroundWeaponHolder" createVehicle position player; 
    				_gear attachTo [player,[0,0,0], "pelvis"]; 
    				detach _gear; 
    				_gear enableSimulation false; 
    				_gear setVariable ["tempHolder", true];
    				_gear spawn 
    				{
    					waitUntil {!(isNull (findDisplay 602))};
    					sleep 1;
    					_this setPosATL (player modelToWorld [0,1,0]);
    					_this enableSimulation true; 
    					_this setDir getDir player; 
    				};
    				player action ["Gear",_this];
    			};
    		};
    	};
    	};
    	
    	aa_fnc_invInterupt = 
    	{
    		aa_inventoryContainers = _this;
    		waitUntil {(!(isNull (findDisplay 602)))};
    		player setVariable ["InvOpened",1];
    		waitUntil {sleep 0.001; (isNull (findDisplay 602))};
    		player setVariable ["InvOpened",0];
    		{if ((typeOf _x == "GroundWeaponHolder") && (!isNil {_x getVariable "tempHolder"})) then {if ((count ((itemCargo _x) + (weaponCargo _x) + (backpackCargo _x) + (magazineCargo _x))) == 0) then {deleteVehicle _x}}} forEach (player nearSupplies 3);
    	};
    	
    	aa_fnc_switchWpn =
    	{	
    		_wpn = currentWeapon player;
    		_stance = stance player;
    		if (_wpn == "") then
    		{
    			_wpn = (player getVariable ["wpnHolster",""]);
    				if (_wpn != "") then 
    				{
    					player setVariable ["wpnHolster",""];
    					if ((_wpn == handgunWeapon player) && (_stance == "CROUCH")) then 
    					{
    						player selectWeapon _wpn; 
    						player playMoveNow "AmovPknlMstpSnonWnonDnon_AmovPknlMstpSrasWpstDnon_end"; 
    						[[player, {_this playMoveNow "AmovPknlMstpSnonWnonDnon_AmovPknlMstpSrasWpstDnon_end"}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP
    					}
    					else
    					{
    						player selectWeapon _wpn; 
    					};
    				}
    		}
    		else
    		{
    			if ((_wpn == handgunWeapon player) && (_stance != "CROUCH")) then 
    			{
    				player setVariable ["wpnHolster",_wpn];
    				player action ["switchWeapon", player, player, -1]
    			};
    			if (_wpn == primaryWeapon player) then 
    			{
    				if (_stance == "CROUCH") then 
    				{
    					player playMoveNow "AmovPknlMstpSrasWrflDnon_AmovPknlMstpSnonWnonDnon"; 
    					[[player, {_this playMoveNow "AmovPknlMstpSrasWrflDnon_AmovPknlMstpSnonWnonDnon"}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP
    				};
    				if (_stance == "PRONE") then 
    				{
    					player playMoveNow "AmovPpneMstpSrasWrflDnon_AmovPpneMstpSnonWnonDnon"; 
    					[[player, {_this playMoveNow "AmovPpneMstpSrasWrflDnon_AmovPpneMstpSnonWnonDnon"}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP
    				};
    				player setVariable ["wpnHolster",_wpn];
    				player action ["switchWeapon", player, player, -1]
    			};
    			if (_wpn == secondaryWeapon player) then 
    			{
    				player setVariable ["wpnHolster",_wpn];
    				player action ["switchWeapon", player, player,-1]
    			};
    			if (_wpn == binocular player) then 
    			{
    				player setVariable ["wpnHolster",_wpn];
    				if (_stance == "CROUCH") then 
    				{player action ["switchWeapon", player, player,-1]; player playMoveNow "amovpknlmstpsnonwnondnon"; [[player, {_this playMoveNow "amovpknlmstpsnonwnondnon"}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP}
    				else
    				{player action ["switchWeapon", player, player,-1]}
    			};
    		};
    	};
    	
    	aa_fnc_leftWeapon =
    	{
    	check_backWeapon = false;
    	_primaryWeapon = nil;
    	_anim = animationState player; 
    	_animSpeed = getAnimSpeedCoef player;
    	_stance = stance player;
    	if (primaryWeapon player != "") then {{if ((_x select 0) == (primaryWeapon player)) then  {_primaryWeapon = _x}} forEach (weaponsItems player);};
    	
    	if ((primaryWeapon player != "") && (isNil {player getVariable ["leftWeapon", nil]})) exitWith //Put on left
    	{
    		if (currentWeapon player == "") then 
    		{
    			player selectWeapon (primaryWeapon player);
    		};
    			switch (_stance) do 
    			{
    				case "STAND" :
    				{
    					player playAction "SecondaryWeapon";
    					_anim = animationState player;
    					waitUntil {animationState player != _anim};
    					sleep 1.5; 
    					[[[player, "amovpercmstpsnonwnondnon"], {(_this select 0) playMoveNow (_this select 1)}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP; 
    					sleep 0.5;
    				};
    				case "CROUCH" :
    				{
    					player playAction "SecondaryWeapon";
    					_anim = animationState player;
    					waitUntil {animationState player != _anim};
    					sleep 1.2; 
    					waitUntil {animationState player != "amovpknlmstpsraswlnrdnon_amovpknlmstpsnonwnondnon"};
    					sleep 0.1;
    					waitUntil {animationState player != "amovpknlmstpsraswlnrdnon_amovpknlmstpsnonwnondnon"};
    					[[[player, "amovpknlmstpsnonwnondnon"], {(_this select 0) playMoveNow (_this select 1)}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP; 
    				};
    				case "PRONE" :
    				{
    					player playAction "PlayerCrouch";
    					sleep (1.1 / _animSpeed);
    					player playAction "SecondaryWeapon";
    					_anim = animationState player;
    					waitUntil {animationState player != _anim};
    					sleep 1.5; 
    					[[[player, "amovppnemstpsnonwnondnon"], {(_this select 0) playMoveNow (_this select 1)}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP; 
    					sleep 0.5;
    				};
    				default {};
    			};
    		_man = createAgent ["VirtualMan_F", (player modelToWorld [0,-2,0]), [], 0, "NONE"]; 
    		_man attachTo [player,[0,0,10],"pelvis"];
    		_man setAnimSpeedCoef 100;
    		_man allowDamage false;
    		_baseWeapon = (_primaryWeapon select 0);
    		_man addWeapon _baseWeapon; 
    		removeAllPrimaryWeaponItems _man;
    		for "_n" from 1 to ((count _primaryWeapon) -1) do {_man addWeaponItem [_baseWeapon, _primaryWeapon select _n];};  
    		wpnHolderLeft = "Weapon_Empty" createVehicle getPosATL player;
    		wpnHolderLeft attachTo [player,[0.05,-0.03,-0.03],"launcher"];
    		wpnHolderLeft setVariable ["AA_wpnHolder",true,true];
    		handler_backWeapon = addMissionEventHandler ["EachFrame",{wpnHolderLeft setVectorDirAndUp [((player selectionPosition "rightShoulder") vectorAdd [-0.10,-0.11,-0.05]) vectorFromTo (player selectionPosition "leftshoulder"),(player selectionPosition "spine3") vectorFromTo (player selectionPosition "launcher")];}];
    		_man action ["PutWeapon", wpnHolderLeft, primaryWeapon _man];
    		waitUntil {sleep 0.001; ((weaponCargo wpnHolderLeft) select 0) == _baseWeapon};	
    		player setUserActionText [action_putLeft, format [localize "str_action_weaponinhand", (getText (configfile >> "CfgWeapons" >> ((weaponCargo wpnHolderLeft) select 0) >> "displayName"))]];
    		detach _man;
    		deleteVehicle _man;
    		wpnHolderLeft setDamage 1;
    		player removeWeaponGlobal (primaryWeapon player);
    		player setUserActionText [action_switchLeft, format [localize "str_action_weapononback", (getText (configfile >> "CfgWeapons" >> (primaryWeapon player) >> "displayName"))]];
    		clearMagazineCargoGlobal wpnHolderLeft;
    		clearItemCargoGlobal wpnHolderLeft;
    		clearBackpackCargoGlobal wpnHolderLeft;
    		
    		sleep 1.618;
    		player setVariable ["leftWeapon", _primaryWeapon];
    		check_backWeapon = true;
    	};
    	
    	if ((primaryWeapon player == "") && (!isNil {player getVariable ["leftWeapon", nil]})) exitWith //Take on left
    	{
    		if (_stance == "PRONE") then 
    		{
    			player playAction "PrimaryWeapon"
    		}
    		else
    		{
    			player playAction "SecondaryWeapon"; 
    			_anim = animationState player; 
    			waitUntil {animationState player != _anim};  sleep 1.3;
    			player selectWeapon (primaryWeapon player);	
    		};
    		player addMagazine (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0) >> "magazines") select 0);
    		if (count (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0) >> "muzzles") select 0) == 2) then 
    		{player addMagazine (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0)>> (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0) >> "muzzles") select 1) >> "magazines") select 0);};
    		removeMissionEventHandler ["EachFrame", handler_backWeapon];
    		detach wpnHolderLeft;
    		deleteVehicle wpnHolderLeft;
    		player addWeapon ((player getVariable ["leftWeapon",nil]) select 0);
    		removeAllPrimaryWeaponItems player;
    		player removePrimaryWeaponItem (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0) >> "magazines") select 0);
    		if (count (player getVariable ["leftWeapon",nil]) == 7) then 
    		{player removePrimaryWeaponItem (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0)>> (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0) >> "muzzles") select 1) >> "magazines") select 0);};
    		for "_n" from 1 to (count (player getVariable ["leftWeapon",nil])) do {player addWeaponItem [((player getVariable ["leftWeapon",nil]) select 0), (player getVariable ["leftWeapon",nil]) select _n];};
    		player selectWeapon primaryWeapon player;
    	
    		sleep 1.618;
    		player setUserActionText [action_switchLeft, format [localize "str_action_weaponinhand", (getText (configfile >> "CfgWeapons" >> ((weaponCargo wpnHolderLeft) select 0) >> "displayName"))]];
    		player setVariable ["leftWeapon",nil];
    		check_backWeapon = true;
    	};
    	
    	if ((primaryWeapon player != "") && (!isNil {player getVariable ["leftWeapon", nil]})) exitWith //Switch
    	{
    		if (currentWeapon player == "") then 
    		{
    			player selectWeapon primaryWeapon player;
    			sleep 2.6;
    		};
    			switch (_stance) do 
    			{
    				case "STAND" :
    				{
    					if (weaponLowered player) then {player action ["WeaponOnBack", player]};
    					if (currentWeapon player != primaryWeapon player) then {player selectWeapon (primaryWeapon player); sleep 1.6};
    					player playAction "SecondaryWeapon"; 
    					_anim = animationState player; 
    					waitUntil {animationState player == "amovpercmstpsraswrfldnon_amovpercmstpsraswlnrdnon"};  sleep (1 / _animSpeed); 
    					[[[player, _anim], {(_this select 0) playMoveNow (_this select 1)}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP; 
    				};
    				case "CROUCH" :
    				{
    					if (weaponLowered player) then {player action ["WeaponOnBack", player]};
    					if (currentWeapon player != primaryWeapon player) then {player selectWeapon (primaryWeapon player); sleep 1.6};
    					player playAction "SecondaryWeapon"; 
    					_anim = animationState player; 
    					waitUntil {animationState player == "amovpknlmstpsraswrfldnon_amovpknlmstpsraswlnrdnon"};  sleep (1 / _animSpeed); 
    					[[[player, _anim], {(_this select 0) playMoveNow (_this select 1)}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP;
    				};
    				case "PRONE" :
    				{
    					player playAction "PlayerCrouch";
    					sleep (1.1 / _animSpeed);
    					_anim = animationState player;
    					if (weaponLowered player) then {player action ["WeaponOnBack", player]};
    					if (currentWeapon player != primaryWeapon player) then {player selectWeapon (primaryWeapon player); sleep 1.6};
    					player playAction "SecondaryWeapon"; 
    					_anim = animationState player; 
    					waitUntil {animationState player == "amovpknlmstpsraswrfldnon_amovpknlmstpsraswlnrdnon"};  sleep (1 / _animSpeed); 
    					[[[player, _anim], {(_this select 0) playMoveNow (_this select 1)}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP;
    				};
    				default {};
    			};
    		_man =createAgent ["VirtualMan_F", (player modelToWorld [0,-2,0]), [], 0, "NONE"]; 
    		_man attachTo [player,[0,0,10],"pelvis"];
    		_man setAnimSpeedCoef 100;
    		_man allowDamage false;
    		_baseWeapon = (_primaryWeapon select 0);
    		_man addWeapon _baseWeapon; 
    		removeAllPrimaryWeaponItems _man;
    		for "_n" from 1 to ((count _primaryWeapon) -1) do {_man addWeaponItem [_baseWeapon, _primaryWeapon select _n];};
    		removeMissionEventHandler ["EachFrame", handler_backWeapon];
    		[wpnHolderLeft, _baseWeapon] spawn 
    		{
    			waitUntil {((weaponCargo wpnHolderLeft) select 0) == (_this select 1)};
    			detach (_this select 0);
    			deleteVehicle (_this select 0);
    		};
    		wpnHolderLeft = "Weapon_Empty" createVehicle getPosATL player;
    		wpnHolderLeft attachTo [player,[0.05,-0.03,-0.03],"launcher"];
    		wpnHolderLeft setVariable ["AA_wpnHolder",true,true];
    		handler_backWeapon = addMissionEventHandler ["EachFrame",{wpnHolderLeft setVectorDirAndUp [((player selectionPosition "rightShoulder") vectorAdd [-0.10,-0.11,-0.05]) vectorFromTo (player selectionPosition "leftshoulder"),(player selectionPosition "spine3") vectorFromTo (player selectionPosition "launcher")];}];
    		_man action ["PutWeapon", wpnHolderLeft, primaryWeapon _man];
    		
    		waitUntil {((weaponCargo wpnHolderLeft) select 0) == _baseWeapon};
    		player addMagazine (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0) >> "magazines") select 0);
    		if (count (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0) >> "muzzles") select 0) == 2) then 
    		{player addMagazine (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0)>> (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0) >> "muzzles") select 1) >> "magazines") select 0);};
    		player addWeapon ((player getVariable ["leftWeapon",nil]) select 0);
    		removeAllPrimaryWeaponItems player;
    		player removePrimaryWeaponItem (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0) >> "magazines") select 0);
    		if (count (player getVariable ["leftWeapon",nil]) == 7) then 
    		{player removePrimaryWeaponItem (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0)>> (getArray (configFile >> "CfgWeapons" >> ((player getVariable ["leftWeapon",nil]) select 0) >> "muzzles") select 1) >> "magazines") select 0);};
    		for "_n" from 1 to (count (player getVariable ["leftWeapon",nil])) do {player addWeaponItem [((player getVariable ["leftWeapon",nil]) select 0), (player getVariable ["leftWeapon",nil]) select _n];};
    		player selectWeapon primaryWeapon player;
    		_man spawn {sleep  1.618; detach _this; deleteVehicle _this;};
    		sleep 1.618;
    		player setUserActionText [action_switchLeft, format [localize "str_action_weaponinhand", (getText (configfile >> "CfgWeapons" >> ((weaponCargo wpnHolderLeft) select 0) >> "displayName"))]];
    		wpnHolderLeft setDamage 1;
    		player setVariable ["leftWeapon", _primaryWeapon];
    		check_backWeapon = true;
    	};
    	};
    	//------------------------------------------------Actions	
    	aa_fnc_leftWeaponActions = 
    	{
    	if (({["ace_", _x] call BIS_fnc_inString} count activatedAddons) < 100) then {
    		action_hideWpn = player addAction ["Hide weapon",aa_fnc_switchWpn,[],0,false,true,"buldTerrainShowNode",'((vehicle player == player) && (currentWeapon player != "") && (currentWeapon player != binocular player) && (_this == _target))'];
    	};
    		action_putLeft = player addAction ["Put weapon on back",aa_fnc_leftWeapon,[],1,false,true,"SwitchWeapon",'((primaryWeapon player in weaponList) && (secondaryWeapon player == "") && (vehicle player == player) && (isNil {player getVariable ["leftWeapon", nil]}) && (player hasWeapon (primaryWeapon player)) && (check_backWeapon) && (_this == _target))'];
    		action_switchLeft = player addAction ["Take weapon back",aa_fnc_leftWeapon,[],1,false,true,"SwitchWeapon",'((secondaryWeapon player == "") && (vehicle player == player) && (!isNil {player getVariable ["leftWeapon", nil]}) && (check_backWeapon) && (_this == _target))'];
    	};
    	[] call aa_fnc_leftWeaponActions;
    	[] spawn 
    	{
    		while{true} do 
    		{	
    			waitUntil {sleep 0.1; check_backWeapon};
    			player setUserActionText [action_putLeft, format [localize "str_action_weapononback", (getText (configfile >> "CfgWeapons" >> (primaryWeapon player) >> "displayName"))]];
    			if (!isNil {player getVariable ["leftWeapon", nil]}) then {player setUserActionText [action_switchLeft, format [localize "str_action_weaponinhand", (getText (configfile >> "CfgWeapons" >> (((player getVariable ["leftWeapon",nil]) select 0)) >> "displayName"))]];};
    		}
    	};
    	[] spawn 
    	{
    		while{true} do 
    		{
    			waitUntil {sleep 0.1; ((secondaryWeapon player != "") && (!isNil {player getVariable ["leftWeapon", nil]}))};
    			player playAction "PutDown";
    			removeMissionEventHandler ["EachFrame", handler_backWeapon];
    			detach wpnHolderLeft;
    			wpnHolderLeft setVehiclePosition [(player modelToWorld [0,1,0]), [], 0, "CAN_COLLIDE"];
    			wpnHolderLeft setVariable ["AA_wpnHolder",nil,true];
    			wpnHolderLeft setDamage 0;
    			wpnHolderLeft = nil;
    			player setVariable ["leftWeapon",nil];
    		}
    	};
    	
    	player addEventHandler ["Take", {if (!((isNull wpnHolderLeft) && (isNil "wpnHolderLeft")) && (vehicle player == player)) then {wpnHolderLeft attachTo [player,[0.05,-0.03,-0.03],"launcher"]}}];
    	player addEventHandler ["Respawn",{[] call aa_fnc_leftWeaponActions}];
    	player addEventHandler ["Killed",
    	{
    		if ((isNil "wpnHolderLeft") || (isNull wpnHolderLeft)) exitWith {};
    		detach wpnHolderLeft; wpnHolderLeft setVehiclePosition [getPosASL player, [], 0, "CAN_COLLIDE"]; wpnHolderLeft setVariable ["AA_wpnHolder",nil,true]; player setVariable ["leftWeapon",nil]; wpnHolderLeft setDamage 0; wpnHolderLeft = nil; removeMissionEventHandler ["EachFrame",handler_backWeapon];
    	}];
    	player addEventHandler ["InventoryOpened", 
    	{
    		if (vehicle player != player) exitWith {if (player getVariable ["InvOpened",0] != 1) then {_this spawn aa_fnc_invInterupt}};
    		if (isNil {player getVariable ["leftWeapon", nil]}) exitWith {if (player getVariable ["InvOpened",0] != 1) then {_this spawn aa_fnc_invInterupt}};
    		if ((isNil {(_this select 1) getVariable "AA_wpnHolder"}) && (isNil {(_this select 2) getVariable "AA_wpnHolder"}) && (!((_this select 1) isKindOf "man"))) exitWith 
    		{if (player getVariable ["InvOpened",0] != 1) then {_this spawn aa_fnc_invInterupt}};
    		if (((_this select 1) isKindOf "man") && (({typeOf _x == "GroundWeaponHolder"} count ((_this select 1) nearSupplies 2)) != 0)) exitWith 
    		{
    			_gear = "GroundWeaponHolder" createVehicle position (_this select 1); 
    			_gear setPosWorld (getPosWorld (_this select 1));
    			_gear enableSimulation false; 
    			_gear setVariable ["tempHolder", true];
    			[_gear,(_this select 1)] spawn 
    			{
    				_gear = (_this select 0);
    				sleep 1;
    				waitUntil {!(isNull (findDisplay 602))};
    				sleep 2;
    				_gear setPosATL ((_this select 1) modelToWorld [0,0,0]);
    				_gear enableSimulation true; 
    				_gear setDir getDir player; 
    			};
    			if (player getVariable ["InvOpened",0] != 1) then {_this spawn aa_fnc_invInterupt}
    		};
    		[0, _this select 1, _this select 2] spawn aa_fnc_gearInterupt; true
    	}];
    	player addEventHandler ["GetInMan", 
    	{
    		detach wpnHolderLeft; 
    		wpnHolderLeft setPosASL [0,0,0]; 
    	}];
    	player addEventHandler ["GetOutMan", {wpnHolderLeft attachTo [player,[0.05,-0.03,-0.03],"launcher"]}];

    How can i execute it globally on server?


  4. Hey folks,

     

    i made a custom camoface ace action as code see below. In singleplayer everything works fine but when i put the pbo on my server there is only the ace action and nothing happens. So where is my mistake. Please have a look.

     

    ACE_ACTION:

    Quote

    class ACE_SelfActions

            {

                class Camo

                {

                    displayName="Tarnschminke";

                    condition="('US_Facepaint' in uniformItems _player || 'US_Facepaint' in vestItems _player || 'US_Facepaint' in backpackItems _player)";

                    statement="_this call camofaces_fnc_createDialog;";

                    showDisabled=0;

                    priority=4;

                    icon="basic_equipment\data\functions\ui\Icon_camo_ca.paa";

                    class Set_Camo

                    {

                        displayName="Tarnschminke auflegen";

                        condition="('US_Facepaint' in uniformItems _player || 'US_Facepaint' in vestItems _player || 'US_Facepaint' in backpackItems _player)";

                        statement="['_Wdl'] call camofaces_fnc_setcamo;";

                        showDisabled=0;

                        priority=4;

                        icon="basic_equipment\data\functions\ui\Icon_camoon_ca.paa";

                    };

     

     

    setCamo.sqf

    Quote

    params ["_type"];

    currentFace = face player;

    _camoFace = (currentFace + _type);

    if (currentFace in faces) then{
        [[player , _camoFace],"setFace",true,false] call BIS_fnc_mp;
    };
     

     


  5. Hey there,

    i made an MP5 from SMG_Base_F Arma 3 everythign is fine. The Soldier reload animation is running but the weapon is doing nothing. i made all sections and placed the memory point for the specific animation. In my model.cfg i placed in the model animation section everything whats needed for the animation.

     

     For example. The file is lying where my model.p3d is.

    Quote

    class SOR_MP5_SD6

    {

    htMin=0;

    htMax=0;

    afMax=0;

    mfMax=0;

    mFact=0;

    tBody=0;

    skeletonName="Skeleton";

    sectionsInherit="";

    sections[]={"trigger"};

    class Animations

    {

    class trigger_rot

    {

    type="rotation";

    source="reload";

    selection="trigger";

    sourceAddress="clamp";

    minPhase=0;

    maxPhase=1;

    minValue=0;

    maxValue=1;

    memory=0;

    angle0=0;

    angle1=-0.6981317;

    };

     


  6. Hey folks,

     

    i tried to port the arma 2 mp5 sd6 to A3 and i run in couple of problems. First of all the arm animation is really weird. I can't fixed it in the model.cfg.

    The next thing is i added a top mount rail to the model. But in ego view it's not there. When i zoom my heady ist in the weapons.

    i'm new in this and i hoped to learn from the arma 2 stuff but these are problem which i can't fix my self.

     

    hand.png

     

    view.png

     

    model.cfg

    Spoiler

    #define BULLET_HIDE(x,from,count) class Bullet##x\
                {\
                    type="hide";\
                    source="revolving";\
                    sourceAddress="mirror";\
                    selection=bullet##x;\
                    minValue=-1.000000;\
                    maxValue= 0.000000;\
                    hideValue=((count+x-from-2)/count)+0.00001;\
                };

    class CfgSkeletons
    {
        class Default;
        class Weapon: Default
        {
            isDiscrete=1;
            skeletonInherit="Default";
            skeletonBones[]=
            {
                "magazine","",
                "trigger","",
            };
        };
        class Rifle: Weapon
        {
            skeletonInherit="Weapon";
            skeletonBones[]=
            {
                "bolt","",
                "bullet_cover","",
                "aimpoint_cover","",
                "aimpoint_cover02","",
                "charging_handle","",
                "misc_cover",""
            };
        };
        class Pistol: Weapon
        {
            skeletonInherit="Weapon";
            skeletonBones[]=
            {
                "slide","",
                "hammer",""
            };
        };
        class MachineGun: Weapon
        {
            skeletonInherit="Weapon";
            skeletonBones[]=
            {
                "ammo_belt","",
                "ammo_belt_bottom","ammo_belt",
                "feedtray_cover","",
                "bolt","",
                "fake_bullet","",
                "bullet001","bullet002",
                "bullet002","bullet003",
                "bullet003","bullet004",
                "bullet004","bullet005",
                "bullet005","bullet006",
                "bullet006","bullet007",
                "bullet007","bullet008",
                "bullet007hide","",
                "bullet008","bullet009",
                "bullet009","bullet010",
                "bullet010","ammo_belt",
                "bullet_cover","",
                "optics","",
                "ammo_belt_cover","feedtray_cover",
                "ammo_belt_cover02","magazine",
                "misc_cover","feedtray_cover",
                "magazine_belt","magazine"
            };
        };
        class StaticWeapon: Default
        {
            isDiscrete=1;
            skeletonInherit="Default";
            skeletonBones[]=
            {
                "OtocVez","",
                "OtocHlaven","OtocVez",
                "OtocHlaven_Shake","OtocHlaven",
                "ammo_belt","OtocHlaven_Shake",
                "magazine","OtocHlaven_Shake",
                "feedtray_cover","OtocHlaven_Shake",
                "bolt","OtocHlaven_Shake",
                "recoil","OtocHlaven_Shake",
                "charging_handle","OtocHlaven_Shake",
                "damagehideVez","OtocVez",
                "damagehideHlaven","OtocHlaven",
                "damagehideRecoil","recoil"
            };
        };
        class StaticMGWeapon: StaticWeapon
        {
            skeletonInherit="StaticWeapon";
            skeletonBones[]=
            {
                "bullet001","bullet002",
                "bullet002","bullet003",
                "bullet003","bullet004",
                "bullet004","bullet005",
                "bullet005","bullet006",
                "bullet006","bullet007",
                "bullet007","bullet008",
                "bullet008","bullet009",
                "bullet009","bullet010",
                "bullet010","bullet011",
                "bullet011","bullet012",
                "bullet012","ammo_belt"
            };
        };
    };

    class CfgModels
    {
        class Default;
        class Optic: Default
        {
            sections[]=
            {
                "zasleh"
            };
        };
        class Weapon: Default
        {
            sections[]=
            {
                "zasleh"
            };
            skeletonName="Weapon";
            class Animations
            {
                class zaslehROT
                {
                    type="rotation";
                    source="clockMinute";
                    sourceAddress="loop";
                    selection="test";
                    begin="usti hlavne";
                    end="konec hlavne";
                    memory=1;
                    minValue=0.0166665;
                    maxValue=0.016666666666666666666666666666667;
                    angle0="rad 0";
                    angle1="rad 360";
                };
                class magazine_hide
                {
                    type="hide";
                    source="reloadMagazine";
                    sourceAddress="mirror";
                    selection="magazine";
                    minValue=0.0;
                    maxValue=0.4;
                    hideValue=0.5;
                };
                class reload_ammobelt_hide: magazine_hide
                {
                    selection="ammo_belt";
                };
                class reload_ammobelt_bottom_hide: magazine_hide
                {
                    selection="ammo_belt_bottom";
                };
                class ammobelt_hide: magazine_hide
                {
                    source="isEmpty";
                    selection="ammo_belt";
                    minValue=0.000000;
                    maxValue=1.000000;
                    hideValue=1.000000;
                };
                class ammobelt_bottom_hide: ammobelt_hide
                {
                    selection="ammo_belt_bottom";
                };
            };
        };
        class Rifle: Weapon
        {
            skeletonName="Rifle";
            class Animations: Animations
            {
                class magazine_hide:magazine_hide
                {
                    sourceAddress="mirror";
                    minValue=0.0;
                    maxValue=0.56;
                    hideValue=0.36;
                };
                class bolt_empty
                {
                    type="translation";
                    source="isEmpty";
                    selection="bolt";
                    axis="bolt_axis";
                    memory=1;
                    minValue=0.000000;
                    maxValue=0.500000;
                    offset0=0;
                    offset1=0.5;
                };
                class bullet_cover
                {
                    type="rotation";
                    source="reload";
                    sourceAddress="mirror";
                    selection="bullet_cover";
                    axis="bullet_cover_axis";
                    memory=1;
                    minValue=0.0;
                    maxValue=0.5;
                    angle0=0;
                    angle1=-0.4;
                };
                class bolt_fire_begin
                {
                    type="translation";
                    source="reload";
                    selection="bolt";
                    axis="bolt_axis";
                    memory=1;
                    minValue=0.000000;
                    maxValue=0.300000;
                    offset0=0;
                    offset1=0.5;
                };
                class bolt_fire_end:bolt_fire_begin
                {
                    minValue=0.500000;
                    maxValue=1.000000;
                    offset0=0;
                    offset1=-0.5;
                };
                class bolt_reload_begin
                {
                    type="translation";
                    source="reloadMagazine";
                    selection="bolt";
                    axis="bolt_axis";
                    memory=1;
                    minValue=0.1;
                    maxValue=0.15;
                    offset0=0;
                    offset1=0.5;
                };
                class bolt_reload_end:bolt_reload_begin
                {
                    minValue=0.980000;
                    maxValue=1.000000;
                    offset0=0;
                    offset1=-0.5;
                };
            };
        };
        class Sniper_Rifle: Weapon
        {
            skeletonName="Rifle";
            class Animations: Animations
            {
                class bullet_cover_reload_begin
                {
                    type="translation";
                    source="reloadMagazine";
                    selection="bullet_cover";
                    axis="bolt_axis";
                    memory=1;
                    minValue=0.2;
                    maxValue=0.5;
                    offset0=0;
                    offset1=2.0;
                };
                class bullet_cover_end:bullet_cover_reload_begin
                {
                    minValue=0.7;
                    maxValue=0.8;
                    offset0=0;
                    offset1=-2.0;
                };
                class bolt_reload_begin
                {
                    type="translation";
                    source="reloadMagazine";
                    selection="bolt";
                    axis="bolt_axis";
                    memory=1;
                    minValue=0.2;
                    maxValue=0.5;
                    offset0=0;
                    offset1=1.0;
                };
                class bolt_reload_end:bolt_reload_begin
                {
                    minValue=0.7;
                    maxValue=0.8;
                    offset0=0;
                    offset1=-1.0;
                };
                class charging_handle_reload_rotation_begin
                {
                    type="rotation";
                    source="reloadMagazine";
                    selection="charging_handle";
                    axis="bolt_axis";
                    memory=1;
                    minValue=0.0;
                    maxValue=0.2;
                    angle0=0;
                    angle1=-1.0;
                };
                class charging_handle_reload_rotation_end:charging_handle_reload_rotation_begin
                {
                    minValue=0.8;
                    maxValue=1.0;
                    angle0=0;
                    angle1=1.0;
                };
                class charging_handle_reload_begin
                {
                    type="translation";
                    source="reloadMagazine";
                    selection="charging_handle";
                    axis="bolt_axis";
                    memory=1;
                    minValue=0.2;
                    maxValue=0.5;
                    offset0=0;
                    offset1=1.0;
                };
                class charging_handle_reload_end:charging_handle_reload_begin
                {
                    minValue=0.7;
                    maxValue=0.8;
                    offset0=0;
                    offset1=-1.0;
                };
            };
        };
        class Launcher: Weapon {class Animations{};};
        class Grenade: Weapon {class Animations{};};

        class Pistol: Weapon
        {
            skeletonName="Pistol";
            class Animations: Animations
            {
              class magazine_hide:magazine_hide
                {
                    sourceAddress="mirror";
                    minValue=0.0;
                    maxValue=0.56;
                    hideValue=0.36;
                };
                class slide_fire_begin
                {
                    type="translation";
                    source="reload";
                    selection="slide";
                    axis="slide_axis";
                    minValue=0.000000;
                    maxValue=0.500000;
                    offset0=0;
                    offset1=-0.200000;
                };
                class slide_fire_end:slide_fire_begin
                {
                    minValue=0.600000;
                    maxValue=1.000000;
                    offset0=0;
                    offset1=0.200000;
                };
                class hammer_fire_begin
                {
                    type="rotation";
                    source="reload";
                    selection="hammer";
                    axis="hammer_axis";
                    memory=1;
                    minValue=0.000000;
                    maxValue=0.500000;
                    angle0=0.000000;
                    angle1=1.221730;
                };
                class hammer_fire_end:hammer_fire_begin
                {
                    minValue=0.600000;
                    maxValue=1.000000;
                    angle0=0.000000;
                    angle1=-1.221730;
                };
                class slide_empty
                {
                    type="translation";
                    source="isEmpty";
                    selection="slide";
                    axis="slide_axis";
                    minValue=0.990000;
                    maxValue=1.000000;
                    offset0=0;
                    offset1=-0.200000;
                };
                class hammer_empty
                {
                    type="rotation";
                    source="isEmpty";
                    selection="hammer";
                    axis="hammer_axis";
                    memory=1;
                    minValue=0.990000;
                    maxValue=1.000000;
                    angle0=0.000000;
                    angle1=1.221730;
                };
            };
        };
        class MachineGun: Weapon
        {
            skeletonName="MachineGun";
            class Animations: Animations
            {
                      class ammo_belt
                  {
                      type="rotation";
                      source="reload";
                      selection="ammo_belt";
                      axis="ammo_belt_axis";
                      memory=1;
                      minValue=0.3;
                      maxValue=1.0;
                      angle0=-0.12;
                          angle1=0.06;
                  };
                  class ammo_belt_bottom:ammo_belt
                  {
                      selection="ammo_belt_bottom";
                      axis="ammo_belt_bottom_axis";
                      minValue=0.3;
                      maxValue=1.0;
                      angle0=-0.15;
                          angle1=-0.5;
                  };
                  class ammo_belt_shake_01
                  {
                      type="translation";
                      source="reload";
                      selection="bullet002";
                      axis="ammo_belt_axis";
                      sourceAddress="mirror";
                      memory=1;
                      minValue=0.0;
                      maxValue=0.5;
                      offset0=0.0;
                          offset1=0.05;
                  };

                  class ammo_belt_shake_02:ammo_belt_shake_01{selection="bullet003";offset1=0.05;};
                    class ammo_belt_shake_03:ammo_belt_shake_01{selection="bullet004";offset1=0.025;};
                    class ammo_belt_shake_05:ammo_belt_shake_01{selection="bullet006";offset1=-0.025;};
                    class ammo_belt_shake_06:ammo_belt_shake_01{selection="bullet007";offset1=-0.05;};
                    class ammo_belt_shake_08:ammo_belt_shake_01{selection="bullet009";offset1=-0.025;};
                    class ammo_belt_rotation_shake_01
                  {
                      type="rotation";
                      source="reload";
                      selection="bullet001";
                      axis="bullet002_axis";
                      sourceAddress="mirror";
                      memory=1;
                      minValue=0.0;
                      maxValue=0.5;
                      angle0="rad 0";
                         angle1="rad -30";
                  };
                  class ammo_belt_rotation_shake_02:ammo_belt_rotation_shake_01
                  {
                      selection="bullet002";
                      axis="bullet003_axis";
                      angle0="rad 0";
                          angle1="rad 5";
                  };
                  class ammo_belt_rotation_shake_03:ammo_belt_rotation_shake_01
                  {
                      selection="bullet003";
                      axis="bullet004_axis";
                      angle0="rad 0";
                          angle1="rad 25";
                  };
                  class magazine_shake
                  {
                      type="rotationZ";
                      source="reload";
                      selection="magazine";
                      axis="ammo_belt_axis";
                      sourceAddress="mirror";
                      memory=1;
                      minValue=0.0;
                      maxValue=0.5;
                      angle0="rad -0.5";
                          angle1="rad 0.5";
                  };
                  class magazine_shake02:magazine_shake
                  {
                      type="rotationX";
                      minValue=0.0;
                      maxValue=0.25;
                      angle0="rad 0.25";
                          angle1="rad -0.25";
                  };
                  class magazine_shake03:magazine_shake
                  {
                      type="rotationY";
                      minValue=0.0;
                      maxValue=0.5;
                      angle0="rad 0.33";
                          angle1="rad -0.33";
                  };
                  class ammo_belt_rotation_shake_static_01
                  {
                      type="rotation";
                      source="time";
                      selection="bullet004";
                      axis="bullet005_axis";
                      sourceAddress="mirror";
                      memory=1;
                      minValue=0.0;
                      maxValue=3.0;
                      angle0="rad 0";
                          angle1="rad 10";
                  };
                  class ammo_belt_rotation_shake_static_02:ammo_belt_rotation_shake_static_01
                  {
                      selection="bullet003";
                      axis="bullet004_axis";
                      minValue=0.1;
                      maxValue=3.5;
                      angle0="rad 0";
                    angle1="rad 5";
                };
                class ammo_belt_rotation_shake_static_03:ammo_belt_rotation_shake_static_01
                {
                    selection="bullet002";
                    axis="bullet003_axis";
                    minValue=0.2;
                    maxValue=4.0;
                    angle0="rad 0";
                    angle1="rad 10";
                };
                BULLET_HIDE(001,10,100)
                BULLET_HIDE(002,10,100)
                BULLET_HIDE(003,10,100)
                BULLET_HIDE(004,10,100)
                BULLET_HIDE(005,10,100)
                BULLET_HIDE(006,10,100)
                BULLET_HIDE(007,10,100)
                BULLET_HIDE(008,10,100)
                BULLET_HIDE(009,10,100)
                BULLET_HIDE(010,10,100)

                class feedtray_cover_up
                {
                    type="rotation";
                    source="reloadMagazine";
                    selection="feedtray_cover";
                    axis="feedtray_cover_axis";
                    memory=1;
                    minValue=0.000000;
                    maxValue=0.100000;
                    angle0=0.000000;
                    angle1=-1.570796;
                };
                class feedtray_cover_down:feedtray_cover_up
                {
                    minValue=0.950000;
                    maxValue=1.000000;
                    angle0=0.000000;
                    angle1=1.570796;
                };
                class bolt_begin
                {
                    type="translation";
                    source="reloadMagazine";
                    selection="bolt";
                    axis="bolt_axis";
                    memory=1;
                    minValue=0.150000;
                    maxValue=0.200000;
                    offset0=0;
                    offset1=0.5;
                };
                class bolt_end:bolt_begin
                {
                    minValue=0.800000;
                    maxValue=0.900000;
                    offset0=0;
                    offset1=-0.5;
                };
            };
        };
        class StaticWeapon: Default
        {
            sections[]=
            {
                "zasleh","zbytek"
            };
            skeletonName="StaticWeapon";
            class Animations
            {
                class MainTurret
                {
                    type="rotationY";
                    source="mainTurret";
                    selection="OtocVez";
                    axis="osaveze";
                    animPeriod=0;
                    minValue="rad -360";
                    maxValue="rad +360";
                    angle0="rad -360";
                    angle1="rad +360";
                };

                class MainGun
                {
                    type="rotationX";
                    source="mainGun";
                    selection="OtocHlaven";
                    axis="osahlavne";
                    animPeriod=0;
                    minValue="rad -360";
                    maxValue="rad +360";
                    angle0="rad -360";
                    angle1="rad +360";
                };


                // destruct BASE START
                class MainTurret_destructX
                {
                    type="rotationX";
                    source="damage";
                    selection="OtocVez";
                    axis="osaveze";
                    animPeriod=0;
                    minValue=0.99;
                    maxValue=1;
                    angle0=0;
                    angle1="rad -3";
                };
                class MainTurret_destructY:MainTurret_destructX
                {
                    type="rotationY";
                    angle1="rad +5";
                };
                class MainTurret_destructZ:MainTurret_destructX
                {
                    type="rotationZ";
                    angle1="rad -5";
                };
                class MainGun_destructX:MainTurret_destructX
                {
                    selection="OtocHlaven";
                    axis="osahlavne";
                    angle1="rad -12";
                };
                class MainGun_destructY:MainGun_destructX
                {
                    type="rotationY";
                    angle1="rad +2";
                };
                class MainGun_destructZ:MainGun_destructX
                {
                    type="rotationZ";
                    angle1="rad +5";
                };
                class magazine_destruct:MainTurret_destructX
                {
                    type="hide";
                    selection="magazine";
                    hideValue=0.5;
                };
                class ammo_belt_destruct:magazine_destruct
                {
                    selection="ammo_belt";
                };
                class bolt_destruct:magazine_destruct
                {
                    selection="bolt";
                };
                class charging_handle_destruct:magazine_destruct
                {
                    selection="charging_handle";
                };
                class damagehideVez_destruct:magazine_destruct
                {
                    type="hide";
                    selection="damagehideVez";
                    hideValue=0.9;
                };
                class damagehideHlaven_destruct:damagehideVez_destruct
                {
                    selection="damagehideHlaven";
                };
                class damagehideRecoil_destruct:damagehideVez_destruct
                {
                    selection="damagehideRecoil";
                };
                // destruct BASE END

                // unknown animation source reloadMagazine
                /*
                class feedtray_cover_up
                {
                    type="rotation";
                    source="reloadMagazine";
                    selection="feedtray_cover";
                    axis="feedtray_cover_axis";
                    memory=1;
                    minValue=0.000000;
                    maxValue=0.100000;
                    angle0=0.000000;
                    angle1=-1.570796;
                };
                class feedtray_cover_down:feedtray_cover_up
                {
                    minValue=0.950000;
                    maxValue=1.000000;
                    angle0=0.000000;
                    angle1=1.570796;
                };
                class bolt_begin
                {
                    type="translation";
                    source="reloadMagazine";
                    selection="bolt";
                    axis="bolt_axis";
                    memory=1;
                    minValue=0.150000;
                    maxValue=0.200000;
                    offset0=0;
                    offset1=0.5;
                };
                class bolt_end:bolt_begin
                {
                    minValue=0.800000;
                    maxValue=0.900000;
                    offset0=0;
                    offset1=-0.5;
                };*/
            };
        };
        class Cannon: StaticWeapon
        {
            class Animations: Animations
            {
                class recoil_BEGIN
                {
                    type="translation";
                    source="recoil_source";
                    selection="recoil";
                    axis="recoil_axis";
                    memory=1;
                    minValue=0.92;
                    maxValue=0.99;
                    offset0=0;
                    offset1=-2.0;
                };
                class recoil_END:recoil_BEGIN
                {
                    minValue=0.99;
                    maxValue=1.0;
                    offset0=0;
                    offset1=2.0;
                };

                // recoils shake START
                class recoil_Shake_HlavenX
                {
                    type="rotationX";
                    source="recoil_source";
                    //sourceAddress="mirror";
                    selection="OtocHlaven";
                    axis="recoil_axis";
                    memory=1;
                    minValue=0.900000;
                    maxValue=0.950000;
                    angle0=0;
                    angle1="rad +2.0";
                };
                class recoil_Shake_HlavenX_END:recoil_Shake_HlavenX
                {
                    minValue=0.950000;
                    maxValue=1.0;
                    angle0="rad +2.0";
                    angle1=0;
                };
                class recoil_Shake_HlavenY:recoil_Shake_HlavenX
                {
                    type="rotationY";
                    minValue=0.930000;
                    maxValue=0.980000;
                    angle1="rad +1.0";
                };
                class recoil_Shake_HlavenY_END:recoil_Shake_HlavenY
                {
                    minValue=0.980000;
                    maxValue=1.0;
                    angle0="rad +1.0";
                    angle1=0;
                };
                class recoil_Shake_HlavenZ:recoil_Shake_HlavenX
                {
                    type="rotationZ";
                    minValue=0.950000;
                    maxValue=0.990000;
                    angle1="rad -1.5";
                };
                class recoil_Shake_HlavenZ_END:recoil_Shake_HlavenZ
                {
                    minValue=0.980000;
                    maxValue=1.00000;
                    angle0="rad -1.5";
                    angle1=0;
                };
                class recoil_Shake_VezX:recoil_Shake_HlavenX
                {
                    selection="OtocVez";
                    angle1="rad -0.5";
                };
                class recoil_Shake_VezX_END:recoil_Shake_HlavenX_END
                {
                    selection="OtocVez";
                    angle0="rad -0.5";
                    angle1=0;
                };
                class recoil_Shake_VezY:recoil_Shake_HlavenY
                {
                    selection="OtocVez";
                    angle1="rad -0.25";
                };
                class recoil_Shake_VezY_END:recoil_Shake_HlavenY_END
                {
                    selection="OtocVez";
                    angle0="rad -0.25";
                    angle1=0;
                };
                class recoil_Shake_VezZ:recoil_Shake_HlavenZ
                {
                    selection="OtocVez";
                    angle1="rad +0.25";
                };
                class recoil_Shake_VezZ_END:recoil_Shake_HlavenZ_END
                {
                    selection="OtocVez";
                    angle0="rad +0.25";
                    angle1=0;
                };
                // recoils shake END
            };
        };
        class satchel: Default {};
        class shell: Default {};
        class granat: Default    {};
        class handgrenade: Default    {};
        class M19_at_proxy: Default    {};
        class TM_62M: Default    {};

        class opt_snip_noflash: Optic {};
        class optika_acog: Optic {};
        class 2Dscope_Acog_4x32: Optic {};
        class optika_aimpoint: Optic {};
        class optika_night: Optic {};
        class optika_rpg: Optic {};
        class optika_sniperw: Optic {};
        class optika_snpiere: Optic {};
        class optika_stinger: Optic {};
        class optika_strela: Optic {};

        class M2_static: StaticWeapon
        {
            class Animations: Animations
            {
                class ammo_belt_rotation
                {
                    type="rotationZ";
                    source="reload";
                    selection="ammo_belt";
                    axis="ammo_belt_axis";
                    memory=1;
                    sourceAddress="loop";
                    minValue=0.000000;
                    maxValue=1.000000;
                    angle0=0.087266;
                    angle1=-0.174533;
                };
            };
        };
        class TOW_static: StaticWeapon
        {
        }
        class StaticMGWeapon:StaticWeapon
        {
            skeletonName="StaticMGWeapon";
            class Animations: Animations
            {
                class Ammo_belt_rotation
                {
                    type="rotation";
                    selection="ammo_belt";
                    source="ReloadAnim";
                    axis="ammo_belt_axis";
                    memory=1;
                    sourceAddress="loop";
                    minValue=0;
                    maxValue=1;
                    angle0=0.000000;
                    angle1=7.5*3.14159265358/180;
                };
                class Barrel_recoil:ammo_belt_rotation
                {
                    type="translation";
                    selection="recoil";
                    axis="recoil_axis";
                    sourceAddress="mirror";
                    minValue=0.0;
                    maxValue=0.5;
                    offset0=0;
                    offset1=-0.05;
                };
                class Bolt_recoil:Barrel_recoil
                {
                    selection="bolt";
                    offset0=0;
                    maxValue=0.5;
                    offset1=-0.25;
                };
                class Turret_shake:Barrel_recoil
                {
                    selection="OtocHlaven_Shake";
                    axis="osaveze";
                    offset0=0;
                    offset1=-0.002;
                    maxValue=0.05;
                };
                class Turret_shake_aside:Turret_shake
                {
                    axis="osahlavne";
                    maxValue=0.05*1.3;
                };
                class Charging_handle_shake:Barrel_recoil
                {
                    type="rotation";
                    selection="Charging_handle";
                    axis="Charging_handle_axis";
                    sourceAddress="mirror";
                    maxValue=0.005;
                    angle0=0.000000;
                    angle1=-0.1;
                };
                class Feedtray_cover_up
                {
                    type="rotation";
                    source="reloadMagazine";
                    selection="feedtray_cover";
                    axis="feedtray_cover_axis";
                    memory=1;
                    minValue=0.1000000;
                    maxValue=0.130000;
                    angle0=0.000000;
                    angle1=-1.570796;
                };
                class Feedtray_cover_down:feedtray_cover_up
                {
                    minValue=0.860000;
                    maxValue=0.900000;
                    angle0=0.000000;
                    angle1=1.570796;
                };
                class Bolt_reload_begin:Bolt_recoil
                {
                    type="translation";
                    sourceAddress="clamp";
                    source="reloadMagazine";
                    minValue=0.00000;
                    maxValue=0.0200000;
                };
                class Bolt_reload_end:bolt_reload_begin
                {
                    minValue=0.050000;
                    maxValue=0.070000;
                    offset0=0;
                    offset1=+0.25;
                };
                class Charging_handle_reload_begin:Bolt_reload_begin{selection="Charging_handle";};
                class Charging_handle_reload_end:Bolt_reload_end{selection="Charging_handle";};

                class Magazine_hide
                {
                    type="hide";
                    source="reloadMagazine";
                    sourceAddress="mirror";
                    selection="magazine";
                    minValue=0.0;
                    maxValue=0.5;
                    hideValue=0.56;
                };
            };
        };
        class m2_mg: StaticMGWeapon
        {
            class Animations: Animations
            {
                class MainGun_destructX:MainGun_destructX
                {
                    angle1="rad -25";
                };
                class Ammo_belt_rotation:Ammo_belt_rotation{};
                class Barrel_recoil:Barrel_recoil{};
                class Bolt_recoil:Bolt_recoil{};
                class Turret_shake:Turret_shake{};
                class Turret_shake_aside:Turret_shake_aside{};
                class Charging_handle_shake:Charging_handle_shake{};
                class Feedtray_cover_up:Feedtray_cover_up{};
                class Feedtray_cover_down:Feedtray_cover_down{};
                class Bolt_reload_begin:Bolt_reload_begin{};
                class Bolt_reload_end:Bolt_reload_end{};
                BULLET_HIDE(001,12,100)
                BULLET_HIDE(002,12,100)
                BULLET_HIDE(003,12,100)
                BULLET_HIDE(004,12,100)
                BULLET_HIDE(005,12,100)
                BULLET_HIDE(006,12,100)
                BULLET_HIDE(007,12,100)
                BULLET_HIDE(008,12,100)
                BULLET_HIDE(009,12,100)
                BULLET_HIDE(010,12,100)
                BULLET_HIDE(011,12,100)
                BULLET_HIDE(012,12,100)
            };
        };
        class dshkm_mg: StaticMGWeapon
        {
            class Animations: Animations
            {
                class MainGun_destructX:MainGun_destructX
                {
                    angle1="rad +25";
                };
                class Ammo_belt_rotation:Ammo_belt_rotation{};
                class Turret_shake:Turret_shake
                {
                    maxValue=0.05*3;
                };
                class Turret_shake_aside:Turret_shake_aside
                {
                    maxValue=0.05*1.3*3;
                };
                class Feedtray_cover_up:Feedtray_cover_up{};
                class Feedtray_cover_down:Feedtray_cover_down{};
                BULLET_HIDE(001,4,50)
                BULLET_HIDE(002,4,50)
                BULLET_HIDE(003,4,50)
                BULLET_HIDE(004,4,50)
            };
        };
        class ags_static: StaticWeapon {};
        class searchlight_manual: StaticWeapon {sections[]={"light"};class Animations: Animations{};};
        // CANNONS START
        class D30: Cannon {};
        class M119: Cannon
        {
            class Animations: Animations
            {
                // recoil FIRE ANIM START
                class recoil_BEGIN:recoil_BEGIN
                {
                    offset1=-0.3;
                };
                class recoil_END:recoil_END
                {
                    offset1=0.3;
                };
            // recoil FIRE ANIM END
            };
        };
        // CANNONS END
        // STATIC WEAPONS END

        // WEAPONS START
        // MACHINEGUNS START
        class PK_MG_proxy: MachineGun
        {
            class Animations: Animations
            {
                // AMMOBELT ANIM START
                class ammo_belt:ammo_belt
                {
                    type="translation";
                    offset0=0.184;
                    offset1=0.0;
                };
                class ammo_belt_bullet007hide_hide:ammo_belt
                {
                    type="hide";
                    selection="bullet007hide";
                    sourceAddress="mirror";
                    minValue=-1.0;
                    maxValue=0.0;
                    hideValue=0.25;
                };
                // AMMOBELT ANIM END

                // fake Bullet START
                class fake_bullet
                {
                    type="translation";
                    source="reload";
                    selection="fake_bullet";
                    end="nabojnicestart";
                    begin="nabojniceend";
                    memory=1;
                    minValue=0.0;
                    maxValue=0.1;
                    offset0=0.0;
                    offset1=1.0;
                };
                class fake_bullet_hide
                {
                    type="hide";
                    source="reload";
                    selection="fake_bullet";
                    sourceAddress="clamp";
                    minValue=0.0;
                    maxValue=1.0;
                    hideValue=0.1;
                };
                // fake Bullet END

                // SHAKE FIRE ANIM START
                // AMMOBELT SHAKE START
                class ammo_belt_shake_01:ammo_belt_shake_01{axis="bullet001_axis";offset1=0.05;};
                class ammo_belt_shake_02:ammo_belt_shake_02{axis="bullet001_axis";offset1=0.025;};
                class ammo_belt_shake_03:ammo_belt_shake_03{axis="bullet001_axis";offset1=0.05;};
                class ammo_belt_shake_05:ammo_belt_shake_05{axis="bullet001_axis";offset1=0.033;};
                class ammo_belt_shake_06:ammo_belt_shake_06{axis="bullet001_axis";offset1=-0.015;};
                class ammo_belt_shake_08:ammo_belt_shake_08{axis="bullet001_axis";offset1=-0.01;};
                class ammo_belt_rotation_shake_01:ammo_belt_rotation_shake_01{angle1="rad -10";};
                class ammo_belt_rotation_shake_02:ammo_belt_rotation_shake_02{angle1="rad 2";};
                class ammo_belt_rotation_shake_03:ammo_belt_rotation_shake_03{angle1="rad 8";};
                // AMMOBELT SHAKE END
                // SHAKE FIRE ANIM END
                // SHAKE STATIC ammo_belt_shake STATIC ANIM START
                class ammo_belt_rotation_shake_static_01:ammo_belt_rotation_shake_static_01{angle1="rad 1";};
                class ammo_belt_rotation_shake_static_02:ammo_belt_rotation_shake_static_02{angle1="rad 0.5";};
                class ammo_belt_rotation_shake_static_03:ammo_belt_rotation_shake_static_03{angle1="rad 0.5";};
                // SHAKE STATIC ammo_belt_shake STATIC ANIM END

                // magazine_belt START
                class magazine_belt
                {
                    type="translation";
                    source="reload";
                    selection="magazine_belt";
                    sourceAddress="mirror";
                    axis="magazine_belt_axis";
                    memory=1;
                    minValue=0.0;
                    maxValue=0.5;
                    offset0=0.0;
                    offset1=0.026;
                };
                // magazine_belt END

                // bullet_cover FIRE ANIM START
                class bullet_cover_UP
                {
                    type="rotation";
                    source="reload";
                    selection="bullet_cover";
                    axis="bullet_cover_axis";
                    memory=1;
                    minValue=0.0;
                    maxValue=0.05;
                    angle0=0.75;
                    angle1=-0.5;

                };
                class bullet_cover_UP_02
                {
                    type="rotation";
                    source="reload";
                    selection="bullet_cover";
                    axis="bullet_cover_axis";
                    memory=1;
                    minValue=0.05;
                    maxValue=0.1;
                    angle0=0.0;
                    angle1=-0.02;
                };
                class bullet_cover_DOWN
                {
                    type="rotation";
                    source="reload";
                    selection="bullet_cover";
                    axis="bullet_cover_axis";
                    memory=1;
                    minValue=0.1;
                    maxValue=0.5;
                    angle0=0.0;
                    angle1=1.27;
                };
                // bullet_cover FIRE ANIM END

                // misc_cover FIRE ANIM START
                class misc_cover_UP
                {
                    type="rotation";
                    source="reload";
                    selection="misc_cover";
                    axis="misc_cover_axis";
                    memory=1;
                    minValue=0.0;
                    maxValue=0.25;
                    angle0=0.4;
                    angle1=0.0;
                };
                class misc_cover_DOWN:misc_cover_UP
                {
                    minValue=0.25;
                    maxValue=1.0;
                    angle0=0.0;
                    angle1=0.4;
                };
                // misc_cover FIRE ANIM END

                // ammo_belt_cover EMPTY ANIM START
                /*
                class ammo_belt_cover_EMPTY
                {
                    type="rotation";
                    source="revolving";
                    selection="ammo_belt_cover";
                    //sourceAddress="mirror";
                    axis="ammo_belt_cover_axis";
                    memory=1;
                    minValue=0.995;
                    maxValue=1.0;
                    angle0=0.0;
                    angle1=0.5;
                };

                class ammo_belt_cover02_EMPTY
                {
                    type="rotation";
                    source="revolving";
                    selection="ammo_belt_cover02";
                    //sourceAddress="mirror";
                    axis="ammo_belt_cover02_axis";
                    memory=1;
                    minValue=0.9;
                    maxValue=1.0;
                    angle0=0.05;
                    angle1=-0.7;
                };
                */
                // ammo_belt_cover EMPTY ANIM END

                // ammo_belt_cover FIRE ANIM START
                class ammo_belt_cover_UP
                {
                    type="rotation";
                    source="reload";
                    selection="ammo_belt_cover";
                    axis="ammo_belt_cover_axis";
                    memory=1;
                    minValue=0.5;
                    maxValue=0.7;
                    angle0=0.05;
                    angle1=-0.05;
                };
                class ammo_belt_cover_DOWN
                {
                    type="rotation";
                    source="reload";
                    selection="ammo_belt_cover";
                    axis="ammo_belt_cover_axis";
                    memory=1;
                    minValue=0.7;
                    maxValue=0.9;
                    angle0=0.0;
                    angle1=0.1;
                };

                class ammo_belt_cover02_DOWN
                {
                    type="rotation";
                    source="reload";
                    selection="ammo_belt_cover02";
                    axis="ammo_belt_cover02_axis";
                    memory=1;
                    minValue=0.3;
                    maxValue=0.5;
                    angle0=-0.05;
                    angle1=0.0;
                };
                class ammo_belt_cover02_UP
                {
                    type="rotation";
                    source="reload";
                    selection="ammo_belt_cover02";
                    axis="ammo_belt_cover02_axis";
                    memory=1;
                    minValue=0.73;
                    maxValue=0.9;
                    angle0=0.0;
                    angle1=-0.05;
                };
                // ammo_belt_cover FIRE ANIM END

                // BULLET EMPTY ANIM START
                class bullet001:bullet001{hideValue=0.91;};
                class bullet002:bullet002{hideValue=0.92;};
                class bullet003:bullet003{hideValue=0.93;};
                class bullet004:bullet004{hideValue=0.94;};
                class bullet005:bullet005{hideValue=0.95;};
                class bullet006:bullet006{hideValue=0.96;};
                class bullet007:bullet007{hideValue=0.97;};
                class bullet008:bullet008{hideValue=0.98;};
                class bullet009:bullet009{hideValue=0.99;};
                class bullet010:bullet010{hideValue=1.0;};
                // BULLET EMPTY ANIM END
            };
        };
        class Pecheneg_MG_proxy: PK_MG_proxy
        {
        class Animations: Animations
            {
                class optics_left
                {
                    type="rotation";
                    source="reloadMagazine";
                    selection="optics";
                    axis="optics_axis";
                    memory=1;
                    minValue=0.000000;
                    maxValue=0.100000;
                    angle0=0.000000;
                    angle1=-1.570796;
                };
                class optics_right:optics_left
                {
                    minValue=0.90000;
                    maxValue=1.000000;
                    angle0=0.000000;
                    angle1=1.570796;
                };
                class feedtray_cover_up: optics_left
                {
                    selection="feedtray_cover";
                    axis="feedtray_cover_axis";
                    minValue=0.100000;
                    maxValue=0.500000;
                };
                class feedtray_cover_down:feedtray_cover_up
                {
                    minValue=0.850000;
                    maxValue=0.900000;
                };
            };
        };

        class M240: MachineGun
        {
            class Animations: Animations
            {
                // AMMOBELT ANIM START
                class ammo_belt:ammo_belt
                {
                    angle0=-0.436332;
                    angle1=-0.15;
                };
                // AMMOBELT ANIM END


                BULLET_HIDE(001,8,200)
                BULLET_HIDE(002,8,200)
                BULLET_HIDE(003,8,200)
                BULLET_HIDE(004,8,200)
                BULLET_HIDE(005,8,200)
                BULLET_HIDE(006,8,200)
                BULLET_HIDE(007,8,200)
                BULLET_HIDE(008,8,200)


                // SHAKE FIRE ANIM START
                // AMMOBELT SHAKE START
                class ammo_belt_shake_01:ammo_belt_shake_01{axis="bullet001_axis";offset1=0.05;};
                class ammo_belt_shake_02:ammo_belt_shake_02{axis="bullet001_axis";offset1=0.025;};
                class ammo_belt_shake_03:ammo_belt_shake_03{axis="bullet001_axis";offset1=0.05;};
                class ammo_belt_shake_05:ammo_belt_shake_05{axis="bullet001_axis";offset1=0.033;};
                class ammo_belt_shake_06:ammo_belt_shake_06{axis="bullet001_axis";offset1=-0.015;};
                class ammo_belt_shake_08:ammo_belt_shake_08{axis="bullet001_axis";offset1=-0.01;};
                class ammo_belt_rotation_shake_01:ammo_belt_rotation_shake_01{angle1="rad -10";};
                class ammo_belt_rotation_shake_02:ammo_belt_rotation_shake_02{angle1="rad 2";};
                class ammo_belt_rotation_shake_03:ammo_belt_rotation_shake_03{angle1="rad 8";};
                // AMMOBELT SHAKE END
                // SHAKE FIRE ANIM END
                // SHAKE STATIC ammo_belt_shake STATIC ANIM START
                class ammo_belt_rotation_shake_static_01:ammo_belt_rotation_shake_static_01{angle1="rad 1";};
                class ammo_belt_rotation_shake_static_02:ammo_belt_rotation_shake_static_02{angle1="rad 0.5";};
                class ammo_belt_rotation_shake_static_03:ammo_belt_rotation_shake_static_03{angle1="rad 0.5";};
                // SHAKE STATIC ammo_belt_shake STATIC ANIM END
            };
        };
        class M249: MachineGun
        {
            class Animations: Animations
            {
                BULLET_HIDE(001,10,200)
                BULLET_HIDE(002,10,200)
                BULLET_HIDE(003,10,200)
                BULLET_HIDE(004,10,200)
                BULLET_HIDE(005,10,200)
                BULLET_HIDE(006,10,200)
                BULLET_HIDE(007,10,200)
                BULLET_HIDE(008,10,200)
                BULLET_HIDE(009,10,200)
                BULLET_HIDE(010,10,200)
            };
        };
        class Mk_48_Mod_0: MachineGun {};
        // MACHINEGUNS END

        // PISTOLS START
        class M9_Beretta: Pistol {};
        class M9_Beretta_SD: Pistol {};
        class Makarov: Pistol {};
        class Makarov_Silenced: Pistol {};
        // PISTOLS END

        // GRENADES START
        class smokegrenade: Grenade {};
        // GRENADES END

        // RIFLES START
        class M4A1_Aim: Rifle
        {
            class Animations: Animations
            {
            // FIRE ANIM START
            // Aimpoint_cover START
                class Aimpoint_cover
                {
                    type="rotation";
                    source="reload";
                    selection="aimpoint_cover";
                    axis="aimpoint_cover_axis";
                    sourceAddress="mirror";
                    memory=1;
                    minValue=0.0;
                    maxValue=0.5;
                    angle0=0.0;
                    angle1=-0.08;
                };
                class Aimpoint_coverX:Aimpoint_cover
                {
                    type="rotationX";
                    minValue=0.0;
                    maxValue=0.25;
                    angle0=0.0;
                    angle1=-0.02;
                };
                // Aimpoint_cover END
                // Aimpoint_cover02 START
                class Aimpoint_cover02:Aimpoint_cover
                {
                    selection="aimpoint_cover02";
                    axis="aimpoint_cover02_axis";
                };
                class Aimpoint_cover02X:Aimpoint_coverX
                {
                    selection="aimpoint_cover02";
                    axis="aimpoint_cover02_axis";
                };
                // Aimpoint_cover02 END
                // BOLT FIRE ANIM START
                class bolt_fire_begin:bolt_fire_begin
                {
                    offset0=0;
                    offset1=1.2;
                };
                class bolt_fire_end:bolt_fire_end
                {
                    offset0=0;
                    offset1=-1.2;
                };
                // BOLT FIRE ANIM END
                // FIRE ANIM END
                // RELOAD ANIM START
                class charging_handle_begin
                {
                    type="translation";
                    source="reloadMagazine";
                    selection="charging_handle";
                    axis="charging_handle_axis";
                    memory=1;
                    minValue=0.7;
                    maxValue=0.95;
                    offset0=0.0;
                    offset1=-0.3;
                };
                class charging_handle_end:charging_handle_begin
                {
                    minValue=0.95;
                    maxValue=1.0;
                    offset0=0.0;
                    offset1=0.3;
                };
                // RELOAD ANIM END
            };
        };
        class M4A1_Holo_GL_SD_camo: M4A1_Aim {};
        class M4A1_Holo_GL_SD : M4A1_Aim {};
        class M4A1_Holo_GL: M4A1_Aim {};
        class M4A1_Holo_GL_camo: M4A1_Aim {};
        class M4A1_RCO_GL: M4A1_Aim {};
        class M4A1: M4A1_Aim {};
        class M4A1_AIM_SD_camo: M4A1_Aim {};
        class M4A1_AIM_camo: M4A1_Aim {};
        class M4_SPR: M4A1_Aim {};

          class HKM5_a5: Rifle
        {
            class Animations: Animations
            {
                // RELOAD ANIM START
                class charging_handle_begin
                {
                    type="translation";
                    source="reloadMagazine";
                    selection="charging_handle";
                    axis="charging_handle_axis";
                    memory=1;
                    minValue=0.85;
                    maxValue=0.95;
                    offset0=0.0;
                    offset1=0.65;
                };
                class charging_handle_end:charging_handle_begin
                {
                    minValue=0.95;
                    maxValue=1.0;
                    offset0=0.0;
                    offset1=-0.65;
                };
                // RELOAD ANIM END
            };
        };
        class MP5SD: HKM5_a5 {};
        class m16_granatomet_proxy: M4A1_Aim {};
        class m16_proxy: M4A1_Aim {};
        // RIFLES END

        // SNIPER RIFLES START
        class M24_green: Sniper_Rifle {};
        class M40A3 : Sniper_Rifle {};
        class SVD_dragunov_proxy: Sniper_Rifle {};
        class svd_camo:SVD_dragunov_proxy{};
        // SNIPER RIFLES END

        // LAUNCHERS START
        class JavelinLauncher: Launcher {};
        class M136Launcher: Launcher {};
        class RPG7_Launcher: Launcher {};
        class stinger_launcher: Launcher {};
        class strela_launcher: Launcher {};
        class TOW_vehiclemount: Launcher {};
        // LAUNCHERS END

        // mozna budou k nicemu a pujdou smazat START
        class 9K32_Strela_Proxy: Weapon    {class Animations{};};
        class ags30: Weapon    {};
        class M2_vehiclemount: Weapon {};
        class MK19_vehiclemount: Weapon {};
        class soflam: Weapon {class Animations{};};
        // mozna budou k nicemu a pujdou smazat END
        // WEAPONS END
    };

     

    • Like 1
×