6thSense.eu/CG

From Bohemia Interactive Community
Revision as of 17:31, 7 February 2008 by Sickboy (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

by 6thSense.eu

A view on Configs, by Sickboy
under construction

Basics

A config decides parameters and properties of most aspects of the gameworld and it's contents.
A config is used for defining, inheriting and overwriting classes.

  • Defining classes
    • Patches
    • Models
    • Skeletons
    • Ammo
    • Weapons
    • Magazines
    • Vehicles
    • Texture/Material Settings
    • Worlds (Islands)
    • Animations
  • Overwriting classes


Inheritance

If you create a custom addon, and you want to base your thing on something that already exists and does not need to be redefined, you can use the following example: (test2 will be equal to test1 in this example) class test1; class test2: test1 {};

You can inherit from other classes, e.g in this example, class test2 is equal to test1: class test1 { val1 = 1; val2 = 2; val3 = 0; }; class test2: test1 {};

in this example, test2 inherits all variables and values of test1, but changes val2 and adds a val4: class test1 { val1 = 1; val2 = 2; val3 = 0; }; class test2: test1 { val2 = 3; val4 = 1; };




Overwriting

You can overwrite or override specific sections of other configs (Default ArmA, or addon configs etc)
Important is that you specify the the addon which you overwrite/override, aswell as the addons it needs loaded, in the requiredAddons list within cfgPatches

Examples



Config Examples

Weapon Sound Override Config

This example shows you how to use RobertHammer's M4/M16 sounds // Replaces M4/M16 Sounds by RobertHammer's M4/M16 Sounds class CfgPatches { class SIX_rh_m4_soundpack { units[] = {}; weapons[] = {}; requiredVersion = 1.00; requiredAddons[] = {"CAWeapons","CAWeapons3","RH_M4"}; // CAWeapons/CAWeapons3 because those are the ones we override. RH_M4 because thats the addon the sounds are used from }; }; // Inheriting the different firemode classes, so we can use them later on class Mode_SemiAuto; class Mode_Burst; class Mode_FullAuto; class CfgWeapons { class Rifle; // We do not need to define the class rifle here, only inherit class M4: Rifle // We redefine the M4 class here because want to override certain properties { reloadMagazineSound[] = {"\RH_m4\sound\M4_Reload.ogg", 0.001, 1}; class Single: Mode_SemiAuto { sound[] = {"\RH_m4\sound\m4s.ogg", 5.62341, 1}; }; class Burst: Mode_Burst { sound[] = {"\RH_m4\sound\m4s.ogg", 5.62341, 1}; }; class FullAuto: Mode_FullAuto { sound[] = {"\RH_m4\sound\m4s.ogg", 5.62341, 1}; }; }; // TODO Are these necessary to replace the sounds on M4Aim/M4A1?? Or can we just use inheritance? class M4AIM: M4 { }; class M4A1: M4 { }; class M4A1SD: M4AIM { class Single: Mode_SemiAuto { sound[] = {"\RH_m4\sound\m4sd.ogg", 0.01, 1}; }; class FullAuto: Mode_FullAuto { sound[] = {"\RH_m4\sound\m4sd.ogg", 0.014125, 1}; }; }; class M16A2: Rifle { class Single: Mode_SemiAuto { sound[] = {"\RH_m4\sound\m16s.ogg", 5.62341, 1}; }; class Burst: Mode_Burst { sound[] = {"\RH_m4\sound\m16s.ogg", 5.62341, 1}; }; }; class m16a4: M16A2 { class Single: Mode_SemiAuto { sound[] = {"\RH_m4\sound\m16s.ogg", 5.62341, 1}; }; class Burst: Mode_Burst { sound[] = {"\RH_m4\sound\m16s.ogg", 5.62341, 1}; }; }; class m16a4_acg: M16A2 { class Single: Mode_SemiAuto { sound[] = {"\RH_m4\sound\m16s.ogg", 5.62341, 1}; }; class Burst: Mode_Burst { sound[] = {"\RH_m4\sound\m16s.ogg", 5.62341, 1}; }; }; };

Interesting Links



You can find some more info in my answers here: