Jump to content

sakura_chan

Member
  • Content Count

    730
  • Joined

  • Last visited

  • Medals

Everything posted by sakura_chan

  1. 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
  2. I'm just consolidating some of my old unfinished projects and I thought I would post this rather large project that I have almost lost interest in completely. Basically, it was the classic naval RTS wargame from the perspective of a warship/carrier's command information center. Basically the same thing as Jane's Fleet Command, Harpoon, 688(i) hunter/killer. These games were once fairly popular in the 90's, but have now disappeared from the gaming industry. There are actually a few programs out there based on this genre, like 'Red Pill' and Command: Modern Air Naval Operations, but they aren't really games in terms of the 'fun-factor'. My idea was to make a multiplayer type game where there was, in some way, a representation of all arms of the U.S. military against some undetermined foe. Think of it as the Zeus gametype but with a Zeus controlling each 'layer' of the military. The main feature was to be a 'battle queue', where non-commander players could apply for and be assigned roles or classes. If you wanted to play with a tank or aircraft, you would select that in a menu and then your commander would assign you an existing AI controlled vehicle. You could, for example take a squadron of B-52s and have a pilot fly each one across the target area. The point, if there was one, was to create a big, full scale war without ArmA's trademark "walk 10 miles and then die from an AI sniper and respawn 10 miles away". Sounds like a good idea, so why abandon it? Because ArmA. Some of the gamekillers I met: -vehicles can only navigate along a few selected angles. For example, a plane won't fly to it's waypoint at 18.5 degrees, it would first fly miles off course until the waypoint is at 0 degrees, and then it would proceed to the waypoint. -95% of the time a vehicle will not be able to complete distant waypoints without crashing into their squadmates, getting stuck on rocks (boats do this), or completely ignoring the command (helicopters will often only move to their first waypoint) -I've spent days trying to get a full size ship to work and follow waypoints, but it just doesn't seem possible without rewriting their entire movement system. They can't avoid land for instance. -Using the editor, there isn't a way to place units outside of the immediate map area. The new play area is about 600nm*600nm but the editor can't zoom out far enough, and appears to be hardcoded. -The project was just too big for one person. I would have to make my own version of Mando Missiles, not to mention simulate all the EMCON/sensors/datalinks. -I would have had to develop some sort of 'outside the map' terrain, I know someone had something like that working. -A3 doesn't simulate the curvature of the earth Cool shit: -I was making my own low-poly models. -The display system works perfectly even with hundreds of units. -Would have been able to use mods, the information was completely dynamic and based on a unit's config entry -Probably could have worked with Alive because the display system could draw anything, including 'simulated' units -unlimited map size and combat, full scale nukes, anti-satellite warfare. Full scale aircraft with realistic speeds. -I launched a B1 from Stratis. It flew over Altis to Bulgaria, headed west and then down across Greece. It ran out of gas and crashed around Athens. A3 continued to simulate butterflies. In the end I found that the effort was too much and that it may result in boring gameplay. I actually sat down with fleet command (its available on Steam) and found it to be quite boring and often frustrating. It could have just been the mission that I was playing though. I was very surprised when Zeus was announced, because it featured the 'battle master/director' gameplay that I thought would be too slow and boring for anyone to get serious about. The icons are called NTDS, the Naval Tactical Data System. The semi-circles with a letter 'M' are missiles in flight. Just as a test, it wasn't a problem to display individual bullets even in massive engagements. A real CIC system can't track bullets (probably). I had done extensive camerawork, and had several new camera modes, like flybys, "flowbys" (camera moving with vehicle but slower) and padlock views showing between a unit/missile and its target. Low-poly bomber force, this B-52 is about 5500 verts. Have the B1, B2, B-52. Low-poly Russian/warsaw/OPFOR equipment. New high-altitude lighting including near and outer space. This was taken from 62000ft and the AI had no trouble. Tu22m3 is about 2500 polys. Also have the Tu-95MS, Tu-160 Complete US sub force. Los Angeles class, 1440 polys even with VLS doors. Also included all active variants including older models with tube launch missiles only. Ohio Class, about 5600 polys with complete launch tubes. Would also include the more common converted cruise missile variant that can launch more missiles than a standard CVBG I had done extensive modeling of the '707' type airframe, including the E-3 Sentry, E-8 JSTARS, KC-135. I had modeled the multitude of engines that this type of aircraft has had over the years. E-3D AEW for joint-ops, only 4000 polys Ideas/thoughts/what should be done?
  3. What is it? ----------- An addon aimed at improving the way the player interacts with everything in ArmA. This is done with either scripting or modifications to the existing system. This is Part 1, which improves and reduces the number of actions that are available to a player. Many actions have been removed from the "action menu" and replaced with simple key strokes. It also makes configuring and referencing of the keyboard commands easier with the use of proper labeling and grouping. Download ---------- v1.01 http://sakumods.armaholic.com/Arma3/SakuKeys/SakuKeys.zip 200kb signed ReadMe SakuKeys --- Part I --- ~~~~Keybinding recommendations~~~~ "*" means it is required. The action is performed only with the keybinding. *[infantry] Gear -> inventory ------------------------> "G" *[infantry] Weapons -> switch handgun / launcher -----> "left shift + 1" *[infantry] Weapons -> switch gun / launcher ---------> "left shift + 2" -[infantry] Weapons -> cycle throw Items -------------> "left shift + 3" -[infantry] Weapons -> throw -------------------------> "Middle Mouse bttn" -[All Vehicles] Aiming and Targeting -> lock or zoom -> "Tab" *[All Vehicles] Commanding -> toggle manual fire -----> "R" *[All Vehicles] Crew Interaction -> get out ----------> "V" *[All Vehicles] Crew Interaction -> eject ------------> "2xV" -[All Vehicles] Crew Interaction -> swap gunner ------> "left shift + G" *[All Vehicles] Crew Interaction -> turn in ----------> "Z" *[All Vehicles] Crew Interaction -> turn out ---------> "X" *[Rotary Wing] Movement -> Auto-hover on -------------> "left shift + A" *[Rotary Wing] Movement -> Auto-hover off ------------> "left shift + A" *[Fixed Wing] Movement -> Gear Down ------------------> "G" *[Fixed Wing] Movement -> Gear Up --------------------> "G" *[Fixed Wing] Movement -> Flaps Down -----------------> "left shift + F" *[Fixed Wing] Movement -> Flaps Up -------------------> "left ctrl + F" -[Game] Command and Team Switch -> Select All Units --> "left ctrl + ~" -[Game] Command and Team Switch -> Commanding mode ---> "~" -[Game] Command and Team Switch -> Team Switch -------> "T" -[Game] GUI -> Previous ------------------------------> "[", "Mouse Wheel Up" -[Game] GUI -> Next ----------------------------------> "]", "Mouse Wheel Down" -[Game] GUI -> Back ----------------------------------> "Backspace", "Sec. Mouse Btn" -[Game] GUI -> Use Default Action --------------------> "Space" -[Game] GUI -> Use Selected Action -------------------> "Enter" -[Custom Controls] -> Use Action 1 -------------------> "/" *note* this key will detonate explosives ~~~~Addons~~~~~ SakuKeysActions ---- Defines the action menu items and their icons. Defines the keybinding groups SakuKeysUI --------- Modifies the appearance of the action menu, command bar, and keybinding option menu. SakukeysCursorText - Removes the "cheater" text from the cursor !!!Completely optional!!! SakuKeysHints ------ Adds text to the action menu that displays the keyboard shortcut of the selected action !!!Completely optional!!! For complete effect, please use the recommended keybindings. Only use the addon "SakuKeysHints" if you are having trouble remembering the new keyboard shortcuts. I welcome all suggestions and feedback original thread here: http://forums.bistudio.com/showthread.php?161146-KEYS-No-action-menu addendum: Okay lots of questions and a little confusion here. I was a little anxious to get the first release out for the campaign so the documentation is a little weak at this point. A few notes: 1. At no point in this version or any future version will there be any 'hard coded' keys. Absolutely everything can be changed to your preference using the standard keybinding menu. 2. This version, "Part I", contains absolutely no scripting whatsoever. This means that I cannot change the way the icons are displayed outside of the current limits (like having them bound to objects). 3. This mod will never ever forcefully change your keyboard setup. I will at some point remap the default keys, but unless you choose to use it your keybindings will be untouched. 4. I hate the weird moving icon too, so set "Configure > Game > Adaptive Crosshair" to "disabled". Turn off crosshairs and 3rd person view while you are at it lol. In later versions you will be able to have much more control over the appearance of the icons. 5. Under "Configure > Game > Layout" move the action menu just below and to the left of the crosshair. It is useless to have it off to the far side where you have to glance away to see it. The colors and appearance are all very work in progress. 6. There are a few things that aren't obvious unless you use the 'SakuKeysHint' addon. For example, the inventory key will open your parachute if you are falling, and it will also open your artillery screen if you are a gunner in an artillery piece. 7. My recommended keybindings are not a complete list, and don't include some conflicting commands that were changed. The only change I feel is necessary is to unbind the spacebar completely and rebind it to the "default action". This means you don't have to leave your movement keys to use actions.
  4. As part of the Community Upgrade Project as well as a stand alone mod, I am fixing up the ArmA2 C-130J and the MV-22. Both of these models were very rough, but its easier to fix than to make a whole new model. Features ---------- C-130J Super Hurcules ------- -"unmirrored" the model. It now has unique left and right textures and geometry, enables correct liveries and camo patterns. -reworked materials -upgraded cockpit lighting -arma 3 lights and collision lights -includes layered .psd files and blank grey textures for easy repainting -fixed 'wheels poking through the body' -animated control sticks -all new hud MV-22 Osprey --------------- -new cockpit glass material -smoother body materials, originally it looked very harsh and scratched up -slightly upgraded cockpit -improved hover-mode maneuvering - A2 version was practically unusable. I would like the AI to be able to land it. -includes layered .psd files and blank grey textures for easy repainting -animated control sticks -all new hud -arma 3 lights and collision lights I just started on the mv22, not much done to the textures yet I plan on USMC, USAF, NATO and possibly more liveries. I would like to make the C-130J-30 at some point as well, and also versions with refueling drogues. As these are modified BIS models with modified BIS textures, everyone will be free to edit and modify it without permission.
  5. sakura_chan

    ArmA 2 C-130J and MV-22 Redux

    As far as i'm concerned i wont be working on the c-130 so i will likely be "parting it out" to whoever wants it
  6. I never liked the guns in Arma because they just didn't feel powerful when you fired them. There was recoil, but only the gun moved and it felt like you were a statue with a bobbing gun attached to it. I used some code in the ammo class to give each weapon some camera shake when fired. The effect helps create the sense of distortion you get when firing large or high rate of fire weapons. The effect doesn't affect the actual aiming, recoil or dispersion of the weapon, it is just a visual effect. The effect is also based on your stance, so standing, crouching and going prone have dramatic effects on the amount of camera shake. My other gripe against the Arma guns is that they all felt like the same gun. Each type of gun has a different effect based on the type of bullet and weapon. This just uses config changes, so no scripting is involved. Only covers guns, i never changed the launchers or grenade launchers yet. Version 1.1 http://sakumods.armaholic.com/Arma3/sakuWeaponShake/SakuWeaponShake.zip buhmwM501Fc *could a mod plx fix mur spellinz in the title?
  7. sakura_chan

    ArmA 2 C-130J and MV-22 Redux

    Yes, it is still a work in progress.
  8. sakura_chan

    Keys - Enhanced Interaction System

    I will be releasing an update, but I don't know when. I usually don't mod during the spring or summer so maybe later this year?
  9. Here is a tutorial on how to make a special logo, title and website link for your mod. This is AO/CO compatible only, A2 can't do this. ----------------------------------------------------------- what you need: --------------- Your logo, transparent or not Textview2/what ever you make paa files with notepad :3 --------------- Step1: Make your logo, and save it as mod.paa it has to be 1:1 ie 128x128 Generally you don't want it to be very high res, 256x256 is plenty. In the title screen it is very small, but in the addon screen it is medium sized. use whatever resolution you want, but high res textures usually look jagged or grainy. Step 2: Put mod.paa into your mod folder, within the folder itself ie @sakumods\mod.paa Step 3: make a new .cpp in the same directory as mod.paa. name it mod.cpp put this code in there: name = "Your mod's name"; actionName = "Website"; action = "http://www.whateversiteyouwant.com"; You can enter in any website you want, so the end user can click "website" in the AO expansion screen, and they will be directed to your website/forum. Thats it! Hopefully soon everyone will be doing this
  10. sakura_chan

    Let's talk about War-Robots!

    The whole philosophy behind modern war is to cause maximum damage to the enemy while avoiding any and all casualties. Even in a truly hate-fueled, personal war like a racial or civil war, combatants would never willingly give the enemy "a fair chance" or accept some sort of sporting handicap. They would use anything and everything available to them, the only limit being what they could politically get away with.
  11. sakura_chan

    UAV overhaul

    I actually did something like this as part of another mod the uav control ui is "class RscDisplayAVTerminal". However, you can only add new buttons or scripts, you can't edit any of the existing options because it is all hard coded. From a coding perspective you could do most of those things IF you disabled the existing controls and made your own waypoint control script. Changing the camera might be possible because the geo stabilization is defined in each OpticsIn class.
  12. sakura_chan

    Ukraine General

    ^ Did anyone really expect anything different? Like in all honesty was there one person who believed Russia was gonna be of any benefit to them?
  13. sakura_chan

    Are we at the brink of World War III?

    Nope. The so-called debt is just an illusion. The only thing in life of actual value is people, and everyone has plenty in stock. America makes money through war, but I don't think they are willing to fight against a near-peer white-dominant nuclear armed country. If America cares so much about Ukraine why don't they go fix it instead of shaking their cocks at Russia?
  14. I need to use a custom map display for an add-on, which is pretty easy to set up. I can get it working, however it does not work like the editor map or the mission map at all. The biggest annoyance is that in order to zoom, you have to hold down the ctlr key and then use the scroll on the mouse. The second problem is that it never uses the map cursors, it is just stuck with the default GUI arrow. I use opendialog to load the map, i've tried the other resource commands and there was no difference. Is this something hard-coded? For example, open up team-switch ingame and see how the map behaves (although regular zoom seems to be working?). Is this something I missed or what? //---Edit--- I got the mouse zoom working. Instead of loading it from the description.ext and using createdialog, I moved it to a config.cpp and used (finddisplay 46) createdialog "rsc_name";
  15. sakura_chan

    ArmA 2 C-130J and MV-22 Redux

    Cool beans. Actually those were just photoshopped. Thanks to you I see the MV uses one dispenser per slot, and it uses the same dispenser as the UH-1Y which has tons of pictures of its dispensers. They are a lot bigger than I though as well and use round tubes instead of squares. http://www.defense.gov/dodcmsshare/photoessay/2009-03/hires_090311-M-6770H-040a.jpg I could definitely use the formation lights diagram, I have working ones already but I just pulled the position from the textures so they are probably inaccurate.
  16. sakura_chan

    ArmA 2 C-130J and MV-22 Redux

    Thanks for the excellent help Handicap. The MV and CV seem to use different dispensers, it looks like the mv has two side by side and the cv has two vertically. It also looks like the CV has a taller/different panel behind the sensors. I assumed they are using standard 5x6 cartridge type dispensers, so it should look something like this for the MV, right? and for the CV one thing I don't have any good shots of is this thing (I don't know what it is): as well as any real reference for the bottom.
  17. sakura_chan

    ArmA is the game that changed my life

    OFP came out when I was 19, and I had done a lot of modding on a few other games at that point. I played the demo a lot, though I don't remember finishing the mission. I was mostly doing star wars/star trek/babylon5 stuff at the time so once I bought the full version I made the republic gunship from Attack of the Clones. I've had a few other user names here over the years, so I've been enjoying and sometimes loathing this series daily for the last 12 years. I still haven't finished any campaigns :)
  18. sakura_chan

    Keys - Enhanced Interaction System

    Sorry about the lack of updates, I've been working on it a little bit through summer so far. I actually found out that you can edit the default video options, so I am trying some new settings. You can, for example, disable clouds and increase the view distance in PiP screens. There is no longer a restriction on maximum and minimum view distance (you can have every mission at 23km view distance without scripting), I was able to increase the number of lights, and I've added a few new options for max frames, because I do some scripting/testing on my little laptop that doesn't meet the system requirements. Using default low/off settings, I was in the 10-20fps range, but I can now push the graphics down far enough to get around 40-55fps. The biggest frame killer on a low end machine was the clouds, and for some reason BIS made it so you couldn't use the old A2 style clouds. Getting these results involved pushing the game past what could be considered a playable level though, with massive reductions in particle counts, view distance, object count and texture clarity. I'm talking Nintendo64 graphics here, but I just need it for testing so I don't care what it looks like. I've also replaced as many of the in-game icons as I could, like waypoint markers and squad indicators. I added a ton of new options to really let you set up the look of the UI. For example, you can choose from a variety of custom waypoint markers (shift + map click) and you can disable/enable many things in-game that were once only changeable by modding.
  19. sakura_chan

    1.24 weapon exaggerated sway got fixed

    A good idea, but really sloppy as an addon. Would you release a later version that only changes the sway without including the entire animation tree? Your config contains all of cfgMovesBasic even though the addon doesn't change anything in it.
  20. Try the distance_c pbo it contains all the "guts" of the scripting maybe something is going wrong in there. Everything else is just config changes
  21. Try removing "jsrs2_m134_c.pbo"? It is weird because he didn't change any weapon or armor values. Anyways, it looks like his addon is completely modular so you can delete individual addons easily and they are all named after what they change.
  22. sakura_chan

    Weapon recoild camera shake mod

    Not sure what you meanNew version released ---------------------- Increased pistol shake reduced sway in launcher aiming Reduced launcher to rifle switching time, they seemed slow compared to everything else.
  23. sakura_chan

    Weapon recoild camera shake mod

    I threw together a scripted system, and it looks promising. It can generate nice values based on any weapon you are using and should be fairly streamlined. I'll look into an A2 version as well, I did have camera shake working back in Arma1.
  24. sakura_chan

    Weapon recoild camera shake mod

    I wouldn't be able to do ever single weapon that was released, but I could at least do the bigger packs. Requests?
  25. sakura_chan

    Weapon recoild camera shake mod

    Yes this works in third person. As for a2, it is perhaps possible but it would be tougher to do because A2 doesnt have camera shake built in
×