Jump to content

scotg

Member
  • Content Count

    416
  • Joined

  • Last visited

  • Medals

Posts posted by scotg


  1. @Dedmen It's understandably confusing, because it all seems so convoluted to me.


    EDIT: Okay, forget everything that was here. It turned out to be a fix that wasn't taking hold, which seems to happen more frequently when packing from a P:\ folder. It was missing damper axes in the memory LOD, which were actually named differently, but the change wasn't sticking. I commented out the sections of the model.cfg that called for these axes, crunched it, and got a new error... hopefully a progressive one. Going over the .p3d and model.cfg I made sure each part was matched and had the proper axis. It finally worked and again I got the new error... Yay-ish~!

     

    The new error is more inline with this thread. It cannot find a config.cpp for the common RVMATs, which are called for in the .p3d. In other words, my common textures folder is just sitting there without a config - at least I think that's what the problem is. And... indeed I have no config in that folder.


  2. 6 hours ago, Dedmen said:

    What what what?

    PBOPREFIX file just contains the file path. The prefix.

    dePbo also adds other stuff when unpacking. You have to remove that.

    Oh good. See, I didn't actually get that from the reading. Any idea why I might be getting a binarize error when I "Crunch?" Also, I still cannot use buldozer.

    This is an issue I am having, posted on a different thread on how to set up the Work Drive, but I now think the setup and file path issues are somehow related:

    On 3/6/2018 at 5:58 PM, scotg said:

    Prior to streamlining my mod's internal directory and setting the texture path in OB constant for every model, everything was working. Prior to making the move to utilize more of Mikero Tools, my mod components were pumping out. It was a few more steps, but vehicles were visible with proper textures in Buldozer, and more importantly they were coming out nicely in the game environment. I even made some videos featuring many of my vehicles. Between BIS, Mikero, and Windows 10 Fall Creators Update I think they are all conspiring against me :-P But seriously, after re-install of Mikero's Tools, Arma 3 Tools, and Arma 3 itself, I finally got to a point where the pboProject was giving me actual output. Now encountering a binarize error:
    Noisy:

      Reveal hidden contents

    22:46:38: Extensions:
    "</texheaders>"
    #define _ARMA_
    //ndefs=13
    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 E:/Program Files (x86)/Steam/SteamApps/common/Arma 3/Addons/soft_f/a3/soft_f/MRAP_02/config.bin{
    class DefaultEventhandlers;
    class CfgPatches
    {
    class GIJoeVAMP
    {
    units[] = {"vamp1"};
    weapons[] = {};
    requiredVersion = 0.1;
    requiredAddons[] = {"A3_Soft_F"};
    };
    };
    class CfgFactionClasses
    {
    class GIJOE
    {
    displayName = "GI*JOE";
    author = "Scot Gilmore";
    icon = "GIJOE\data_f\faction_gijoe_co.paa";
    priority = 2;
    side = 1;
    };
    };
    class CfgVehicleClasses
    {
    class GIJoe_Ground
    {
    displayName = "GI*JOE Ground";
    };
    };
    /*
    class CfgMovesBasic
    {
    class Default;
    class DefaultDie;
    class ManActions
    {
    vamp_driver = "vamp_driver";
    vamp_cargo = "vamp_cargo";
    };
    };
    class CfgMovesMaleSdr: CfgMovesBasic
    {
    class States
    {
    class Crew;
    class vamp_driver: Crew
    {
    file = "GIJOE\vhx_soft\gijoe_vamp\Anims\vamp_driver.rtm";
    InterpolateTo[] = {"Unconscious",0.1};
    };
    class vamp_cargo: Crew
    {
    file = "GIJOE\vhx_soft\gijoe_vamp\Anims\vamp_cargo.rtm";
    actions = "CargoAction";
    leaning = "crewShake";
    InterpolateTo[] = {"Unconscious",0.1};
    };
    };
    };
    */
    class WeaponFireGun;
    class WeaponCloudsGun;
    class WeaponFireMGun;
    class WeaponCloudsMGun;
    class RCWSOptics;
    class CfgVehicles
    {
    class LandVehicle;
    class Car: LandVehicle
    {
    class NewTurret;
    class HitPoints;
    };
    class Car_F: Car
    {
    class AnimationSources;
    class Turrets
    {
    class MainTurret: NewTurret{};
    };
    class HitPoints
    {
    class HitLFWheel;
    class HitLF2Wheel;
    class HitRFWheel;
    class HitRF2Wheel;
    class HitGlass1;
    class HitGlass2;
    class HitGlass3;
    class HitGlass4;
    class HitGlass5;
    };
    };
    class vamp_01_base_F: Car_F
    {
    mapSize = 8.5;
    author = "Scot Gilmore";
    _generalMacro = "vamp_01_base_F";
    displayName = "VAMP";
    class Library
    {
    libTextDesc = "Vehicle, Assault/Multi-Purpose";
    };
    model  = "GIJOE\vhx_soft\gijoe_vamp\vamp1";
    picture = "GIJOE\vhx_soft\gijoe_vamp\Data\UI\icon_vamp_co.paa";
    Icon = "GIJOE\vhx_soft\gijoe_vamp\Data\UI\map_vamp_co.paa";
    transportMaxBackpacks = 2;
    //vehicleClass = "Car";
    transportSoldier = 0;
    hideWeaponsDriver = 1;
    hideWeaponsCargo = 1;
    maxFordingDepth = 0.5;
    waterResistance = 1;
    crewVulnerable = 1;
    crewCrashProtection = 0.15;
    crewExplosionProtection = 0.4999;
    slingLoadCargoMemoryPoints[] = {"SlingLoadCargo1","SlingLoadCargo2","SlingLoadCargo3","SlingLoadCargo4"};
    unitInfoType = "RscUnitInfoNoWeapon";
    armor = 50;
    armorStructural = 6;
    cost = 500000;
    threat[] = {0.8,0.6,0.3};
    class complexGearbox
    {
    GearboxRatios[] = {"R1",-6.575,"N",0,"D1",4.827,"D2",2.855,"D3",1.716,"D4",1.073,"D5",0.755,"D6",0.575};
    TransmissionRatios[] = {"High",5.69};
    gearBoxMode = "auto";
    moveOffGear = 1;
    driveString = "D";
    neutralString = "N";
    reverseString = "R";
    };
    wheelDamageThreshold = 0.7;
    wheelDestroyThreshold = 0.99;
    wheelDamageRadiusCoef = 0.95;
    wheelDestroyRadiusCoef = 0.45;
    terrainCoef = 1.5;
    turnCoef = 2.5;
    precision = 15;
    driverAction = "driver_mantis";
    cargoAction[] = {"passenger_MRAP_03exgunner"};
    getInAction = "GetInLow";
    getOutAction = "GetOutLow";
    cargoGetInAction[] = {"GetInLow"};
    cargoGetOutAction[] = {"GetOutLow"};
    commanderCanSee = 31;
    driverDoor = "";
    cargoDoors[] = {};
    weapons[] = {"TruckHorn"};
    //magazines[] = {"SmokeLauncherMag"};
    thrustDelay = 1.5;
    brakeIdleSpeed = 1.78;
    maxSpeed = 225;
    fuelCapacity = 90;
    wheelCircumference = 2.8;
    antiRollbarForceCoef = 4.5;
    antiRollbarForceLimit = 5;
    antiRollbarSpeedMin = 10;
    antiRollbarSpeedMax = 200;
    idleRpm = 800;
    redRpm = 7800;
    simulation = "carx";
    dampersBumpCoef = 0.3;
    differentialType = "all_limited";
    frontRearSplit = 0.5;
    frontBias = 1.9;
    rearBias = 1.9;
    clutchStrength = 50.0;
    enginePower = 376;
    maxOmega = 520;
    peakTorque = 1046;
    dampingRateFullThrottle = 0.1;
    dampingRateZeroThrottleClutchEngaged = 1.0;
    dampingRateZeroThrottleClutchDisengaged = 0.35;
    torqueCurve[] = {{0.0,0.1},{0.178,0.5},{0.25,0.85},{0.4,0.95},{0.5,1.0},{0.625,0.95},{0.75,0.7},{1.0,0.5}};
    changeGearMinEffectivity[] = {0.95,0.15,0.95,0.95,0.95,0.95,0.95,0.98};
    switchTime = 0.2;
    latency = 0.25;
    class Wheels
    {
    class LF
    {
    boneName = "wheel_1_1_damper";
    side = "left";
    steering = 1;
    center = "wheel_1_1_axis";
    boundary = "wheel_1_1_bound";
    width = "0.2";
    mass = 20;
    MOI = 10;
    dampingRate = 0.3;
    dampingRateDamaged = 5;
    dampingRateInAir = 0.8;
    maxBrakeTorque = 4000;
    maxHandBrakeTorque = 0;
    suspTravelDirection[] = {0,-1,0};
    suspForceAppPointOffset = "wheel_1_1_axis";
    tireForceAppPointOffset = "wheel_1_1_axis";
    maxCompression = 0.14;
    mMaxDroop = 0.14;
    sprungMass = 566; //163;
    springStrength = 30800; //4075
    springDamperRate = 1651;
    longitudinalStiffnessPerUnitGravity = 100000;
    latStiffX = 40; //25; //2.5;
    latStiffY = 18; //180.0;
    frictionVsSlipGraph[] = {{0,1},{0.5,1},{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 = 12000;
    sprungMass = 560; //163;
    };
    class RF: LF
    {
    boneName = "wheel_2_1_damper";
    side = "right";
    center = "wheel_2_1_axis";
    boundary = "wheel_2_1_bound";
    suspForceAppPointOffset = "wheel_2_1_axis";
    tireForceAppPointOffset = "wheel_2_1_axis";
    };
    class RR: LR
    {
    boneName = "wheel_2_2_damper";
    side = "right";
    steering = 0;
    center = "wheel_2_2_axis";
    boundary = "wheel_2_2_bound";
    suspForceAppPointOffset = "wheel_2_2_axis";
    tireForceAppPointOffset = "wheel_2_2_axis";
    };
    };
    class PlayerSteeringCoefficients /// steering sensitivity configuration
    {
    turnIncreaseConst  = 0.5; //0.3; // basic sensitivity value, higher value = faster steering
    turnIncreaseLinear = 2.0; //1.0; // higher value means less sensitive steering in higher speed, more sensitive in lower speeds
    turnIncreaseTime   = 0.5; //1.0; // higher value means smoother steering around the center and more sensitive when the actual steering angle gets closer to the max. steering angle
    turnDecreaseConst  = 5.0; // basic caster effect value, higher value = the faster the wheels align in the direction of travel
    turnDecreaseLinear = 3.0; // higher value means faster wheel re-centering in higher speed, slower in lower speeds
    turnDecreaseTime   = 1.0; //0.0; // higher value means stronger caster effect at the max. steering angle and weaker once the wheels are closer to centered position
    maxTurnHundred     = 0.5; //0.7; // coefficient of the maximum turning angle @ 100km/h; limit goes linearly to the default max. turn. angle @ 0km/h
    };
    class Reflectors
    {
    class Left
    {
    color[] = {1900,1800,1700};
    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 = 1;
    dayLight = 0;
    flareSize = 1.0;
    class Attenuation
    {
    start = 1.0;
    constant = 0;
    linear = 0;
    quadratic = 0.25;
    hardLimitStart = 60;
    hardLimitEnd = 120;
    };
    };
    class Right: Left
    {
    position = "Light_R";
    direction = "Light_R_end";
    hitpoint = "Light_R";
    selection = "Light_R";
    };
    };
    aggregateReflectors[] = {{"Left","Right"}};
    class Exhausts
    {
    class Exhaust1
    {
    position = "exhaust1_pos";
    direction = "exhaust1_dir";
    effect = "ExhaustEffectHTruck";
    };
    class Exhaust2
    {
    position = "exhaust2_pos";
    direction = "exhaust2_dir";
    effect = "ExhaustEffectHTruck";
    };
    };
    class Damage
    {
    tex[] = {};
    mat[] = {"A3\Data_F\Glass_veh.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Data_F\Glass_veh_int.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_01.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_01_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_01_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_02.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_02_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_02_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_VP.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_VP.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_destruct.rvmat"};
    };
    hiddenSelections[] = {"Camo1"};
    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 HitGlass6
    {
    source = "Hit";
    hitpoint = "HitGlass6";
    raw = 1;
    };
    class HitGlass7: HitGlass6
    {
    hitpoint = "HitGlass7";
    };
    class HitGlass8: HitGlass6
    {
    hitpoint = "HitGlass8";
    };
    class HitGlass9: HitGlass6
    {
    hitpoint = "HitGlass9";
    };
    };
    class HitPoints: HitPoints
    {
    class HitLFWheel: HitLFWheel
    {
    armor = 1;
    explosionShielding = 4;
    radius = 0.33;
    };
    class HitLF2Wheel: HitLF2Wheel
    {
    armor = 1;
    explosionShielding = 4;
    radius = 0.33;
    };
    class HitRFWheel: HitRFWheel
    {
    armor = 1;
    explosionShielding = 4;
    radius = 0.33;
    };
    class HitRF2Wheel: HitRF2Wheel
    {
    armor = 1;
    explosionShielding = 4;
    radius = 0.33;
    };
    class HitReserveWheel
    {
    armor = 1;
    material = -1;
    name = "wheel_reserve_hit";
    visual = "";
    passThrough = 0.3;
    explosionShielding = 0.8;
    };
    class HitFuel
    {
    armor = 1.0;
    material = -1;
    name = "palivo";
    visual = "";
    passThrough = 1.0;
    minimalHit = 0.2;
    explosionShielding = 0.1;
    radius = 0.25;
    };
    class HitEngine
    {
    armor = 1.0;
    material = -1;
    name = "motor";
    visual = "";
    passThrough = 0.2;
    minimalHit = 0.2;
    explosionShielding = 0.4;
    radius = 0.45;
    };
    class HitBody
    {
    armor = 8.0;
    material = -1;
    name = "karoserie";
    visual = "zbytek";
    passThrough = 1.0;
    minimalHit = 0.01;
    explosionShielding = 0.6;
    radius = 0.45;
    };
    class HitGlass1: HitGlass1
    {
    armor = 3;
    explosionShielding = 3;
    radius = 0.25;
    };
    class HitGlass2: HitGlass2
    {
    armor = 3;
    explosionShielding = 3;
    radius = 0.25;
    };
    class HitGlass3: HitGlass3
    {
    armor = 3;
    explosionShielding = 3;
    radius = 0.25;
    };
    class HitGlass4: HitGlass4
    {
    armor = 3;
    explosionShielding = 3;
    radius = 0.25;
    };
    class HitGlass5: HitGlass5
    {
    armor = 3;
    explosionShielding = 3;
    radius = 0.25;
    };
    class HitGlass6: HitGlass5
    {
    name = "glass6";
    visual = "glass6";
    };
    class HitGlass7: HitGlass5
    {
    name = "glass7";
    visual = "glass7";
    };
    class HitGlass8: HitGlass5
    {
    name = "glass8";
    visual = "glass8";
    };
    class HitGlass9: HitGlass5
    {
    name = "glass9";
    visual = "glass9";
    };
    class HitGlass10: HitGlass5
    {
    name = "glass10";
    visual = "glass10";
    };
    class HitGlass11: HitGlass5
    {
    name = "glass11";
    visual = "glass11";
    };
    };
    class UserActions
    {
    class DoorLF_Open
    {
    userActionID = 50;
    displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorLF_Open0";
    displayNameDefault = "<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />";
    textToolTip = "$STR_DN_OUT_O_DOOR";
    priority = 0.1;
    radius = 2.5;
    radiusView = 0.2;
    showIn3D = 17;
    available = 0;
    position = "door1_axis";
    showWindow = 1;
    onlyForPlayer = 1;
    shortcut = "";
    condition = "((this doorPhase 'Door_LF')  ==  0) && (alive this) && this != vehicle player && false";
    statement = "this animateDoor ['Door_LF', 1]";
    };
    class DoorLF_Close: DoorLF_Open
    {
    userActionID = 51;
    displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorLF_Close0";
    displayNameDefault = "<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />";
    textToolTip = "$STR_DN_OUT_C_DOOR";
    condition = "((this doorPhase 'Door_LF') > 0) && (alive this) && false";
    statement = "this animateDoor ['Door_LF', 0]";
    };
    class DoorRF_Open: DoorLF_Open
    {
    userActionID = 52;
    displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorRF_Open0";
    position = "door3_axis";
    condition = "((this doorPhase 'Door_RF')  ==  0) && (alive this) && this != vehicle player && false";
    statement = "this animateDoor ['Door_RF', 1]";
    };
    class DoorRF_Close: DoorRF_Open
    {
    userActionID = 53;
    displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorRF_Close0";
    displayNameDefault = "<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />";
    textToolTip = "$STR_DN_OUT_C_DOOR";
    condition = "((this doorPhase 'Door_RF') > 0) && (alive this) && false";
    statement = "this animateDoor ['Door_RF', 0]";
    };
    };
    #include "sounds.hpp" //separate file for better work flow
    attenuationEffectType = "CarAttenuation";
    soundGetIn[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_door",0.56234133,1};
    soundGetOut[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_door",0.56234133,1,40};
    soundDammage[] = {"",0.56234133,1};
    soundEngineOnInt[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_start",0.39810717,1};
    soundEngineOnExt[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_start",0.4466836,1,200};
    soundEngineOffInt[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_stop",0.39810717,1};
    soundEngineOffExt[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_stop",0.4466836,1,200};
    buildCrash0[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_1",1.2589254,1,200};
    buildCrash1[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_2",1.2589254,1,200};
    buildCrash2[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_3",1.2589254,1,200};
    buildCrash3[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_4",1.2589254,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.2589254,1,200};
    WoodCrash1[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1",1.2589254,1,200};
    WoodCrash2[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1",1.2589254,1,200};
    WoodCrash3[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1",1.2589254,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.2589254,1,200};
    armorCrash1[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_2",1.2589254,1,200};
    armorCrash2[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_3",1.2589254,1,200};
    armorCrash3[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_4",1.2589254,1,200};
    soundArmorCrash[] = {"ArmorCrash0",0.25,"ArmorCrash1",0.25,"ArmorCrash2",0.25,"ArmorCrash3",0.25};
    class Sounds
    {
    class Idle_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_idle",0.22387211,1,150};
    frequency = "0.9 + ((rpm/ 6900) factor[(400/ 6900),(1150/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(400/ 6900),(700/ 6900)]) * ((rpm/ 6900) factor[(1100/ 6900),(900/ 6900)]))";
    };
    class Engine
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1000",0.2818383,1,200};
    frequency = "0.8 + ((rpm/ 6900) factor[(900/ 6900),(2100/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(870/ 6900),(1100/ 6900)]) * ((rpm/ 6900) factor[(2100/ 6900),(1300/ 6900)]))";
    };
    class Engine1_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1400",0.3548134,1,240};
    frequency = "0.8 +  ((rpm/ 6900) factor[(1300/ 6900),(3100/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(1250/ 6900),(2050/ 6900)]) * ((rpm/ 6900) factor[(3100/ 6900),(2300/ 6900)]))";
    };
    class Engine2_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_2000",0.39810717,1,280};
    frequency = "0.8 + ((rpm/ 6900) factor[(2200/ 6900),(4100/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(2250/ 6900),(3050/ 6900)]) * ((rpm/ 6900) factor[(4100/ 6900),(3300/ 6900)]))";
    };
    class Engine3_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_3200",0.4466836,1,320};
    frequency = "0.8 + ((rpm/ 6900) factor[(3300/ 6900),(4900/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(3250/ 6900),(4050/ 6900)]) * ((rpm/ 6900) factor[(4870/ 6900),(4200/ 6900)]))";
    };
    class Engine4_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_4000",0.5011872,1,360};
    frequency = "0.8 + ((rpm/ 6900) factor[(4200/ 6900),(6200/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(4150/ 6900),(4800/ 6900)]) * ((rpm/ 6900) factor[(6150/ 6900),(5150/ 6900)]))";
    };
    class Engine5_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_5000",0.56234133,1,420};
    frequency = "0.95 + ((rpm/ 6900) factor[(5100/ 6900),(6900/ 6900)])*0.15";
    volume = "engineOn*camPos*((rpm/ 6900) factor[(5100/ 6900),(6100/ 6900)])";
    };
    class IdleThrust
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_idle",0.5011872,1,200};
    frequency = "0.9 + ((rpm/ 6900) factor[(400/ 6900),(1150/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(400/ 6900),(700/ 6900)]) * ((rpm/ 6900) factor[(1100/ 6900),(900/ 6900)]))";
    };
    class EngineThrust
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1000_exh",0.56234133,1,250};
    frequency = "0.8 + ((rpm/ 6900) factor[(900/ 6900),(2100/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(870/ 6900),(1100/ 6900)]) * ((rpm/ 6900) factor[(2100/ 6900),(1300/ 6900)]))";
    };
    class Engine1_Thrust_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1400_exh",0.63095737,1,280};
    frequency = "0.8 +  ((rpm/ 6900) factor[(1300/ 6900),(3100/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(1250/ 6900),(2050/ 6900)]) * ((rpm/ 6900) factor[(3100/ 6900),(2300/ 6900)]))";
    };
    class Engine2_Thrust_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_2000_exh",0.70794576,1,320};
    frequency = "0.8 + ((rpm/ 6900) factor[(2200/ 6900),(4100/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(2250/ 6900),(3050/ 6900)]) * ((rpm/ 6900) factor[(4100/ 6900),(3300/ 6900)]))";
    };
    class Engine3_Thrust_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_3200_exh",0.7943282,1,360};
    frequency = "0.8 + ((rpm/ 6900) factor[(3300/ 6900),(4900/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(3250/ 6900),(4050/ 6900)]) * ((rpm/ 6900) factor[(4870/ 6900),(4200/ 6900)]))";
    };
    class Engine4_Thrust_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_4000_exh",1,1,400};
    frequency = "0.8 + ((rpm/ 6900) factor[(4200/ 6900),(6200/ 6900)])*0.3";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(4150/ 6900),(4800/ 6900)]) * ((rpm/ 6900) factor[(6150/ 6900),(5150/ 6900)]))";
    };
    class Engine5_Thrust_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_5000_exh",1.2589254,1,450};
    frequency = "0.9 + ((rpm/ 6900) factor[(5100/ 6900),(6900/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 6900) factor[(5100/ 6900),(6100/ 6900)])";
    };
    class Idle_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_idle",0.17782794,1};
    frequency = "0.9 + ((rpm/ 6900) factor[(400/ 6900),(1150/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(400/ 6900),(700/ 6900)]) * ((rpm/ 6900) factor[(1100/ 6900),(900/ 6900)]))";
    };
    class Engine_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1000",0.19952622,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(900/ 6900),(2100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(870/ 6900),(1100/ 6900)]) * ((rpm/ 6900) factor[(2100/ 6900),(1300/ 6900)]))";
    };
    class Engine1_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1400",0.25118864,1};
    frequency = "0.8 +  ((rpm/ 6900) factor[(1300/ 6900),(3100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(1250/ 6900),(2050/ 6900)]) * ((rpm/ 6900) factor[(3100/ 6900),(2300/ 6900)]))";
    };
    class Engine2_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_2000",0.2818383,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(2200/ 6900),(4100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(2250/ 6900),(3050/ 6900)]) * ((rpm/ 6900) factor[(4100/ 6900),(3300/ 6900)]))";
    };
    class Engine3_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_3200",0.31622776,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(3300/ 6900),(4900/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(3250/ 6900),(4050/ 6900)]) * ((rpm/ 6900) factor[(4870/ 6900),(4200/ 6900)]))";
    };
    class Engine4_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_4000",0.3548134,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(4200/ 6900),(6200/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(4150/ 6900),(4800/ 6900)]) * ((rpm/ 6900) factor[(6150/ 6900),(5150/ 6900)]))";
    };
    class Engine5_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_5000",0.5011872,1};
    frequency = "0.95 + ((rpm/ 6900) factor[(5100/ 6900),(6900/ 6900)])*0.15";
    volume = "engineOn*(1-camPos)*((rpm/ 6900) factor[(5100/ 6900),(6100/ 6900)])";
    };
    class IdleThrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_idle",0.31622776,1};
    frequency = "0.9 + ((rpm/ 6900) factor[(400/ 6900),(1150/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(400/ 6900),(700/ 6900)]) * ((rpm/ 6900) factor[(1100/ 6900),(900/ 6900)]))";
    };
    class EngineThrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1000_exh",0.3548134,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(900/ 6900),(2100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(870/ 6900),(1100/ 6900)]) * ((rpm/ 6900) factor[(2100/ 6900),(1300/ 6900)]))";
    };
    class Engine1_Thrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1400_exh",0.39810717,1};
    frequency = "0.8 +  ((rpm/ 6900) factor[(1300/ 6900),(3100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(1250/ 6900),(2050/ 6900)]) * ((rpm/ 6900) factor[(3100/ 6900),(2300/ 6900)]))";
    };
    class Engine2_Thrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_2000_exh",0.4466836,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(2200/ 6900),(4100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(2250/ 6900),(3050/ 6900)]) * ((rpm/ 6900) factor[(4100/ 6900),(3300/ 6900)]))";
    };
    class Engine3_Thrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_3200_exh",0.5011872,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(3300/ 6900),(4900/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(3250/ 6900),(4050/ 6900)]) * ((rpm/ 6900) factor[(4870/ 6900),(4200/ 6900)]))";
    };
    class Engine4_Thrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_4000_exh",0.56234133,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(4200/ 6900),(6200/ 6900)])*0.3";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(4150/ 6900),(4800/ 6900)]) * ((rpm/ 6900) factor[(6150/ 6900),(5150/ 6900)]))";
    };
    class Engine5_Thrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_5000_exh",0.63095737,1};
    frequency = "0.9 + ((rpm/ 6900) factor[(5100/ 6900),(6900/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 6900) factor[(5100/ 6900),(6100/ 6900)])";
    };
    class Movement
    {
    sound = "soundEnviron";
    frequency = "1";
    volume = "0";
    };
    class TiresRockOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_dirt_soft_1",1,1,60};
    frequency = "1";
    volume = "camPos*rock*(speed factor[2, 20])";
    };
    class TiresSandOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-sand1",1,1,60};
    frequency = "1";
    volume = "camPos*sand*(speed factor[2, 20])";
    };
    class TiresGrassOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_dirt_soft_2",1,1,60};
    frequency = "1";
    volume = "camPos*grass*(speed factor[2, 20])";
    };
    class TiresMudOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-mud2",1,1,60};
    frequency = "1";
    volume = "camPos*mud*(speed factor[2, 20])";
    };
    class TiresGravelOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_gravel_1",0.70794576,1,60};
    frequency = "1";
    volume = "camPos*gravel*(speed factor[2, 20])";
    };
    class TiresAsphaltOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_asfalt_2",1,1,60};
    frequency = "1";
    volume = "camPos*asphalt*(speed factor[2, 20])";
    };
    class NoiseOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_ext_car_3",1.2589254,1,90};
    frequency = "1";
    volume = "camPos*(damper0 max 0.02)*(speed factor[0, 8])";
    };
    class TiresRockIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_dirt_soft_1",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*rock*(speed factor[2, 20])";
    };
    class TiresSandIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-sand2",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*sand*(speed factor[2, 20])";
    };
    class TiresGrassIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_dirt_soft_2",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*grass*(speed factor[2, 20])";
    };
    class TiresMudIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-mud2",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*mud*(speed factor[2, 20])";
    };
    class TiresGravelIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_gravel_1",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*gravel*(speed factor[2, 20])";
    };
    class TiresAsphaltIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_asfalt_2",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*asphalt*(speed factor[2, 20])";
    };
    class NoiseIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_int_car_3",1.2589254,1};
    frequency = "1";
    volume = "(damper0 max 0.1)*(speed factor[0, 8])*(1-camPos)";
    };
    class breaking_ext_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04",1.2589254,1,80};
    frequency = 1;
    volume = "engineOn*camPos*asphalt*(LongSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15])";
    };
    class acceleration_ext_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02",1.2589254,1,80};
    frequency = 1;
    volume = "engineOn*camPos*asphalt*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 2])";
    };
    class turn_left_ext_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02",1.2589254,1,80};
    frequency = 1;
    volume = "engineOn*camPos*asphalt*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[2, 15])";
    };
    class turn_right_ext_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02",1.2589254,1,80};
    frequency = 1;
    volume = "engineOn*camPos*asphalt*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15])";
    };
    class breaking_ext_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_14_dirt_breaking",1.2589254,1,60};
    frequency = 1;
    volume = "engineOn*camPos*(1-asphalt)*(LongSlipDrive Factor[-0.1, -0.4])*(Speed Factor[1, 15])";
    };
    class acceleration_ext_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_16_dirt_acceleration",1.2589254,1,60};
    frequency = 1;
    volume = "engineOn*camPos*(1-asphalt)*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 1])";
    };
    class turn_left_ext_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt",1.2589254,1,60};
    frequency = 1;
    volume = "engineOn*camPos*(1-asphalt)*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[1, 15])";
    };
    class turn_right_ext_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt",1.2589254,1,60};
    frequency = 1;
    volume = "engineOn*camPos*(1-asphalt)*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[1, 15])";
    };
    class breaking_int_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*asphalt*(1-camPos)*(LongSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15])";
    };
    class acceleration_int_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*asphalt*(1-camPos)*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 2])";
    };
    class turn_left_int_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*asphalt*(1-camPos)*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[2, 15])";
    };
    class turn_right_int_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*asphalt*(1-camPos)*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15])";
    };
    class breaking_int_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_14_dirt_breaking_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*(1-asphalt)*(1-camPos)*(LongSlipDrive Factor[-01, -0.4])*(Speed Factor[2, 15])";
    };
    class acceleration_int_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_16_dirt_acceleration_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*(1-asphalt)*(1-camPos)*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 2])";
    };
    class turn_left_int_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*(1-asphalt)*(1-camPos)*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[2, 15])";
    };
    class turn_right_int_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*(1-asphalt)*(1-camPos)*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15])";
    };
    };
    #uninclude //GIJOE\vhx_soft\gijoe_vamp\sounds.hpp
    class TransportMagazines
    {
    class _xx_150Rnd_762x54_Box
    {
    magazine = "150Rnd_762x54_Box";
    count = 4;
    };
    };
    class TransportItems
    {
    class _xx_FirstAidKit
    {
    name = "FirstAidKit";
    count = 10;
    };
    };
    /*class TransportWeapons
    {
    class _xx_arifle_Katiba_F
    {
    weapon = "arifle_Katiba_F";
    count = 2;
    };
    };*/
    };
    class vamp1: vamp_01_base_F
    {
    author = "Scot Gilmore";
    _generalMacro = "vamp1";
    scope = 2;
    crew = "vamp_cargo";
    typicalCargo[] = {"vamp_cargo"};
    side = 1;
    faction = "GIJOE";
    displayName = "** VAMP **";
    vehicleClass = "GIJoe_Ground";
    accuracy = 1.25;
    hiddenSelectionsTextures[] = {"GIJOE\vhx_soft\gijoe_vamp\data\vamp_ext_co.paa"};
    transportSoldier = 0;
    cost = 600000;
    threat[] = {1,0.4,0.6};
    class AnimationSources: AnimationSources
    {
    class muzzle_rot
    {
    source = "ammorandom";
    weapon = "HMG_127";
    };
    class muzzle_hide
    {
    source = "reload";
    weapon = "HMG_127";
    };
    };
    cargoDoors[] = {};
    class Turrets: Turrets
    {
    class MainTurret: MainTurret
    {
    body = "mainTurret";
    gun = "gunbase";
    memoryPointGun[] = {"muzzle_1","muzzle_2"};
    /*
    gunBeg = "muzzle";
    gunEnd = "chamber";
    */
    weapons[] = {"HMG_127"};
    magazines[] = {"200Rnd_127x99_mag_Tracer_Green","200Rnd_127x99_mag_Tracer_Green","200Rnd_127x99_mag_Tracer_Green","200Rnd_127x99_mag_Tracer_Green"};
    selectionFireAnim = "zasleh";
    soundServo[] = {"A3\sounds_f\dummysound",0.01,1.0,10};
    gunnerAction = "gunner_MRAP_01";
    viewGunnerInExternal = 1;
    hideWeaponsGunner = 1;
    castGunnerShadow = 1;
    stabilizedInAxes = 3;
    memoryPointGunnerOptics = "pip3_pos";
    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};
    discreteDistanceInitIndex = 2;
    turretInfoType = "RscOptics_crows";
    usePip = 1;
    minElev = -6.5;
    maxElev = 48;
    LODTurnedIn = 1000;
    class ViewOptics: RCWSOptics{};
    class ViewGunner: ViewOptics
    {
    initAngleX = -45;
    minAngleX = -55;
    maxAngleX = -20;
    initFov = 0.9;
    minFov = 0.42;
    maxFov = 0.9;
    visionMode[] = {};
    };
    class HitPoints: HitPoints
    {
    class HitTurret
    {
    armor = 1.2;
    material = -1;
    name = "vez";
    visual = "vez";
    passThrough = 0;
    minimalHit = 0.1;
    explosionShielding = 0.4;
    radius = 0.6;
    };
    class HitGun
    {
    armor = 0.6;
    material = -1;
    name = "zbran";
    visual = "zbran";
    passThrough = 0;
    minimalHit = 0.1;
    explosionShielding = 0.2;
    radius = 0.6;
    };
    };
    gunnerDoor = "";
    };
    };
    class RenderTargets
    {
    class LeftMirror
    {
    renderTarget = "rendertarget1";
    class CameraView1
    {
    pointPosition = "pip1_pos";
    pointDirection = "pip1_dir";
    renderVisionMode = 0;
    renderQuality = 2;
    fov = 0.7;
    };
    };
    class RightMirror
    {
    renderTarget = "rendertarget2";
    class CameraView1
    {
    pointPosition = "pip2_pos";
    pointDirection = "pip2_dir";
    renderQuality = 2;
    renderVisionMode = 0;
    fov = 0.7;
    };
    };
    class GunnerCam
    {
    renderTarget = "rendertarget3";
    class CameraView1
    {
    pointPosition = "pip3_pos";
    pointDirection = "pip3_dir";
    renderQuality = 2;
    renderVisionMode = 0;
    fov = 0.1;
    };
    };
    };
    };
    };
    //};

    rebuilding GIJOE\vhx_soft\gijoe_vamp\config.cpp.cfgPatches.units[]=...(no changes)
    rapify x64UnicodeVersion 1.76, Dll 6.44 "config.cpp"
    No Error(s)
    Output is to p:\temp\GIJOE\vhx_soft\gijoe_vamp\config.bin

    P:\temp\GIJOE\vhx_soft\gijoe_vamp\config.bin
    1 File(s) copied
    GIJOE\vhx_soft\gijoe_vamp\texHeaders.bin
    1 File(s) copied
    "<Bis Binarise...>"
    ""E:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\Binarize\Binarize.exe" -targetBonesInterval=56 -textures=p:\temp -binPath=P:\ GIJOE\vhx_soft\gijoe_vamp p:\temp\GIJOE\vhx_soft\gijoe_vamp"


    I don't know how it's supposed to work, but I wonder if it's supposed to have the space in "-binPath=P:\ GIJOE\vhx_soft\gijoe_vamp" between P:\_and_GIJOE? If not, then what's causing it? I tried to use "Addon Breaker" to see if it would still push it out as before. The result is an empty entry in the virtual garage that causes the character to spawn without a vehicle, and I cannot select other vehicles. Using alt+F4 yields an error message after killing it. So, whatever changes made in the all-encompassing effort of getting Mikero's Tools to work also affected Addon Builder, probably Binarize.exe to be specific. If it's a problem with my config or model, then sorry, but I still think there's a setup mishap somewhere.

    • Confused 1

  3. On 3/6/2018 at 7:38 AM, Dedmen said:

    If you don't have the PBOPREFIX setup correctly Arma won't find your files after you packed your PBO's.

    Sigh... in these files I have seen unique values called sha or shakeys. According to Mikero's documentation for pboProject, there is an SVN generated by vbs2lite? What's the difference, how is either one generated, and what are the consequences of skipping them?


  4. Prior to streamlining my mod's internal directory and setting the texture path in OB constant for every model, everything was working. Prior to making the move to utilize more of Mikero Tools, my mod components were pumping out. It was a few more steps, but vehicles were visible with proper textures in Buldozer, and more importantly they were coming out nicely in the game environment. I even made some videos featuring many of my vehicles. Between BIS, Mikero, and Windows 10 Fall Creators Update I think they are all conspiring against me :-P But seriously, after re-install of Mikero's Tools, Arma 3 Tools, and Arma 3 itself, I finally got to a point where the pboProject was giving me actual output. Now encountering a binarize error:
    Noisy:

    Spoiler

    22:46:38: Extensions:
    "</texheaders>"
    #define _ARMA_
    //ndefs=13
    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 E:/Program Files (x86)/Steam/SteamApps/common/Arma 3/Addons/soft_f/a3/soft_f/MRAP_02/config.bin{
    class DefaultEventhandlers;
    class CfgPatches
    {
    class GIJoeVAMP
    {
    units[] = {"vamp1"};
    weapons[] = {};
    requiredVersion = 0.1;
    requiredAddons[] = {"A3_Soft_F"};
    };
    };
    class CfgFactionClasses
    {
    class GIJOE
    {
    displayName = "GI*JOE";
    author = "Scot Gilmore";
    icon = "GIJOE\data_f\faction_gijoe_co.paa";
    priority = 2;
    side = 1;
    };
    };
    class CfgVehicleClasses
    {
    class GIJoe_Ground
    {
    displayName = "GI*JOE Ground";
    };
    };
    /*
    class CfgMovesBasic
    {
    class Default;
    class DefaultDie;
    class ManActions
    {
    vamp_driver = "vamp_driver";
    vamp_cargo = "vamp_cargo";
    };
    };
    class CfgMovesMaleSdr: CfgMovesBasic
    {
    class States
    {
    class Crew;
    class vamp_driver: Crew
    {
    file = "GIJOE\vhx_soft\gijoe_vamp\Anims\vamp_driver.rtm";
    InterpolateTo[] = {"Unconscious",0.1};
    };
    class vamp_cargo: Crew
    {
    file = "GIJOE\vhx_soft\gijoe_vamp\Anims\vamp_cargo.rtm";
    actions = "CargoAction";
    leaning = "crewShake";
    InterpolateTo[] = {"Unconscious",0.1};
    };
    };
    };
    */
    class WeaponFireGun;
    class WeaponCloudsGun;
    class WeaponFireMGun;
    class WeaponCloudsMGun;
    class RCWSOptics;
    class CfgVehicles
    {
    class LandVehicle;
    class Car: LandVehicle
    {
    class NewTurret;
    class HitPoints;
    };
    class Car_F: Car
    {
    class AnimationSources;
    class Turrets
    {
    class MainTurret: NewTurret{};
    };
    class HitPoints
    {
    class HitLFWheel;
    class HitLF2Wheel;
    class HitRFWheel;
    class HitRF2Wheel;
    class HitGlass1;
    class HitGlass2;
    class HitGlass3;
    class HitGlass4;
    class HitGlass5;
    };
    };
    class vamp_01_base_F: Car_F
    {
    mapSize = 8.5;
    author = "Scot Gilmore";
    _generalMacro = "vamp_01_base_F";
    displayName = "VAMP";
    class Library
    {
    libTextDesc = "Vehicle, Assault/Multi-Purpose";
    };
    model  = "GIJOE\vhx_soft\gijoe_vamp\vamp1";
    picture = "GIJOE\vhx_soft\gijoe_vamp\Data\UI\icon_vamp_co.paa";
    Icon = "GIJOE\vhx_soft\gijoe_vamp\Data\UI\map_vamp_co.paa";
    transportMaxBackpacks = 2;
    //vehicleClass = "Car";
    transportSoldier = 0;
    hideWeaponsDriver = 1;
    hideWeaponsCargo = 1;
    maxFordingDepth = 0.5;
    waterResistance = 1;
    crewVulnerable = 1;
    crewCrashProtection = 0.15;
    crewExplosionProtection = 0.4999;
    slingLoadCargoMemoryPoints[] = {"SlingLoadCargo1","SlingLoadCargo2","SlingLoadCargo3","SlingLoadCargo4"};
    unitInfoType = "RscUnitInfoNoWeapon";
    armor = 50;
    armorStructural = 6;
    cost = 500000;
    threat[] = {0.8,0.6,0.3};
    class complexGearbox
    {
    GearboxRatios[] = {"R1",-6.575,"N",0,"D1",4.827,"D2",2.855,"D3",1.716,"D4",1.073,"D5",0.755,"D6",0.575};
    TransmissionRatios[] = {"High",5.69};
    gearBoxMode = "auto";
    moveOffGear = 1;
    driveString = "D";
    neutralString = "N";
    reverseString = "R";
    };
    wheelDamageThreshold = 0.7;
    wheelDestroyThreshold = 0.99;
    wheelDamageRadiusCoef = 0.95;
    wheelDestroyRadiusCoef = 0.45;
    terrainCoef = 1.5;
    turnCoef = 2.5;
    precision = 15;
    driverAction = "driver_mantis";
    cargoAction[] = {"passenger_MRAP_03exgunner"};
    getInAction = "GetInLow";
    getOutAction = "GetOutLow";
    cargoGetInAction[] = {"GetInLow"};
    cargoGetOutAction[] = {"GetOutLow"};
    commanderCanSee = 31;
    driverDoor = "";
    cargoDoors[] = {};
    weapons[] = {"TruckHorn"};
    //magazines[] = {"SmokeLauncherMag"};
    thrustDelay = 1.5;
    brakeIdleSpeed = 1.78;
    maxSpeed = 225;
    fuelCapacity = 90;
    wheelCircumference = 2.8;
    antiRollbarForceCoef = 4.5;
    antiRollbarForceLimit = 5;
    antiRollbarSpeedMin = 10;
    antiRollbarSpeedMax = 200;
    idleRpm = 800;
    redRpm = 7800;
    simulation = "carx";
    dampersBumpCoef = 0.3;
    differentialType = "all_limited";
    frontRearSplit = 0.5;
    frontBias = 1.9;
    rearBias = 1.9;
    clutchStrength = 50.0;
    enginePower = 376;
    maxOmega = 520;
    peakTorque = 1046;
    dampingRateFullThrottle = 0.1;
    dampingRateZeroThrottleClutchEngaged = 1.0;
    dampingRateZeroThrottleClutchDisengaged = 0.35;
    torqueCurve[] = {{0.0,0.1},{0.178,0.5},{0.25,0.85},{0.4,0.95},{0.5,1.0},{0.625,0.95},{0.75,0.7},{1.0,0.5}};
    changeGearMinEffectivity[] = {0.95,0.15,0.95,0.95,0.95,0.95,0.95,0.98};
    switchTime = 0.2;
    latency = 0.25;
    class Wheels
    {
    class LF
    {
    boneName = "wheel_1_1_damper";
    side = "left";
    steering = 1;
    center = "wheel_1_1_axis";
    boundary = "wheel_1_1_bound";
    width = "0.2";
    mass = 20;
    MOI = 10;
    dampingRate = 0.3;
    dampingRateDamaged = 5;
    dampingRateInAir = 0.8;
    maxBrakeTorque = 4000;
    maxHandBrakeTorque = 0;
    suspTravelDirection[] = {0,-1,0};
    suspForceAppPointOffset = "wheel_1_1_axis";
    tireForceAppPointOffset = "wheel_1_1_axis";
    maxCompression = 0.14;
    mMaxDroop = 0.14;
    sprungMass = 566; //163;
    springStrength = 30800; //4075
    springDamperRate = 1651;
    longitudinalStiffnessPerUnitGravity = 100000;
    latStiffX = 40; //25; //2.5;
    latStiffY = 18; //180.0;
    frictionVsSlipGraph[] = {{0,1},{0.5,1},{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 = 12000;
    sprungMass = 560; //163;
    };
    class RF: LF
    {
    boneName = "wheel_2_1_damper";
    side = "right";
    center = "wheel_2_1_axis";
    boundary = "wheel_2_1_bound";
    suspForceAppPointOffset = "wheel_2_1_axis";
    tireForceAppPointOffset = "wheel_2_1_axis";
    };
    class RR: LR
    {
    boneName = "wheel_2_2_damper";
    side = "right";
    steering = 0;
    center = "wheel_2_2_axis";
    boundary = "wheel_2_2_bound";
    suspForceAppPointOffset = "wheel_2_2_axis";
    tireForceAppPointOffset = "wheel_2_2_axis";
    };
    };
    class PlayerSteeringCoefficients /// steering sensitivity configuration
    {
    turnIncreaseConst  = 0.5; //0.3; // basic sensitivity value, higher value = faster steering
    turnIncreaseLinear = 2.0; //1.0; // higher value means less sensitive steering in higher speed, more sensitive in lower speeds
    turnIncreaseTime   = 0.5; //1.0; // higher value means smoother steering around the center and more sensitive when the actual steering angle gets closer to the max. steering angle
    turnDecreaseConst  = 5.0; // basic caster effect value, higher value = the faster the wheels align in the direction of travel
    turnDecreaseLinear = 3.0; // higher value means faster wheel re-centering in higher speed, slower in lower speeds
    turnDecreaseTime   = 1.0; //0.0; // higher value means stronger caster effect at the max. steering angle and weaker once the wheels are closer to centered position
    maxTurnHundred     = 0.5; //0.7; // coefficient of the maximum turning angle @ 100km/h; limit goes linearly to the default max. turn. angle @ 0km/h
    };
    class Reflectors
    {
    class Left
    {
    color[] = {1900,1800,1700};
    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 = 1;
    dayLight = 0;
    flareSize = 1.0;
    class Attenuation
    {
    start = 1.0;
    constant = 0;
    linear = 0;
    quadratic = 0.25;
    hardLimitStart = 60;
    hardLimitEnd = 120;
    };
    };
    class Right: Left
    {
    position = "Light_R";
    direction = "Light_R_end";
    hitpoint = "Light_R";
    selection = "Light_R";
    };
    };
    aggregateReflectors[] = {{"Left","Right"}};
    class Exhausts
    {
    class Exhaust1
    {
    position = "exhaust1_pos";
    direction = "exhaust1_dir";
    effect = "ExhaustEffectHTruck";
    };
    class Exhaust2
    {
    position = "exhaust2_pos";
    direction = "exhaust2_dir";
    effect = "ExhaustEffectHTruck";
    };
    };
    class Damage
    {
    tex[] = {};
    mat[] = {"A3\Data_F\Glass_veh.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Data_F\Glass_veh_int.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_01.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_01_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_01_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_02.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_02_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_02_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_VP.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_VP.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_destruct.rvmat"};
    };
    hiddenSelections[] = {"Camo1"};
    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 HitGlass6
    {
    source = "Hit";
    hitpoint = "HitGlass6";
    raw = 1;
    };
    class HitGlass7: HitGlass6
    {
    hitpoint = "HitGlass7";
    };
    class HitGlass8: HitGlass6
    {
    hitpoint = "HitGlass8";
    };
    class HitGlass9: HitGlass6
    {
    hitpoint = "HitGlass9";
    };
    };
    class HitPoints: HitPoints
    {
    class HitLFWheel: HitLFWheel
    {
    armor = 1;
    explosionShielding = 4;
    radius = 0.33;
    };
    class HitLF2Wheel: HitLF2Wheel
    {
    armor = 1;
    explosionShielding = 4;
    radius = 0.33;
    };
    class HitRFWheel: HitRFWheel
    {
    armor = 1;
    explosionShielding = 4;
    radius = 0.33;
    };
    class HitRF2Wheel: HitRF2Wheel
    {
    armor = 1;
    explosionShielding = 4;
    radius = 0.33;
    };
    class HitReserveWheel
    {
    armor = 1;
    material = -1;
    name = "wheel_reserve_hit";
    visual = "";
    passThrough = 0.3;
    explosionShielding = 0.8;
    };
    class HitFuel
    {
    armor = 1.0;
    material = -1;
    name = "palivo";
    visual = "";
    passThrough = 1.0;
    minimalHit = 0.2;
    explosionShielding = 0.1;
    radius = 0.25;
    };
    class HitEngine
    {
    armor = 1.0;
    material = -1;
    name = "motor";
    visual = "";
    passThrough = 0.2;
    minimalHit = 0.2;
    explosionShielding = 0.4;
    radius = 0.45;
    };
    class HitBody
    {
    armor = 8.0;
    material = -1;
    name = "karoserie";
    visual = "zbytek";
    passThrough = 1.0;
    minimalHit = 0.01;
    explosionShielding = 0.6;
    radius = 0.45;
    };
    class HitGlass1: HitGlass1
    {
    armor = 3;
    explosionShielding = 3;
    radius = 0.25;
    };
    class HitGlass2: HitGlass2
    {
    armor = 3;
    explosionShielding = 3;
    radius = 0.25;
    };
    class HitGlass3: HitGlass3
    {
    armor = 3;
    explosionShielding = 3;
    radius = 0.25;
    };
    class HitGlass4: HitGlass4
    {
    armor = 3;
    explosionShielding = 3;
    radius = 0.25;
    };
    class HitGlass5: HitGlass5
    {
    armor = 3;
    explosionShielding = 3;
    radius = 0.25;
    };
    class HitGlass6: HitGlass5
    {
    name = "glass6";
    visual = "glass6";
    };
    class HitGlass7: HitGlass5
    {
    name = "glass7";
    visual = "glass7";
    };
    class HitGlass8: HitGlass5
    {
    name = "glass8";
    visual = "glass8";
    };
    class HitGlass9: HitGlass5
    {
    name = "glass9";
    visual = "glass9";
    };
    class HitGlass10: HitGlass5
    {
    name = "glass10";
    visual = "glass10";
    };
    class HitGlass11: HitGlass5
    {
    name = "glass11";
    visual = "glass11";
    };
    };
    class UserActions
    {
    class DoorLF_Open
    {
    userActionID = 50;
    displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorLF_Open0";
    displayNameDefault = "<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />";
    textToolTip = "$STR_DN_OUT_O_DOOR";
    priority = 0.1;
    radius = 2.5;
    radiusView = 0.2;
    showIn3D = 17;
    available = 0;
    position = "door1_axis";
    showWindow = 1;
    onlyForPlayer = 1;
    shortcut = "";
    condition = "((this doorPhase 'Door_LF')  ==  0) && (alive this) && this != vehicle player && false";
    statement = "this animateDoor ['Door_LF', 1]";
    };
    class DoorLF_Close: DoorLF_Open
    {
    userActionID = 51;
    displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorLF_Close0";
    displayNameDefault = "<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />";
    textToolTip = "$STR_DN_OUT_C_DOOR";
    condition = "((this doorPhase 'Door_LF') > 0) && (alive this) && false";
    statement = "this animateDoor ['Door_LF', 0]";
    };
    class DoorRF_Open: DoorLF_Open
    {
    userActionID = 52;
    displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorRF_Open0";
    position = "door3_axis";
    condition = "((this doorPhase 'Door_RF')  ==  0) && (alive this) && this != vehicle player && false";
    statement = "this animateDoor ['Door_RF', 1]";
    };
    class DoorRF_Close: DoorRF_Open
    {
    userActionID = 53;
    displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorRF_Close0";
    displayNameDefault = "<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />";
    textToolTip = "$STR_DN_OUT_C_DOOR";
    condition = "((this doorPhase 'Door_RF') > 0) && (alive this) && false";
    statement = "this animateDoor ['Door_RF', 0]";
    };
    };
    #include "sounds.hpp" //separate file for better work flow
    attenuationEffectType = "CarAttenuation";
    soundGetIn[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_door",0.56234133,1};
    soundGetOut[] = {"A3\Sounds_F\vehicles\soft\Hatchback_01\Hatchback_01_door",0.56234133,1,40};
    soundDammage[] = {"",0.56234133,1};
    soundEngineOnInt[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_start",0.39810717,1};
    soundEngineOnExt[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_start",0.4466836,1,200};
    soundEngineOffInt[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_stop",0.39810717,1};
    soundEngineOffExt[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_stop",0.4466836,1,200};
    buildCrash0[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_1",1.2589254,1,200};
    buildCrash1[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_2",1.2589254,1,200};
    buildCrash2[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_3",1.2589254,1,200};
    buildCrash3[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_4",1.2589254,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.2589254,1,200};
    WoodCrash1[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1",1.2589254,1,200};
    WoodCrash2[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1",1.2589254,1,200};
    WoodCrash3[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_wood_ext_1",1.2589254,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.2589254,1,200};
    armorCrash1[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_2",1.2589254,1,200};
    armorCrash2[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_3",1.2589254,1,200};
    armorCrash3[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_4",1.2589254,1,200};
    soundArmorCrash[] = {"ArmorCrash0",0.25,"ArmorCrash1",0.25,"ArmorCrash2",0.25,"ArmorCrash3",0.25};
    class Sounds
    {
    class Idle_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_idle",0.22387211,1,150};
    frequency = "0.9 + ((rpm/ 6900) factor[(400/ 6900),(1150/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(400/ 6900),(700/ 6900)]) * ((rpm/ 6900) factor[(1100/ 6900),(900/ 6900)]))";
    };
    class Engine
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1000",0.2818383,1,200};
    frequency = "0.8 + ((rpm/ 6900) factor[(900/ 6900),(2100/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(870/ 6900),(1100/ 6900)]) * ((rpm/ 6900) factor[(2100/ 6900),(1300/ 6900)]))";
    };
    class Engine1_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1400",0.3548134,1,240};
    frequency = "0.8 +  ((rpm/ 6900) factor[(1300/ 6900),(3100/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(1250/ 6900),(2050/ 6900)]) * ((rpm/ 6900) factor[(3100/ 6900),(2300/ 6900)]))";
    };
    class Engine2_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_2000",0.39810717,1,280};
    frequency = "0.8 + ((rpm/ 6900) factor[(2200/ 6900),(4100/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(2250/ 6900),(3050/ 6900)]) * ((rpm/ 6900) factor[(4100/ 6900),(3300/ 6900)]))";
    };
    class Engine3_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_3200",0.4466836,1,320};
    frequency = "0.8 + ((rpm/ 6900) factor[(3300/ 6900),(4900/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(3250/ 6900),(4050/ 6900)]) * ((rpm/ 6900) factor[(4870/ 6900),(4200/ 6900)]))";
    };
    class Engine4_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_4000",0.5011872,1,360};
    frequency = "0.8 + ((rpm/ 6900) factor[(4200/ 6900),(6200/ 6900)])*0.2";
    volume = "engineOn*camPos*(((rpm/ 6900) factor[(4150/ 6900),(4800/ 6900)]) * ((rpm/ 6900) factor[(6150/ 6900),(5150/ 6900)]))";
    };
    class Engine5_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_5000",0.56234133,1,420};
    frequency = "0.95 + ((rpm/ 6900) factor[(5100/ 6900),(6900/ 6900)])*0.15";
    volume = "engineOn*camPos*((rpm/ 6900) factor[(5100/ 6900),(6100/ 6900)])";
    };
    class IdleThrust
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_idle",0.5011872,1,200};
    frequency = "0.9 + ((rpm/ 6900) factor[(400/ 6900),(1150/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(400/ 6900),(700/ 6900)]) * ((rpm/ 6900) factor[(1100/ 6900),(900/ 6900)]))";
    };
    class EngineThrust
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1000_exh",0.56234133,1,250};
    frequency = "0.8 + ((rpm/ 6900) factor[(900/ 6900),(2100/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(870/ 6900),(1100/ 6900)]) * ((rpm/ 6900) factor[(2100/ 6900),(1300/ 6900)]))";
    };
    class Engine1_Thrust_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1400_exh",0.63095737,1,280};
    frequency = "0.8 +  ((rpm/ 6900) factor[(1300/ 6900),(3100/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(1250/ 6900),(2050/ 6900)]) * ((rpm/ 6900) factor[(3100/ 6900),(2300/ 6900)]))";
    };
    class Engine2_Thrust_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_2000_exh",0.70794576,1,320};
    frequency = "0.8 + ((rpm/ 6900) factor[(2200/ 6900),(4100/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(2250/ 6900),(3050/ 6900)]) * ((rpm/ 6900) factor[(4100/ 6900),(3300/ 6900)]))";
    };
    class Engine3_Thrust_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_3200_exh",0.7943282,1,360};
    frequency = "0.8 + ((rpm/ 6900) factor[(3300/ 6900),(4900/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(3250/ 6900),(4050/ 6900)]) * ((rpm/ 6900) factor[(4870/ 6900),(4200/ 6900)]))";
    };
    class Engine4_Thrust_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_4000_exh",1,1,400};
    frequency = "0.8 + ((rpm/ 6900) factor[(4200/ 6900),(6200/ 6900)])*0.3";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(4150/ 6900),(4800/ 6900)]) * ((rpm/ 6900) factor[(6150/ 6900),(5150/ 6900)]))";
    };
    class Engine5_Thrust_ext
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_5000_exh",1.2589254,1,450};
    frequency = "0.9 + ((rpm/ 6900) factor[(5100/ 6900),(6900/ 6900)])*0.2";
    volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 6900) factor[(5100/ 6900),(6100/ 6900)])";
    };
    class Idle_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_idle",0.17782794,1};
    frequency = "0.9 + ((rpm/ 6900) factor[(400/ 6900),(1150/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(400/ 6900),(700/ 6900)]) * ((rpm/ 6900) factor[(1100/ 6900),(900/ 6900)]))";
    };
    class Engine_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1000",0.19952622,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(900/ 6900),(2100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(870/ 6900),(1100/ 6900)]) * ((rpm/ 6900) factor[(2100/ 6900),(1300/ 6900)]))";
    };
    class Engine1_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1400",0.25118864,1};
    frequency = "0.8 +  ((rpm/ 6900) factor[(1300/ 6900),(3100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(1250/ 6900),(2050/ 6900)]) * ((rpm/ 6900) factor[(3100/ 6900),(2300/ 6900)]))";
    };
    class Engine2_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_2000",0.2818383,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(2200/ 6900),(4100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(2250/ 6900),(3050/ 6900)]) * ((rpm/ 6900) factor[(4100/ 6900),(3300/ 6900)]))";
    };
    class Engine3_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_3200",0.31622776,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(3300/ 6900),(4900/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(3250/ 6900),(4050/ 6900)]) * ((rpm/ 6900) factor[(4870/ 6900),(4200/ 6900)]))";
    };
    class Engine4_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_4000",0.3548134,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(4200/ 6900),(6200/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(((rpm/ 6900) factor[(4150/ 6900),(4800/ 6900)]) * ((rpm/ 6900) factor[(6150/ 6900),(5150/ 6900)]))";
    };
    class Engine5_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_5000",0.5011872,1};
    frequency = "0.95 + ((rpm/ 6900) factor[(5100/ 6900),(6900/ 6900)])*0.15";
    volume = "engineOn*(1-camPos)*((rpm/ 6900) factor[(5100/ 6900),(6100/ 6900)])";
    };
    class IdleThrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_idle",0.31622776,1};
    frequency = "0.9 + ((rpm/ 6900) factor[(400/ 6900),(1150/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(400/ 6900),(700/ 6900)]) * ((rpm/ 6900) factor[(1100/ 6900),(900/ 6900)]))";
    };
    class EngineThrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1000_exh",0.3548134,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(900/ 6900),(2100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(870/ 6900),(1100/ 6900)]) * ((rpm/ 6900) factor[(2100/ 6900),(1300/ 6900)]))";
    };
    class Engine1_Thrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_1400_exh",0.39810717,1};
    frequency = "0.8 +  ((rpm/ 6900) factor[(1300/ 6900),(3100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(1250/ 6900),(2050/ 6900)]) * ((rpm/ 6900) factor[(3100/ 6900),(2300/ 6900)]))";
    };
    class Engine2_Thrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_2000_exh",0.4466836,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(2200/ 6900),(4100/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(2250/ 6900),(3050/ 6900)]) * ((rpm/ 6900) factor[(4100/ 6900),(3300/ 6900)]))";
    };
    class Engine3_Thrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_3200_exh",0.5011872,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(3300/ 6900),(4900/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(3250/ 6900),(4050/ 6900)]) * ((rpm/ 6900) factor[(4870/ 6900),(4200/ 6900)]))";
    };
    class Engine4_Thrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_4000_exh",0.56234133,1};
    frequency = "0.8 + ((rpm/ 6900) factor[(4200/ 6900),(6200/ 6900)])*0.3";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 6900) factor[(4150/ 6900),(4800/ 6900)]) * ((rpm/ 6900) factor[(6150/ 6900),(5150/ 6900)]))";
    };
    class Engine5_Thrust_int
    {
    sound[] = {"GIJOE\vhx_soft\gijoe_vamp\Sounds\motor_5000_exh",0.63095737,1};
    frequency = "0.9 + ((rpm/ 6900) factor[(5100/ 6900),(6900/ 6900)])*0.2";
    volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 6900) factor[(5100/ 6900),(6100/ 6900)])";
    };
    class Movement
    {
    sound = "soundEnviron";
    frequency = "1";
    volume = "0";
    };
    class TiresRockOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_dirt_soft_1",1,1,60};
    frequency = "1";
    volume = "camPos*rock*(speed factor[2, 20])";
    };
    class TiresSandOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-sand1",1,1,60};
    frequency = "1";
    volume = "camPos*sand*(speed factor[2, 20])";
    };
    class TiresGrassOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_dirt_soft_2",1,1,60};
    frequency = "1";
    volume = "camPos*grass*(speed factor[2, 20])";
    };
    class TiresMudOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-mud2",1,1,60};
    frequency = "1";
    volume = "camPos*mud*(speed factor[2, 20])";
    };
    class TiresGravelOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_gravel_1",0.70794576,1,60};
    frequency = "1";
    volume = "camPos*gravel*(speed factor[2, 20])";
    };
    class TiresAsphaltOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_asfalt_2",1,1,60};
    frequency = "1";
    volume = "camPos*asphalt*(speed factor[2, 20])";
    };
    class NoiseOut
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_ext_car_3",1.2589254,1,90};
    frequency = "1";
    volume = "camPos*(damper0 max 0.02)*(speed factor[0, 8])";
    };
    class TiresRockIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_dirt_soft_1",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*rock*(speed factor[2, 20])";
    };
    class TiresSandIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-sand2",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*sand*(speed factor[2, 20])";
    };
    class TiresGrassIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_dirt_soft_2",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*grass*(speed factor[2, 20])";
    };
    class TiresMudIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-mud2",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*mud*(speed factor[2, 20])";
    };
    class TiresGravelIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_gravel_1",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*gravel*(speed factor[2, 20])";
    };
    class TiresAsphaltIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_asfalt_2",0.7943282,1};
    frequency = "1";
    volume = "(1-camPos)*asphalt*(speed factor[2, 20])";
    };
    class NoiseIn
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_int_car_3",1.2589254,1};
    frequency = "1";
    volume = "(damper0 max 0.1)*(speed factor[0, 8])*(1-camPos)";
    };
    class breaking_ext_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04",1.2589254,1,80};
    frequency = 1;
    volume = "engineOn*camPos*asphalt*(LongSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15])";
    };
    class acceleration_ext_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02",1.2589254,1,80};
    frequency = 1;
    volume = "engineOn*camPos*asphalt*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 2])";
    };
    class turn_left_ext_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02",1.2589254,1,80};
    frequency = 1;
    volume = "engineOn*camPos*asphalt*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[2, 15])";
    };
    class turn_right_ext_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02",1.2589254,1,80};
    frequency = 1;
    volume = "engineOn*camPos*asphalt*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15])";
    };
    class breaking_ext_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_14_dirt_breaking",1.2589254,1,60};
    frequency = 1;
    volume = "engineOn*camPos*(1-asphalt)*(LongSlipDrive Factor[-0.1, -0.4])*(Speed Factor[1, 15])";
    };
    class acceleration_ext_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_16_dirt_acceleration",1.2589254,1,60};
    frequency = 1;
    volume = "engineOn*camPos*(1-asphalt)*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 1])";
    };
    class turn_left_ext_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt",1.2589254,1,60};
    frequency = 1;
    volume = "engineOn*camPos*(1-asphalt)*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[1, 15])";
    };
    class turn_right_ext_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt",1.2589254,1,60};
    frequency = 1;
    volume = "engineOn*camPos*(1-asphalt)*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[1, 15])";
    };
    class breaking_int_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*asphalt*(1-camPos)*(LongSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15])";
    };
    class acceleration_int_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*asphalt*(1-camPos)*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 2])";
    };
    class turn_left_int_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*asphalt*(1-camPos)*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[2, 15])";
    };
    class turn_right_int_road
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*asphalt*(1-camPos)*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15])";
    };
    class breaking_int_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_14_dirt_breaking_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*(1-asphalt)*(1-camPos)*(LongSlipDrive Factor[-01, -0.4])*(Speed Factor[2, 15])";
    };
    class acceleration_int_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_16_dirt_acceleration_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*(1-asphalt)*(1-camPos)*(LongSlipDrive Factor[0.1, 0.4])*(Speed Factor[15, 2])";
    };
    class turn_left_int_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*(1-asphalt)*(1-camPos)*(latSlipDrive Factor[0.1, 0.4])*(Speed Factor[2, 15])";
    };
    class turn_right_int_dirt
    {
    sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt_int",1.2589254,1};
    frequency = 1;
    volume = "engineOn*(1-asphalt)*(1-camPos)*(latSlipDrive Factor[-0.1, -0.4])*(Speed Factor[2, 15])";
    };
    };
    #uninclude //GIJOE\vhx_soft\gijoe_vamp\sounds.hpp
    class TransportMagazines
    {
    class _xx_150Rnd_762x54_Box
    {
    magazine = "150Rnd_762x54_Box";
    count = 4;
    };
    };
    class TransportItems
    {
    class _xx_FirstAidKit
    {
    name = "FirstAidKit";
    count = 10;
    };
    };
    /*class TransportWeapons
    {
    class _xx_arifle_Katiba_F
    {
    weapon = "arifle_Katiba_F";
    count = 2;
    };
    };*/
    };
    class vamp1: vamp_01_base_F
    {
    author = "Scot Gilmore";
    _generalMacro = "vamp1";
    scope = 2;
    crew = "vamp_cargo";
    typicalCargo[] = {"vamp_cargo"};
    side = 1;
    faction = "GIJOE";
    displayName = "** VAMP **";
    vehicleClass = "GIJoe_Ground";
    accuracy = 1.25;
    hiddenSelectionsTextures[] = {"GIJOE\vhx_soft\gijoe_vamp\data\vamp_ext_co.paa"};
    transportSoldier = 0;
    cost = 600000;
    threat[] = {1,0.4,0.6};
    class AnimationSources: AnimationSources
    {
    class muzzle_rot
    {
    source = "ammorandom";
    weapon = "HMG_127";
    };
    class muzzle_hide
    {
    source = "reload";
    weapon = "HMG_127";
    };
    };
    cargoDoors[] = {};
    class Turrets: Turrets
    {
    class MainTurret: MainTurret
    {
    body = "mainTurret";
    gun = "gunbase";
    memoryPointGun[] = {"muzzle_1","muzzle_2"};
    /*
    gunBeg = "muzzle";
    gunEnd = "chamber";
    */
    weapons[] = {"HMG_127"};
    magazines[] = {"200Rnd_127x99_mag_Tracer_Green","200Rnd_127x99_mag_Tracer_Green","200Rnd_127x99_mag_Tracer_Green","200Rnd_127x99_mag_Tracer_Green"};
    selectionFireAnim = "zasleh";
    soundServo[] = {"A3\sounds_f\dummysound",0.01,1.0,10};
    gunnerAction = "gunner_MRAP_01";
    viewGunnerInExternal = 1;
    hideWeaponsGunner = 1;
    castGunnerShadow = 1;
    stabilizedInAxes = 3;
    memoryPointGunnerOptics = "pip3_pos";
    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};
    discreteDistanceInitIndex = 2;
    turretInfoType = "RscOptics_crows";
    usePip = 1;
    minElev = -6.5;
    maxElev = 48;
    LODTurnedIn = 1000;
    class ViewOptics: RCWSOptics{};
    class ViewGunner: ViewOptics
    {
    initAngleX = -45;
    minAngleX = -55;
    maxAngleX = -20;
    initFov = 0.9;
    minFov = 0.42;
    maxFov = 0.9;
    visionMode[] = {};
    };
    class HitPoints: HitPoints
    {
    class HitTurret
    {
    armor = 1.2;
    material = -1;
    name = "vez";
    visual = "vez";
    passThrough = 0;
    minimalHit = 0.1;
    explosionShielding = 0.4;
    radius = 0.6;
    };
    class HitGun
    {
    armor = 0.6;
    material = -1;
    name = "zbran";
    visual = "zbran";
    passThrough = 0;
    minimalHit = 0.1;
    explosionShielding = 0.2;
    radius = 0.6;
    };
    };
    gunnerDoor = "";
    };
    };
    class RenderTargets
    {
    class LeftMirror
    {
    renderTarget = "rendertarget1";
    class CameraView1
    {
    pointPosition = "pip1_pos";
    pointDirection = "pip1_dir";
    renderVisionMode = 0;
    renderQuality = 2;
    fov = 0.7;
    };
    };
    class RightMirror
    {
    renderTarget = "rendertarget2";
    class CameraView1
    {
    pointPosition = "pip2_pos";
    pointDirection = "pip2_dir";
    renderQuality = 2;
    renderVisionMode = 0;
    fov = 0.7;
    };
    };
    class GunnerCam
    {
    renderTarget = "rendertarget3";
    class CameraView1
    {
    pointPosition = "pip3_pos";
    pointDirection = "pip3_dir";
    renderQuality = 2;
    renderVisionMode = 0;
    fov = 0.1;
    };
    };
    };
    };
    };
    //};

    rebuilding GIJOE\vhx_soft\gijoe_vamp\config.cpp.cfgPatches.units[]=...(no changes)
    rapify x64UnicodeVersion 1.76, Dll 6.44 "config.cpp"
    No Error(s)
    Output is to p:\temp\GIJOE\vhx_soft\gijoe_vamp\config.bin

    P:\temp\GIJOE\vhx_soft\gijoe_vamp\config.bin
    1 File(s) copied
    GIJOE\vhx_soft\gijoe_vamp\texHeaders.bin
    1 File(s) copied
    "<Bis Binarise...>"
    ""E:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\Binarize\Binarize.exe" -targetBonesInterval=56 -textures=p:\temp -binPath=P:\ GIJOE\vhx_soft\gijoe_vamp p:\temp\GIJOE\vhx_soft\gijoe_vamp"


    I don't know how it's supposed to work, but I wonder if it's supposed to have the space in "-binPath=P:\ GIJOE\vhx_soft\gijoe_vamp" between P:\_and_GIJOE? If not, then what's causing it? I tried to use "Addon Breaker" to see if it would still push it out as before. The result is an empty entry in the virtual garage that causes the character to spawn without a vehicle, and I cannot select other vehicles. Using alt+F4 yields an error message after killing it. So, whatever changes made in the all-encompassing effort of getting Mikero's Tools to work also affected Addon Builder, probably Binarize.exe to be specific. If it's a problem with my config or model, then sorry, but I still think there's a setup mishap somewhere.


  5. Gone through the process a few times, but it's not operating right. I get to the part where I'm about to start Buldozer Configurator, and everything looks to be in place. I attempt to configurate, but I get an error message telling me buldozer is missing, and to run DevP (whatever that is). For grins, I start up OB and then buldozer to preview a model. The window starts and the model loads, but some rvmat textures are missing (e.g.: nohq, smdi, as). Some show up fine, though. The textures pulled from a common file directory in the root folder are displaying completely, while the textures specific to the model are only showing the *_co.paa files. The RVMATs seem to be trying to work - just not the textures they are assigning. I believe this because there is a weird darkness caused from a missing NOHQ file, which means the RVMAT has to be trying to call one in the first place. Maybe my file path is too many folders deep, if that's even a thing?
    P:\MYMOD\vehicle\land\soft\scotg_car1\<scotg_car1.p3d>, <configs>
    P:\MYMOD\vehicle\land\soft\scotg_car1\data\<PAAs and RVMATs>

    Packing, previewing, and playing my assets has been working fine before setting up P: drive. The only reason I wanted to do it with P: was (A) to allow common assets/textures to be used by many vehicles and characters, and (B) to eliminate having to setup paths in OB options every time I open a different model.


  6. My mod folder is 
    E:\Program Files (x86)\Steam\SteamApps\common\Arma 3 Tools\GIJOE
    E: is an HDD, secondary to C:, which is primary and an SSD (in case any of that is important).
    wa
    Here are a few specific asset paths:
    E:\Program Files (x86)\Steam\SteamApps\common\Arma 3 Tools\GIJOE\vehicle\land\soft\gijoe_aweStriker\<aweStriker1.p3d, config.cpp, model.cfg>
    E:\Program Files (x86)\Steam\SteamApps\common\Arma 3 Tools\GIJOE\vehicle\land\soft\gijoe_aweStriker\data\<PAAs and RVMATs for buggy>
    E:\Program Files (x86)\Steam\SteamApps\common\Arma 3 Tools\GIJOE\vehicle\land\soft\gijoe_vamp\data\<vamp1.p3d, config.cpp, model.cfg>
    E:\Program Files (x86)\Steam\SteamApps\common\Arma 3 Tools\GIJOE\vehicle\land\soft\gijoe_vamp\data\<PAAs and RVMATs for jeep>
    E:\Program Files (x86)\Steam\SteamApps\common\Arma 3 Tools\GIJOE\data_f\comms\<common asset radio textures and mats>
    E:\Program Files (x86)\Steam\SteamApps\common\Arma 3 Tools\GIJOE\data_f\vhx_gear\<common asset vehicle parts and gear, like tires, pioneer tools, decals, gerrycans, etc. - textures and mats>

    All together, I have 10 vehicles, 2 helmets, and more assets on the way. Can I simply copy-paste the GIJOE folder with all these assets into the P: directory, and still be able to add more as they become ready for import? Or is there a more official method? This is the part I do not understand. Also, I looked up PBOPREFIX to determine if I had the right thing in mind, but it turned out I had no idea what it was. I had a paid version of the mikeroTools in 2016, but my project wasn't ready to adequately utilize it at that point. It just sat there while I was busy creating models and trying to figure out configs.


  7. @jandrewsYou have older posts in this thread. LOL.

    The thread has been renamed, by suggestion of moderators, to avoid BIS policy conflicts, and thus avoid getting removed. I was told it's the reason why a certain very, very popular sci-fi franchise mod covering an ancient and extremely remote universe has been forced to leave mod discussion (pun intended).

    The advice was basically to say the mod is inspired by GI Joe, which is actually more accurate than to say it is GI Joe, because I have clearly put a lot of work, unique design, and research into developing and distinguishing these assets.

    • Like 2

  8. 3 hours ago, Dedmen said:

    Sounds like you are missing a proper P-drive setup?

    You would basically have the "z" folder on your P: drive. Then you can set P drive path in OB settings. Then it will find the textures and materials when you use the full path starting with "z\..."

    Also make sure the PBOPREFIX is correct and that your pbo packing tool supports them properly. Mikeros pboProject is what I would recommend.

    Arma's Addon builder ignores PBOPREFIX files and you need to manually set it in the Addon builder settings.

     

    "The .p3d files aren't recognizing textures and materials"
    What does that mean? Doesn't show up in OB or Bulldozer or Arma after packed as PBO?

    That means they won't show up in Buldozer or ARMA, and the Resource Library panel in OB represents them with yellow "?" instead of nice little green or blue icons.

    I'm not surprised with the P: drive being improperly set up. It has been on and off again since 2013, and just a big headache. I have it on, but only because Buldozer won't run without it. In previous times, I had thought P: encompassed anything within a certain location of the Arma Tools folder, where my mod is located. However, this time it pretty much only encompassed barely anything it needed to allow for it to exist, if that makes any sense.

    Perhaps, this is the typical result when a determined digital artist tries to be tech-savvy.


  9. Object Builder adds to the confusion of the path problem. The .p3d files aren't recognizing textures and materials unless their paths begin with the folder LEVEL containing the .p3d itself.
    For example, I have the directory parked like this:
    z\scotgMod\addons\vehicle\land\soft\scotgCar1\<scotgCar1.p3d>
    z\scotgMod\addons\vehicle\land\soft\scotgCar1\data\<textures and materials files>
    BUT... How I have to assign texture groups in OB:
    Exterior
    Texture:
    scotgCar1\data\<scotgCar1_ext_co.paa>
    Mats:
    scotgCar1\data\<scotgCar1_ext.rvmat>

    Sounds normal until I realized I can access lateral folders this way, and it all displays like it thinks it's normal:
    Texture:
    scotgCar1\data\<scotgCar_int_co.paa>
    Mats:
    scotgCar2\data\<scotgCar2_wtf.rvmat>

    Analogy: To me, it seems like accessing the 5th floor of the next building from the 5th floor of the building I'm in, via some magical secret skyway. But if I wanted to access the second floor of another building, I can't even do that by going downstairs 5 floors of my building and then going up one floor of that one! (speaking in American, where the 2nd floor is one after the ground floor.)


  10. Cool, but it's a bit more complex than that.

    I've got several vehicles I've made across multiple types, each one being packed on its own, and stored within relevant file paths. I've tried the straightforward approach but then either models or textures (incl. materials) come up missing.

    Here's what's working (using your illustration):
    z\scotgMod\addons\vehicle\land\soft\scotgCar1\data\(specific files and common files)
    z\scotgMod\addons\vehicle\land\soft\scotgCar2\data\(specific files and common files, duplicated from above)

    Here's what isn't working, but what I'd like:
    z\scotgMod\addons\vehicle\land\soft\scotgCar1\data\(specific files)
    z\scotgMod\addons\vehicle\land\soft\scotgCar2\data\(specific files)
    z\scotgMod\addons\data_f\(common files)

    I've also tried it without putting in the extra "addons" folder in the directory, since it's already required, unpacked, in the overall mod folder.


  11. Thinking outside of the box...

     

    A tricycle is kind of like a unicycle towing a trailer. Maybe if we reconsider a trailer as a FWD tricycle, it's a good place to start? By that, I mean the front "wheel" would be under where the hitch is connected to the vehicle, and its steering axis would be right there. You'd have to make new trailers special with an invisible front wheel in the memory - probably not possible with existing vehicles. The front "steer" wheel should always be parallel to and centered with the towing vehicle. This could possibly allow jackknifing and other real trailer events.  It would have to dynamically inherit power, brake, and acceleration from its towing vehicle, and apply the power through the front wheel.

    I'm probably missing some key factors, but hopefully getting the ball rolling on some kind of solution.


  12. I have several pbos, part of a larger mod, that utilize common textures and materials. Currently, these textures are copied into each sub-project's data folder, but I would like to create a common directory for them to help reduce file size of the final mod. I've tried setting up a directory system using a common folder in the root folder, but it's not a straightforward process between all the tools (e.g.: Object Builder, Addon Builder), the computer's directory, and the packed mod. So, is there some trick to it? I've searched, and the results I found turned out to be not really on point. I thought I had come across a tutorial for this kind of thing, but I cannot re-locate it.

    Can someone explain this process, or at least point me in the right direction?


  13. 9 hours ago, Donnie_Plays said:

    ...
    Tracers
    The tracers only work on vanilla weapons... but I would imagine something like this could be expanded, giving shots fired an even more bright, laser look. It would require also changing the fired shot sounds to various types of blaster or laser shots. You could use vanilla weapons and just enhance the way they fire and pull off everything without having to create weapon models, etc. It seems a little more feasible.


    ...

    @Donnie_PlaysThanks for checking in! It's always good to see interest in the mod, for sure. Public interest is better than facebook , in my opinion, for that much needed dopamine fix we all crave!

    These links are great, but we're doing a more realistic take on GI Joe, the way it was meant before studio executives said "no-no" to cartoon violence (but not holding that against them). I appreciate the mildness of GI Joe cartoons from my childhood, but in this more realistic "simulation" we want to simulate real bullets and missiles.

    This is still useful information, indeed! While blaster rifles may not be the standard weapon, there are plans for weapons that emulate LASERs (spelled as an acronym on purpose). These are large, high energy consumption devices that cannot simply be carried around as a personal weapon. Here is a prime example of the possible rare inclusion of a LASER (Note that the included operator is an expert in conventional weapons, the M16 and M1911):

    Spoiler

    37855.jpg


    Of course, I would have to investigate real life LASER technology and make design changes accordingly.

    • Like 2

  14. 15 minutes ago, paecmaker said:

    Wow, these are some damn smexy designs. Almost makes me regret not watching GI-joe. If I had only known :(

     

     

    Thanks for the compliment!

    Nobody will hold that against you. It wasn't emmy-award-winning TV by any stretch, and the movies were generic sci-fi garbage using a few familiar characters and a new GI Joe logo slapped on them - not my GI Joe. That being said, part of the reason why I want to do this mod is to bring back the original GI Joe and Cobra equipment with a realistic twist. I want to show where the ideas for some of the vehicle designs came from, and then show how they'd work within a military/combat setting, such as what Arma3 provides.

    It really bugs me how media executives get hold of a great franchise and totally make it into something else, not to mention how the original creators or current copyright owners tend to keep reinventing their properties these days. Look at Gotham, the TV show. The show will end when Bruce Wayne finally becomes Batman, but by then, after all that has happened, his emergence will be like, "so what? Yawn." The show's concept was in a good position to tell an interesting back story of Commissioner Gordon, but instead it turned out just another sloppy WB/DC Superhero/Supervillain drama (without the superhero). I digress...

    • Like 1

  15. Here's a list of things that didn't work so far:

    - I had the front wheel steering axes sharing vertices with the front damper axes. I created new axes for the steering, but there is still a lean.
    - I have tried using two different methods for the damper motion. 1. Using 4 independent axes, one for each wheel/damper. 2. Using one center axis, Basic Damper Destruct Axis, for governing all wheel dampers. Each method yielded slightly different unfavorable results.
    - I tried relocating all desirable LOD contents, geometry, etc. into a new file by copy-paste. I was hoping this would leave behind any unseen points that might be causing problems. If it did, there was no benefit.
    - Specifying in the config spring strength on all wheels, rather than inheriting from wheel_1_1, and increasing the value (the same for all 4), has fixed the floating problem, but there is still a lean to the right side of the vehicle.
    - I wasn't completely sure if having a bunch of items in the "transport magazines" section would weigh it down adversely. There were a lot of magazines listed (I used the Ifrit/MRAP_02 config for a big chunk of this vehicle), so I deleted all but one item. No change.
    - imported new geom and geom phys LODs. no change.

    - tried the geom LODs on another otherwise working vehicle. There was no lean in those vehicles, so I ruled out the geom/mass being the culprit.
    - totally replaced the configs with configs from other vehicles and left the suspension parameters alone. Aside from different suspension performance, the lean was still happening, so I reverted to previous configs.


    Now that the wheels are all on the ground, but the car is still leaning, it does seem like there is an imbalance in the mass, as @Yano suggested. I combed over the geometry a few times, but still cannot identify the problem.

    EDIT: FIXED! One of two things did the trick:
    1. wheel parts in the shadow LOD did not correspond with the ones in LOD1. In LOD1, I have wheel_#_#_hide and wheel_#_#_unhide, but in the shadow LOD I just had wheel_#_#. It doesn't seem like it would affect things, but to be safe, and consistent, I made the shadow parts hide and unhide for when the tire gets blown.
    2. I deleted all the related "wheel_*" memory points and recreated them from scratch (e.g.: axis, bound, land_damper_axis, steering, etc.). I'm not sure why the old ones were not working, but the new ones are not causing a lean. Whatever I deleted, I recreated; I didn't add or omit any points.

    All in all, it just goes to show that when you think you have it mostly figured out, the simplest, least obvious thing can cause problems.

    • Like 1

  16. 2 hours ago, Yano said:

    It can be due not centered mass of vehicle components in Geometry / Phys LOD.

    This occurred to me as well. I have placed 4 mass distribution cubes in the geometry LOD to better govern the mass. The sides are 400kg each, and same distance from the center of the vehicle/world axis. The front cube is 750kg while the rear is 700kg; both are centered (L/R). The rest of the geometry weighs 5kg. It's a small amount to make such a difference, and the geometry is L/R symmetrical anyway. I think I can rule out the center of mass, unless there is some unseen heavy point floating somewhere in the sky...


  17. I am wondering if you mean stationary, instead of static? I ask because I will be creating some stationary defense systems myself (eventually), but I want them to have soldier interaction. In my mind I thought they would be done as if a vehicle, but give them zero power to move - effectively making them stationary. "Static" sounds like not even turret animations, but maybe that's just me.

    Try making it an unpowered vehicle if you want animation and interactive use.


  18. Car leaning to one side, need help seeing problem (w/pics)

     

    [Admins: I didn't want to hijack a thread, but it seemed related to the topic. If this needs its own thread, then by all means please move it and delete the contents of these brackets.][Edit/Update: I seem to have fixed the problem of the wheels floating for my vehicle, but the leaning problem still persists. I'm not sure if it is relative to this topic anymore...??]


    Hey everyone!
    I need some extra eyes to see what I might be overlooking. Another vehicle I've made is leaning back-right, as pictured below. Depending on whatever value I give the spring strength, the wheels will either float or sink through the ground, but none are level to each other, which gives it the leaning and bad handling. (Green lines added to clarify distance from ground within shadow area). The closest to accurate wheel is wheel_2_2, which is still a little raised by about 3mm. Configs included below the pics. I've been over it again and again, but my eyes are getting tired. I feel like there might be a simple solution that I am overlooking because of fatigue.
    vamp_lean_va_by_rooster3d-dc4jyfk.jpg
    vamp_geom_by_rooster3d-dc4jyfv.jpg

    vamp_mem_by_rooster3d-dc4jyfb.jpg

     

    portion of model.cfg:

    Spoiler
    
    
    			class Wheel_1_1_Damper
    			{
    				type="translation";
    				source="damper";
    				selection="wheel_1_1_damper_land";
    				axis="wheel_1_1_damper_land_axis";
    				minValue=0;
    				maxValue=1;
    				offset0=-0.5;
    				offset1=0.8;
    				animPeriod=0;
    				initPhase=0;
    			};
    			class wheel_2_1_Damper: Wheel_1_1_Damper
    			{
    				selection="wheel_2_1_damper_land";
    				axis="wheel_2_1_damper_land_axis";
    			};
    			class wheel_1_2_Damper: Wheel_1_1_Damper
    			{
    				selection="wheel_1_2_damper_land";
    				axis="wheel_1_2_damper_land_axis";
    			};
    			class Wheel_2_2_Damper: Wheel_1_1_Damper
    			{
    				selection="wheel_2_2_damper_land";
    				axis="wheel_2_2_damper_land_axis";
    			};

     

     

    config.cpp:

    Spoiler
    
    #define _ARMA_
    
    //ndefs=13
    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 E:/Program Files (x86)/Steam/SteamApps/common/Arma 3/Addons/soft_f/a3/soft_f/MRAP_02/config.bin{
    class DefaultEventhandlers;
    class CfgPatches
    {
    	class GIJoeVAMP
    	{
    		units[] = {"vamp1"};
    		weapons[] = {};
    		requiredVersion = 0.1;
    		requiredAddons[] = {"A3_Soft_F"};
    	};
    };
    class CfgFactionClasses
    {
    	class GIJOE
    	{
    		displayName = "GI*JOE";
    		author = "Scot Gilmore";
    		icon = "vamp\data\ui\faction_gijoe_co.paa";
    		priority = 2;
    		side = 1; 
    	};
    };
    class CfgVehicleClasses
    {
    	class GIJoe_Ground
    	{
    		displayName = "GI*JOE Ground";
    	};
    };
     
    class CfgMovesBasic
    {
    	class Default;
    	class DefaultDie;
    	class ManActions
    	{
    		
    		vamp_driver = "vamp_driver";
    		vamp_cargo = "vamp_cargo";
    	};
    };
    class CfgMovesMaleSdr: CfgMovesBasic
    {
    	class States
    	{
    		class Crew;
    		class vamp_driver: Crew
    		{
    			file = "vamp\Anims\vamp_driver.rtm";
    			InterpolateTo[] = {"Unconscious",0.1};
    		}; 
    		 class vamp_cargo: Crew
    		{
    			file = "vamp\Anims\vamp_cargo.rtm";
    			actions = "CargoAction";
    			leaning = "crewShake";
    			InterpolateTo[] = {"Unconscious",0.1};
    		}; 
    		
    	};
    };
    
    
    class WeaponFireGun;
    class WeaponCloudsGun;
    class WeaponFireMGun;
    class WeaponCloudsMGun;
    class RCWSOptics;
    class CfgVehicles
    {
    	class LandVehicle;
    	class Car: LandVehicle
    	{
    		class NewTurret;
    		class HitPoints;
    	};
    	class Car_F: Car
    	{
    		class AnimationSources;
    		class Turrets
    		{
    			class MainTurret: NewTurret{};
    		};
    		class HitPoints
    		{
    			class HitLFWheel;
    			class HitLF2Wheel;
    			class HitRFWheel;
    			class HitRF2Wheel;
    			class HitGlass1;
    			class HitGlass2;
    			class HitGlass3;
    			class HitGlass4;
    			class HitGlass5;
    		};
    	};
    	class vamp_01_base_F: Car_F
    	{
    		mapSize = 8.5;
    		author = "Scot Gilmore";
    		_generalMacro = "vamp_01_base_F";
    		displayName = "VAMP";
    		class Library
    		{
    			libTextDesc = "Vehicle, Assault/Multi-Purpose";
    		};
    		model 	= "vamp\vamp1";
    		picture	= "vamp\Data\UI\icon_vamp_co.paa"; 
    		Icon	= "vamp\Data\UI\map_vamp_co.paa"; 
    		transportMaxBackpacks = 2;
    		vehicleClass = "Car";
    		transportSoldier = 1;
    		hideWeaponsDriver = 1;
    		hideWeaponsCargo = 1;
    		maxFordingDepth = 0.5;
    		waterResistance = 1;
    		crewVulnerable = 1;
    		crewCrashProtection = 0.15;
    		crewExplosionProtection = 0.4999;
    		slingLoadCargoMemoryPoints[] = {"SlingLoadCargo1","SlingLoadCargo2","SlingLoadCargo3","SlingLoadCargo4"};
    		armor = 50;
    		armorStructural = 6;
    		cost = 500000;
    		threat[] = {0.8,0.6,0.3};
    		class Reflectors
    		{
    			class Left
    			{
    				color[] = {1900,1800,1700};
    				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 = 1;
    				dayLight = 0;
    				flareSize = 1.0;
    				class Attenuation
    				{
    					start = 1.0;
    					constant = 0;
    					linear = 0;
    					quadratic = 0.25;
    					hardLimitStart = 60;
    					hardLimitEnd = 120;
    				};
    			};
    			class Right: Left
    			{
    				position = "Light_R";
    				direction = "Light_R_end";
    				hitpoint = "Light_R";
    				selection = "Light_R";
    			};
    		};
    		aggregateReflectors[] = {{"Left","Right"}};
    		class Exhausts
    		{
    			class Exhaust1
    			{
    				position = "exhaust1_pos";
    				direction = "exhaust1_dir";
    				effect = "ExhaustEffectHTruck";
    			};
    			class Exhaust2
    			{
    				position = "exhaust2_pos";
    				direction = "exhaust2_dir";
    				effect = "ExhaustEffectHTruck";
    			};
    		};
    		class Damage
    		{
    			tex[] = {};
    			mat[] = {"A3\Data_F\Glass_veh.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Data_F\Glass_veh_int.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Data_F\Glass_veh_armored_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_01.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_01_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_01_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_02.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_02_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_ext_02_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_VP.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_base_destruct.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_VP.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_damage.rvmat","A3\Soft_F\MRAP_02\Data\MRAP_02_int_board_destruct.rvmat"};
    		};
    		hiddenSelections[] = {"Camo1"};
    		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 HitGlass6
    			{
    				source = "Hit";
    				hitpoint = "HitGlass6";
    				raw = 1;
    			};
    			class HitGlass7: HitGlass6
    			{
    				hitpoint = "HitGlass7";
    			};
    			class HitGlass8: HitGlass6
    			{
    				hitpoint = "HitGlass8";
    			};
    			class HitGlass9: HitGlass6
    			{
    				hitpoint = "HitGlass9";
    			};
    		};
    		class HitPoints: HitPoints
    		{
    			class HitLFWheel: HitLFWheel
    			{
    				armor = 1;
    				explosionShielding = 4;
    				radius = 0.33;
    			};
    			class HitLF2Wheel: HitLF2Wheel
    			{
    				armor = 1;
    				explosionShielding = 4;
    				radius = 0.33;
    			};
    			class HitRFWheel: HitRFWheel
    			{
    				armor = 1;
    				explosionShielding = 4;
    				radius = 0.33;
    			};
    			class HitRF2Wheel: HitRF2Wheel
    			{
    				armor = 1;
    				explosionShielding = 4;
    				radius = 0.33;
    			};
    			class HitReserveWheel
    			{
    				armor = 1;
    				material = -1;
    				name = "wheel_reserve_hit";
    				visual = "";
    				passThrough = 0.3;
    				explosionShielding = 0.8;
    			};
    			class HitFuel
    			{
    				armor = 1.0;
    				material = -1;
    				name = "palivo";
    				visual = "";
    				passThrough = 1.0;
    				minimalHit = 0.2;
    				explosionShielding = 0.1;
    				radius = 0.25;
    			};
    			class HitEngine
    			{
    				armor = 1.0;
    				material = -1;
    				name = "motor";
    				visual = "";
    				passThrough = 0.2;
    				minimalHit = 0.2;
    				explosionShielding = 0.4;
    				radius = 0.45;
    			};
    			class HitBody
    			{
    				armor = 8.0;
    				material = -1;
    				name = "karoserie";
    				visual = "zbytek";
    				passThrough = 1.0;
    				minimalHit = 0.01;
    				explosionShielding = 0.6;
    				radius = 0.45;
    			};
    			class HitGlass1: HitGlass1
    			{
    				armor = 3;
    				explosionShielding = 3;
    				radius = 0.25;
    			};
    			class HitGlass2: HitGlass2
    			{
    				armor = 3;
    				explosionShielding = 3;
    				radius = 0.25;
    			};
    			class HitGlass3: HitGlass3
    			{
    				armor = 3;
    				explosionShielding = 3;
    				radius = 0.25;
    			};
    			class HitGlass4: HitGlass4
    			{
    				armor = 3;
    				explosionShielding = 3;
    				radius = 0.25;
    			};
    			class HitGlass5: HitGlass5
    			{
    				armor = 3;
    				explosionShielding = 3;
    				radius = 0.25;
    			};
    			class HitGlass6: HitGlass5
    			{
    				name = "glass6";
    				visual = "glass6";
    			};
    			class HitGlass7: HitGlass5
    			{
    				name = "glass7";
    				visual = "glass7";
    			};
    			class HitGlass8: HitGlass5
    			{
    				name = "glass8";
    				visual = "glass8";
    			};
    			class HitGlass9: HitGlass5
    			{
    				name = "glass9";
    				visual = "glass9";
    			};
    			class HitGlass10: HitGlass5
    			{
    				name = "glass10";
    				visual = "glass10";
    			};
    			class HitGlass11: HitGlass5
    			{
    				name = "glass11";
    				visual = "glass11";
    			};
    		};
    		class UserActions
    		{
    			class DoorLF_Open
    			{
    				userActionID = 50;
    				displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorLF_Open0";
    				displayNameDefault = "<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />";
    				textToolTip = "$STR_DN_OUT_O_DOOR";
    				priority = 0.1;
    				radius = 2.5;
    				radiusView = 0.2;
    				showIn3D = 17;
    				available = 0;
    				position = "door1_axis";
    				showWindow = 1;
    				onlyForPlayer = 1;
    				shortcut = "";
    				condition = "((this doorPhase 'Door_LF')  ==  0) && (alive this) && this != vehicle player && false";
    				statement = "this animateDoor ['Door_LF', 1]";
    			};
    			class DoorLF_Close: DoorLF_Open
    			{
    				userActionID = 51;
    				displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorLF_Close0";
    				displayNameDefault = "<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />";
    				textToolTip = "$STR_DN_OUT_C_DOOR";
    				condition = "((this doorPhase 'Door_LF') > 0) && (alive this) && false";
    				statement = "this animateDoor ['Door_LF', 0]";
    			};
    			class DoorRF_Open: DoorLF_Open
    			{
    				userActionID = 52;
    				displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorRF_Open0";
    				position = "door3_axis";
    				condition = "((this doorPhase 'Door_RF')  ==  0) && (alive this) && this != vehicle player && false";
    				statement = "this animateDoor ['Door_RF', 1]";
    			};
    			class DoorRF_Close: DoorRF_Open
    			{
    				userActionID = 53;
    				displayName = "$STR_A3_CfgVehicles_MRAP_02_base_F_UserActions_DoorRF_Close0";
    				displayNameDefault = "<img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' size='2.5' />";
    				textToolTip = "$STR_DN_OUT_C_DOOR";
    				condition = "((this doorPhase 'Door_RF') > 0) && (alive this) && false";
    				statement = "this animateDoor ['Door_RF', 0]";
    			};
    		};
    		wheelDamageThreshold = 0.7;
    		wheelDestroyThreshold = 0.99;
    		wheelDamageRadiusCoef = 0.95;
    		wheelDestroyRadiusCoef = 0.45;
    		driverAction = "driver_mantis";
    		cargoAction[] = {"passenger_MRAP_03exgunner","passenger_generic01_foldhands","passenger_mantisrear","passenger_mantisrear"};
    		getInAction = "GetInLow";
    		getOutAction = "GetOutLow";
    		cargoGetInAction[] = {"GetInLow"};
    		cargoGetOutAction[] = {"GetOutLow"};
    		commanderCanSee = 31;
    		driverDoor = "";
    		cargoDoors[] = {};
    		terrainCoef = 1;
    		turnCoef = 2.2;
    		precision = 15;
    		smokeLauncherGrenadeCount = 8;
    		smokeLauncherVelocity = 14;
    		smokeLauncherOnTurret = 0;
    		smokeLauncherAngle = 150;
    		weapons[] = {"TruckHorn"};
    		//magazines[] = {"SmokeLauncherMag"};
    		
    		
    		#include "sounds.hpp" //separate file for better work flow
    		
    		class RenderTargets
    		{
    			class Driver_display
    			{
    				renderTarget = "rendertarget1";
    				class CameraView1
    				{
    					pointPosition = "PIP1_pos";
    					pointDirection = "PIP1_dir";
    					renderVisionMode = 4;
    					renderQuality = 2;
    					fov = 0.7;
    				};
    			};
    		};
    		thrustDelay = 2;
    		brakeIdleSpeed = 1.78;
    		maxSpeed = 225;
    		fuelCapacity = 90;
    		wheelCircumference = 3.1;
    		antiRollbarForceCoef = 3.0;
    		antiRollbarForceLimit = 5;
    		antiRollbarSpeedMin = 10;
    		antiRollbarSpeedMax = 200;
    		idleRpm = 800;
    		redRpm = 6800;
    		class complexGearbox
    		{
    			GearboxRatios[] = {"R1",-6.575,"N",0,"D1",4.827,"D2",2.855,"D3",1.716,"D4",1.073,"D5",0.755,"D6",0.575};
    			TransmissionRatios[] = {"High",5.69};
    			gearBoxMode = "auto";
    			moveOffGear = 1;
    			driveString = "D";
    			neutralString = "N";
    			reverseString = "R";
    		};
    		simulation = "carx";
    		dampersBumpCoef = 0.5;
    		differentialType = "all_limited";
    		frontRearSplit = 0.4;
    		frontBias = 1.3;
    		rearBias = 1.3;
    		centreBias = 1.6;
    		clutchStrength = 50.0;
    		enginePower = 276;
    		maxOmega = 471;
    		peakTorque = 1546;
    		dampingRateFullThrottle = 0.08;
    		dampingRateZeroThrottleClutchEngaged = 2.0;
    		dampingRateZeroThrottleClutchDisengaged = 0.35;
    		torqueCurve[] = {{0.0,0.3},{0.178,0.5},{0.25,0.85},{0.4,0.95},{0.5,1.0},{0.625,0.95},{0.75,0.7},{1.0,0.5}};
    		changeGearMinEffectivity[] = {0.95,0.15,0.95,0.95,0.95,0.95,0.95,0.98};
    		switchTime = 0.3;
    		latency = 2.0;
    		class Wheels
    		{
    			class LF
    			{
    				boneName = "wheel_1_1_damper";
    				side = "left";
    				steering = 1;
    				center = "wheel_1_1_axis";
    				boundary = "wheel_1_1_bound";
    				width = "0.2";
    				mass = 30;
    				MOI = 8;
    				dampingRate = 0.3;
    				dampingRateDamaged = 5;
    				dampingRateInAir = 0.8;
    				maxBrakeTorque = 2000;
    				maxHandBrakeTorque = 0;
    				suspTravelDirection[] = {0,-1,0};
    				suspForceAppPointOffset = "wheel_1_1_axis";
    				tireForceAppPointOffset = "wheel_1_1_axis";
    				maxCompression = 0.2;
    				mMaxDroop = 0.1;
    				sprungMass = 566; //163;
    				springStrength = 14800; //4075
    				springDamperRate = 661; //651;
    				longitudinalStiffnessPerUnitGravity = 100000;
    				latStiffX = 40; //25; //2.5;
    				latStiffY = 18; //180.0;
    				frictionVsSlipGraph[] = {{0,1},{0.5,1},{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 = 12000;
    				sprungMass = 560; //163;
    				springStrength = 14800; //4075
    				springDamperRate = 651;
    			};
    			class RF: LF
    			{
    				boneName = "wheel_2_1_damper";
    				side = "right";
    				center = "wheel_2_1_axis";
    				boundary = "wheel_2_1_bound";
    				suspForceAppPointOffset = "wheel_2_1_axis";
    				tireForceAppPointOffset = "wheel_2_1_axis";
    			};
    			class RR: LR
    			{
    				boneName = "wheel_2_2_damper";
    				side = "right";
    				center = "wheel_2_2_axis";
    				boundary = "wheel_2_2_bound";
    				suspForceAppPointOffset = "wheel_2_2_axis";
    				tireForceAppPointOffset = "wheel_2_2_axis";
    			};
    		};
    		class TransportMagazines
    		{
    			class _xx_30Rnd_65x39_caseless_green
    			{
    				magazine = "30Rnd_65x39_caseless_green";
    				count = 16;
    			};
    			class _xx_150Rnd_762x54_Box
    			{
    				magazine = "150Rnd_762x54_Box";
    				count = 4;
    			};
    			class _xx_HandGrenade
    			{
    				magazine = "HandGrenade";
    				count = 10;
    			};
    			class _xx_SmokeShell
    			{
    				magazine = "SmokeShell";
    				count = 4;
    			};
    			class _xx_SmokeShellRed
    			{
    				magazine = "SmokeShellRed";
    				count = 4;
    			};
    			class _xx_SmokeShellYellow
    			{
    				magazine = "SmokeShellYellow";
    				count = 4;
    			};
    			class _xx_SmokeShellOrange
    			{
    				magazine = "SmokeShellOrange";
    				count = 4;
    			};
    			class _xx_1Rnd_HE_Grenade_shell
    			{
    				magazine = "1Rnd_HE_Grenade_shell";
    				count = 10;
    			};
    			class _xx_1Rnd_Smoke_Grenade_shell
    			{
    				magazine = "1Rnd_Smoke_Grenade_shell";
    				count = 4;
    			};
    			class _xx_1Rnd_SmokeYellow_Grenade_shell
    			{
    				magazine = "1Rnd_SmokeYellow_Grenade_shell";
    				count = 4;
    			};
    			class _xx_1Rnd_SmokeOrange_Grenade_shell
    			{
    				magazine = "1Rnd_SmokeOrange_Grenade_shell";
    				count = 4;
    			};
    			class _xx_1Rnd_SmokeRed_Grenade_shell
    			{
    				magazine = "1Rnd_SmokeRed_Grenade_shell";
    				count = 4;
    			};
    			class _xx_16Rnd_9x21_Mag
    			{
    				magazine = "16Rnd_9x21_Mag";
    				count = 12;
    			};
    			class _xx_RPG32_F
    			{
    				magazine = "RPG32_F";
    				count = 2;
    			};
    		};
    		class TransportItems
    		{
    			class _xx_FirstAidKit
    			{
    				name = "FirstAidKit";
    				count = 10;
    			};
    		};
    		/*class TransportWeapons
    		{
    			class _xx_arifle_Katiba_F
    			{
    				weapon = "arifle_Katiba_F";
    				count = 2;
    			};
    		};*/
    	};
    	class vamp1: vamp_01_base_F
    	{
    		author = "Scot Gilmore";
    		_generalMacro = "vamp1";
    		scope = 2;
    		crew = "awes_cargo";
    		typicalCargo[] = {"awes_cargo"};
    		side = 1;
    		faction = "GIJOE";
    		displayName = "** VAMP **";
    		vehicleClass = "GIJoe_Ground";
    		accuracy = 1.25;
    		hiddenSelectionsTextures[] = {"vamp\data\vamp_ext_co.paa"};
    		transportSoldier = 1;
    		cost = 600000;
    		threat[] = {1,0.4,0.6};
    		class AnimationSources: AnimationSources
    		{
    			class muzzle_rot
    			{
    				source = "ammorandom";
    				weapon = "HMG_127";
    			};
    			class muzzle_hide
    			{
    				source = "reload";
    				weapon = "HMG_127";
    			};
    		};
    		cargoDoors[] = {};
    		class Turrets: Turrets
    		{
    			class MainTurret: MainTurret
    			{
    				body = "mainTurret";
    				gun = "mainGun";
    				gunBeg = "muzzle";
    				gunEnd = "chamber";
    				weapons[] = {"HMG_127"};
    				magazines[] = {"200Rnd_127x99_mag_Tracer_Green","200Rnd_127x99_mag_Tracer_Green"};
    				soundServo[] = {"A3\sounds_f\dummysound",0.01,1.0,10};
    				gunnerAction = "gunner_MRAP_01";
    				viewGunnerInExternal = 1;
    				hideWeaponsGunner = 1;
    				castGunnerShadow = 1;
    				stabilizedInAxes = 3;
    				memoryPointGunnerOptics = "PIP0_dir";
    				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};
    				discreteDistanceInitIndex = 2;
    				turretInfoType = "RscOptics_crows";
    				usePip = 1;
    				minElev = -8;
    				maxElev = 48;
    				LODTurnedIn = 1000;
    				class ViewOptics: RCWSOptics{};
    				class ViewGunner: ViewOptics
    				{
    					initAngleX = -45;
    					minAngleX = -55;
    					maxAngleX = -20;
    					initFov = 0.9;
    					minFov = 0.42;
    					maxFov = 0.9;
    					visionMode[] = {};
    				};
    				class HitPoints: HitPoints
    				{
    					class HitTurret
    					{
    						armor = 1.2;
    						material = -1;
    						name = "vez";
    						visual = "vez";
    						passThrough = 0;
    						minimalHit = 0.1;
    						explosionShielding = 0.4;
    						radius = 0.6;
    					};
    					class HitGun
    					{
    						armor = 0.6;
    						material = -1;
    						name = "zbran";
    						visual = "zbran";
    						passThrough = 0;
    						minimalHit = 0.1;
    						explosionShielding = 0.2;
    						radius = 0.6;
    					};
    				};
    				gunnerDoor = "";
    			};
    		};
    		class RenderTargets
    		{
    			class Gunner_display
    			{
    				renderTarget = "rendertarget2";
    				class CameraView1
    				{
    					pointPosition = "PIP0_pos";
    					pointDirection = "PIP0_dir";
    					renderVisionMode = 2;
    					renderQuality = 2;
    					fov = 0.7;
    				};
    			};
    			class Driver_display
    			{
    				renderTarget = "rendertarget1";
    				class CameraView1
    				{
    					pointPosition = "PIP1_pos";
    					pointDirection = "PIP1_dir";
    					renderVisionMode = 4;
    					renderQuality = 2;
    					fov = 0.7;
    				};
    			};
    		};
    	};
    };
    //};

     


    Anyone trying to figure it out, LMK if I need to post anything else for solving this.


  19. Hey everyone. Today, I just encountered a strange new warning message when loading some of the missions I've already made, played and re-played in the past. This isn't happening to all missions, but it goes something like this: In a green dialog box with a red warning bar, it says there are a list of assets not installed. Continuing allows the scene to load, but without any of the said assets. Some are custom assets I have made, and some are BIS assets. Sounds straight forward so far, like I accidentally deleted stuff, right? Not likely, but I continue... I click the button in the dialog to continue, allowing it to load the scene. I can now manually go and locate all of the assets it says are not installed, place them on the environment, see them, and play with them. That's a miraculous thing to be able to do if an asset is supposedly not installed, eh? So, my question is: why do some missions/scenarios try to load like these assets are missing?

     

    109A9DEBB33C27BC6B1404E9AF3F71DF7C5B637C

    EDIT: I just noticed, and it might be worth mentioning, is that the scenario title is also not appearing in the editor (top right by the X) for the malfunctioning missions.


  20. 22 minutes ago, dragon01 said:

    Note, this kind of control is not how all tanks are controlled. Modern designs use a steering yoke, more often than not. Dual-stick controls are mostly used on older Soviet tanks, up to T-90. Armata, for instance, has a yoke, as does the Abrams. I don't know about Merkava, but given the timeframe, it's highly likely that tanks in ArmA3 are all equipped with a yoke and steer a lot like cars.

    This is a very good point, but you seem to be coming from the vanilla A3 perspective, whereas I am "speaking" as a mod'er. Many other mod'ers have era-specific tanks and other tracked vehicles that would be great to control simply by allowing this method. We're not stuck in 2035, just because that's the timeline of the game. Even in the current day tank tech, levers are more the norm - considering all dual-tracked vehicles, big and small. Users have an option for helicopter controls, and so should it be for tanks. Therefore, why not build it into the engine, let the mod developer decide if it should or should not be a lever tank, and let the user decide if he/she wants to use lever controls on available tanks? Too easy!


  21. I don't think you can do that. With a car, forward/reverse and steering are usually perpendicular inputs to one another. Proposed tank input would mean parallel stick movement, thus imitating most real life tanks. Maybe I'm explaining it wrong, but the point is there could be introduced a distinction between how you control a car and how you control a tank, for the sake of adding that extra bit of immersion. 

     

    It's not a hard concept to understand, and I'm confident that there would be far less effort required in making such a thing happen than there was in creating a realistic (read: unnecessarily complex) helicopter system. 

     

    Your argument is like giving a player an M240B and saying, "only shoot one bullet at a time and just pretend it's a sniper rifle." Why make the user adjust to the game by asking him limit or alter his use of items and vehicles, when it would be better to include the item and/or its expected functionality?

×