sakura_chan 9 Posted March 10, 2013 I have started playing with the new car physics so I figured I might as well post some basic info about the new config entries. Some basic "What can we do" stuff: 1. Simulate front wheel drive, rear wheel drive, and all wheel drive with either open or limited slip differentials 2. Control the roll rates. These determine handling at speed and also controls when the vehicle will roll over on its side 3. Each wheel is fully independent. You can change the suspension, grip, and brake force for each individual wheel. 4. Control the speed (rate) at which you steer. 5. Hands move with the steering wheel (possibly other controls) this uses a basic gesture system. Shouldn't have any issues setting it up on a new model 6. Complex transmission setup. You can set the gear ratios, clutch force, even the shift latency. 7. Much better engine setup. Set horsepower, torque, rpm redline and idle rpm. 8. Biggest difference: no more speed limit at 110km/h ;) Only real unknown worth mentioning is the possibility for manual transmissions with realistic clutches. There is a setting -> gearBoxMode = "auto"; Changing it has no effect yet :( Hopefully the beta or final version would allow for stick shiftin' so new settings class complexGearbox { GearboxRatios[] = {"R1", -5.367, "N", 0, "D1", 5.367, "D2", 3.67, "D3", 2.238, "D4", 1.00, "D5", 0.8}; These relate to real world gear ratios, nothing fancy here TransmissionRatios[] = {"High", 5.0}; unknown? gearBoxMode = "auto"; changing it has no effect yet moveOffGear = 1; unknown? driveString = "D"; Must be for some kind of gear indicator neutralString = "N"; Must be for some kind of gear indicator reverseString = "R"; Must be for some kind of gear indicator gearUpMaxCoef = 0.8; possibly to do with shift points /full throttle gearDownMaxCoef = 0.5; possibly to do with shift points /full throttle gearUpMinCoef = 0.45; possibly to do with shift points /light throttle gearDownMinCoef = 0.15; possibly to do with shift points /light throttle transmissionDelay = 1; 1 of a few settings that control shifting }; basic engine stuff maxSpeed = 320; max speed on level road, km/h. Does NOT change the acceleration, it is just a speed limiter like on a real car enginePower = 100; Not hp, doesn't seem to affect anything maxOmega = 900; Horsepower (maybe torque) I assume ft/lb but it could be NM or KW peakTorque = 1300; Max torque again could be ft/lb or NM idleRpm = 900; Idle RPM redRpm = 3500; Max RPM torqueCurve[] = {{0.0, 0.0}, {0.25, 0.65}, {0.3, 0.8}, {0.5, 0.95}, {0.7, 1.0}, {0.8, 0.9}, {0.9, 0.8}, {1.0, 0.5}}; the first number indicates the percentile of the curve, and the second the torque value at that percentile. Could be used to make a vehicle with instant power (supercharger), or have it really sloppy down low and then pick up at higher revs (turbo) clutchStrength = 200.0; 1 of many clutch variables. Wheels class Wheels { class LF { boneName = "wheel_1_1_damper"; model.cfg bone steering = 1; is a steering wheel side = "left"; used for the differential simulation. center = "wheel_1_1_axis"; memory lod point boundary = "wheel_1_1_bound"; memory lod point? width = 0.5; unknown, might control the tire track texture mass = 30; probably kg. MOI = 2.8; Moment of Inertia (I googled it but my brain couldn't understand. It is a number I know that much) dampingRate = 0.5; How well the suspension controls the spring maxBrakeTorque = 6000; How much brake force is applied when you hit the regular brakes ingame maxHandBrakeTorque = 6000; How much brake force is applied when you hit the hand brakes ingame suspTravelDirection[] = {0, -1, 0}; x.z.y? This means up and down movement suspForceAppPointOffset = "wheel_1_1_axis"; might be different in a more complex vehicle, but this one uses the same as the "center" variable tireForceAppPointOffset = "wheel_1_1_axis"; might be different in a more complex vehicle, but this one uses the same as the "center" variable maxCompression = 0.3; how far up the suspension can compress mMaxDroop = 0.1; how far the suspension will drop when off the ground sprungMass = 300; How much of the vehicle's weight it is supporting springStrength = 50000; how hard it is to move the suspension (some kind of arbitrary number) springDamperRate = 3400; the springs rate of self-dampening longitudinalStiffnessPerUnitGravity = 10000; unknown lol latStiffX = 25; unknown latStiffY = 180; unknown frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}}; Very important. This controls the traction of the tire. first number is friction and the second is slip frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}}; Wheel has great linear traction frictionVsSlipGraph[] = {{0, 1}, {0.5, 0.75}, {1, 0.5}}; Wheel has low traction at low speeds but full traction at high speeds frictionVsSlipGraph[] = {{0, 0.2}, {0.5, 0.5}, {1, 1}}; Wheel has good traction at low speeds but looses traction at high speeds. }; }; Somewhat generic anti-roll bar stuff antiRollbarForceCoef = 1; antiRollbarForceLimit = 40; Reducing this seems to make it roll over easier antiRollbarSpeedMin = 2; antiRollbarSpeedMax = 50; general driveline stuff differentialType = "rear_limited"; first entry can be front, rear, all. second entry can be limited or open frontRearSplit = 0.5; in all wheel drive, the split force going to the front or back. under 0.5 the front wheels will have more power, over 0.5 the rear has more. frontBias = 1.5; I assume this controls the viscosity of the front differential rearBias = 1.5; I assume this controls the viscosity of the rear differential centreBias = 1.3; unknown Welp thats what I found out after playing with the offroad truck for a few hours. Hopefully it will get people thinking about new vehicles now that they can be realistic, fun and fast ---------- Post added at 03:01 AM ---------- Previous post was at 02:56 AM ---------- Just as an example here is a mod for the offroad. It has 1300 torque, its rear wheel drive and maxes out at 320km/h :) For added fun, while stopped hold down the handbrake key (default C) and then accelerate. You should be able to do a burnout! #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 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 DefaultEventhandlers; // External class reference class CfgPatches { class A3_Soft_F_Offroad_saku { units[] = {"c_offroad", "c_offroad_PA", "C_offroad_RP", "I_G_offroad", "C_offroad_armed", "I_G_offroad_armed"}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Soft_F_Offroad"}; }; }; class WeaponFireGun; // External class reference class WeaponCloudsGun; // External class reference class WeaponFireMGun; // External class reference class WeaponCloudsMGun; // External class reference class CfgVehicles { class LandVehicle; // External class reference class Car : LandVehicle { class HitPoints; // External class reference class NewTurret; // External class reference }; class Car_F : Car { class Turrets { class MainTurret : NewTurret { class ViewOptics; // External class reference }; }; class HitPoints { class HitLFWheel; // External class reference class HitLBWheel; // External class reference class HitRFWheel; // External class reference class HitRBWheel; // External class reference class HitBody; // External class reference class HitGlass1 {}; class HitGlass2; // External class reference }; class EventHandlers; // External class reference class AnimationSources; // External class reference }; class Offroad_Base : Car_F { mapSize = 6.12; _generalMacro = "Offroad_Base"; displayName = "$STR_A3_CfgVehicles_Offroad_Base0"; nameSound = "veh_car"; class Library { libTextDesc = "$STR_A3_CfgVehicles_Offroad_Base_Library0"; }; model = "\A3\soft_f\offroad\offroad"; picture = "\A3\soft_f\offroad\Data\UI\offroad_base_CA.paa"; Icon = "\A3\soft_f\offroad\Data\UI\map_offroad_CA.paa"; accuracy = 0.25; // accuracy needed to recognize type of this target transportSoldier = 5; transportMaxBackpacks = 0; armor = 32; cost = 50000; class TransportItems { class _xx_FirstAidKit { name = "FirstAidKit"; count = 6; }; }; hiddenSelections[] = {"camo", "camo2"}; hiddenSelectionsTextures[] = {"\A3\soft_f\offroad\data\offroad_ext_co.paa", "\A3\soft_f\offroad\data\offroad_ext_co.paa"}; class AnimationSources : AnimationSources { class Doors { source = "user"; animPeriod = 1; initPhase = 0; }; class Proxy { source = "user"; animPeriod = 1; initPhase = 1; }; class Beacons { source = "user"; animPeriod = 1; initPhase = 0; }; class Destruct { source = "user"; animPeriod = 0; initPhase = 1; }; }; class HitPoints : HitPoints { class HitLFWheel : HitLFWheel { armor = 0.125; passThrough = false; }; class HitLF2Wheel : HitLBWheel { armor = 0.125; passThrough = false; }; class HitRFWheel : HitRFWheel { armor = 0.125; passThrough = false; }; class HitRF2Wheel : HitRBWheel { armor = 0.125; passThrough = false; }; class HitFuel { armor = 0.5; material = -1; name = "palivo"; visual = ""; passThrough = 0.2; }; class HitEngine { armor = 0.5; material = -1; name = "motor"; visual = ""; passThrough = 0.2; }; class HitBody : HitBody { visual = "camo"; passThrough = true; }; class HitGlass1 : HitGlass1 { armor = 0.25; }; class HitGlass2 : HitGlass2 { armor = 0.25; }; }; steerAheadSimul = 0.5; steerAheadPlan = 0.35; predictTurnPlan = 0.8; predictTurnSimul = 0.6; precision = 10; brakeDistance = 50; // vehicle movement precision turnCoef = 3.5; driverAction = "driver_offroad01"; cargoAction[] = {"passenger_low01", "passenger_flatground_leanleft", "passenger_flatground_leanright", "passenger_flatground_crosslegs", "passenger_flatground_leanleft"}; getInAction = "GetInLow"; getOutAction = "GetOutLow"; cargoGetInAction[] = {"GetInLow"}; cargoGetOutAction[] = {"GetOutLow"}; fireResistance = 5; wheelDestroyRadiusCoef = 0.75; soundGetIn[] = {"A3\Sounds_F\vehicles\soft\offroad\offroad-int-openclose.wav", db0, 1}; soundGetOut[] = {"A3\Sounds_F\vehicles\soft\offroad\offroad-int-openclose.wav", db0, 1, 40}; soundDammage[] = {"", 0.562341, 1}; soundEngineOnInt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_start.wav", 1.0, 1.0}; soundEngineOnExt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_start.wav", 1.0, 1.0, 200}; soundEngineOffInt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_stop.wav", 1.0, 1.0}; soundEngineOffExt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_stop.wav", 1.0, 1.0, 200}; class Sounds { class Idle_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_idle.wav", db0, 1, 100}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class Engine { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_2.wav", db0, 1, 200}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_3.wav", db0, 1, 225}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_4.wav", db0, 1, 250}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_6.wav", db0, 1, 275}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_8.wav", db0, 1, 300}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_9.wav", db0, 1, 325}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_11.wav", db0, 1, 350}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_12.wav", db0, 1, 375}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_14.wav", db0, 1, 400}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*camPos*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class IdleThrust { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_idle_exhaust.wav", db0, 1, 200}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class EngineThrust { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_2_exhaust.wav", db0, 1, 250}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_3_exhaust.wav", db0, 1, 275}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_4_exhaust.wav", db0, 1, 300}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_6_exhaust.wav", db0, 1, 325}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_8_exhaust.wav", db0, 1, 350}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_9_exhaust.wav", db0, 1, 375}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_11_exhaust.wav", db0, 1, 400}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_12_exhaust.wav", db0, 1, 425}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_14_exhaust.wav", db0, 1, 450}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class Idle_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_idle.wav", db-10, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class Engine_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_2.wav", 0.1, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_3.wav", 0.1, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_4.wav", 0.1, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_6.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_8.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_9.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_11.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_12.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_14.wav", 0.1, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class IdleThrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_idle_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class EngineThrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_2_exhaust.wav", db0, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_3_exhaust.wav", db0, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_4_exhaust.wav", db0, 1}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_6_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_8_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_9_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_11_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_12_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_14_exhaust.wav", db0, 1}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class Movement { sound = "soundEnviron"; frequency = "1"; volume = "0"; }; class TiresRockOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_rock_final_2.wav", 0.1, 1.0, 120}; frequency = "1"; volume = "camPos*rock*(speed factor[2, 20])"; }; class TiresSandOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-sand1.wav", 0.1, 1.0, 120}; frequency = "1"; volume = "camPos*sand*(speed factor[2, 20])"; }; class TiresGrassOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_road_final_1.wav", 0.1, 1.0, 120}; frequency = "1"; volume = "camPos*grass*(speed factor[2, 20])"; }; class TiresMudOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-mud2.wav", 0.1, 1.0, 120}; frequency = "1"; volume = "camPos*mud*(speed factor[2, 20])"; }; class TiresGravelOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_rock_final_2.wav", db-10, 1.0, 120}; frequency = "1"; volume = "camPos*gravel*(speed factor[2, 20])"; }; class TiresAsphaltOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_road_final_1.wav", 0.281838, 1.0, 120}; frequency = "1"; volume = "camPos*asphalt*(speed factor[2, 20])"; }; class NoiseOut { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_soft_ext_1.wav", 0.1, 1.0, 120}; frequency = "1"; volume = "camPos*(damper0 max 0.02)*(speed factor[0, 8])"; }; class TiresRockIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_rock_final_2.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(1-camPos)*rock*(speed factor[2, 20])"; }; class TiresSandIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-sand2.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(1-camPos)*sand*(speed factor[2, 20])"; }; class TiresGrassIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_road_final_1.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(1-camPos)*grass*(speed factor[2, 20])"; }; class TiresMudIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-mud2.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(1-camPos)*mud*(speed factor[2, 20])"; }; class TiresGravelIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_rock_final_2.wav", db-37, 1.0}; frequency = "1"; volume = "(1-camPos)*gravel*(speed factor[2, 20])"; }; class TiresAsphaltIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_road_final_1.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(1-camPos)*asphalt*(speed factor[2, 20])"; }; class NoiseIn { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_soft_int_1.wav", 0.0177828, 1.0}; frequency = "1"; volume = "(damper0 max 0.03)*(speed factor[0, 8])*(1-camPos)"; }; class breaking_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 10])"; }; class acceleration_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; class breaking_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 10])"; }; class acceleration_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; class breaking_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 6])"; }; class acceleration_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; class breaking_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 6])"; }; class acceleration_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; }; class RenderTargets { class LeftMirror { renderTarget = "rendertarget0"; class CameraView1 { pointPosition = "PIP0_pos"; pointDirection = "PIP0_dir"; renderQuality = 2; renderVisionMode = 0; fov = 0.7; }; }; class IntMirror { renderTarget = "rendertarget1"; class CameraView1 { pointPosition = "PIP1_pos"; pointDirection = "PIP1_dir"; renderQuality = 2; renderVisionMode = 0; fov = 0.7; }; }; }; driverLeftHandAnimName = "drivewheel"; driverRightHandAnimName = "drivewheel"; thrustDelay = 0.1; brakeIdleSpeed = 0.78; maxSpeed = 320; // max speed on level road, km/h fuelCapacity = 45; wheelCircumference = 2.805; antiRollbarForceCoef = 0; antiRollbarForceLimit = 40; antiRollbarSpeedMin = 2; antiRollbarSpeedMax = 50; idleRpm = 900; redRpm = 3500; class complexGearbox { GearboxRatios[] = {"R1", -5.367, "N", 0, "D1", 5.367, "D2", 3.67, "D3", 2.238, "D4", 1.00, "D5", 0.8}; TransmissionRatios[] = {"High", 5.0}; gearBoxMode = "auto"; moveOffGear = 1; driveString = "D"; neutralString = "N"; reverseString = "R"; gearUpMaxCoef = 0.8; gearDownMaxCoef = 0.5; gearUpMinCoef = 0.45; gearDownMinCoef = 0.15; transmissionDelay = 1; }; simulation = "carx"; dampersBumpCoef = 3.0; differentialType = "rear_limited"; frontRearSplit = 0.5; frontBias = 1.5; rearBias = 1.5; centreBias = 1.3; clutchStrength = 200.0; enginePower = 100; maxOmega = 900; peakTorque = 1300; dampingRateFullThrottle = 0.1; dampingRateZeroThrottleClutchEngaged = 0.35; dampingRateZeroThrottleClutchDisengaged = 0.35; torqueCurve[] = {{0.0, 0.0}, {0.25, 0.65}, {0.3, 0.8}, {0.5, 0.95}, {0.7, 1.0}, {0.8, 0.9}, {0.9, 0.8}, {1.0, 0.5}}; changeGearMinEffectivity[] = {0.95, 0.15, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95}; switchTime = 0.05; latency = 0.2; class Wheels { class LF { boneName = "wheel_1_1_damper"; steering = 1; side = "left"; center = "wheel_1_1_axis"; boundary = "wheel_1_1_bound"; width = 0.5; mass = 30; MOI = 2.8; dampingRate = 0.5; maxBrakeTorque = 6000; maxHandBrakeTorque = 6000; suspTravelDirection[] = {0, -1, 0}; suspForceAppPointOffset = "wheel_1_1_axis"; tireForceAppPointOffset = "wheel_1_1_axis"; maxCompression = 0.3; mMaxDroop = 0.1; sprungMass = 300; springStrength = 50000; springDamperRate = 3400; longitudinalStiffnessPerUnitGravity = 10000; latStiffX = 25; latStiffY = 180; frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}}; }; class LR : LF { boneName = "wheel_1_2_damper"; steering = 0; center = "wheel_1_2_axis"; boundary = "wheel_1_2_bound"; suspForceAppPointOffset = "wheel_1_2_axis"; tireForceAppPointOffset = "wheel_1_2_axis"; maxHandBrakeTorque = 0; frictionVsSlipGraph[] = {{0, 1}, {0.5, 0.75}, {1, 0.5}}; }; class RF : LF { 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"; frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}}; }; class RR : RF { boneName = "wheel_2_2_damper"; steering = 0; center = "wheel_2_2_axis"; boundary = "wheel_2_2_bound"; suspForceAppPointOffset = "wheel_2_2_axis"; tireForceAppPointOffset = "wheel_2_2_axis"; maxHandBrakeTorque = 0; frictionVsSlipGraph[] = {{0, 1}, {0.5, 0.75}, {1, 0.5}}; }; }; class Exhausts { class Exhaust1 { position = "exhaust1_pos"; direction = "exhaust1_dir"; effect = "ExhaustEffectOffroad"; }; class Exhaust2 { position = "exhaust2_pos"; direction = "exhaust2_dir"; effect = "ExhaustEffectOffroad"; }; }; class Damage { tex[] = {}; mat[] = {"A3\soft_F\Offroad\Data\offroad_ext.rvmat", "A3\soft_F\Offroad\Data\offroad_ext_damage.rvmat", "A3\soft_F\Offroad\Data\offroad_ext_destruct.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_base.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_base_damage.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_base_destruct.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_board.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_board_damage.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_board_destruct.rvmat", "A3\soft_F\Offroad\Data\Offroad_ext_plastic.rvmat", "A3\soft_F\Offroad\Data\Offroad_ext_damage.rvmat", "A3\soft_F\Offroad\Data\Offroad_ext_destruct.rvmat", "A3\data_f\glass_veh.rvmat", "A3\data_f\Glass_veh_damage.rvmat", "A3\data_f\Glass_veh_damage.rvmat", "A3\data_f\glass_veh_int.rvmat", "A3\data_f\Glass_veh_damage.rvmat", "A3\data_f\Glass_veh_damage.rvmat"}; }; class Reflectors { class Left { color[] = {0.75, 0.75, 0.85}; ambient[] = {0.0005, 0.0005, 0.0005}; position = "L svetlo"; direction = "konec L svetla"; hitpoint = "L svetlo"; selection = "L svetlo"; size = 1; innerAngle = 35; outerAngle = 180; coneFadeCoef = 40; intensity = 400; useFlare = 0; dayLight = 0; flareSize = 0.75; class Attenuation { start = 1; constant = 2.0; linear = 0.0; quadratic = 15.0; }; }; class Right : Left { position = "P svetlo"; direction = "konec P svetla"; hitpoint = "P svetlo"; selection = "P svetlo"; }; class Right2 : Right { position = "R_light_flare"; useFlare = 1; }; class Left2 : Left { position = "L_light_flare"; useFlare = 1; }; }; aggregateReflectors[] = {{"Left", "Right", "Left2", "Right2"}}; }; }; just dump this into a new config.cpp and pbo it 1 1 Share this post Link to post Share on other sites
max power 21 Posted March 10, 2013 Amazing post, Sakura_Chan. Thank you! Share this post Link to post Share on other sites
soldier2390 0 Posted March 10, 2013 Very nice Sakura, I wish to bring what I do have of my M931 Tractor-Trailers from Arma2 to Arma3(though I will deffinitly release them for A2 still). But I do think my Arma3 version could be alot more better/realistic and over all fun to use, versus the limited/confined in terms of realism Arma2 version, compared to its real life counterpart! However I am having still a hard time understanding of this stuff in Arma2 so I am afraid unless I have a magical learning curve with this stuff it maby be some time before even what I do have of the M931's are seen in Arma3! But none the less this is helpful and myself and many others will be thankful for this. Thanks Sakura! P.s. Sakura, do you think my problem of being able to properly simulate the dreaded "seperate Trailer attached to Tractor" problem will be solved with the new physics stuff in Arma3? And if so could you explain how to me please? I have been stuck on this since Arma1! Dave, Share this post Link to post Share on other sites
Jonzie 11 Posted March 10, 2013 Hey funny you should post this because i did that same thing, edited the offroad so it would do burnouts ;) i have also been try to port one of my arma 2 cars to arma 3 i have got it in but i can get it to move i think it is in the config i get this error in the rpt ("Error: Wheel reference not initialized" and this "Unexpected control type") i don't know what they mean yet and was hoping someone dose or if someone know where i can find the arma 3 vehicle sample models and model.cfg This if my config.cpp and model.cfg config.cpp 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 soft_f : Offroad\config.bin{ class DefaultEventhandlers; class CfgPatches { class Subaru_Wrx { units[] = {"Subaru_Wrx"}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Soft_F"}; }; }; class WeaponFireGun; class WeaponCloudsGun; class WeaponFireMGun; class WeaponCloudsMGun; class CfgVehicles { class LandVehicle; class Car: LandVehicle { class HitPoints; class NewTurret; }; class Car_F: Car { class Turrets { class MainTurret: NewTurret { class ViewOptics; }; }; class HitPoints { class HitLFWheel; class HitLBWheel; class HitRFWheel; class HitRBWheel; class HitBody; class HitGlass1{}; class HitGlass2; }; class EventHandlers; class AnimationSources; }; class Rallycars_Base: Car_F { mapSize = 6.12; _generalMacro = "Rallycars_Base"; displayName = "$STR_A3_CfgVehicles_Offroad_Base0"; nameSound = "veh_car"; class Library { libTextDesc = "$STR_A3_CfgVehicles_Offroad_Base_Library0"; }; model = "Jonzie_Rally_Cars\Subaru_Wrx\Subaru_Wrx.p3d"; picture = "\A3\soft_f\offroad\Data\UI\offroad_base_CA.paa"; Icon = "\A3\soft_f\offroad\Data\UI\map_offroad_CA.paa"; accuracy = 0.25; transportSoldier = 1; transportMaxBackpacks = 0; armor = 32; cost = 50000; class TransportItems { class _xx_FirstAidKit { name = "FirstAidKit"; count = 6; }; }; hiddenSelections[] = {}; hiddenSelectionsTextures[] = {}; class HitPoints: HitPoints { class HitLFWheel: HitLFWheel { armor = 0.125; passThrough = 0; }; class HitLF2Wheel: HitLBWheel { armor = 0.125; passThrough = 0; }; class HitRFWheel: HitRFWheel { armor = 0.125; passThrough = 0; }; class HitRF2Wheel: HitRBWheel { armor = 0.125; passThrough = 0; }; class HitFuel { armor = 0.5; material = -1; name = "palivo"; visual = ""; passThrough = 0.2; }; class HitEngine { armor = 0.5; material = -1; name = "motor"; visual = ""; passThrough = 0.2; }; class HitBody: HitBody { visual = "camo"; passThrough = 1; }; class HitGlass1: HitGlass1 { armor = 0.25; }; class HitGlass2: HitGlass2 { armor = 0.25; }; }; steerAheadSimul = 0.5; steerAheadPlan = 0.35; predictTurnPlan = 0.8; predictTurnSimul = 0.6; precision = 10; brakeDistance = 50; turnCoef = 3.5; driverAction = "driver_offroad01"; cargoAction[] = {"passenger_low01"}; getInAction = "GetInLow"; getOutAction = "GetOutLow"; cargoGetInAction[] = {"GetInLow"}; cargoGetOutAction[] = {"GetOutLow"}; fireResistance = 5; wheelDestroyRadiusCoef = 0.75; soundGetIn[] = {"A3\Sounds_F\vehicles\soft\offroad\offroad-int-openclose.wav",1.0,1}; soundGetOut[] = {"A3\Sounds_F\vehicles\soft\offroad\offroad-int-openclose.wav",1.0,1,40}; soundDammage[] = {"",0.56234133,1}; soundEngineOnInt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_start.wav",1.0,1.0}; soundEngineOnExt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_start.wav",1.0,1.0,200}; soundEngineOffInt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_stop.wav",1.0,1.0}; soundEngineOffExt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_stop.wav",1.0,1.0,200}; class Sounds { class Idle_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_idle.wav",1.0,1,100}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class Engine { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_2.wav",1.0,1,200}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_3.wav",1.0,1,225}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_4.wav",1.0,1,250}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_6.wav",1.0,1,275}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_8.wav",1.0,1,300}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_9.wav",1.0,1,325}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_11.wav",1.0,1,350}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_12.wav",1.0,1,375}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_14.wav",1.0,1,400}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*camPos*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class IdleThrust { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_idle_exhaust.wav",1.0,1,200}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class EngineThrust { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_2_exhaust.wav",1.0,1,250}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_3_exhaust.wav",1.0,1,275}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_4_exhaust.wav",1.0,1,300}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_6_exhaust.wav",1.0,1,325}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_8_exhaust.wav",1.0,1,350}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_9_exhaust.wav",1.0,1,375}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_11_exhaust.wav",1.0,1,400}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_12_exhaust.wav",1.0,1,425}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_14_exhaust.wav",1.0,1,450}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class Idle_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_idle.wav",0.31622776,1}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class Engine_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_2.wav",0.1,1}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_3.wav",0.1,1}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_4.wav",0.1,1}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_6.wav",0.1,1}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_8.wav",0.1,1}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_9.wav",0.1,1}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_11.wav",0.1,1}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_12.wav",0.1,1}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_14.wav",0.1,1}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class IdleThrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_idle_exhaust.wav",1.0,1}; frequency = "0.95 + ((rpm/ 3500) factor[(100/ 3500),(600/ 3500)])*0.15"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(100/ 3500),(200/ 3500)]) * ((rpm/ 3500) factor[(530/ 3500),(380/ 3500)]))"; }; class EngineThrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_2_exhaust.wav",1.0,1}; frequency = "0.9 + ((rpm/ 3500) factor[(380/ 3500),(840/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(380/ 3500),(530/ 3500)]) * ((rpm/ 3500) factor[(850/ 3500),(650/ 3500)]))"; }; class Engine1_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_3_exhaust.wav",1.0,1}; frequency = "0.9 + ((rpm/ 3500) factor[(660/ 3500),(1130/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(650/ 3500),(840/ 3500)]) * ((rpm/ 3500) factor[(1130/ 3500),(940/ 3500)]))"; }; class Engine2_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_4_exhaust.wav",1.0,1}; frequency = "0.9 + ((rpm/ 3500) factor[(930/ 3500),(1340/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1000/ 3500),(1130/ 3500)]) * ((rpm/ 3500) factor[(1340/ 3500),(1200/ 3500)]))"; }; class Engine3_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_6_exhaust.wav",1.0,1}; frequency = "0.95 + ((rpm/ 3500) factor[(1200/ 3500),(1620/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1100/ 3500),(1300/ 3500)]) * ((rpm/ 3500) factor[(1600/ 3500),(1400/ 3500)]))"; }; class Engine4_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_8_exhaust.wav",1.0,1}; frequency = "0.95 + ((rpm/ 3500) factor[(1400/ 3500),(2000/ 3500)]) *0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1300/ 3500),(1600/ 3500)]) * ((rpm/ 3500) factor[(2000/ 3500),(1700/ 3500)]))"; }; class Engine5_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_9_exhaust.wav",1.0,1}; frequency = "0.95 + ((rpm/ 3500) factor[(1700/ 3500),(2250/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1600/ 3500),(2000/ 3500)]) * ((rpm/ 3500) factor[(2250/ 3500),(2050/ 3500)]))"; }; class Engine6_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_11_exhaust.wav",1.0,1}; frequency = "0.95 + ((rpm/ 3500) factor[(2050/ 3500),(2600/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(1900/ 3500),(2250/ 3500)]) * ((rpm/ 3500) factor[(2600/ 3500),(2400/ 3500)]))"; }; class Engine7_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_12_exhaust.wav",1.0,1}; frequency = "0.95 + ((rpm/ 3500) factor[(2400/ 3500),(3050/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3500) factor[(2300/ 3500),(2600/ 3500)]) * ((rpm/ 3500) factor[(3050/ 3500),(2650/ 3500)]))"; }; class Engine8_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_14_exhaust.wav",1.0,1}; frequency = "0.95 + ((rpm/ 3500) factor[(2650/ 3500),(3500/ 3500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 3500) factor[(2400/ 3500),(3200/ 3500)])"; }; class Movement { sound = "soundEnviron"; frequency = "1"; volume = "0"; }; class TiresRockOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_rock_final_2.wav",0.1,1.0,120}; frequency = "1"; volume = "camPos*rock*(speed factor[2, 20])"; }; class TiresSandOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-sand1.wav",0.1,1.0,120}; frequency = "1"; volume = "camPos*sand*(speed factor[2, 20])"; }; class TiresGrassOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_road_final_1.wav",0.1,1.0,120}; frequency = "1"; volume = "camPos*grass*(speed factor[2, 20])"; }; class TiresMudOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-mud2.wav",0.1,1.0,120}; frequency = "1"; volume = "camPos*mud*(speed factor[2, 20])"; }; class TiresGravelOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_rock_final_2.wav",0.31622776,1.0,120}; frequency = "1"; volume = "camPos*gravel*(speed factor[2, 20])"; }; class TiresAsphaltOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_road_final_1.wav",0.2818383,1.0,120}; frequency = "1"; volume = "camPos*asphalt*(speed factor[2, 20])"; }; class NoiseOut { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_soft_ext_1.wav",0.1,1.0,120}; frequency = "1"; volume = "camPos*(damper0 max 0.02)*(speed factor[0, 8])"; }; class TiresRockIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_rock_final_2.wav",0.017782794,1.0}; frequency = "1"; volume = "(1-camPos)*rock*(speed factor[2, 20])"; }; class TiresSandIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-sand2.wav",0.017782794,1.0}; frequency = "1"; volume = "(1-camPos)*sand*(speed factor[2, 20])"; }; class TiresGrassIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_road_final_1.wav",0.017782794,1.0}; frequency = "1"; volume = "(1-camPos)*grass*(speed factor[2, 20])"; }; class TiresMudIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-mud2.wav",0.017782794,1.0}; frequency = "1"; volume = "(1-camPos)*mud*(speed factor[2, 20])"; }; class TiresGravelIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_rock_final_2.wav",0.014125375,1.0}; frequency = "1"; volume = "(1-camPos)*gravel*(speed factor[2, 20])"; }; class TiresAsphaltIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_road_final_1.wav",0.017782794,1.0}; frequency = "1"; volume = "(1-camPos)*asphalt*(speed factor[2, 20])"; }; class NoiseIn { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_soft_int_1.wav",0.017782794,1.0}; frequency = "1"; volume = "(damper0 max 0.03)*(speed factor[0, 8])*(1-camPos)"; }; class breaking_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04.wav",1.0,1,100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 10])"; }; class acceleration_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav",1.0,1,100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav",1.0,1,100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav",1.0,1,100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; class breaking_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04.wav",1.0,1,100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 10])"; }; class acceleration_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav",1.0,1,100}; frequency = 1; volume = "engineOn*camPos*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav",1.0,1,100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav",1.0,1,100}; frequency = 1; volume = "engineOn*camPos*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; class breaking_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int.wav",1.0,1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 6])"; }; class acceleration_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav",1.0,1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav",1.0,1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav",1.0,1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; class breaking_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int.wav",1.0,1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 6])"; }; class acceleration_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav",1.0,1}; frequency = 1; volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav",1.0,1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav",1.0,1}; frequency = 1; volume = "engineOn*(1-camPos)*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; }; class RenderTargets { class LeftMirror { renderTarget = "rendertarget0"; class CameraView1 { pointPosition = "PIP0_pos"; pointDirection = "PIP0_dir"; renderQuality = 2; renderVisionMode = 0; fov = 0.7; }; }; class IntMirror { renderTarget = "rendertarget1"; class CameraView1 { pointPosition = "PIP1_pos"; pointDirection = "PIP1_dir"; renderQuality = 2; renderVisionMode = 0; fov = 0.7; }; }; }; driverLeftHandAnimName = "volant"; driverRightHandAnimName = "volant"; thrustDelay = 0.2; brakeIdleSpeed = 1.78; maxSpeed = 165; fuelCapacity = 45; wheelCircumference = 1.805; antiRollbarForceCoef = 0; antiRollbarForceLimit = 10; antiRollbarSpeedMin = 3; antiRollbarSpeedMax = 100; idleRpm = 400; redRpm = 3500; class complexGearbox { GearboxRatios[] = {"R1",-6.575,"N",0,"D1",2.367,"D2",1.67,"D3",1.238,"D4",0.99,"D5",0.802,"D6",0.601}; TransmissionRatios[] = {"High",6.0}; gearBoxMode = "auto"; moveOffGear = 1; driveString = "D"; neutralString = "N"; reverseString = "R"; gearUpMaxCoef = 0.8; gearDownMaxCoef = 0.5; gearUpMinCoef = 0.45; gearDownMinCoef = 0.15; transmissionDelay = 2; }; simulation = "carx"; dampersBumpCoef = 3.0; differentialType = "all_limited"; frontRearSplit = 0.5; frontBias = 1.5; rearBias = 1.5; centreBias = 1.3; clutchStrength = 15.0; enginePower = 200; maxOmega = 370; peakTorque = 320; dampingRateFullThrottle = 0.08; dampingRateZeroThrottleClutchEngaged = 0.35; dampingRateZeroThrottleClutchDisengaged = 0.35; torqueCurve[] = { { 0.0,0.0 }, { 0.25,0.65 }, { 0.3,0.8 }, { 0.5,0.95 }, { 0.7,1.0 }, { 0.8,0.9 }, { 0.9,0.8 }, { 1.0,0.5 }}; changeGearMinEffectivity[] = {0.95,0.15,0.95,0.95,0.95,0.95,0.95,0.95}; switchTime = 0.31; latency = 1.5; class Wheels { class LF { boneName = "wheel_1_1_zatoc"; steering = 1; side = "left"; center = "wheel_1_1"; boundary = "wheel_1_1_bound"; width = "0.2"; mass = 30; MOI = 2.8; dampingRate = 0.5; maxBrakeTorque = 2000; maxHandBrakeTorque = 0; suspTravelDirection[] = {0,-1,0}; suspForceAppPointOffset = "wheel_1_1_axis"; tireForceAppPointOffset = "wheel_1_1_axis"; maxCompression = 0.05; mMaxDroop = 0.1; sprungMass = 400; springStrength = 14400; springDamperRate = 1920; longitudinalStiffnessPerUnitGravity = 10000; latStiffX = 25; latStiffY = 180; frictionVsSlipGraph[] = { { 0,1 }, { 0.5,1 }, { 1,1 }}; }; class LR: LF { boneName = "wheel_1_2_zatoc"; steering = 0; center = "wheel_1_2"; boundary = "wheel_1_2_bound"; suspForceAppPointOffset = "wheel_1_2_axis"; tireForceAppPointOffset = "wheel_1_2_axis"; maxHandBrakeTorque = 3000; }; class RF: LF { boneName = "wheel_2_1_zatoc"; center = "wheel_2_1"; boundary = "wheel_2_1_bound"; suspForceAppPointOffset = "wheel_2_1_axis"; tireForceAppPointOffset = "wheel_2_1_axis"; steering = 1; side = "right"; }; class RR: RF { boneName = "wheel_2_2_zatoc"; steering = 0; center = "wheel_2_2"; boundary = "wheel_2_2_bound"; suspForceAppPointOffset = "wheel_2_2_axis"; tireForceAppPointOffset = "wheel_2_2_axis"; maxHandBrakeTorque = 3000; }; }; class Exhausts { class Exhaust1 { position = "exhaust1_pos"; direction = "exhaust1_dir"; effect = "ExhaustEffectOffroad"; }; class Exhaust2 { position = "exhaust2_pos"; direction = "exhaust2_dir"; effect = "ExhaustEffectOffroad"; }; }; class Damage { tex[] = {}; mat[] = {"A3\soft_F\Offroad\Data\offroad_ext.rvmat","A3\soft_F\Offroad\Data\offroad_ext_damage.rvmat","A3\soft_F\Offroad\Data\offroad_ext_destruct.rvmat","A3\soft_F\Offroad\Data\Offroad_int_base.rvmat","A3\soft_F\Offroad\Data\Offroad_int_base_damage.rvmat","A3\soft_F\Offroad\Data\Offroad_int_base_destruct.rvmat","A3\soft_F\Offroad\Data\Offroad_int_board.rvmat","A3\soft_F\Offroad\Data\Offroad_int_board_damage.rvmat","A3\soft_F\Offroad\Data\Offroad_int_board_destruct.rvmat","A3\soft_F\Offroad\Data\Offroad_ext_plastic.rvmat","A3\soft_F\Offroad\Data\Offroad_ext_damage.rvmat","A3\soft_F\Offroad\Data\Offroad_ext_destruct.rvmat","A3\data_f\glass_veh.rvmat","A3\data_f\Glass_veh_damage.rvmat","A3\data_f\Glass_veh_damage.rvmat","A3\data_f\glass_veh_int.rvmat","A3\data_f\Glass_veh_damage.rvmat","A3\data_f\Glass_veh_damage.rvmat"}; }; class Reflectors { class Left { color[] = {0.75,0.75,0.85}; ambient[] = {0.0005,0.0005,0.0005}; position = "L svetlo"; direction = "konec L svetla"; hitpoint = "L svetlo"; selection = "L svetlo"; size = 1; innerAngle = 35; outerAngle = 180; coneFadeCoef = 40; intensity = 400; useFlare = 0; dayLight = 0; flareSize = 0.75; class Attenuation { start = 1; constant = 2.0; linear = 0.0; quadratic = 15.0; }; }; class Right: Left { position = "P svetlo"; direction = "konec P svetla"; hitpoint = "P svetlo"; selection = "P svetlo"; }; class Right2: Right { position = "R_light_flare"; useFlare = 1; }; class Left2: Left { position = "L_light_flare"; useFlare = 1; }; }; aggregateReflectors[] = { { "Left","Right","Left2","Right2" }}; }; class Subaru_Wrx: Rallycars_Base { _generalMacro = "Subaru_Wrx"; model = "Jonzie_Rally_Cars\Subaru_Wrx\Subaru_Wrx.p3d"; displayName = "Subaru Wrx"; scope = 2; crew = "C_man_1"; side = 3; faction = "CIV_F"; accuracy = 1.25; class Turrets{}; }; }; //}; model.cfg class Rotation; class CfgSkeletons { class Vehicle { isDiscrete=1; skeletonInherit=""; skeletonBones[]={}; }; class Subaru_Wrx: Vehicle { skeletonBones[]= { "volant", "", "wheel_1_1 tlumic", "", "wheel_2_1 tlumic", "", "levy dalsi tlumic", "", "pravy dalsi tlumic", "", "wheel_1_1 zatoc", "wheel_1_1 tlumic", "wheel_2_1 zatoc", "wheel_2_1 tlumic", "levy dalsi zatoc", "levy dalsi tlumic", "pravy dalsi zatoc", "pravy dalsi tlumic", "levy prostredni tlumic", "", "pravy prostredni tlumic", "", "wheel_1_2 tlumic", "", "wheel_2_2 tlumic", "", "wheel_1_1", "wheel_1_1 zatoc", "wheel_2_1", "wheel_2_1 zatoc", "levy dalsi", "levy dalsi zatoc", "pravy dalsi", "pravy dalsi zatoc", "levy prostredni", "levy prostredni tlumic", "pravy prostredni", "pravy prostredni tlumic", "wheel_1_2", "wheel_1_2 tlumic", "wheel_2_2", "wheel_2_2 tlumic", "ukaz_rychlo", "", "ukaz_rychlo2", "", "ukaz_rpm", "", "OtocVez", "", "OtocHlaven", "OtocVez", "fuel_01", "", "fuel_1", "", "prop_01", "", "prop_02", "", "prop_2", "", "prop_1", "", "damageHide", "", "damageVez", "OtocVez", "damageHlaven", "OtocHlaven" }; }; }; class CfgModels { class Vehicle { sections[]={}; sectionsInherit=""; skeletonName=""; }; class Subaru_Wrx: Vehicle { isDiscrete = 1; sectionsInherit=""; sections[]= { "Body","Lett_1","Lett_2","Lett_3","num_1","num_2","num_3", "sklo predni p", "sklo predni l", "zadni svetlo", "brzdove svetlo", "spz", "karoserie", "motor", "zbran", "vez", "zbytek", "wheel_1_1", "levy prostredni", "wheel_1_2", "wheel_2_1", "pravy prostredni", "wheel_2_2", "clan", "clan_sign", "zasleh", "P svetlo", "L svetlo", "palivo" }; skeletonName="Subaru_Wrx"; class Animations { class damageHide { type="hide"; source="damage"; selection="damageHide"; }; class IndicatorSpeed { animPeriod=0; type="rotation"; source="speed"; selection="ukaz_rychlo"; axis="osa_rychlo"; memory=0; minValue=0; maxValue=16.67; angle0=0; angle1=2.8797929; }; class IndicatorSpeed2 { type="rotation"; source="speed"; selection="ukaz_rychlo2"; axis="osa_rychlo2"; memory="false"; animPeriod=0; minValue=0; maxValue=16.67; angle0=0; angle1="rad -240"; }; class IndicatorRPM { animPeriod=0; type="rotation"; source="rpm"; selection="ukaz_rpm"; axis="osa_rpm"; memory=0; minValue=0; maxValue=1; angle0=0; angle1=2.9670601; }; class wheel_1_1_destruct { type="hide"; source="HitLFWheel"; selection="wheel_1_1"; minValue = 0; maxValue = 1; minPhase = 0; maxPhase = 1; hideValue = 0.990000; }; class wheel_1_2_destruct { type="hide"; source="HitLBWheel"; selection="wheel_1_2"; minValue = 0; maxValue = 1; minPhase = 0; maxPhase = 1; hideValue = 0.990000; }; class wheel_2_1_destruct { type="hide"; source="HitRFWheel"; selection="wheel_2_1"; minValue = 0; maxValue = 1; minPhase = 0; maxPhase = 1; hideValue = 0.990000; }; class wheel_2_2_destruct { type="hide"; source="HitRBWheel"; selection="wheel_2_2"; minValue = 0; maxValue = 1; minPhase = 0; maxPhase = 1; hideValue = 0.990000; }; class wheel_1_1_destruct_unhide { type="hide"; source="HitLFWheel"; SourceAddress = "mirror"; selection="wheel_1_1_unhide"; minValue = -1; maxValue = 0; minPhase = -1; maxPhase = 0; hideValue = 0.010000; }; class wheel_1_2_destruct_unhide { type="hide"; source="HitLBWheel"; selection="wheel_1_2_unhide"; minValue = -1; maxValue = 0; SourceAddress = "mirror"; hideValue = 0.010000; }; class wheel_2_1_destruct_unhide { type="hide"; source="HitRFWheel"; selection="wheel_2_1_unhide"; minValue = -1; maxValue = 0; SourceAddress = "mirror"; hideValue = 0.010000; }; class wheel_2_2_destruct_unhide { type="hide"; source="HitRBWheel"; selection="wheel_2_2_unhide"; minValue = -1; maxValue = 0; SourceAddress = "mirror"; hideValue = 0.010000; }; class DrivingWheel { type="rotation"; source="drivingWheel"; selection="volant"; begin="osaVolantZac"; end="osaVolantKon"; memory="false"; animPeriod=0; minValue=-1; maxValue=1; angle0=-8; angle1=8; }; class TurnFR { type="rotationY"; source="drivingWheel"; selection="wheel_2_1 zatoc"; axis="wheel_2_1"; memory="false"; animPeriod=0; sourceAddress="loop"; minValue="rad -180"; maxValue="rad +180"; angle0="rad +90"; angle1="rad -90"; }; class TurnFL: TurnFR { selection="wheel_1_1 zatoc"; axis="wheel_1_1"; }; class TurnFR2: TurnFR { selection="pravy dalsi zatoc "; axis="pravy dalsi"; }; class TurnFL2: TurnFR { selection="levy dalsi zatoc "; axis="levy dalsi"; }; class FR { type="rotationX"; source="wheel"; selection="wheel_2_1"; axis=""; memory="true"; animPeriod=0; sourceAddress="loop"; minValue=0; maxValue=1; angle0=0; angle1="rad -360"; }; class FR2: FR { selection="pravy dalsi"; }; class RR: FR { selection="wheel_2_2"; }; class RR2: FR { selection="pravy prostredni"; }; class FL: FR { selection="wheel_1_1"; }; class FL2: FR { selection="levy dalsi"; }; class RL: FR { selection="wheel_1_2"; }; class RL2: FR { selection="levy prostredni"; }; class DamperFR { type="translationY"; source="damper"; selection="wheel_2_1 tlumic"; axis=""; animPeriod=0; minValue=-1000; maxValue=1000; }; class DamperFR2: DamperFR { selection="pravy dalsi tlumic"; }; class DamperRR: DamperFR { selection="wheel_2_2 tlumic"; }; class DamperRR2: DamperFR { selection="pravy prostredni tlumic"; }; class DamperFL: DamperFR { selection="wheel_1_1 tlumic"; }; class DamperFL2: DamperFR { selection="levy dalsi tlumic"; }; class DamperRL: DamperFR { selection="wheel_1_2 tlumic"; }; class DamperRL2: DamperFR { selection="levy prostredni tlumic"; }; class damageVez: damageHide { selection="damageVez"; }; class damageHlaven: damageHide { selection="damageHlaven"; }; }; }; }; 1 Share this post Link to post Share on other sites
WARHEAD62 10 Posted March 10, 2013 ;) Great fun Sakura_Chan. Only thing is missing is the smoke :p even the AI drives like a pro. Share this post Link to post Share on other sites
rstratton 0 Posted March 10, 2013 does anyone know what would cause my wheels to do this? http://imageshack.us/a/img27/5838/1074102013031000006.png Share this post Link to post Share on other sites
sakura_chan 9 Posted March 10, 2013 in the wheel class, take every value relating to springs or weight and then either double them or half them. The wheel should either go up or down. once you get it at the height you want start adjusting each number until you find the right balance. Also I believe the boundingbox entry needs to reference a cube matching the dimensions of the wheel, and this box needs to be in the memory lod. Share this post Link to post Share on other sites
rstratton 0 Posted March 11, 2013 weight matches the hunter in which i based my config on Share this post Link to post Share on other sites
Redphoenix 1540 Posted March 11, 2013 This is so awesome. Someone make me a WRC Rally Car *lol* Share this post Link to post Share on other sites
Sabot And Heat 10 Posted March 13, 2013 does anyone know what would cause my wheels to do this? http://imageshack.us/a/img27/5838/1074102013031000006.png Someone put DUB wheels on your SUV while you werent looking. Share this post Link to post Share on other sites
ylguf 1 Posted March 20, 2013 https://community.bistudio.com/wiki/Arma_3_Cars_Config_Guidlines found this. it has extra info like gearBoxMode is set to full-auto by engine moveOffGear defines what gear an automatic or semi-automatic gearbox will move off from stationary in. 1 by default. Share this post Link to post Share on other sites
charliemilk 10 Posted March 21, 2013 Probably unrelated, but is there a way to change the center of mass/gravity as the vehicles seems to act very weird when cornering at high speed and seem to auto correct themselves a little to aggressively making them feel unnatural. This may currently be on purpose by Bohemia to make it more player friendly and until they get some more physics encoding in place, but I'm not 100% sure. Share this post Link to post Share on other sites
malakdecaen 3 Posted March 24, 2013 someone can share a WIP of a car work with Physx ?? just to try and see how that work , thanks by advance Share this post Link to post Share on other sites
rstratton 0 Posted March 24, 2013 seems every vehicle i put in game, the wheels wont touch the ground. i can get em close but never all the way Share this post Link to post Share on other sites
rstratton 0 Posted April 10, 2013 i guess nobody has a solution to the floating wheels issue Share this post Link to post Share on other sites
malakdecaen 3 Posted April 16, 2013 for floatting wheels , change damping rate or maxdrop or suspTravelDirection[] = {0, 1, 0}; i don't remember and it's ok !! Share this post Link to post Share on other sites
rstratton 0 Posted April 22, 2013 for floatting wheels , change damping rate or maxdrop or suspTravelDirection[] = {0, 1, 0}; i don't remember and it's ok !! ive tried everything Share this post Link to post Share on other sites
da12thMonkey 1943 Posted July 17, 2013 (edited) basic engine stuff maxSpeed = 320; max speed on level road, km/h. Does NOT change the acceleration, it is just a speed limiter like on a real car enginePower = 100; Not hp, doesn't seem to affect anything maxOmega = 900; Horsepower (maybe torque) I assume ft/lb but it could be NM or KW peakTorque = 1300; Max torque again could be ft/lb or NM idleRpm = 900; Idle RPM redRpm = 3500; Max RPM torqueCurve[] = {{0.0, 0.0}, {0.25, 0.65}, {0.3, 0.8}, {0.5, 0.95}, {0.7, 1.0}, {0.8, 0.9}, {0.9, 0.8}, {1.0, 0.5}}; the first number indicates the percentile of the curve, and the second the torque value at that percentile. Could be used to make a vehicle with instant power (supercharger), or have it really sloppy down low and then pick up at higher revs (turbo) clutchStrength = 200.0; 1 of many clutch variables. Did some looking into the config values described in the Arma 3 Cars Config Guidelines last night and came to some conclusions about the meaning of some of the above. enginePower is in kW - having compared config values for BIS vehicles with their real-life equivalents the numbers appear to match provided kW ratings for these vehicles. Conversion factor from HP to kW is 0.745699872 maxOmega is the maximum Angular Velocity (ω) that the engine can achieve (in rads/s). It is used in characterising the Power/Torque relationship, alongside the enginePower and peakTorque values in the config. As explained in the link above, in a perfectly efficient system P = τω, i.e. Power (in W) = Torque (in Nm) * Angular Velocity (in rads/s). peakTorque would logically be in Nm if the above values are in kW and rads/s and pretty much everything else in the game is in metric/SI units rather than US/imperial. Conversion factor from ft-lb to Nm is 1.35581795 RPM is related to the Angular Velocity since RPM = 60*f (f = Rotational Frequency in Hz = ω/[2*Pi]) so RPM = 60*(ω/[2*Pi]). Hence maxOmega can probably be used to indicate redRPM assuming the driver is allowed to rev all the way up to the engine's maximum output (no rev limiter), or if you want some levelling-off of power towards the red-line, by setting it above the max Angular Velocity capability of the engine. Edited September 8, 2013 by da12thMonkey edited equation to use correct SI units 1 Share this post Link to post Share on other sites
takeonmarslover 10 Posted July 18, 2013 Whenever I create a new config.cpp, paste the code, save it, and pbo it, and then put it in as an addon, It gives me an error saying A3_Soft_Offroad_Saku requires A3_Soft_Offroad(Or something), could I please have some help? Share this post Link to post Share on other sites
sakura_chan 9 Posted July 19, 2013 could I please have some help? Sorry, that was based on the Alpha offroad vehicle, its class name has changed since then. It might not work anymore as it inherits from a different class too. class Offroad_01_base; class C_Offroad_01_F: Offroad_01_base has anyone made a perfectly working car yet? Share this post Link to post Share on other sites
Sealife 22 Posted July 19, 2013 Hi only unbinarised possible for me so far , if binarise with 2x geo game crash so I guess wait only answer Share this post Link to post Share on other sites
davids 10 Posted July 19, 2013 Does anyone have any ideas on getting TankX to work properly? Share this post Link to post Share on other sites
da12thMonkey 1943 Posted July 19, 2013 Hi only unbinarised possible for me so far , if binarise with 2x geo game crash so I guess wait only answer Yes, it's understood that BIS will need to release a new version of BinPBO (and possibly O2) in order for addonmakers to be able to process the new PhysX LODs during binarisation. The same is true among a couple other new features that have been introduced for Arma 3 models (some new model.cfg parameters etc.). You either have to leave the models in MLOD format or wait for the new tools. Share this post Link to post Share on other sites
Redphoenix 1540 Posted September 7, 2013 While scavenging through the new configs for the vehicles I found some lines in the biwiki were either missing, not understandable or fully explained. At first I planned to make a new thread, but here it should fit aswell. So I thought about posting this so we get as many interested people together to lift some of those mysteries. Maybe some of the BI Dev's might add a line or two as well :P Lets start then. (First quote is out of the wiki, second from Sakura_chan.) maxOmega. BiWiki:<Type>: float <Default>: 600 which is cca 6000 rounds per minute. maxOmega = 600; maxOmega = 900; Horsepower (maybe torque) I assume ft/lb but it could be NM or KW That's all pretty vague. The idea from Sakura seems not very helpful at this point, because both values (ft/lb or kW) are totally different. At the other end, the info out of the wiki isn't very helpful either. It just stated that the float value is 1/10 of a RPM value. I personally don't know what this value means, but I always set a bit higher then "peakTorque=". So it COULD be a value of torque... gearUpMaxCoef = 0.9; gearUpMinCoef = 0.7; gearDownMaxCoef = 0.75; gearDownMinCoef = 0.7; BiWiki has no explanation. possibly to do with shift points /light throttle I thought the same as Sakura. gearUpMaxCoef defines that the gearbox will change one gear up at a maximum RPM of 90% redline-RPM. gearUpMinCoef defines that the gearbox will change one gear up when a minimum minimun of RPM of 70% redline-RPM is reached. Viceversa explanation for gearDownMax/MinCoef. BUT I made the expierience that those values won't change very much of the gearbox situation. I didn't test those values with extreme numbers, but will do that later. dampingRateFullThrottle = 0.08; dampingRateZeroThrottleClutchEngaged = 2.0; dampingRateZeroThrottleClutchDisengaged = 0.35; Explanation is totally missing, and I have no clue as well what those numbers mean. It could be values calculating the force and movement of the car. Like if you start to drive off, you will get pressed into your seats. But I have no clue if this is true.... frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}}; BiWiki has no explanation. Very important. This controls the traction of the tire. first number is friction and the second is slip I still don't understand how those values correlate with each other. Is the value 1.0 full friction/slip? what is the graph based on? kp/h and ....? Share this post Link to post Share on other sites
da12thMonkey 1943 Posted September 8, 2013 (edited) maxOmega.That's all pretty vague. The idea from Sakura seems not very helpful at this point, because both values (ft/lb or kW) are totally different. At the other end, the info out of the wiki isn't very helpful either. It just stated that the float value is 1/10 of a RPM value. I personally don't know what this value means, but I always set a bit higher then "peakTorque=". So it COULD be a value of torque... As I posted on the previous page, maxOmega appears to be the maximum angular velocity that the engine can output to the drive line, as understood from the relationship between the power and torque parameters: Power (in W) = Torque (in Nm) * Angular Velocity (in rads/s) (P = τω, ω is the Greek letter Omega). As such, it has a relationship to engine RPM. frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}};BiWiki has no explanation. I still don't understand how those values correlate with each other. Is the value 1.0 full friction/slip? what is the graph based on? kp/h and ....? Friction/slip curves normally plot tyre-road friction coefficient against "slip ratio" which is a percentage of the wheel's velocity as it stops rotating, against the velocity of the vehicle under braking inertia. E.g: http://origin-ars.els-cdn.com/content/image/1-s2.0-S1569190X11001237-gr3.jpg Not sure what curve the game would generate from the config sample you've pasted though, since all the friction coeffs seem to be 1. Edited September 8, 2013 by da12thMonkey edited equation to use correct SI units Share this post Link to post Share on other sites