Chairborne 2594 Posted July 6, 2014 (edited) I've been scratching my head over this for a month now with no success. The problem is that i can't get the damage/rust textures to show over my vehicle in game when damaged or destroyed. Basically i get all the animations and explosion effects but the hull is untouched as if nothing happened. I was told that the RVMATs needed to be substantially different and to use the data from any of the A3 vehicles. Now i'm at a point where the RVMATs are almost identical to the ones from A3 but the textures are still not working correctly so it got me thinking the problem might be somewhere else. I looked into the sample models but couldn't get anything useful. Here's the config: basicdefines.hpp: #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 true 1 #define false 0 #define VSoft 0 #define VArmor 1 #define VAir 2 // type scope #define private 0 #define protected 1 #define public 2 #define CanSeeRadar 1 #define CanSeeEye 2 #define CanSeeOptics 4 #define CanSeeEar 8 #define CanSeeCompass 16 #define CanSeeRadarC CanSeeRadar+CanSeeCompass #define CanSeeAll 31 #define ReadAndWrite 0 //! any modifications enabled #define ReadAndCreate 1 //! only adding new class members is allowed #define ReadOnly 2 //! no modifications enabled #define ReadOnlyVerified 3 //! no modifications enabled, CRC test applied #define LockNo 0 #define LockCadet 1 #define LockYes 2 #define WeaponNoSlot 0 // dummy weapons #define WeaponSlotPrimary 1 // primary weapons #define WeaponSlotSecondary 4 // secondary weapons #define WeaponSlotHandGun 2 // HandGun #define WeaponSlotHandGunItem 16 // HandGun magazines #define WeaponSlotItem 256 // items #define WeaponSlotBinocular 4096 // binocular #define WeaponHardMounted 65536 #define SPEED_STATIC 1e10 #define NEVER_DESTROY 1000 // for MP - destroying dead bodies #define TracerEColor 0.2,0.8,0.1 #define TracerWColor 0.8,0.5,0.1 #define TracerGColor 0.7,0.7,0.5 #define TracerNColor 0,0,0 // used for sniper / silenced rifles #define TracerEColorF {TracerEColor,0.040} #define TracerWColorF {TracerWColor,0.040} #define TracerGColorF {TracerGColor,0.040} #define TracerNColorF {TracerNColor,0.005} #define TracerSEColorF {TracerEColor,0.25} #define TracerSWColorF {TracerWColor,0.25} #define TRACER_W_ALWAYS tracerColor[]=TracerWColorF;tracerColorR[]=TracerWColorF #define TRACER_W_OPTIONAL tracerColor[]=TracerWColorF;tracerColorR[]=TracerNColorF #define TRACER_W_STRONG tracerColor[]=TracerSWColorF;tracerColorR[]=TracerSWColorF #define TRACER_E_ALWAYS tracerColor[]=TracerEColorF;tracerColorR[]=TracerEColorF #define TRACER_E_OPTIONAL tracerColor[]=TracerEColorF;tracerColorR[]=TracerNColorF #define TRACER_E_STRONG tracerColor[]=TracerSEColorF;tracerColorR[]=TracerSEColorF #define TRACER_G_ALWAYS tracerColor[]=TracerGColorF;tracerColorR[]=TracerGColorF #define TRACER_G_OPTIONAL tracerColor[]=TracerGColorF;tracerColorR[]=TracerNColorF #define TRACER_N_ALWAYS tracerColor[]=TracerNColorF;tracerColorR[]=TracerNColorF #define LockNo 0 #define LockCadet 1 #define LockYes 2 enum {StabilizedInAxesNone,StabilizedInAxisX,Stabilized InAxisY,StabilizedInAxesBoth}; config.cpp: #include "basicdefines.hpp" #include "CrewAnimations.hpp" #define VIEW_GUNNER 1000 #define VIEW_PILOT 1100 #define VIEW_CARGO 1200 enum { destructengine = 2, destructdefault = 6, destructwreck = 7, destructtree = 3, destructtent = 4, stabilizedinaxisx = 1, stabilizedinaxesxyz = 4, stabilizedinaxisy = 2, stabilizedinaxesboth = 3, destructno = 0, stabilizedinaxesnone = 0, destructman = 5, destructbuilding = 1 }; class CfgPatches { class Cha_LAV25 { units[] = {"LAV25","LAV25_HQ"}; weapons[] = {}; requiredVersion = 0.10; requiredAddons[] = {}; }; }; class DefaultEventHandlers; class WeaponFireGun; class WeaponCloudsGun; class WeaponFireMGun; class WeaponCloudsMGun; class CfgVehicles { class Car; class Car_F: Car { class Sounds; class HitPoints { class HitLFWheel; class HitLBWheel; class HitLMWheel; class HitLF2Wheel; class HitRFWheel; class HitRBWheel; class HitRMWheel; class HitRF2Wheel; class HitBody; }; class NewTurret; class Turrets { class MainTurret:NewTurret { class HitPoints; class RCWSOptics; }; }; class ViewPilot; }; class Wheeled_APC_F : Car_F { class Sounds: Sounds { class Engine; class Movement; }; class AnimationSources; class EventHandlers; }; class LAV25_Base: Wheeled_APC_F { side= 1; faction = USMC; model = "\Cha\Cha_LAV25\LAV25"; displayName = "LAV-25A1"; attenuationEffectType = "TankAttenuation"; class Library {libTextDesc = $STR_LIB_LAV25;}; vehicleClass = "Armored"; picture="\Cha\Cha_Lav25\Data\UI\Picture_LAV25_CA.p aa"; Icon="\Cha\Cha_Lav25\Data\UI\Icon_LAV25_CA.paa"; mapSize = 7; radarType = 4; canFloat=true; waterangulardampingcoef = 5.0;//10; waterresistance = 5;//9; waterPPInVehicle = 0; waterResistanceCoef = 0.5; engineShiftY = 1.05; armorLights = 0.1; armorStructural = 12; fuelCapacity = 300; unitInfoType = RscUnitInfoTank; hideProxyInCombat = 1; //threat[] VSoft, VArmor, VAir threat[]={0.5, 0.5, 0.5}; armor = 150; damageResistance = 0.02432; class HitPoints : HitPoints { class HitEngine { armor=2; material=-1; name="motor"; visual=""; passThrough=0.5; //passthrough }; class HitFuel { armor=1; material=-1; name="palivo"; visual=""; passThrough=0; }; class HitLFWheel: HitLFWheel { armor = 0.5; minimalHit = 0.02; explosionShielding = 4; radius = 0.25; }; class HitLBWheel: HitLBWheel { armor = 0.5; minimalHit = 0.02; explosionShielding = 4; radius = 0.25; }; class HitLMWheel: HitLMWheel { armor = 0.5; minimalHit = 0.02; explosionShielding = 4; radius = 0.25; }; class HitLF2Wheel: HitLF2Wheel { armor = 0.5; minimalHit = 0.02; explosionShielding = 4; radius = 0.25; }; class HitRFWheel: HitRFWheel { armor = 0.5; minimalHit = 0.02; explosionShielding = 4; radius = 0.25; }; class HitRBWheel: HitRBWheel { armor = 0.5; minimalHit = 0.02; explosionShielding = 4; radius = 0.25; }; class HitRMWheel: HitRMWheel { armor = 0.5; minimalHit = 0.02; explosionShielding = 4; radius = 0.25; }; class HitRF2Wheel: HitRF2Wheel { armor = 0.5; minimalHit = 0.02; explosionShielding = 4; radius = 0.25; }; class HitBody { armor=1; material=51; name="zbytek"; visual=""; passThrough=1; }; }; class Damage { tex[]={}; mat[]= { "Cha\Cha_LAV25\Data\lav_glass_green.rvmat", "Cha\Cha_LAV25\Data\lav_glass_green_damage.rvm at", "Cha\Cha_LAV25\Data\lav_glass_green_destruct.rvmat ", "Cha\Cha_LAV25\Data\lav_glass_red.rvmat", "Cha\Cha_LAV25\Data\lav_glass_red_damage.rvmat ", "Cha\Cha_LAV25\Data\lav_glass_red_destruct.rvm at", "Cha\Cha_LAV25\Data\lav_hq.rvmat", "Cha\Cha_LAV25\Data\lav_hq_damage.rvmat", "Cha\Cha_LAV25\Data\lav_hq_destruct.rvmat", "Cha\Cha_LAV25\Data\lav_int_0.rvmat", "Cha\Cha_LAV25\Data\lav_int_0_damage.rvmat", "Cha\Cha_LAV25\Data\lav_int_0_destruct.rvmat", "Cha\Cha_LAV25\Data\lav_int_1.rvmat", "Cha\Cha_LAV25\Data\lav_int_1_damage.rvmat", "Cha\Cha_LAV25\Data\lav_int_1_destruct.rvmat", "Cha\Cha_LAV25\Data\lav_int_2.rvmat", "Cha\Cha_LAV25\Data\lav_int_2_damage.rvmat", "Cha\Cha_LAV25\Data\lav_int_2_destruct.rvmat", "Cha\Cha_LAV25\Data\lavalfa.rvmat", "Cha\Cha_LAV25\Data\lavalfa_damage.rvmat", "Cha\Cha_LAV25\Data\lavalfa_destruct.rvmat", "Cha\Cha_LAV25\Data\lavbody.rvmat", "Cha\Cha_LAV25\Data\lavbody_damage.rvmat", "Cha\Cha_LAV25\Data\lavbody_destruct.rvmat", "Cha\Cha_LAV25\Data\lavbody2.rvmat", "Cha\Cha_LAV25\Data\lavbody2_damage.rvmat", "Cha\Cha_LAV25\Data\lavbody2_destruct.rvmat" }; }; hiddenSelections[] = { "Camo1", "Camo2", "clan", "clan_sign" }; hiddenSelectionsTextures[] = { "\Cha\Cha_LAV25\data\lavbody_co.paa", "\Cha\Cha_LAV25\data\lavbody2_co.paa", "", "" }; insideSoundCoef = 0.9; soundGear[]={"",db-85,1}; soundGetIn[]={"A3\sounds_f\vehicles\armor\noises\get_in_out",d b0,1}; soundGetOut[]={"A3\sounds_f\vehicles\armor\noises\get_in_out",d b0,1, 50}; soundEngineOnInt[] = {"A3\Sounds_F\vehicles\armor\APC\APC1\int_engine_s tart", db0, 1.0}; soundEngineOnExt[] = {"A3\Sounds_F\vehicles\armor\APC\APC1\ext_engine_s tart", db0, 1.0, 300}; soundEngineOffInt[] ={"A3\Sounds_F\vehicles\armor\APC\APC1\int_engine_ stop", db0, 1.0}; soundEngineOffExt[] ={"A3\Sounds_F\vehicles\armor\APC\APC1\ext_engine_ stop", db0, 1.0, 300}; buildCrash0[]={"A3\sounds_f\Vehicles\crashes\crash_08", db-3, 1,150}; buildCrash1[]={"A3\sounds_f\Vehicles\crashes\crash_09", db-3, 1,150}; buildCrash2[]={"A3\sounds_f\Vehicles\crashes\crash_10", db-3, 1,150}; buildCrash3[]={"A3\sounds_f\Vehicles\crashes\crash_11", db-3, 1,150}; soundBuildingCrash[]={"buildCrash0", 0.25, "buildCrash1", 0.25, "buildCrash2", 0.25, "buildCrash3", 0.25}; WoodCrash0[] = {"A3\sounds_f\Vehicles\crashes\crash_08",1.0,1,150 }; WoodCrash1[] = {"A3\sounds_f\Vehicles\crashes\crash_09",1.0,1,150 }; WoodCrash2[] = {"A3\sounds_f\Vehicles\crashes\crash_10",1.0,1,150 }; WoodCrash3[] = {"A3\sounds_f\Vehicles\crashes\crash_11",1.0,1,150 }; WoodCrash4[] = {"A3\sounds_f\Vehicles\crashes\crash_01",1.0,1,150 }; WoodCrash5[] = {"A3\sounds_f\Vehicles\crashes\crash_08",1.0,1,150 }; soundWoodCrash[] = {"woodCrash0",0.166,"woodCrash1",0.166,"woodCrash2 ",0.166,"woodCrash3",0.166,"woodCrash4",0.166,"woo dCrash5",0.166}; ArmorCrash0[] = {"A3\sounds_f\Vehicles\crashes\crash_08",1.0,1,150 }; ArmorCrash1[] = {"A3\sounds_f\Vehicles\crashes\crash_09",1.0,1,150 }; ArmorCrash2[] = {"A3\sounds_f\Vehicles\crashes\crash_10",1.0,1,150 }; ArmorCrash3[] = {"A3\sounds_f\Vehicles\crashes\crash_11",1.0,1,150 }; soundArmorCrash[] = {"ArmorCrash0",0.25,"ArmorCrash1",0.25,"ArmorCrash 2",0.25,"ArmorCrash3",0.25}; class SoundEvents { class AccelerationIn { sound[] = {"A3\Sounds_F\vehicles\armor\APC\APC1\int_exhaust_ 03", db0, 1.0}; limit = "0.15"; expression = "engineOn*(1-camPos)*2*gmeterZ*((speed factor[1.5, 5]) min (speed factor[5, 1.5]))"; }; class AccelerationOut { sound[] = {"A3\Sounds_F\vehicles\armor\APC\APC1\ext_exhaust_ 03", db0, 1.0, 350}; limit = "0.15"; expression = "engineOn*camPos*2*gmeterZ*((speed factor[1.5, 5]) min (speed factor[5, 1.5]))"; }; }; class Sounds { //cut... }; waterLeakiness = 2.5; turnCoef=4.0; steerAheadSimul=0.6; steerAheadPlan=0.4; enableGPS = true; commanderCanSee = 31; //See all gunnerCanSee = 30; // driverCanSee = 31; forceHideDriver = false; gunnerHasFlares = true; weapons[]={"TruckHorn3"}; magazines[]={}; driverForceOptics = 1; driverOpticsModel = "\a3\weapons_f\reticle\Optics_Driver_01_F"; memoryPointdriverOptics="driverview"; class ViewOptics { visionMode[] = {"Normal","NVG"}; initAngleX=0; minAngleX=-30; maxAngleX=+30; initAngleY=0; minAngleY=-100; maxAngleY=+100; initFov=0.466; minFov=0.466; maxFov=0.466; }; // internal camera viewing limitations class ViewPilot { initAngleX=10; minAngleX=-65; maxAngleX=+85; //Rg 30; initAngleY=20; minAngleY=-150; maxAngleY=+150; //Rg 100; initFov=0.7; minFov=0.25; maxFov=1.4; }; class Turrets: Turrets { class MainTurret: MainTurret { // TODO proper Weapons (M242 25mm gun + M240C 7.62mm) weapons[]={"autocannon_40mm_CTWS","LMG_M200"}; magazines[]={"60Rnd_40mm_GPR_Tracer_Red_shells","40Rnd_40mm_A PFSDS_Tracer_Red_shells","2000Rnd_65x39_belt"}; soundServo[]={"A3\sounds_f\dummysound",db-35,1.0,15}; minElev=-10; maxElev=+60; initElev=20; minTurn=-360; maxTurn=+360; gunnerAction = "LAV25_Gunner_out"; gunnerInAction = "LAV25_Gunner"; forceHideGunner = false; gunnerOpticsModel = "\A3\weapons_f\reticle\Optics_Gunner_02_F"; discreteDistance[] = {100,200,300,400,500,600,700,800,900,1000,1100,120 0,1300,1400,1500}; discreteDistanceInitIndex = 2; turretInfoType = "RscWeaponRangeZeroing"; gunnerOutOpticsModel = ""; memoryPointGun = "machinegun"; // selectionFireAnim = "zasleh_1"; gunBeg = "muzzle_1"; gunEnd = "chamber_1"; particlesdir= "muzzle_1"; particlespos= "chamber_1"; missileBeg = "muzzle_1"; missileEnd = "chamber_1"; body = "MainTurret"; gun = "MainGun"; animationSourceBody = "MainTurret"; animationSourceGun = "MainGun"; gunnerForceOptics = true; outGunnerMayFire = 0; startEngine = 1; primaryGunner = 4; class ViewOptics: RCWSOptics { visionMode[] = {"Normal","TI"}; thermalMode[] = {2,3}; initAngleX=0; minAngleX=-30; maxAngleX=+30; initAngleY=0; minAngleY=-100; maxAngleY=+100; initFov=0.200; minFov=0.050; maxFov=0.200; }; class OpticsIn { class Wide: ViewOptics { initFov = 0.234; minFov = 0.234; maxFov = 0.234; gunnerOpticsModel = "\a3\weapons_f\reticle\Optics_Gunner_01_wide_F "; }; class Narrow: Wide { initFov = 0.07; minFov = 0.07; maxFov = 0.07; gunnerOpticsModel = "\a3\weapons_f\reticle\Optics_Gunner_01_narrow _F"; }; }; class HitPoints : HitPoints { class HitTurret {armor=0.8;material=-1;name="vez";visual="vez";passThrough=1;}; }; selectionFireAnim = "zasleh_1"; class ViewGunner { initAngleX=5; minAngleX=-65; maxAngleX=+85; //Rg 30; initAngleY=0; minAngleY=-150; maxAngleY=+150; //Rg 100; initFov=0.7; minFov=0.25; maxFov=1.1; }; class Turrets { class CommanderOptics: NewTurret { proxyType = CPCommander; proxyIndex = 1; gunnerName = $STR_POSITION_COMMANDER; primaryGunner = 0; primaryObserver = 1; gunnerOpticsShowCursor=0; body = "obsTurret"; gun = "obsGun"; animationSourceBody = "obsTurret"; animationSourceGun = "obsGun"; animationSourceHatch = "hatchCommander"; soundServo[] = {"", db-50, 1.0}; startEngine = 0; gunBeg = ""; //gunBeg = endpoint of the gun gunEnd = ""; //gunEnd = chamber of the gun minElev=-4; maxElev=+20; initElev=0; minTurn=-360; maxTurn=+360; initTurn=0; commanding = 2; viewGunnerInExternal = 0; gunnerOpticsModel = "\A3\weapons_f\reticle\Optics_Commander_02_F"; gunnerOutOpticsModel = ""; gunnerOutOpticsColor[] = {0, 0, 0, 1}; gunnerOutForceOptics = false; gunnerOutOpticsShowCursor = false; memoryPointGunnerOutOptics = "commander_weapon_view"; memoryPointGunnerOptics= "commanderview"; memoryPointsGetInGunner= "pos driver"; memoryPointsGetInGunnerDir= "pos driver dir"; class ViewGunner { visionMode[] = {"Normal","NVG","TI"}; thermalMode[] = {2,3}; initAngleX=5; minAngleX=-65; maxAngleX=+85; //Rg 30; initAngleY=0; minAngleY=-150; maxAngleY=+150; //Rg 100; initFov=0.7; minFov=0.25; maxFov=1.1; }; gunnerOpticsEffect[] = {"TankGunnerOptics2","OpticsBlur1","OpticsCHAbera1 "}; class ViewOptics { initAngleX=0; minAngleX=-30; maxAngleX=+30; initAngleY=0; minAngleY=-100; maxAngleY=+100; initFov=0.300; minFov=0.025; maxFov=0.300; }; gunnerInAction = "LAV25_Commander"; gunnerAction = "LAV25_Commander_out"; outGunnerMayFire = true; weapons[] = {"SmokeLauncher"}; magazines[] = {"SmokeLauncherMag","SmokeLauncherMag"}; stabilizedInAxes = 0; }; }; }; }; crew = "B_crew_F"; transportSoldier = 6; typicalCargo[]={"B_crew_F","B_crew_F","B_crew_F"}; DriverAction = "LAV25_Driver_OUT"; driverInAction = "LAV25_Driver_OUT"; cargoAction[] = {"passenger_apc_narrow_generic02","passenger_apc_n arrow_generic01","passenger_apc_narrow_generic03", "passenger_apc_generic03","passenger_apc_generic02 ","passenger_generic01_foldhands","passenger_apc_n arrow_generic01","passenger_apc_narrow_generic02"} ; viewCargoShadow = true; viewCargoShadowDiff = 0.05; viewDriverShadowDiff = 0.05; viewGunnerShadowDiff = 0.05; transportAmmo = 100; supplyRadius = 1.7; transportMaxMagazines = 100; transportMaxWeapons = 10; //For smoke launchers smokeLauncherGrenadeCount=8; //Number of smoke shells launched at once smokeLauncherVelocity=14; //Velocity which smoke shells are launched at smokeLauncherOnTurret=1; //0 if smoke launchers are on hull, 1 if on turret smokeLauncherAngle=90; //Angle within which smoke grenades are launched (actual spacing may end up smaller so use slighty higher number) class Reflectors { class Left { color[] = {0.9, 0.8, 0.8, 1.0}; ambient[] = {0.1, 0.1, 0.1, 1.0}; coneFadeCoef = 10; dayLight = 0; flareSize = 1; innerAngle = 90; intensity = 1000; outerAngle = 140; position = "L svetlo"; direction = "konec L svetla"; hitpoint = "L svetlo"; selection = "L svetlo"; size = 1; brightness =0.5; useFlare = 0; class Attenuation { constant = 0; hardLimitEnd = 60; hardLimitStart = 30; linear = 0; quadratic = 0.25; start = 1.0; }; }; class Right:Left { position = "P svetlo"; direction = "konec P svetla"; hitpoint = "P svetlo"; selection = "P svetlo"; }; /* class gunner_light:Left { position = "svetlo gunner"; direction = "svetlo gunner konec"; hitpoint = "svetlo gunner"; selection = "svetlo gunner"; }; class commander_light:Left { position = "svetlo commnader"; direction = "svetlo commander konec"; hitpoint = "svetlo commnader"; selection = "svetlo commnader"; };*/ }; aggregateReflectors[] = {}; class Exhausts { class Exhaust1 { position = "vyfuk start"; direction = "vyfuk konec"; effect = "ExhaustsEffect"; }; class Exhaust2: Exhaust1 { position = "vyfuk2 start"; direction = "vyfuk2 konec"; }; }; /* // TODO add damage materials class Damage { tex[]={}; mat[]= { "ca\wheeled2\btr90\data\body.rvmat", "ca\wheeled2\btr90\data\body_damage.rvmat", "ca\wheeled2\btr90\data\body_destruct.rvmat", "ca\wheeled2\btr90\data\body2.rvmat", "ca\wheeled2\btr90\data\body2_damage.rvmat", "ca\wheeled2\btr90\data\body2_destruct.rvmat", "ca\wheeled2\btr90\data\interrior.rvmat", "ca\wheeled2\btr90\data\interrior_damage.rvmat ", "ca\wheeled2\btr90\data\interrior_destruct.rvm at", "ca\wheeled2\btr90\data\interrior2.rvmat", "ca\wheeled2\btr90\data\interrior2_damage.rvma t", "ca\wheeled2\btr90\data\interrior2_destruct.rv mat" }; }; */ // Physx Config simulation = "carX"; maxSpeed = 100; wheelCircumference= 3.277; dampersBumpCoef = 5; differentialType = "all_limited"; frontRearSplit = 0.5; frontBias = 1.3; rearBias = 1.3; centreBias = 1.3; clutchStrength = 35.0; changeGearMinEffectivity[] = {0.5,0.15,0.97,0.97,0.97,0.97,0.97,0.985}; switchTime = 0.1; latency = 1.4; enginePower = 295;//405; maxOmega = 245;//241; peakTorque = 2217;//2260; damperSize = 0.2; // max. damper amplitude damperForce = 1; // damper reaction force (bigger is more visible) damperDamping = 1; // schock absorbers bigger => more tough dampingRateFullThrottle = 0.08; dampingRateZeroThrottleClutchEngaged = 0.35;//2; dampingRateZeroThrottleClutchDisengaged = 0.35;//0.5; torqueCurve[] = { { 0,0 }, { "(1600/2640)","(2650/2850)" }, { "(1800/2640)","(2800/2850)" }, { "(1900/2640)","(2850/2850)" }, { "(2000/2640)","(2800/2850)" }, { "(2200/2640)","(2750/2850)" }, { "(2400/2640)","(2600/2850)" }, { "(2640/2640)","(2350/2850)" } }; class wheels { class L1 { boneName = "wheel_1_1_damper"; steering = 1; side = "left"; center = "wheel_1_1_axis"; boundary = "wheel_1_1_bound"; width = "0.2"; mass = 100; MOI = 60; /* can be used to tune handling */ dampingRate = 0.1; dampingRateDamaged = 1.0; dampingRateDestroyed = 1000.0; maxBrakeTorque = 15000; maxHandBrakeTorque = 0; suspTravelDirection[] = {0,-1,0}; suspForceAppPointOffset = "wheel_1_1_axis"; tireForceAppPointOffset = "wheel_1_1_axis"; maxCompression = 0.2; mMaxDroop = 0.2; sprungMass = 1600; springStrength = 80000; springDamperRate = 18000; longitudinalStiffnessPerUnitGravity = 10000; latStiffX = 25; latStiffY = 180; frictionVsSlipGraph[] = { { 0,1 }, { 0.5,1 }, { 1,1 }}; }; class L2: L1 { boneName = "wheel_1_2_damper"; steering = 1; center = "wheel_1_2_axis"; boundary = "wheel_1_2_bound"; suspForceAppPointOffset = "wheel_1_2_axis"; tireForceAppPointOffset = "wheel_1_2_axis"; }; class L3: L1 { boneName = "wheel_1_3_damper"; steering = 0; center = "wheel_1_3_axis"; boundary = "wheel_1_3_bound"; suspForceAppPointOffset = "wheel_1_3_axis"; tireForceAppPointOffset = "wheel_1_3_axis"; maxHandBrakeTorque = 300000; }; class L4: L1 { boneName = "wheel_1_4_damper"; steering = 0; center = "wheel_1_4_axis"; boundary = "wheel_1_4_bound"; suspForceAppPointOffset = "wheel_1_4_axis"; tireForceAppPointOffset = "wheel_1_4_axis"; maxHandBrakeTorque = 300000; }; class R1:L1 { boneName = "wheel_2_1_damper"; center = "wheel_2_1_axis"; boundary = "wheel_2_1_bound"; suspForceAppPointOffset = "wheel_2_1_axis"; tireForceAppPointOffset = "wheel_2_1_axis"; steering = 1; side = "right"; }; class R2:R1 { boneName = "wheel_2_2_damper"; steering = 1; center = "wheel_2_2_axis"; boundary = "wheel_2_2_bound"; suspForceAppPointOffset = "wheel_2_2_axis"; tireForceAppPointOffset = "wheel_2_2_axis"; }; class R3:R1 { boneName = "wheel_2_3_damper"; steering = 0; center = "wheel_2_3_axis"; boundary = "wheel_2_3_bound"; suspForceAppPointOffset = "wheel_2_3_axis"; tireForceAppPointOffset = "wheel_2_3_axis"; maxHandBrakeTorque = 300000; }; class R4:R1 { boneName = "wheel_2_4_damper"; steering = 0; center = "wheel_2_4_axis"; boundary = "wheel_2_4_bound"; suspForceAppPointOffset = "wheel_2_4_axis"; tireForceAppPointOffset = "wheel_2_4_axis"; maxHandBrakeTorque = 300000; }; }; thrustDelay = 0.35; brakeIdleSpeed = 1.78; idleRpm = 280; redRpm = 2500; antiRollbarForceCoef = 24; antiRollbarForceLimit = 30; antiRollbarSpeedMin = 15; antiRollbarSpeedMax = 65; class complexGearbox { GearboxRatios[] = {"R1",-4.84,"N",0,"D1",3.43,"D2",2.01,"D3",1.42,"D4",1,"D 5",0.83,"D6",0.59}; TransmissionRatios[] = {"High",8}; gearBoxMode = "auto"; moveOffGear = 1; driveString = "D"; neutralString = "N"; reverseString = "R"; }; class AnimationSources : AnimationSources { class front_panel_anim { source="user"; animperiod=2; initPhase=0; }; class recoil_source { source="reload"; weapon="autocannon_40mm_CTWS"; }; }; class EventHandlers : DefaultEventhandlers { init="_this execVM ""\cha\cha_lav25\scripts\init.sqf"""; }; }; class LAV25:LAV25_Base { scope = 2; class AnimationSources : AnimationSources { class recoil_source { source="reload"; weapon="autocannon_40mm_CTWS"; }; }; }; /* class LAV25_HQ:LAV25_Base { scope = 2; model = "\Cha\Cha_LAV25\lav_hq"; displayName = $STR_DN_LAV25_HQ; picture="\Cha\Cha_LAV25\data\UI\Picture_LAV25_CA.p aa";// TODO Icon="\Cha\Cha_LAV25\data\UI\Icon_lav25_hq_CA.paa" ; hideProxyInCombat = 1; enableManualFire = false; class Library {libTextDesc = $STR_LIB_LAV25_HQ;}; class Turrets: Turrets { class MainTurret: NewTurret { weapons[]={M240_veh}; magazines[]={100Rnd_762x51_M240,100Rnd_762x51_M240,100Rnd_762 x51_M240,100Rnd_762x51_M240,100Rnd_762x51_M240}; class Turrets{}; LODTurnedOut = VIEW_GUNNER; LODTurnedIn= VIEW_GUNNER; startEngine = 0; gunnerOpticsModel = \ca\Weapons\optika_empty; gunnerAction = LAV25_Gunner2; gunnerInAction = LAV25_Gunner2; memoryPointGun = "usti hlavne"; gunBeg = "usti hlavne"; gunEnd = "konec hlavne"; memoryPointGunnerOptics= "gunnerview"; viewGunnerInExternal=1; gunnerForceOptics = 0; outGunnerMayFire = 1; forceHideGunner = 1; castGunnerShadow = false; class ViewOptics { initAngleX=0; minAngleX=-30; maxAngleX=+30; initAngleY=0; minAngleY=-100; maxAngleY=+100; initFov=0.7; minFov=0.25; maxFov=1.1; }; minTurn=-90; maxTurn=90; minElev = __EVAL(-0.5*180/3.1415926); maxElev = __EVAL(0.6*180/3.1415926); commanding = 1; primaryGunner = 0; primaryObserver = 1; stabilizedInAxes = 0; }; }; class AnimationSources:AnimationSources { class Antena1 { source = "user"; animPeriod = 4; initPhase = 0; }; class Antena2:Antena1{}; class Antena3:Antena1{}; class ReloadAnim{source="reload";weapon="M240_veh";}; class ReloadMagazine{source="reloadmagazine";weapon="M24 0_veh";}; class Revolving{source="revolving";weapon="M240_veh";}; }; transportSoldier = 0; typicalCargo[]={}; threat[]={0.5, 0.0, 0.2}; hiddenSelections[] = { "Camo1", "Camo2", "Camo3" }; hiddenSelectionsTextures[] = { "\Cha\Cha_LAV25\data\lavbody_co.paa", "\Cha\Cha_LAV25\data\lavbody2_co.paa", "\Cha\Cha_LAV25\data\lav_hq_co.paa" }; };*/ }; Crewanimations.hpp: class CfgMovesBasic { class DefaultDie; class ManActions { LAV25_Driver = "LAV25_Driver"; LAV25_Gunner = "LAV25_Gunner"; LAV25_Commander = "LAV25_Commander_out"; LAV25_Driver_out = "LAV25_Driver_out"; LAV25_Gunner_out = "LAV25_Gunner_out"; LAV25_Commander_out = "LAV25_Commander_out"; LAV25_Gunner2 = "LAV25_Gunner2"; }; }; #define SPEED_STATIC 1e10 class CfgMovesMaleSdr: CfgMovesBasic { class States { class Crew; class KIA_LAV25_Driver: DefaultDie { actions = DeadActions; file=\cha\cha_LAV25\DATA\anim\kia_lav25_driver.rtm ; speed = 0.5; looped=false; terminal = 1; soundEnabled=0; connectTo[] = {DeadState,0.1}; }; class LAV25_Driver: Crew { file=\cha\cha_LAV25\Data\Anim\lav25_driver.rtm; interpolateTo[]={KIA_LAV25_Driver,1}; }; class LAV25_Driver_out: Crew { file=\cha\cha_LAV25\Data\Anim\lav25_driver_turnout .rtm; interpolateTo[]={KIA_LAV25_Driver,1}; }; class KIA_LAV25_Gunner: DefaultDie { actions = DeadActions; file=\cha\cha_LAV25\DATA\anim\kia_lav25_Gunner.rtm ; speed = 0.5; looped=false; terminal = 1; soundEnabled=0; connectTo[] = {DeadState,0.1}; }; class LAV25_Gunner: Crew { file=\cha\cha_LAV25\Data\Anim\lav25_Gunner.rtm; interpolateTo[]={KIA_LAV25_Gunner,1}; }; class LAV25_Gunner_out: Crew { file=\cha\cha_LAV25\Data\Anim\lav25_gunner_turnout .rtm; interpolateTo[]={KIA_LAV25_Gunner,1}; }; class KIA_LAV25_Gunner2: KIA_LAV25_Gunner { file=\ca\tracked\Data\Anim\KIA_Abrams_CommanderOut .rtm; }; class LAV25_Gunner2: Crew { file=\ca\tracked\Data\Anim\Abrams_CommanderOut.rtm ; interpolateTo[]={KIA_LAV25_Gunner2,1}; }; class KIA_LAV25_commander: DefaultDie { actions = DeadActions; file=\cha\cha_LAV25\DATA\anim\kia_lav25_commander. rtm; speed = 0.5; looped=false; terminal = 1; soundEnabled=0; connectTo[] = {DeadState,0.1}; }; class LAV25_commander: Crew { file=\cha\cha_LAV25\Data\Anim\lav25_commander.rtm; interpolateTo[]={KIA_LAV25_commander,1}; }; class LAV25_commander_out: Crew { file=\cha\cha_LAV25\Data\Anim\lav25_commander_turn out.rtm; interpolateTo[]={KIA_LAV25_commander,1}; }; }; }; model.cfg: #define BULLET_HIDE(x,from,count) class Bullet##x\ {\ type="hide";\ source="revolving";\ sourceAddress="mirror";\ selection=bullet##x;\ minValue=-1.000000;\ maxValue= 0.000000;\ hideValue=((count+x-from-2)/count)+0.00001;\ }; class CfgSkeletons { class Vehicle; class LAV25Base: Vehicle { isDiscrete=1; skeletonInherit=""; skeletonBones[]= { "OtocVez","", "front_panel","", "rotor1","", "rotor2","", "otocvelitele","OtocVez", "OtocHlavenVelitele","otocvelitele", "hatch_commander","OtocVez", "hatch_driver","", "damageHide","", "wheel_1_1_damper_land","", "wheel_1_2_damper_land","", "wheel_1_3_damper_land","", "wheel_1_4_damper_land","", "wheel_2_1_damper_land","", "wheel_2_2_damper_land","", "wheel_2_3_damper_land","", "wheel_2_4_damper_land","", "wheel_1_1_damper","wheel_1_1_damper_land", "wheel_1_2_damper","wheel_1_2_damper_land", "wheel_1_3_damper","wheel_1_3_damper_land", "wheel_1_4_damper","wheel_1_4_damper_land", "wheel_2_1_damper","wheel_2_1_damper_land", "wheel_2_2_damper","wheel_2_2_damper_land", "wheel_2_3_damper","wheel_2_3_damper_land", "wheel_2_4_damper","wheel_2_4_damper_land", "wheel_1_1_steering","wheel_1_1_damper", "wheel_1_2_steering","wheel_1_2_damper", "wheel_1_3_steering","wheel_1_3_damper", "wheel_1_4_steering","wheel_1_4_damper", "wheel_2_1_steering","wheel_2_1_damper", "wheel_2_2_steering","wheel_2_2_damper", "wheel_2_3_steering","wheel_2_3_damper", "wheel_2_4_steering","wheel_2_4_damper", "wheel_1_1","wheel_1_1_steering", "wheel_1_2","wheel_1_2_steering", "wheel_1_3","wheel_1_3_steering", "wheel_1_4","wheel_1_4_steering", "wheel_2_1","wheel_2_1_steering", "wheel_2_2","wheel_2_2_steering", "wheel_2_3","wheel_2_3_steering", "wheel_2_4","wheel_2_4_steering", "wheel_1_1_unhide","wheel_1_1", "wheel_1_2_unhide","wheel_1_2", "wheel_1_3_unhide","wheel_1_3", "wheel_1_4_unhide","wheel_1_4", "wheel_2_1_unhide","wheel_2_1", "wheel_2_2_unhide","wheel_2_2", "wheel_2_3_unhide","wheel_2_3", "wheel_2_4_unhide","wheel_2_4", "wheel_1_1_hide","wheel_1_1", "wheel_1_2_hide","wheel_1_2", "wheel_1_3_hide","wheel_1_3", "wheel_1_4_hide","wheel_1_4", "wheel_2_1_hide","wheel_2_1", "wheel_2_2_hide","wheel_2_2", "wheel_2_3_hide","wheel_2_3", "wheel_2_4_hide","wheel_2_4" }; }; class LAV25Skeleton: LAV25Base { skeletonInherit="LAV25Base"; skeletonBones[]= { "otochlaven","OtocVez", "hatch_gunner","OtocVez", "RecoilHlaven","otocHlaven" }; }; class LAV_HQSkeleton: LAV25Base { skeletonInherit="LAV25Base"; skeletonBones[]= { "antena1","", "antena2","antena1", "antena3","antena2", "hatch_gunner","", "OtocHlaven_Shake","OtocHlaven", "ammo_belt","OtocHlaven_Shake", "magazine","OtocHlaven_Shake", "feedtray_cover","OtocHlaven_Shake", "bolt","OtocHlaven_Shake", "charging_handle","OtocHlaven_Shake", "bullet001","bullet002", "bullet002","bullet003", "bullet003","bullet004", "bullet004","bullet005", "bullet005","bullet006", "bullet006","bullet007", "bullet007","bullet008", "bullet008","ammo_belt" }; }; }; class CfgModels { class Vehicle; class Car: Vehicle { sectionsInherit=""; sections[]={}; class Animations { class damageHide { type="hide"; source="damage"; selection="damageHide"; hideValue=1.0; }; class damageHideVez:damageHide { selection="OtocVez"; }; class damageHideHlaven:damageHide { selection="OtocHlaven"; }; class wheel_1_1_destruct { type="hide"; selection="wheel_1_1_hide"; source="HitLFWheel"; minValue=0; maxValue=1; hidevalue=0.99999; }; class wheel_1_2_destruct:wheel_1_1_destruct {source="HitLBWheel";selection="wheel_1_2_hide";}; class wheel_1_3_destruct:wheel_1_1_destruct {source="HitLMWheel";selection="wheel_1_3_hide";}; class wheel_1_4_destruct:wheel_1_1_destruct {source="HitLF2Wheel";selection="wheel_1_4_hide";}; class wheel_2_1_destruct:wheel_1_1_destruct {source="HitRFWheel";selection="wheel_2_1_hide";}; class wheel_2_2_destruct:wheel_1_1_destruct {source="HitRBWheel";selection="wheel_2_2_hide";}; class wheel_2_3_destruct:wheel_1_1_destruct {source="HitRMWheel";selection="wheel_2_3_hide";}; class wheel_2_4_destruct:wheel_1_1_destruct {source="HitRF2Wheel";selection="wheel_2_4_hide";}; class wheel_1_1_destruct_unhide { type="hide"; selection="wheel_1_1_unhide"; source="HitLFWheel"; minValue=0; maxValue=1; hidevalue = 0.00000; UnHidevalue = 1.00000; }; class wheel_1_2_destruct_unhide:wheel_1_1_destruct_unhide {source="HitLBWheel";selection="wheel_1_2_unhide";}; class wheel_1_3_destruct_unhide:wheel_1_1_destruct_unhide {source="HitLMWheel";selection="wheel_1_3_unhide";}; class wheel_1_4_destruct_unhide:wheel_1_1_destruct_unhide {source="HitLF2Wheel";selection="wheel_1_4_unhide";}; class wheel_2_1_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRFWheel";selection="wheel_2_1_unhide";}; class wheel_2_2_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRBWheel";selection="wheel_2_2_unhide";}; class wheel_2_3_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRMWheel";selection="wheel_2_3_unhide";}; class wheel_2_4_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRF2Wheel";selection="wheel_2_4_unhide";}; class wheel_1_1_Damage: wheel_1_1_destruct { type="translation"; axis="Basic_Damper_Destruct_Axis"; memory=1; selection="wheel_1_1_damper_land"; source="damage"; minValue=0; maxValue=1; offset0=0; offset1=0.2; }; class wheel_1_2_Damage: wheel_1_1_Damage { selection="wheel_1_2_damper_land"; }; class wheel_1_3_Damage: wheel_1_1_Damage { selection="wheel_1_3_damper_land"; }; class wheel_1_4_Damage: wheel_1_1_Damage { selection="wheel_1_4_damper_land"; }; class wheel_2_1_Damage: wheel_1_1_Damage { selection="wheel_2_1_damper_land"; }; class wheel_2_2_Damage: wheel_1_1_Damage { selection="wheel_2_2_damper_land"; }; class wheel_2_3_Damage: wheel_1_1_Damage { selection="wheel_2_3_damper_land"; }; class wheel_2_4_Damage: wheel_1_1_Damage { selection="wheel_2_4_damper_land"; }; class wheel_1_1_Damper_Damage_BackAnim: wheel_1_1_Damage { selection="wheel_1_1_damper"; offset1="-1.2*0.2"; }; class wheel_1_2_Damper_Damage_BackAnim: wheel_1_1_Damper_Damage_BackAnim { selection="wheel_1_2_damper"; }; class wheel_1_3_Damper_Damage_BackAnim: wheel_1_1_Damper_Damage_BackAnim { selection="wheel_1_3_damper"; }; class wheel_1_4_Damper_Damage_BackAnim: wheel_1_1_Damper_Damage_BackAnim { selection="wheel_1_4_damper"; }; class wheel_2_1_Damper_Damage_BackAnim: wheel_1_1_Damper_Damage_BackAnim { selection="wheel_2_1_damper"; }; class wheel_2_2_Damper_Damage_BackAnim: wheel_1_1_Damper_Damage_BackAnim { selection="wheel_2_2_damper"; }; class wheel_2_3_Damper_Damage_BackAnim: wheel_1_1_Damper_Damage_BackAnim { selection="wheel_2_3_damper"; }; class wheel_2_4_Damper_Damage_BackAnim: wheel_1_1_Damper_Damage_BackAnim { selection="wheel_2_4_damper"; }; }; }; class LAV25: Car { skeletonName="LAV25Skeleton"; sectionsInherit="Car"; sections[]= { "zasleh_1", "Camo1", "Camo2", "clan", "clan_sign", "zadni svetlo", "brzdove svetlo", "P svetlo", "L svetlo" }; class Animations: Animations { class wheel_1_1_Damage: wheel_1_1_Damage { offset1="0.23999999"; }; class wheel_1_2_Damage: wheel_1_2_Damage { offset1="0.23999999"; }; class wheel_1_3_Damage: wheel_1_3_Damage { offset1="0.23999999"; }; class wheel_1_4_Damage: wheel_1_4_Damage { offset1="0.23999999"; }; class wheel_2_1_Damage: wheel_2_1_Damage { offset1="0.23999999"; }; class wheel_2_2_Damage: wheel_2_2_Damage { offset1="0.23999999"; }; class wheel_2_3_Damage: wheel_2_3_Damage { offset1="0.23999999"; }; class wheel_2_4_Damage: wheel_2_4_Damage { offset1="0.23999999"; }; class wheel_1_1_Damper_Damage_BackAnim: wheel_1_1_Damper_Damage_BackAnim { offset1="-1.2*0.24"; }; class wheel_1_2_Damper_Damage_BackAnim: wheel_1_2_Damper_Damage_BackAnim { offset1="-1.2*0.24"; }; class wheel_1_3_Damper_Damage_BackAnim: wheel_1_3_Damper_Damage_BackAnim { offset1="-1.2*0.24"; }; class wheel_1_4_Damper_Damage_BackAnim: wheel_1_4_Damper_Damage_BackAnim { offset1="-1.2*0.24"; }; class wheel_2_1_Damper_Damage_BackAnim: wheel_2_1_Damper_Damage_BackAnim { offset1="-1.2*0.24"; }; class wheel_2_2_Damper_Damage_BackAnim: wheel_2_2_Damper_Damage_BackAnim { offset1="-1.2*0.24"; }; class wheel_2_3_Damper_Damage_BackAnim: wheel_2_3_Damper_Damage_BackAnim { offset1="-1.2*0.24"; }; class wheel_2_4_Damper_Damage_BackAnim: wheel_2_4_Damper_Damage_BackAnim { offset1="-1.2*0.24"; }; class Steering_1_1 { type="rotationY"; source="drivingwheel"; selection="wheel_1_1_steering"; axis="wheel_1_1_steering_axis"; minvalue=-1; maxvalue=1; angle0="rad 30"; angle1="rad -30"; }; class Steering_1_2: Steering_1_1 { selection="wheel_1_2_steering"; axis="wheel_1_2_steering_axis"; }; class Steering_2_1: Steering_1_1 { selection="wheel_2_1_steering"; axis="wheel_2_1_steering_axis"; }; class Steering_2_2: Steering_1_1 { selection="wheel_2_2_steering"; axis="wheel_2_2_steering_axis"; }; class wheel_1_1_rot { type="rotationX"; source="wheel"; selection="wheel_1_1_hide"; axis=""; sourceAddress="loop"; minValue=0; maxValue=1; angle0=0; angle1="rad -180"; }; class wheel_1_2_rot: wheel_1_1_rot { selection="wheel_1_2_hide"; }; class wheel_2_1_rot: wheel_1_1_rot { selection="wheel_2_1_hide"; }; class wheel_2_2_rot: wheel_1_1_rot { selection="wheel_2_2_hide"; }; class wheel_1_3_rot: wheel_1_1_rot { selection="wheel_1_3_hide"; }; class wheel_2_3_rot: wheel_1_1_rot { selection="wheel_2_3_hide"; }; class wheel_1_4_rot: wheel_1_1_rot { selection="wheel_1_4_hide"; }; class wheel_2_4_rot: wheel_1_1_rot { selection="wheel_2_4_hide"; }; class Wheel_1_1_Damper { type="translation"; source="damper"; selection="wheel_1_1_damper_land"; axis="posun wheel_1_1"; animPeriod=1; minValue="0"; maxValue="1"; offset0="1"; offset1="-1"; memory=1; }; class Wheel_1_2_Damper: Wheel_1_1_Damper { selection="wheel_1_2_damper_land"; axis="posun levy dalsi"; }; class Wheel_1_3_Damper: Wheel_1_1_Damper { selection="wheel_1_3_damper_land"; axis="posun wheel_1_3"; }; class Wheel_1_4_Damper: Wheel_1_1_Damper { selection="wheel_1_4_damper_land"; axis="posun wheel_1_2"; }; class Wheel_2_1_Damper: Wheel_1_1_Damper { selection="wheel_2_1_damper_land"; axis="posun wheel_2_1"; }; class Wheel_2_2_Damper: Wheel_1_1_Damper { selection="wheel_2_2_damper_land"; axis="posun pravy dalsi"; }; class Wheel_2_3_Damper: Wheel_1_1_Damper { selection="wheel_2_3_damper_land"; axis="posun wheel_2_3"; }; class Wheel_2_4_Damper: Wheel_1_1_Damper { selection="wheel_2_4_damper_land"; axis="posun wheel_2_2"; }; class MainTurret { type="rotationY"; source="mainTurret"; selection="OtocVez"; axis="OsaVeze"; animPeriod=0; minValue="rad -360"; maxValue="rad +360"; angle0="rad -360"; angle1="rad +360"; }; class MainGun: MainTurret { type="rotationX"; source="mainGun"; selection="OtocHlaven"; axis="OsaHlavne"; minValue="rad -10"; maxValue="rad +90"; angle0="rad -10"; angle1="rad +60"; }; class ObsTurret { type="rotationY"; source="obsTurret"; selection="OtocVelitele"; axis="OsaVelitele"; animPeriod=0; minValue="rad -360"; maxValue="rad +360"; angle0="rad -360"; angle1="rad +360"; }; class ObsGun: ObsTurret { type="rotationX"; source="obsGun"; selection="OtocHlavenVelitele"; axis="OsaHlavneVelitele"; }; class HatchGunner { source="hatchGunner"; type="rotation"; selection="hatch_gunner"; axis="hatch_gunner_axis"; memory=1; animPeriod=0; angle0="rad 0"; angle1="rad 135"; }; class HatchDriver: HatchGunner { source="hatchdriver"; selection="hatch_driver"; axis="hatch_driver_axis"; angle1="rad 170"; }; class HatchCommander: HatchGunner { source="hatchCommander"; selection="hatch_commander"; axis="hatch_commander_axis"; angle1="rad 135"; }; class recoil_BEGIN { type="translation"; source="recoil_source"; selection="RecoilHlaven"; axis="RecoilHlaven_axis"; memory=1; minValue=0.5; maxValue=0.80000001; offset0=0; offset1=-0.2; }; class recoil_END: recoil_BEGIN { minValue=0.85000002; maxValue=1; offset0=0; offset1=0.2; }; class front_panel { type="translation"; source="front_panel_anim"; animperiod=2; minvalue=0; maxvalue=1; offset0=0; offset1=0.8; selection="front_panel"; axis="front_panel_axis"; }; class rotor1 { type = "rotation"; source = "propeller"; selection = "rotor1"; axis = "rotor1_axis"; memory = 1; sourceAddress = "loop"; minValue = -1.000000; maxValue = 1.000000; angle0 = (rad 0); angle1 = (rad +720); }; class rotor2: rotor1 { selection = "rotor2"; axis = "rotor2_axis"; }; }; }; class lav_hq: LAV25 { skeletonName="LAV_HQSkeleton"; sectionsInherit="LAV25"; sections[]= { "Camo3" }; class Animations: Animations { class HatchGunner { source="hatchGunner"; type="rotation"; selection="hatch_gunner"; axis="hatch_gunner_axis"; memory=1; animPeriod=0; angle0="rad 137"; angle1="rad 0"; }; class antena1 { type="translation"; source="antena1"; selection="antena1"; axis="antena_axis"; minValue=0; maxValue="0.33*7"; offset0=-0.80000001; offset1=0; }; class antena2: antena1 { selection="antena2"; axis="antena_axis"; source="antena2"; minValue="0.33*7"; maxValue="0.66*7"; offset0=-1; offset1=0; }; class antena3: antena1 { selection="antena3"; axis="antena_axis"; minValue="0.66*7"; source="antena3"; maxValue="1.0*7"; offset0=-1; offset1=0; }; class ammo_belt_rotation { type="rotation"; selection="ammo_belt"; source="ReloadAnim"; axis="ammo_belt_axis"; memory=1; sourceAddress="loop"; minValue=0; maxValue=1; angle0=0; angle1="7.5*3.14159265358/180"; }; class feedtray_cover_up { type="rotation"; source="reloadMagazine"; selection="feedtray_cover"; axis="feedtray_cover_axis"; memory=1; minValue=0; maxValue=0.050000001; angle0=0; angle1=1.570796; }; class feedtray_cover_down: feedtray_cover_up { minValue=0.94999999; maxValue=1; angle0=0; angle1=-1.570796; }; class Turret_shake: ammo_belt_rotation { type="translation"; sourceAddress="mirror"; selection="OtocHlaven_Shake"; axis="osaveze"; offset0=0; offset1=-0.0020000001; minValue=0; maxValue=0.050000001; }; class Turret_shake_aside: Turret_shake { axis="osahlavne"; maxValue="0.05*1.3"; offset0=0; offset1=-0.02; }; class Magazine_hide { type="hide"; source="reloadMagazine"; sourceAddress="mirror"; selection="magazine"; minValue=0; maxValue=0.5; hideValue=0.56; }; class Bullet001 { type="hide"; source="revolving"; sourceAddress="mirror"; selection="bullet001"; minValue=-1; maxValue=0; hideValue="((100+001-8-2)/100)+0.00001"; }; class Bullet002 { type="hide"; source="revolving"; sourceAddress="mirror"; selection="bullet002"; minValue=-1; maxValue=0; hideValue="((100+002-8-2)/100)+0.00001"; }; class Bullet003 { type="hide"; source="revolving"; sourceAddress="mirror"; selection="bullet003"; minValue=-1; maxValue=0; hideValue="((100+003-8-2)/100)+0.00001"; }; class Bullet004 { type="hide"; source="revolving"; sourceAddress="mirror"; selection="bullet004"; minValue=-1; maxValue=0; hideValue="((100+004-8-2)/100)+0.00001"; }; class Bullet005 { type="hide"; source="revolving"; sourceAddress="mirror"; selection="bullet005"; minValue=-1; maxValue=0; hideValue="((100+005-8-2)/100)+0.00001"; }; class Bullet006 { type="hide"; source="revolving"; sourceAddress="mirror"; selection="bullet006"; minValue=-1; maxValue=0; hideValue="((100+006-8-2)/100)+0.00001"; }; class Bullet007 { type="hide"; source="revolving"; sourceAddress="mirror"; selection="bullet007"; minValue=-1; maxValue=0; hideValue="((100+007-8-2)/100)+0.00001"; }; class Bullet008 { type="hide"; source="revolving"; sourceAddress="mirror"; selection="bullet008"; minValue=-1; maxValue=0; hideValue="((100+008-8-2)/100)+0.00001"; }; class Bolt_recoil { type="translation"; selection="bolt"; source="ReloadAnim"; axis="recoil_axis"; memory=1; sourceAddress="mirror"; minValue=0; maxValue=0.44999999; offset0=0; offset1=-0.2; }; class Bolt_reload_begin: Bolt_recoil { type="translation"; sourceAddress="clamp"; source="reloadMagazine"; minValue=0; maxValue=0.02; }; class Bolt_reload_end: Bolt_reload_begin { minValue=0.050000001; maxValue=0.059999999; offset0=0; offset1=0.2; }; }; }; }; What am i doing wrong? Do i need to change something in the model as well? I thought it was related to hitpoints but changing values to name and visual parameters didn't do anything. Do i need to put the material files in any specific order? What am i doing wrong? :confused: :( Edited July 6, 2014 by Chairborne Share this post Link to post Share on other sites
teacup 2 Posted July 6, 2014 Instead of your "model.cfg", you quoted "Crewanimations.hpp" again. And model.cfg is the crucial file here. In it, you have to define or inherit a section/selection that will be responsible for displaying damage textures. If you look at the sample models and configs, it's generally the selection called "zbytek", that's being used for this purpose. But you can also define your own: in cfgVehicles >> All, there is a property called selectionDamage="zbytek", and all other vehicles inherit from there. Of course, you also need to have that selection in all the visual LODs of your model. Some extra reference: http://tactical.nekromantix.com/wiki/doku.php?id=arma:modeling:damage_model Share this post Link to post Share on other sites
Chairborne 2594 Posted July 6, 2014 (edited) Ops, my bad, I added the model.cfg. edit: thanks for your reply, i wasn't able to find any real information on how this was handled by the game. ---------- Post added at 11:17 AM ---------- Previous post was at 11:04 AM ---------- Adding "zbytek" in the cfgmodels fixed the issue. I can't believe how much time i wasted on something so simple as this. :confused: Edited July 6, 2014 by Chairborne Share this post Link to post Share on other sites