Jump to content
Robalo

ASDG Joint Rails

Recommended Posts

I'm running into an error right now with our mod where if you have ASDG Rails activated and try to select one of our weapons, the game completely crashes.

Is this a normal thing for weapons that are NOT ASDG compatible (ours will be soon)?

Share this post


Link to post
Share on other sites
I'm running into an error right now with our mod where if you have ASDG Rails activated and try to select one of our weapons, the game completely crashes.

Is this a normal thing for weapons that are NOT ASDG compatible (ours will be soon)?

No, you probably have something in your config that the game does not like. Post your config. Make sure you don't end up with 2 muzzle slots.

Share this post


Link to post
Share on other sites
No, you probably have something in your config that the game does not like. Post your config. Make sure you don't end up with 2 muzzle slots.

I notice it happens with only these two:



   class Mode_SemiAuto;    // External class reference
   class Mode_Burst;       // External class reference
   class Mode_FullAuto;    // External class reference
   class asdg_FrontSideRail;
   class asdg_OpticRail1913;

   class CfgWeapons
   {
           class WeaponSlotsInfo;
           class SlotInfo;
           class ItemCore;
           class InventoryOpticsItem_Base_F;
           class GunParticles;

           //ATTACHMENTS

           class TEI_MA5B_AmmoCounter: ItemCore
           {
                   scope                                                                           = 2;
                   displayName                                                             = "MA5B Ammo Counter";
                   picture                                                                 = "\A3\weapons_F\Data\UI\gear_acco_Sniper_CA.paa";
                   model                                                                   = "\TEI_Weapons\AR\AR_AmmoCount.p3d";
                   descriptionShort                                                        = "MA5B Ammunition Counter and Direction Finder";
                   weaponInfoType                                                          = "RscWeaponZeroing";
                   class ItemInfo: InventoryOpticsItem_Base_F
                   {
                           mass                                                            = 10;
                           opticType                                                       = 1;
                           optics                                                          = 1;
                           modelOptics                                                     = "\TEI_Weapons\AR\AR_AmmoCount.p3d";
                           class OpticsModes
                           {
                                   class MA5B_BUIS
                                   {
                                           opticsID                                                = 1;
                                           useModelOptics                                  = 0;
                                           opticsPPEffects[]                               = {""};
                                           opticsFlare                                     = 0;
                                           opticsDisablePeripherialVision  = 0;
                                           opticsZoomMin                                   = 0.375;
                                           opticsZoomMax                                   = 1.1;
                                           opticsZoomInit                                  = 0.75;
                                           memoryPointCamera                               = "opticView";
                                           visionMode[]                                    = {"Normal"};
                                           distanceZoomMin                                 = 300;
                                           distanceZoomMax                                 = 300;
                                           cameraDir                                       = "";
                                   };
                                   class MA5B_AC_IS_Scope: MA5B_BUIS
                                   {
                                           opticsID                                                = 2;
                                           useModelOptics                                  = 1;
                                           opticsZoomMin                                   = 0.075;
                                           opticsZoomMax                                   = 0.75;
                                           opticsZoomInit                                  = 0.75;
                                           memoryPointCamera                               = "opticView2";
                                           modelOptics[]                                   = {"\A3\Weapons_F\acc\reticle_arco_F"/*,"\A3\Weapons_F\acc\reticle_sniper_z_F"*/};
                                           visionMode[]                                    = {"Normal"};
                                   };
                           };
                   };
                   inertia                                                                 = 0.1;
           };

           //WEAPONS

           class Rifle_Long_Base_F;
           class EBR_Base_F: Rifle_Long_Base_F
           {
                   class WeaponSlotsInfo
                   {
                           class SlotInfo;
                   };
                   class GunParticles;
           };
           class  UGL_F;
           class TEI_MA5B: EBR_Base_F
           {
                   scope                                                                   = 2;
                   handAnim[]                                                              = {"OFP2_ManSkeleton", "\TEI_Weapons\AR\data\anim\hand_anim_ma5c.rtm"};
                   model                                                                   = "\TEI_Weapons\AR\AR.p3d";
                   displayName                                                             = "MA5B ICWS Assault Rifle";
                   descriptionShort                                                        = "UNSC Assault Rifle";
                   picture                                                                 = "";
                   magazines[]                                                             = {"TEI_60Rnd_762x51_Mag","TEI_60Rnd_762x51_Mag_Tracer","TEI_32Rnd_762x51_Mag","TEI_32Rnd_762x51_Mag_Tracer"};
                   modelOptics                                                             = "-";
                   dexterity                                                               = 3.25;
                   muzzlePos                                                               = "usti hlavne";
                   muzzleEnd                                                               = "konec hlavne";
                   reloadAction                                                            = "GestureReloadKatiba";
                   inertia                                                                 = 0.6;
                   class GunParticles: GunParticles
                   {
                      class SecondEffect
                      {
                           positionName                                                    = "Nabojnicestart";
                           directionName                                                   = "Nabojniceend";
                           effectName                                                      = "CaselessAmmoCloud";
                      };
                   };
                   modes[] = {"Single","FullAuto"};
                   class Single: Mode_SemiAuto
                   {
                           sounds[] = {"StandardSound","SilencedSound"};
                           class BaseSoundModeType
                           {
                                   weaponSoundEffect = "DefaultRifle";
                                   closure1[] = {};
                                   closure2[] = {};
                                   soundClosure[] = {"closure1",0.5,"closure2",0.5};
                           };
                           class StandardSound: BaseSoundModeType
                           {
                                   /*begin1[] = {"A3\sounds_f\weapons\EBR\EBR_st_4",1.0,1,2000};
                                   begin2[] = {"A3\sounds_f\weapons\EBR\EBR_st_5",1.0,1,2000};
                                   begin3[] = {"A3\sounds_f\weapons\EBR\EBR_st_6",1.0,1,2000};*/

                                   begin1[] = {"\TEI_Weapons\AR\Data\sounds\AssaultRifle_1.wss",1.0,1,2000};
                                   begin2[] = {"\TEI_Weapons\AR\Data\sounds\AssaultRifle_2.wss",1.0,1,2000}; 
                                   soundBegin[] = {"begin1",0.34,"begin2",0.33};
                           };
                           class SilencedSound: BaseSoundModeType
                           {
                                   begin1[] = {"A3\sounds_f\weapons\silenced\silent-23",1.0,1,600};
                                   begin2[] = {"A3\sounds_f\weapons\silenced\silent-24",1.0,1,600};
                                   soundBegin[] = {"begin1",0.5,"begin2",0.5};
                           };
                           reloadTime = 0.092; 			//was 0.065
                           dispersion = 0.00075;
                           recoil = "recoil_single_ebr";
                           recoilProne = "recoil_single_prone_ebr";
                           minRange = 2;
                           minRangeProbab = 0.3;
                           midRange = 300;
                           midRangeProbab = 0.7;
                           maxRange = 600;
                           maxRangeProbab = 0.05;
                   };
                   class FullAuto: Mode_FullAuto
                   {
                           sounds[] = {"StandardSound","SilencedSound"};
                           class BaseSoundModeType
                           {
                                   weaponSoundEffect = "DefaultRifle";
                                   closure1[] = {};
                                   closure2[] = {};
                                   soundClosure[] = {"closure1",0.5,"closure2",0.5};
                           };
                           class StandardSound: BaseSoundModeType
                           {
                                   begin1[] = {"\TEI_Weapons\AR\Data\sounds\AssaultRifle_1.wss",1.0,1,2000};
                                   begin2[] = {"\TEI_Weapons\AR\Data\sounds\AssaultRifle_2.wss",1.0,1,2000};
                                   soundBegin[] = {"begin1",0.34,"begin2",0.33};
                           };
                           class SilencedSound: BaseSoundModeType
                           {
                                   begin1[] = {"A3\sounds_f\weapons\silenced\silent-23",1.0,1,600};
                                   begin2[] = {"A3\sounds_f\weapons\silenced\silent-24",1.0,1,600};
                                   soundBegin[] = {"begin1",0.5,"begin2",0.5};
                           };
                           reloadTime = 0.092; 			//was 0.065
                           dispersion = 0.00085;
                           recoil = "recoil_single_ebr";
                           recoilProne = "recoil_single_prone_ebr";
                           minRange = 2;
                           minRangeProbab = 0.3;
                           midRange = 300;
                           midRangeProbab = 0.7;
                           maxRange = 600;
                           maxRangeProbab = 0.05;
                           soundBurst = 0;
                           burst = 1;
                   };
                   class WeaponSlotsInfo : WeaponSlotsInfo //Defines attachment slots
                   {
                           class MuzzleSlot: SlotInfo
                           {
                                   access                                                  = 1;
                                   compatibleitems[]                                       = {"muzzle_snds_B"};
                                   displayname                                             = "Muzzle Slot";
                                   linkproxy                                               = "\A3\data_f\proxies\weapon_slots\MUZZLE";
                                   scope                                                   = 2;
                           };
                           class CowsSlot: SlotInfo
                           {
                                   access                                                  = 1;
                                   compatibleitems[]                                       = {"TEI_MA5B_AmmoCounter", "optic_Holosight", "optic_Hamr", "optic_Aco", "optic_Aco_grn", "optic_Arco", "optic_mrco", "optic_nightstalker", "optic_tws", "optic_mrd"};
                                   displayname                                             = "Optics Slot";
                                   linkproxy                                               = "\A3\data_f\proxies\weapon_slots\TOP";
                                   scope                                                   = 2;
                           };
                           class PointerSlot: SlotInfo
                           {
                                   access                                                  = 1;
                                   compatibleitems[]                                       = {"acc_pointer_IR", "acc_flashlight"};
                                   displayname                                             = "Pointer Slot";
                                   linkproxy                                               = "\A3\data_f\proxies\weapon_slots\SIDE";
                                   scope                                                   = 2;
                           };
                   };
           };
           class TEI_MA5BGL: TEI_MA5B
           {
                   scope                                                                   = 2;
                   handAnim[]                                                              = {"OFP2_ManSkeleton", "\TEI_Weapons\AR\data\anim\hand_anim_ma5c.rtm"};
                   model                                                                   = "\TEI_Weapons\AR\ARGL.p3d";
                   displayName                                                             = "MA5B + M309 Assault Rifle";
                   descriptionShort                                                        = "UNSC Assault Rifle + GL";
                   picture                                                                 = "";
                   magazines[]                                                             = {"TEI_60Rnd_762x51_Mag","TEI_60Rnd_762x51_Mag_Tracer","TEI_32Rnd_762x51_Mag","TEI_32Rnd_762x51_Mag_Tracer"};
                   modelOptics                                                             = "-";
                   dexterity                                                               = 3.25;
                   muzzlePos                                                               = "usti hlavne";
                   muzzleEnd                                                               = "konec hlavne";
                   reloadAction                                                            = "GestureReloadKatiba";
                   muzzles[]                                                           = {"this", "M309GL"}; // this was the missing
                   inertia                                                                 = 0.6;
                   class GunParticles: GunParticles
                   {
                      class SecondEffect
                      {
                           positionName                                                    = "Nabojnicestart";
                           directionName                                                   = "Nabojniceend";
                           effectName                                                      = "CaselessAmmoCloud";
                      };
                   };
                   modes[] = {"Single","FullAuto"};
                   class Single: Mode_SemiAuto
                   {
                           sounds[] = {"StandardSound","SilencedSound"};
                           class BaseSoundModeType
                           {
                                   weaponSoundEffect = "DefaultRifle";
                                   closure1[] = {};
                                   closure2[] = {};
                                   soundClosure[] = {"closure1",0.5,"closure2",0.5};
                           };
                           class StandardSound: BaseSoundModeType
                           {
                                   begin1[] = {"A3\sounds_f\weapons\EBR\EBR_st_4",1.0,1,2000};
                                   begin2[] = {"A3\sounds_f\weapons\EBR\EBR_st_5",1.0,1,2000};
                                   begin3[] = {"A3\sounds_f\weapons\EBR\EBR_st_6",1.0,1,2000};
                                   soundBegin[] = {"begin1",0.34,"begin2",0.33,"begin3",0.33};
                           };
                           class SilencedSound: BaseSoundModeType
                           {
                                   begin1[] = {"A3\sounds_f\weapons\silenced\silent-23",1.0,1,600};
                                   begin2[] = {"A3\sounds_f\weapons\silenced\silent-24",1.0,1,600};
                                   soundBegin[] = {"begin1",0.5,"begin2",0.5};
                           };
                           reloadTime = 0.065;
                           dispersion = 0.00075;
                           recoil = "recoil_single_ebr";
                           recoilProne = "recoil_single_prone_ebr";
                           minRange = 2;
                           minRangeProbab = 0.3;
                           midRange = 300;
                           midRangeProbab = 0.7;
                           maxRange = 600;
                           maxRangeProbab = 0.05;
                   };
                   class FullAuto: Mode_FullAuto
                   {
                           sounds[] = {"StandardSound","SilencedSound"};
                           class BaseSoundModeType
                           {
                                   weaponSoundEffect = "DefaultRifle";
                                   closure1[] = {};
                                   closure2[] = {};
                                   soundClosure[] = {"closure1",0.5,"closure2",0.5};
                           };
                           class StandardSound: BaseSoundModeType
                           {
                                   begin1[] = {"A3\sounds_f\weapons\EBR\EBR_st_4",1.0,1,2000};
                                   begin2[] = {"A3\sounds_f\weapons\EBR\EBR_st_5",1.0,1,2000};
                                   begin3[] = {"A3\sounds_f\weapons\EBR\EBR_st_6",1.0,1,2000};
                                   soundBegin[] = {"begin1",0.34,"begin2",0.33,"begin3",0.33};
                           };
                           class SilencedSound: BaseSoundModeType
                           {
                                   begin1[] = {"A3\sounds_f\weapons\silenced\silent-23",1.0,1,600};
                                   begin2[] = {"A3\sounds_f\weapons\silenced\silent-24",1.0,1,600};
                                   soundBegin[] = {"begin1",0.5,"begin2",0.5};
                           };
                           reloadTime = 0.065;
                           dispersion = 0.00085;
                           recoil = "recoil_single_ebr";
                           recoilProne = "recoil_single_prone_ebr";
                           minRange = 2;
                           minRangeProbab = 0.3;
                           midRange = 300;
                           midRangeProbab = 0.7;
                           maxRange = 600;
                           maxRangeProbab = 0.05;
                           soundBurst = 0;
                           burst = 1;
                   };
                   class M309GL: UGL_F /// Some grenade launcher to have some more fun
                   {
                           displayName = "M309 Grenade Launcher";
                           descriptionShort = "M309 GL";
                           useModelOptics = false;
                           useExternalOptic = false; /// Doesn't use optics from the attachment, has it's own
                           magazines[] = {"1Rnd_HE_Grenade_shell", "UGL_FlareWhite_F", "UGL_FlareGreen_F", "UGL_FlareRed_F", "UGL_FlareYellow_F", "UGL_FlareCIR_F", "1Rnd_Smoke_Grenade_shell", "1Rnd_SmokeRed_Grenade_shell", "1Rnd_SmokeGreen_Grenade_shell", "1Rnd_SmokeYellow_Grenade_shell", "1Rnd_SmokePurple_Grenade_shell", "1Rnd_SmokeBlue_Grenade_shell", "1Rnd_SmokeOrange_Grenade_shell"};
                           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
                   };
                   class TEI_WeaponSlotsInfo : WeaponSlotsInfo //Defines attachment slots
                   {
                           class MuzzleSlot: SlotInfo
                           {
                                   access                                                  = 1;
                                   compatibleitems[]                                       = {"muzzle_snds_B"};
                                   displayname                                             = "Muzzle Slot";
                                   linkproxy                                               = "\A3\data_f\proxies\weapon_slots\MUZZLE";
                                   scope                                                   = 2;
                           };
                           class CowsSlot: SlotInfo
                           {
                                   access                                                  = 1;
                                   compatibleitems[]                                       = {"TEI_MA5B_AmmoCounter", "optic_Holosight", "optic_Hamr", "optic_Aco", "optic_Aco_grn", "optic_Arco", "optic_mrco", "optic_nightstalker", "optic_tws", "optic_mrd"};
                                   displayname                                             = "Optics Slot";
                                   linkproxy                                               = "\A3\data_f\proxies\weapon_slots\TOP";
                                   scope                                                   = 2;
                           };
                           class PointerSlot: SlotInfo
                           {
                                   access                                                  = 1;
                                   compatibleitems[]                                       = {"acc_pointer_IR", "acc_flashlight"};
                                   displayname                                             = "Pointer Slot";
                                   linkproxy                                               = "\A3\data_f\proxies\weapon_slots\SIDE";
                                   scope                                                   = 2;
                           };
                   };
           };
};

