Jump to content

Search the Community

Showing results for tags 'addons'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • BOHEMIA INTERACTIVE
    • BOHEMIA INTERACTIVE - NEWS
    • BOHEMIA INTERACTIVE - JOBS
    • BOHEMIA INTERACTIVE - GENERAL
  • FEATURED GAMES
    • ARMA 3
    • DAYZ
    • TAKE ON MARS
    • ARMA 2
    • ARGO
    • YLANDS
  • MOBILE GAMES
    • ARMA MOBILE OPS
    • MINIDAYZ
    • ARMA TACTICS
    • ARMA 2 FIRING RANGE
  • BI MILITARY GAMES FORUMS
  • BOHEMIA INCUBATOR
  • OTHER BOHEMIA GAMES
    • TAKE ON HELICOPTERS
    • CARRIER COMMAND: GAEA MISSION
    • ARMA: ARMED ASSAULT / COMBAT OPERATIONS
    • ARMA: COLD WAR ASSAULT / OPERATION FLASHPOINT
    • IRON FRONT: LIBERATION 1944
    • BACK CATALOGUE
  • OFFTOPIC
    • OFFTOPIC
  • ArmA Toolmakers's Releases
  • ArmA Toolmakers's General
  • Die Hard OFP Lovers' Club's Topics

XBOX Live


PlayStation PSN


Origin


PlayFire


SoundCloud


Pinterest


Reddit


Twitch.Tv


Ustream.Tv


Duxter


Instagram


Location


Interests


Interests


Occupation

