Fandom

武装突袭 Wiki

Turret Config Reference

简体 | 繁體

4,827个页面创建
于此维基上
添加新页面
评论0 分享

您使用了广告屏蔽软件!


Wikia通过广告运营为用户提供免费的服务。我们对用户通过嵌入广告屏蔽软件访问网站进行了使用调整。

如果您使用了广告屏蔽软件,将无法使用我们的服务。请您移除广告屏蔽软件,以确保页面正常加载。


Introduction编辑

OFP used an optional turret class for some, few, models.

ARMA uses a Turrets (plural) class.

Generally, there is only a single "MainTurret" in the turrets class of any model that wants to have one. Or put another way, any model that has any turrets at all, will have a MainTurret class plus additionals if any.

This (often empty) Turrets class is embedded in the class heirarchy of many generic base models. A generic base model == Tank eg. Ie, a generic class that all real tanks inherit. For the given tank (a T80 eg), it is expected, that values will be filled into the (often empty) Turrets class already provided. Some model families (HMMV_Base eg) flesh out this turrets class for all their children, others don't. The principle being, that many child models will inherit a Turrets class whether they want it or not.

As a consequence, many models that don't have turrets require

class Turrets{};

Ie, their parent (or parents) have inherited a Turret class that needs to be ignored (for this model and it's children). It is good practice to put the above statement in your model (if you dont use turrets). A later change by you to a 'better' (tm) parent might introduce unexpected errors if that parent has a turrets class and you didn't want one anyway.

Creating 编辑

Creating any turret (singular) class for your model involves the use of

class cfgVehicles
{
 class SomeModel //AllVehicles eg
 {
  class NewTurret;   // derive from your base base base class
 };
 class MyGreatModel:SomeModel // AllVehicles eg
 {
  class Turrets
  {
   class MainTurret : NewTurret // build (or overwrite) a completely new turret
   {
       ...
   };
   class MoreTurrets :NewTurret // if any
  };
};

AllVehicles is the lowest possible base class where you can obtain a pristine NewTurret class. It would be an unusual model to inherit directly from AllVehicles (you might derive NewTurret from there, again, unusual), but you are unlikely to INHERIT AllVehicles directly. More likely, you've got some other generic class that fills in much of the donkey work. For the purposes of obtaining a NewTurret, it matters diddly squat where it comes from. ALL models have one. Used, or not.


Inheriting 编辑

There are of course, derivations on the theme, aka

class cfgVehicles
{
 class Ship;
 class Boat: Ship
 {
  class Turrets

{ // your model has to inerit from somewhere!!!

  class NewTurret;   // create an entirely new animal OR
  class MainTurret;  // twiddle what's aleady there IF THERE !!!

};

 };
 class MyGreatModel:Boat
 {
  class Turrets:Turrets
  {
   class MainTurret : NewTurret   //create an entirely new one OR
   class MainTurret : MainTurret // just twiddle a few things from the generic class
   {
       ....
   };
 };
};

The bottom line is that, ultimately, your turret will attach a NewTurret class (whether inherited, or, created right then)


ALL models, ultimately, derive their turret(s), from this one, singular, NewTurret class.

The NewTurret class is embedded in ALL Vehicle classes (via the bin/config.bin). It can be used, or ignored, but it's unconditially there.

The following alphabetical sort describes all values that can be set in YOUR derived NewTurret (eg your MainTurret)

Notes编辑

  • In the following list, the default value is declared. Ie the value that comes from the (sometimes inherited) NewTurret class. There should be no requirement to restate a default value unless the class you inherit from has done so.
  • Some values cannot be known by the NewTurret class and are defaulted to empty. They need you, to fill them in. They are of course string values pertaining to YOUR model.

Very fortunately, these values (memory points eg), are almost universal. It is a strange and wonderful model indeed that strays from the standard Czech names for these points.

In General, an inherited model will have already had these standard Czech names supplied by the parent. So at best, they are *generally* not required to be stated, and at worst, using the 'example' name supplied in the alpabetic list below is a fairly sage bet. (if you haven't got an OctoVez in your model,it's your problem, isn't it)


Alpahbetic 编辑

A编辑

animationSourceBody= "mainTurret" 编辑

String: controller source name for use with this turret's body in the cfgModels class.

class CfgModels {

class YourModel: InheritedFromSomeWhere
{
 class Animations:Animations
 {
   class MainTurret
   {
    type="rotationY";
    source="mainTurret";//The controller that provides input above
    selection="OtocVez";//The name of the skeleton bone used.
    axis="OsaVeze";//name of the axis in the model.

animationSourceGun= "mainGun" 编辑

String: Creates a new animation source for use with this turret's gun in the cfgModels class.

animationSourceHatch= "hatchGunner" 编辑

String :Creates a new animation source for use with this turret's gunner hatch in the cfgModels class.

animationSourceElevation = "" 编辑

String : Creates a new animation source to be used for raising/lowering the turret. (new in A3)

animationSourceCamElevation = "" 编辑

String : unknown as of yet (new in A3)

B编辑

body= "mainTurret" 编辑

String: This defines the animation to be used for the horizontally moving selection of the turret and must be a model.cfg's animation classname. The name of the source for the animation is defined via animationSourceBody.

C编辑

canHideGunner= true 编辑

Boolean

castGunnerShadow= false 编辑

Boolean

class GunFire: WeaponFireGun{} 编辑

class GunClouds: WeaponCloudsGun{} 编辑

class MGunClouds: WeaponCloudsMGun{} 编辑

These all inherit the default external class

class HitPoints 编辑

class HitPoints
{
   class HitTurret
   {
    armor = 0.8;
    material = 51;
    name = "turret";
    visual = "turret";
    passThrough = 1;
   };
   class HitGun
   {
    armor = 0.6;
    material = 52;
    name = "gun";
    visual = "gun";
    passThrough = 1;
   };
 };

class Turrets{} 编辑

no embedded turret(s)

class ViewGunner 编辑

class ViewGunner
{
   initAngleX = 5;
   minAngleX = -85;
   maxAngleX = 85;
   initAngleY = 0;
   minAngleY = -150;
   maxAngleY = 150;
   initFov = 0.7;
   minFov = 0.42;
   maxFov = 0.85;
};


class ViewOptics 编辑

  class ViewOptics
  {
   initAngleX = 0;
   minAngleX = -30;
   maxAngleX = 30;
   initAngleY = 0;
   minAngleY = -100;
   maxAngleY = 100;
   initFov = 0.3;
   minFov = 0.07;
   maxFov = 0.35;
  };

commanding= 1 编辑

Integer The commanding number defines who is in command of the vehicle. The turret with the highest number will be the vehicles commander. If he dies, the crew of the turret with the nearest smaller number will take over command, etc.

E编辑

ejectDeadGunner= false 编辑

Boolean If true, the gunner's body will be ejected when killed.

F编辑

forceHideGunner= false 编辑

Boolean If true, the gunner will not be able to turn out.

G编辑

gun= "mainGun" 编辑

String: This defines the animation to be used for the verticaly moving selection of the turret and must be a model.cfg's animation classname. The name of the source for the animation is defined via animationSourceGun.

gunAxis 编辑

String
Description: Axis selectionname in MemoryLOD (for the gun axis, ie mouse up and down input).

gunAxis="OsaHlavne";

gunBeg= "" 编辑

String The name of the barrel's front point in the model.

example: gunBeg="usti hlavne";

gunEnd= "" 编辑

String The name of the barrel's rear point in the model.

example: gunEnd="konec hlavne";

gunnerAction= "" 编辑

String The name of the animation the gunner is using while turned out.

gunnerCompartments= "Compartment1" 编辑

String Only units sharing a compartment can switch seats.

gunnerFireAlsoInInternalCamera= true 编辑

Boolean

gunnerForceOptics= true 编辑

Boolean Forces the gunner to use optics while turned in.

gunnerGetInAction= "" 编辑

String ???

gunnerGetOutAction= "" 编辑

String ???

gunnerInAction= "" 编辑

String The name of the animation the gunner is using while turned in.

gunnerName= "Gunner" 编辑

String Allows to use a custom string for the name of the turret.

example gunnerName="Rear Gunner";

gunnerOpticsColor[]= {0,0,0,1} 编辑

Array

gunnerOpticsEffect[]= {} 编辑

Array

gunnerOpticsModel= "" 编辑

String The optics model used when gunner is not turned out.

example: gunnerOpticsModel="\ca\Tracked\optika_tank_gunner";

gunnerOutFireAlsoInInternalCamera= true 编辑

Boolean

gunnerOutForceOptics= false 编辑

Boolean Forces the gunner to use optics while turned out.

gunnerOutOpticsColor[]= {0,0,0,1} 编辑

Array

gunnerOutOpticsEffect[]= {} 编辑

Array

gunnerOutOpticsModel= "" 编辑

String
Description: The optics model used when gunner is turned out.

gunnerOutOpticsModel="\ca\Weapons\optika_empty";


gunnerOutOpticsShowCursor= false 编辑

Boolean

gunnerType= "" 编辑

String
Description: New in A3. The soldier class that is the default crew for this turret. Overwrites the class defined in the CfgVehicle crew=""; token

gunnerType="O_Soldier_F";

gunnerUsesPilotView= false 编辑

Boolean The gunner will use the View LOD - Pilot if true.

H编辑

hasGunner= true 编辑

Boolean If true, the turret will be manned when the vehicle is placed in the editor.

hideWeaponsGunner= true 编辑

Boolean If true, the gunners weapons (his rifle) will not be displayed.

I编辑

InGunnerMayFire= true 编辑

Boolean If true, the gunner will be able to fire the turrets weapons while inside the vehicle.

initElev= 0 编辑

Degrees The initial elevation of the gun.

initTurn= 0 编辑

Degrees The initial turn of the turret.

isPersonTurret = 2 编辑

Value 1 gives a working turret but only accessible from the inside while 2 enables a person to get into the turret from outside.

L编辑

lockWhenDriverOut= false 编辑

Boolean If true, the turret can not be moved while the driver is turned out.

lockWhenVehicleSpeed= -1 编辑

Integer

LODTurnedIn= -1 编辑

Integer

LODTurnedOut= -1 编辑

Integer

M编辑

magazines[]= {} 编辑

Array An array made of all magazines this turret is equipped with.

example magazines[]={"BigGunMagazine","SmallGunMagazine"};

maxElev= 20 编辑

Degrees The maximum elevation of the gun.

maxHorizontalRotSpeed= 1.2 编辑

Float The maximum horizontal speed of the turret, unit unknown.

maxTurn= 360 编辑

[[TokenNameValueTypes#Degrees|Degrees] The maximum turn of the turret, unit is deegres.

maxVerticalRotSpeed= 1.2 编辑

Float The maximum vertical speed of the turret, unit unknown. Bigger value - bigger rotation speed

memoryPointsGetInGunner= "" 编辑

String The name of the get in-point selection for this turret, located in the Memory-LOD of the model.

example: memoryPointsGetInGunner="pos gunner";

memoryPointsGetInGunnerDir= "" 编辑

String The name of the dir-point selection for this turret, located in the Memory-LOD of the model. It is used to make the gunner face a special direction while entering the vehicle.

memoryPointsGetInGunnerDir="pos gunner dir";

memoryPointGun= "" 编辑

String The point in the model where the MG fire of this turret will come from.

memoryPointGun="machineGun";

memoryPointGunnerOptics= "" 编辑

String The point in the model that defines gunner view point.

example: memoryPointGunnerOptics="gunnerview";

memoryPointGunnerOutOptics= "" 编辑

String

minElev= -4 编辑

Degrees The minimal elevation of the gun.

minTurn= -360 编辑

Degrees The minimal turn of the turret, unit is deegres.

missileBeg= "spice rakety" 编辑

String

missileEnd= "konec rakety" 编辑

String

O编辑

outGunnerMayFire =false 编辑

Boolean If true, the gunner will be able to fire and move(!) the turret while turned out.

P编辑

primary= 1 编辑

Unknown: ??

primaryGunner= true 编辑

Boolean True if this turret is used by the primary gunner, false else. (!ATT! There can be only ONE primary gunner on a vehicle, else you might get CTD often! If you want to addMagazine smth then it will be ALWAYS on the primaryGunner weapons ONLY!).

primaryObserver= false 编辑

Boolean True if this turret is used by the primary observer (e.g. tank commander), false else.

proxyType= "CPGunner" 编辑

String: The proxy type of the turrets gunner, this may be CPGunner or CPCommander. The proxies have to be named according to this setting, so either "proxy:Gunner.XX" or "proxy:Commander.XX".

proxyIndex= 1 编辑

Integer: The proxy index of the turrets gunner. If your proxyType is "CPGunner" and proxyIndex=1, the proxyname must be "proxy:Gunner.01", etc.

S编辑

selectionFireAnim= "" 编辑

String

showgunneroptics 编辑

Boolean
Description: ???

showgunneroptics=true;

soundServo[]= {"",0.003162,1.0} 编辑

Array Sound of the turrets servo, this is played whenever the turret is moving.

stabilizedInAxes= "StabilizedInAxesBoth" 编辑

Integer

#define StabilizedInAxesNone 0
#define StabilizedInAxisX 1
#define StabilizedInAxisY 2
#define StabilizedInAxesBoth 3

startEngine= true 编辑

Boolean If true, moving the turret will start the vehicles engine. The engine will stop automatically once the turret stops moving.

T编辑

turretAxis 编辑

String
Description: Axis selectionname in MemoryLOD (for the turret axis, ie mouse left and right input).

turretAxis="OsaVeze";

V编辑

viewGunnerInExternal= false 编辑

Boolean View gunner in external.

viewGunnerShadow= true 编辑

Boolean

viewGunnerShadowDiff= 1.0 编辑

Float

viewGunnerShadowAmb= 1.0 编辑

Float


W编辑

weapons[]= {} 编辑

Array An array made of all weapons this turret is armed with.

example: weapons[]={"BWMod_L55","BWMod_MG3_veh"};

更多维基

随机维基