373 lines
17 KiB
C++
373 lines
17 KiB
C++
class braf_HK416_long_base : Rifle_Base_F {
|
|
magazines[] = {
|
|
"braf_30Rnd_556x45",
|
|
"braf_20Rnd_556x45",
|
|
"braf_30Rnd_556x45_red",
|
|
"braf_30Rnd_556x45_green",
|
|
"braf_30Rnd_556x45_yellow",
|
|
"braf_30Rnd_556x45_Blank",
|
|
"30Rnd_556x45_Stanag",
|
|
"30Rnd_556x45_Stanag_green",
|
|
"30Rnd_556x45_Stanag_red",
|
|
"30Rnd_556x45_Stanag_Tracer_Red",
|
|
"30Rnd_556x45_Stanag_Tracer_Green",
|
|
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
|
}; /// original custom made magazines and a group of several standardized mags
|
|
magazineWell[]=
|
|
{
|
|
"BRAF_Stanag_556",
|
|
"STANAG_556x45",
|
|
"STANAG_556x45_Large"
|
|
};
|
|
reloadAction = "GestureReloadSPAR_01"; /// MX hand animation actually fits this rifle well
|
|
magazineReloadSwitchPhase = 0.4; /// part of reload animation when new magazine ammo count should affect "revolving" animation source
|
|
discreteDistanceInitIndex = 0; /// Ironsight zeroing is the lowest value by default
|
|
recoil = "recoil_spar";
|
|
maxRecoilSway = 0.0125;
|
|
swayDecaySpeed = 1.25;
|
|
inertia = 0.5;
|
|
initSpeed = -1; /// this means that initSpeed of magazine is used
|
|
class GunParticles : GunParticles
|
|
{
|
|
class SecondEffect
|
|
{
|
|
positionName = "Nabojnicestart";
|
|
directionName = "Nabojniceend";
|
|
effectName = "CaselessAmmoCloud";
|
|
};
|
|
};
|
|
class WeaponSlotsInfo : WeaponSlotsInfo
|
|
{
|
|
mass = 92;
|
|
class MuzzleSlot : MuzzleSlot
|
|
{
|
|
linkProxy="\A3\data_f\proxies\weapon_slots\MUZZLE";
|
|
compatibleItems[]=
|
|
{
|
|
"muzzle_snds_M"
|
|
};
|
|
iconPosition[]={0.12,0.43099999};
|
|
iconScale=0.15000001;
|
|
};
|
|
class CowsSlot : asdg_OpticRail1913 /// default accessories for this slot
|
|
{
|
|
};
|
|
class PointerSlot : asdg_FrontSideRail /// default accessories for this slot
|
|
{
|
|
};
|
|
class UnderBarrelSlot : UnderBarrelSlot /// using AMF bipod
|
|
{
|
|
iconPosition[] = {0.2, 0.7};
|
|
iconScale = 0.2;
|
|
compatibleItems[] = {};
|
|
};
|
|
};
|
|
opticsZoomMin = 0.375;
|
|
opticsZoomMax = 1.1;
|
|
opticsZoomInit = 0.75;
|
|
distanceZoomMin = 300;
|
|
distanceZoomMax = 300;
|
|
descriptionShort = "AMF HK 416 F Long"; /// displayed on mouseOver in Inventory
|
|
handAnim[] = {"OFP2_ManSkeleton", "\braf\braf_weapons_anim\animations\556mm_HK416\amf_hand_nogrip.rtm"}; /// hand animation actually fits this rifle well
|
|
dexterity = 1.8;
|
|
selectionFireAnim = "muzzleFlash"; /// are we able to get rid of all the zaslehs?
|
|
bullet1[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_01", 0.446684, 1, 15};
|
|
bullet2[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_02", 0.446684, 1, 15};
|
|
bullet3[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_03", 0.446684, 1, 15};
|
|
bullet4[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_04", 0.446684, 1, 15};
|
|
bullet5[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Dirt_01", 0.562341, 1, 15};
|
|
bullet6[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Dirt_02", 0.562341, 1, 15};
|
|
bullet7[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Dirt_03", 0.562341, 1, 15};
|
|
bullet8[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Dirt_04", 0.562341, 1, 15};
|
|
bullet9[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Grass_01", 0.562341, 1, 15};
|
|
bullet10[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Grass_02", 0.562341, 1, 15};
|
|
bullet11[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Grass_03", 0.562341, 1, 15};
|
|
bullet12[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Grass_04", 0.562341, 1, 15};
|
|
soundBullet[] = {"bullet1", 0.087, "bullet2", 0.083, "bullet3", 0.083, "bullet4", 0.083, "bullet5", 0.083, "bullet6", 0.083, "bullet7", 0.083, "bullet8", 0.083, "bullet9", 0.083, "bullet10", 0.083, "bullet11", 0.083, "bullet12", 0.083};
|
|
drySound[] = {"A3\Sounds_F_Exp\arsenal\weapons\Rifles\SPAR01\SPAR01_dry", 0.63095737, 1, 30};
|
|
changeFiremodeSound[] = {"A3\Sounds_F_Exp\arsenal\weapons\Rifles\SPAR01\SPAR01_firemode", 0.25118864, 1, 5};
|
|
reloadMagazineSound[] = {"A3\Sounds_F_Exp\arsenal\weapons\Rifles\SPAR01\SPAR01_reload", 1.0, 1, 10};
|
|
modes[] = {SemiAuto, Fullauto, single_medium_optics1, single_far_optics2};
|
|
class SemiAuto : Mode_SemiAuto
|
|
{
|
|
sounds[] = {"StandardSound", "SilencedSound"};
|
|
class BaseSoundModeType;
|
|
class StandardSound : BaseSoundModeType
|
|
{
|
|
soundSetShot[] = {"SPAR01_Shot_SoundSet", "SPAR01_Tail_SoundSet", "SPAR01_InteriorTail_SoundSet"};
|
|
};
|
|
class SilencedSound : BaseSoundModeType
|
|
{
|
|
SoundSetShot[] = {"SPAR01_silencerShot_SoundSet", "SPAR01_silencerTail_SoundSet", "SPAR01_silencerInteriorTail_SoundSet"};
|
|
};
|
|
reloadTime = 0.070;
|
|
recoil = "recoil_single_primary_3outof10";
|
|
recoilProne = "recoil_single_primary_prone_3outof10";
|
|
dispersion = 0.0002;
|
|
minRange = 2;
|
|
minRangeProbab = 0.3;
|
|
midRange = 350;
|
|
midRangeProbab = 0.7;
|
|
maxRange = 500;
|
|
maxRangeProbab = 0.05;
|
|
};
|
|
class FullAuto : Mode_FullAuto
|
|
{
|
|
sounds[] = {"StandardSound", "SilencedSound"};
|
|
class BaseSoundModeType;
|
|
class StandardSound : BaseSoundModeType
|
|
{
|
|
soundSetShot[] = {"SPAR01_Shot_SoundSet", "SPAR01_Tail_SoundSet", "SPAR01_InteriorTail_SoundSet"};
|
|
};
|
|
class SilencedSound : BaseSoundModeType
|
|
{
|
|
SoundSetShot[] = {"SPAR01_silencerShot_SoundSet", "SPAR01_silencerTail_SoundSet", "SPAR01_silencerInteriorTail_SoundSet"};
|
|
};
|
|
reloadTime = 0.070;
|
|
recoil = "recoil_auto_primary_3outof10";
|
|
recoilProne = "recoil_auto_primary_prone_3outof10";
|
|
dispersion = 0.0002;
|
|
minRange = 0;
|
|
minRangeProbab = 0.9;
|
|
midRange = 15;
|
|
midRangeProbab = 0.7;
|
|
maxRange = 30;
|
|
maxRangeProbab = 0.05;
|
|
aiRateOfFire = 1e-006;
|
|
};
|
|
class single_medium_optics1 : SemiAuto /// Pew for AI with collimator sights
|
|
{
|
|
requiredOpticType = 1;
|
|
showToPlayer = 0;
|
|
|
|
minRange = 2;
|
|
minRangeProbab = 0.2;
|
|
midRange = 450;
|
|
midRangeProbab = 0.7;
|
|
maxRange = 600;
|
|
maxRangeProbab = 0.2;
|
|
|
|
aiRateOfFire = 6;
|
|
aiRateOfFireDistance = 600;
|
|
};
|
|
class single_far_optics2 : single_medium_optics1 /// Pew for AI with better sights
|
|
{
|
|
requiredOpticType = 2;
|
|
showToPlayer = 0;
|
|
|
|
minRange = 100;
|
|
minRangeProbab = 0.1;
|
|
midRange = 500;
|
|
midRangeProbab = 0.6;
|
|
maxRange = 700;
|
|
maxRangeProbab = 0.05;
|
|
|
|
aiRateOfFire = 8;
|
|
aiRateOfFireDistance = 700;
|
|
};
|
|
class HK269_F : UGL_F /// Some grenade launcher to have some more fun
|
|
{
|
|
displayName = "AMF HK269";
|
|
descriptionShort = "AMF HK269";
|
|
author = "LKDSG & AMF TEAM";
|
|
useModelOptics = false;
|
|
useExternalOptic = false; /// Doesn't use optics from the attachment, has it's own
|
|
cameraDir = "OP_look";
|
|
discreteDistance[] = {100, 200, 300, 400};
|
|
discreteDistanceCameraPoint[] = {"OP_eye", "OP_eye2", "OP_eye3", "OP_eye4"}; /// the angle of gun changes with zeroing
|
|
discreteDistanceInitIndex = 1; /// 200 is the default zero
|
|
};
|
|
aiDispersionCoefY = 6.0; /// AI should have some degree of greater dispersion for initial shoots
|
|
aiDispersionCoefX = 4.0; /// AI should have some degree of greater dispersion for initial shoots
|
|
};
|
|
class braf_HK416_short_base : Rifle_Base_F {
|
|
magazines[] = {
|
|
"braf_30Rnd_556x45",
|
|
"braf_20Rnd_556x45",
|
|
"braf_30Rnd_556x45_red",
|
|
"braf_30Rnd_556x45_green",
|
|
"braf_30Rnd_556x45_yellow",
|
|
"braf_30Rnd_556x45_Blank",
|
|
"30Rnd_556x45_Stanag",
|
|
"30Rnd_556x45_Stanag_green",
|
|
"30Rnd_556x45_Stanag_red",
|
|
"30Rnd_556x45_Stanag_Tracer_Red",
|
|
"30Rnd_556x45_Stanag_Tracer_Green",
|
|
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
|
}; /// original custom made magazines and a group of several standardized mags
|
|
magazineWell[]=
|
|
{
|
|
"BRAF_Stanag_556",
|
|
"STANAG_556x45",
|
|
"STANAG_556x45_Large"
|
|
};
|
|
reloadAction = "GestureReloadSPAR_01";
|
|
magazineReloadSwitchPhase = 0.4; /// part of reload animation when new magazine ammo count should affect "revolving" animation source
|
|
discreteDistanceInitIndex = 0; /// Ironsight zeroing is the lowest value by default
|
|
handAnim[] = {"OFP2_ManSkeleton", \braf\braf_weapons_anim\animations\556mm_HK416\amf_hand_nogrip.rtm};
|
|
dexterity = 3.1;
|
|
maxRecoilSway = 0.0125;
|
|
swayDecaySpeed = 1.25;
|
|
inertia = 0.5;
|
|
initSpeed = -1; /// this means that initSpeed of magazine is used
|
|
class GunParticles : GunParticles
|
|
{
|
|
class SecondEffect
|
|
{
|
|
positionName = "Nabojnicestart";
|
|
directionName = "Nabojniceend";
|
|
effectName = "CaselessAmmoCloud";
|
|
};
|
|
};
|
|
class WeaponSlotsInfo : WeaponSlotsInfo
|
|
{
|
|
mass = 92;
|
|
class MuzzleSlot : MuzzleSlot
|
|
{
|
|
linkProxy="\A3\data_f\proxies\weapon_slots\MUZZLE";
|
|
compatibleItems[]=
|
|
{
|
|
"muzzle_snds_M"
|
|
};
|
|
iconPosition[]={0.12,0.43099999};
|
|
iconScale=0.15000001;
|
|
};
|
|
class CowsSlot : asdg_OpticRail1913 {};
|
|
class PointerSlot : asdg_FrontSideRail {};
|
|
class UnderBarrelSlot : UnderBarrelSlot {
|
|
iconPosition[] = {0.2, 0.7};
|
|
iconScale = 0.2;
|
|
compatibleItems[] = {};
|
|
};
|
|
};
|
|
opticsZoomMin = 0.375;
|
|
opticsZoomMax = 1.1;
|
|
opticsZoomInit = 0.75;
|
|
distanceZoomMin = 300;
|
|
distanceZoomMax = 300;
|
|
descriptionShort = "AMF HK 416 Short"; /// displayed on mouseOver in Inventory
|
|
selectionFireAnim = "muzzleFlash"; /// are we able to get rid of all the zaslehs?
|
|
bullet1[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_01", 0.446684, 1, 15};
|
|
bullet2[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_02", 0.446684, 1, 15};
|
|
bullet3[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_03", 0.446684, 1, 15};
|
|
bullet4[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_04", 0.446684, 1, 15};
|
|
bullet5[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Dirt_01", 0.562341, 1, 15};
|
|
bullet6[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Dirt_02", 0.562341, 1, 15};
|
|
bullet7[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Dirt_03", 0.562341, 1, 15};
|
|
bullet8[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Dirt_04", 0.562341, 1, 15};
|
|
bullet9[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Grass_01", 0.562341, 1, 15};
|
|
bullet10[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Grass_02", 0.562341, 1, 15};
|
|
bullet11[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Grass_03", 0.562341, 1, 15};
|
|
bullet12[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Grass_04", 0.562341, 1, 15};
|
|
soundBullet[] = {"bullet1", 0.087, "bullet2", 0.083, "bullet3", 0.083, "bullet4", 0.083, "bullet5", 0.083, "bullet6", 0.083, "bullet7", 0.083, "bullet8", 0.083, "bullet9", 0.083, "bullet10", 0.083, "bullet11", 0.083, "bullet12", 0.083};
|
|
drySound[] = {"A3\Sounds_F_Exp\arsenal\weapons\Rifles\SPAR01\SPAR01_dry", 0.63095737, 1, 30};
|
|
changeFiremodeSound[] = {"A3\Sounds_F_Exp\arsenal\weapons\Rifles\SPAR01\SPAR01_firemode", 0.25118864, 1, 5};
|
|
reloadMagazineSound[] = {"A3\Sounds_F_Exp\arsenal\weapons\Rifles\SPAR01\SPAR01_reload", 1.0, 1, 10};
|
|
modes[] = {SemiAuto, Fullauto};
|
|
class SemiAuto : Mode_SemiAuto
|
|
{
|
|
sounds[] = {"StandardSound", "SilencedSound"};
|
|
class BaseSoundModeType;
|
|
class StandardSound : BaseSoundModeType
|
|
{
|
|
soundSetShot[] = {"SPAR01_Shot_SoundSet", "SPAR01_Tail_SoundSet", "SPAR01_InteriorTail_SoundSet"};
|
|
};
|
|
class SilencedSound : BaseSoundModeType
|
|
{
|
|
SoundSetShot[] = {"SPAR01_silencerShot_SoundSet", "SPAR01_silencerTail_SoundSet", "SPAR01_silencerInteriorTail_SoundSet"};
|
|
};
|
|
reloadTime = 0.070;
|
|
recoil = "recoil_single_primary_3outof10";
|
|
recoilProne = "recoil_single_primary_prone_3outof10";
|
|
dispersion = 0.0002;
|
|
minRange = 2;
|
|
minRangeProbab = 0.3;
|
|
midRange = 350;
|
|
midRangeProbab = 0.7;
|
|
maxRange = 500;
|
|
maxRangeProbab = 0.05;
|
|
};
|
|
class FullAuto : Mode_FullAuto
|
|
{
|
|
sounds[] = {"StandardSound", "SilencedSound"};
|
|
class BaseSoundModeType;
|
|
class StandardSound : BaseSoundModeType
|
|
{
|
|
soundSetShot[] = {"SPAR01_Shot_SoundSet", "SPAR01_Tail_SoundSet", "SPAR01_InteriorTail_SoundSet"};
|
|
};
|
|
class SilencedSound : BaseSoundModeType
|
|
{
|
|
SoundSetShot[] = {"SPAR01_silencerShot_SoundSet", "SPAR01_silencerTail_SoundSet", "SPAR01_silencerInteriorTail_SoundSet"};
|
|
};
|
|
reloadTime = 0.070;
|
|
recoil = "recoil_auto_primary_3outof10";
|
|
recoilProne = "recoil_auto_primary_prone_3outof10";
|
|
dispersion = 0.0002;
|
|
minRange = 0;
|
|
minRangeProbab = 0.9;
|
|
midRange = 15;
|
|
midRangeProbab = 0.7;
|
|
maxRange = 30;
|
|
maxRangeProbab = 0.05;
|
|
aiRateOfFire = 1e-006;
|
|
};
|
|
aiDispersionCoefY = 6.0; /// AI should have some degree of greater dispersion for initial shoots
|
|
aiDispersionCoefX = 4.0; /// AI should have some degree of greater dispersion for initial shoots
|
|
};
|
|
|
|
|
|
class braf_HK416_long : braf_HK416_long_base {
|
|
scope = 2; /// should be visible and useable in game
|
|
author = "ARNIE & AMF TEAM";
|
|
displayName = "HK 416 D16.5"; /// some name
|
|
model = "\braf\braf_weapons_assault_rifles\556mm_HK416\amf_416_long.p3d"; /// path to model
|
|
picture = "\braf\braf_weapons_assault_rifles\556mm_HK416\Data\UI\gear_amf_614_long_01_x_ca.paa"; /// different accessories have M, S, T instead of X
|
|
UiPicture = "\braf\braf_weapons_assault_rifles\556mm_HK416\Data\UI\gear_amf_614_long_01_x_ca.paa"; /// weapon should be marked such way
|
|
handAnim[] = {"OFP2_ManSkeleton", "\braf\braf_weapons_anim\animations\556mm_HK416\amf_hand_nogrip.rtm"};
|
|
weaponInfoType = "RscWeaponZeroing"; /// display with zeroing is good for iron sights
|
|
rhs_grip2_change = "amf_614_gripv_01_f";
|
|
rhs_grip3_change = "amf_614_gript_01_f";
|
|
class WeaponSlotsInfo : WeaponSlotsInfo
|
|
{
|
|
mass = 92;
|
|
allowedSlots[] = {901};
|
|
class MuzzleSlot : MuzzleSlot
|
|
{
|
|
};
|
|
class CowsSlot : asdg_OpticRail1913 /// default accessories for this slot
|
|
{
|
|
};
|
|
class PointerSlot : asdg_FrontSideRail /// default accessories for this slot
|
|
{
|
|
};
|
|
};
|
|
};
|
|
|
|
|
|
class braf_HK416_short : braf_HK416_short_base {
|
|
scope = 2;
|
|
author = "ARNIE & AMF TEAM";
|
|
displayName = "HK 416 D10";
|
|
dexterity = 3.1;
|
|
model = "\braf\braf_weapons_assault_rifles\556mm_HK416\AMF_416_short.p3d";
|
|
picture = "\braf\braf_weapons_assault_rifles\556mm_HK416\Data\UI\gear_AMF_614_short_X_CA.paa";
|
|
UiPicture = "\A3\Weapons_F\Data\UI\icon_gl_CA.paa";
|
|
handAnim[] = {"OFP2_ManSkeleton", "\a3\weapons_f_exp\rifles\spar_01\data\anim\spar_01.rtm"};
|
|
weaponInfoType = "RscWeaponZeroing";
|
|
rhs_grip2_change = "amf_614s_gripv_01_f";
|
|
rhs_grip3_change = "amf_614s_gript_01_f";
|
|
class WeaponSlotsInfo : WeaponSlotsInfo
|
|
{
|
|
mass = 92;
|
|
allowedSlots[] = {901};
|
|
class MuzzleSlot : MuzzleSlot
|
|
{
|
|
};
|
|
class CowsSlot : asdg_OpticRail1913
|
|
{
|
|
};
|
|
class PointerSlot : asdg_FrontSideRail
|
|
{
|
|
};
|
|
};
|
|
}; |