Building Configs

From Bohemia Interactive Community
Revision as of 14:08, 22 June 2021 by Lou Montana (talk | contribs) (Text replacement - "y[ _]*\|[ _]*(arma[0-9]+)[ _]*\|[ _]+" to "y|$1|")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

A building.p3d is defined here as being a structure such as a house or building.

  • Hotel eg
  • Fuel Station Eg
  • Military Bunker eg

In general to create a class of a building.p3d you need to preface it with Land_xxxxxx

where xxxx = MUST be the name of the p3d.

Why this is necessary and hard wired into the engine, defeats me. However, without the Land_ preface, neither animations, nor destruction effects work.

Arma changed it is destrtype=House so that the buildings

  • a) vanish
  • b) are replaced by rubble of that building that you must build.

This is at odds with ofp, which, generally gave a rather clever destruction of the existing p3d

Arma calls this rubble, ruins, which is entirely inconsistent with true ruin models Eg most castle walls etc

For any building you create, if it is destroyed, it will simply vanish from the face of the earth. To put something there, you need to declare the following.

destruction class

for any of this to operate, at the top of your cfgvehicles you need to state

class CfgVehicles
{
 class HouseBase;
 class House: HouseBase
 {
  class DestructionEffects;
 };


building class

class Land_MyBuilding : House
{
 model = etc
 scope = etc
  ..... // your general blurb followed by
 class DestructionEffects: DestructionEffects
 {
  class Ruin1
  {
   simulation = "ruin";
   type = \ca\buildings\ruins\AnyRuin_ruins; // ie select a suitable one
   position = "";
   intensity = 1;
   interval = 1;
   lifeTime = 1;
  };
 };
};

custom rubble

class Land_MyRubble
{
 scope = 1;// at least prevent the stupid thing being listed in the editor
 model = \YourPbo\MyRubble; // or, use one from \ca\buildings\ruins\any_ruins.p3d;
 displayName = Rubble; // this name is shown when you move soldiers(eg) to it
};

Note that the p3d name, and this class name, must match

Note that above is generic rubble for any 'building' class you create. You can, alternatively, create specific rubble.p3d's for specific building p3d's.