Found 27 results

  1. While this is concurrently getting out of hand :p Put your addon requests in this thread (and hope for the best). Use this thread for: 1. Sharing your addon ideas with modders - or - 2. Trying to locate a mod or addon Please don't make new threads for these purposes. :) If you have pictures of your suggestion, please limit them to 3 max. The rules of content posting and all other rules also apply. If you have previously posted an addon request (before this thread was opened), you have a one time invitation to report your old post and crosspost your suggestion to this thread. Before long the old addon request posts will be cleaned up, so get them in while you can!
  2. CONTENTS Setting up your server What you need how you do it Links Information useful Tools Useful Addons Selecting between Stable & Dev Builds, full or Dedi package installs Port Forwarding Battleye Configuration Location of files Server Admin Commands Running Dedicated Server and client on same machine Running multiple servers on one machine Re-locating MpMissions Bandwidth Optimisation Trouble Shooting & Help Best way to use this thread Live chat help What cannot be done Known Issues Example files CONFIG_Vanilla.cfg Arma3.cfg .Arma3Profile Advanced configuration -profiles AutoServer_Restart.bat File Firedeamon Addons and Mods Basic introduction Installation Miscellaneous Downloading & Addon Management Changelog The tutorial is intended for the lowest level of knowledge and skill, I make no apologies to those who think it is patronising. if you do, why are you reading a tutorial :j: LAST UPDATED: Thursday 21st March 2017 up too and including this post ************************************************************************************ IMPORTANT UPDATE (16th March 2017) arma3server_x64.exe 64 (Released 16th March 2017) 1) Update your firewall rules to include the 64 bit binary 2) BattleEye changes 64 bit binary runs the beserver_x64.dll It also needs a BEServer_x64.cfg (Which is simply a renamed copy of your BEServer.cfg If you run an addon server and are having issues, then try running the 32 bit arma3server.exe until the addon makers have fixed their content ************************************************************************************ SETTING UP YOUR SERVER What you need 1 Standalone Windows server (2008 or later) (Sound and GPU not required) 1 Steam Account Ownership of ArmA3 No longer required if installing the server using the the Dedicated server package. (Required for Headless client or full client install) According to this THIS POST you can run the ArmA3server on Win2003 now This is how you do it. Take note. There are additions within these instructions that you may not need, if you only intend running 1 instance of an Arma3 server on your machine However, adding these superfluous commands and content will not be detrimental to single instance servers Directory paths are all customisable but for the sake of this tutorial, all file examples and command lines used will be consistent with the tutorial instructions Login as Administrator: (You will need to run Arma3server.exe as "Administrator" or "System". Battleye requires it.) Install the latest version of DirectX Recommended to install install the 32 & 64-bit 2013 VC++ redist from https://www.microsoft.com/en-GB/download/details.aspx?id=40784 Create the following empty directories D:\Apps\Steam D:\Games\ArmA3\A3Master D:\Games\ArmA3\A3Files Download steamcmd.exe unpack it and save it to your targetted Steam install directory (E.g D:\Apps\Steam) Run the steamcmd.exe. (This will download and install the required steam files to your custom steam directory) Create an ArmA3_Steam_updater.cmd file, (Example shown below) and save it to D:\Games\ArmA3\A3Files Run the ArmA3_Steam_updater.cmd file Just after logging into Steam, the console window will hang and ask for a validation key Steam will have automatically sent you an email with this validation code, which you then need to input at the command prompt The Update console window should then continue to run and install ArmA3 ((DEV or STABLE) version to the target directory as defined in the .cmd file) eg (D:\Games\ArmA3\A3Master) Create a shortcut for the ArmA3Server_x64.exe on the server desktop Add the following parameters to the Target Line in the shortcut tab of the newly created desktop shortcut -port=2302 (Required if running multiple server instances) "-profiles=d:\Games\Arma3\A3Master" -config=CONFIG_Vanilla.cfg -world=empty -mod= -mod= (Exaclty as it looks, an empty mod parameter so it looks something similar to the following "D:\Games\Arma3\A3Master\arma3server_x64.exe" "-profiles=d:\Games\Arma3\A3Master" -port=2302 -config=CONFIG_Vanilla.cfg -world=empty -mod= Add firewall rules for the UDP ports (See below for -Port information) Add firewall rule for the arma3server_x64.exe Create a simple Notepad document called "CONFIG_vanilla.cfg" and save it to the root folder of your ArmA3 install on the server D:\Games\ArmA3\A3Master (See below for ".cfg" content) Then start up your shortcut, check the server runs. (You will see a console pop up in your desktop after a few seconds) Close the console window down, then you will need to edit the following files which will have been created D:\Games\Arma3\A3Master\Users\Adminstrator\Administrator.Arma3Profile D:\Games\Arma3\A3Master\Users\Administrator\Arma3.cfg These files contain minimal content, and require a lot of editing, so to make this easier, there are example files listed below which you can copy n paste from Restart the server Start up your client Arma3 (Running the same branch as the server, (eg Stable or DEV) and you should then be able to see your server in the server browser (Filters are available to reduce the server list) Login to your server using the password you defined in CONFIG_Vanilla.cfg by typing "/" to open the chat window and then type (#login ADMINPASSWORD followed by enter Once logged in you will be presented with a mission list, select one of the missions to start the game Prove the stability of your server by running BIS missions initially before you start adding user made content You should now have successfully installed and be running a stable "Vanilla" (Default) server You can then set up Battleye, The ArmA3 anti cheat system (See the Battleye Configuration section below) *** SUPPORTING INFORMATION *** USEFUL LINKS, TOOLS & ADDONS Open the spoiler for more info TICKETS RAISED that need your Vote SELECTING DEVELOPMENT OR STABLE BUILD Open the spoiler for more info PORT FORWARDING (ArmA3) (Firewalls) Open the spoiler for more info BATTLEYE CONFIGURATION Open the spoiler for more info LOCATION OF FILES (When setting parameters) Open the spoiler for more info SERVER ADMIN COMMANDS Open the spoiler for more info RUNNING DEDICATED SERVER & CLIENT ON SAME MACHINE If you have followed these instructions, the only known issue, is to make sure you start the server up before you start the steam client Failing to do this causes steam port issues and your client wont be able to connect to the server RUNNING MULTIPLE SERVERS ON SAME MACHINE Open the spoiler for more info RE-LOCATING MPmIssions (For example to a dropbox) Open the spoiler for more info BANDWIDTH OPTIMISATION Open the spoiler for more info TROUBLE SHOOTING Open the spoiler for more info EXAMPLE FILES Arma3_Steam_Updater.cmd CONFIG_Vanilla.cfg ****.Arma3Profile Important to note, the defaul;t B.I classes, Regular, veteran cannot be edited, so if you want to run an edited version, then edit the custom class and run that The following config is set to do just that Arma3.cfg ADVANCED CONFIGURATION -Profiles Open the spoiler for more info AUTO SERVER RESTART .BAT File Open the spoiler for more info Firedeamon Open the spoiler for more info ADDONS & MODS BASIC EXPLANATION Open the spoiler for more info WHITE-LISTING / BLACK-LISTING (How does it work) Open the spoiler for more info ADDON SIGNING Open the spoiler for more info INSTALLATION Open the spoiler for more info MISCELLANEOUS Open the spoiler for more info DOWNLOADING & ADDON MANAGEMENT Open the spoiler for more info CHANGELOG Open the spoiler for more info
  3. Addon & Mod Compilation List This is a massive addon & mod compilation list that organizes all the addons and mods on Armaholic into specific categories based on their subject. The idea behind this is to enable members of the community to better able find and locate addons and mods of interest without having to review entire sections on Armaholic going from page to page. The list here will narrow down your search and allow you to get to what your interested in or are looking for quicker. Menu Downloads / Arma 3 / Addons Arma3 Gear - Last update - January 21st, 2017 Arma 3 Packs - Last update - January 25th, 2017 Arma 3 Miscellaneous - wip Arma 3 Objects Arma 3 Replacement Packs Arma 3 Sounds Arma 3 Terrain Arma 3 Units Arma 3 Vehicles Arma 3 Weapons Downloads / Arma 3 / Editing Arma 3 Tools Arma 3 Scripts Arma 3 Templates Downloads / Arma 3 / Misc and Utilities This has its own section, there are no subsections or subjects with pages/listings in them, so this section will be sorted Downloads / Arma 3 / Modules This will be sorted according to country, and type Downloads / Arma 3 / Scenarios Arma 3 SP missions Arma 3 Co-op missions Arma 3 Multiplayer Gamemodes Arma 3 Mission Packs Arma 3 Campaigns ===================== Work in progress Note Keep in mind this page will be changing as i add/update categories and lists as this is a major work in progress project. Last update: Wednesday, January 25th,2017, 4:30pm Credits Authors of these addons, mods, need credit for their work, I would hope that this compilation list will bring more attention and appreciation from the community to them. List Note: If there is an addon, mod, I have missed please post your reply, or pm me and I will update the list accordingly.
  4. Hey everyone I'm working on updating burnes' challenger which is open source and I'm having an issue in that the tank pull to the right rather than going in a straight line. Here's the config cpp im not sure if ive done something wrong or what. class CfgPatches { class Burnes_FV4034 { requiredAddons[] = {"A3_Armor_F_Beta","Burnes_crew_CTRG"}; units[] = {"Burnes_FV4034_01","Burnes_FV4034_02","Burnes_FV4034_03","Burnes_FV4034_04","Burnes_FV4034_05","Burnes_FV4034_06","Burnes_FV4034_07","Burnes_FV4034_08","Burnes_FV4034_09","Burnes_FV4034_10"}; weapons[] = {}; }; }; class CfgMovesBasic { class DefaultDie; class Default; class ManActions: Default { T72_Commander = "T72_Commander"; Abrams_GunnerOut = "Abrams_GunnerOut"; T72_Driver = "T72_Driver"; T72_DriverOUT = "T72_DriverOUT"; T72_Gunner = "T72_Gunner"; T72_GunnerOut = "T72_GunnerOut"; Challenger_Com_Out_Start = "Challenger_Com_Out_Start"; Challenger_Com_out = "Challenger_Com_out"; Challenger_Com_out_low = "Challenger_Com_out_low"; up = "Challenger_Com_out"; down = "commander_mbt3_out_settlein"; binocOn = "Chally_Binoculars"; binocOff = "Challenger_Com_out"; headBobMode = 5; headBobStrength = -1; Binoculars = "Chally_Binoculars"; }; }; class CfgMovesMaleSdr: CfgMovesBasic { skeletonName = "OFP2_ManSkeleton"; gestures = "CfgGesturesMale"; class States { class Crew; class AmovPercMstpSrasWrflDnon; class KIA_T72_Commander: DefaultDie { actions = "DeadActions"; file = "\Burnes_Challenger\t72\anim\KIA_T72_Commander.rtm"; connectTo[] = {"DeadState",0.1}; speed = 0.5; looped = 0; terminal = 1; soundEnabled = 0; }; class T72_Commander: Crew { file = "\Burnes_Challenger\t72\anim\T72_Commander.rtm"; interpolateTo[] = {"KIA_T72_Commander",1}; }; class Chally_Binoculars: T72_Commander { variantsPlayer[] = {}; variantsAI[] = {}; actions = "BinocStandActions"; file = "\Burnes_Challenger\t72\anim\T72_Commander.rtm"; interpolateTo[] = {"KIA_crew_tank01",1,"commander_mbt3_in",1,"Challenger_Com_out",1}; disableWeaponsLong = 0; showItemInHand = 1; aiming = "aimingCivil"; aimingBody = "aimingUpCivil"; aimprecision = 0.2; enableOptics = 4096; interpolationSpeed = 4; leftHandIKBeg = 0; leftHandIKCurve[] = {}; leftHandIKEnd = 0; rightHandIKBeg = 0; rightHandIKCurve[] = {}; rightHandIKEnd = 0; }; class Challenger_Com_out_Start: Crew { file = "\A3\cargoposes_F\Anim\commander_mbt3_out_settlein.rtm"; speed = -1; looped = "false"; connectTo[] = {"vehicle_turnout_1_aim_idling",10}; interpolateTo[] = {"KIA_crew_tank01",1,"vehicle_turnout_1_aim_idling",10}; variantsAI[] = {"Challenger_Com_out",1}; variantsPlayer[] = {"vehicle_turnout_1_aim_idling",10}; variantAfter[] = {1.5,1.5,1.5}; useIdles = 0; leftHandIKCurve[] = {0}; rightHandIKCurve[] = {0}; }; class Abrams_GunnerOut: Crew { file = "\Burnes_Challenger\t72\anim\Abrams_GunnerOut.rtm"; interpolateTo[] = {"KIA_T72_Commander",1}; }; class Challenger_Com_out: AmovPercMstpSrasWrflDnon { file = "\Burnes_Challenger\data\ANIMS\commanderOuttester.rtm"; interpolateTo[] = {"KIA_crew_tank01",1,"commander_mbt3_in",1,"commander_mbt3_out_settlein",1}; enableBinocular = 1; enableOptics = 1; }; class Challenger_Com_out_low: Challenger_Com_out { file = "\Burnes_Challenger\data\ANIMS\commanderOuttester.rtm"; interpolateTo[] = {"KIA_crew_tank01",1,"commander_mbt3_in",1,"Challenger_Com_out",1}; enableBinocular = 1; enableOptics = 1; up = "Challenger_Com_out"; down = "commander_mbt3_out_settlein"; }; class KIA_T72_Driver: DefaultDie { actions = "DeadActions"; file = "\Burnes_Challenger\t72\anim\KIA_T72_Driver.rtm"; connectTo[] = {"DeadState",0.1}; speed = 0.5; looped = 0; terminal = 1; soundEnabled = 0; }; class T72_Driver: Crew { file = "\Burnes_Challenger\t72\anim\driver_quadbike_pose.rtm"; interpolateTo[] = {"KIA_T72_Driver",1}; }; class T72_DriverOut: T72_Driver { file = "\Burnes_Challenger\t72\anim\Abrams_DriverOut.rtm"; }; class KIA_T72_Gunner: DefaultDie { actions = "DeadActions"; file = "\Burnes_Challenger\t72\anim\KIA_T72_Gunner.rtm"; connectTo[] = {"DeadState",0.1}; speed = 0.5; looped = 0; terminal = 1; soundEnabled = 0; }; class T72_Gunner: Crew { file = "\Burnes_Challenger\t72\anim\T72_Gunner.rtm"; interpolateTo[] = {"KIA_T72_Gunner",1}; }; class KIA_T72_GunnerOut: DefaultDie { actions = "DeadActions"; file = "\Burnes_Challenger\t72\anim\KIA_T72_GunnerOut.rtm"; connectTo[] = {"DeadState",0.1}; speed = 0.5; looped = 0; terminal = 1; soundEnabled = 0; }; class T72_GunnerOut: Crew { file = "\Burnes_Challenger\t72\anim\T72_GunnerOut.rtm"; interpolateTo[] = {"KIA_T72_GunnerOut",1}; }; }; }; class CfgAmmo { class Sh_120mm_HE; class CHAL_MPAT_RND: Sh_120mm_HE { hit = 850; indirectHit = 145; indirectHitRange = 8; typicalSpeed = 1800; explosive = 0.8; cost = 200; airFriction = -5e-005; caliber = 12; timeToLive = 15; whistleDist = 14; tracerScale = 2; tracerStartTime = 0.1; tracerEndTime = 2.3; model = "\A3\Weapons_f\Data\bullettracer\shell_tracer_red"; canlock = 2; }; class Sh_125mm_APFSDS; class Smoke_120mm_AMOS_White; class CHAL_SABOT_RND: Sh_125mm_APFSDS { hit = 850; indirectHit = 11; indirectHitRange = 1; typicalSpeed = 1800; cost = 200; deflecting = 15; airFriction = -4e-005; caliber = 21.67; timeToLive = 15; whistleOnFire = 1; whistleDist = 14; tracerScale = 2; tracerStartTime = 0.1; tracerEndTime = 2.3; model = "\A3\Weapons_f\Data\bullettracer\shell_tracer_red"; canlock = 2; }; class CHAL_WP_RND: Smoke_120mm_AMOS_White { hit = 100; indirectHit = 11; indirectHitRange = 10; caliber = 23.67; typicalSpeed = 1200; deflecting = 0; canlock = 2; }; }; class CfgMagazines { class Default; class VehicleMagazine; class CHAL_TANK_MAG: VehicleMagazine { scope = 2; displayName = "HESH"; displayNameShort = "HESH"; ammo = "CHAL_MPAT_RND"; count = 1; initSpeed = 1800; maxLeadSpeed = 100; nameSound = "heat"; tracersEvery = 1; }; class CHAL_WP_MAG: CHAL_TANK_MAG { displayName = "WP"; displayNameShort = "WP"; ammo = "CHAL_WP_RND"; count = 1; initSpeed = 1800; }; class CHAL_SABOT_MAG: CHAL_TANK_MAG { displayName = "FIN"; displayNameShort = "FIN"; ammo = "CHAL_SABOT_RND"; count = 1; initSpeed = 1800; nameSound = "sabot"; }; class CHAL_1500RND_762_M240: VehicleMagazine { scope = 2; displayName = "GPMG"; count = 1500; ammo = "B_762x51_Tracer_Red"; initSpeed = 1200; maxLeadSpeed = 200; tracersEvery = 4; nameSound = "mgun"; }; class CHAL_2000RND_762_M240: CHAL_1500RND_762_M240 { count = 2000; }; class CHAL_200RND_762_M240: CHAL_1500RND_762_M240 { count = 200; }; class CHAL_800RND_762_M240: CHAL_1500RND_762_M240 { count = 800; }; }; class cfgWeapons { class HMG_127_MBT; class MEU_M2_TITAN: HMG_127_MBT { scope = 1; displayName = "M2 CROWS"; class GunParticles { class effect1 { positionName = "usti hlavne3"; directionName = "konec hlavne3"; effectName = "MachineGunCloud"; }; class effect2 { positionName = "machinegun_eject_pos"; directionName = "machinegun_eject_dir"; effectName = "MachineGunCartridge2"; }; }; cursor = "EmptyCursor"; cursoraim = "EmptyCursor"; }; class cannon_125mm; class CHAL_125_MAINGUN: cannon_125mm { scope = 1; displayName = "L30A1"; magazines[] = {"CHAL_SABOT_MAG","CHAL_TANK_MAG","CHAL_WP_MAG"}; reloadTime = 4; magazineReloadTime = 4; autoReload = 1; ballisticsComputer = 1; weaponLockSystem = 4; }; class Laserdesignator_mounted; class Burnes_M1A2_FCS: Laserdesignator_mounted { cursor = "EmptyCursor"; cursoraim = "EmptyCursor"; cursoraimon = "EmptyCursor"; displayname = "Multi-Function Laser"; magazines[] = {"Laserbatteries"}; }; class LMG_M200; class CHAL_COAX_M240: LMG_M200 { scope = 1; displayName = " L94A1 EX-34 Chain Gun"; aiDispersionCoefY = 7; aiDispersionCoefX = 7; magazines[] = {"CHAL_1500RND_762_M240","CHAL_2000RND_762_M240"}; magazineReloadTime = 5; }; class CHAL_LOADERGUN: CHAL_COAX_M240 { scope = 1; displayName = "ENFORCER RWS M2"; aiDispersionCoefY = 7; aiDispersionCoefX = 7; magazines[] = {"CHAL_200RND_762_M240"}; magazineReloadTime = 5; }; }; class CfgFactionClasses { class BAF { displayName = "British Forces"; priority = 8; side = 1; icon = ""; }; }; class CfgVehicleClasses { class Burnes_Vehicles { displayName = "British Army"; }; }; class DefaultEventhandlers; class CfgVehicles { class LandVehicle; class Tank: LandVehicle { class NewTurret; class Sounds; class HitPoints; }; class Tank_F: Tank { class Turrets { class MainTurret: NewTurret { class Turrets { class CommanderOptics; }; }; }; class AnimationSources; class ViewPilot; class ViewOptics; class ViewCargo; class HeadLimits; class HitPoints: HitPoints { class HitHull; class HitEngine; class HitLTrack; class HitRTrack; }; class Sounds: Sounds { class Engine; class Movement; }; }; class Burnes_FV4034_base: Tank_F { vehicleClass = "Armored"; author = "Cpl Burnes(15th MEU(SOC))"; displayName = "FV4034 Challenger 2 TES"; hasCommander = "true"; accuracy = 0.3; maxSpeed = 58; attenuationEffectType = "TankAttenuation"; insideSoundCoef = 0.9; forceHideDriver = 0; driverForceOptics = 0; driverAction = "T72_DriverOUT"; driverInAction = "Heli_Attack_01_pilot"; getinAction = "getInLow"; getoutaction = "getOutLow"; LODTurnedOut = 1; LODTurnedIn = 1; viewdriverinexternal = 0; model = "\Burnes_challenger\Burnes_FV4034_T"; picture = "\A3\armor_f_gamma\MBT_02\Data\UI\MBT_02_Base_ca.paa"; icon = "\Burnes_challenger\M1A2\data\icomap_m1a2tusk_ca.paa"; mapSize = 9.5; soundGetIn[] = {"A3\Sounds_F_EPB\Tracked\noises\get_in_out",0.56234133,1}; soundGetOut[] = {"A3\Sounds_F_EPB\Tracked\noises\get_in_out",0.56234133,1,20}; soundDammage[] = {"",0.56234133,1}; soundEngineOnInt[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\epb_1_int_start",0.63095737,1}; soundEngineOnExt[] = {"\Burnes_Challenger\sounds\EngineOn.wss",1.7943282,1,200}; soundEngineOffInt[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\epb_1_int_stop",0.63095737,1}; soundEngineOffExt[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\epb_1_ext_stop",1.7943282,1,200}; buildCrash0[] = {"A3\sounds_f\Vehicles\crashes\crash_08",1,1,200}; buildCrash1[] = {"A3\sounds_f\Vehicles\crashes\crash_09",1,1,200}; buildCrash2[] = {"A3\sounds_f\Vehicles\crashes\crash_10",1,1,200}; buildCrash3[] = {"A3\sounds_f\Vehicles\crashes\crash_11",1,1,200}; soundBuildingCrash[] = {"buildCrash0",0.25,"buildCrash1",0.25,"buildCrash2",0.25,"buildCrash3",0.25}; WoodCrash0[] = {"A3\sounds_f\Vehicles\crashes\crash_08",1,1,200}; WoodCrash1[] = {"A3\sounds_f\Vehicles\crashes\crash_09",1,1,200}; WoodCrash2[] = {"A3\sounds_f\Vehicles\crashes\crash_10",1,1,200}; WoodCrash3[] = {"A3\sounds_f\Vehicles\crashes\crash_11",1,1,200}; WoodCrash4[] = {"A3\sounds_f\Vehicles\crashes\crash_01",1,1,200}; WoodCrash5[] = {"A3\sounds_f\Vehicles\crashes\crash_08",1,1,200}; soundWoodCrash[] = {"woodCrash0",0.166,"woodCrash1",0.166,"woodCrash2",0.166,"woodCrash3",0.166,"woodCrash4",0.166,"woodCrash5",0.166}; ArmorCrash0[] = {"A3\sounds_f\Vehicles\crashes\crash_08",1,1,200}; ArmorCrash1[] = {"A3\sounds_f\Vehicles\crashes\crash_09",1,1,200}; ArmorCrash2[] = {"A3\sounds_f\Vehicles\crashes\crash_10",1,1,200}; ArmorCrash3[] = {"A3\sounds_f\Vehicles\crashes\crash_11",1,1,200}; soundArmorCrash[] = {"ArmorCrash0",0.25,"ArmorCrash1",0.25,"ArmorCrash2",0.25,"ArmorCrash3",0.25}; class Sounds { class Idle_ext { sound[] = {"\Burnes_Challenger\sounds\ChallyEngine.wss",1,1,200}; frequency = "1"; volume = "engineOn*camPos*(((rpm/ 2300) factor[(100/ 2300),(200/ 2300)]) * ((rpm/ 2300) factor[(760/ 2300),(600/ 2300)]))"; }; class Engine { sound[] = {"\Burnes_Challenger\sounds\ChallyExt1.wss",2.8912508,1,240}; frequency = "1"; volume = "engineOn*camPos*(((rpm/ 2300) factor[(420/ 2300),(750/ 2300)]) * ((rpm/ 2300) factor[(920/ 2300),(800/ 2300)]))"; }; class Engine1_ext { sound[] = {"\Burnes_Challenger\sounds\Throttle.wss",2.1220186,1,280}; frequency = "0.8 + ((rpm/ 2300) factor[(800/ 2300),(1150/ 2300)])*0.1"; volume = "engineOn*camPos*(((rpm/ 2300) factor[(800/ 2300),(2300/ 2300)]) * ((rpm/ 2300) factor[(1150/ 2300),(960/ 2300)]))"; }; class Engine2_ext { sound[] = {"\Burnes_Challenger\sounds\Mid.wss",3.2589254,1,320}; frequency = "0.8 + ((rpm/ 2300) factor[(960/ 2300),(1500/ 2300)])*0.2"; volume = "engineOn*camPos*(((rpm/ 2300) factor[(1550/ 2300),(2300/ 2300)]) * ((rpm/ 2300) factor[(1500/ 2300),(1250/ 2300)]))"; }; class Engine3_ext { sound[] = {"\Burnes_Challenger\sounds\ChallyExt1.wss",3.4125376,1,360}; frequency = "0.8 + ((rpm/ 2300) factor[(1200/ 2300),(1700/ 2300)])*0.15"; volume = "engineOn*camPos*(((rpm/ 2300) factor[(1250/ 2300),(1450/ 2300)]) * ((rpm/ 2300) factor[(1700/ 2300),(1560/ 2300)]))"; }; class Engine4_ext { sound[] = {"\Burnes_Challenger\sounds\ChallyExt3.wss",3.5848932,1,400}; frequency = "0.8 + ((rpm/ 2300) factor[(1520/ 2300),(2000/ 2300)])*0.15"; volume = "engineOn*camPos*(((rpm/ 2300) factor[(1570/ 2300),(1670/ 2300)]) * ((rpm/ 2300) factor[(2000/ 2300),(1800/ 2300)]))"; }; class Engine5_ext { sound[] = {"\Burnes_Challenger\sounds\ChallyExt3.wss",3.7782793,1,440}; frequency = "0.8 + ((rpm/ 2300) factor[(1800/ 2300),(2300/ 2300)])*0.2"; volume = "engineOn*camPos*((rpm/ 2300) factor[(1850/ 2300),(1950/ 2300)])"; }; class IdleThrust { sound[] = {"\Burnes_Challenger\sounds\ChallyEngine.wss",1.6220185,1,200}; frequency = "1"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(100/ 2300),(200/ 2300)]) * ((rpm/ 2300) factor[(760/ 2300),(600/ 2300)]))"; }; class EngineThrust { sound[] = {"\Burnes_Challenger\sounds\ChallyExt1.wss",2.0125377,1,200}; frequency = "1"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(620/ 2300),(750/ 2300)]) * ((rpm/ 2300) factor[(920/ 2300),(800/ 2300)]))"; }; class Engine1_Thrust_ext { sound[] = {"\Burnes_Challenger\sounds\ChallyExt1.wss",2.0782795,1,230}; frequency = "0.8 + ((rpm/ 2300) factor[(800/ 2300),(1150/ 2300)])*0.1"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(800/ 2300),(900/ 2300)]) * ((rpm/ 2300) factor[(1150/ 2300),(960/ 2300)]))"; }; class Engine2_Thrust_ext { sound[] = {"\Burnes_Challenger\sounds\Mid.wss",2.0952623,1,290}; frequency = "0.8 + ((rpm/ 2300) factor[(960/ 2300),(1500/ 2300)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(950/ 2300),(1100/ 2300)]) * ((rpm/ 2300) factor[(1500/ 2300),(1250/ 2300)]))"; }; class Engine3_Thrust_ext { sound[] = {"\Burnes_Challenger\sounds\ChallyExt1.wss",2.0782795,1,350}; frequency = "0.8 + ((rpm/ 2300) factor[(1200/ 2300),(1700/ 2300)])*0.15"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(1250/ 2300),(1450/ 2300)]) * ((rpm/ 2300) factor[(1700/ 2300),(1560/ 2300)]))"; }; class Engine4_Thrust_ext { sound[] = {"\Burnes_Challenger\sounds\ChallyExt1.wss",2.038721,1,400}; frequency = "0.8 + ((rpm/ 2300) factor[(1520/ 2300),(2000/ 2300)])*0.15"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(1570/ 2300),(1670/ 2300)]) * ((rpm/ 2300) factor[(2000/ 2300),(1800/ 2300)]))"; }; class Engine5_Thrust_ext { sound[] = {"\Burnes_Challenger\sounds\ChallyExt1.wss",2.0118864,1,450}; frequency = "0.8 + ((rpm/ 2300) factor[(1800/ 2300),(2300/ 2300)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 2300) factor[(1850/ 2300),(1950/ 2300)])"; }; class Idle_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\engine_epb_1_int_1",0.5011872,1}; frequency = "0.8 + ((rpm/ 2300) factor[(400/ 2300),(750/ 2300)])*0.15"; volume = "engineOn*(1-camPos)*(((rpm/ 2300) factor[(100/ 2300),(200/ 2300)]) * ((rpm/ 2300) factor[(760/ 2300),(600/ 2300)]))"; }; class Engine_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\engine_epb_1_int_2",0.35481337,1}; frequency = "0.8 + ((rpm/ 2300) factor[(620/ 2300),(910/ 2300)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 2300) factor[(620/ 2300),(750/ 2300)]) * ((rpm/ 2300) factor[(920/ 2300),(800/ 2300)]))"; }; class Engine1_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\engine_epb_1_int_3",0.39810717,1}; frequency = "0.8 + ((rpm/ 2300) factor[(800/ 2300),(1150/ 2300)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 2300) factor[(800/ 2300),(900/ 2300)]) * ((rpm/ 2300) factor[(1150/ 2300),(960/ 2300)]))"; }; class Engine2_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\engine_epb_1_int_4",0.4466836,1}; frequency = "0.8 + ((rpm/ 2300) factor[(960/ 2300),(1500/ 2300)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 2300) factor[(950/ 2300),(1100/ 2300)]) * ((rpm/ 2300) factor[(1500/ 2300),(1250/ 2300)]))"; }; class Engine3_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\engine_epb_1_int_5",0.5011872,1}; frequency = "0.8 + ((rpm/ 2300) factor[(1200/ 2300),(1700/ 2300)])*0.1"; volume = "engineOn*(1-camPos)*(((rpm/ 2300) factor[(1250/ 2300),(1450/ 2300)]) * ((rpm/ 2300) factor[(1700/ 2300),(1560/ 2300)]))"; }; class Engine4_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\engine_epb_1_int_6",0.56234133,1}; frequency = "0.8 + ((rpm/ 2300) factor[(1520/ 2300),(2000/ 2300)])*0.1"; volume = "engineOn*(1-camPos)*(((rpm/ 2300) factor[(1570/ 2300),(1670/ 2300)]) * ((rpm/ 2300) factor[(2000/ 2300),(1800/ 2300)]))"; }; class Engine5_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\engine_epb_1_int_7",0.63095737,1}; frequency = "0.8 + ((rpm/ 2300) factor[(1800/ 2300),(2300/ 2300)])*0.1"; volume = "engineOn*(1-camPos)*((rpm/ 2300) factor[(1850/ 2300),(1950/ 2300)])"; }; class IdleThrust_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\exhaust_epb_1_int_1",0.63095737,1}; frequency = "0.8 + ((rpm/ 2300) factor[(400/ 2300),(750/ 2300)])*0.15"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(100/ 2300),(200/ 2300)]) * ((rpm/ 2300) factor[(760/ 2300),(600/ 2300)]))"; }; class EngineThrust_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\exhaust_epb_1_int_2",0.39810717,1}; frequency = "0.8 + ((rpm/ 2300) factor[(620/ 2300),(910/ 2300)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(620/ 2300),(750/ 2300)]) * ((rpm/ 2300) factor[(920/ 2300),(800/ 2300)]))"; }; class Engine1_Thrust_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\exhaust_epb_1_int_3",0.4466836,1}; frequency = "0.8 + ((rpm/ 2300) factor[(800/ 2300),(1150/ 2300)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(800/ 2300),(900/ 2300)]) * ((rpm/ 2300) factor[(1150/ 2300),(960/ 2300)]))"; }; class Engine2_Thrust_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\exhaust_epb_1_int_4",0.4466836,1}; frequency = "0.8 + ((rpm/ 2300) factor[(960/ 2300),(1500/ 2300)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(950/ 2300),(1100/ 2300)]) * ((rpm/ 2300) factor[(1500/ 2300),(1250/ 2300)]))"; }; class Engine3_Thrust_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\exhaust_epb_1_int_5",0.5011872,1}; frequency = "0.8 + ((rpm/ 2300) factor[(1200/ 2300),(1700/ 2300)])*0.1"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(1250/ 2300),(1450/ 2300)]) * ((rpm/ 2300) factor[(1700/ 2300),(1560/ 2300)]))"; }; class Engine4_Thrust_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\exhaust_epb_1_int_6",0.56234133,1}; frequency = "0.8 + ((rpm/ 2300) factor[(1520/ 2300),(2000/ 2300)])*0.1"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 2300) factor[(1570/ 2300),(1670/ 2300)]) * ((rpm/ 2300) factor[(2000/ 2300),(1800/ 2300)]))"; }; class Engine5_Thrust_int { sound[] = {"A3\Sounds_F_EPB\Tracked\engines\engine1\exhaust_epb_1_int_7",0.63095737,1}; frequency = "0.8 + ((rpm/ 2300) factor[(1800/ 2300),(2300/ 2300)])*0.1"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 2300) factor[(1850/ 2300),(1950/ 2300)])"; }; class NoiseInt { sound[] = {"A3\Sounds_F_EPB\Tracked\noises\noise_tank_int_1",0.5011872,1}; frequency = "1"; volume = "(1-camPos)*(angVelocity max 0.04)*(speed factor[4, 15])"; }; class NoiseExt { sound[] = {"A3\Sounds_F_EPB\Tracked\noises\noise_tank_ext_1",0.8912509,1,50}; frequency = "1"; volume = "camPos*(angVelocity max 0.04)*(speed factor[4, 15])"; }; class ThreadsOutH0 { sound[] = {"Burnes_Challenger\M1A2\sounds\vehicles\tracked\M1A1\ext\ext-m1treads-hard-01",0.29810718,1,140}; frequency = "1"; volume = "engineOn*camPos*(1-grass)*(((((-speed*3.6) max speed*3.6)/ 60) factor[(((-0) max 0)/ 60),(((-5) max 5)/ 60)]) * ((((-speed*3.6) max speed*3.6)/ 60) factor[(((-15) max 15)/ 60),(((-10) max 10)/ 60)]))"; }; class ThreadsOutH1 { sound[] = {"Burnes_Challenger\M1A2\sounds\vehicles\tracked\M1A1\ext\ext-m1treads-hard-02",0.29810718,1,160}; frequency = "1"; volume = "engineOn*camPos*(1-grass)*(((((-speed*3.6) max speed*3.6)/ 60) factor[(((-10) max 10)/ 60),(((-15) max 15)/ 60)]) * ((((-speed*3.6) max speed*3.6)/ 60) factor[(((-30) max 30)/ 60),(((-25) max 25)/ 60)]))"; }; class ThreadsOutH2 { sound[] = {"Burnes_Challenger\M1A2\sounds\vehicles\tracked\M1A1\ext\ext-m1treads-hard-03",0.29810718,1,180}; frequency = "1"; volume = "engineOn*camPos*(1-grass)*(((((-speed*3.6) max speed*3.6)/ 60) factor[(((-25) max 25)/ 60),(((-30) max 30)/ 60)]) * ((((-speed*3.6) max speed*3.6)/ 60) factor[(((-45) max 45)/ 60),(((-40) max 40)/ 60)]))"; }; class ThreadsOutH3 { sound[] = {"Burnes_Challenger\M1A2\sounds\vehicles\tracked\M1A1\ext\ext-m1treads-hard-04",0.29810718,1,200}; frequency = "1"; volume = "engineOn*camPos*(1-grass)*(((((-speed*3.6) max speed*3.6)/ 60) factor[(((-40) max 40)/ 60),(((-45) max 45)/ 60)]) * ((((-speed*3.6) max speed*3.6)/ 60) factor[(((-55) max 55)/ 60),(((-50) max 50)/ 60)]))"; }; class ThreadsOutH4 { sound[] = {"Burnes_Challenger\M1A2\sounds\vehicles\tracked\M1A1\ext\ext-m1treads-hard-05",0.29810718,1,220}; frequency = "1"; volume = "engineOn*camPos*(1-grass)*((((-speed*3.6) max speed*3.6)/ 60) factor[(((-49) max 49)/ 60),(((-53) max 53)/ 60)])"; }; class ThreadsOutS0 { sound[] = {"Burnes_Challenger\M1A2\sounds\vehicles\tracked\M1A1\ext\ext-m1treads-soft-01",0.19810717,1,120}; frequency = "1"; volume = "engineOn*(camPos)*(grass)*(((((-speed*3.6) max speed*3.6)/ 60) factor[(((-0) max 0)/ 60),(((-5) max 5)/ 60)]) * ((((-speed*3.6) max speed*3.6)/ 60) factor[(((-15) max 15)/ 60),(((-10) max 10)/ 60)]))"; }; class ThreadsOutS1 { sound[] = {"Burnes_Challenger\M1A2\sounds\vehicles\tracked\M1A1\ext\ext-m1treads-soft-02",0.19810717,1,140}; frequency = "1"; volume = "engineOn*(camPos)*(grass)*(((((-speed*3.6) max speed*3.6)/ 60) factor[(((-10) max 10)/ 60),(((-15) max 15)/ 60)]) * ((((-speed*3.6) max speed*3.6)/ 60) factor[(((-30) max 30)/ 60),(((-25) max 25)/ 60)]))"; }; class ThreadsOutS2 { sound[] = {"Burnes_Challenger\M1A2\sounds\vehicles\tracked\M1A1\ext\ext-m1treads-soft-03",0.19810717,1,160}; frequency = "1"; volume = "engineOn*(camPos)*(grass)*(((((-speed*3.6) max speed*3.6)/ 60) factor[(((-25) max 25)/ 60),(((-30) max 30)/ 60)]) * ((((-speed*3.6) max speed*3.6)/ 60) factor[(((-45) max 45)/ 60),(((-40) max 40)/ 60)]))"; }; class ThreadsOutS3 { sound[] = {"Burnes_Challenger\M1A2\sounds\vehicles\tracked\M1A1\ext\ext-m1treads-soft-04",0.19810717,1,180}; frequency = "1"; volume = "engineOn*(camPos)*(grass)*(((((-speed*3.6) max speed*3.6)/ 60) factor[(((-40) max 40)/ 60),(((-45) max 45)/ 60)]) * ((((-speed*3.6) max speed*3.6)/ 60) factor[(((-55) max 55)/ 60),(((-50) max 50)/ 60)]))"; }; class ThreadsOutS4 { sound[] = {"Burnes_Challenger\M1A2\sounds\vehicles\tracked\M1A1\ext\ext-m1treads-soft-05",0.19810717,1,200}; frequency = "1"; volume = "engineOn*(camPos)*(grass)*((((-speed*3.6) max speed*3.6)/ 60) factor[(((-49) max 49)/ 60),(((-53) max 53)/ 60)])"; }; class ThreadsInH0 { sound[] = {"A3\Sounds_F_EPB\Tracked\treads\treads_EPB_v2_int_1",0.25118864,1}; frequency = "1"; volume = "engineOn*(1-camPos)*(1-grass)*(((((-speed*3.6) max speed*3.6)/ 55) factor[(((-0) max 0)/ 55),(((-5) max 5)/ 55)]) * ((((-speed*3.6) max speed*3.6)/ 55) factor[(((-12) max 12)/ 55),(((-8) max 8)/ 55)]))"; }; class ThreadsInH1 { sound[] = {"A3\Sounds_F_EPB\Tracked\treads\treads_EPB_v2_int_2",0.2818383,1}; frequency = "1"; volume = "engineOn*(1-camPos)*(1-grass)*(((((-speed*3.6) max speed*3.6)/ 55) factor[(((-10) max 10)/ 55),(((-12) max 12)/ 55)]) * ((((-speed*3.6) max speed*3.6)/ 55) factor[(((-23) max 23)/ 55),(((-16) max 16)/ 55)]))"; }; class ThreadsInH2 { sound[] = {"A3\Sounds_F_EPB\Tracked\treads\treads_EPB_v2_int_3",0.31622776,1}; frequency = "1"; volume = "engineOn*(1-camPos)*(1-grass)*(((((-speed*3.6) max speed*3.6)/ 55) factor[(((-20) max 20)/ 55),(((-22) max 22)/ 55)]) * ((((-speed*3.6) max speed*3.6)/ 55) factor[(((-35) max 35)/ 55),(((-28) max 28)/ 55)]))"; }; class ThreadsInH3 { sound[] = {"A3\Sounds_F_EPB\Tracked\treads\treads_EPB_v2_int_4",0.35481337,1}; frequency = "1"; volume = "engineOn*(1-camPos)*(1-grass)*(((((-speed*3.6) max speed*3.6)/ 55) factor[(((-30) max 30)/ 55),(((-34) max 34)/ 55)]) * ((((-speed*3.6) max speed*3.6)/ 55) factor[(((-42) max 42)/ 55),(((-36) max 36)/ 55)]))"; }; class ThreadsInH4 { sound[] = {"A3\Sounds_F_EPB\Tracked\treads\treads_EPB_v2_int_5",0.39810717,1}; frequency = "1"; volume = "engineOn*(1-camPos)*(1-grass)*((((-speed*3.6) max speed*3.6)/ 55) factor[(((-39) max 39)/ 55),(((-42) max 42)/ 55)])"; }; class ThreadsInS0 { sound[] = {"A3\Sounds_F_EPB\Tracked\treads\treads_EPB_v2_int_1",0.31622776,1}; frequency = "1"; volume = "engineOn*(1-camPos)*grass*(((((-speed*3.6) max speed*3.6)/ 55) factor[(((-0) max 0)/ 55),(((-5) max 5)/ 55)]) * ((((-speed*3.6) max speed*3.6)/ 55) factor[(((-12) max 12)/ 55),(((-8) max 8)/ 55)]))"; }; class ThreadsInS1 { sound[] = {"A3\Sounds_F_EPB\Tracked\treads\treads_EPB_v2_int_2",0.31622776,1}; frequency = "1"; volume = "engineOn*(1-camPos)*grass*(((((-speed*3.6) max speed*3.6)/ 55) factor[(((-10) max 10)/ 55),(((-12) max 12)/ 55)]) * ((((-speed*3.6) max speed*3.6)/ 55) factor[(((-23) max 23)/ 55),(((-16) max 16)/ 55)]))"; }; class ThreadsInS2 { sound[] = {"A3\Sounds_F_EPB\Tracked\treads\treads_EPB_v2_int_3",0.35481337,1}; frequency = "1"; volume = "engineOn*(1-camPos)*grass*(((((-speed*3.6) max speed*3.6)/ 55) factor[(((-20) max 20)/ 55),(((-22) max 22)/ 55)]) * ((((-speed*3.6) max speed*3.6)/ 55) factor[(((-35) max 35)/ 55),(((-28) max 28)/ 55)]))"; }; class ThreadsInS3 { sound[] = {"A3\Sounds_F_EPB\Tracked\treads\treads_EPB_v2_int_4",0.35481337,1}; frequency = "1"; volume = "engineOn*(1-camPos)*grass*(((((-speed*3.6) max speed*3.6)/ 55) factor[(((-30) max 30)/ 55),(((-34) max 34)/ 55)]) * ((((-speed*3.6) max speed*3.6)/ 55) factor[(((-42) max 42)/ 55),(((-36) max 36)/ 55)]))"; }; class ThreadsInS4 { sound[] = {"A3\Sounds_F_EPB\Tracked\treads\treads_EPB_v2_int_5",0.39810717,1}; frequency = "1"; volume = "engineOn*(1-camPos)*grass*((((-speed*3.6) max speed*3.6)/ 55) factor[(((-39) max 39)/ 55),(((-42) max 42)/ 55)])"; }; }; simulation = "tankX"; latency = 0.1; enginePower = 895; maxOmega = 241; peakTorque = 2306; torqueCurve[] = {{ "(610/2300)",0 },{ "(1000/2300)","(1600/2610)" },{ "(1400/2300)",1 },{ "(2300/2300)","(2000/2610)" },{ "(4700/2300)","(0/2610)" }}; thrustDelay = 0.1; antiRollbarForceCoef = 71294; clutchStrength = 40; fuelCapacity = 1885; brakeIdleSpeed = 1; tankTurnForce = 750000; memoryPointTrackFLL = "wheel_1_2_bound"; memoryPointTrackFLR = "wheel_1_3_bound"; memoryPointTrackFRR = "wheel_1_4_bound"; memoryPointTrackFRL = "wheel_1_5_bound"; memoryPointTrackBLL = "wheel_2_2_bound"; memoryPointTrackBLR = "wheel_2_3_bound"; memoryPointTrackBRR = "wheel_2_4_bound"; memoryPointTrackBRL = "wheel_2_5_bound"; MemoryPointTrack1L = ""; MemoryPointTrack2L = ""; idleRpm = 200; redRpm = 2300; engineLosses = 25; transmissionLosses = 15; class complexGearbox { GearboxRatios[] = {"R1",-2.235,"N",0,"CD0","2*(0.75^(-10))","CD1","2*(0.75^(-9))","CD2","2*(0.75^(-8))","CD3","2*(0.75^(-7))","CD4","2*(0.75^(-6))","CD5","2*(0.75^(-5))","CD6","2*(0.75^(-4))","CD7","2*(0.75^(-3))","CD8","2*(0.75^(-2))","CD9","2*(0.75^(-1))","D1","2*(0.75^0)","D2","2*(0.75^0.9)","D3","2*(0.75^1.9)","D4","2*(0.75^2.8)"}; TransmissionRatios[] = {"High",6}; gearBoxMode = "full-auto"; moveOffGear = 1; driveString = "D"; neutralString = "N"; reverseString = "R"; transmissionDelay = 0; }; class Wheels { class L2 { boneName = "wheel_podkoloL1"; center = "wheel_1_2_axis"; boundary = "wheel_1_2_bound"; damping = 40; steering = 0.; side = "left"; weight = 150; mass = 150; MOI = 38.5; latStiffX = 25; latStiffY = 280; longitudinalStiffnessPerUnitGravity = 100000; maxBrakeTorque = 13000; sprungMass = 2625; springStrength = 584000; springDamperRate = 60000; dampingRate = 0.1; dampingRateInAir = 7220; dampingRateDamaged = 10; dampingRateDestroyed = 10000; maxDroop = 0.15; maxCompression = 0.15; frictionVsSlipGraph[] = {{ 0,5 },{ 0.5,5 },{ 1,5 }}; }; class L3: L2 { boneName = "wheel_podkolol2"; center = "wheel_1_3_axis"; boundary = "wheel_1_3_bound"; }; class L4: L2 { boneName = "wheel_podkolol3"; center = "wheel_1_4_axis"; boundary = "wheel_1_4_bound"; }; class L5: L2 { boneName = "wheel_podkolol4"; center = "wheel_1_5_axis"; boundary = "wheel_1_5_bound"; }; class L6: L2 { boneName = "wheel_podkolol5"; center = "wheel_1_6_axis"; boundary = "wheel_1_6_bound"; }; class L7: L2 { boneName = "wheel_podkolol6"; center = "wheel_1_7_axis"; boundary = "wheel_1_7_bound"; }; class L9: L2 { boneName = "wheel_podkolol9"; center = "wheel_1_9_axis"; boundary = "wheel_1_9_bound"; sprungMass = 1500; springStrength = 37500; springDamperRate = 7500; maxDroop = 0; maxCompression = 0; }; class L1: L2 { boneName = ""; center = "wheel_1_1_axis"; boundary = "wheel_1_1_bound"; sprungMass = 1500; springStrength = 37500; springDamperRate = 7500; maxDroop = 0; maxCompression = 0; }; class R2: L2 { boneName = "wheel_podkolop1"; center = "wheel_2_2_axis"; boundary = "wheel_2_2_bound"; damping = 40; steering = 0; side = "right"; weight = 150; mass = 150; MOI = 38.5; latStiffX = 25; latStiffY = 280; longitudinalStiffnessPerUnitGravity = 100000; maxBrakeTorque = 13000; sprungMass = 2625; springStrength = 584000; springDamperRate = 60000; dampingRate = 0.1; dampingRateInAir = 7220; dampingRateDamaged = 10; dampingRateDestroyed = 10000; maxDroop = 0.15; maxCompression = 0.15; frictionVsSlipGraph[] = {{ 0,5 },{ 0.5,5 },{ 1,5 }}; }; class R3: R2 { boneName = "wheel_podkolop2"; center = "wheel_2_3_axis"; boundary = "wheel_2_3_bound"; }; class R4: R2 { boneName = "wheel_podkolop3"; center = "wheel_2_4_axis"; boundary = "wheel_2_4_bound"; }; class R5: R2 { boneName = "wheel_podkolop4"; center = "wheel_2_5_axis"; boundary = "wheel_2_5_bound"; }; class R6: R2 { boneName = "wheel_podkolop5"; center = "wheel_2_6_axis"; boundary = "wheel_2_6_bound"; }; class R7: R2 { boneName = "wheel_podkolop6"; center = "wheel_2_7_axis"; boundary = "wheel_2_7_bound"; }; class R9: R2 { boneName = "wheel_podkolop9"; center = "wheel_2_9_axis"; boundary = "wheel_2_9_bound"; sprungMass = 1500; springStrength = 37500; springDamperRate = 7500; maxDroop = 0; maxCompression = 0; }; class R1: R2 { boneName = ""; center = "wheel_2_1_axis"; boundary = "wheel_2_1_bound"; sprungMass = 1500; springStrength = 37500; springDamperRate = 7500; maxDroop = 0; maxCompression = 0; }; }; cost = 1000000; damageResistance = 1e-005; crewVulnerable = "false"; armor = 1900; armorStructural = 8; class AGM_SelfActions { class AGM_ResetFCS { displayName = "$STR_AGM_FireControlSystem_ResetFCS"; condition = "(count (vehicle _player getVariable ['AGM_FCSMagazines', []]) > 1) and (_player == gunner (vehicle _player))"; statement = "[vehicle _player] call AGM_FCS_fnc_reset;"; showDisabled = 0; priority = -1; }; }; class HitPoints: HitPoints { class HitHull: HitHull { armor = 1; material = -1; name = "telo"; visual = "zbytek"; passThrough = 0.8; minimalHit = 0.12; explosionShielding = 1e-006; radius = 0.15; }; class HitEngine: HitEngine { armor = 0.3; material = -1; name = "motor"; passThrough = 0.1; minimalHit = 0.1; explosionShielding = 1e-006; radius = 0.15; }; class HitLTrack: HitLTrack { armor = 0.1; material = -1; name = "pas_L"; passThrough = 0; minimalHit = 0.02; explosionShielding = 1e-006; radius = 0.15; }; class HitRTrack: HitRTrack { armor = 0.1; material = -1; name = "pas_P"; passThrough = 0; minimalHit = 0.02; explosionShielding = 1e-006; radius = 0.15; }; }; class Turrets: Turrets { class MainTurret: MainTurret { primaryGunner = "true"; gunnerInAction = "gunner_MRAP_01"; gunnerAction = "gunner_MRAP_01"; forceHideGunner = 1; proxyIndex = 1; LODTurnedOut = 1200; body = "mainturret"; gun = "maingun"; animationSourceBody = "mainturret"; animationSourceGun = "maingun"; class Turrets: Turrets { class CommanderOptics: CommanderOptics { gunnerCompartments = "Compartment3"; LODTurnedOut = 1; LODTurnedIn = "View_Commander"; commanding = 3; gunnerAction = "commander_mbt3_out"; gunnerInAction = "passenger_mrap_03exgunner"; gunnerGetInAction = "Heli_Attack_01_Pilot_Enter"; gunnerGetOutAction = "Heli_Attack_01_Pilot_Exit"; animationSourceHatch = "hatchCommander"; proxyIndex = 1; hasGunner = 1; usepip = 1; isPersonTurret = 1; personTurretAction = "vehicle_turnout_1"; enabledByAnimationSource = ""; body = "ObsTurret"; gun = "ObsGun"; animationSourceBody = "ObsTurret"; animationSourceGun = "ObsGun"; maxHorizontalRotSpeed = 1.8; maxVerticalRotSpeed = 1.8; stabilizedInAxes = "StabilizedInAxesBoth"; soundServo[] = {"\Burnes_challenger\data\gun_elevate2",0.3177828,1,10}; minElev = -25; maxElev = 60; initElev = 0; minTurn = -360; maxTurn = 360; initTurn = 0; /*minOutElev = -10; maxOutElev = 25; initOutElev = 0; minOutTurn = -95; maxOutTurn = 95; initOutTurn = 0;*/ weapons[] = {"SmokeLauncher","Laserdesignator_mounted"}; magazines[] = {"SmokeLauncherMag","Laserbatteries"}; discreteDistance[] = {100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200}; discreteDistanceInitIndex = 2; memoryPointGunnerOptics = "commanderview"; gunnerForceOptics = 0; gunnerOutForceOptics = 0; inGunnerMayFire = 1; outGunnerMayFire = 1; gunnerOpticsModel = "\Burnes_Challenger\data\Burnes_fv4034_opticC"; turretInfoType = "RscOptics_crows"; gunnerOutOpticsModel = ""; gunnerOpticsEffect[] = {"TankGunnerOptics1","OpticsBlur2"}; gunnerHasFlares = 1; class ViewGunner: ViewCargo{}; class ViewOptics: ViewOptics { initAngleX = 0; minAngleX = -30; maxAngleX = 30; initAngleY = 0; minAngleY = -100; maxAngleY = 100; initFov = 0.7; minFov = 0.01; maxFov = 0.7; visionMode[] = {"Normal","NVG","TI"}; thermalMode[] = {0,1}; }; startEngine = 0; viewGunnerInExternal = 1; class HitPoints { class HitTurret { armor = 0.3; material = -1; name = "vez"; visual = "vezVelitele"; passThrough = 0.4; minimalHit = 0.1; explosionShielding = 1e-006; radius = 0.15; }; class HitGun { armor = 0.3; material = -1; name = "zbranVelitele"; visual = "zbranVelitele"; passThrough = 0; minimalHit = 0.1; explosionShielding = 1e-005; radius = 0.15; }; }; }; class LoaderTurret: NewTurret { LODTurnedOut = 0; gunnerCompartments = "Compartment1"; gunnerAction = "commander_mbt3_out"; gunnerInAction = "passenger_mrap_03exgunner"; startEngine = 0; gunnerCanSee = "CanSeeCompass"; outGunnerMayFire = 0; inGunnerMayFire = 1; animationSourceHatch = "hatchLoader"; commanding = 1; gunnerName = "Loader"; memoryPointsGetInGunner = "pos_Cargo"; proxyType = "CPGunner"; proxyIndex = 2; memoryPointsGetInGunnerDir = "pos_Cargo_dir"; hasGunner = 1; usepip = 1; viewGunnerInExternal = 1; body = "LoaderTurret"; gun = "LoaderGun"; animationSourceBody = "LoaderTurret"; animationSourceGun = "LoaderGun"; maxHorizontalRotSpeed = 1.8; maxVerticalRotSpeed = 1.8; stabilizedInAxes = "StabilizedInAxesBoth"; soundServo[] = {"\Burnes_challenger\data\gun_elevate2",0.1177828,1,10}; minElev = -10; maxElev = 25; initElev = 0; minTurn = -360; maxTurn = 360; initTurn = 0; memoryPointGun = "usti hlavne3"; gunBeg = "usti hlavne3"; gunEnd = "konec hlavne3"; weapons[] = {"MEU_M2_TITAN"}; magazines[] = {"500Rnd_127x99_mag_Tracer_Red","500Rnd_127x99_mag_Tracer_Red"}; discreteDistance[] = {100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500}; discreteDistanceInitIndex = 2; memoryPointGunnerOutOptics = "loaderview"; memoryPointGunnerOptics = "loaderview"; gunnerForceOptics = 0; gunnerOutForceOptics = 0; gunnerOpticsModel = "\A3\weapons_f\reticle\Optics_Gunner_02_F"; turretInfoType = "RscOptics_crows"; gunnerOutOpticsModel = ""; gunnerOpticsEffect[] = {"TankGunnerOptics1","OpticsBlur2"}; gunnerHasFlares = 1; class Turrets{}; class ViewOptics: ViewOptics { initAngleX = 0; minAngleX = -30; maxAngleX = 30; initAngleY = 0; minAngleY = -100; maxAngleY = 100; initFov = 0.7; minFov = 0.05; maxFov = 1; visionMode[] = {"Normal","NVG","TI"}; thermalMode[] = {0,1}; }; class ViewGunner { initAngleX = 5; minAngleX = -65; maxAngleX = 85; initAngleY = 0; minAngleY = -150; maxAngleY = 150; initFov = 0.7; minFov = 0.15; maxFov = 1.1; visionMode[] = {"Normal","NVG","TI"}; thermalMode[] = {0,1}; }; }; }; memoryPointGun = "usti hlavne2"; gunBeg = "usti hlavne"; gunEnd = "konec hlavne"; weapons[] = {"CHAL_125_MAINGUN","CHAL_COAX_M240"}; soundServo[] = {"A3\sounds_f\dummysound",0.031622775,1,30}; magazines[] = {"Laserbatteries","CHAL_SABOT_MAG","CHAL_TANK_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_SABOT_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_TANK_MAG","CHAL_2000RND_762_M240","CHAL_2000RND_762_M240","CHAL_2000RND_762_M240","CHAL_2000RND_762_M240","CHAL_2000RND_762_M240","CHAL_WP_MAG","CHAL_WP_MAG"}; minElev = -10; maxElev = 20; initElev = 20; turretInfoType = "RscOptics_MBT_03_gunner"; discreteDistance[] = {100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3400,3500}; discreteDistanceInitIndex = 4; allowTabLock = "true"; memoryPointGunnerOptics = "gunnerview"; commanding = 2; gunnerOutOpticsModel = ""; gunnerOutOpticsEffect[] = {}; gunnerOpticsEffect[] = {}; gunnerForceOptics = 0; usePip = 1; class OpticsIn { class Wide: ViewOptics { initAngleX = 0; minAngleX = -30; maxAngleX = 30; initAngleY = 0; minAngleY = -100; maxAngleY = 100; initFov = 0.3; minFov = 0.3; maxFov = 0.3; visionMode[] = {"Normal","NVG","Ti"}; thermalMode[] = {2,3}; gunnerOpticsModel = "\Burnes_Challenger\data\Burnes_fv4034_opticG1"; gunnerOpticsEffect[] = {}; }; class Medium: Wide { gunnerOpticsModel = "\Burnes_Challenger\data\Burnes_fv4034_opticG2"; initFov = 0.05; minFov = 0.05; maxFov = 0.05; }; class Narrow: Wide { gunnerOpticsModel = "\Burnes_Challenger\data\Burnes_fv4034_opticG3"; initFov = 0.01; minFov = 0.01; maxFov = 0.01; }; }; startEngine = 0; inGunnerMayFire = 1; viewGunnerInExternal = 0; class HitPoints { class HitTurret { armor = 1.8; material = -1; name = "vez"; visual = "vez"; passThrough = 0; minimalHit = 0.02; explosionShielding = 0.3; radius = 0.25; }; class HitGun { armor = 1.3; material = -1; name = "zbran"; visual = ""; passThrough = 0; minimalHit = 0; explosionShielding = 1; radius = 0.25; }; }; }; }; class AnimationSources: AnimationSources { class ReloadAnim { source = "reload"; weapon = "MEU_M2_TITAN"; }; class ReloadMagazine { source = "reloadmagazine"; weapon = "MEU_M2_TITAN"; }; class Revolving { source = "revolving"; weapon = "MEU_M2_TITAN"; }; class muzzle_rot_cannon { source = "ammorandom"; weapon = "CHAL_125_MAINGUN"; }; class muzzle_rot_coax { source = "ammorandom"; weapon = "MEU_COAX_M240"; }; class muzzle_rot_HMG { source = "ammorandom"; weapon = "MEU_M2_TITAN"; }; class recoil_source { source = "reloadmagazine"; weapon = "CHAL_125_MAINGUN"; }; class muzzle_rot_LoaderGun { source = "ammorandom"; weapon = "MEU_LOADERGUN"; }; class comHatch { source = "user"; initPhase = 0; animPeriod = 0.5; }; class comHatchInt { source = "user"; initPhase = 0; animPeriod = 0.5; }; class loadHatch { source = "user"; initPhase = 0; animPeriod = 0.5; }; class loadHatchInt { source = "user"; initPhase = 0; animPeriod = 0.5; }; class flagHide { source = "user"; initPhase = 0; animPeriod = 0.1; }; }; class Damage { tex[] = {}; mat[] = {"a3\data_f\default.rvmat","a3\data_f\default.rvmat","a3\data_f\default_destruct.rvmat"}; }; smokeLauncherGrenadeCount = 24; smokeLauncherVelocity = 14; smokeLauncherOnTurret = 1; smokeLauncherAngle = 270; class ViewOptics: ViewOptics { visionMode[] = {"Normal","NVG","Ti"}; thermalMode[] = {0,1}; }; class Exhausts { class Exhaust1 { position = "exhaust"; direction = "exhaust_dir"; effect = "ExhaustEffectTankBack"; }; }; class Reflectors { class Left { color[] = {1900,1300,950}; ambient[] = {5,5,5}; position = "L Svetlo"; direction = "konec L Svetlo"; hitpoint = "L Svetlo"; selection = "L Svetlo"; size = 1; innerAngle = 50; outerAngle = 179; coneFadeCoef = 10; intensity = 1; useFlare = 0; dayLight = 0; flareSize = 1; class Attenuation { start = 1; constant = 0; linear = 0; quadratic = 0.25; hardLimitStart = 30; hardLimitEnd = 60; }; }; class Right: Left { position = "R Svetlo"; direction = "konec R Svetlo"; hitpoint = "R Svetlo"; selection = "R Svetlo"; ambient[] = {0.1,0.1,0.1,0.1}; }; }; class UserActions { class abramsAmmoCount { displayName = "Show ammo count"; position = "Crew_L"; radius = 10; onlyforplayer = 0; showWindow = 0; condition = "true"; statement = "execVM '\Burnes_Challenger\Burnes_ammoCount.sqf'"; }; class AGMdumpRange { displayName = "<t color='#3399FF'>Dump AGM Range Data</t>"; position = "Crew_L"; radius = 10; onlyforplayer = 0; showWindow = 0; condition = "player in [gunner this]"; statement = "[this] execVM ""\Burnes_Challenger\Burnes_DumpRange.sqf"""; }; class TICommander { displayName = "<t color='#33CC33'>CPS Thermal ON</t>"; position = "Crew_L"; radius = 10; onlyforplayer = 0; showWindow = 0; condition = "player in [commander this]"; statement = "this setObjectTexture [1,""#(argb,512,512,1)r2t(rendertarget3,1.0)""];"; }; class NVCommander { displayName = "<t color='#33CC33'>CPS Night-Vision ON</t>"; position = "Crew_L"; radius = 10; onlyforplayer = 0; showWindow = 0; condition = "player in [commander this]"; statement = "this setObjectTexture [1,""#(argb,512,512,1)r2t(rendertarget300,1.0)""];"; }; class COCommander { displayName = "<t color='#33CC33'>CPS Colour ON</t>"; position = "Crew_L"; radius = 10; onlyforplayer = 0; showWindow = 0; condition = "player in [commander this]"; statement = "this setObjectTexture [1,""#(argb,512,512,1)r2t(rendertarget3000,1.0)""];"; }; class UnbuttonCommander { displayName = "<t color='#3399FF'>Open Hatches</t>"; position = "Crew_L"; radius = 10; onlyforplayer = 0; showWindow = 0; condition = "(player in [commander this]) && (this animationPhase ""comHatch"" == 0)"; statement = "this animate [""comHatch"",1];this animate [""LoadHatch"",1];this animate [""comHatchInt"",1];this animate [""LoadHatchInt"",1];"; }; class buttonCommander { displayName = "<t color='#3399FF'>Close Hatches</t>"; position = "Crew_L"; radius = 10; onlyforplayer = 0; showWindow = 0; condition = "(player in [commander this]) && (this animationPhase ""comHatch"" == 1)"; statement = "this animate [""comHatch"",0];this animate [""LoadHatch"",0];this animate [""comHatchInt"",0];this animate [""LoadHatchInt"",0];"; }; /*class SmokeScreen { userActionID = 774; displayName = "<t color='#FF0000'>Smoke Screen ON</t>"; position = "Crew_L"; radius = 10; onlyforplayer = 0; showWindow = 0; condition = "player in [commander this]"; statement = "[vehicle player] execVM ""Burnes_challenger\SmokeScreen.sqf"""; }; class Callsign1 { displayName = "<t color='#33CC33'>set callsign 1-1</t>"; position = "Crew_L"; radius = 2; onlyforplayer = 0; showWindow = 0; condition = "player in [driver this]"; statement = "this setObjectTextureGlobal [5,""\Burnes_Challenger\data\callsigns\11.paa""];"; }; class Callsign2 { displayName = "<t color='#33CC33'>set callsign 1-2</t>"; position = "Crew_L"; radius = 2; onlyforplayer = 0; showWindow = 0; condition = "player in [driver this]"; statement = "this setObjectTextureGlobal [5,""\Burnes_Challenger\data\callsigns\12.paa""];"; }; class Callsign3 { displayName = "<t color='#33CC33'>set callsign 1-3</t>"; position = "Crew_L"; radius = 2; onlyforplayer = 0; showWindow = 0; condition = "player in [driver this]"; statement = "this setObjectTextureGlobal [5,""\Burnes_Challenger\data\callsigns\13.paa""];"; }; class Callsign4 { displayName = "<t color='#33CC33'>set callsign 1-4</t>"; position = "Crew_L"; radius = 2; onlyforplayer = 0; showWindow = 0; condition = "player in [driver this]"; statement = "this setObjectTextureGlobal [5,""\Burnes_Challenger\data\callsigns\14.paa""];"; };*/ class FFVStuff { displayName = "<t color='#3399FF'>Toggle FFV</t>"; position = "Crew_L"; radius = 10; onlyforplayer = 0; showWindow = 0; condition = "(player in [commander this])"; statement = "[vehicle player,player] execVM ""Burnes_Challenger\toggleFFV.sqf"""; }; }; class RenderTargets { class VisionBlockChally { renderTarget = "rendertarget31"; class Camera { pointPosition = "PIPport_pos"; pointDirection = "PIPport_dir"; renderQuality = 1; renderVisionMode = 3; fov = 1.5; }; }; class VisionBlockChally2 { renderTarget = "rendertarget32"; class Camera { pointPosition = "PIPport2_pos"; pointDirection = "PIPport2_dir"; renderQuality = 1; renderVisionMode = 3; fov = 1.5; }; }; class chally_CDUscreenTI { renderTarget = "rendertarget3"; class Camera { pointPosition = "PIP0_pos"; pointDirection = "PIP0_dir"; renderQuality = 1; renderVisionMode = 2; fov = 1.2; }; }; class chally_CDUscreenNV { renderTarget = "rendertarget300"; class Camera { pointPosition = "PIP0_pos"; pointDirection = "PIP0_dir"; renderQuality = 1; renderVisionMode = 1; fov = 1.2; }; }; class chally_CDUscreenCO { renderTarget = "rendertarget3000"; class Camera { pointPosition = "PIP0_pos"; pointDirection = "PIP0_dir"; renderQuality = 1; renderVisionMode = 0; fov = 1.2; }; }; class gunnderRenderTarget { renderTarget = "rendertarget40"; class Camera { pointPosition = "PIPgunner_pos"; pointDirection = "PIPgunner_dir"; renderQuality = 1; renderVisionMode = 0; fov = 1.1; }; }; class loaderRenderTarget { renderTarget = "rendertarget35"; class Camera { pointPosition = "PIPloader_pos"; pointDirection = "PIPloader_dir"; renderQuality = 1; renderVisionMode = 0; fov = 1.1; }; }; class reverseRenderTarget { renderTarget = "rendertarget66"; class Camera { pointPosition = "reversecam_pos"; pointDirection = "reversecam_dir"; renderQuality = 1; renderVisionMode = 0; fov = 1.1; }; }; }; }; class Burnes_FV4034_class_base: Burnes_FV4034_base { accuracy = 0.5; side = 1; faction = "BAF"; vehicleClass = "Burnes_Vehicles"; crew = "Burnes_Crewman_CTRG"; typicalCargo[] = {"Burnes_Crewman_CTRG"}; hiddenSelections[] = {"Camo1","CDU1","reversecam","Camo2","Camo3","Callsign","flags","hatches"}; /*class EventHandlers: DefaultEventhandlers { init = "_this execVM ""Burnes_challenger\Burnes_VehicleInit.sqf"";"; };*/ }; class Burnes_FV4034_01: Burnes_FV4034_class_base { Author = "Burnes"; hiddenSelectionsTextures[] = {"\Burnes_Challenger\data\PH\challenger2_woodland_co","#(argb,512,512,1)r2t(rendertarget3000,1.0)","#(argb,512,512,1)r2t(rendertarget66,1.0)","\Burnes_Challenger\data\PH\challenger2_turret_wood_co.paa","\Burnes_Challenger\data\PH\challengerV2_hull_wood_co.paa","\Burnes_Challenger\data\callsigns\11.paa","\Burnes_Challenger\data\callsigns\scot.paa","\Burnes_Challenger\data\PH\hatches_co"}; scope = 2; accuracy = 1000; displayName = "FV4034 Challenger 2 TES Woodland"; }; class Burnes_FV4034_02: Burnes_FV4034_class_base { Author = "Burnes"; hiddenSelectionsTextures[] = {"\Burnes_Challenger\data\PH\challenger2_desert_co.paa","#(argb,512,512,1)r2t(rendertarget3000,1.0)","#(argb,512,512,1)r2t(rendertarget66,1.0)","\Burnes_Challenger\data\PH\challenger2_turret_des_co.paa","\Burnes_Challenger\data\PH\challengerV2_hull_des_co.paa","\Burnes_Challenger\data\callsigns\11.paa","\Burnes_Challenger\data\callsigns\scot.paa","\Burnes_Challenger\data\PH\hatches_des_co"}; scope = 2; accuracy = 1000; displayName = "FV4034 Challenger 2 TES Desert"; }; }; #include "CDU_Operation\defines.hpp" #include "CDU_Operation\dialog.hpp" class cfgFunctions { #include "CDU_Operation\functions.hpp" };
  5. Intercept is a C/C++ binding interface to the Arma 3 engine (internally referred to as the Real Virtuality or RV engine). It's goal is to provide easy to use library for addon makers to develop addons in a native language, or to develop language extensions for the Arma 3 engine. In a nutshell, Intercept provides a full C/C++ binding system for calling the base C++ functions which are declared in RVEngine for SQF functions. All SQF functions within the RVEngine are actually native code, which is called by SQF via the function names. Intercept bypasses SQF entirely, allowing native C++ plugins to seamlessly interact with the game engine. In essence, Intercept allows for expansions of the game engine, calling internal functionality of the engine which has been exposed via SQF functions. This was the idea behind the intended Java implementation by Bohemia Interactive in Take On Helicopters and was planned for, but never implemented in Arma 3. Intercept not only completes the intended functionality of what Java was meant to provide but has gone much further, including returning data to SQF and multithreaded addons. Intercept works on a host/client based system, in which the host, Intercept itself, hosts client DLLs that implement the Intercept library. The Intercept host handles access to the RV engine by clients through a layer that provides thread concurrency, memory handling, and event dispatching. Client DLLs are then able to be written in a way that can safely ignore most internal nuances of handling data in the RV engine and work with standard C++ STD/STL data types, and only a few specialized objects specific to the game engine. The Intercept library also provides raw C bindings to the C++ versions of SQF functions, so it is entirely possible to use Intercept as the basis for writing in additional scripting languages to the RV engine, such as Python or Lua. You can find more information on our GitHub project page. Technical Details Intercept works by making direct calls to the SQF functions in the RV engine. These functions are themselves C++ functions which are then exposed to SQF for allowing interaction with the underlying game engine; Intercept completely bypasses SQF and allows C++ plugins to interact with the engine directly. User created threads can even be created and by properly using the provided thread concurrency functionality it is possible to execute game functionality safely and concurrently. Intercept clients are able to invoke through the host these commands by provided wrapper functions that replicate and emulate the SQF command namespace (minus some unneeded functionality, like arrays or control structures). These wrapper functions take standard inputs, such as simple primitives like float or bool, and standard std::string arguments and convert them into the proper SQF command variables, providing a seamless layer to the clients. An example of a very simple client that invokes nular, unary, and binary SQF functions (aka functions that take no arguments, a right side argument only, and both a left and right side argument respectively) is demonstrated below and a more examples can be found here. #include <Windows.h> #include <stdio.h> #include <cstdint> #include <sstream> // the Intercept library, only one include required. #include "intercept.hpp" // required exported function to return API version int __cdecl intercept::api_version() { return 1; } // This function is exported and is called by the host each frame. void __cdecl intercept::on_frame() { // get the player object and store it intercept::types::object player = intercept::sqf::player(); // get the post of the player intercept::types::vector3 pos = intercept::sqf::get_pos(player); // build a string... std::stringstream side_chat_msg; side_chat_msg << "Hello Arma World, here is the player pos: " << pos.x << "," << pos.y << "," << pos.z; // send it to the binary SQF sideChat command intercept::sqf::side_chat(player, side_chat_msg.str()); } // Normal Windows DLL junk... BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } Completion Status As of now (3/13/16) Intercept is over 82% language feature complete. You can view the progress of wrapper completion here. Almost all normally used SQF functions are available to the end user, and with the added ability of writing inline SQF code, you can call any function that has not had a wrapper written for it yet (though with a small performance penalty). We will post a release thread when we start releasing builds of the host. Contributions Feel free to contribute as much as you want to this project in terms of time and code. The goal of this project is to be a tool for the community to provide better performing and more complex addons for the Arma 3 platform. If you would like to contribute or want more information please join our Slack channels and get involved! License Intercept is licensed under the MIT license. You can find the full license in the LICENSE file. Prior to commit f9fe4d5 the project was licensed under the GNU/GPL v2 license and continues to be for any commit prior to that.
  6. Inspired by my favorite TV show "Agents of SHIELD", im working on a re texture mod pack(my first ever) Steam workshop link: http://steamcommunity.com/sharedfiles/filedetails/?id=819950664
  7. If I want to play a steam workshop scenario with or without mods, does only need the host the data or does every single player need the used scenario/mods. Thank you
  8. I don't understand this. Before steam, I never had major issues that caused inconveniences with this game. Every time I go a few months without playing ArmA 3 I come back and there is either some new error with steam itself, or the game is broke. I'm getting tired of this becoming a second job. Anyway I just loaded ArmA3, four months ago everything was working great, Red Hammer, CUP, and all my other add-ons. Now today Jul, 16th I load the game and it's asking me to agree with the license as though I just installed it for the first time. I've been playing this game since OFP, and now days it's been nothing but a hassle with the inclusion of steam. Also, None of my add-ons are working because my Set Launch Options are wiped out of the settings. How did that happen? I have not changed anything on this computer as I only use this computer for gaming which I have not played any in 4 months. Anyone know what the devs broke so I can go fix it once again? This game was so much better before Steam. You went to the website to get your updates, no big deal. All Steam does is adds more complexity to system instability because now you have something else running that can have it's own issues. It just compiles the chance of an issue. Steam developers have thousands of games to try to be compatible with, they can't manage and test their service against them all. This is why ArmA 3 has been a nightmare for some people. As always, the developers at BIS are masters and artists at what they do, but steam has to go. I lost my entire clan when BIS adopted steam.
  9. RCWC Team presents! "1985 Real Soviet Army" pack (1985 RSA) is an element of "1985 Real Cold War Crisis" project, intended to reconstruct Soviet Army units 1969-1991. Download [1]: yadi.sk or Download [2]: mediafire Required addon "NewCloud": Download from yadi.sk or mediafire http://imgur.com/a/3Lar7 More pictures inside the archive with the addon. It contains the following components: ----- MODPACK AUTHORS ----- RCWC Projects Team: GURAN aka Special Soldier alexanbros40 Sovietkot aka st90 Nimus ----- CONSULTANTS ----- Kirill Pen'chinskij Vladislav Danilov Stalker2011 aka Eugene Tackleberry NERV ----- ENGLISH LOCALISATION ----- FOXlauncher SoldierEPilot Nimus -Sapper- ----- SPECIAL THANKS ----- ORCS Development Studio team Psykke RHS OFPCAT Liberation mod team Vladislav Danilov ___________________________________________________________________________________________________________________________ ALL MODELS, TEXTURES AND OTHER COMPONENTS, INCLUDED IN THIS PACK, ARE THE PROPERTY OF THEIR RESPECTIVE OWNERS
  10. Currently making a re-texture for a helmet, when i launch arma 3 with my mod (yes the config.cpp is in the addons.pbo) Arma 3 starts to load until "initializing Addons" then pops up with this : "File addons/config.cpp, line 42: Config: 'm' after class HeadGearItem { Please help me, im new to this and im pretty sure my code is really messed up! thanks! enum { // = 2, // Error parsing: Empty enum name DESTRUCTENGINE = 2, DESTRUCTDEFAULT = 6, DESTRUCTWRECK = 7, DESTRUCTTREE = 3, DESTRUCTTENT = 4, STABILIZEDINAXISX = 1, STABILIZEDINAXESXYZ = 4, STABILIZEDINAXISY = 2, STABILIZEDINAXESBOTH = 3, DESTRUCTNO = 0, STABILIZEDINAXESNONE = 0, DESTRUCTMAN = 5, DESTRUCTBUILDING = 1, }; class CfgPatches { class Veeta_beret { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Characters_F_BLUFOR"}; }; }; class cfgWeapons { class ItemCore; class HeadgearItem; class Veeta_beret : ItemCore { scope = 2; weaponPoolAvailable = 1; displayName = "{Veeta's Beret}"; picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa"; model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] ={"\addons\Veeta_beret.paa"; class ItemInfo ; class HeadGearItem { mass = 100; uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; modelSides[] = {3, 1}; armor = 3*0.5; passThrough = 0.8; hiddenSelections[] = {"camo"}; }; }; };
  11. Currently making a re-texture for a helmet, when i launch arma 3 with my mod (yes the config.cpp is in the addons.pbo) Arma 3 starts to load until "initializing Addons" then pops up with this : "File addons/config.cpp, line 42: Config: 'm' after class HeadGearItem { Please help me, im new to this and im pretty sure my code is really messed up! thanks! enum { // = 2, // Error parsing: Empty enum name DESTRUCTENGINE = 2, DESTRUCTDEFAULT = 6, DESTRUCTWRECK = 7, DESTRUCTTREE = 3, DESTRUCTTENT = 4, STABILIZEDINAXISX = 1, STABILIZEDINAXESXYZ = 4, STABILIZEDINAXISY = 2, STABILIZEDINAXESBOTH = 3, DESTRUCTNO = 0, STABILIZEDINAXESNONE = 0, DESTRUCTMAN = 5, DESTRUCTBUILDING = 1, }; class CfgPatches { class Veeta_beret { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Characters_F_BLUFOR"}; }; }; class cfgWeapons { class ItemCore; class HeadgearItem; class Veeta_beret : ItemCore { scope = 2; weaponPoolAvailable = 1; displayName = "{Veeta's Beret}"; picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa"; model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] ={"\addons\Veeta_beret.paa"; class ItemInfo ; class HeadGearItem { mass = 100; uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; modelSides[] = {3, 1}; armor = 3*0.5; passThrough = 0.8; hiddenSelections[] = {"camo"}; }; }; };
  12. Hello there! I stumbled across an issue while working on some ArmA 3 addons. I have two addons, stored in the same folder. The structure right now looks like follows: P:\x\addon1 P:\x\addon2 Both addons have a $PBOPREFIX$, setting their namespaces as the above folder structure. "addon1" has a .hpp file with PreProcessor macros, called macros.hpp And here is, where the fun begins: I want to access these macros from addon1 inside of addon2. I have included the file inside of addon2: // File include-macros.hpp inside addon2 root #include \x\addon1\macros.hpp This works fine while rapping and packing the file using Mikero's MakePBO, actually including the correct file and its contents. If I start the game, having both addons (addon 1 and addon2) loaded, fails with a message: Include file x\addon1\macros.hpp not found I have no idea anymore, could someone please help me out with this? Thank you for your answers in advance!
  13. Hello, I am looking for an experienced developer (or two) that are willing to help my life role-play server expand and grow to something much more unique. The server/community currently uses/has: Lakeside heavily modded Custom mission file with plenty to do Some bugs, not majorly game-breaking 55 players all-time peak 20-40 players average but we have the money to spend on advertising once the server is more unique Approval for Bohemia monetization We're looking for someone who has advanced knowledge in developing scripts (not just configuring) and is familiar with MySQL (not a requirement). I really hope I'm not breaking any rules by posting this but from what I read on the forum guidelines, it seems alright. Just to be safe, I won't be posting any links/mentioning the community name. Please contact me if you're interested, I will look forward to working with you.
  14. When i place a game mastee module, it gives me the option to set the owner, name and addons (mods) that can be used by this zeus. The Problem: i cant edit the addons option as the module wont let me open the selection menu from where i usually could select 1 of three options (i think it was addons active on scenario, official addons and all addons (including unofficial)) Please help. It is elemental for me in order to create a zeus mission.
  15. I am certain this been asked before but - how do I find out what addons I used in a custom mission Arma 3? Thanks
  16. I understand is not recommended to do this, but I have a portion of a mod that I wanted to add to the mission folder so that the players didn't had to download or subscribe the mod in before hand. I've managed to do this with a script based mod in which I included the cfgFunction of the mod in the description.ext (mimicking the config.cpp of the mod) and it worked. However I tried doing the same for a piece of clothing but I'm not having the same success. It doesn't appear in Arsenal so I tried to bypass it by using a "addItemCargo" to add the item to a object inventory but it's not working either. Using debug menu doesnt work either. It's not issuing any errors but it appears to be something that isn't prone to show runtime errors anyway (for example mistyping a classname it doesn't complain). The description.ext has a overload of cfgWeapons so that it includes the .hpp with the clothes scripting, alongside a overload of CfgPatches and CfgMods just in case. The mod loaded normally standalone through launcher works so it's definitively the implementation in the mission system. Any idea on what I could be missing?
  17. Okay so before adding a bunch of addons/mods the game ran fine... now that all the addons/mods are added i will reach the main menu and the game will close saying this https://gyazo.com/c331d52bd361224aee925788fff282c6 Here's a list of the mods/addons i added: https://gyazo.com/da298aafb0af74ed4ea55bba6633211e Any ideas on how to fix this??
  18. Hello guys, Can person without any DLCs play a scenario that has objects like buildings, rocks from Apex DLC ? The ERROR that friend gets when he tries to open my mission in editor I'm making a mission that should not be dependant on any DLCs Mission uses several addons (image below) and a lot of Apex objects and clothing, though none on player, my friend has all the mods that are required but doesn't own any DLCs. He's unable launch the scenario, nothing happens when "Play" is pressed. I'm clueless what's wrong, would appreciate some help. Required addons (Map is Bornholm)
  19. I have a problem with the "restartwarnings.sqf" When the mission ends this script doesn't reset the timer it still thinks it's at 0 and mission ends which is a loop. I'm thinking its something to do with []spawn maybe there's a way to re-spawn the timer. restartwarnings.sqf restartWarningTxt = "== WARNING =="; warningSchedule = [60,30,20,15,10,5,3,2,1]; END_TIME = 400; if (isServer) then { [] spawn { ELAPSED_TIME = 0; START_TIME = diag_tickTime; while {ELAPSED_TIME < END_TIME} do { ELAPSED_TIME = diag_tickTime - START_TIME; publicVariable "ELAPSED_TIME"; sleep 1; }; }; }; if!(isDedicated) then { [] spawn { while{ELAPSED_TIME < END_TIME } do { timey = floor(END_TIME - ELAPSED_TIME); finish_time_minutes = floor(timey / 60); finish_time_seconds = floor(timey) - (60 * finish_time_minutes); finish_time_hours = floor(timey / 3600); if(finish_time_seconds < 10) then { finish_time_seconds = format ["0%1", finish_time_seconds]; }; if(finish_time_minutes < 10) then { finish_time_minutes = format ["0%1", finish_time_minutes]; }; formatted_time = format ["%1:%2", finish_time_hours, finish_time_minutes]; }; }; }; givewarning = compileFinal preprocessFileLineNumbers "addons\restart_warnings\givewarning.sqf"; timecheck = compileFinal preprocessFileLineNumbers "addons\restart_warnings\timecheck.sqf"; [warningSchedule] spawn timecheck; timecheck.sqf _END = 99; //_END = count warningSchedule; while { _END == 99 } do { if (timey == 60) then { playMusic "1min"; sleep 2; }; if (timey == 120) then { playMusic "2min"; sleep 2; }; if (timey == 180) then { playMusic "3min"; sleep 2; }; if (timey == 300) then { playMusic "5min"; sleep 2; }; if (timey == 30) then { playMusic "30sec"; sleep 2; }; if (timey == 10) then { playMusic "10sec"; sleep 2; }; if (timey <= 0) then { endMission "END1"; _END = 98; }; _find = warningSchedule find finish_time_minutes; if (_find > -1) then { [warningSchedule select _find, restartWarningTxt] spawn givewarning; warningSchedule = warningSchedule - [warningSchedule select _find]; //timey = timey -1 }; }; pawn BIS_fnc_typeText; givewarning.sqf _minutesLeft = _this select 0; _minuteOrMinutes = "s"; if(_minutesLeft == 1) then { _minuteOrMinutes = ""; }; _notif = [ [ [format["%1", restartWarningTxt],"<t align = 'center' shadow = '1' size = '1' color ='#E44646' font='PuristaBold'>%1</t><br />"], [format["Next restart in %1 minute%2....", _minutesLeft, _minuteOrMinutes],"<t align = 'center' shadow = '1' size = '0.8'>%1</t><br/>"] ] ] spawn BIS_fnc_typeText;
  20. Hello. I have been having an error ever since workshop modding came out where I cannot access any of my workshop mods at all, whether through the launcher or by moving them into the directory so I can control them manually. Steam frequently updates and downloads workshop content as necessary, but there is no way for me to use it and it is incredibly frustrating. For more info, I had my Arma directory located on my C: Drive but got a new HD and decided to port it to my E: as mod content was taking up so much space. I have re-installed numerous times, to no avail. Please let me know if I can fix this, or there is a steam issue.
  21. Steam Workshop Addons

    Hello everyone I hope you are having a nice day unlike me. I have subscribed to a couple of mods on steam workshop for arma 3 and after they download they don't seem to show up. In the past when this would happen I would keep the launcher open for a couple hours and the addons would show up but that doesn't seem to work anymore. I subscribed to a couple mods last week and decided to leave my pc on with the launcher open throughout the weekend and nothing showed up. Any help is highly appreciated. PS: Mods that have already showed up do get updated if that helps at all :P PS No2: I have also tried resubscribing to the mods but no luck...
  22. I was using this sample to help make my addon work, but as time went on and my addon had some errors I couldn't fix I decided to test the source ! Arma 3 Samples Test_Heli_01.. it didn't work... first there was error in : model = "\Samples_F\Test_Heli_01\Test_Heli_01.p3d"; should be Test_Heli_01\Test_Heli_01.p3d"; then some other error with damage to rotor. along with spam in rpt: Warning: test_heli_01\test_heli_01.p3d:shadow(0), vertex: 791, sum of weights is 200, should be 100 Warning: test_heli_01\test_heli_01.p3d:VIEW_CARGO, vertex: 4291, sum of weights is 200, should be 100 when it came to p3d there were a tone of rpt errors, to many to list. So my thing is how I'm I to learn if the source is not good? Is there something I did wrong? was I supposed to open the p3d files and burn them or something? or is it just it is what it is? I'm not bitching just looking for answers ....
  23. Hello there. I was wondering this question; Let's say I'm working on a mission and all and for example I want to add a certain item that isn't in the base game, not just a texture; an entire item. Although, I don't want to make all of my friends have to download that item separately; I'd like it to be implemented in the mission, so that it'd be simply downloaded from the mission while they join it, like in other ArmA 3 mods that don't require you to install the addons, but to download the "mod". Could this be done with a mission, to posess the item, the texture; and then whenever anyone joins it / downloads it; the items would be available without the need to separately and manually download the item/addon? and/or is it even possible? Thanks in advance.
  24. Hey everyone that is willing to help. I have made an animations and I want to use it in arma 3. I have been told that it's not possible to add it in a missions just with a script but I have to make a config.cpp and pack it into a .pbo and pretty much make it a mod. I have zero knowledge on writing configs so anyone that would volunteer to write me a config for one animations only I would really appreciate. I am also going to post the same things on ARMA 3 - FIND OR OFFER HELP.
  25. Hi all, I am tring to create a basic addon that decreases the amount of fatigue by a variable. I have made it in individual missions, but I'd like to make it an addon so I can have it accessible all the time with my group... I have looked for a guide on how to get this started, but haven't come up with anything. Everything I see is about creating some magical 'p' drive and all this... It seems like it's overly complex for what I'm attempting - I should just be able to script this, correct? Anyways, I have the following script: if !(hasInterface) exitWith{}; waitUntil {!isNull(findDisplay 46)}; waitUntil {!isNull player}; //set global variables missionNamespace setVariable ["OHTC_FatigueMultiplier", 0.3]; _l = 0; //The last fatigue we had while {true} do { if(!(isNil "OHTC_FatigueMultiplier") && typeName OHTC_FatigueMultiplier == "SCALAR" && OHTC_FatigueMultiplier >0 0 OHTC_FatigueMultiplier <= 1) then { //The current fatigue of the player _c = getfatigue player; //The default increase: ie: difference between what we have now, and what we had last time we ran _di = _c - _l; //The NEW increase in fatigue would be the percentage we request of the default increase _ni = _di - (_di * OHTC_FatigueMultiplier); //Assuming we've gone up: let's set the fatigue to the new value; if(_ni > 0) then { player setFatigue _c - _ni; }; systemChat format ["Last: %1, Current: %2, Default Inc: %3, Multiplier: %4, New Inc: %5, Final Fatigue: %6", _l, _c, _di, OHTC_FatigueMultiplier, _ni, getfatigue player]; //Now we set our last historical value to our modified value _l = getfatigue player; }; sleep 1; } And I want it as a mod. I've taken apart a couple mods with Elitness, but I'm not understanding how to piece one together myself. I have folder in my arma directory called "@OHTCfatigueMultiplier". Inside this folder I have another folder called "addons" Inside the addons folder I have a script - init.sqf - that contains the above script. What else am I missing, please? Thank you
×