class Mode_SemiAuto;	// External class reference
class Mode_Burst;	// External class reference
class Mode_FullAuto;	// External class reference
class asdg_FrontSideRail;
class asdg_OpticRail1913;

class CfgWeapons
{
class WeaponSlotsInfo;
class SlotInfo;
class ItemCore;
class InventoryOpticsItem_Base_F;
class GunParticles;

//ATTACHMENTS

class TEI_BR55HB_Scope: ItemCore
{
	scope 										= 2;
	displayName 								= "BR55 A2 Scope";
	picture 									= "\A3\weapons_F\Data\UI\gear_acco_Sniper_CA.paa";
	model 										= "\TEI_Weapons\BR\BR_Scope.p3d";
	descriptionShort 							= "2-4x Scope for BR55HB Service Rifle";
	weaponInfoType 								= "RscWeaponZeroing";
	class ItemInfo: InventoryOpticsItem_Base_F
	{
		mass 									= 6;
		opticType		 						= 1;
		optics 									= 1;
		modelOptics 							= "\TEI_Weapons\BR\BR_Scope.p3d";
		class OpticsModes
		{
			class BR55HB_BUIS
			{
				opticsID  						= 1;
				useModelOptics  				= 0;
				opticsPPEffects[]  				= {""};
				opticsFlare  					= 0;
				opticsDisablePeripherialVision 	= 0;
				opticsZoomMin  					= 0.375;
				opticsZoomMax  					= 0.375;
				opticsZoomInit  				= 0.375;
				memoryPointCamera  				= "opticView2";
				visionMode[]  					= {};
				distanceZoomMin  				= 300;
				distanceZoomMax 				= 300;
				cameraDir  						= "";
			};
			class BR55HB_Scope: BR55HB_BUIS
			{
				opticsID  						= 2;
				useModelOptics  				= 1;
				opticsZoomMin  					= 0.0623;
				opticsZoomMax 					= 0.0623;
				opticsZoomInit 					= 0.0623;
				memoryPointCamera 				= "opticView";
				modelOptics[] 					= {"\A3\Weapons_F\acc\reticle_HAMR"};
				visionMode[] 					= {"Normal"};
			};
		};
	};
	inertia 									= 0.1;
};

//WEAPONS

class Rifle_Long_Base_F;
class EBR_Base_F: Rifle_Long_Base_F
{
	class WeaponSlotsInfo
	{
		class SlotInfo;
	};
	class GunParticles;
};
class TEI_BR55HB: EBR_Base_F
{
	scope 										= 2;
	handAnim[] 									= {"OFP2_ManSkeleton", "\TEI_Weapons\BR\data\anim\BR.rtm"};
	model										= "\TEI_Weapons\BR\BR.p3d";
	displayName 								= "BR55HB Battle Rifle";
	descriptionShort 							= "UNSC Battle Rifle";
	picture 									= "\TEI_Weapons\BR\data\BRIFLE.paa";
	magazines[] 								= {"TEI_36Rnd_95x40_Mag","TEI_36Rnd_95x40_Mag_Tracer"};
	modelOptics 								= "-";
	dexterity 									= 3.25;
	muzzlePos									= "usti hlavne";
      	muzzleEnd									= "konec hlavne";
	reloadAction 								= "GestureReloadKatiba";
	inertia										= 0.6;
	class GunParticles: GunParticles
	{
	   class SecondEffect
	   {
		positionName 							= "Nabojnicestart";
		directionName 							= "Nabojniceend";
		effectName 								= "CaselessAmmoCloud";
	   };
	};
	modes[] = {"Single","Burst"};
	class Single: Mode_SemiAuto
	{
		sounds[] = {"StandardSound","SilencedSound"};
		class BaseSoundModeType
		{
			weaponSoundEffect = "DefaultRifle";
			closure1[] = {};
			closure2[] = {};
			soundClosure[] = {"closure1",0.5,"closure2",0.5};
		};
		class StandardSound: BaseSoundModeType
		{
			begin1[] = {"\TEI_Weapons\BR\Data\sounds\BattleRifle_1.wss",1.0,1,2000};
               begin2[] = {"\TEI_Weapons\BR\Data\sounds\BattleRifle_2.wss",1.0,1,2000};
			soundBegin[] = {"begin1",0.34,"begin2",0.33};
		};
		class SilencedSound: BaseSoundModeType
		{
			begin1[] = {"A3\sounds_f\weapons\silenced\silent-23",1.0,1,600};
			begin2[] = {"A3\sounds_f\weapons\silenced\silent-24",1.0,1,600};
			soundBegin[] = {"begin1",0.5,"begin2",0.5};
		};
		reloadTime = 0.066;
		dispersion = 0.00075;
		recoil = "recoil_single_ebr";
		recoilProne = "recoil_single_prone_ebr";
		minRange = 2;
		minRangeProbab = 0.3;
		midRange = 300;
		midRangeProbab = 0.7;
		maxRange = 600;
		maxRangeProbab = 0.05;
	};
	class Burst: Mode_Burst
	{
		sounds[] = {"StandardSound","SilencedSound"};
		class BaseSoundModeType
		{
			weaponSoundEffect = "DefaultRifle";
			closure1[] = {};
			closure2[] = {};
			soundClosure[] = {"closure1",0.5,"closure2",0.5};
		};
		class StandardSound: BaseSoundModeType
		{
			begin1[] = {"\TEI_Weapons\BR\Data\sounds\BattleRifle_1.wss",1.0,1,2000};
               begin2[] = {"\TEI_Weapons\BR\Data\sounds\BattleRifle_2.wss",1.0,1,2000};
			soundBegin[] = {"begin1",0.34,"begin2",0.33};
		};
		class SilencedSound: BaseSoundModeType
		{
			begin1[] = {"A3\sounds_f\weapons\silenced\silent-23",1.0,1,600};
			begin2[] = {"A3\sounds_f\weapons\silenced\silent-24",1.0,1,600};
			soundBegin[] = {"begin1",0.5,"begin2",0.5};
		};
		reloadTime = 0.06;
		dispersion = 0.00085;
		recoil = "recoil_single_ebr";
		recoilProne = "recoil_single_prone_ebr";
		minRange = 2;
		minRangeProbab = 0.3;
		midRange = 300;
		midRangeProbab = 0.7;
		maxRange = 600;
		maxRangeProbab = 0.05;
		soundBurst = 0;
		burst = 3;
	};
	class WeaponSlotsInfo : WeaponSlotsInfo //Defines attachment slots
		{
			class MuzzleSlot: SlotInfo
		{
			access 								= 1;
			compatibleitems[] 					= {"muzzle_snds_B"};
			displayname 						= "Muzzle Slot";
			linkproxy 							= "\A3\data_f\proxies\weapon_slots\MUZZLE";
			scope 								= 2;
		};
		class CowsSlot: SlotInfo
		{
			access 								= 1;
			compatibleitems[] 					= {"TEI_BR55HB_Scope", "optic_Holosight", "optic_Hamr", "optic_Aco", "optic_Aco_grn", "optic_Arco", "optic_mrco", "optic_nightstalker", "optic_tws", "optic_mrd"};
			displayname 						= "Optics Slot";
			linkproxy 							= "\A3\data_f\proxies\weapon_slots\TOP";
			scope 								= 2;
		};
		class PointerSlot: SlotInfo
		{
			access 								= 1;
			compatibleitems[] 					= {"acc_pointer_IR", "acc_flashlight"};
			displayname 						= "Pointer Slot";
			linkproxy 							= "\A3\data_f\proxies\weapon_slots\SIDE";
			scope 								= 2;
		};
		};
};
};

