This commit is the equivalent of a atomic bomb
This commit is contained in:
+82
@@ -0,0 +1,82 @@
|
||||
class StageTI
|
||||
{
|
||||
texture="braf\braf_weapons_sniper_rifles\762mm_PGM_Ultima_Ratio\Data\Textures\AMF_PGM_ULTIMA_RATIO_co.paa";
|
||||
};
|
||||
ambient[]={1,1,1,1};
|
||||
diffuse[]={1,1,1,1};
|
||||
forcedDiffuse[]={0,0,0,0};
|
||||
emmisive[]={0,0,0,1};
|
||||
specular[]={0.029,0.029,0.029,1};
|
||||
specularPower=80w;
|
||||
PixelShaderID="Super";
|
||||
VertexShaderID="Super";
|
||||
class Stage1
|
||||
{
|
||||
texture="braf\braf_weapons_sniper_rifles\762mm_PGM_Ultima_Ratio\Data\Textures\AMF_PGM_ULTIMA_RATIO_nohq.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage2
|
||||
{
|
||||
texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={10,0,0};
|
||||
up[]={0,10,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage3
|
||||
{
|
||||
texture="#(argb,8,8,3)color(0,0,0,0,MC)";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage4
|
||||
{
|
||||
texture="braf\braf_weapons_sniper_rifles\762mm_PGM_Ultima_Ratio\Data\Textures\AMF_PGM_ULTIMA_RATIO_as.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,1};
|
||||
pos[]={0,0,1};
|
||||
};
|
||||
};
|
||||
class Stage5
|
||||
{
|
||||
texture="braf\braf_weapons_sniper_rifles\762mm_PGM_Ultima_Ratio\Data\Textures\AMF_PGM_ULTIMA_RATIO_smdi.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,1};
|
||||
pos[]={0,0,1};
|
||||
};
|
||||
};
|
||||
class Stage6
|
||||
{
|
||||
texture="#(ai,64,64,1)fresnel(0,0)";
|
||||
uvSource="none";
|
||||
};
|
||||
class Stage7
|
||||
{
|
||||
texture="a3\data_f\env_land_ca.paa";
|
||||
uvSource="none";
|
||||
};
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
bg_fnc_playweaponsound = compile preprocessFileLineNumbers "\braf\braf_weapons_sniper_rifles\762mm_PGM_Ultima_Ratio\fn_playweaponsound.sqf";
|
||||
bg_fnc_onFiredAction = compile preprocessFileLineNumbers "\braf\braf_weapons_sniper_rifles\762mm_PGM_Ultima_Ratio\fn_onFiredAction.sqf";
|
||||
bg_wepframe_fired_eh = compile preprocessFileLineNumbers "\braf\braf_weapons_sniper_rifles\762mm_PGM_Ultima_Ratio\fired.sqf";
|
||||
bg_fnc_block_reloadaction = compile preprocessFileLineNumbers "\braf\braf_weapons_sniper_rifles\762mm_PGM_Ultima_Ratio\fn_block_reloadaction.sqf";
|
||||
[] spawn
|
||||
{
|
||||
"bg_wep_playsound" addPublicVariableEventHandler {_this spawn bg_fnc_playweaponsound};
|
||||
};
|
||||
@@ -0,0 +1,91 @@
|
||||
#define true 1
|
||||
#define false 0
|
||||
|
||||
#define VSoft 0
|
||||
#define VArmor 1
|
||||
#define VAir 2
|
||||
|
||||
// type scope
|
||||
#define private 0
|
||||
#define protected 1
|
||||
#define public 2
|
||||
|
||||
#define CanSeeRadar 1
|
||||
#define CanSeeEye 2
|
||||
#define CanSeeOptics 4
|
||||
#define CanSeeEar 8
|
||||
#define CanSeeCompass 16
|
||||
#define CanSeeRadarC CanSeeRadar+CanSeeCompass
|
||||
#define CanSeeAll 31
|
||||
#define CanSeePeripheral 32
|
||||
|
||||
//lock acquiring
|
||||
#define manualLA 0
|
||||
#define automaticLA 1
|
||||
|
||||
//lockable target type
|
||||
#define lockGroundTT 0
|
||||
#define lockAirGroundTT 1
|
||||
#define lockAirTT 2
|
||||
#define lockGround 0
|
||||
#define lockAirGround 1
|
||||
#define lockAir 2
|
||||
|
||||
//missile lock type
|
||||
#define fireAndForgetLT 0
|
||||
#define keepLockedLT 1
|
||||
#define manualLT 2
|
||||
|
||||
#define SPEED_STATIC 1e10
|
||||
|
||||
#define LockNo 0
|
||||
#define LockCadet 1
|
||||
#define LockYes 2
|
||||
|
||||
#define StabilizedInAxesNone 0
|
||||
#define StabilizedInAxisX 1
|
||||
#define StabilizedInAxisY 2
|
||||
#define StabilizedInAxesBoth 3
|
||||
#define StabilizedInAxesXYZ 4
|
||||
|
||||
#define CM_none 0
|
||||
#define CM_Lock_Visual 1
|
||||
#define CM_Lock_IR 2
|
||||
#define CM_Lock_Laser 4
|
||||
#define CM_Lock_Radar 8
|
||||
#define CM_Missile 16
|
||||
|
||||
|
||||
#define CMImmunity_GOOD 0.9
|
||||
#define CMImmunity_MIDDLE 0.65
|
||||
#define CMImmunity_BAD 0.5
|
||||
|
||||
#define mag_xx(a,b) class _xx_##a {magazine = a; count = b;}
|
||||
#define weap_xx(a,b) class _xx_##a {weapon = a; count = b;}
|
||||
#define item_xx(a,b) class _xx_##a {name = a; count = b;}
|
||||
#define bag_xx(a,b) class _xx_##a {backpack = a; count = b;}
|
||||
|
||||
#define DEFAULT_SLOT 0
|
||||
#define MUZZLE_SLOT 101
|
||||
#define OPTICS_SLOT 201
|
||||
#define FLASHLIGHT_SLOT 301
|
||||
#define NVG_SLOT 602
|
||||
#define GOGGLE_SLOT 603
|
||||
#define HEADGEAR_SLOT 605
|
||||
#define UNIFORM_SLOT 801
|
||||
|
||||
#define HMD_SLOT 616
|
||||
#define BINOCULAR_SLOT 617
|
||||
#define MEDIKIT_SLOT 619
|
||||
#define RADIO_SLOT 611
|
||||
|
||||
#define VEST_SLOT 701
|
||||
#define BACKPACK_SLOT 901
|
||||
|
||||
#define LOAD(weight,capacity) maximumLoad = ##capacity##; \
|
||||
mass = ##weight##;
|
||||
|
||||
#define HeadArmourCoef 2.5
|
||||
#define BodyArmourCoef 10
|
||||
#define HandArmourCoef 5
|
||||
#define LegArmourCoef 5
|
||||
@@ -0,0 +1,247 @@
|
||||
#include "basicdefines_A3.hpp"
|
||||
|
||||
class CfgPatches
|
||||
{
|
||||
class AMF_PGM_ULTIMA_RATIO
|
||||
{
|
||||
units[] = {};
|
||||
weapons[] =
|
||||
{
|
||||
"braf_pgm_ultimaratio"
|
||||
};
|
||||
requiredVersion = 0.1;
|
||||
requiredAddons[] =
|
||||
{
|
||||
"A3_Weapons_F",
|
||||
"cba_main",
|
||||
"A3_Anims_F",
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PreInit_EventHandlers
|
||||
{
|
||||
bg_wepframework_init = "call ('\braf\braf_weapons_sniper_rifles\762mm_PGM_Ultima_Ratio\XEH_INIT.sqf' call SLX_XEH_COMPILE)";
|
||||
};
|
||||
|
||||
class Extended_FiredBIS_Eventhandlers
|
||||
{
|
||||
class CAManBase
|
||||
{
|
||||
bg_wepframe_fired = "_this call bg_wepframe_fired_eh";
|
||||
};
|
||||
};
|
||||
|
||||
class Mode_SemiAuto;
|
||||
class MuzzleSlot;
|
||||
class CowsSlot;
|
||||
class PointerSlot;
|
||||
class UnderBarrelSlot;
|
||||
|
||||
class CfgWeapons
|
||||
{
|
||||
class Rifle_Base_F;
|
||||
class Rifle_Long_Base_F : Rifle_Base_F
|
||||
{
|
||||
class WeaponSlotsInfo;
|
||||
class GunParticles;
|
||||
};
|
||||
class braf_pgm_ultimaratio : Rifle_Long_Base_F
|
||||
{
|
||||
ACE_barrelTwist = 290;
|
||||
ACE_barrelLength = 550;
|
||||
author = "Wisexe & AMF Team";
|
||||
scope = 2;
|
||||
_generalMacro = "AMF_PGM_ULTIMA_RATIO_01_F";
|
||||
model = "\braf\braf_weapons_sniper_rifles\762mm_PGM_Ultima_Ratio\PGM_UltimaRatio.p3d";
|
||||
displayName = "PGM Ultima Ratio";
|
||||
picture = "\braf\braf_weapons_sniper_rifles\762mm_PGM_Ultima_Ratio\Data\UI\AMF_PGM_ULTIMA_RATIO_GEAR.paa";
|
||||
deployedPivot = "bipod"; /// what point should be used to be on surface while unfolded
|
||||
//soundBipodDown[] = {"A3\Sounds_F_Mark\arsenal\sfx\bipods\Bipod_BLU_down", db - 3, 1, 20}; /// what sound should be played during unfolding
|
||||
//soundBipodUp[] = {"A3\Sounds_F_Mark\arsenal\sfx\bipods\Bipod_BLU_up", db - 3, 1, 20}; /// what sound should be played during folding
|
||||
magazines[] =
|
||||
{
|
||||
"10Rnd_762x51_Mag",
|
||||
};
|
||||
cursor = "srifle";
|
||||
class Library
|
||||
{
|
||||
libTextDesc = "PGM ultima Ratio";
|
||||
};
|
||||
inertia = 1.2;
|
||||
dexterity = 1.0;
|
||||
reloadAction = "GestureReloadLRR";
|
||||
recoil = "recoil_dmr_02";
|
||||
maxZeroing = 2000;
|
||||
descriptionShort = "AMF PGM ULTIMA RATIO";
|
||||
class ItemInfo
|
||||
{
|
||||
priority = 1;
|
||||
};
|
||||
class bg_weaponparameters
|
||||
{
|
||||
class onFired_Action
|
||||
{
|
||||
HandAction = "AMF_PGM_ULTIMA_RATIO_Gesture_Rechamber";
|
||||
Actiondelay = 0.02;
|
||||
Sound = "AMF_PGM_ULTIMA_RATIO_BOLT_SOUND";
|
||||
Sound_Location = "RightHandMiddle1";
|
||||
hasOptic = 0;
|
||||
};
|
||||
};
|
||||
handAnim[] =
|
||||
{
|
||||
"OFP2_ManSkeleton",
|
||||
"\braf\braf_weapons_anim\animations\762mm_PGM_UltimaRatio\AMF_PGM_ULTIMA_RATIO.rtm",
|
||||
};
|
||||
opticsPPEffects[] = {};
|
||||
opticsFlare = 1;
|
||||
opticsDisablePeripherialVision = 1;
|
||||
class GunParticles
|
||||
{
|
||||
class FirstEffect
|
||||
{
|
||||
effectName = "SniperCloud";
|
||||
positionName = "Usti hlavne";
|
||||
directionName = "Konec hlavne";
|
||||
};
|
||||
};
|
||||
distanceZoomMin = 500;
|
||||
distanceZoomMax = 500;
|
||||
modes[] = {"Single", "single_close_optics1", "single_medium_optics1", "single_far_optics1"};
|
||||
reloadMagazineSound[] = {"A3\Sounds_F\arsenal\weapons\LongRangeRifles\M320\M320_reload", 2, 1, 10};
|
||||
drySound[] = {"A3\Sounds_F\arsenal\weapons\LongRangeRifles\M320\M320_dry", 1.5011872, 1, 20};
|
||||
class Single : Mode_SemiAuto
|
||||
{
|
||||
sounds[] = {"StandardSound"};
|
||||
class BaseSoundModeType
|
||||
{
|
||||
closure1[] = {"\braf\braf_weapons_sound\weapons\PGM_UltimaRatio\AMF_PGM_ULTIMA_RATIO.wss", 1.0, 1, 30};
|
||||
closure2[] = {"\braf\braf_weapons_sound\weapons\PGM_UltimaRatio\AMF_PGM_ULTIMA_RATIO.wss", 1.0, 1, 30};
|
||||
soundClosure[] = {"closure1", 0.5, "closure2", 0.5};
|
||||
};
|
||||
class StandardSound : BaseSoundModeType
|
||||
{
|
||||
begin1[] = {"\braf\braf_weapons_sound\weapons\PGM_UltimaRatio\AMF_PGM_ULTIMA_RATIO.wss", 3.0118723, 1, 2200};
|
||||
begin2[] = {"\braf\braf_weapons_sound\weapons\PGM_UltimaRatio\AMF_PGM_ULTIMA_RATIO.wss", 3.0118723, 1, 2200};
|
||||
begin3[] = {"\braf\braf_weapons_sound\weapons\PGM_UltimaRatio\AMF_PGM_ULTIMA_RATIO.wss", 3.0118723, 1, 2200};
|
||||
soundBegin[] = {"begin1", 0.33, "begin2", 0.33, "begin2", 0.34};
|
||||
class SoundTails
|
||||
{
|
||||
class TailInterior
|
||||
{
|
||||
sound[] = {"A3\Sounds_F_Mark\arsenal\weapons\LongRangeRifles\DMR_02_MAR10\DMR_02_tail_interior", 2.2387211, 1, 2200};
|
||||
frequency = 1;
|
||||
volume = "interior";
|
||||
};
|
||||
class TailTrees
|
||||
{
|
||||
sound[] = {"A3\Sounds_F_Mark\arsenal\weapons\LongRangeRifles\DMR_02_MAR10\DMR_02_tail_trees", 2.2387211, 1, 2200};
|
||||
frequency = 1;
|
||||
volume = "(1-interior/1.4)*trees";
|
||||
};
|
||||
class TailForest
|
||||
{
|
||||
sound[] = {"A3\Sounds_F_Mark\arsenal\weapons\LongRangeRifles\DMR_02_MAR10\DMR_02_tail_forest", 2.2387211, 1, 2200};
|
||||
frequency = 1;
|
||||
volume = "(1-interior/1.4)*forest";
|
||||
};
|
||||
class TailMeadows
|
||||
{
|
||||
sound[] = {"A3\Sounds_F_Mark\arsenal\weapons\LongRangeRifles\DMR_02_MAR10\DMR_02_tail_meadows", 2.2387211, 1, 2200};
|
||||
frequency = 1;
|
||||
volume = "(1-interior/1.4)*(meadows/2 max sea/2)";
|
||||
};
|
||||
class TailHouses
|
||||
{
|
||||
sound[] = {"A3\Sounds_F_Mark\arsenal\weapons\LongRangeRifles\DMR_02_MAR10\DMR_02_tail_houses", 2.2387211, 1, 2200};
|
||||
frequency = 1;
|
||||
volume = "(1-interior/1.4)*houses";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
reloadTime = 2;
|
||||
dispersion = 0.00011;
|
||||
recoil = "recoil_single_dmr";
|
||||
recoilProne = "recoil_single_prone_dmr";
|
||||
minRange = 2;
|
||||
minRangeProbab = 0.3;
|
||||
midRange = 350;
|
||||
midRangeProbab = 0.7;
|
||||
maxRange = 500;
|
||||
maxRangeProbab = 0.05;
|
||||
};
|
||||
|
||||
class WeaponSlotsInfo : WeaponSlotsInfo
|
||||
{
|
||||
mass = 160;
|
||||
class MuzzleSlot : MuzzleSlot
|
||||
{
|
||||
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE"; /// this can be set, but having some common helps a bit
|
||||
compatibleItems[] = {}; /// A custom made suppressor for this weapon
|
||||
iconPosition[] = {0.0, 0.45}; /// position of the slot icon inside of the weapon icon, relative to top-left corner in {right, down} format
|
||||
iconScale = 0.2; /// scale of icon described in iconPicture
|
||||
iconPicture = "\A3\Weapons_F\Data\UI\attachment_muzzle.paa"; /// icon for selected slot
|
||||
iconPinpoint = "Center"; /// top, bottom, left, right, center alignment of the icon on snap point
|
||||
};
|
||||
class CowsSlot : CowsSlot /// default accessories for this slot
|
||||
{
|
||||
iconPosition[] = {0.5, 0.35};
|
||||
iconScale = 0.2;
|
||||
};
|
||||
class PointerSlot : PointerSlot /// default accessories for this slot
|
||||
{
|
||||
compatibleItems[] = {};
|
||||
iconPosition[] = {0.20, 0.45};
|
||||
iconScale = 0.25;
|
||||
};
|
||||
|
||||
class UnderBarrelSlot : UnderBarrelSlot /// using AMF bipod
|
||||
{
|
||||
iconPosition[] = {0.2, 0.7};
|
||||
iconScale = 0.2;
|
||||
compatibleItems[] = {"bipod_01_F_blk", "bipod_02_F_blk", "bipod_03_F_blk", "bipod_01_F_khk", "bipod_01_F_snd", "bipod_01_F_mtp", "bipod_02_F_tan", "bipod_02_F_hex", "bipod_03_F_oli"};
|
||||
};
|
||||
};
|
||||
|
||||
class single_close_optics1 : Single
|
||||
{
|
||||
requiredOpticType = 1;
|
||||
showToPlayer = 0;
|
||||
minRange = 2;
|
||||
minRangeProbab = 0.05;
|
||||
midRange = 300;
|
||||
midRangeProbab = 0.8;
|
||||
maxRange = 500;
|
||||
maxRangeProbab = 0.01;
|
||||
aiRateOfFire = 2;
|
||||
aiRateOfFireDistance = 300;
|
||||
};
|
||||
class single_medium_optics1 : single_close_optics1
|
||||
{
|
||||
minRange = 300;
|
||||
minRangeProbab = 0.05;
|
||||
midRange = 500;
|
||||
midRangeProbab = 0.7;
|
||||
maxRange = 700;
|
||||
maxRangeProbab = 0.05;
|
||||
aiRateOfFire = 2;
|
||||
aiRateOfFireDistance = 500;
|
||||
};
|
||||
class single_far_optics1 : single_medium_optics1
|
||||
{
|
||||
requiredOpticType = 2;
|
||||
minRange = 300;
|
||||
minRangeProbab = 0.05;
|
||||
midRange = 700;
|
||||
midRangeProbab = 0.5;
|
||||
maxRange = 1000;
|
||||
maxRangeProbab = 0.05;
|
||||
aiRateOfFire = 4;
|
||||
aiRateOfFireDistance = 600;
|
||||
};
|
||||
aiDispersionCoefY = 3;
|
||||
aiDispersionCoefX = 2;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,43 @@
|
||||
private ["_unit","_weapon","_param","_mode"];
|
||||
_unit = _this select 0;
|
||||
_weapon = _this select 1;
|
||||
_mode = _this select 3;
|
||||
_param = (configFile >> "CfgWeapons" >> _weapon >> "bg_weaponparameters");
|
||||
|
||||
if (isClass _param) then
|
||||
{
|
||||
if (isClass (_param >> "onFired_Action")) then
|
||||
{
|
||||
private ["_HandAction","_Actiondelay","_Sound","_Sound_Location","_hasOptic","_reloadDelay","_weaponConfig","_speed"];
|
||||
_HandAction = (_param >> "onFired_Action" >> "HandAction") call BIS_fnc_getCfgData;
|
||||
_Actiondelay = (_param >> "onFired_Action" >> "Actiondelay") call BIS_fnc_getCfgData;
|
||||
_Sound = (_param >> "onFired_Action" >> "Sound") call BIS_fnc_getCfgData;
|
||||
_Sound_Location = (_param >> "onFired_Action" >> "Sound_Location") call BIS_fnc_getCfgData;
|
||||
_hasOptic = (_param >> "onFired_Action" >> "hasOptic") call BIS_fnc_getCfgData;
|
||||
if (_mode == _weapon) then
|
||||
{
|
||||
_weaponConfig = (configFile >> "CfgWeapons" >> _weapon);
|
||||
_speed = getnumber (_weaponConfig >> "reloadTime");
|
||||
_reloadDelay = _speed + 0.15;
|
||||
}
|
||||
else
|
||||
{
|
||||
_weaponConfig = (configFile >> "CfgWeapons" >> _weapon >> _mode);
|
||||
_speed = getnumber (_weaponConfig >> "reloadTime");
|
||||
_reloadDelay = _speed + 0.15;
|
||||
};
|
||||
|
||||
|
||||
[_unit,_weapon,_HandAction,_Actiondelay,_Sound,_Sound_Location,_hasOptic,_reloadDelay] spawn bg_fnc_onFiredAction;
|
||||
};
|
||||
if (isClass (_param >> "onEmpty")) then
|
||||
{
|
||||
if (_unit ammo _weapon == 0) then
|
||||
{
|
||||
_Sound = (_param >> "onEmpty" >> "Sound") call BIS_fnc_getCfgData;
|
||||
_Sound_Location = (_param >> "onEmpty" >> "Sound_Location") call BIS_fnc_getCfgData;
|
||||
|
||||
[_unit,_Sound,_Sound_Location] spawn bg_fnc_playweaponsound;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
disableSerialization;
|
||||
|
||||
if (_this) then
|
||||
{
|
||||
if (isNil {uiNamespace getVariable "bg_reloadblock"}) then
|
||||
{
|
||||
_blockReload = ([] call BIS_fnc_displayMission) displayAddEventHandler
|
||||
[
|
||||
"KeyDown",
|
||||
{
|
||||
_reloadKeys = actionKeys "ReloadMagazine";
|
||||
|
||||
if ((_this select 1) in _reloadKeys) then {true};
|
||||
}
|
||||
];
|
||||
|
||||
uiNamespace setVariable ["bg_reloadblock", _blockReload];
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
if !(isNil {uiNamespace getVariable "bg_reloadblock"}) then
|
||||
{
|
||||
([] call BIS_fnc_displayMission) displayRemoveEventHandler ['KeyDown', (uiNamespace getVariable "bg_reloadblock")];
|
||||
uiNamespace setVariable ["bg_reloadblock", nil];
|
||||
bg_reloadblock = nil;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,59 @@
|
||||
private ["_unit","_weapon","_param","_HandAction","_Actiondelay","_Sound","_Sound_Location","_hasOptic","_acc","_reloadDelay"];
|
||||
_unit = _this select 0;
|
||||
_weapon = _this select 1;
|
||||
_HandAction = _this select 2;
|
||||
_Actiondelay = _this select 3;
|
||||
_Sound = _this select 4;
|
||||
_Sound_Location = _this select 5;
|
||||
_hasOptic = (_this select 6 == 1);
|
||||
_acc = _unit weaponAccessories _weapon;
|
||||
_reloadDelay = _this select 7;
|
||||
|
||||
if (_acc select 2 != "") then
|
||||
{
|
||||
_hasOptic = true;
|
||||
};
|
||||
|
||||
|
||||
if (!local _unit && _hasOptic) exitwith {};
|
||||
|
||||
if (_unit ammo _weapon !=0) then
|
||||
{
|
||||
if (!isDedicated && _hasOptic && player == _unit) then
|
||||
{
|
||||
if (cameraview == "GUNNER") then
|
||||
{
|
||||
true call bg_fnc_block_reloadaction;
|
||||
};
|
||||
while {cameraview == "GUNNER"} do
|
||||
{
|
||||
_unit setWeaponReloadingTime [_unit,_weapon,1];
|
||||
sleep 0.001;
|
||||
};
|
||||
sleep _Actiondelay;
|
||||
[_unit,_Sound,_Sound_Location] spawn bg_fnc_playweaponsound;
|
||||
bg_wep_playsound = [_unit,_Sound,_Sound_Location];
|
||||
publicVariable "bg_wep_playsound";
|
||||
_unit playAction _HandAction;
|
||||
true call bg_fnc_block_reloadaction;
|
||||
sleep _reloadDelay;
|
||||
false call bg_fnc_block_reloadaction;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
sleep _Actiondelay;
|
||||
[_unit,_Sound,_Sound_Location] spawn bg_fnc_playweaponsound;
|
||||
if (local _unit) then
|
||||
{
|
||||
_unit playAction _HandAction;
|
||||
if (_unit == player) then
|
||||
{
|
||||
true call bg_fnc_block_reloadaction;
|
||||
sleep _reloadDelay;
|
||||
false call bg_fnc_block_reloadaction;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
@@ -0,0 +1,24 @@
|
||||
private ["_unit","_arg","_sound","_Sound_Location"];
|
||||
if (typename (_this select 1) == "array") then
|
||||
{
|
||||
_arg = _this select 1;
|
||||
_unit = _arg select 0;
|
||||
_sound = _arg select 1;
|
||||
_Sound_Location = _arg select 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
_unit = _this select 0;
|
||||
_sound = _this select 1;
|
||||
_Sound_Location = _this select 2;
|
||||
};
|
||||
if (isnil "_sound" || _sound == "") exitwith {}; // No sound set, don't play anything.
|
||||
if (isNil "_unit") exitwith {false}; //Rarely happens that _unit stops existing
|
||||
|
||||
_rhand = _unit selectionPosition _Sound_Location;
|
||||
_posStart = _unit modeltoworld _rhand;
|
||||
_obj = "#particlesource" createVehicleLocal _posStart;
|
||||
_obj attachto [_unit,_rhand];
|
||||
_obj say3d _sound;
|
||||
sleep 10;
|
||||
deleteVehicle _obj;
|
||||
@@ -0,0 +1,278 @@
|
||||
class CfgSkeletons
|
||||
{
|
||||
class Default
|
||||
{
|
||||
isDiscrete = 1;
|
||||
skeletonInherit = "";
|
||||
skeletonBones[] = {};
|
||||
};
|
||||
class AMF_PGM_ULTIMA_RATIO_skeleton : Default
|
||||
{
|
||||
isDiscrete=0;
|
||||
skeletonInherit="";
|
||||
skeletonBones[]=
|
||||
{
|
||||
"magazine", "",
|
||||
"muzzleflash", "",
|
||||
"bolt", "",
|
||||
"ForeSight", "",
|
||||
"BackSight", "",
|
||||
"trigger", "",
|
||||
"bipod_back", "",
|
||||
"zasleh", ""
|
||||
};
|
||||
};
|
||||
};
|
||||
class CfgModels
|
||||
{
|
||||
class Default
|
||||
{
|
||||
sectionsInherit="";
|
||||
sections[]={};
|
||||
skeletonName="";
|
||||
};
|
||||
class PGM_UltimaRatio: Default
|
||||
{
|
||||
sections[] = {"zasleh","Camo","bipod_back"};
|
||||
skeletonName="AMF_PGM_ULTIMA_RATIO_skeleton";
|
||||
class Animations
|
||||
{
|
||||
class trigger_rotation
|
||||
{
|
||||
type = "rotation";
|
||||
source = "reload";
|
||||
sourceAddress = "clamp";
|
||||
selection = "trigger";
|
||||
axis = "trigger_axis";
|
||||
minValue = 0;
|
||||
maxValue = 1;
|
||||
angle0 = "0";
|
||||
angle1 = "rad -15";
|
||||
};
|
||||
class bolt_fire_begin1
|
||||
{
|
||||
type= rotation;
|
||||
source="reload";
|
||||
sourceAddress= clamp;
|
||||
selection="bolt";
|
||||
axis="bolt_axis";
|
||||
minValue = 0.55;
|
||||
maxValue = 0.6;
|
||||
angle0= (rad 0);
|
||||
angle1= (rad -60);
|
||||
animPeriod = 0.0;
|
||||
initPhase = 3.0;
|
||||
// memory = true;
|
||||
};
|
||||
class bolt_fire_begin2
|
||||
{
|
||||
type="translation";
|
||||
source="reload";
|
||||
selection="bolt";
|
||||
axis="bolt_axis";//*probably*
|
||||
// sourceAddress = clamp;// (default)
|
||||
minValue = 0.65;//rad 0.0
|
||||
maxValue = 0.75;//rad 17.188734
|
||||
offset0 = 0.0;
|
||||
offset1 = 0.7;
|
||||
animPeriod = 0.0;
|
||||
initPhase = 0.0;
|
||||
// memory = true;//(default assumed)
|
||||
};
|
||||
class bolt_fire_end1
|
||||
{
|
||||
type="translation";
|
||||
source="reload";
|
||||
selection="bolt";
|
||||
axis="bolt_axis";//*probably*
|
||||
// sourceAddress = clamp;// (default)
|
||||
minValue = 0.8;//rad 28.64789
|
||||
maxValue = 0.9;//rad 57.29578
|
||||
offset0 = 0.0;
|
||||
offset1 = -0.7;
|
||||
animPeriod = 1.0;
|
||||
initPhase = 0.0;
|
||||
// memory = true;//(default assumed)
|
||||
};
|
||||
class bolt_fire_end2
|
||||
{
|
||||
type= rotation;
|
||||
source="reload";
|
||||
sourceAddress= clamp;
|
||||
selection="bolt";
|
||||
axis="bolt_axis";
|
||||
minValue = 0.95;
|
||||
maxValue = 1.0;
|
||||
angle0= (rad 0);
|
||||
angle1= (rad 60);
|
||||
animPeriod = 1.0;
|
||||
initPhase = 0.0;
|
||||
// memory = true;
|
||||
};
|
||||
class bolt_reload_begin1
|
||||
{
|
||||
type= rotation;
|
||||
source="reloadMagazine";
|
||||
sourceAddress= clamp;
|
||||
selection="bolt";
|
||||
axis="bolt_axis";
|
||||
minValue = 0.04;
|
||||
maxValue = 0.08;
|
||||
angle0= (rad 0);
|
||||
angle1= (rad -60);
|
||||
animPeriod = 0.0;
|
||||
initPhase = 0.0;
|
||||
// memory = true;
|
||||
};
|
||||
class bolt_reload_begin2
|
||||
{
|
||||
selection = "bolt";
|
||||
axis = "bolt_axis";
|
||||
type="translation";
|
||||
source="reloadMagazine";
|
||||
// sourceAddress = clamp;// (default)
|
||||
minValue = 0.1;//rad 0.0
|
||||
maxValue = 0.14;//rad 17.188734
|
||||
offset0 = 0.0;
|
||||
offset1 = 0.7;
|
||||
animPeriod = 0.0;
|
||||
initPhase = 0.0;
|
||||
// memory = true;//(default assumed)
|
||||
};
|
||||
class bolt_reload_end1
|
||||
{
|
||||
selection = "bolt";
|
||||
axis = "bolt_axis";
|
||||
type="translation";
|
||||
source="reloadMagazine";
|
||||
// sourceAddress = clamp;// (default)
|
||||
minValue = 0.8;//rad 28.64789
|
||||
maxValue = 0.84;//rad 57.29578
|
||||
offset0 = 0.0;
|
||||
offset1 = -0.7;
|
||||
animPeriod = 0.0;
|
||||
initPhase = 0.0;
|
||||
// memory = true;//(default assumed)
|
||||
};
|
||||
class bolt_reload_end2
|
||||
{
|
||||
type= rotation;
|
||||
source="reloadMagazine";
|
||||
sourceAddress= clamp;
|
||||
selection="bolt";
|
||||
axis="bolt_axis";
|
||||
minValue = 0.86;
|
||||
maxValue = 0.9;
|
||||
angle0= (rad 0);
|
||||
angle1= (rad 60);
|
||||
animPeriod = 0.0;
|
||||
initPhase = 0.0;
|
||||
// memory = true;
|
||||
};
|
||||
class magazine_hide
|
||||
{
|
||||
type="hide";
|
||||
source="reloadMagazine";
|
||||
selection="magazine";
|
||||
minValue=0.000000;
|
||||
maxValue=1.00000;
|
||||
hideValue=0.31;
|
||||
unhideValue = 0.550;
|
||||
};
|
||||
class no_magazine
|
||||
{
|
||||
type="hide";
|
||||
source="hasMagazine";
|
||||
selection="magazine";
|
||||
minValue=0.000000;
|
||||
maxValue=1.00000;
|
||||
hideValue=0.5;
|
||||
unhideValue = -1.0;
|
||||
};
|
||||
class magazine_reload_move_1
|
||||
{
|
||||
type = "translation";
|
||||
source = "reloadMagazine";
|
||||
selection = "magazine";
|
||||
axis = "magazine_axis";
|
||||
minValue = 0.27;
|
||||
maxValue = 0.31;
|
||||
offset0 = 0.0;
|
||||
offset1 = 1.0;
|
||||
};
|
||||
class magazine_reload_move_2: magazine_reload_move_1
|
||||
{
|
||||
minValue = 0.52;
|
||||
maxValue = 0.58;
|
||||
offset0 = 0.0;
|
||||
offset1 = -1.0;
|
||||
};
|
||||
class BackSight_optic
|
||||
{
|
||||
type="rotation";
|
||||
source="hasOptics";
|
||||
selection="BackSight";
|
||||
axis="BackSight_axis";
|
||||
memory=1;
|
||||
minValue=0.0000000;
|
||||
maxValue=1.0000000;
|
||||
angle0=0.000000;
|
||||
angle1=(rad 90);
|
||||
};
|
||||
class ForeSight_optic: BackSight_optic
|
||||
{
|
||||
selection="ForeSight";
|
||||
axis="ForeSight_axis";
|
||||
angle1=(rad 90);
|
||||
};
|
||||
class muzzleflash_hide
|
||||
{
|
||||
type="hide";
|
||||
source="hasSuppressor";
|
||||
selection="zasleh";
|
||||
minValue = 0.0;
|
||||
maxvalue = 0.25;
|
||||
hideValue = 0.01;
|
||||
};
|
||||
class muzzleFlashROT
|
||||
{
|
||||
type="rotationX";
|
||||
source="ammoRandom";
|
||||
selection="zasleh";
|
||||
axis="muzzleflash_axis";//*probably*
|
||||
sourceAddress = loop;
|
||||
minValue = 0.0;//rad 0.0
|
||||
maxValue = 4.0;//rad 229.18312
|
||||
angle0 = 0.0;//rad 0.0;
|
||||
angle1 = 1.2443461;//rad 14.0;
|
||||
memory = true;//(default assumed)
|
||||
};
|
||||
class MuzzleFlashROT1
|
||||
{
|
||||
type="rotation";
|
||||
source="ammoRandom";
|
||||
selection="zasleh";
|
||||
axis="muzzleflash_axis";//*probably*
|
||||
sourceAddress = loop;
|
||||
minValue = 0.0;//rad 0.0
|
||||
maxValue = 1.0;//rad 57.29578
|
||||
angle0 = 0.0;//rad 0.0;
|
||||
angle1 = 1.05235988;//rad 3.0;
|
||||
memory = true;//(default assumed)
|
||||
};
|
||||
class bipod_back_move
|
||||
{
|
||||
type = rotation;
|
||||
source = bipod;
|
||||
sourceAddress = clamp;
|
||||
selection = "bipod_back";
|
||||
axis = "bipod_back_axis";
|
||||
minValue = 0;
|
||||
maxValue = 1;
|
||||
angle0 = (rad 0);
|
||||
angle1 = (rad -90);
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user