Jump to content
Ex3B

Finding the base class, and other config modding questions

Recommended Posts

I am trying to modify some vanilla assets, I figured I'd start with something simple, like making magazines using the 127x99_SLAP rounds, and then allowing an HMG to use the magazines.

I looked at this:

https://community.bistudio.com/wiki/Arma_3_Characters_And_Gear_Encoding_Guide#Config.cpp_structure

and it seems I need to know an object's base class to modify it:

Quote

class Existing_Base_Class; // If an existing class is to be adjusted, it has to be declared using the class it inherits from originally [....]

class Existing_Class: Existing_Base_Class

 

Without knowing the base classes,

I started by duplicating/cloning the HMG, and this works:

 

Spoiler

//HMG_SLAP
#define true 1
#define false 0
class CfgPatches
{
    class HMG_SLAP
    {
        units[] = {};
        weapons[] = {"HMG_127_SLAP","500Rnd_127x99_SLAP_mag","200Rnd_127x99_SLAP_mag"};
        requiredVersion = 0.10;
        requiredAddons[] = {};
    };
};

class CfgWeapons
{
    class HMG_127;
    class HMG_127_SLAP: HMG_127
    {
        displayName = "HMG_SLAP";
        magazines[] = {"500Rnd_127x99_SLAP_mag","200Rnd_127x99_SLAP_mag";};
    };
};
class CfgMagazines
{
    class 200Rnd_127x99_mag;
    class 200Rnd_127x99_SLAP_mag: 200Rnd_127x99_mag
        {
            ammo = "B_127x99_SLAP";
            initSpeed = 1255;
        };
    class 500Rnd_127x99_mag;
    class 500Rnd_127x99_SLAP_mag: 500Rnd_127x99_mag
    {
        ammo = "B_127x99_SLAP";
        initSpeed = 1255;
    };
};

But I can't figure out how to change the base HMG, or any other weapon for that matter. All the configs I'm doing are duplicating weapons instead of modifying them..

such as this config for a scalpel launcher based on the SDB rack:

Spoiler

//Scalpel_INTx4
#define true 1
#define false 0
class CfgPatches
{
    class Scalpel_INTx4
    {
        units[] = {};
        weapons[] = {"missiles_SCALPEL_Clone","PylonRack_Bomb_Scalpel_Clone_x4"};
        requiredVersion = 0.10;
        requiredAddons[] = {};
    };
};

class CfgWeapons
{
    class missiles_SCALPEL;
    class missiles_SCALPEL_Clone: missiles_SCALPEL
    {
    magazines[] = 
        {
        "PylonRack_Bomb_Scalpel_Clone_x4"
        };
    };
};

class CfgMagazines
{
    class PylonRack_Bomb_SDB_x4;
    class PylonRack_Bomb_Scalpel_Clone_x4: PylonRack_Bomb_SDB_x4
    {
        ammo = "M_Scalpel_AT";
        displayName = "Scalpel x4";
        displayNameShort = "Scalpel";
        pylonWeapon = "missiles_SCALPEL_Clone";
    };
};

How can I do these things without cloning the weapons?

 

On top of that, I can't seem to clone the Xian... I wanted to make a version of it with a better radar... but I can't even seem to make a duplicated version...

This is what I'm using right now, which doesn't work (even if I get rid of all the sensor stuff):

Spoiler

//XIANADV
#define true 1
#define false 0
class CfgPatches
{
    class Xian_ADV
    {
        units[] = {"O_T_VTOL_02_ADV_grey_F"};
        weapons[] = {};
        requiredVersion = 0.10;
        requiredAddons[] = {};
    };
};

class CfgVehicle
{
    class Air;
    class Plane;
    class O_T_VTOL_02_vehicle_dynamicLoadout_F;
    class O_T_VTOL_02_ADV_grey_F: O_T_VTOL_02_vehicle_dynamicLoadout_F
    {
        displayName = "Xian (Air Defense)";
               class Components                 
              {
                    class SensorsManagerComponent
                    {
                class Components
                {
                class ActiveRadarSensorComponent
                    {
                        componentType = "ActiveRadarSensorComponent"; 
                        class AirTarget
                        {
                            minRange = 500;
                            maxRange = 16000; 
                            objectDistanceLimitCoef = -1;
                            viewDistanceLimitCoef = -1; 
                            
                        };
                        class GroundTarget : AirTarget
                        {
                            maxRange = 4500; 
                        };
                        angleRangeHorizontal = 120;         
                        angleRangeVertical = 120;           
                        groundNoiseDistanceCoef = 0.1;  
                        maxGroundNoiseDistance = 100;   
                        minSpeedThreshold = 100;        
                        maxSpeedThreshold = 1200;       
                        minTrackableSpeed = 10;  
                        maxTrackableSpeed = 1200;          
                        minTrackableATL = -1e10;           
                        maxTrackableATL = 1e10;        
                        typeRecognitionDistance = 8000; 
                        animDirection = "";          
                        aimDown = 0;
                    };
                };
                    };                                                                                            
              };

    };
};
 

 

DA0D38D2CCF137E36615E3DFDE659FE8A0A8B7F2

8721BFC85E66D079DC14DF7B403803B21A7B942B

 

 

 

 

Share this post


Link to post
Share on other sites

Finding the base class -> Look into ingame config viewers, it tells you the inheritance path at the bottom when you select a class.

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

×