Qinetix 304 Posted February 2, 2018 Hi all, I'm working on MRAP vehicle with commander and gunner seats. Both of them use remote controled turrets on the vehicle. Commander uses camera and gunner uses weapon station. Moreover they can use roof hatches of that vehicle. And there is my problem. For now I'm fighting with commander's turret class. Here is my config: Spoiler #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 class CfgPatches { class QIN_Titus { requiredAddons[] = {"A3_Soft_F"}; requiredVersion = 1.60; units[] = {"QIN_Titus_DES"}; weapons[] = {"QIN_10M621_20mm","QIN_M240C"}; }; }; class DefaultEventHandlers; // External class reference class WeaponFireGun; // External class reference class WeaponCloudsGun; // External class reference class WeaponFireMGun; // External class reference class WeaponCloudsMGun; // External class reference class RCWSOptics; // External class reference class Mode_FullAuto; // External class reference class DefaultVehicleSystemsDisplayManagerLeft { class components; // External class reference }; class DefaultVehicleSystemsDisplayManagerRight { class components; // External class reference }; class VehicleSystemsTemplateLeftDriver : DefaultVehicleSystemsDisplayManagerLeft { class components; // External class reference }; class VehicleSystemsTemplateRightDriver : DefaultVehicleSystemsDisplayManagerRight { class components; // External class reference }; class VehicleSystemsTemplateLeftCommander : DefaultVehicleSystemsDisplayManagerLeft { class components; // External class reference }; class VehicleSystemsTemplateRightCommander : DefaultVehicleSystemsDisplayManagerRight { class components; // External class reference }; class VehicleSystemsTemplateLeftGunner : DefaultVehicleSystemsDisplayManagerLeft { class components; // External class reference }; class VehicleSystemsTemplateRightGunner : DefaultVehicleSystemsDisplayManagerRight { class components; // External class reference }; class cfgMagazines { class Default; class VehicleMagazine : Default {}; class 300Rnd_20mm_shells : VehicleMagazine {}; class QIN_139Rnd_20mm_shells : 300Rnd_20mm_shells { count = 139; }; class 200Rnd_762x51_Belt : VehicleMagazine {}; class QIN_300Rnd_762x51_Belt : 200Rnd_762x51_Belt { count = 300; }; }; class cfgWeapons { class Default; // External class reference class MGunCore; // External class reference class CannonCore; // External class reference class gatling_20mm : CannonCore {}; class MGun : MGunCore {}; class LMG_RCWS : MGun {}; class LMG_coax : LMG_RCWS {}; class QIN_10M621_20mm : gatling_20mm { displayName = "10M261 20mm"; magazines[] = {"QIN_139Rnd_20mm_shells"}; muzzlePos = "usti hlavne"; muzzleEnd = "konec hlavne"; selectionFireAnim = "zasleh"; class manual : MGun { class StandardSound { begin1[] = {"A3\Sounds_F\arsenal\weapons_vehicles\cannon_30mm\autocannon_30mm_01",1.99526,1,1500}; soundBegin[] = {"begin1",1}; }; displayName = "10M261 20mm"; autoFire = true; sounds[] = {"StandardSound"}; reloadTime = 0.08; dispersion = 0.0022; showToPlayer = true; burst = 1; aiRateOfFire = 0.5; // delay between shots at given distance aiRateOfFireDistance = 50; minRange = 1; minRangeProbab = 0.01; midRange = 2; midRangeProbab = 0.01; maxRange = 3; maxRangeProbab = 0.01; }; class close : manual { showToPlayer = false; soundBurst = 0; burst = 10; aiRateOfFire = 0.5; // delay between shots at given distance aiRateOfFireDistance = 50; minRange = 0; minRangeProbab = 0.05; midRange = 20; midRangeProbab = 0.58; maxRange = 100; maxRangeProbab = 0.04; }; class short : close { burst = 8; aiRateOfFire = 2; // delay between shots at given distance aiRateOfFireDistance = 300; minRange = 50; minRangeProbab = 0.05; midRange = 150; midRangeProbab = 0.58; maxRange = 300; maxRangeProbab = 0.04; }; class medium : close { burst = 4; aiRateOfFire = 3; // delay between shots at given distance aiRateOfFireDistance = 600; minRange = 200; minRangeProbab = 0.05; midRange = 500; midRangeProbab = 0.58; maxRange = 800; maxRangeProbab = 0.04; }; class far : close { burst = 5; aiRateOfFire = 5; // delay between shots at given distance aiRateOfFireDistance = 1000; minRange = 600; minRangeProbab = 0.05; midRange = 800; midRangeProbab = 0.4; maxRange = 1200; maxRangeProbab = 0.01; }; }; class QIN_M240C : LMG_coax { displayName = "M240C"; magazines[] = {"QIN_300Rnd_762x51_Belt"}; class gunParticles { class effect1 { positionName = "usti hlavne2"; directionName = "konec hlavne2"; effectName = "MachineGunCloud"; }; }; class manual : MGun { sounds[] = {"StandardSound"}; displayName = "M240C"; autoFire = true; reloadTime = 0.075; dispersion = 0.0012; showToPlayer = true; burst = 1; aiRateOfFire = 0.5; // delay between shots at given distance aiRateOfFireDistance = 50; minRange = 1; minRangeProbab = 0.01; midRange = 2; midRangeProbab = 0.01; maxRange = 3; maxRangeProbab = 0.01; }; class close : manual { showToPlayer = false; soundBurst = 0; burst = 10; aiRateOfFire = 0.5; // delay between shots at given distance aiRateOfFireDistance = 50; minRange = 0; minRangeProbab = 0.05; midRange = 100; midRangeProbab = 0.58; maxRange = 200; maxRangeProbab = 0.04; }; class short : close { burst = 8; aiRateOfFire = 2; // delay between shots at given distance aiRateOfFireDistance = 300; minRange = 50; minRangeProbab = 0.05; midRange = 200; midRangeProbab = 0.58; maxRange = 400; maxRangeProbab = 0.04; }; class medium : close { burst = 4; aiRateOfFire = 3; // delay between shots at given distance aiRateOfFireDistance = 600; minRange = 300; minRangeProbab = 0.05; midRange = 400; midRangeProbab = 0.58; maxRange = 600; maxRangeProbab = 0.04; }; class far : close { burst = 5; aiRateOfFire = 5; // delay between shots at given distance aiRateOfFireDistance = 1000; minRange = 500; minRangeProbab = 0.05; midRange = 600; midRangeProbab = 0.4; maxRange = 800; maxRangeProbab = 0.01; }; }; }; class CfgVehicles { class Car; // External class reference class Car_F : Car { class HitPoints; // External class reference class NewTurret; // External class reference }; class Truck_F : Car_F { unitInfoType = "RscUnitInfoNoWeapon"; class Exhausts { class Exhaust1 { position = "exhaust_pos"; direction = "exhaust_dir"; effect = "ExhaustEffectHEMTT"; }; }; class HitPoints : HitPoints { class HitRGlass; // External class reference class HitLGlass; // External class reference class HitGlass1; // External class reference class HitGlass2; // External class reference class HitGlass3; // External class reference class HitGlass4; // External class reference class HitGlass5; // External class reference class HitGlass6; // External class reference class HitBody; // External class reference class HitFuel; // External class reference class HitLFWheel; // External class reference class HitLBWheel; // External class reference class HitLMWheel; // External class reference class HitLF2Wheel; // External class reference class HitRFWheel; // External class reference class HitRBWheel; // External class reference class HitRMWheel; // External class reference class HitRF2Wheel; // External class reference class HitEngine; // External class reference }; class EventHandlers; // External class reference class AnimationSources; // External class reference class Turrets { class MainTurret : NewTurret { class Components; // External class reference class ViewOptics; // External class reference }; class ViewGunner; // External class reference }; }; class QIN_Titus_base : Truck_F { author = "Qinetix"; mapSize = 12.02; _generalMacro = "QIN_Titus_base"; transportMaxBackpacks = 25; vehicleClass = "Car"; transportSoldier = 10; crewVulnerable = false; crewCrashProtection = 1.35; crewExplosionProtection = 0.9999; maxFordingDepth = -0.1; enableRadio = 1; enableGPS = 1; armor = 300; armorStructural = 5; cost = 500000; memoryPointsGetInCargo[] = {"pos codriver", "pos cargo"}; memoryPointsGetInCargoDir[] = {"pos codriver dir", "pos cargo dir"}; class Library { libTextDesc = ""; }; editorSubcategory = "EdSubcat_Cars"; // threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types threat[] = {0.8, 0.6, 0.3}; memoryPointTaskMarker = "TaskMarker_1_pos"; slingLoadCargoMemoryPoints[] = {"SlingLoadCargo1", "SlingLoadCargo2", "SlingLoadCargo3", "SlingLoadCargo4"}; class HitPoints : HitPoints { class HitFuel : HitFuel { armor = 1.5; passThrough = 0.2; minimalHit = 0.0; explosionShielding = 0.5; radius = 0.45; }; class HitEngine : HitEngine { armor = 0.9; passThrough = 0.2; minimalHit = 0.1; explosionShielding = 0.5; radius = 0.45; }; class HitBody : HitBody { armor = 6.0; passThrough = true; minimalHit = 0.05; explosionShielding = 0.01; radius = 0.22; }; class HitLFWheel : HitLFWheel { armor = 0.5; minimalHit = 0.02; passThrough = 0.3; explosionShielding = 4; radius = 0.33; }; class HitLBWheel : HitLBWheel { armor = 0.66; minimalHit = 0.02; passThrough = 0.3; explosionShielding = 4; radius = 0.33; }; class HitLMWheel : HitLMWheel { armor = 0.66; minimalHit = 0.02; passThrough = 0.3; explosionShielding = 4; radius = 0.33; }; class HitLF2Wheel : HitLF2Wheel { armor = 0.66; minimalHit = 0.02; passThrough = 0.3; explosionShielding = 4; radius = 0.33; }; class HitRFWheel : HitRFWheel { armor = 0.66; minimalHit = 0.02; passThrough = 0.3; explosionShielding = 4; radius = 0.33; }; class HitRBWheel : HitRBWheel { armor = 0.66; minimalHit = 0.02; passThrough = 0.3; explosionShielding = 4; radius = 0.33; }; class HitRMWheel : HitRMWheel { armor = 0.66; minimalHit = 0.02; passThrough = 0.3; explosionShielding = 4; radius = 0.33; }; class HitRF2Wheel : HitRF2Wheel { armor = 0.66; minimalHit = 0.02; passThrough = 0.3; explosionShielding = 4; radius = 0.33; }; class HitGlass1 : HitGlass1 { armor = 2; passThrough = false; explosionShielding = 3; radius = 0.25; }; class HitGlass2 : HitGlass2 { armor = 2; passThrough = false; explosionShielding = 3; radius = 0.25; }; class HitGlass3 : HitGlass3 { armor = 2; passThrough = false; explosionShielding = 3; radius = 0.25; }; class HitGlass4 : HitGlass4 { armor = 2; passThrough = false; explosionShielding = 3; radius = 0.25; }; class HitGlass5 : HitGlass5 { armor = 2; passThrough = false; explosionShielding = 3; radius = 0.25; }; class HitGlass6 : HitGlass6 { armor = 2; passThrough = false; explosionShielding = 3; radius = 0.25; }; class HitGlass7 : HitGlass6 { armor = 2; passThrough = false; explosionShielding = 3; radius = 0.25; }; }; wheelDamageThreshold = 0.7; wheelDestroyThreshold = 0.99; wheelDamageRadiusCoef = 0.95; wheelDestroyRadiusCoef = 0.45; weapons[] = {"TruckHorn2"}; driverAction = "Driver_low01"; cargoAction[] = {"passenger_generic01_foldhands", "passenger_apc_generic02", "passenger_apc_generic04", "passenger_apc_generic03", "passenger_apc_generic01", "passenger_apc_narrow_generic01", "passenger_generic01_foldhands", "passenger_generic01_leanleft", "passenger_generic01_leanright", "passenger_apc_generic01", "passenger_generic01_leanleft", "passenger_generic01_foldhands", "passenger_apc_generic02", "passenger_apc_generic03", "passenger_apc_narrow_generic01", "passenger_apc_narrow_generic03", "passenger_generic01_foldhands"}; cargoIsCoDriver[] = {1, 0}; cargoGetOutAction[] = {"GetOutMedium", "GetOutHighHemtt"}; getInAction = "GetInMRAP_01"; getOutAction = "GetOutLow"; cargoGetInAction[] = {"GetInMRAP_01", "GetInHemttBack"}; commanderCanSee = 31; hideWeaponsDriver = true; hideWeaponsCargo = true; turnCoef = 3; terrainCoef = 1.5; driverDoor = "door_lf"; cargoDoors[] = {"door_rf","door_rear"}; driverCompartments = "Compartment1"; cargoCompartments[] = {"Compartment1", "Compartment2"}; destrType = "DestructWreck"; showNVGCargo[] = {0, 1}; soundAttenuationCargo[] = {1, 0}; attenuationEffectType = "CarAttenuation"; soundGetIn[] = {"A3\Sounds_F\vehicles\soft\Truck_02\getin", 0.562341, 1}; soundGetOut[] = {"A3\Sounds_F\vehicles\soft\Truck_02\getout", 0.562341, 1, 20}; soundDammage[] = {"", 0.562341, 1}; soundEngineOnInt[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_start", 0.158489, 1.0}; soundEngineOffInt[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_stop", 0.199526, 1.0}; soundEngineOnExt[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_start", 1.0, 1.0, 200}; soundEngineOffExt[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_stop", 1.0, 1.0, 200}; buildCrash0[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_1", 1.0, 1, 200}; buildCrash1[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_2", 1.0, 1, 200}; buildCrash2[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_3", 1.0, 1, 200}; buildCrash3[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_4", 1.0, 1, 200}; soundBuildingCrash[] = {"buildCrash0", 0.25, "buildCrash1", 0.25, "buildCrash2", 0.25, "buildCrash3", 0.25}; WoodCrash0[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1", 1.0, 1, 200}; WoodCrash1[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1", 1.0, 1, 200}; WoodCrash2[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1", 1.0, 1, 200}; WoodCrash3[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1", 1.0, 1, 200}; soundWoodCrash[] = {"woodCrash0", 0.25, "woodCrash1", 0.25, "woodCrash2", 0.25, "woodCrash3", 0.25}; armorCrash0[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_1", 1.0, 1, 200}; armorCrash1[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_2", 1.0, 1, 200}; armorCrash2[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_3", 1.0, 1, 200}; armorCrash3[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_4", 1.0, 1, 200}; soundArmorCrash[] = {"ArmorCrash0", 0.25, "ArmorCrash1", 0.25, "ArmorCrash2", 0.25, "ArmorCrash3", 0.25}; Crash0[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_1", 1.0, 1, 200}; Crash1[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_2", 1.0, 1, 200}; Crash2[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_3", 1.0, 1, 200}; Crash3[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_4", 1.0, 1, 200}; soundCrashes[] = {"Crash0", 0.25, "Crash1", 0.25, "Crash2", 0.25, "Crash3", 0.25}; class Sounds { class Idle_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_engine_00", db-10, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(100/ 3000),(800/ 3000)])*0.15"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(10/ 3000),(200/ 3000)]) * ((rpm/ 3000) factor[(600/ 3000),(400/ 3000)]))"; }; class Engine_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_engine_01", 0.281838, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(610/ 3000),(1200/ 3000)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(450/ 3000),(820/ 3000)]) * ((rpm/ 3000) factor[(1200/ 3000),(1000/ 3000)]))"; }; class Engine1_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_engine_02", 0.281838, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(1000/ 3000),(1400/ 3000)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(900/ 3000),(1200/ 3000)]) * ((rpm/ 3000) factor[(1550/ 3000),(1300/ 3000)]))"; }; class Engine2_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_engine_03", 0.281838, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(1200/ 3000),(1600/ 3000)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(1200/ 3000),(1400/ 3000)]) * ((rpm/ 3000) factor[(1650/ 3000),(1500/ 3000)]))"; }; class Engine3_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_engine_04", 0.354813, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(1400/ 3000),(2200/ 3000)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(1300/ 3000),(1500/ 3000)]) * ((rpm/ 3000) factor[(2200/ 3000),(1600/ 3000)]))*1.3"; }; class Engine4_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_engine_05", 0.354813, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(1800/ 3000),(2700/ 3000)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(1800/ 3000),(2200/ 3000)]) * ((rpm/ 3000) factor[(2750/ 3000),(2400/ 3000)]))*1.3"; }; class Engine5_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_engine_06", 0.398107, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(2300/ 3000),(3000/ 3000)])*0.2"; volume = "engineOn*(1-camPos)*((rpm/ 3000) factor[(2300/ 3000),(3000/ 3000)])"; }; class Idle_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_engine_00", 0.281838, 1}; frequency = "0.9 + ((rpm/ 3000) factor[(100/ 3000),(800/ 3000)])*0.15"; volume = "engineOn*camPos*(((rpm/ 3000) factor[(10/ 3000),(200/ 3000)]) * ((rpm/ 3000) factor[(600/ 3000),(400/ 3000)]))"; }; class Engine_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_engine_01", db-10, 1}; frequency = "0.9 + ((rpm/ 3000) factor[(610/ 3000),(1200/ 3000)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3000) factor[(450/ 3000),(820/ 3000)]) * ((rpm/ 3000) factor[(1200/ 3000),(1000/ 3000)]))"; }; class Engine1_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_engine_02", 0.354813, 1}; frequency = "0.9 + ((rpm/ 3000) factor[(1000/ 3000),(1400/ 3000)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3000) factor[(900/ 3000),(1200/ 3000)]) * ((rpm/ 3000) factor[(1550/ 3000),(1300/ 3000)]))"; }; class Engine2_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_engine_03", 0.354813, 1}; frequency = "0.9 + ((rpm/ 3000) factor[(1200/ 3000),(1600/ 3000)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3000) factor[(1200/ 3000),(1400/ 3000)]) * ((rpm/ 3000) factor[(1650/ 3000),(1500/ 3000)]))"; }; class Engine3_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_engine_04", 0.398107, 1}; frequency = "0.9 + ((rpm/ 3000) factor[(1400/ 3000),(2200/ 3000)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3000) factor[(1300/ 3000),(1500/ 3000)]) * ((rpm/ 3000) factor[(2200/ 3000),(1600/ 3000)]))*1.3"; }; class Engine4_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_engine_05", 0.398107, 1}; frequency = "0.9 + ((rpm/ 3000) factor[(1800/ 3000),(2700/ 3000)])*0.2"; volume = "engineOn*camPos*(((rpm/ 3000) factor[(1800/ 3000),(2200/ 3000)]) * ((rpm/ 3000) factor[(2750/ 3000),(2400/ 3000)]))*1.3"; }; class Engine5_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_engine_06", db-7, 1}; frequency = "0.9 + ((rpm/ 3000) factor[(2300/ 3000),(3000/ 3000)])*0.2"; volume = "engineOn*camPos*((rpm/ 3000) factor[(2300/ 3000),(3000/ 3000)])"; }; class IdleThrust { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_exhaust_00", 0.630957, 1, 250}; frequency = "0.9 + ((rpm/ 3000) factor[(100/ 3000),(800/ 3000)])*0.15"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3000) factor[(10/ 3000),(200/ 3000)]) * ((rpm/ 3000) factor[(600/ 3000),(400/ 3000)]))"; }; class EngineThrust { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_exhaust_01", db-2, 1, 300}; frequency = "0.9 + ((rpm/ 3000) factor[(610/ 3000),(1200/ 3000)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3000) factor[(450/ 3000),(820/ 3000)]) * ((rpm/ 3000) factor[(1200/ 3000),(1000/ 3000)]))"; }; class Engine1_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_exhaust_02", db-3, 1, 350}; frequency = "0.9 + ((rpm/ 3000) factor[(1000/ 3000),(1400/ 3000)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3000) factor[(900/ 3000),(1200/ 3000)]) * ((rpm/ 3000) factor[(1550/ 3000),(1300/ 3000)]))"; }; class Engine2_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_exhaust_03", db0, 1, 400}; frequency = "0.9 + ((rpm/ 3000) factor[(1200/ 3000),(1600/ 3000)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3000) factor[(1200/ 3000),(1400/ 3000)]) * ((rpm/ 3000) factor[(1650/ 3000),(1500/ 3000)]))"; }; class Engine3_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_exhaust_04", db2, 1, 450}; frequency = "0.9 + ((rpm/ 3000) factor[(1400/ 3000),(2200/ 3000)])*0.1"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3000) factor[(1300/ 3000),(1500/ 3000)]) * ((rpm/ 3000) factor[(2200/ 3000),(1600/ 3000)]))"; }; class Engine4_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_exhaust_05", db2, 1, 450}; frequency = "0.9 + ((rpm/ 3000) factor[(1800/ 3000),(2700/ 3000)])*0.1"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 3000) factor[(1800/ 3000),(2200/ 3000)]) * ((rpm/ 3000) factor[(2750/ 3000),(2400/ 3000)]))"; }; class Engine5_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\ext_exhaust_06", db3, 1, 500}; frequency = "0.9 + ((rpm/ 3000) factor[(2300/ 3000),(3000/ 3000)])*0.1"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 3000) factor[(2300/ 3000),(3000/ 3000)])"; }; class IdleThrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_exhaust_00", 0.630957, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(100/ 3000),(800/ 3000)])*0.15"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(10/ 3000),(200/ 3000)]) * ((rpm/ 3000) factor[(600/ 3000),(400/ 3000)]))"; }; class EngineThrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_exhaust_01", db-13, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(610/ 3000),(1200/ 3000)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(450/ 3000),(820/ 3000)]) * ((rpm/ 3000) factor[(1200/ 3000),(1000/ 3000)]))"; }; class Engine1_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_exhaust_02", db-12}; frequency = "0.8 + ((rpm/ 3000) factor[(1000/ 3000),(1400/ 3000)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(900/ 3000),(1200/ 3000)]) * ((rpm/ 3000) factor[(1550/ 3000),(1300/ 3000)]))"; }; class Engine2_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_exhaust_03", db-12, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(1200/ 3000),(1600/ 3000)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(1200/ 3000),(1400/ 3000)]) * ((rpm/ 3000) factor[(1650/ 3000),(1500/ 3000)]))"; }; class Engine3_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_exhaust_04", 0.281838, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(1400/ 3000),(2200/ 3000)])*0.1"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(1300/ 3000),(1500/ 3000)]) * ((rpm/ 3000) factor[(2200/ 3000),(1600/ 3000)]))"; }; class Engine4_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_exhaust_05", db-10, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(1800/ 3000),(2700/ 3000)])*0.1"; volume = "engineOn*(1-camPos)*(((rpm/ 3000) factor[(1800/ 3000),(2200/ 3000)]) * ((rpm/ 3000) factor[(2750/ 3000),(2400/ 3000)]))"; }; class Engine5_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_02\int_exhaust_06", db-3, 1}; frequency = "0.8 + ((rpm/ 3000) factor[(2300/ 3000),(3000/ 3000)])*0.1"; volume = "engineOn*(1-camPos)*((rpm/ 3000) factor[(2300/ 3000),(3000/ 3000)])"; }; class TiresRockOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_dirt_soft_1", db3, 1.0, 60}; frequency = "1"; volume = "camPos*rock*(speed factor[0, 8])"; }; class TiresSandOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-sand1", db3, 1.0, 60}; frequency = "1"; volume = "camPos*sand*(speed factor[0, 8])"; }; class TiresGrassOut { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Mud", db6, 1.0, 60}; frequency = "1"; volume = "camPos*grass*(speed factor[0, 8])"; }; class TiresGrassOut_DirtLayer { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Dirt_Ext", db9, 1.0, 60}; frequency = "1"; volume = "camPos*grass*(speed factor[0, 8])"; }; class TiresMudOut { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Mud", db6, 1.0, 60}; frequency = "1"; volume = "camPos*mud*(speed factor[0, 8])"; }; class TiresMudOut_DirtLayer { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Dirt_Ext", db9, 1.0, 60}; frequency = "1"; volume = "camPos*mud*(speed factor[0, 8])"; }; class TiresGravelOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_gravel_1", db3, 1.0, 60}; frequency = "1"; volume = "camPos*gravel*(speed factor[0, 8])"; }; class TiresAsphaltOut { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Asphalt", 2.51189, 1.0, 60}; frequency = "1"; volume = "camPos*asphalt*(speed factor[0, 8])"; }; class NoiseOut { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_int_car_3", db6, 1.0, 90}; frequency = "1"; volume = "camPos*(damper0 max 0.02)*(speed factor[0, 8])"; }; class TiresRockOut_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_dirt_soft_1", db3, 1.0, 60}; frequency = "1"; volume = "camPos*rock*(speed factor[0,-2])"; }; class TiresSandOut_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-sand1", db3, 1.0, 60}; frequency = "1"; volume = "camPos*sand*(speed factor[0,-2])"; }; class TiresGrassOut_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Mud", db6, 1.0, 60}; frequency = "1"; volume = "camPos*grass*(speed factor[0,-2])"; }; class TiresGrassOut_Reverse_DirtLayer { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Dirt_Ext", db9, 1.0, 60}; frequency = "1"; volume = "camPos*grass*(speed factor[0,-2])"; }; class TiresMudOut_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Mud", db6, 1.0, 60}; frequency = "1"; volume = "camPos*mud*(speed factor[0,-2])"; }; class TiresMudOut_DirtLayer_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Dirt_Ext", db9, 1.0, 60}; frequency = "1"; volume = "camPos*mud*(speed factor[0,-2])"; }; class TiresGravelOut_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_gravel_1", db3, 1.0, 60}; frequency = "1"; volume = "camPos*gravel*(speed factor[0,-2])"; }; class TiresAsphaltOut_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Asphalt", 2.51189, 1.0, 60}; frequency = "1"; volume = "camPos*asphalt*(speed factor[0,-2])"; }; class NoiseOut_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_int_car_3", db4, 1.0, 90}; frequency = "1"; volume = "camPos*(damper0 max 0.02)*(speed factor[0,-2])"; }; class TiresRockIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_dirt_soft_1", db-2, 1.0}; frequency = "1"; volume = "(1-camPos)*rock*(speed factor[0, 10])"; }; class TiresSandIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-sand2", db-2, 1.0}; frequency = "1"; volume = "(1-camPos)*sand*(speed factor[0, 10])"; }; class TiresGrassIn { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Mud", db-6, 1.0}; frequency = "1"; volume = "(1-camPos)*grass*(speed factor[0, 10])"; }; class TiresMudIn { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Mud", db-6, 1.0}; frequency = "1"; volume = "(1-camPos)*mud*(speed factor[0, 10])"; }; class TiresGravelIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_gravel_1", 0.630957, 1.0}; frequency = "1"; volume = "(1-camPos)*gravel*(speed factor[0, 10])"; }; class TiresAsphaltIn { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Asphalt", 0.354813, 1.0}; frequency = "1"; volume = "(1-camPos)*asphalt*(speed factor[0, 10])"; }; class NoiseIn { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_int_car_3", db-13, 1.0}; frequency = "1"; volume = "(damper0 max 0.1)*(speed factor[0, 8])*(1-camPos)"; }; class TiresRockIn_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_dirt_soft_1", db-2, 1.0}; frequency = "1"; volume = "(1-camPos)*rock*(speed factor[0,-2])"; }; class TiresSandIn_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-sand2", db-2, 1.0}; frequency = "1"; volume = "(1-camPos)*sand*(speed factor[0,-2])"; }; class TiresGrassIn_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Mud", db-6, 1.0}; frequency = "1"; volume = "(1-camPos)*grass*(speed factor[0,-2])"; }; class TiresMudIn_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Mud", db-6, 1.0}; frequency = "1"; volume = "(1-camPos)*mud*(speed factor[0,-2])"; }; class TiresGravelIn_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_gravel_1", 0.630957, 1.0}; frequency = "1"; volume = "(1-camPos)*gravel*(speed factor[0,-2])"; }; class TiresAsphaltIn_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\Truck_01\Truck_01_Tires_Asphalt", 0.354813, 1.0}; frequency = "1"; volume = "(1-camPos)*asphalt*(speed factor[0,-2])"; }; class NoiseIn_Reverse { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_int_car_3", db-13, 1.0}; frequency = "1"; volume = "(damper0 max 0.1)*(speed factor[0,-2])*(1-camPos)"; }; class brakes_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04", db9, 1, 80}; frequency = 1; volume = "1.1*engineOn*camPos*asphalt*(LongSlipDrive factor[-0.02, -0.05])*(Speed factor[0, 15])"; }; class turn_left_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02", db6, 1, 80}; frequency = 1; volume = "engineOn*camPos*asphalt*(latSlipDrive factor[0, 0.1])*(Speed factor[0, 15])"; }; class turn_right_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02", db6, 1, 80}; frequency = 1; volume = "engineOn*camPos*asphalt*(latSlipDrive factor[0, -0.1])*(Speed factor[0, 15])"; }; class brakes_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_14_dirt_breaking_int", db-6, 1}; frequency = 1; volume = "engineOn*(1-asphalt)*(1-camPos)*(LongSlipDrive factor[-0.02, -0.05])*(Speed factor[2, 11])"; }; class turn_left_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt_int", 0.354813, 1}; frequency = 1; volume = "engineOn*(1-asphalt)*(1-camPos)*(latSlipDrive factor[0, 0.1])*(Speed factor[0, 10])"; }; class turn_right_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt_int", 0.354813, 1}; frequency = 1; volume = "engineOn*(1-asphalt)*(1-camPos)*(latSlipDrive factor[0, -0.1])*(Speed factor[0, 10])"; }; class brakes_ext_dirt_HI { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_15_dirt_breaking", db12, 1, 60}; frequency = 1; volume = "engineOn*camPos*(1-asphalt)*(LongSlipDrive factor[-0.01, -0.1])*(Speed factor[0, 5])"; }; class brakes_ext_dirt_LO { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_14_dirt_breaking", db12, 1, 60}; frequency = 1; volume = "engineOn*camPos*(1-asphalt)*(LongSlipDrive factor[-0.01, -0.1])*(Speed factor[0, 5])"; }; class turn_left_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt", db-3, 1, 60}; frequency = 1; volume = "engineOn*camPos*(1-asphalt)*(latSlipDrive factor[0, 0.1])*(Speed factor[0, 10])"; }; class turn_right_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt", db-3, 1, 60}; frequency = 1; volume = "engineOn*camPos*(1-asphalt)*(latSlipDrive factor[0, -0.1])*(Speed factor[0, 10])"; }; class brakes_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int", 0.354813, 1}; frequency = 1; volume = "engineOn*asphalt*(1-camPos)*(LongSlipDrive factor[-0.02, -0.05])*(Speed factor[2, 11])"; }; class turn_left_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int", db-10, 1}; frequency = 1; volume = "engineOn*asphalt*(1-camPos)*(latSlipDrive factor[0, 0.1])*(Speed factor[0, 10])"; }; class turn_right_int_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int", db-10, 1}; frequency = 1; volume = "engineOn*asphalt*(1-camPos)*(latSlipDrive factor[0, -0.1])*(Speed factor[0, 10])"; }; class Waternoise_ext { sound[] = {"A3\Sounds_F\vehicles\noises\soft_driving_in_water", db-3, 1, 300}; frequency = "1"; volume = "(speed factor[0, 5]) * water * camPos + (speed factor[-0.1, -5]) * water * camPos"; }; class Waternoise_int { sound[] = {"A3\Sounds_F\vehicles\noises\soft_driving_in_water_int", 0.562341, 1, 100}; frequency = "1"; volume = "(speed factor[0, 5]) * water * (1-camPos) + (speed factor[-0.1, -5]) * water * (1-camPos)"; }; class RainExt { sound[] = {"A3\Sounds_F\vehicles\noises\rain1_ext", db0, 1.0, 100}; frequency = 1; volume = "camPos * (rain - rotorSpeed/2) * 2"; }; class RainInt { sound[] = {"A3\Sounds_F\vehicles\noises\rain1_int", db0, 1.0, 100}; frequency = 1; volume = "(1-camPos)*(rain - rotorSpeed/2)*2"; }; }; wheelCircumference = 3.805; thrustDelay = 0.4; brakeIdleSpeed = 1.78; maxSpeed = 110; // max speed on level road, km/h fuelCapacity = 150; antiRollbarForceCoef = 12.0; antiRollbarForceLimit = 5.0; antiRollbarSpeedMin = 10; antiRollbarSpeedMax = 110; idleRpm = 600; redRpm = 2500; class complexGearbox { GearboxRatios[] = {"R1", -5.03, "N", 0, "D1", 3.49, "D2", 1.96, "D3", 1.41, "D4", 1.0, "D5", 0.75, "D6", 0.55}; TransmissionRatios[] = {"High", 8}; gearBoxMode = "auto"; moveOffGear = 1; driveString = "D"; neutralString = "N"; reverseString = "R"; }; simulation = "carx"; dampersBumpCoef = 6.0; differentialType = "all_limited"; frontRearSplit = 0.5; frontBias = 1.3; rearBias = 1.3; centreBias = 1.3; clutchStrength = 55.0; enginePower = 368; maxOmega = 262; peakTorque = 1050; dampingRateFullThrottle = 0.08; dampingRateZeroThrottleClutchEngaged = 2.0; dampingRateZeroThrottleClutchDisengaged = 0.35; torqueCurve[] = {{0.0, 0.2}, {0.278, 0.5}, {0.35, 0.85}, {0.461, 1.0}, {0.7, 0.95}, {0.75, 0.85}, {0.8, 0.7}, {1.0, 0.5}}; switchTime = 0.51; class Wheels { class L1 { boneName = "wheel_1_1_damper"; steering = 1; side = "left"; center = "wheel_1_1_axis"; boundary = "wheel_1_1_bound"; width = 0.2; mass = 80; MOI = 40; dampingRate = 0.1; dampingRateDamaged = 1.0; dampingRateDestroyed = 1000.0; maxBrakeTorque = 10000; maxHandBrakeTorque = 0; suspTravelDirection[] = {0, -1, 0}; suspForceAppPointOffset = "wheel_1_1_axis"; tireForceAppPointOffset = "wheel_1_1_axis"; maxCompression = 0.18; maxDroop = 0.15; sprungMass = 1615; springStrength = 40375; springDamperRate = 6460; longitudinalStiffnessPerUnitGravity = 10000; latStiffX = 25; latStiffY = 180; frictionVsSlipGraph[] = {{0, 1}, {0.5, 1}, {1, 1}}; }; class L2 : L1 { boneName = "wheel_1_2_damper"; steering = 1; center = "wheel_1_2_axis"; boundary = "wheel_1_2_bound"; suspForceAppPointOffset = "wheel_1_2_axis"; tireForceAppPointOffset = "wheel_1_2_axis"; }; class L3 : L1 { boneName = "wheel_1_3_damper"; steering = 0; center = "wheel_1_3_axis"; boundary = "wheel_1_3_bound"; suspForceAppPointOffset = "wheel_1_3_axis"; tireForceAppPointOffset = "wheel_1_3_axis"; maxHandBrakeTorque = 300000; }; class R1 : L1 { boneName = "wheel_2_1_damper"; center = "wheel_2_1_axis"; boundary = "wheel_2_1_bound"; suspForceAppPointOffset = "wheel_2_1_axis"; tireForceAppPointOffset = "wheel_2_1_axis"; steering = 1; side = "right"; }; class R2 : R1 { boneName = "wheel_2_2_damper"; steering = 1; center = "wheel_2_2_axis"; boundary = "wheel_2_2_bound"; suspForceAppPointOffset = "wheel_2_2_axis"; tireForceAppPointOffset = "wheel_2_2_axis"; }; class R3 : R1 { boneName = "wheel_2_3_damper"; steering = 0; center = "wheel_2_3_axis"; boundary = "wheel_2_3_bound"; suspForceAppPointOffset = "wheel_2_3_axis"; tireForceAppPointOffset = "wheel_2_3_axis"; maxHandBrakeTorque = 300000; }; }; class RenderTargets { class Gunner_display { renderTarget = "rendertarget0"; class CameraView1 { pointPosition = "PIP0_pos"; pointDirection = "PIP0_dir"; renderVisionMode = 2; renderQuality = 2; fov = 0.35; }; }; class mirrorL { renderTarget = "rendertarget1"; class mirror { pointPosition = "PIP1_pos"; pointDirection = "PIP1_dir"; renderVisionMode = 4; renderQuality = 2; fov = 0.5; }; }; class mirrorP { renderTarget = "rendertarget2"; class mirror { pointPosition = "PIP2_pos"; pointDirection = "PIP2_dir"; renderVisionMode = 4; renderQuality = 2; fov = 0.5; }; }; class mirrorC { renderTarget = "rendertarget3"; class mirror { pointPosition = "PIP3_pos"; pointDirection = "PIP3_dir"; renderVisionMode = 4; renderQuality = 2; fov = 0.5; }; }; class Driver_display1 { renderTarget = "rendertarget4"; class CameraView1 { pointPosition = "PIP4_pos"; pointDirection = "PIP4_dir"; renderVisionMode = 0; renderQuality = 2; fov = 0.7; }; }; class Driver_display2 { renderTarget = "rendertarget5"; class CameraView1 { pointPosition = "PIP5_pos"; pointDirection = "PIP5_dir"; renderVisionMode = 0; renderQuality = 2; fov = 0.7; }; }; class Driver_display3 { renderTarget = "rendertarget6"; class CameraView1 { pointPosition = "PIP6_pos"; pointDirection = "PIP6_dir"; renderVisionMode = 0; renderQuality = 2; fov = 0.7; }; }; }; class Turrets : Turrets { class CommanderTurret : MainTurret { gunnerName = $STR_POSITION_COMMANDER; proxyType = "CPCommander"; commanding = 2; primaryGunner = 0; primaryObserver = 1; body = "obsTurret"; gun = "obsGun"; animationSourceBody = "obsTurret"; animationSourceGun = "obsGun"; gunBeg = "optika_velitel_dir"; // endpoint of the gun gunEnd = "optika_velitel"; // chamber of the gun memoryPointGunnerOptics = "optika_velitel"; weapons[] = {"Laserdesignator_mounted"}; magazines[] = {"Laserbatteries"}; gunnerAction = "vehicle_turnout_2"; usePip = 0; gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Optics_Commander_01_F.p3d"; Laser = true; turretInfoType = "RscOptics_Strider_commander"; canHideGunner = 1; forceHideGunner = false; gunnerForceOptics = false; inGunnerMayFire = true; outGunnerMayFire = false; startEngine = false; viewGunnerInExternal = true; minElev = -18; maxElev = 40; minTurn = -75; maxTurn = 75; isPersonTurret = 2; ejectDeadGunner = 0; animationSourceHatch = "hatch_3"; //enabledByAnimationSource = "hatch_3"; enableManualFire = 0; memoryPointsGetInGunner = "pos commander"; memoryPointsGetInGunnerDir = "pos commander dir"; gunnerInAction = "passenger_low01"; personTurretAction = "vehicle_turnout_2"; gunnerGetInAction = "GetInLow"; gunnerGetOutAction = "GetOutLow"; LODTurnedIn = -1; LODTurnedOut = 1; class TurnIn { turnOffset = -180; }; class TurnOut: TurnIn {}; class ViewOptics : ViewOptics { initAngleX = 0; minAngleX = -30; maxAngleX = 30; initAngleY = 0; minAngleY = -100; maxAngleY = 100; initFov = 0.755; minFov = 0.034; maxFov = 0.9; visionMode[] = {"Normal", NVG, "Ti"}; thermalMode[] = {2, 3}; }; class ViewGunner : ViewOptics { initAngleX = -15; minAngleX = -45; maxAngleX = 45; minFov = 0.25; maxFov = 1.25; initFov = 0.75; visionMode[] = {}; }; class HitPoints { class HitTurret { armor = 0.2; material = -1; name = "commander_turret_hit"; visual = "commander_turret_hit"; passThrough = false; minimalHit = 0.1; explosionShielding = 1; radius = 0.25; }; class HitGun { armor = 0.2; material = -1; name = "commander_turret_hit"; visual = "commander_turret_hit"; passThrough = false; minimalHit = 0.1; explosionShielding = 1; radius = 0.25; }; }; }; }; extCameraPosition[] = {0, 3, -15}; class Damage { tex[] = {}; mat[] = {"qin_titus\data\karoserie1.rvmat", "qin_titus\data\karoserie1_damage.rvmat", "qin_titus\data\karoserie1_destruct.rvmat", "qin_titus\data\karoserie2.rvmat", "qin_titus\data\karoserie2_damage.rvmat", "qin_titus\data\karoserie2_destruct.rvmat", "qin_titus\data\karoserie3.rvmat", "qin_titus\data\karoserie3_damage.rvmat", "qin_titus\data\karoserie3_destruct.rvmat", "qin_titus\data\arx20.rvmat", "qin_titus\data\arx20_damage.rvmat", "qin_titus\data\arx20_destruct.rvmat", "qin_titus\data\interier1.rvmat", "qin_titus\data\interier1_damage.rvmat", "qin_titus\data\interier1_destruct.rvmat", "qin_titus\data\interier1_kov.rvmat", "qin_titus\data\interier1_kov_damage.rvmat", "qin_titus\data\interier1_destruct.rvmat", "qin_titus\data\interier2.rvmat", "qin_titus\data\interier2_damage.rvmat", "qin_titus\data\interier2_destruct.rvmat", "qin_titus\data\interier2_kov.rvmat", "qin_titus\data\interier2_kov_damage.rvmat", "qin_titus\data\interier2_destruct.rvmat", "qin_titus\data\m240.rvmat", "qin_titus\data\m240_damage.rvmat", "qin_titus\data\m240_destruct.rvmat", "qin_titus\data\palubka.rvmat", "qin_titus\data\palubka_damage.rvmat", "qin_titus\data\palubka_destruct.rvmat", "qin_titus\data\pist.rvmat", "qin_titus\data\pist_damage.rvmat", "qin_titus\data\pist_destruct.rvmat", "qin_titus\data\podvozek.rvmat", "qin_titus\data\podvozek_damage.rvmat", "qin_titus\data\podvozek_destruct.rvmat", "qin_titus\data\svetla.rvmat", "qin_titus\data\svetla_damage.rvmat", "qin_titus\data\svetla_destruct.rvmat", "qin_titus\data\sedadla.rvmat", "qin_titus\data\sedadla.rvmat", "qin_titus\data\sedadla_destruct.rvmat", "qin_titus\data\volant.rvmat", "qin_titus\data\volant.rvmat", "qin_titus\data\volant_destruct.rvmat", "qin_titus\data\zrcatka.rvmat", "qin_titus\data\zrcatka.rvmat", "qin_titus\data\zrcatka_destruct.rvmat", "qin_titus\data\hasicak.rvmat", "qin_titus\data\hasicak_damage.rvmat", "qin_titus\data\hasicak_destruct.rvmat", "qin_titus\data\sklo.rvmat", "A3\data_f\Glass_veh_armored_damage.rvmat", "A3\data_f\Glass_veh_armored_damage.rvmat"}; }; class Reflectors { class Left { color[] = {1900, 1300, 950}; ambient[] = {5, 5, 5}; position = "Light_L"; direction = "Light_L_end"; hitpoint = "Light_L"; selection = "Light_L"; size = 1; innerAngle = 100; outerAngle = 179; coneFadeCoef = 10; intensity = 1; useFlare = 0; dayLight = 0; flareSize = 1.0; class Attenuation { start = 1.0; constant = 0; linear = 0; quadratic = 0.25; hardLimitStart = 30; hardLimitEnd = 60; }; }; class Right : Left { position = "Light_R"; direction = "Light_R_end"; hitpoint = "Light_R"; selection = "Light_R"; }; class Right2 : Right { useFlare = 1; position = "light_R_flare"; }; class Left2 : Left { useFlare = 1; position = "light_L_flare"; }; }; aggregateReflectors[] = {{"Left", "Right", "Left2", "Right2"}}; hiddenSelections[] = {"Karoserie1", "Karoserie2", "Karoserie3", "ARX20", "Interier1", "Interier2", "display_gps", "display_gps_osy"}; hiddenSelectionsTextures[] = {"qin_titus\data\Karoserie1_co.paa", "qin_titus\data\Karoserie2_co.paa", "qin_titus\data\Karoserie3_co.paa", "qin_titus\data\ARX20_co.paa", "qin_titus\data\Interier1_co.paa", "qin_titus\data\Interier2_co.paa", "qin_titus\data\gps\no_data.paa", "#(argb,8,8,3)color(0.86,0.14,0.02,0.35,ca)"}; numberPhysicalWheels = 6; class TextureSources { class Desert { displayName = "Desert"; author = "Qinetix"; textures[] = {"qin_titus\data\Karoserie1_co.paa", "qin_titus\data\Karoserie2_co.paa", "qin_titus\data\Karoserie3_co.paa", "qin_titus\data\ARX20_co.paa", "qin_titus\data\Interier1_co.paa", "qin_titus\data\Interier2_co.paa", "qin_titus\data\gps\no_data.paa", "#(argb,8,8,3)color(0.86,0.14,0.02,0.35,ca)"}; faction[] = {"BLU_F"}; }; class Woodland { displayName = "Woodland"; author = "Qinetix"; textures[] = {"qin_titus\data\skins\wdl\Karoserie1_wdl.paa", "qin_titus\data\skins\wdl\Karoserie2_wdl.paa", "qin_titus\data\skins\wdl\Karoserie3_wdl.paa", "qin_titus\data\skins\wdl\ARX20_wdl.paa", "qin_titus\data\skins\wdl\Interier1_wdl.paa", "qin_titus\data\skins\wdl\Interier2_wdl.paa", "qin_titus\data\gps\no_data.paa", "#(argb,8,8,3)color(0.86,0.14,0.02,0.35,ca)"}; faction[] = {"BLU_F"}; }; }; class TransportBackpacks { class _xx_B_UAV_01_backpack_F { backpack = "B_UAV_01_backpack_F"; count = 1; }; }; class Components; // External class reference class AnimationSources : AnimationSources { class Door_LF { source = "door"; animPeriod = 0.8; }; class Door_RF { source = "door"; animPeriod = 0.8; }; class Door_rear { source = "door"; animPeriod = 0.8; }; class map_pos_x { source = "user"; animPeriod = 0; }; class map_pos_y { source = "user"; animPeriod = 0; }; class hatch_1 { source = "user"; animPeriod = 0; }; class hatch_2 { source = "user"; animPeriod = 0; }; class hatch_3 { source = "hatchCommander"; animPeriod = 0; }; class hatch_4 { source = "user"; animPeriod = 0; }; }; }; class QIN_Titus_armed_base : QIN_Titus_base { author = "Qinetix"; unitInfoType = "RscUnitInfoTank"; driverCanSee = 4+8+2+32+16; gunnerCanSee = 4+2+8+32+16; maxFordingDepth = -0.6; transportSoldier = 10; cost = 600000; // threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types threat[] = {1, 0.6, 0.3}; class Components : Components { class VehicleSystemsDisplayManagerComponentLeft : DefaultVehicleSystemsDisplayManagerLeft { class Components : components { class VehiclePrimaryGunnerDisplay { componentType = "TransportFeedDisplayComponent"; source = "PrimaryGunner"; }; }; }; class VehicleSystemsDisplayManagerComponentRight : DefaultVehicleSystemsDisplayManagerRight { class Components : components { class VehiclePrimaryGunnerDisplay { componentType = "TransportFeedDisplayComponent"; source = "PrimaryGunner"; }; }; }; }; class Turrets : Turrets { class CommanderTurret : CommanderTurret {}; class ARX20Turret : MainTurret { body = "mainTurret"; gun = "mainGun"; gunBeg = "usti hlavne"; // endpoint of the gun gunEnd = "konec hlavne"; // chamber of the gun weapons[] = {"QIN_M240C", "QIN_10M621_20mm","SmokeLauncher"}; magazines[] = {"QIN_139Rnd_20mm_shells", "QIN_300Rnd_762x51_Belt", "QIN_300Rnd_762x51_Belt", "SmokeLauncherMag"}; soundServo[] = {"A3\Sounds_F\vehicles\soft\noises\servo_turret_MRAP01",0.562341,1,10}; soundServoVertical[] = {"A3\Sounds_F\vehicles\soft\noises\servo_turret_MRAP01",0.562341,1,10}; commanding = 1; minElev = -15; initElev = 0; maxElev = 45; enableManualFire = 0; memoryPointsGetInGunner = "pos codriver"; memoryPointsGetInGunnerDir = "pos codriver dir"; gunnerAction = "passenger_low01"; gunnerInAction = "ManActTestDriver"; gunnerGetInAction = "GetInLow"; gunnerGetOutAction = "GetOutLow"; forceHideGunner = false; viewGunnerInExternal = false; castGunnerShadow = false; stabilizedInAxes = 3; startEngine = false; gunnerForceOptics = false; inGunnerMayFire = true; outGunnerMayFire = true; gunnerOpticsModel = "\A3\weapons_f\reticle\Optics_Gunner_02_F"; discreteDistance[] = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500}; usePip = 1; discreteDistanceInitIndex = 2; turretInfoType = "RscOptics_crows"; showCrewAim = 0; memoryPointGun="usti hlavne2"; memoryPointGunnerOptics = "PIP0_pos"; selectionFireAnim = "zasleh"; class ViewOptics : RCWSOptics {}; class ViewGunner : ViewOptics { initAngleX = -15; minAngleX = -45; maxAngleX = 45; minFov = 0.25; maxFov = 1.25; initFov = 0.75; visionMode[] = {"Normal", "NVG", "TI"}; }; class HitPoints { class HitTurret { armor = 0.8; material = -1; name = "vez"; visual = "vez"; passThrough = false; minimalHit = 0.1; explosionShielding = 0.4; radius = 0.6; }; class HitGun { armor = 0.4; material = -1; name = "zbran"; visual = "zbran"; passThrough = false; minimalHit = 0.1; explosionShielding = 0.2; radius = 0.6; }; }; class MFD { class MFD_1 { topLeft = MFD_1_TL; topRight = MFD_1_TR; bottomLeft = MFD_1_BL; borderLeft = 0; borderRight = 0; borderTop = 0; borderBottom = 0; color[] = {0.84, 0.86, 0.84}; alpha = 1; enableParallax = 0; font = "RobotoCondensedLight"; class Bones {}; class Draw { color[] = {1, 0, 0, 1}; alpha = 0.5; class Driver_Heading { type = "text"; source = "weaponHeading"; sourceScale = 1; sourceLength = 3; scale = 1; align = "center"; refreshRate = 0.08; pos[] = {{0.18, 0.89}, 1}; right[] = {{0.25, 0.89}, 1}; down[] = {{0.18, 0.96}, 1}; }; class Range_Text { type = "text"; source = "static"; text = "RANGE:"; scale = 1; sourceScale = 1; align = "right"; pos[] = {{0.515, 0.69}, 1}; right[] = {{0.555, 0.69}, 1}; down[] = {{0.515, 0.73}, 1}; }; class Range_Value { type = "text"; source = "laserDist"; sourceScale = 1; sourceLength = 3; scale = 1; align = "right"; refreshRate = 0.08; pos[] = {{0.62, 0.69}, 1}; right[] = {{0.66, 0.69}, 1}; down[] = {{0.62, 0.73}, 1}; }; class Mode_Text { type = "text"; source = "static"; text = "MODE:"; scale = 1; sourceScale = 1; align = "right"; pos[] = {{0.515, 0.73}, 1}; right[] = {{0.555, 0.73}, 1}; down[] = {{0.515, 0.77}, 1}; }; class Mode_Value { type = "text"; source = "static"; text = "TI WHOT"; sourceScale = 1; sourceLength = 3; scale = 1; align = "right"; refreshRate = 0.08; pos[] = {{0.62, 0.73}, 1}; right[] = {{0.66, 0.73}, 1}; down[] = {{0.62, 0.77}, 1}; }; }; }; }; }; }; smokeLauncherGrenadeCount = 4; //Number of smoke shells launched at once smokeLauncherVelocity = 14; //Velocity which smoke shells are launched at smokeLauncherOnTurret = 1; //0 if smoke launchers are on hull, 1 if on turret smokeLauncherAngle = 80; //Angle within which smoke grenades are launched (actual spacing may end up smaller so use slighty higher number) class AnimationSources : AnimationSources { class muzzle_rot { source = "ammorandom"; weapon = "QIN_10M621_20mm"; }; class muzzle2_rot { source = "ammorandom"; weapon = "QIN_M240C"; }; class muzzle_hide { source = "reload"; weapon = "QIN_10M621_20mm"; }; class muzzle2_hide { source = "reload"; weapon = "QIN_M240C"; }; }; }; class QIN_Titus_DES : QIN_Titus_armed_base { author = "Qinetix"; mapSize = 6.71; class SimpleObject { eden = 1; animate[] = {{"damagehide", 0}, {"damagehidevez", 0}, {"damagehidehlaven", 0}, {"wheel_1_1_destruct", 0}, {"wheel_1_2_destruct", 0}, {"wheel_1_3_destruct", 0}, {"wheel_1_4_destruct", 0}, {"wheel_2_1_destruct", 0}, {"wheel_2_2_destruct", 0}, {"wheel_2_3_destruct", 0}, {"wheel_2_4_destruct", 0}, {"wheel_1_1_destruct_unhide", 0}, {"wheel_1_2_destruct_unhide", 0}, {"wheel_1_3_destruct_unhide", 0}, {"wheel_1_4_destruct_unhide", 0}, {"wheel_2_1_destruct_unhide", 0}, {"wheel_2_2_destruct_unhide", 0}, {"wheel_2_3_destruct_unhide", 0}, {"wheel_2_4_destruct_unhide", 0}, {"wheel_1_3_damage", 0}, {"wheel_1_4_damage", 0}, {"wheel_2_3_damage", 0}, {"wheel_2_4_damage", 0}, {"wheel_1_3_damper_damage_backanim", 0}, {"wheel_1_4_damper_damage_backanim", 0}, {"wheel_2_3_damper_damage_backanim", 0}, {"wheel_2_4_damper_damage_backanim", 0}, {"glass1_destruct", 0}, {"glass2_destruct", 0}, {"glass3_destruct", 0}, {"glass4_destruct", 0}, {"glass5_destruct", 0}, {"glass6_destruct", 0}, {"fuel", 1}, {"wheel_1_1", 1}, {"wheel_2_1", 1}, {"wheel_1_2", 1}, {"wheel_2_2", 1}, {"wheel_1_1_damper", 0.48}, {"wheel_2_1_damper", 0.53}, {"wheel_1_2_damper", 0.48}, {"wheel_2_2_damper", 0.61}, {"daylights", 0}, {"pedal_thrust", 0}, {"pedal_brake", 1}, {"wheel_1_1_damage", 0}, {"wheel_1_2_damage", 0}, {"wheel_2_1_damage", 0}, {"wheel_2_2_damage", 0}, {"wheel_1_1_damper_damage_backanim", 0}, {"wheel_1_2_damper_damage_backanim", 0}, {"wheel_2_1_damper_damage_backanim", 0}, {"wheel_2_2_damper_damage_backanim", 0}, {"vehicletransported_antenna_hide", 0}, {"drivingwheel", 0}, {"steering_1_1", 0}, {"steering_2_1", 0}, {"indicatorspeed", 0}, {"indicatorfuel", 1}, {"indicatorrpm", 0}, {"indicatortemp", 0}, {"indicatortemp_move", 0}, {"indicatortemp2", 0}, {"indicatortemp2_move", 0}, {"reverse_light", 0}, {"door_lf", 0}, {"door_rf", 0}, {"door_lb", 0}, {"door_rb", 0}, {"mainturret", 0}, {"maingun", 0}, {"damagehlaven", 0}, {"zasleh_rot", 0}, {"zasleh2_rot", 4188.1}, {"zasleh_hide", 0}, {"hatch_1", 0}, {"hatch_2", 0}, {"hatch_3", 0}, {"hatch_4", 0}}; hide[] = {"clan", "zasleh", "zasleh2", "light_l", "light_r", "light_r2", "light_l2", "zadni svetlo", "brzdove svetlo", "podsvit pristroju", "poskozeni"}; verticalOffset = 2.582; verticalOffsetWorld = -0.176; init = "''"; }; editorPreview = "\A3\EditorPreviews_F\Data\CfgVehicles\B_MRAP_01_gmg_F.jpg"; _generalMacro = "B_MRAP_01_gmg_F"; scope = 2; displayName = "Tatra Titus"; model = "qin_titus\titus.p3d"; crew = "B_Soldier_F"; typicalCargo[] = {"B_Soldier_lite_F"}; side = TWest; faction = BLU_F; class EventHandlers : EventHandlers { Init = "_this execVM '\qin_titus\scripts\gps_map_init.sqf'"; GetIn = "_this execVM '\qin_titus\scripts\uav_terminal.sqf'"; }; }; }; When I spawn the vehicle, commander's hatch is open. So if I get in as commander, I'm turned out. But if I use parameter isPersonTurret = 2; commander is turned in his and hatch is being closed after he get in the vehicle. Next problem is that I can shoot from a rifle as turned out and as turned in also. But if the commander is turned in, I want to use a camera turret. Does anybody have an idea what's wrong? Of course I've read a lot of threads on the forums and I tried a lot of combinations in the config but nothing helped me. Share this post Link to post Share on other sites
reyhard 2082 Posted February 5, 2018 try putting below code to QIN_Titus_armed_base class hideProxyInCombat = 1; & then change in turret cfg isPersonTurret = 1; personTurretAction = "vehicle_turnout_1"; By default crew will be turned in & it should work similar to tanks turn out ffv. Don't forget to enable viewDriverInExternal = 1; (base class) & viewGunnerInExternal = 1; (turret) 2 1 Share this post Link to post Share on other sites
Qinetix 304 Posted February 5, 2018 Thank you, reyhard! Now it works! Also I had to make some another changes for driver. I've added this in base class: driverInAction = "Driver_low01"; forcehideDriver = true; Share this post Link to post Share on other sites
Qinetix 304 Posted February 10, 2018 (edited) So I have another problem with cargo turrets. I can't get in on cargo turret position. If I get in as same compartment then I can switch a seat to a cargoturret. But then I have zoomed screen and I don't know why. Any idea guys? class CargoTurret_01 : CargoTurret { gunnerAction = "vehicle_turnout_1"; gunnerCompartments = "Compartment2"; memoryPointsGetInGunner = "pos cargoffv1"; memoryPointsGetInGunnerDir = "pos cargoffv1 dir"; gunnerName = "Passenger (left rear)"; proxyIndex = 10; maxElev = 15; minElev = -42; maxTurn = 20; minTurn = -95; isPersonTurret = 1; ejectDeadGunner = 0; usepip = 0 gunnerInAction = "passenger_apc_generic02"; startEngine = 0; commanding = -1; outGunnerMayFire = false; inGunnerMayFire = true; animationSourceHatch = "hatch_1"; personTurretAction = "vehicle_turnout_1"; gunnerGetInAction = "GetInLow"; gunnerGetOutAction = "GetOutLow"; memoryPointGunnerOptics = ""; selectionFireAnim = ""; canHideGunner = 1; gunnerDoor = "door_rear"; LODTurnedIn = -1; LODTurnedOut = 1; class TurnIn { turnOffset = -180; }; class TurnOut: TurnIn {}; }; class CargoTurret_02 : CargoTurret { gunnerAction = "vehicle_turnout_2"; gunnerCompartments = "Compartment2"; memoryPointsGetInGunner = "pos cargoffv2"; memoryPointsGetInGunnerDir = "pos cargoffv2 dir"; gunnerName = "Passenger (right rear)"; proxyIndex = 9; maxElev = 15; minElev = -42; maxTurn = 20; minTurn = -95; isPersonTurret = 1; ejectDeadGunner = 0; usepip = 0 gunnerInAction = "passenger_apc_narrow_generic02"; startEngine = 0; commanding = -1; outGunnerMayFire = false; inGunnerMayFire = true; animationSourceHatch = "hatch_2"; personTurretAction = "vehicle_turnout_2"; gunnerGetInAction = "GetInLow"; gunnerGetOutAction = "GetOutLow"; memoryPointGunnerOptics = ""; selectionFireAnim = ""; canHideGunner = 1; gunnerDoor = "door_rear"; }; }; Edited February 13, 2018 by Qinetix Added: I can't get in on cargo turret position Share this post Link to post Share on other sites
reyhard 2082 Posted February 12, 2018 Had same issue on RHS M113 - didn't found any solution so please leave a note here if you figure out something Share this post Link to post Share on other sites
Qinetix 304 Posted February 13, 2018 If I use isPersonTurret = 2; then I can also finaly get in from outside. Then I'm on the seat without zoom but I can fire from vehicle turned in. Reyhard, do you know how does it work with RHS RG33L? There you can get in as cargo and normaly turn out. I tried to use RHS CargoTurret config from this vehicle but with no result. Share this post Link to post Share on other sites
reyhard 2082 Posted February 13, 2018 1 hour ago, Qinetix said: If I use isPersonTurret = 2; then I can also finaly get in from outside. Then I'm on the seat without zoom but I can fire from vehicle turned in. Reyhard, do you know how does it work with RHS RG33L? There you can get in as cargo and normaly turn out. I tried to use RHS CargoTurret config from this vehicle but with no result. RG33L is using isPersonTurret = 2; Anyway, seems like found a fix: try gunnerForceOptics = 0; 1 Share this post Link to post Share on other sites
Qinetix 304 Posted February 15, 2018 On 13. 2. 2018 at 10:33 AM, reyhard said: RG33L is using isPersonTurret = 2; Anyway, seems like found a fix: try gunnerForceOptics = 0; Thank you reyhard. GunnerForceOptics = 0; didn't solved my problem. But after serveral changes in config I've got what I want. Also I had to switch isPersonTurret to number 1 back. And I've changed outGunnerMayFire and inGunnerMayFire. Thank you for your help again, reyhard! Here is my actual configuration: class CargoTurret_01 : CargoTurret { gunnerAction = "vehicle_turnout_1"; gunnerCompartments = "Compartment2"; memoryPointsGetInGunner = "pos cargoffv1"; memoryPointsGetInGunnerDir = "pos cargoffv1 dir"; gunnerName = "Passenger (left rear)"; proxyIndex = 10; maxElev = 15; minElev = -42; maxTurn = 20; minTurn = -95; isPersonTurret = 1; ejectDeadGunner = 0; gunnerInAction = "passenger_apc_generic02"; startEngine = 0; commanding = -1; outGunnerMayFire = true; inGunnerMayFire = false; animationSourceHatch = "hatch_1"; gunnerGetInAction = "GetInLow"; gunnerGetOutAction = "GetOutLow"; memoryPointGunnerOptics = ""; selectionFireAnim = ""; canHideGunner = 1; gunnerForceOptics = false; gunnerDoor = "door_rear"; LODTurnedIn = -1; LODTurnedOut = 1; class TurnIn { turnOffset = -180; }; class TurnOut: TurnIn {}; }; Share this post Link to post Share on other sites
Reddiem 508 Posted February 16, 2018 On 12.2.2018 at 11:54 AM, reyhard said: Had same issue on RHS M113 - didn't found any solution so please leave a note here if you figure out something I always define my cargoturrets as NewTurret and don't inherite from CargoTurret. This fixed all problems regarding strange fov and zoom. Take a lock in my example. Maybe there are still some unnecessary entries, I'm cleaning up my configs at the moment from them, but haven't done it in this config yet class CargoTurret_Links: NewTurret //[0,1] //Luke_links { gunnerInAction = "Redd_Marder_Passenger"; gunnerName = "$STR_Dachluke_links"; memoryPointsGetInGunner= "pos_hatch_3"; memoryPointsGetInGunnerDir= "pos_hatch_3_dir"; animationSourceHatch = "Hatch_left_Source"; enabledByAnimationSource = "Hatch_left_rot"; proxyIndex = 4; proxyType= "CPGunner"; weapons[] = {}; magazines[] = {}; primaryGunner = 0; primaryObserver = 0; gunnerOpticsShowCursor = 0; body = ""; gun = ""; animationSourceBody = ""; animationSourceGun = ""; soundServo[] = {"", "db-50", 1.000000}; startEngine = 0; hideWeaponsGunner = 0; GunnerGetInAction="GetInLow"; GunnerGetOutAction="GetOutLow"; gunnerAction = "vehicle_turnout_1"; isPersonTurret = 1; dontCreateAi = 1; commanding = -1; gunnerOpticsModel = ""; gunnerOutOpticsColor[] = {0, 0, 0, 1}; gunnerForceOptics = 0; gunnerOutForceOptics = 0; gunnerOutOpticsShowCursor = 0; memoryPointGunnerOptics = ""; gunnerOpticsEffect[] = {}; outGunnerMayFire = 1; inGunnerMayFire = 0; ejectDeadGunner = 0; lodTurnedIn = 1200; //Cargo lodTurnedOut = 1100; //Pilot allowLauncherOut = 0; allowLauncherIn = 0; soundAttenuationTurret = "TankAttenuation"; disableSoundAttenuation = 0; viewGunnerInExternal = 1; gunnerCompartments= "Compartment2"; maxElev = 45; minElev = -20; maxTurn = 120; minTurn = -78; class TurnIn { limitsArrayTop[] = { {45, -120}, {45, 120} }; limitsArrayBottom[] = { {-45, -120}, {-45, 120} }; }; class TurnOut { limitsArrayTop[] = { {45, -78}, {45, 120} }; limitsArrayBottom[] = { {-5, -78}, {-20, 0}, {-20, 47}, {7, 57}, {7, 100}, {0, 110}, {-5, 115}, {-5, 120} }; }; }; 1 Share this post Link to post Share on other sites
reyhard 2082 Posted February 16, 2018 2 hours ago, Reddiem said: I always define my cargoturrets as NewTurret and don't inherite from CargoTurret. This fixed all problems regarding strange fov and zoom as I said, gunnerForceOptics = 0; & isPersonTurret = 1 fixed that issue for me and so far I find inheriting from CargoTurret as a more clean solution :) 1 Share this post Link to post Share on other sites
Qinetix 304 Posted February 17, 2018 On 16. 2. 2018 at 10:31 AM, reyhard said: as I said, gunnerForceOptics = 0; & isPersonTurret = 1 fixed that issue for me and so far I find inheriting from CargoTurret as a more clean solution :) Yes, these two parameters could fix my problem. On 16. 2. 2018 at 8:15 AM, Reddiem said: I always define my cargoturrets as NewTurret and don't inherite from CargoTurret. This fixed all problems regarding strange fov and zoom. Take a lock in my example. Maybe there are still some unnecessary entries, I'm cleaning up my configs at the moment from them, but haven't done it in this config yet Thank you for your example. Anyway my config from my last post finally works. 1 Share this post Link to post Share on other sites