//BTR-70 Config by Thunderbird84 for Manfred/Project'85
#define true 1
#define false 0
#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 VSoft 0
#define VArmor 1
#define VAir 2
#define LockNo 0
#define LockCadet 1
#define LockYes 2
#define ReadAndWrite 0
#define ReadAndCreate 1
#define ReadOnly 2
#define ReadOnlyVerified 3
class CfgPatches
{
class rhs_btr70
{
units[] = {rhs_btr70};
weapons[] = {};
requiredVersion = 1.0;
requiredAddons[] = {};
};
};
class CfgVehicleClasses
{
class MNF_vehicles
{
displayname= "MNF Vehicles";
};
};
/*******************************************************************************
* CfgMovesBasic : spawns the animation classes *
*******************************************************************************/
class CfgMovesBasic
{
class DefaultDie;
class ManActions
{
rhs_btr70_driver = "rhs_btr70_driver";
rhs_btr70_gunner = "rhs_btr70_gunner";
};
};
/*******************************************************************************
* CfgMovesMaleSdr defines the classes of crew animations *
* inherits from CfgMovesBasic *
*******************************************************************************/
class CfgMovesMaleSdr : CfgMovesBasic
{
class States
{
class Crew; //External Inheritance class
class rhs_btr70_driver : Crew
{
file = "\rhs_btr70\anims\driver.rtm"; // path to anim
};
class rhs_btr70_gunner : Crew
{
file = "\rhs_btr70\anims\gunner.rtm"; // path to anim
};
};
};
class CfgVehicles
{
class LandVehicle;
class Car : LandVehicle // External class reference
{
class AnimationSources;
class NewTurret;
class Turrets
{
class MainTurret : NewTurret{};
};
};
// class StrykerBase; // External class reference
// class Stryker_ICV_M2; // External class reference
class Wheeled_APC : Car{};
class rhs_btr70: Wheeled_APC
{
scope = 2;
side=0;
vehicleclass = "MNF_vehicles";
displayName = "BTR-70";
faction = "RU";
Picture = "\rhs_btr70\BTRIcon.paa";
Icon = "\rhs_btr70\BTRIcon_MAP.paa";
mapSize = 8;
nameSound = "APC";
accuracy=1.50;
maxSpeed = 80;
fuelCapacity = 250;
enableGPS = true;
canLock = LockNo;
unitInfoType = UnitInfoTank;
transportSoldier = 0;
transportAmmo = 0;
transportMaxMagazines = 500;
transportMaxWeapons = 30;
weapons[]={};
magazines[]={};
type=VArmor;
//threat[] VSoft, VArmor, VAir
threat[] = {0.5, 0.5, 0.1};
armor = 140;
damageResistance = 03.02432;
armorstructural = 2.5;
armorGlass=0.5;
armorWheels=0.15;
armorBody=0.4;
armorFuel=1.4;
armorLights=0.4;
soundEngine[]={\ca\wheeled\Data\Sound\Brdm_engine_3,db8,0.8};
SoundGetIn[]={\ca\wheeled\Data\Sound\Ural_OpenClose,db-45,1};
SoundGetOut[]={\ca\wheeled\Data\Sound\Ural_OpenClose,db-50,1};
SoundGear[]={\ca\wheeled\Data\Sound\shifter_v4,db-80,1};
SoundCrash[]={\ca\wheeled\Data\Sound\Brdm_crash,db-5,1};
SoundEnviron[]={\ca\wheeled\Data\Sound\noise,db-50,0.25};
model = "\rhs_btr70\mnf_btr70.p3d";
//hiddenSelections[]=
//{
//"n1","n2","n3","n4","n5","n6",
// "poklop_commander",
// "poklop_driver",
// "dverel",
// "dverep",
// "luk_desant_l",
// "luk_desant_p",
// "okno_p_1",
// "okno_p_2",
// "okno_p_3",
// "okno_l_1",
// "okno_l_2",
// "okno_l_3",
//"pruh"
//};
memoryPointTrackFLL = "Stopa PLL";
memoryPointTrackFLR = "Stopa PLP";
memoryPointTrackBLL = "Stopa ZLL";
memoryPointTrackBLR = "Stopa ZLP";
memoryPointTrackFRL = "Stopa PPL";
memoryPointTrackFRR = "Stopa PPP";
memoryPointTrackBRL = "Stopa ZPL";
memoryPointTrackBRR = "Stopa ZPP";
memoryPointsGetInDriver = "pos driver";
memoryPointsGetInDriverDir = "pos driver dir";
//memoryPointsGetInCommander = "pos cargo";
//memoryPointsGetInCommanderDir = "pos cargo";
memoryPointsGetInGunner = "pos gunner";
memoryPointsGetInGunnerDir = "pos gunner dir";
//memoryPointsGetInCargo = "pos cargo";
//memoryPointsGetInCargoDir = "zamerny";
//memoryPointsGetInCoDriver = "pos_codriver";
//memoryPointsGetInCoDriverDir = "zamerny";
selectionBrakeLights = "light_brake";
//selectionBackLights = "none";
class HitEngine { armor = 1.2; material = 60; name = "motor"; visual = "motor"; passThrough = true; };
class HitBody { armor = 0.4; material = 51; name = "karoserie"; visual = "karoserie"; passThrough = true; };
class HitFuel { armor = 1.4; material = 51; name = "palivo"; passThrough = true; };
class HitRGlass { armor = 0.5; material = -1; name = "sklo predni P"; passThrough = true; };
class HitLGlass { armor = 0.5; material = -1; name = "sklo predni L"; passThrough = true; };
class HitLFWheel {armor=0.2;material=-1;name="Levy predni tlumic";visual="Levy predni";passThrough=0;};
class HitRFWheel {armor=0.2;material=-1;name="Pravy predni tlumic";visual="Pravy predni";passThrough=0;};
class HitLF2Wheel {armor=0.2;material=-1;name="Levy dalsi tlumic";visual="Levy dalsi";passThrough=0;};
class HitRF2Wheel {armor=0.2;material=-1;name="Pravy dalsi tlumic";visual="Pravy dalsi";passThrough=0;};
class HitLMWheel {armor=0.2;material=-1;name="Levy prostredni tlumic";visual="Levy prostredni";passThrough=0;};
class HitRMWheel {armor=0.2;material=-1;name="Pravy prostredni tlumic";visual="Pravy prostredni";passThrough=0;};
class HitLBWheel {armor=0.2;material=-1;name="Levy zadni tlumic";visual="Levy zadni";passThrough=0;};
class HitRBWheel {armor=0.2;material=-1;name="Pravy zadni tlumic";visual="Pravy zadni";passThrough=0;};
wheelCircumference=4.513;
turnCoef=5.0;
terrainCoef=1.5;
steerAheadSimul=0.2;
steerAheadPlan=0.3;
precision=10;
preferRoads=0;
//damperSize = 0.3; // max. damper amplitude
//damperForce = 1; // larger number more stiffness dampers
//damperDamping = 1;
brakeDistance = 3.0;
canfloat = true;
crew = "RU_Soldier_Crew"; // crew of the vehicle
hasGunner = true;
hasCommander = false;
driverIsCommander = 0;
//commanderCanSee = 31; //See all
gunnerCanSee = 31;
driverCanSee = 31;
castDriverShadow = 1;
castCargoShadow = 1;
viewDriverShadow = true;
viewGunnerShadow = true;
viewCargoShadow = true;
hideProxyInCombat = 0;
forceHideDriver = true;
//forceHideGunner = false;
//forceHideCommander = false;
driverAction = "rhs_btr70_driver";
driverInAction = "rhs_btr70_driver";
//cargoAction[] = {BRDM2_Cargo01,BRDM2_Cargo02};
//cargoIsCoDriver[] = {true,false,false,false,false};
crewVulnerable = false;
unloadInCombat = 0;
memoryPointDriverOptics = "driverview";
driverForceOptics = 0;
driverOpticsModel = "\rhs_btr70\sights\o915_TNPO170A_sight";
driverOpticsColor[] = {1, 1, 1, 1};
driverOpticsEffect[] = {
"OpticsCHAbera1"
};
class ViewOptics
{
initFov = 0.700000;
minFov = 0.700000;
maxFov = 0.700000;
initAngleX = 0;
minAngleX = -110;
maxAngleX = 110;
initAngleY = 0;
minAngleY = -110;
maxAngleY = 110;
opticsZoomMin = 0.700000;
opticsZoomMax = 0.700000;
distanceZoomMin = 20;
distanceZoomMax = 2000;
};
//animationSourceHatch = "driverHatch";
class AnimationSources : AnimationSources
{
class recoil_source
{
source = "reload";
weapon = "KPVT";
};
class driverViewHatch
{
source = "user"; //The controller is defined as a user animation.
animPeriod = 2; //The animation period used for this controller.
initPhase = 0; //Initial phase when object is created.
};
class commanderViewHatch : driverViewHatch {};
class l_door : driverViewHatch {};
class r_door : l_door {};
class windows : l_door {};
class t_door_1 : l_door {};
class t_door_2 : l_door {};
class engineHatches : l_door {};
class propDoor : l_door {};
// test -- this animate["driverViewHatch",1]; this animate["commanderViewHatch",1]; this animate["driverHatch",1]; this animate["commanderHatch",1]; this animate["l_win_1",1]; this animate["l_win_2",1]; this animate["l_win_3",1]; this animate["r_win_1",1]; this animate["r_win_2",1]; this animate["r_win_3",1]; this animate["t_door_1",1]; this animate["t_door_2",1]; this animate["engineHatches",1]; this animate["propDoor",1]; this animate["l_door",1]; this animate["r_door",1];
};
class UserActions
{
// Lower Suspension
class openDriverViewHatch
{
displayName = "Open Shield"; // as seen in action menu @see Stringtable
position = ""; // memory point of action
radius = 5; // distance from memory point
condition = "(player == driver this) && (this animationPhase ""driverViewHatch"" < 0.5)"; //
statement = "this animate[""driverViewHatch"",1];"; // action of the input
onlyForPlayer = true; // only player can perform?
};
// Raise Suspension
class closeDriverViewHatch
{
displayName = "Close Shield"; // as seen in action menu @see Stringtable
position = ""; // memory point of action
radius = 5; // distance from memory point
condition = "(player == driver this) && (this animationPhase ""driverViewHatch"" > 0.5)"; //
statement = "this animate[""driverViewHatch"",0];"; // action of the input
onlyForPlayer = true; // only player can perform?
};
};
enableManualFire = 0;
commanderUsesPilotView = 1;
class Turrets : Turrets
{
class MainTurretGun : MainTurret
{
stabilizedInAxes = "StabilizedInAxesNone";
proxyIndex = 1;
primaryGunner = 1;
primaryObserver = 0;
animationSourceBody = "mainTurret"; // turret
animationSourceGun = "mainGun"; // gun
body = "mainturret";
gun = "maingun";
hasGunner=1;
weapons[] = {KPVT,PKT};
soundServo[]={\ca\wheeled\Data\Sound\servo4, db-52, 1.0};
magazines[] = {500Rnd_145x115_KPVT,1500Rnd_762x54_PKT};
class ViewOptics
{
initAngleX=5; minAngleX=-30; maxAngleX=+30;
initAngleY=0; minAngleY=0; maxAngleY=0;
initFov=0.42; minFov=0.22; maxFov=0.64;
};
//hideProxyInCombat = 0;
viewGunnerInExternal = 1;
gunnerInAction = "rhs_btr70_gunner";
gunnerAction = "rhs_btr70_gunner";
gunnerOpticsModel = "\ca\weapons\2Dscope_BMPgun";
gunnerForceOptics = 1;
outGunnerMayFire = 1;
gunBeg = "usti hlavne"; // endpoint of the gun
gunEnd = "konec hlavne"; // chamber of the gun
memoryPointGun = "kulas"; // gun muzzle
forceHideGunner = 1;
//outGunnerMayFire = 1;
commanding = 1;
//memoryPointsGetInGunner = "pos gunner"; // get in gunner
//memoryPointsGetInGunnerDir = "pos gunner dir"; // direction gunner
minElev = -5;
maxElev = 30;
initElev = 0;
minTurn = -360;
maxTurn = 360;
initTurn = 0;
class Turrets{};
memoryPointGunnerOptics= "gunnerview";
//memoryPointGunnerOutOptics= "";
// gunnerOpticsModel = "\ca\Tracked\optika_stryker_gunner";
// gunnerOutOpticsModel = "";
gunnerOpticsEffect[] = {
"TankGunnerOptics1",
"WeaponsOptics",
"OpticsCHAbera3"
};
};
class commanderOptics : NewTurret
{
proxyType = "CPCommander";
body = "obsTurret";
gun = "obsGun";
animationSourceBody = "obsTurret";
animationSourceGun = "obsGun";
animationSourceHatch = "commanderHatch";
selectionFireAnim = "";
gunnerOutOpticsShowCursor = 0;
gunnerGetInAction = "GetInHigh";
gunnerGetOutAction = "GetOutHigh";
//gunBeg = "";
//gunEnd = "";
minElev = 0;
maxElev = 0;
initTurn = 0;
minTurn = 0;
maxTurn = 0;
maxHorizontalRotSpeed = 0;
maxVerticalRotSpeed = 0;
proxyIndex = 1;
memoryPointsGetInGunner = "pos commander";
memoryPointsGetInGunnerDir = "pos commander dir";
gunnerName = "Commander";
commanding = 2;
gunBeg = "";
gunEnd = "";
memoryPointGun = "";
memoryPointGunnerOptics = "obsView";
gunnerAction = "AAV_Commander_OUT";
gunnerInAction = "AAV_Commander";
weapons[] = {};
magazines[] = {};
forceHideGunner = false;
hasGunner = 0;
primaryGunner = 0;
primaryObserver = 1;
outGunnerMayFire = 1;
/**
* TNPO-170A Configuration
* Magnification x1
* (0.700000 / 1 = 0.700000)
*/
gunnerOpticsModel = "\rhs_btr70\sights\o915_TNPO170A_sight";
gunnerOpticsColor[] = {1, 1, 1, 1};
gunnerForceOptics = 1;
gunnerOpticsEffect[] = {
"OpticsCHAbera1"
};
gunnerOutOpticsEffect[] = {};
gunnerOutOpticsModel = "";
class ViewOptics
{
initAngleX = 0;
minAngleX = -110;
maxAngleX = 110;
initAngleY = 0;
minAngleY = -110;
maxAngleY = 110;
opticsZoomMin = 0.700000;
opticsZoomMax = 0.700000;
distanceZoomMin = 20;
distanceZoomMax = 2000;
initFov = 0.700000;
minFov = 0.700000;
maxFov = 0.700000;
};
};
};
class Exhausts
{
class Exhaust1
{
position = "vyfuk start";
direction = "vyfuk konec";
effect = "ExhaustsEffect";
};
class Exhaust2 : Exhaust1
{
position = "vyfuk start 2";
direction = "vyfuk konec 2";
};
};
class EventHandlers
{
//init = "[_this select 0] exec {\MNF_BTR70\Scripts\mnf_btr70init.sqs};";
};
//#include "CfgAnimations.hpp"
};
};