feersum.endjinn 6 Posted December 3, 2006 For a while now I've been trying to figure out how "total conversion" mods should work in ArmA and wondering is there any clean way to override configuration for existing class without ripping apart whole pbo and repacking it "hisky" style? In old OFP all it required was providing your own yourmod\bin folder contents but that obviously cannot be done in ArmA because "dta\bin.pbo" holds only most basic classes and actual weapon and vehicle configs are stored in their own pbos in addon directory. I found some success doing sound mod with just extracting config, modifying sounds and then repacking it with different prefix but with same class names and then config.cpp in mod folder managed to override weapon classes in weapons.pbo. However same thing doesn't work when trying to override configuration for Civilian class, which most likely is because Civilian class has access = ReadOnly. Now funny thing is that weapons have even stricter access as class Default in cfgWeapons has access = ReadOnlyVerified and therefore modding sounds shouldn't work at all. Only difference between those is that cfgWeapons inherits access from config in different file and I suspect there is a bug that access member isn't carried over when base class is in different config file. Also setting your prefix to for example "ca\characters" and including only config.bin doesn't work either, because then game doesn't see anything stored in real characters.pbo and apparently every pbo must have an unique prefix and if mod folder contains pbo with same prefix as in main addons directory, the original pbo gets bypassed completely. So short summary: - is there to avoid having ~1GB mod folders even for simplest stuff like modifying sounds or enabling protected classes in editor? - does access member for classes actually mean anything anymore as multiplayer cheats are checked at PBO level? - do prefixes really have to be unique for every PBO or is it just me doing something wrong? - can you override single config.bin's, sound files etc without having to include everything in original .pbo in your mod folder? Share this post Link to post Share on other sites
.kju 3245 Posted December 3, 2006 Quote[/b] ]access member for classes at least in OFP, if i remember correctly, access allows classes to be overwritten or just to inhert or none of both. the fourth option was the mp checking stuff. i think the access value has only an effect on configs outside of the main pbo. well you can still go for one big main config in dta\bin.pbo i guess. (i presume you can still load a different bin.pbo via modfolders) so far i cant understand / see a good reason to split and move all the configs into the addons anyway like BI did. i haven't done testing in ArmA yet, so this may or may not be true. Share this post Link to post Share on other sites
sickboy 13 Posted December 3, 2006 Isn't it just possible to make replacement configs in a mod folder, but name the pbo's just pboname_cfg.pbo ? As the classes in the config will overwrite the default classes, but the textures and models are still taken out the pboname.pbo ? Also done no testing yet, but might get to it sometime soon. Share this post Link to post Share on other sites
flaber 0 Posted December 4, 2006 I suspect there is a bug that access member isn't carried over when base class is in different config file. If I understand right (english is not one of my best skills), you say that you can't inherit a class that is made in another addon (config,pbo, whatever)? This is my config for my future mod, where I inherit the class SoldierGB from characters.pbo, so I can use the resistance model from ArmA. This works perfectly for me. no errors shows in game. <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> //********************************************************************** // Fuerzas Armadas Espańolas //********************************************************************** // Autor: // Flaber - Config //********************************************************************** #define true 1 #define false 0 #define VSoft 0 #define VArmor 1 #define VAir 2 #define private 0 #define protected 1 #define public 2 #define TEast 0 #define TWest 1 #define TGuerrila 2 #define TCivilian 3 #define TSideUnknown 4 #define TEnemy 5 #define TFriendly 6 #define TLogic 7 #define ReadAndWrite 0 #define ReadAndCreate 1 #define ReadOnly 2 #define ReadOnlyVerified 3 class CfgPatches { class FFAA_Bripac { units[] = {"FFAA_Bripac_Oficial","FFAA_Bripac_Medico"}; weapons[] = {}; requiredVersion = 1.000000; requiredAddons[] = {"CACharacters"}; }; }; class CfgVehicleClasses { class FFAA_Bripac_Inf { displayName = "FFAA Bripac"; }; }; class CfgVehicles { class SoldierGB; //Referencia a una clase externa - Reference to an external class. class FFAA_Bripac_Oficial: SoldierGB { vehicleClass = "FFAA_Bripac_Inf"; displayName = "Oficial"; scope = 2; side = 1; //Bando al que pertenece nightVision = 1; camouflage = 0.600000; model = "\FFAA_Bripac\FFAA_Bripac_Oficial"; picture = "\Ca\characters\data\Ico\i_null_CA.paa"; Icon = "\Ca\characters\data\map_ico\i_wojak_CA.paa"; weapons[] = {G36C, "Throw", "Put"}; magazines[] = {"30Rnd_556x45_G36", "30Rnd_556x45_G36", "30Rnd_556x45_G36", "30Rnd_556x45_G36", "30Rnd_556x45_G36", "30Rnd_556x45_G36", "HandGrenade", "HandGrenade", "HandGrenade", "HandGrenade"}; respawnWeapons[] = {G36C}; respawnMagazines[] = {"30Rnd_556x45_G36", "30Rnd_556x45_G36", "30Rnd_556x45_G36", "30Rnd_556x45_G36", "30Rnd_556x45_G36", "30Rnd_556x45_G36"}; }; class FFAA_Bripac_Medico: FFAA_Bripac_Oficial { displayName = "Medico"; attendant = 1; //Propiedad para curar model = "\FFAA_Bripac\FFAA_Bripac_Medico"; picture = "\Ca\characters\data\Ico\i_Med_CA.paa"; Icon = "\Ca\characters\data\map_ico\i_medyk_CA.paa"; }; }; Share this post Link to post Share on other sites
feersum.endjinn 6 Posted December 4, 2006 This is my config for my future mod, where I inherit the class SoldierGB from characters.pbo, so I can use the resistance model from ArmA. You can inherit, but not override - two completely different things. When I am talking about mod I mean things that modify existing classes in game, if it only inherits and adds new classes it is not a mod, it's an addon. Anyway, overriding class works to a some extent but not always and when and where it works seems to be bit inconsistent. Share this post Link to post Share on other sites
flaber 0 Posted December 4, 2006 ah, ok, I see I didn't understand the right thing the first time, Share this post Link to post Share on other sites
Locke@Germany 0 Posted January 4, 2007 Hi, having a little problem here. In order to not have a giant modfolder I've been trying to make one big Config.cpp and up till now it worked just like in OFP where most info was stored in the main Config. I can assign new recoils & sounds to weapons just fine but i can't change the rate of fire. The value i set in my main Config has no influence at all, it seems to get overwriten by the default reloadtime that is defined in Weapons.pbo. As if there is no access-restriction at all. Â Comming straight from OFP config editing this doesn't seem right and makes me also believe that there is something wrong with "access=x". Locke. Edit: even after not using the predifined firing modes in my weapon-cfg i'am not able to change the rate of fire. AK-74 in main config: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class AK74 : Rifle { scope = 2; value = 0; dexterity=1.18288; model = "\ca\weapons\AK_74_proxy"; displayName = $STR_DN_AK74; picture = "\CA\weapons\data\equip\w_ak74_ca.paa"; UiPicture = "\CA\weapons\data\Ico\i_regular_CA.paa"; optics = 1; drySound[] = {"\ca\Weapons\Data\Sound\AK47_dry_v1", 0.000316228, 1}; reloadMagazineSound[] = {"\ca\Weapons\Data\Sound\AK47_fill_v3", 0.00562341, 1}; modes[] = {"Single", "Burst", "FullAuto"}; magazines[] = {"30Rnd_545x39_AK"}; class Single { ammo = "Bullet"; recoil = "Locke_RifleRecoil_AK74"; recoilProne = "Locke_RifleRecoil_AK74"; reloadTime = 0.1; dispersion = 0.00075815; multiplier = 1; burst = 1; autoFire=0; displayName = "Single"; sound[] = {"\Locke_ModernSFX\SmallArms\Fire_Rifle_545x39_AK74.wss", 10.0, 1}; soundContinuous=0; ffCount=1; aiRateOfFire=3.32; aiRateOfFireDistance=500; useAction=0; useActionTitle=""; minRange = 2; minRangeProbab = 0.1; midRange = 250; midRangeProbab = 0.7; maxRange = 400; maxRangeProbab = 0.04; showToPlayer = 1; }; class Burst { ammo = "Bullet"; recoil = "Locke_RifleRecoil_AK74"; recoilProne = "Locke_RifleRecoil_AK74"; reloadTime = 2.0; Â Â //Testing dispersion = 0.00112577; multiplier = 1; burst = 3; autoFire=0; displayName = "Burst"; sound[] = {"\Locke_ModernSFX\SmallArms\Fire_Rifle_545x39_AK74_Burst.wss", 10.0, 1}; soundContinuous=0; ffCount = 3; aiRateOfFire=5.000000; aiRateOfFireDistance=500; useAction=0; useActionTitle=""; minRange = 2; minRangeProbab = 0.1; midRange = 60; midRangeProbab = 0.7; maxRange = 100; maxRangeProbab = 0.05; showToPlayer = 0; }; class FullAuto { ammo = "Bullet"; recoil = "Locke_RifleRecoil_AK74"; recoilProne = "Locke_RifleRecoil_AK74"; reloadTime = 2.0; Â //Testing dispersion = 0.00225154; multiplier = 1; burst = 1; autoFire=1; displayName = "Full Auto"; sound[] = {"\Locke_ModernSFX\SmallArms\Fire_Rifle_545x39_AK74.wss", 10.0, 1}; soundContinuous=0; ffCount = 30; aiRateOfFire=0; aiRateOfFireDistance=500; useAction=0; useActionTitle=""; minRange = 2; minRangeProbab = 0.1; midRange = 30; midRangeProbab = 0.7; maxRange = 60; maxRangeProbab = 0.05; showToPlayer = 1; }; class Library { libTextDesc = $STR_LIB_AK74; }; }; everything else works as it should without any error-messages when i start the game with my MOD. My Sound-FX is beeing used, my dispersion values and the custom recoils work ,only firingrate seems to be somehow not changeable or being overwriten by something else. Â Maybe i'm thinking too OFP'ish about the Problem. But how can values in the main config that are access=readonlyverified get overwritten by an addon config ? Share this post Link to post Share on other sites