Jump to content

mindstorm

Member
  • Content Count

    247
  • Joined

  • Last visited

  • Medals

Posts posted by mindstorm


  1. Gnat;2443029'].... based on your reaction to "hacking" and your lack of response to kylania I still say you're the exception to the rule.

    I'm done here.

    Oh' date=' I should say: If you want that feature, open a Ticket in the Bugtracker, or use one of the generic threads that collect such requests.[/quote']

    Kylania showed something I allready achieved (bottom part of my code) and which has nothing to do with config editing. Rather wierd to state that you're done here because of me not replying to him. Not even to mention your vague reply to my hacking statement.

    It is clear to me that you in person would rather not see vehicle config editing witout addons. As to why, i couldn't tell. As far as I know it would only bring advantages. Ill just make a feature request out of it since im not really getting any good readons why this shouldn't be implemented in this thread anyway.


  2. Gnat;2442316']Suggest you are the exception to the rule. I don't see too many people here wanting to "tweak" addons to suit their mission.

    Except hacker ;)

    You don't see them because it's not possible.... I cannot imagine people wouldn't like to edit existing vehicles. I'm sure everyone can agree for example that the current quad bike's accelerating is a laugh.

    And about the "hacker" part:

    As long as you wouldn't be able to overwrite existing classes a hacker could never change an existing vehicle with a script. And the good hackers can always hack stuff with memory editing...


  3. Gnat;2441529']Sorry' date=' no disrespect but you seem to have missed the 10 years of a VERY success OFP/ARMA1/ARMA2/A2OA community with 10's of thousands of community made addons and missions .... much of that history without addon "auto-downloaders"

    That being said, yes, the game would benefit for a little extra usability for the gaming generation that can't/don't like to manage downloads and mod folders.

    Unfortunately with thousands of DLC potentially becoming available ..... it could actually backfire and become a NIGHTMARE for some players.[/quote']

    I didn't miss it's success.... I'm just saying that a-lot of mods would be easier accessible for the "masses" who simply don't want to take time into stalling it. I have tons of friends playing dayz and only a handful of them could actually install the first versions (without day-commander). Most of them had no clue how to do so... So yes it would be good for the community. And how could it backfire? If done correctly with a server browser which has a "show modded servers" checkbox it won't be a problem.

    And even so. I mean a.t.m. I'm developing a Mission file which enables a race game... No modding done, so even now its possible to provide a complete different "experience" for users without them even being aware... Might as well include the whole package then, I'm sure it won't be a problem when a decent server-browser is implemented on the way.

    And for the side-note. I highly doubt people downloading a 6.5GB would mind auto-downloading a couple of mods. The "big file download" thing isn't really a point of discussion if you ask me. Majority is on 10mbit+ these days, and if not they can subscribe to mods and download them overnight instead of in game when joining a server.

    But we're getting off-topic. Again I'd like to be able to "edit" existing vehicles, wouldn't you like to simply add a turret on top of a offroad to make your mission a bit more unique? Wouldn't be really large files anyway.


  4. Well I don't really see the problem with vehicle config files. Sound config works aswell so wouldn't be much effort to implement I suppose?

    Also with steamworkshop in mind they should really start implementing auto-addon download. For a game which supports this much modding they are really running behind on auto-download. Look at for example NS2, it allowes you to subscribe on mods in the workshop. And if you join a server with addons/mods it auto-downloads them.

    Much more friendly than the current system.


  5. Well I want to make a Police version of the offroad but I cannot get it working. Maybe it's just my lack of understanding how to mod.

    My vehicle.ccp (url is file, or inside spoiler):

    #define true	1
    #define false	0
    
    #define private		0
    #define protected		1
    #define public		2
    
    #define TEast		0
    #define TWest		1
    #define TGuerrila		2
    #define TCivilian		3
    #define TSideUnknown		4
    #define TEnemy		5
    #define TFriendly		6
    #define TLogic		7
    
    enum {
    DESTRUCTENGINE = 2,
    DESTRUCTDEFAULT = 6,
    DESTRUCTWRECK = 7,
    DESTRUCTTREE = 3,
    DESTRUCTTENT = 4,
    STABILIZEDINAXISX = 1,
    STABILIZEDINAXESXYZ = 4,
    STABILIZEDINAXISY = 2,
    STABILIZEDINAXESBOTH = 3,
    DESTRUCTNO = 0,
    STABILIZEDINAXESNONE = 0,
    DESTRUCTMAN = 5,
    DESTRUCTBUILDING = 1,
    };
    
    class DefaultEventhandlers;	// External class reference
    
    class CfgPatches {
    class A3_Soft_F_Offroad_01 {
    	units[] = {"C_Offroad_01_F", "C_Offroad_01_PA_F", "C_Offroad_01_RP_F", "I_G_offroad", "c_offroad_01_armed", "I_G_offroad_armed"};
    	weapons[] = {};
    	requiredVersion = 0.1;
    	requiredAddons[] = {"A3_Soft_F"};
    };
    };
    class WeaponFireGun;	// External class reference
    class WeaponCloudsGun;	// External class reference
    class WeaponFireMGun;	// External class reference
    class WeaponCloudsMGun;	// External class reference
    
    class CfgVehicles {
    class LandVehicle;	// External class reference
    
    class Car : LandVehicle {
    	class HitPoints;	// External class reference
    	class NewTurret;	// External class reference
    };
    
    class Car_F : Car {
    	class Turrets {
    		class MainTurret : NewTurret {
    			class ViewOptics;	// External class reference
    		};
    	};
    
    	class HitPoints {
    		class HitLFWheel;	// External class reference
    		class HitLBWheel;	// External class reference
    		class HitRFWheel;	// External class reference
    		class HitRBWheel;	// External class reference
    		class HitBody;	// External class reference
    
    		class HitGlass1 {};
    		class HitGlass2;	// External class reference
    	};
    	class EventHandlers;	// External class reference
    	class AnimationSources;	// External class reference
    };
    
    class Offroad_Base : Car_F {
    	mapSize = 6.12;
    	_generalMacro = "Offroad_01_base_F";
    	displayName = "$STR_A3_CfgVehicles_Offroad_Base0";
    	nameSound = "veh_car";
    
    	class Library {
    		libTextDesc = "$STR_A3_CfgVehicles_Offroad_Base_Library0";
    	};
    	model = "\A3\soft_f\offroad\offroad";
    	picture = "\A3\soft_f\offroad\Data\UI\offroad_base_CA.paa";
    	Icon = "\A3\soft_f\offroad\Data\UI\map_offroad_CA.paa";
    	accuracy = 0.25;	// accuracy needed to recognize type of this target
    	transportSoldier = 5;
    	transportMaxBackpacks = 0;
    	armor = 32;
    	cost = 50000;
    
    	class TransportItems {
    		class _xx_FirstAidKit {
    			name = "FirstAidKit";
    			count = 6;
    		};
    	};
    	hiddenSelections[] = {"camo", "camo2"};
    	hiddenSelectionsTextures[] = {"\A3\soft_f\offroad\data\offroad_ext_co.paa", "\A3\soft_f\offroad\data\offroad_ext_co.paa"};
    
    	class AnimationSources : AnimationSources {
    		class Doors {
    			source = "user";
    			animPeriod = 1;
    			initPhase = 0;
    		};
    
    		class Proxy {
    			source = "user";
    			animPeriod = 1;
    			initPhase = 1;
    		};
    
    		class Beacons {
    			source = "user";
    			animPeriod = 1;
    			initPhase = 0;
    		};
    
    		class Destruct {
    			source = "user";
    			animPeriod = 0;
    			initPhase = 1;
    		};
    	};
    
    	class HitPoints : HitPoints {
    		class HitLFWheel : HitLFWheel {
    			armor = 0.125;
    			passThrough = false;
    		};
    
    		class HitLF2Wheel : HitLBWheel {
    			armor = 0.125;
    			passThrough = false;
    		};
    
    		class HitRFWheel : HitRFWheel {
    			armor = 0.125;
    			passThrough = false;
    		};
    
    		class HitRF2Wheel : HitRBWheel {
    			armor = 0.125;
    			passThrough = false;
    		};
    
    		class HitFuel {
    			armor = 0.5;
    			material = -1;
    			name = "palivo";
    			visual = "";
    			passThrough = 0.2;
    		};
    
    		class HitEngine {
    			armor = 0.5;
    			material = -1;
    			name = "motor";
    			visual = "";
    			passThrough = 0.2;
    		};
    
    		class HitBody : HitBody {
    			visual = "camo";
    			passThrough = true;
    		};
    
    		class HitGlass1 : HitGlass1 {
    			armor = 0.25;
    		};
    
    		class HitGlass2 : HitGlass2 {
    			armor = 0.25;
    		};
    	};
    	steerAheadSimul = 0.5;
    	steerAheadPlan = 0.35;
    	predictTurnPlan = 0.8;
    	predictTurnSimul = 0.6;
    	precision = 10;
    	brakeDistance = 50;	// vehicle movement precision
    	turnCoef = 3.5;
    	driverAction = "driver_offroad01";
    	cargoAction[] = {"passenger_low01", "passenger_flatground_leanleft", "passenger_flatground_leanright", "passenger_flatground_crosslegs", "passenger_flatground_leanleft"};
    	getInAction = "GetInLow";
    	getOutAction = "GetOutLow";
    	cargoGetInAction[] = {"GetInLow"};
    	cargoGetOutAction[] = {"GetOutLow"};
    	fireResistance = 5;
    	wheelDestroyRadiusCoef = 0.75;
    	soundGetIn[] = {"A3\Sounds_F\vehicles\soft\offroad\offroad-int-openclose.wav", db0, 1};
    	soundGetOut[] = {"A3\Sounds_F\vehicles\soft\offroad\offroad-int-openclose.wav", db0, 1, 40};
    	soundDammage[] = {"", 0.562341, 1};
    	soundEngineOnInt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_start.wav", 1.0, 1.0};
    	soundEngineOnExt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_start.wav", 1.0, 1.0, 200};
    	soundEngineOffInt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_stop.wav", 1.0, 1.0};
    	soundEngineOffExt[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_stop.wav", 1.0, 1.0, 200};
    
    	class Sounds {
    		class Idle_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_idle.wav", db0, 1, 100};
    			frequency = "0.95	+	((rpm/	3500) factor[(100/	3500),(600/	3500)])*0.15";
    			volume = "engineOn*camPos*(((rpm/	3500) factor[(100/	3500),(200/	3500)])	*	((rpm/	3500) factor[(530/	3500),(380/	3500)]))";
    		};
    
    		class Engine {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_2.wav", db0, 1, 200};
    			frequency = "0.9	+	((rpm/	3500) factor[(380/	3500),(840/	3500)])*0.2";
    			volume = "engineOn*camPos*(((rpm/	3500) factor[(380/	3500),(530/	3500)])	*	((rpm/	3500) factor[(850/	3500),(650/	3500)]))";
    		};
    
    		class Engine1_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_3.wav", db0, 1, 225};
    			frequency = "0.9	+	((rpm/	3500) factor[(660/	3500),(1130/	3500)])*0.2";
    			volume = "engineOn*camPos*(((rpm/	3500) factor[(650/	3500),(840/	3500)])	*	((rpm/	3500) factor[(1130/	3500),(940/	3500)]))";
    		};
    
    		class Engine2_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_4.wav", db0, 1, 250};
    			frequency = "0.9	+	((rpm/	3500) factor[(930/	3500),(1340/	3500)])*0.2";
    			volume = "engineOn*camPos*(((rpm/	3500) factor[(1000/	3500),(1130/	3500)])	*	((rpm/	3500) factor[(1340/	3500),(1200/	3500)]))";
    		};
    
    		class Engine3_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_6.wav", db0, 1, 275};
    			frequency = "0.95	+	((rpm/	3500) factor[(1200/	3500),(1620/	3500)])*0.2";
    			volume = "engineOn*camPos*(((rpm/	3500) factor[(1100/	3500),(1300/	3500)])	*	((rpm/	3500) factor[(1600/	3500),(1400/	3500)]))";
    		};
    
    		class Engine4_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_8.wav", db0, 1, 300};
    			frequency = "0.95	+	((rpm/	3500) factor[(1400/	3500),(2000/	3500)]) *0.2";
    			volume = "engineOn*camPos*(((rpm/	3500) factor[(1300/	3500),(1600/	3500)])	*	((rpm/	3500) factor[(2000/	3500),(1700/	3500)]))";
    		};
    
    		class Engine5_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_9.wav", db0, 1, 325};
    			frequency = "0.95	+	((rpm/	3500) factor[(1700/	3500),(2250/	3500)])*0.2";
    			volume = "engineOn*camPos*(((rpm/	3500) factor[(1600/	3500),(2000/	3500)])	*	((rpm/	3500) factor[(2250/	3500),(2050/	3500)]))";
    		};
    
    		class Engine6_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_11.wav", db0, 1, 350};
    			frequency = "0.95	+	((rpm/	3500) factor[(2050/	3500),(2600/	3500)])*0.2";
    			volume = "engineOn*camPos*(((rpm/	3500) factor[(1900/	3500),(2250/	3500)])	*	((rpm/	3500) factor[(2600/	3500),(2400/	3500)]))";
    		};
    
    		class Engine7_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_12.wav", db0, 1, 375};
    			frequency = "0.95	+	((rpm/	3500) factor[(2400/	3500),(3050/	3500)])*0.2";
    			volume = "engineOn*camPos*(((rpm/	3500) factor[(2300/	3500),(2600/	3500)])	*	((rpm/	3500) factor[(3050/	3500),(2650/	3500)]))";
    		};
    
    		class Engine8_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_14.wav", db0, 1, 400};
    			frequency = "0.95	+	((rpm/	3500) factor[(2650/	3500),(3500/	3500)])*0.2";
    			volume = "engineOn*camPos*((rpm/	3500) factor[(2400/	3500),(3200/	3500)])";
    		};
    
    		class IdleThrust {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_idle_exhaust.wav", db0, 1, 200};
    			frequency = "0.95	+	((rpm/	3500) factor[(100/	3500),(600/	3500)])*0.15";
    			volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(100/	3500),(200/	3500)])	*	((rpm/	3500) factor[(530/	3500),(380/	3500)]))";
    		};
    
    		class EngineThrust {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_2_exhaust.wav", db0, 1, 250};
    			frequency = "0.9	+	((rpm/	3500) factor[(380/	3500),(840/	3500)])*0.2";
    			volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(380/	3500),(530/	3500)])	*	((rpm/	3500) factor[(850/	3500),(650/	3500)]))";
    		};
    
    		class Engine1_Thrust_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_3_exhaust.wav", db0, 1, 275};
    			frequency = "0.9	+	((rpm/	3500) factor[(660/	3500),(1130/	3500)])*0.2";
    			volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(650/	3500),(840/	3500)])	*	((rpm/	3500) factor[(1130/	3500),(940/	3500)]))";
    		};
    
    		class Engine2_Thrust_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_4_exhaust.wav", db0, 1, 300};
    			frequency = "0.9	+	((rpm/	3500) factor[(930/	3500),(1340/	3500)])*0.2";
    			volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(1000/	3500),(1130/	3500)])	*	((rpm/	3500) factor[(1340/	3500),(1200/	3500)]))";
    		};
    
    		class Engine3_Thrust_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_6_exhaust.wav", db0, 1, 325};
    			frequency = "0.95	+	((rpm/	3500) factor[(1200/	3500),(1620/	3500)])*0.2";
    			volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(1100/	3500),(1300/	3500)])	*	((rpm/	3500) factor[(1600/	3500),(1400/	3500)]))";
    		};
    
    		class Engine4_Thrust_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_8_exhaust.wav", db0, 1, 350};
    			frequency = "0.95	+	((rpm/	3500) factor[(1400/	3500),(2000/	3500)]) *0.2";
    			volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(1300/	3500),(1600/	3500)])	*	((rpm/	3500) factor[(2000/	3500),(1700/	3500)]))";
    		};
    
    		class Engine5_Thrust_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_9_exhaust.wav", db0, 1, 375};
    			frequency = "0.95	+	((rpm/	3500) factor[(1700/	3500),(2250/	3500)])*0.2";
    			volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(1600/	3500),(2000/	3500)])	*	((rpm/	3500) factor[(2250/	3500),(2050/	3500)]))";
    		};
    
    		class Engine6_Thrust_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_11_exhaust.wav", db0, 1, 400};
    			frequency = "0.95	+	((rpm/	3500) factor[(2050/	3500),(2600/	3500)])*0.2";
    			volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(1900/	3500),(2250/	3500)])	*	((rpm/	3500) factor[(2600/	3500),(2400/	3500)]))";
    		};
    
    		class Engine7_Thrust_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_12_exhaust.wav", db0, 1, 425};
    			frequency = "0.95	+	((rpm/	3500) factor[(2400/	3500),(3050/	3500)])*0.2";
    			volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(2300/	3500),(2600/	3500)])	*	((rpm/	3500) factor[(3050/	3500),(2650/	3500)]))";
    		};
    
    		class Engine8_Thrust_ext {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_ext_rpm_14_exhaust.wav", db0, 1, 450};
    			frequency = "0.95	+	((rpm/	3500) factor[(2650/	3500),(3500/	3500)])*0.2";
    			volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/	3500) factor[(2400/	3500),(3200/	3500)])";
    		};
    
    		class Idle_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_idle.wav", db-10, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(100/	3500),(600/	3500)])*0.15";
    			volume = "engineOn*(1-camPos)*(((rpm/	3500) factor[(100/	3500),(200/	3500)])	*	((rpm/	3500) factor[(530/	3500),(380/	3500)]))";
    		};
    
    		class Engine_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_2.wav", 0.1, 1};
    			frequency = "0.9	+	((rpm/	3500) factor[(380/	3500),(840/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(((rpm/	3500) factor[(380/	3500),(530/	3500)])	*	((rpm/	3500) factor[(850/	3500),(650/	3500)]))";
    		};
    
    		class Engine1_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_3.wav", 0.1, 1};
    			frequency = "0.9	+	((rpm/	3500) factor[(660/	3500),(1130/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(((rpm/	3500) factor[(650/	3500),(840/	3500)])	*	((rpm/	3500) factor[(1130/	3500),(940/	3500)]))";
    		};
    
    		class Engine2_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_4.wav", 0.1, 1};
    			frequency = "0.9	+	((rpm/	3500) factor[(930/	3500),(1340/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(((rpm/	3500) factor[(1000/	3500),(1130/	3500)])	*	((rpm/	3500) factor[(1340/	3500),(1200/	3500)]))";
    		};
    
    		class Engine3_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_6.wav", 0.1, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(1200/	3500),(1620/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(((rpm/	3500) factor[(1100/	3500),(1300/	3500)])	*	((rpm/	3500) factor[(1600/	3500),(1400/	3500)]))";
    		};
    
    		class Engine4_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_8.wav", 0.1, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(1400/	3500),(2000/	3500)]) *0.2";
    			volume = "engineOn*(1-camPos)*(((rpm/	3500) factor[(1300/	3500),(1600/	3500)])	*	((rpm/	3500) factor[(2000/	3500),(1700/	3500)]))";
    		};
    
    		class Engine5_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_9.wav", 0.1, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(1700/	3500),(2250/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(((rpm/	3500) factor[(1600/	3500),(2000/	3500)])	*	((rpm/	3500) factor[(2250/	3500),(2050/	3500)]))";
    		};
    
    		class Engine6_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_11.wav", 0.1, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(2050/	3500),(2600/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(((rpm/	3500) factor[(1900/	3500),(2250/	3500)])	*	((rpm/	3500) factor[(2600/	3500),(2400/	3500)]))";
    		};
    
    		class Engine7_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_12.wav", 0.1, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(2400/	3500),(3050/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(((rpm/	3500) factor[(2300/	3500),(2600/	3500)])	*	((rpm/	3500) factor[(3050/	3500),(2650/	3500)]))";
    		};
    
    		class Engine8_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_14.wav", 0.1, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(2650/	3500),(3500/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*((rpm/	3500) factor[(2400/	3500),(3200/	3500)])";
    		};
    
    		class IdleThrust_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_idle_exhaust.wav", db0, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(100/	3500),(600/	3500)])*0.15";
    			volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(100/	3500),(200/	3500)])	*	((rpm/	3500) factor[(530/	3500),(380/	3500)]))";
    		};
    
    		class EngineThrust_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_2_exhaust.wav", db0, 1};
    			frequency = "0.9	+	((rpm/	3500) factor[(380/	3500),(840/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(380/	3500),(530/	3500)])	*	((rpm/	3500) factor[(850/	3500),(650/	3500)]))";
    		};
    
    		class Engine1_Thrust_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_3_exhaust.wav", db0, 1};
    			frequency = "0.9	+	((rpm/	3500) factor[(660/	3500),(1130/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(650/	3500),(840/	3500)])	*	((rpm/	3500) factor[(1130/	3500),(940/	3500)]))";
    		};
    
    		class Engine2_Thrust_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_4_exhaust.wav", db0, 1};
    			frequency = "0.9	+	((rpm/	3500) factor[(930/	3500),(1340/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(1000/	3500),(1130/	3500)])	*	((rpm/	3500) factor[(1340/	3500),(1200/	3500)]))";
    		};
    
    		class Engine3_Thrust_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_6_exhaust.wav", db0, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(1200/	3500),(1620/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(1100/	3500),(1300/	3500)])	*	((rpm/	3500) factor[(1600/	3500),(1400/	3500)]))";
    		};
    
    		class Engine4_Thrust_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_8_exhaust.wav", db0, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(1400/	3500),(2000/	3500)]) *0.2";
    			volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(1300/	3500),(1600/	3500)])	*	((rpm/	3500) factor[(2000/	3500),(1700/	3500)]))";
    		};
    
    		class Engine5_Thrust_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_9_exhaust.wav", db0, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(1700/	3500),(2250/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(1600/	3500),(2000/	3500)])	*	((rpm/	3500) factor[(2250/	3500),(2050/	3500)]))";
    		};
    
    		class Engine6_Thrust_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_11_exhaust.wav", db0, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(2050/	3500),(2600/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(1900/	3500),(2250/	3500)])	*	((rpm/	3500) factor[(2600/	3500),(2400/	3500)]))";
    		};
    
    		class Engine7_Thrust_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_12_exhaust.wav", db0, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(2400/	3500),(3050/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/	3500) factor[(2300/	3500),(2600/	3500)])	*	((rpm/	3500) factor[(3050/	3500),(2650/	3500)]))";
    		};
    
    		class Engine8_Thrust_int {
    			sound[] = {"A3\Sounds_F\vehicles\soft\offroad\landrover_int_rpm_14_exhaust.wav", db0, 1};
    			frequency = "0.95	+	((rpm/	3500) factor[(2650/	3500),(3500/	3500)])*0.2";
    			volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/	3500) factor[(2400/	3500),(3200/	3500)])";
    		};
    
    		class Movement {
    			sound = "soundEnviron";
    			frequency = "1";
    			volume = "0";
    		};
    
    		class TiresRockOut {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_rock_final_2.wav", 0.1, 1.0, 120};
    			frequency = "1";
    			volume = "camPos*rock*(speed factor[2, 20])";
    		};
    
    		class TiresSandOut {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-sand1.wav", 0.1, 1.0, 120};
    			frequency = "1";
    			volume = "camPos*sand*(speed factor[2, 20])";
    		};
    
    		class TiresGrassOut {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_road_final_1.wav", 0.1, 1.0, 120};
    			frequency = "1";
    			volume = "camPos*grass*(speed factor[2, 20])";
    		};
    
    		class TiresMudOut {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-mud2.wav", 0.1, 1.0, 120};
    			frequency = "1";
    			volume = "camPos*mud*(speed factor[2, 20])";
    		};
    
    		class TiresGravelOut {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_rock_final_2.wav", db-10, 1.0, 120};
    			frequency = "1";
    			volume = "camPos*gravel*(speed factor[2, 20])";
    		};
    
    		class TiresAsphaltOut {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_road_final_1.wav", 0.281838, 1.0, 120};
    			frequency = "1";
    			volume = "camPos*asphalt*(speed factor[2, 20])";
    		};
    
    		class NoiseOut {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_soft_ext_1.wav", 0.1, 1.0, 120};
    			frequency = "1";
    			volume = "camPos*(damper0 max 0.02)*(speed factor[0, 8])";
    		};
    
    		class TiresRockIn {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_rock_final_2.wav", 0.0177828, 1.0};
    			frequency = "1";
    			volume = "(1-camPos)*rock*(speed factor[2, 20])";
    		};
    
    		class TiresSandIn {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-sand2.wav", 0.0177828, 1.0};
    			frequency = "1";
    			volume = "(1-camPos)*sand*(speed factor[2, 20])";
    		};
    
    		class TiresGrassIn {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_road_final_1.wav", 0.0177828, 1.0};
    			frequency = "1";
    			volume = "(1-camPos)*grass*(speed factor[2, 20])";
    		};
    
    		class TiresMudIn {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-mud2.wav", 0.0177828, 1.0};
    			frequency = "1";
    			volume = "(1-camPos)*mud*(speed factor[2, 20])";
    		};
    
    		class TiresGravelIn {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_rock_final_2.wav", db-37, 1.0};
    			frequency = "1";
    			volume = "(1-camPos)*gravel*(speed factor[2, 20])";
    		};
    
    		class TiresAsphaltIn {
    			sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_road_final_1.wav", 0.0177828, 1.0};
    			frequency = "1";
    			volume = "(1-camPos)*asphalt*(speed factor[2, 20])";
    		};
    
    		class NoiseIn {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_soft_int_1.wav", 0.0177828, 1.0};
    			frequency = "1";
    			volume = "(damper0 max 0.03)*(speed factor[0, 8])*(1-camPos)";
    		};
    
    		class breaking_ext_road {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04.wav", db0, 1, 100};
    			frequency = 1;
    			volume = "engineOn*camPos*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 10])";
    		};
    
    		class acceleration_ext_road {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100};
    			frequency = 1;
    			volume = "engineOn*camPos*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])";
    		};
    
    		class turn_left_ext_road {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100};
    			frequency = 1;
    			volume = "engineOn*camPos*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])";
    		};
    
    		class turn_right_ext_road {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100};
    			frequency = 1;
    			volume = "engineOn*camPos*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])";
    		};
    
    		class breaking_ext_dirt {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04.wav", db0, 1, 100};
    			frequency = 1;
    			volume = "engineOn*camPos*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 10])";
    		};
    
    		class acceleration_ext_dirt {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100};
    			frequency = 1;
    			volume = "engineOn*camPos*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])";
    		};
    
    		class turn_left_ext_dirt {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100};
    			frequency = 1;
    			volume = "engineOn*camPos*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])";
    		};
    
    		class turn_right_ext_dirt {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02.wav", db0, 1, 100};
    			frequency = 1;
    			volume = "engineOn*camPos*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])";
    		};
    
    		class breaking_int_road {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int.wav", db0, 1};
    			frequency = 1;
    			volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 6])";
    		};
    
    		class acceleration_int_road {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1};
    			frequency = 1;
    			volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])";
    		};
    
    		class turn_left_int_road {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1};
    			frequency = 1;
    			volume = "engineOn*(1-camPos)*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])";
    		};
    
    		class turn_right_int_road {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1};
    			frequency = 1;
    			volume = "engineOn*(1-camPos)*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])";
    		};
    
    		class breaking_int_dirt {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04_int.wav", db0, 1};
    			frequency = 1;
    			volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 6])";
    		};
    
    		class acceleration_int_dirt {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1};
    			frequency = 1;
    			volume = "engineOn*(1-camPos)*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])";
    		};
    
    		class turn_left_int_dirt {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1};
    			frequency = 1;
    			volume = "engineOn*(1-camPos)*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])";
    		};
    
    		class turn_right_int_dirt {
    			sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_02_int.wav", db0, 1};
    			frequency = 1;
    			volume = "engineOn*(1-camPos)*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])";
    		};
    	};
    
    	class RenderTargets {
    		class LeftMirror {
    			renderTarget = "rendertarget0";
    
    			class CameraView1 {
    				pointPosition = "PIP0_pos";
    				pointDirection = "PIP0_dir";
    				renderQuality = 2;
    				renderVisionMode = 0;
    				fov = 0.7;
    			};
    		};
    
    		class IntMirror {
    			renderTarget = "rendertarget1";
    
    			class CameraView1 {
    				pointPosition = "PIP1_pos";
    				pointDirection = "PIP1_dir";
    				renderQuality = 2;
    				renderVisionMode = 0;
    				fov = 0.7;
    			};
    		};
    	};
    	driverLeftHandAnimName = "drivewheel";
    	driverRightHandAnimName = "drivewheel";
    	thrustDelay = 0.1;
    	brakeIdleSpeed = 0.78;
    	maxSpeed = 160;	// max speed on level road, km/h
    	fuelCapacity = 45;
    	wheelCircumference = 2.805;
    	antiRollbarForceCoef = 0;
    	antiRollbarForceLimit = 40;
    	antiRollbarSpeedMin = 2;
    	antiRollbarSpeedMax = 50;
    	idleRpm = 900;
    	redRpm = 3500;
    
    	class complexGearbox {
    		GearboxRatios[] = {"R1", -5.367, "N", 0, "D1", 5.367, "D2", 3.67, "D3", 2.238, "D4", 1.00, "D5", 0.8};
    		TransmissionRatios[] = {"High", 5.0};
    		gearBoxMode = "auto";
    		moveOffGear = 1;
    		driveString = "D";
    		neutralString = "N";
    		reverseString = "R";
    		gearUpMaxCoef = 0.8;
    		gearDownMaxCoef = 0.5;
    		gearUpMinCoef = 0.45;
    		gearDownMinCoef = 0.15;
    		transmissionDelay = 1;
    	};
    	simulation = "carx";
    	dampersBumpCoef = 3.0;
    	differentialType = "rear_limited";
    	frontRearSplit = 0.5;
    	frontBias = 1.5;
    	rearBias = 1.5;
    	centreBias = 1.3;
    	clutchStrength = 200.0;
    	enginePower = 100;
    	maxOmega = 900;
    	peakTorque = 900;
    	dampingRateFullThrottle = 0.1;
    	dampingRateZeroThrottleClutchEngaged = 0.35;
    	dampingRateZeroThrottleClutchDisengaged = 0.35;
    	torqueCurve[] = {{0.0, 0.0}, {0.25, 0.65}, {0.3, 0.8}, {0.5, 0.95}, {0.7, 1.0}, {0.8, 0.9}, {0.9, 0.8}, {1.0, 0.5}};
    	changeGearMinEffectivity[] = {0.95, 0.15, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95};
    	switchTime = 0.05;
    	latency = 0.2;
    
    	class Wheels {
    		class LF {
    			boneName = "wheel_1_1_damper";
    			steering = 1;
    			side = "left";
    			center = "wheel_1_1_axis";
    			boundary = "wheel_1_1_bound";
    			width = 0.5;
    			mass = 30;
    			MOI = 2.8;
    			dampingRate = 0.5;
    			maxBrakeTorque = 6000;
    			maxHandBrakeTorque = 6000;
    			suspTravelDirection[] = {0, -1, 0};
    			suspForceAppPointOffset = "wheel_1_1_axis";
    			tireForceAppPointOffset = "wheel_1_1_axis";
    			maxCompression = 0.3;
    			mMaxDroop = 0.1;
    			sprungMass = 300;
    			springStrength = 50000;
    			springDamperRate = 3400;
    			longitudinalStiffnessPerUnitGravity = 10000;
    			latStiffX = 25;
    			latStiffY = 180;
    			frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}};
    		};
    
    		class LR : LF {
    			boneName = "wheel_1_2_damper";
    			steering = 0;
    			center = "wheel_1_2_axis";
    			boundary = "wheel_1_2_bound";
    			suspForceAppPointOffset = "wheel_1_2_axis";
    			tireForceAppPointOffset = "wheel_1_2_axis";
    			maxHandBrakeTorque = 0;
    			frictionVsSlipGraph[] = {{0, 1}, {0.5, 0.75}, {1, 0.5}};
    		};
    
    		class RF : LF {
    			boneName = "wheel_2_1_damper";
    			center = "wheel_2_1_axis";
    			boundary = "wheel_2_1_bound";
    			suspForceAppPointOffset = "wheel_2_1_axis";
    			tireForceAppPointOffset = "wheel_2_1_axis";
    			steering = 1;
    			side = "right";
    			frictionVsSlipGraph[] = {{0, 1}, {0.5, 1.0}, {1, 1}};
    		};
    
    		class RR : RF {
    			boneName = "wheel_2_2_damper";
    			steering = 0;
    			center = "wheel_2_2_axis";
    			boundary = "wheel_2_2_bound";
    			suspForceAppPointOffset = "wheel_2_2_axis";
    			tireForceAppPointOffset = "wheel_2_2_axis";
    			maxHandBrakeTorque = 0;
    			frictionVsSlipGraph[] = {{0, 1}, {0.5, 0.75}, {1, 0.5}};
    		};
    	};
    
    	class Exhausts {
    		class Exhaust1 {
    			position = "exhaust1_pos";
    			direction = "exhaust1_dir";
    			effect = "ExhaustEffectOffroad";
    		};
    
    		class Exhaust2 {
    			position = "exhaust2_pos";
    			direction = "exhaust2_dir";
    			effect = "ExhaustEffectOffroad";
    		};
    	};
    
    	class Damage {
    		tex[] = {};
    		mat[] = {"A3\soft_F\Offroad\Data\offroad_ext.rvmat", "A3\soft_F\Offroad\Data\offroad_ext_damage.rvmat", "A3\soft_F\Offroad\Data\offroad_ext_destruct.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_base.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_base_damage.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_base_destruct.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_board.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_board_damage.rvmat", "A3\soft_F\Offroad\Data\Offroad_int_board_destruct.rvmat", "A3\soft_F\Offroad\Data\Offroad_ext_plastic.rvmat", "A3\soft_F\Offroad\Data\Offroad_ext_damage.rvmat", "A3\soft_F\Offroad\Data\Offroad_ext_destruct.rvmat", "A3\data_f\glass_veh.rvmat", "A3\data_f\Glass_veh_damage.rvmat", "A3\data_f\Glass_veh_damage.rvmat", "A3\data_f\glass_veh_int.rvmat", "A3\data_f\Glass_veh_damage.rvmat", "A3\data_f\Glass_veh_damage.rvmat"};
    	};
    
    	class Reflectors {
    		class Left {
    			color[] = {0.75, 0.75, 0.85};
    			ambient[] = {0.0005, 0.0005, 0.0005};
    			position = "L svetlo";
    			direction = "konec L svetla";
    			hitpoint = "L svetlo";
    			selection = "L svetlo";
    			size = 1;
    			innerAngle = 35;
    			outerAngle = 180;
    			coneFadeCoef = 40;
    			intensity = 400;
    			useFlare = 0;
    			dayLight = 0;
    			flareSize = 0.75;
    
    			class Attenuation {
    				start = 1;
    				constant = 2.0;
    				linear = 0.0;
    				quadratic = 15.0;
    			};
    		};
    
    		class Right : Left {
    			position = "P svetlo";
    			direction = "konec P svetla";
    			hitpoint = "P svetlo";
    			selection = "P svetlo";
    		};
    
    		class Right2 : Right {
    			position = "R_light_flare";
    			useFlare = 1;
    		};
    
    		class Left2 : Left {
    			position = "L_light_flare";
    			useFlare = 1;
    		};
    	};
    	aggregateReflectors[] = {{"Left", "Right", "Left2", "Right2"}};
    };
    
    class DYN_OffRoad_Police : Offroad_Base
    {
    	displayname = "Police car";
    
    	_generalMacro = "C_Offroad_01_F";
    	scope = public;
    	side = TCivilian;
    	faction = CIV_F;
    	accuracy = 1.25;	// accuracy needed to recognize type of this target
    
    	class Turrets {};
    
    	class EventHandlers : EventHandlers {
    		init = "(_this select 0) animate [""HidePolice"", 0];(_this select 0) setObjectTexture [0,""\A3\soft_F\Offroad_01\Data\Offroad01_ext_BASE02_CO.paa""];(_this select 0) setObjectTexture [1,""\A3\soft_F\Offroad_01\Data\Offroad01_ext_BASE03_CO.paa""]; (_this select 0) execVM ""dynrace\vehicles\scripts.sqf""";
    	};
    };
    };
    
    
    

    I then added this file to the description.ext:

    #include "dynrace\vehicles\cfgVehicles.cpp"

    Folder structure is fine, not errors when loading. When I try to create the vehicle now all I get is:

    Cannot create non-ai vehicle DYN_OffRoad_Police,

    As far as I can tell everything is correct. Or do I have to create an "Addon" for this in order to make it work (which would be rather strange in my opinion). All I'm trying to achieve is make a faster version of an existing vehicle with some lights. I know the lights can be done ingame but the increased speed cannot.


  6. I created a button and I'd like to use this button for a couple of actions.

    	class BtnAction : MyButton
    	{
    		idc = 5000;
    		text = "Vote";
    		onButtonClick = "";
    		x = 0.1; y = 0.1;
    		w = 0.20;
    		h = 0.04;
    	};
    

    So the idea is I have a list of action and I want to create an button for each action. The thing is that my script will be used by others so the amount of actions can vary. Is there a way (script) to create multiple buttons on a display with a different "setting" so you can distinguish them upon the buttonclick?

    So I sorta want this:

    _actions = [["Spawn unit","call fncSpawnUnit;"],
    ["Spawn vehicle","call fncSpawnVehicle"],
    ["",""]];
    
    _i = 0;
    {
      (findDisplay 46) createDisplay "BtnAction";
      _theCreatedButton = ????
      _pos = ctrlPosition _theCreatedButton;
      _newPos = [_pos select 0, (_pos select 1 + (_pos select 3 + 0.02) * _i), _pos select 2, _pos select 3];
      _theCreatedButton ctrlSetPosition _newPos;
      ctrlSetText [_theCreatedButton, _x select 0];
      _theCreatedButton ctrlAddEventHandler ["onButtonClick",_x select 1];
      _i = _i +1;
    } foreach _actions;
    
    

    There's probably more then one thing wrong with this code but if anyone could help me in the right direction I would really appreciate that. I used this tutorial for reference but it's really outdated (at least that's the general idea I get out of it).

    Also another question, what is the IDC of the MAP? I'd like to create the display on top of the map (you get the idea). This way I don't have to open/close the display each time the map is opened/closed (at least that is how I think it works).


  7. If it's actually UNITS entering the statement you had should work:

    _spotFriendlies setTriggerStatements ["{_x in thisList}foreach EOS_Players","",""];

    If the units are actually inside a vehicle it won't because thisList will contain a (or more) vehicles. Also the var player is only set localy if a isDedicated = false.

    So if you also want the trigger to check for units inside vehicles you would also have to check the cargo of each thisList item.

    I can fix the script, i'm not sure tho wheter it should fire if every unit is inside the trigger area or if one of them (or more) is inside it.


  8. So I was going to use the function onMapSingleClick in one of my missions.

    I was wondering tho (and tried to search but couldn't find anything on it). It basically works the same as onEachFrame, but that was replaced (or well superseeded) by addMissionEventHandler ["Draw3D",~.

    The reason for this was that this way if script makers create a script using it it wouldn't be overwritten by a custom mission using it.

    Does anyone know of there's a similar thing for onMapSingleClick? And does anyone know any other addMissionEventHandler bindings, the wiki has some rather bad documentation about it.


  9. I am at a los. I can't seem to figure out how the positioning of this function works.

    I want a piece of text at the spot where hints are. I previously used hints to output a timer but since they gave it a sound that's not really an option anymore.

    What I have (but is not working).

    _text = "<t align='right' size='1'>Test</t>";
    [_text, safezoneX + 0.1 * safezoneW, safezoneY + safezoneW - 0.3, 1, 0] spawn BIS_fnc_dynamicText;	
    

    Also can anyone enlighten me about the 6th parameter:

    _this select 6: (Optional) Resource layer

    Can I just use a random number there so another spawn of BIS_fnc_dynamicText won't destroy the first handle?


  10. So I was wondering. If I use this:

    VehicleGroup = VehicleGroup + _AVehicle;
    publicVariable "VehicleGroup ";
    

    Does this send the whole vehicle array over the network or just something like the netId? And if I use that array on a client will it actually enumerate the vehicles or like a copy of them.

    For example:

    //Server
    VehicleGroup = VehicleGroup + _AVehicle;
    publicVariable "VehicleGroup ";
    
    //Client
    {
      if(_x == MYVEHICLE) then //MYVEHICLE is just a symbolic meaning
     {
       _x setPos [0,0,0];
      }
    } foreach VehicleGroup ;
    

    Will the actual vehicle pos be set on the client (if that's where the vehicle is local ofcourse), or not because it's a publicVariabled var.

    To get an idea why I ask the question:

    Will above work or should I go with an implementation like this:

    VehicleGroup = VehicleGroup + (netId _AVehicle);
    publicVariable "VehicleGroup ";
    

    And then do a local lookup based on the netId on the clients (which then has some overhead because of the lookup).

    Second question:

    What if I use setVariable like this:

    player setVariable ["currentVehicle", _vehicle];
    

    Is that actually efficient? And if I use getVariable do I actually have the vehicle or like a copy of it?


  11. you don't need the then behind the do.

    Your waiuntil does the same as my function with the difference that your's checks if the player is IN a vehicle where mine checks if it's in the specified vehicle.

    And waituntil is a bigger performance hit (atleast that's whay I read somewhere I believe) that's why I check each second.


  12. In your situation I would use a case:

    _testsp == floor(random 5);
    switch (_testsp) do
    {
    case 0:
    {
    	box setPos [ getPos Destroyer select 0, getPos Destroyer select 1, (getPos Destroyer select 2) -29];
           box setDir 0;
    };
    case 1:
    {
    	box setPos [ getPos Osprey select 0, getPos Osprey select 1, (getPos Osprey select 2) -7.5];
           box setDir 45;
    };
    //etc
    };

    Also random creates a number witch can also be 0.1, or 2.34343 so you should use floor as I did.

    floor(random 5) = 0,1,2,3,4

    See http://community.bistudio.com/wiki/random


  13. Unfortunatly you cannot remove those predefined action. If you want a player to remain inside a vehicle for a period of time you could script it.

    playerMustStayInVehicle = true;
    while { playerMustStayInVehicle } do
    {
    if(vehicle player != thevehicle)
    {
    	player moveInDriver thevehicle;
    };
           sleep 1;
    };
    

    And you can set to false when the check should stop.


  14. make a new file and call it removegear.sqf

    removegear.sqf

    removeAllWeapons _this;
    removeAllAssignedItems _this;
    removeAllContainers _this;
    _this addUniform "U_B_HeliPilotCoveralls";
    _this addWeapon "ItemMap";
    _this addWeapon "ItemCompass";
    _this addWeapon "ItemRadio";
    _this addWeapon "ItemWatch";
    _this addWeapon "ItemGPS";
    _this addItem "FirstAidKit";
    _this addItem "FirstAidKit";
    _this addHeadgear "H_CrewHelmetHeli_B";
    _this addVest "V_TacVest_oli";
    _this addMagazine ["16Rnd_9x21_Mag", 16];
    _this addMagazine ["16Rnd_9x21_Mag", 16];
    _this addMagazine ["16Rnd_9x21_Mag", 16];
    _this addMagazine ["16Rnd_9x21_Mag", 16];
    _this addMagazine ["16Rnd_9x21_Mag", 16];
    _this addWeapon "hgun_P07_snds_F";
    

    and annother script called unitgearHandle.sqf

    unitgearHandle.sqf

    _player = _this;
    waitUntil { (alive player) };
    _player execVM "removegear.sqf";
    while { true } do
    {
       //Waits till player dies
       waitUntil { !(alive player) };
       //Player died, wait till he's back alive
       waitUntil { (alive player) };
    
      _player execVM "removegear.sqf";
    }; 
    

    Then in the missions init.sqf (this makes sure everyone joining will have this script executed). Now you don't need anything anymore in the unit's init field.

    player execVM "unitgearHandle.sqf";


  15. You can either save the loadout at intervals so you respawn with the same gear you had when you died:

    http://forums.bistudio.com/showthread.php?148577-GET-SET-Loadout-(saves-and-loads-pretty-much-everything)

    Or you use a script like this:

    while { true } do
    {
    //Waits till player dies
    waitUntil { !(alive player) };
    //Player died, wait till he's back alive
    waitUntil { (alive player) };
    //Insert your gear script here:
    };
    

×