Share this post


Link to post
Share on other sites

Here are some example configs for how I see one should properly provide both non-JR and optional JR configs.

The goal is to keep the classes less cluttered and avoid having same attachment proxies used more than once (possibly what's leading to game crashes).

VANILLA CONFIG

class CfgPatches {
class MY_WEAPON {
	requiredaddons[] = {"A3_Weapons_F"};
};
};

class CfgWeapons {
class Rifle_Base_F;

class Rifle_Long_Base_F : Rifle_Base_F {
	class WeaponSlotsInfo;
};

class EBR_base_F : Rifle_Long_Base_F {
	class WeaponSlotsInfo : WeaponSlotsInfo {
		class MuzzleSlot;
		class CowsSlot;
		class PointerSlot;
	};
};

// non-JR base class
class MY_WEAPON_BASE : EBR_base_F {
	class WeaponSlotsInfo : WeaponSlotsInfo {
		class MuzzleSlot : MuzzleSlot {
			compatibleItems[] += {"MY_MUZZLE"};
		};
		class CowsSlot : CowsSlot {
			compatibleItems[] += {"MY_SIGHT"};
		};
		class PointerSlot : PointerSlot {
			compatibleItems[] += {"MY_FLASHLIGHT"};
		};
	};
};

// reserved base class for alternative optional slot configs
class MY_WEAPON_BASE_2 : MY_WEAPON_BASE {
	class WeaponSlotsInfo : WeaponSlotsInfo {};
};

// this is my cool new weapon
class MY_WEAPON : MY_WEAPON_BASE_2 {
	scope = 2;
};
};

OPTIONAL JR CONFIG

class CfgPatches {
class MY_WEAPON_JR {
	requiredaddons[] = {"A3_Weapons_F", "MY_WEAPON", "asdg_jointrails"};
};
};

class asdg_SlotInfo;

class asdg_FrontSideRail : asdg_SlotInfo {
class compatibleItems {
	MY_FLASHLIGHT = 1;
};
};

class asdg_OpticRail;

class asdg_OpticRail1913: asdg_OpticRail {
class compatibleItems {
	MY_SIGHT = 1;
};
};

class CfgWeapons {
class MY_WEAPON_BASE : EBR_base_F {
	class WeaponSlotsInfo;
};

// add JR support here
class MY_WEAPON_BASE_2 : MY_WEAPON_BASE {
	class WeaponSlotsInfo : WeaponSlotsInfo {
		class CowsSlot : asdg_OpticRail1913 {};
		class PointerSlot : asdg_FrontSideRail {};
	};
};
};

And following that model, this is how I should have implemented the EBR JR slots:

	class EBR_base_F: Rifle_Long_Base_F {
	class WeaponSlotsInfo;
};
class srifle_EBR_F : EBR_base_F {
	class WeaponSlotsInfo: WeaponSlotsInfo {
		class PointerSlot: asdg_FrontSideRail {};
		class CowsSlot: asdg_OpticRail1913 {};
	};
};

Will do it in a future update. The reason I didn't so far was to account to not so well scripted gear scripts that considered those default slot class names use compatibleItems[] arrays and not checking if maybe they use a compatibleItems{} class instead.

Edited by Robalo

Share this post


Link to post
Share on other sites

Hello, I ve noticed weird thing, since update to 1.40 @ASDG_JR is causing bug in virtual arsenal. In virtual arsenal when JR enabled it causes practice vr NPCs bots to dissapear. I ve checked all my add ons and it s definitely asdg joint rails.

Regards.

Share this post


Link to post
Share on other sites

Updated JR to 0.13

Changes:

- Added icon info to all slots for the new icon rendering features from 1.40

- Weapons use standard slot names where possible

- Added common muzzle slots (integrated JointMuzzles)

- .45 ACP suppressor uses BIS Osprey model

- asdg_jointrails_fnc_getCompatibleAttachments function no longer filters by class scope

- Updated arsenal function to include patch 1.40 changes

Updated RHS JR config for 0.3.6 - note that it's entirely optional to use it since RHS now already includes JR support.

Features for my alternate config:

- NPZ Picatinny is a short rail

- M14 EBR-RI has a short rail but can mount Leupold 10x and LRPS

- M14 EBR-RI can equip 7.62 suppressor

- Top laser works only on some weapons

- M4 gets a medium rail

- M4 block II and M16 get long rails

- Rotex model used for vanilla 5.56mm suppressor

- Common muzzle slots assigned to most weapons

- SVD gets the standard AK sidemount so it can use 1P29 etc.

- MRT support for Kobra sight and Surefire/IR combo

Share this post


Link to post
Share on other sites
Guest

New version frontpaged on the Armaholic homepage.

================================================

We have also "connected" these pages to your account on Armaholic.

This means soon you will be able to maintain these pages yourself if you wish to do so. Once this new feature is ready we will contact you about it and explain how things work and what options you have.

When you have any questions already feel free to PM or email me!

Share this post


Link to post
Share on other sites

As usual, thank you for the update Robalo.

Share this post


Link to post
Share on other sites

Not sure if its just me, but if i select RHS AK's with NPZ mount, zero optics are available?

Share this post


Link to post
Share on other sites
Guest HellGhost

Hi,

Thanks for this idea, and I using all the ASDG mods and no way to get thie mod to work.

Even using the default command and by using personnalized configuration, the switch never work.

I used all the latest versions of ASDG.

Share this post


Link to post
Share on other sites
Not sure if its just me, but if i select RHS AK's with NPZ mount, zero optics are available?

How are you testing ? If it's only happening in Arsenal, see if you have any other mods that modify the Arsenal function. Also check for and remove any obsolete JR configs.

---------- Post added at 13:40 ---------- Previous post was at 13:38 ----------

Hi,

Thanks for this idea, and I using all the ASDG mods and no way to get thie mod to work.

Even using the default command and by using personnalized configuration, the switch never work.

I used all the latest versions of ASDG.

I don't follow, what switch ? What is the problem ? Please provide some clear info.

---------- Post added at 13:42 ---------- Previous post was at 13:40 ----------

So I don't need jointmuzzles anymore right? Just making sure.

Right. Hopefully if it's included in JR we will see more configs making use of the common muzzles.

Share this post


Link to post
Share on other sites
Right. Hopefully if it's included in JR we will see more configs making use of the common muzzles.

Was trying to add muzzles into my JR-config for Swedish Forces Pack. It works, but on one of the weapons it makes the game crash to desktop for unknown reason :/

This is the one that crashes:

class sfp_ak5dmk2 : sfp_ak5_base {
	class WeaponSlotsInfo {
		class asdg_FrontSideRail_sfp_ak5dmk2: asdg_FrontSideRail {};
		class asdg_OpticRail_sfp_ak5dmk2: asdg_OpticRail1913 {};
		class asdg_MuzzleSlot_556: asdg_MuzzleSlot {
			class compatibleItems {
				muzzle_snds_M = 1;
			};
		};
	};
};

Share this post


Link to post
Share on other sites
Was trying to add muzzles into my JR-config for Swedish Forces Pack. It works, but on one of the weapons it makes the game crash to desktop for unknown reason :/

This is the one that crashes:

class sfp_ak5dmk2 : sfp_ak5_base {
	class WeaponSlotsInfo {
		class asdg_FrontSideRail_sfp_ak5dmk2: asdg_FrontSideRail {};
		class asdg_OpticRail_sfp_ak5dmk2: asdg_OpticRail1913 {};
		class asdg_MuzzleSlot_556: asdg_MuzzleSlot {
			class compatibleItems {
				muzzle_snds_M = 1;
			};
		};
	};
};

Check in config viewer if you end up with more than one muzzle slot. That's a guaranteed CTD. Sometimes happened to me with pointer slots too.

I would rewrite your config bit above as follows:

class sfp_ak5dmk2 : sfp_ak5_base {
	class WeaponSlotsInfo : WeaponSlotsInfo {
		class PointerSlot: asdg_FrontSideRail {};
		class CowsSlot : asdg_OpticRail1913 {};
		class MuzzleSlot  : asdg_MuzzleSlot_556 {};
	};
};

But it depends on how the original config looks like. If you're rewriting a muzzle slot which already has compatibleItems[] defined/inherited, you can't use compatibleItems {} class in it. When all fails duplicate original class, put scope = 1 in original and redefine slots in duped class.

Share this post


Link to post
Share on other sites

After your last update, i cannot load my dedicated server somewhy.. can you check your mode update files if you missed something?

Share this post


Link to post
Share on other sites
After your last update, i cannot load my dedicated server somewhy.. can you check your mode update files if you missed something?

a pbo, it's bisign and the server key... check.

Must be something on your end. What's the error message ?

Share this post


Link to post
Share on other sites
a pbo, it's bisign and the server key... check.

Must be something on your end. What's the error message ?

Never mind Fixed it :)

Share this post


Link to post
Share on other sites

Might just be on my end, but with both 1.40 and the DEV version, no unit insignia is available in virtual arsenal with only the latests Joint Rails and CBA loaded...

Share this post


Link to post
Share on other sites
Im not running any other Arsenal Modifiers as far as I know.

@RHSUSF

@RHSAFRF

@ASDG_JR

@@JR config for RHS

https://www.youtube.com/watch?v=GwXlaCY1IXA&feature=youtu.be

Thanks for the effort of making a video but first you should try at least adding the accessories to the weapon using the standard gear menu to see if there's really an issue.

Looks to me that the gear script you're using does not recognize compatible attachments correctly.

I test everything using Arsenal because it's the fastest way and I know it works (JR automatically replaces original Arsenal function with a modified one that can list all compatible attachments properly).

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×