Files
braf/braf_armored/BRAF_LMV/LMV_base.hpp

1439 lines
40 KiB
C++

class BRAF_LMV_base: Car_F
{
features="Randomization: No <br />Camo selections: 2 - the body, wheels and cover <br />Script door sources: Door_LF, Door_RF, Door_LB, Door_RB <br />Script animations: None <br />Executed scripts: None <br />Firing from vehicles: No <br />Slingload: Slingloadable <br />Cargo proxy indexes: 1 to 3";
scope=0; // Permite que o carro apareça no editor (2-sim 0-não).
scopeCurator=0; // Permite que o carro apareça no Zeus (2-sim 0-não).
side=2; // Lado da facção (0-OpFor, 1-Blufor, 2-IndFor, 3-Civil).
_generalMacro="BRAF_LMV_base"; // Nome de referência para uso de macros.
author="BRAF TEAM"; // Autor.
faction="BRAF_Army"; // Facção.
vehicleClass="Car"; // Classe do veículo.
editorSubcategory="EdSubcat_Cars"; // Subcategoria do veículo.
displayName="$STR_braf_iveco_lmv"; // Nome de exibição do Veículo.
model="braf\braf_armored\BRAF_LMV\BRAF_LMV.p3d"; // Modelo 3D do veículo.
editorPreview="\braf\braf_insignia\editorpreview\armored\BRAF_LMV_EB.jpg"; // Miniatura do veículo quando mostrado no editor.
picture="braf\braf_armored\BRAF_LMV\Data\UI\LMV_Base_ca.paa"; // Miniatura do veículo quando na garagem.
Icon="braf\braf_armored\BRAF_LMV\Data\UI\map_LMV_CA.paa"; // Imagem do ícone do veículo no mapa.
mapSize=9.4200001; // Tamanho do ícone no mapa.
nameSound="veh_vehicle_MRAP_s"; // Som reproduzido pela AI ao identificar o veículo.
class SpeechVariants
{
class Default
{
speechSingular[]=
{
"veh_vehicle_MRAP_s"
};
speechPlural[]=
{
"veh_vehicle_MRAP_p"
};
};
};
textSingular="$STR_A3_nameSound_veh_vehicle_MRAP_s";
textPlural="$STR_A3_nameSound_veh_vehicle_MRAP_p";
class Library // Texto descrevendo algo sobre o veículo.
{
libTextDesc="$STR_braf_iveco_lmv_description";
};
////////////////////////////////////////////////// Comportamento do veículo quando na água
canFloat=0; // Pode boiar 1-sim 2-não. (Precisa de um LOD de buoyance)
maxFordingDepth=0.5; // Altura da água em que o motor pode sofrer dano.
waterAngularDampingCoef=10; //
waterPPInVehicle=1; // Ativa/desativa o shader de água.
waterResistanceCoef=5; // Tempo que o motor pode ficar submerso até sofre dano.
cost=500000; // Importância do alvo para a AI.
threat[]={0.25,0.25,0.25}; // Nível de ameaça representado para {Infantaria,Veículos,Aeronaves}.
////////////////////////////////////////////////// Efeitos Visuais
memoryPointTaskMarker="TaskMarker_1_pos"; //
sensorPosition="sensorPos"; // Posição do sensor.
memoryPointSupply="supply"; // Posição de acesso ao inventário do veículo.
memoryPointTrackFLL="TrackFLL"; // Posição onde as marcas de pneu aparecem.
memoryPointTrackFLR="TrackFLR"; // Posição onde as marcas de pneu aparecem.
memoryPointTrackBLL="TrackBLL"; // Posição onde as marcas de pneu aparecem.
memoryPointTrackBLR="TrackBLR"; // Posição onde as marcas de pneu aparecem.
memoryPointTrackFRL="TrackFRL"; // Posição onde as marcas de pneu aparecem.
memoryPointTrackFRR="TrackFRR"; // Posição onde as marcas de pneu aparecem.
memoryPointTrackBRL="TrackBRL"; // Posição onde as marcas de pneu aparecem.
memoryPointTrackBRR="TrackBRR"; // Posição onde as marcas de pneu aparecem.
dustFrontLeftPos="dustFrontLeft"; // Posição onde a poeira dos pneus aparece.
dustFrontRightPos="dustFrontRight"; // Posição onde a poeira dos pneus aparece.
dustBackLeftPos="dustBackLeft"; // Posição onde a poeira dos pneus aparece.
dustBackRightPos="dustBackRight"; // Posição onde a poeira dos pneus aparece.
selectionBackLights="backlight"; // Lanterna traseira.
selectionBrakeLights="brakelight"; // Luz de freio.
selectionDashboard="dashboardlight"; // Luz de painel.
class NVGMarkers //
{
class NVGMarker01
{
name="nvg_marker";
color[]={0.029999999,0.003,0.003,1};
ambient[]={0.003,0.00030000001,0.00030000001,1};
brightness=0.001;
blinking=1;
};
};
class Reflectors // Farol do veículo.
{
class Left1
{
color[]={1.9,1.8,1.7}; // Cor
ambient[]={5,5,5}; //
position="Light_L1_pos"; // Ponto onde a luz e o flare aparecem.
direction="Light_L1_dir"; // Ponto de direção da luz e do flare.
hitpoint="Light_L1"; // Ponto de destruição da luz.
selection="Light_L1"; // Farol aceso.
size=1; // Tamanho do ponto de luz quando visto à distância.
innerAngle=30; // Ângulo onde a luz é mais intensa.
outerAngle=179; // Ângulo de atenuação da luz
coneFadeCoef=10; // Atenuação da luz entre os ângulos acima
intensity=100; // Intensidade da luz
useFlare=0; // Usa flare? (0-Não, 1-Sim)
dayLight=0; // "Renderiza" o farol durante o dia? (0-Não, 1-Sim) 0 melhor para a performance.
flareSize=1; // Tamanho do flare
class Attenuation
{
start=1; //
constant=0; //
linear=0; //
quadratic=0.050000001; //
hardLimitStart=50; // Limite inicial do fade da luz.
hardLimitEnd=80; // Distância máxima onde a luz é renderizada.
};
};
class Left2: Left1
{
position="Light_L2_pos";
direction="Light_L2_dir";
hitpoint="Light_L2";
selection="Light_L2";
};
class Right1: Left1
{
position="Light_R1_pos";
direction="Light_R1_dir";
hitpoint="Light_R1";
selection="Light_R1";
};
class Right2: Left1
{
position="Light_R2_pos";
direction="Light_R2_dir";
hitpoint="Light_R2";
selection="Light_R2";
};
};
aggregateReflectors[]={{}}; // Agregar refletores ajuda na performace.
class compartmentsLights // Luzes internas de cabine.
{
class Comp1 // Parâmetros de luz do compartimento 1.
{
class Light1 // Mesma coisa descrita em reflectors.
{
color[]={50,0,0};
ambient[]={5,0,0};
intensity=1;
size=1;
innerAngle=15;
outerAngle=150;
coneFadeCoef=1;
useFlare=1;
flareSize=0.1;
flareMaxDistance=1;
dayLight=1;
class Attenuation
{
start=0;
constant=0;
linear=1;
quadratic=1;
hardLimitStart=0.75;
hardLimitEnd=1;
};
point="Cabin_Light_Front"; // Ponto onde a luz aparece.
};
class Light2: Light1
{
point="Cabin_Light_Back";
color[]={50,0,0};
ambient[]={5,0,0};
};
};
};
class Exhausts // Efeito de exaustão do motor.
{
class Exhaust1 //
{
position="exhaust_pos"; // Posição de origem do efeito.
direction="exhaust_dir"; // Posição de direção do efeito.
effect="ExhaustEffectHTruck"; // Efeito desejado.
};
};
////////////////////////////////////////////////// Animações e ações customizadas
class AnimationSources: AnimationSources // Fontes de animações.
{
//class Hit_Step //
//{
// source="Hit"; // Fonte da animação.
// hitpoint="HitReserveWheel"; // Hitpoint que deve ser atingido para a animação ser ativada.
// raw=1; //
// animPeriod=0.001; // Tempo de duração da animação.
// initPhase=1; // Fase inicial.
// mass=225; // Massa a ser adicionada ou subtraída quando a animação é ativada.
//};
class Armed_Hide
{
source="user";
animPeriod=0.001;
initPhase=0;
mass=-300;
};
class Close_Hatch
{
source="hatchGunner";
animPeriod=0.001;
initPhase=0;
};
class Step_Hide
{
source="user";
animPeriod=0.001;
initPhase=0;
mass=250;
};
class Step
{
source="user";
animPeriod=0.001;
initPhase=0;
mass=-250;
};
class Bumper_1
{
source="user";
animPeriod=0.001;
initPhase=0;
mass=-150;
};
class Bumper_2
{
source="user";
animPeriod=0.001;
initPhase=0;
mass=150;
};
class Jerry_Hide
{
source="user";
animPeriod=0.001;
initPhase=0;
mass=50;
};
class Smoke_Hide
{
source="user";
animPeriod=0.001;
initPhase=0;
mass=150;
};
class Marker_Hide
{
source="user";
animPeriod=0.001;
initPhase=1;
};
};
animationList[]=
{
"Armed_Hide",0,
"Bumper_1",1,
"Bumper_2",0,
"Step_Hide",1,
"Step",0,
"Jerry_Hide",0,
"Smoke_Hide",0,
"showCamonetHull",0
};
class UserActions
{
class Marker_Off
{
displayname="Turn Marker lights Off";
position="supply";
showWindow=1;
radius=20;
priority=1;
onlyForPlayer=0;
condition="Alive(this) AND this animationphase 'Marker_Hide' < 0.2 AND (player in crew this)";
statement="this animate ['Marker_Hide',1]";
};
class Marker_On: Marker_Off
{
displayname="Turn Marker lights On";
condition="Alive(this) AND this animationphase 'Marker_Hide' > 0.8 AND (player in crew this)";
statement="this animate ['Marker_Hide',0]";
};
};
////////////////////////////////////////////////// Danos e troca de texturas/materiais
hiddenSelections[]=
{
"fratricide_counter",
"NATOSymbol_currentFraction_first",
"NATOSymbol_currentFraction_second",
"NATOSymbol_type",
"NATOSymbol_size",
"NATOSymbol_superiorFraction_first",
"NATOSymbol_superiorFraction_second",
"Camo1", //
"Camo2", //
"Camo3", //
//"Camo4", //
//"Camonet", //
"Glass" //
};
hiddenSelectionsTextures[]=
{
"",
"",
"",
"",
"",
"",
"",
"braf\braf_armored\BRAF_LMV\Data\Camo1_co.paa", // Textura a ser aplicada
"braf\braf_armored\BRAF_LMV\Data\Camo2_co.paa", // em cada seleção definida acima.
"braf\braf_armored\BRAF_LMV\Data\Camo3_co.paa", //
"braf\braf_armored\BRAF_LMV\Data\Glass_ca.paa" //
};
class TextureSources
{
class EB_01
{
displayName="$STR_braf_ee9_cascavel_cammo_lizard";
author="BRAF Team";
textures[]=
{
"",
"",
"",
"",
"",
"",
"",
"braf\braf_armored\BRAF_LMV\Data\Camo1_co.paa",
"braf\braf_armored\BRAF_LMV\Data\Camo2_co.paa",
"braf\braf_armored\BRAF_LMV\Data\Camo3_co.paa",
"braf\braf_armored\BRAF_LMV\Data\Glass_ca.paa"
};
factions[]={"BRAF_ARMY"};
};
};
armor=200; // Armadura do veículo.
fireResistance=5; // Resistencia ao fogo.
armorStructural=5; //
crewVulnerable=0; //
crewCrashProtection=0.35; // Multiplicador de dano à tripulação.
crewExplosionProtection=0.99989998; //
wheelDamageThreshold=0.18000001; //
wheelDamageRadiusCoef=0.75; //
wheelDestroyRadiusCoef=0.47999999; //
class Damage // Modifica o material aplicado no veículo, visual em hitpoint.
{
tex[]={};
mat[]=
{
"braf\braf_armored\BRAF_LMV\Data\camo1.rvmat", // material mapeado no modelo.
"braf\braf_armored\BRAF_LMV\Data\damage\camo1_damage.rvmat", // material quando o dano atinge 50%.
"braf\braf_armored\BRAF_LMV\Data\damage\camo_destruct.rvmat", // material quando o dano atinge 100%.
"braf\braf_armored\BRAF_LMV\Data\camo2.rvmat", // Outro material, segue a ordem
"braf\braf_armored\BRAF_LMV\Data\damage\camo2_damage.rvmat", // definida no hiddenSelections.
"braf\braf_armored\BRAF_LMV\Data\damage\camo_destruct.rvmat", //
"braf\braf_armored\BRAF_LMV\Data\camo3.rvmat",
"braf\braf_armored\BRAF_LMV\Data\damage\camo3_damage.rvmat",
"braf\braf_armored\BRAF_LMV\Data\damage\camo_destruct.rvmat",
"a3\data_f\glass_veh.rvmat",
"braf\braf_armored\BRAF_LMV\Data\damage\glass_damage.rvmat",
"braf\braf_armored\BRAF_LMV\Data\damage\glass_damage.rvmat"
};
};
class HitPoints: HitPoints // Pontos para cálculo de dano do veículo
{
class HitLFWheel: HitLFWheel // Pontos de dano da roda
{
radius=0.33000001; // Raio da esfera centrada em cada ponto definindo no LOD hitpoints.
visual=""; // Seleção que sofrerá troca de material quando danificada.
name="HP_Wheel_1_1"; //
armorComponent="wheel_1_1_hide"; // Seleção no FireGeometry Lod.
armor=-250; //
minimalHit=-0.016000001; //
explosionShielding=4; //
passThrough=0; //
};
class HitLF2Wheel: HitLFWheel
{
visual="";
name="HP_wheel_1_2";
armorComponent="wheel_1_2_hide";
};
class HitRFWheel: HitLFWheel
{
visual="";
name="HP_wheel_2_1";
armorComponent="wheel_2_1_hide";
};
class HitRF2Wheel: HitLFWheel
{
visual="";
name="HP_wheel_2_2";
armorComponent="wheel_2_2_hide";
};
class HitBody // Pontos de dano da carroceria
{
armor=6;
material=-1;
name="hit_body";
visual="zbytek";
passThrough=1;
minimalHit=0.0099999998;
explosionShielding=1.5;
radius=0.44999999;
};
class HitHull
{
armor=1;
material=-1;
armorComponent="hull";
name="hit_hull";
visual="-";
passThrough=0.5;
minimalHit=0.2;
explosionShielding=0.60000002;
radius=0.25;
};
class HitEngine // Pontos de dano do motor
{
armor=0.5;
material=-1;
armorComponent="engine";
name="hit_engine";
visual="-";
passThrough=0.30000001;
minimalHit=0.2;
explosionShielding=0.2;
radius=0.44999999;
};
class HitFuel // Pontos de dano do tanque de combustível
{
armor=0.5;
material=-1;
armorComponent="fueltank";
name="hit_fuel";
visual="-";
passThrough=0.5;
minimalHit=0.2;
explosionShielding=0.2;
radius=0.25;
};
class HitGlass1: HitGlass1 // Pontos de dano do vidro
{
armor=1.5;
explosionShielding=3;
radius=0.25;
armorComponent="Glass1";
name="hit_Glass1";
visual="Glass1";
};
class HitGlass2: HitGlass1
{
armorComponent="Glass2";
name="hit_Glass2";
visual="Glass2";
};
class HitGlass3: HitGlass1
{
armorComponent="Glass3";
name="hit_Glass3";
visual="Glass3";
};
class HitGlass4: HitGlass1
{
armorComponent="Glass4";
name="hit_Glass4";
visual="Glass4";
};
class HitGlass5: HitGlass1
{
armorComponent="Glass5";
name="hit_Glass5";
visual="Glass5";
};
};
//////////////////////////////////////////////// Definições de tripulação
driverAction="braf_lmv_driver"; //"BRAF_LMV_Driver"; // Pose estática do motorista.
driverLeftHandAnimName="drivewheel"; // Seleção que faz a mão esquerda do motorista se mover.
driverRightHandAnimName="drivewheel"; // Seleção que faz a mão direita do motorista se mover.
transportSoldier=4; // Soldados transportados além do motorista.
cargoAction[]=
{
"passenger_generic01_foldhands", // Poses estáticas dos cargos.
"passenger_generic01_foldhands", // Poses estáticas dos cargos.
"passenger_generic01_foldhands", // Poses estáticas dos cargos.
"passenger_generic01_foldhands"
};
getInAction="GetInMRAP_01"; // Animação de entrada no veículo para o motorista.
getOutAction="GetOutMRAP_01"; // Animação de saída do veículo para o motorista.
cargoGetInAction[]=
{
"GetInMRAP_01_cargo" // Animação de entrada no veículo para cargo.
};
cargoGetOutAction[]=
{
"GetOutMRAP_01" // Animação de saída no veículo para cargo.
};
hideWeaponsDriver=1; // Esconder a arma do motorista? (0-Não, 1-Sim).
hideWeaponsCargo=1; // Esconder a arma do cargo? (0-Não, 1-Sim).
hideWeaponsCommander=1; // Esconder a arma do comander? (0-Não, 1-Sim).
driverDoor="";
cargoDoors[]={};
//////////////////////////////////////////////// Armas
weapons[]=
{
"TruckHorn2", // Armas presentes no veículo, em caso civil use apenas buzinas.
"SmokeLauncher"
};
magazines[]=
{
"SmokeLauncherMag", // Magazines das armas especificadas no parâmetro "Weapons".
"SmokeLauncherMag"
};
smokeLauncherGrenadeCount=6; // Número de granadas lançadas a cada disparo.
smokeLauncherVelocity=14; // Velocidade de saída das granadas.
smokeLauncherOnTurret=0; // Granadas lançadas de acordo com a direção da torre.
smokeLauncherAngle=120; // Ângulo de espalhamento das granadas.
class CargoTurret;
class Turrets: Turrets
{
/*
class CargoTurret_01: CargoTurret
{
gunnerAction="passenger_flatground_4_vehicle_passenger_stand_1";// Pose de turn out.
gunnerInAction="passenger_generic01_foldhands"; // Pose de turn in.
gunnerName="$STR_A3_TURRETS_CARGOTURRET_R1"; // Nome do slot.
memoryPointsGetInGunner="pos gunner"; // Ponto de entrada do slot.
memoryPointsGetInGunnerDir="pos gunner dir"; // Ponto de direção do slot.
proxyIndex=4; // Índice do proxy indicado no p3d.
forceHideGunner=0; // Turn out (1-Não, 0-Sim).
hideWeaponsGunner=1; // Esconder a arma do gunner? (0-Não, 1-Sim).
canHideGunner=1; //
isPersonTurret=1; // Permite FFV - 0 = Não, 1 = Somente turned out, 2 = Sempre.
LODTurnedIn=1200; // LOD exibido quando em turn in.
LODTurnedOut=1; // LOD exibido quando em turn out.
outGunnerMayFire=1; // Gunner pode atirar quando em turn out? (0-Não, 1-Sim).
inGunnerMayFire=0; // Gunner pode atirar quando em turn in? (0-Não, 1-Sim).
animationSourceHatch="hatchGunner"; // Animação que será ativada quando em turn out.
allowLauncherIn=0; // Permite lançador quando em turn in? (0-Não, 1-Sim).
allowLauncherOut=1; // Permite lançador quando em turn out? (0-Não, 1-Sim).
class TurnIn
{
limitsArrayTop[]={};
limitsArrayBottom[]={};
turnOffset=0;
};
class TurnOut: TurnIn
{
limitsArrayTop[]=
{
{38.5373,-12.3438}
};
limitsArrayBottom[]=
{
{-55.813202,-78.700996},
{-55.695,-42.974899},
{-20.534901,-8.1766005},
{-18.5114,7.3281999},
{-19.9175,18.901199},
{-20.0625,26.805099},
{-19.9485,37.776798},
{-34.081501,67.225403},
{-48.6922,80.034798},
{-47.633099,90.4505}
};
};
class dynamicViewLimits
{
};
};
*/
};
/////////////////////////////////////////////// Sensores
class Components;
//////////////////////////////////////////////// Espelhos e Telas
class RenderTargets // Definições de Picture in Picture (PiP).
{
class Mirrors_Left
{
renderTarget="rendertarget1"; // Seleção de faces onde o PiP será renderizado.
class CameraView1 // Posição da câmera.
{
pointPosition="rendertarget1_pos"; // Ponto da câmera.
pointDirection="rendertarget1_dir"; // Direção da câmera.
renderVisionMode=4; // Modo de renderização - 0 = HDR, 1 = NVG, 2 = TI, 3 = Cor, 4 = Espelho.
renderQuality=2; // Qualidade de renderização. (Varia de 0 a 2)
fov=0.69999999; // Ângulo de abertura da câmera.
//turret[]={}; // Torre em que a tela está sincronizada.
};
BBoxes[]=
{
"PIP_1_TL", // Pontos limites de renderização do PiP.
"PIP_1_TR", // Pontos limites de renderização do PiP.
"PIP_1_BL", // Pontos limites de renderização do PiP.
"PIP_1_BR" // Pontos limites de renderização do PiP.
};
};
class Mirrors_Right
{
renderTarget="rendertarget2";
class CameraView1
{
pointPosition="rendertarget2_pos";
pointDirection="rendertarget2_dir";
renderVisionMode=4;
renderQuality=2;
fov=0.69999999;
};
BBoxes[]=
{
"PIP_2_TL",
"PIP_2_TR",
"PIP_2_BL",
"PIP_2_BR"
};
};
};
//////////////////////////////////////////////// Definições do comportamento físico do veículo (PhysX)
thrustDelay=0.1; // Tempo de resposta da aceleração.
brakeIdleSpeed=1.78; // Velocidade máxima em que o freio é aplicado automaticamente.
maxSpeed=115; // Velocidade máxima em m/s.
fuelCapacity=60; // Capacidade de combustível.
wheelCircumference=3.924; //
antiRollbarForceCoef=12; // Força do sistema de anti-rolagem.
antiRollbarForceLimit=10; // Força máxima aplicada pelo sistema de anti-rolagem.
antiRollbarSpeedMin=20; // Velocidade mínima em que o sistema anti-rolagem funciona.
antiRollbarSpeedMax=50; // Velocidade máxima em que o sistema anti-rolagem funciona.
terrainCoef=1.5; // Multiplicador de atrito no terreno.
turnCoef=3; // "Jogo" do veículo ao fazer curvas.
precision=10; // Precisão do veículo em seguir rotas.
class complexGearbox
{
GearboxRatios[]=
{
"R1",
-3.1819999,
"N",
0,
"D1",
4.1820002,
"D2",
2.3180001,
"D3",
1.85,
"D4",
1.65,
"D5",
1.45
};
TransmissionRatios[]=
{
"High",
5.539
};
gearBoxMode="auto";
moveOffGear=1;
driveString="D";
neutralString="N";
reverseString="R";
};
simulation="carx"; // Tipo de simulação a ser utilizada pelo PhysX.
dampersBumpCoef=6; // Reação dos amortecedores à imperfeições do terreno.
differentialType="all_limited"; // Tipos de diferenciais.
frontRearSplit=0.5; // Taxa de distribuiçãom de torque entre as rodas dianteiras e traseiras (Usado para "all_limited" e "all_open")
frontBias=1.3; // Parâmetros de diferencial.
rearBias=1.3; // Parâmetros de diferencial.
centreBias=1.3; // Parâmetros de diferencial.
clutchStrength=20; // Parâmetros de diferencial.
enginePower=280; // Potência do motor em kW.
idleRpm=800; // RPM do motor quando em "ponto morto"
redRpm=4500; // RPM máxima do motor.
maxOmega=471; // Velocidade rotacional máxima do motor em rad/s. Expresso por - (redRPM*2*Pi)/60
peakTorque=1253; // Torque máximo do motor.
dampingRateFullThrottle=0.079999998; // Parâmetros de embreagem, caixa de marchas e etc...
dampingRateZeroThrottleClutchEngaged=2; // Parâmetros de embreagem, caixa de marchas e etc...
dampingRateZeroThrottleClutchDisengaged=0.34999999; // Parâmetros de embreagem, caixa de marchas e etc...
torqueCurve[]=
{
{0,0},
{0.178,0.5},
{0.25,0.85000002},
{0.40000001,0.89999998},
{0.5,1},
{0.72500002,0.94999999},
{0.85000002,0.60000002},
{1,0.30000001}
};
changeGearMinEffectivity[]=
{
0.94999999,
0.15000001,
0.94999999,
0.94999999,
0.94999999,
0.94999999,
0.94999999
};
switchTime=0.31; // Tempo de troca de marchas.
latency=1; //
class Wheels
{
class LF
{
side="left"; // Lado da roda.
suspTravelDirection[]={-0.125,-1,0}; // Direção de translação da suspensão.
boneName="wheel_1_1"; // Nome da seleção da roda.
steering=1; // Direção (0-Não, 1-Sim).
center="wheel_1_1_axis"; // Ponto central da roda.
boundary="wheel_1_1_bound"; // Limite inferior da roda.
width="0.35"; // Largura da roda.
mass=200; // Massa da roda.
MOI=32.5; // Momento de inercia da roda: (0.5*massa*raio_da_roda^2).
dampingRate=0.1; //
dampingRateDamaged=1; //
dampingRateDestroyed=1000; //
maxBrakeTorque=22500; //
maxHandBrakeTorque=0; //
suspForceAppPointOffset="wheel_1_1_axis"; //
tireForceAppPointOffset="wheel_1_1_axis"; //
maxCompression=0.05; // O quanto a roda sobe no eixo da suspensão.
maxDroop=0.1; // O quanto a roda desce no eixo da suspensão.
sprungMass=1500; // Massa sustentada pela roda. (mV - mR) / numero de rodas.
springStrength=37500; // Força da mola: sprungMass*5*5.
springDamperRate=6000; // Taxa de amorteciemento da mola: 0.4*2*sqrt(springStrength*sprungMass).
longitudinalStiffnessPerUnitGravity=5000; //
latStiffX=25; //
latStiffY=180; //
frictionVsSlipGraph[]= //
{
{0,1},
{0.5,1},
{1,1}
};
};
class LR: LF
{
boneName="wheel_1_2";
steering=0;
center="wheel_1_2_axis";
boundary="wheel_1_2_bound";
suspForceAppPointOffset="wheel_1_2_axis";
tireForceAppPointOffset="wheel_1_2_axis";
maxHandBrakeTorque=275000;
};
class RF: LF
{
side="right";
suspTravelDirection[]={0.125,-1,0};
boneName="wheel_2_1";
center="wheel_2_1_axis";
boundary="wheel_2_1_bound";
suspForceAppPointOffset="wheel_2_1_axis";
tireForceAppPointOffset="wheel_2_1_axis";
};
class RR: RF
{
boneName="wheel_2_2";
steering=0;
center="wheel_2_2_axis";
boundary="wheel_2_2_bound";
suspForceAppPointOffset="wheel_2_2_axis";
tireForceAppPointOffset="wheel_2_2_axis";
maxHandBrakeTorque=275000;
};
};
//////////////////////////////////////////////// Diversos
enableRadio=1; // Veículo possui radio (0-Não, 1-Sim).
enableGPS=1; // Veículo possui GPS (0-Não, 1-Sim).
extCameraPosition[]={0,2.2,-8}; // Posição da câmera (x,y,z).
#include "LMV_Intercom.hpp"
//////////////////////////////////////////////// Itens carregados pelo veículo
class TransportBackpacks // Mochilas presentes no inventário do veículo quando ele é colocado em jogo.
{
class _xx_BRAF_Alice_bag // _xx_nome_da_mochila.
{
backpack="BRAF_Alice_bag"; // "Class name" da mochila.
count=5; // Quantidade.
};
};
transportMaxBackpacks=5; // Máximo de mochilas transportadas.
class TransportMagazines // Tipos de magazines transportados.
{
class _xx_BRAF_20Rnd_762x51
{
magazine="BRAF_20Rnd_762x51";
count=12;
};
class _xx_BRAF_30Rnd_556x45
{
magazine="BRAF_30Rnd_556x45";
count=12;
};
class _xx_HandGrenade
{
magazine="HandGrenade";
count=6;
};
class _xx_1Rnd_HE_Grenade_shell
{
magazine="1Rnd_HE_Grenade_shell";
count=6;
};
class _xx_1Rnd_Smoke_Grenade_shell
{
magazine="1Rnd_Smoke_Grenade_shell";
count=4;
};
class _xx_SmokeShell
{
magazine="SmokeShell";
count=6;
};
class _xx_SmokeShellGreen
{
magazine="SmokeShellGreen";
count=6;
};
class _xx_SmokeShellOrange
{
magazine="SmokeShellOrange";
count=6;
};
class _xx_SmokeShellBlue
{
magazine="SmokeShellBlue";
count=6;
};
};
class TransportItems // Tipos de Itens transportados.
{
class _xx_FirstAidKit
{
name="FirstAidKit";
count=12;
};
class _xx_MediKit
{
name = "MediKit";
count = 1;
};
class _xx_Toolkit
{
name="Toolkit";
count=1;
};
class _xx_ItemGPS
{
name="ItemGPS";
count=1;
};
};
class TransportWeapons // Tipos de Armas transportadas.
{
class _xx_arifle_MX_F
{
weapon="arifle_MX_F";
count=2;
};
};
crew="braf_army_rifleman_regular_2020";
typicalCargo[]=
{
"braf_army_rifleman_regular_2020",
"braf_army_rifleman_regular_2020",
"braf_army_rifleman_regular_2020"
};
//////////////////////////////////////////////// SlingLoad & Cargo
slingLoadCargoMemoryPoints[]=
{
"SlingLoadCargo1", // Pontos de fixação dos cabos.
"SlingLoadCargo2", // Pontos de fixação dos cabos.
"SlingLoadCargo3", // Pontos de fixação dos cabos.
"SlingLoadCargo4" // Pontos de fixação dos cabos.
};
class VehicleTransport // Habilidade de ser transportado dentro de outro veículo.
{
class Cargo
{
parachuteClass="B_Parachute_02_F"; // Tipo de paraquedas.
parachuteHeightLimit=100; // Altura mínima de lançamento.
canBeTransported=1; // Pode ser transportado (0-Não, 1-Sim).
dimensions[]=
{
"BBox_1_1_pos", // Ponto inferior esquerdo frontal
"BBox_1_2_pos" // Ponto superior direito traseiro
};
};
};
////////////////////////////////////////////////
class EventHandlers: EventHandlers
{
init="if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};";
};
occludeSoundsWhenIn=1;
obstructSoundsWhenIn=1;
insideSoundCoef=0.9;
#include "LMV_Sounds.hpp"
#include "\braf\braf_armored\functions\identification_decals.hpp"
};
class BRAF_LMV_Armed_base: BRAF_LMV_base
{
_generalMacro="BRAF_LMV_Armed_base";
displayName="$STR_braf_iveco_lmv_remax";
picture="braf\braf_armored\BRAF_LMV\Data\UI\LMV_RCWS_ca.paa";
unitInfoType="RscUnitInfoTank";
transportSoldier=3;
cost=600000;
class Library // Texto descrevendo algo sobre o veículo.
{
libTextDesc="$STR_braf_iveco_lmv_remax_description";
};
weapons[]=
{
"TruckHorn2"
};
magazines[]={};
smokeLauncherGrenadeCount=4;
smokeLauncherVelocity=14;
smokeLauncherOnTurret=1;
smokeLauncherAngle=120;
threat[]={0.80000001,0.60000002,0.30000001};
class compartmentsLights // Luzes internas de cabine.
{
class Comp1 // Parâmetros de luz do compartimento 1.
{
class Light1 // Mesma coisa descrita em reflectors.
{
color[]={50,0,0};
ambient[]={5,0,0};
intensity=0.75;
size=1;
innerAngle=15;
outerAngle=150;
coneFadeCoef=1;
useFlare=1;
flareSize=0.1;
flareMaxDistance=1;
dayLight=1;
class Attenuation
{
start=0;
constant=0;
linear=1;
quadratic=1;
hardLimitStart=0.75;
hardLimitEnd=1;
};
point="Cabin_Light_Front"; // Ponto onde a luz aparece.
};
class Light2: Light1
{
point="Cabin_Light_Back";
color[]={50,0,0};
ambient[]={5,0,0};
};
class Light3: Light1
{
point="Screen_Light";
color[]={1,1,1};
ambient[]={1,1,1};
intensity=1.5;
};
};
};
class RenderTargets: RenderTargets
{
class Remax_display
{
renderTarget="rendertarget0";
class CameraView1
{
pointPosition="rendertarget0_pos";
pointDirection="rendertarget0_dir";
renderVisionMode=2;
renderQuality=2;
fov=0.69999999;
turret[]={0};
};
BBoxes[]=
{
"PIP_0_TL",
"PIP_0_TR",
"PIP_0_BL",
"PIP_0_BR"
};
};
class Mirrors_Left
{
renderTarget="rendertarget1"; // Seleção de faces onde o PiP será renderizado.
class CameraView1 // Posição da câmera.
{
pointPosition="rendertarget1_pos"; // Ponto da câmera.
pointDirection="rendertarget1_dir"; // Direção da câmera.
renderVisionMode=4; // Modo de renderização - 0 = HDR, 1 = NVG, 2 = TI, 3 = Cor, 4 = Espelho.
renderQuality=2; // Qualidade de renderização. (Varia de 0 a 2)
fov=0.69999999; // Ângulo de abertura da câmera.
//turret[]={}; // Torre em que a tela está sincronizada.
};
BBoxes[]=
{
"PIP_1_TL", // Pontos limites de renderização do PiP.
"PIP_1_TR", // Pontos limites de renderização do PiP.
"PIP_1_BL", // Pontos limites de renderização do PiP.
"PIP_1_BR" // Pontos limites de renderização do PiP.
};
};
class Mirrors_Right
{
renderTarget="rendertarget2";
class CameraView1
{
pointPosition="rendertarget2_pos";
pointDirection="rendertarget2_dir";
renderVisionMode=4;
renderQuality=2;
fov=0.69999999;
};
BBoxes[]=
{
"PIP_2_TL",
"PIP_2_TR",
"PIP_2_BL",
"PIP_2_BR"
};
};
};
class AnimationSources: AnimationSources
{
class Gun_Flash_Rot
{
source="ammorandom";
weapon="BRAF_REMAX_M2";
};
class Gun_Recoil
{
source="reload";
weapon="BRAF_REMAX_M2";
};
};
animationList[]=
{
"Armed_Hide",1,
"Bumper_1",1,
"Bumper_2",0,
"Step_Hide",1,
"Step",1,
"Jerry_Hide",0,
"Smoke_Hide",1,
"showCamonetHull",0
};
class Components: Components
{
class SensorsManagerComponent
{
class Components
{
class IRSensorComponent: SensorTemplateIR
{
class AirTarget
{
minRange=500;
maxRange=3000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=1;
};
class GroundTarget
{
minRange=500;
maxRange=2000;
objectDistanceLimitCoef=1;
viewDistanceLimitCoef=1;
};
maxTrackableSpeed=28;
angleRangeHorizontal=50;
angleRangeVertical=36;
animDirection="mainGun";
};
class VisualSensorComponent: SensorTemplateVisual
{
class AirTarget
{
minRange=500;
maxRange=3000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=1;
};
class GroundTarget
{
minRange=500;
maxRange=2000;
objectDistanceLimitCoef=1;
viewDistanceLimitCoef=1;
};
maxTrackableSpeed=28;
angleRangeHorizontal=50;
angleRangeVertical=36;
animDirection="mainGun";
};
class LaserSensorComponent: SensorTemplateLaser
{
};
class NVSensorComponent: SensorTemplateNV
{
};
};
};
class VehicleSystemsDisplayManagerComponentLeft: DefaultVehicleSystemsDisplayManagerLeft
{
class Components: components
{
class VehiclePrimaryGunnerDisplay
{
componentType="TransportFeedDisplayComponent";
source="PrimaryGunner";
};
};
};
class VehicleSystemsDisplayManagerComponentRight: DefaultVehicleSystemsDisplayManagerRight
{
class Components: components
{
class VehiclePrimaryGunnerDisplay
{
componentType="TransportFeedDisplayComponent";
source="PrimaryGunner";
};
};
};
};
class Turrets: Turrets
{
class BRAF_MainTurret: MainTurret
{
body="mainTurret";
gun="mainGun";
gunBeg="gunBeg";
gunEnd="gunEnd";
weapons[]=
{
"BRAF_REMAX_M2",
"Laserdesignator_mounted"
};
magazines[]=
{
"BRAF_150Rnd_127x99_M",
"BRAF_150Rnd_127x99_M",
"BRAF_150Rnd_127x99_M",
"BRAF_150Rnd_127x99_M",
"SmokeLauncherMag",
"SmokeLauncherMag",
"Laserbatteries"
};
soundServo[]=
{
"A3\Sounds_F\vehicles\soft\noises\servo_turret_MRAP01",
0.17782794,
1,
10
};
soundServoVertical[]=
{
"A3\Sounds_F\vehicles\soft\noises\servo_turret_MRAP01",
0.17782794,
1,
10
};
gunnerAction="braf_lmv_gunner";
LODOpticsIn=1;
viewGunnerInExternal=1;
castGunnerShadow=1;
stabilizedInAxes=3;
animationSourceStickX="mainTurret";
animationSourceStickY="mainGun";
gunnerLeftHandAnimName="Stick_L";
gunnerRightHandAnimName="Stick_R";
memoryPointGunnerOptics="rendertarget0_dir";
gunnerOpticsModel="braf\braf_armored\BRAF_Optics_Armored\REMAX\BRAF_remax_gunner_w.p3d";
discreteDistance[]={100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000};
discreteDistanceInitIndex=2;
selectionFireAnim="zasleh";
turretInfoType="BRAF_RscOptics_REMAX";
usePip=1;
minElev=-22.5;
initElev=0;
maxElev=45;
class ViewOptics: RCWSOptics
{
};
class ViewGunner: ViewGunner
{
initFov=0.89999998;
minFov=0.25;
maxFov=1.25;
initAngleX=-5;
};
class OpticsIn: BRAF_REMAX_Gunner_Optics
{
class Wide: Wide
{
};
class Medium: Medium
{
};
};
class HitPoints: HitPoints
{
class HitTurret
{
armor=-250;
material=-1;
armorComponent="mainTurret";
name="hit_mainTurret";
visual="mainTurret";
passThrough=0;
minimalHit=0.029999999;
explosionShielding=0.40000001;
radius=0.25;
isTurret=1;
};
class HitGun
{
armor=-250;
material=-1;
armorComponent="mainGun";
name="hit_mainGun";
visual="mainGun";
passThrough=0;
minimalHit=0.029999999;
explosionShielding=0.2;
radius=0.2;
isGun=1;
};
};
gunnerDoor="";
class MFD
{
class MFD_1
{
topLeft="MFD_1_TL";
topRight="MFD_1_TR";
bottomLeft="MFD_1_BL";
borderLeft=0;
borderRight=0;
borderTop=0;
borderBottom=0;
color[]={0.83999997,0.86000001,0.83999997};
alpha=1;
enableParallax=0;
font="RobotoCondensedLight";
class Bones
{
};
class Draw
{
color[]={1,0,0,1};
alpha=0.5;
class Driver_Heading
{
type="text";
source="[x]turretworld";
sourceScale=1;
sourceLength=3;
scale=1;
align="center";
refreshRate=0.079999998;
pos[]=
{
{0.18000001,0.88999999},
1
};
right[]=
{
{0.25,0.88999999},
1
};
down[]=
{
{0.18000001,0.95999998},
1
};
};
class Range_Text
{
type="text";
source="static";
text="RANGE:";
scale=1;
sourceScale=1;
align="right";
pos[]=
{
{0.51499999,0.69},
1
};
right[]=
{
{0.55500001,0.69},
1
};
down[]=
{
{0.51499999,0.73000002},
1
};
};
class Range_Value
{
type="text";
source="laserDist";
sourceScale=1;
sourceLength=3;
scale=1;
align="right";
refreshRate=0.079999998;
pos[]=
{
{0.62,0.69},
1
};
right[]=
{
{0.66000003,0.69},
1
};
down[]=
{
{0.62,0.73000002},
1
};
};
class Mode_Text
{
type="text";
source="static";
text="MODE:";
scale=1;
sourceScale=1;
align="right";
pos[]=
{
{0.51499999,0.73000002},
1
};
right[]=
{
{0.55500001,0.73000002},
1
};
down[]=
{
{0.51499999,0.76999998},
1
};
};
class Mode_Value
{
type="text";
source="static";
text="TI WHOT";
sourceScale=1;
sourceLength=3;
scale=1;
align="right";
refreshRate=0.079999998;
pos[]=
{
{0.62,0.73000002},
1
};
right[]=
{
{0.66000003,0.73000002},
1
};
down[]=
{
{0.62,0.76999998},
1
};
};
};
};
};
};
};
};
class BRAF_LMV_EB: BRAF_LMV_base
{
forceInGarage=1;
editorPreview="\braf\braf_insignia\editorpreview\armored\BRAF_LMV_EB.jpg";
_generalMacro="BRAF_LMV_EB";
scope=2;
scopeArsenal=2;
scopeCurator=2;
side=2;
unitInfoType="RscUnitInfoNoWeapon";
textureList[]=
{
"EB_01",
1
};
};
class BRAF_LMV_EB_RCWS: BRAF_LMV_Armed_base
{
forceInGarage=1;
editorPreview="\braf\braf_insignia\editorpreview\armored\BRAF_LMV_EB_RCWS.jpg";
_generalMacro="BRAF_LMV_EB_RCWS";
scope=2;
scopeArsenal=2;
scopeCurator=2;
side=2;
textureList[]=
{
"EB_01",
1
};
};