giorox 1 Posted February 14, 2013 I have recently been working on my first ever addon, it consists of a land based vertical missile launcher that can hold up to 15 individual missiles, now i have both models done and properly working LODs and so on. My current problem is, i have no knowledge, at all, of configs for addons, and i currently face this huge problem in my way that stops me from completing my first ever addon :D What i ask from the great ArmA community, is help on this matter, what i wanted to do is have a land based missile launcher that, when approached should give you the "Ballistic/Artillery Computer" option, after setting a target on map, you clicked fire, and the missile would be fired 90 degrees from the tube (straight up), and have a sorts of parabollic flight towards the specified target. Though, i have no idea on how this would need to be phrased when it comes to config files :S Thank you for your help. Share this post Link to post Share on other sites
mr burns 132 Posted February 19, 2013 Best bet would be inheriting the standard MLRS onto your new object, just change model and name, try & see if it works. If it does, go on seperating your addon from base MLRS values, make your own ammo classes etc. (bit of work, bleeding eyes..) If it doesn´t work, jump right to bleeding eyes because theres alot of reading ahead :p I´m not exactly sure what would need being changed or if it worked at all, but heres some config mashup with all original MLRS entries (most of it commented out, just pasted the whole thing over for you to get the big picture) - Use notepad++ and set its languages to c++ while working on this file, it´ll highlight all commented out spaces in green (those parts aren´t gonna be read by the game, hence original values from MLRS will be used). class CfgPatches { class new_addon { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"CATracked","CATracked2"}; }; }; class CfgVehicles { class MLRS; class New_Missile_Thingie: MLRS { scope = 2; side = 1; faction = "USMC"; displayName = "M270 MLRS"; vehicleClass = "Armored"; model = "ca\Tracked_E\us_m270mlrs\MLRS"; /* icon = "\Ca\tracked2\Data\UI\Icon_mlrs_ca.paa"; picture = "\Ca\tracked2\Data\UI\Picture_m270mlrs_ca.paa"; mapSize = 9; accuracy = 0.7; wheelCircumference = 1.991; threat[] = {1,1,0.3}; armor = 160; damageResistance = 0.02552; cost = 4e+006; maxSpeed = 72; supplyRadius = 5; tracksSpeed = -0.5; commanding = 2; crew = "USMC_Soldier_Crew"; cargoAction[] = {"HMMWV_Cargo01"}; typicalCargo[] = {"USMC_Soldier_Crew","USMC_Soldier_Crew","USMC_Soldier_Crew"}; transportSoldier = 1; getInAction = "GetInHigh"; getOutAction = "GetOutHigh"; cargoGetInAction[] = {"GetInHigh"}; cargoGetOutAction[] = {"GetOutHigh"}; hideWeaponsCargo = 1; driverAction = "MLRS_Driver"; driverInAction = "MLRS_Driver"; driverForceOptics = 0; driverOpticsModel = "\ca\Tracked\optika_tank_driver_west"; class Exhausts { class Exhaust1 { position = "vyfuk start"; direction = "vyfuk konec"; effect = "ExhaustsEffectBig"; }; }; hiddenSelections[] = {"Camo1"}; hiddenSelectionsTextures[] = {"\ca\tracked2\us_m270mlrs\data\mlrs_hull_woodland_co.paa"}; insideSoundCoef = 0.9; soundCrash[] = {"\ca\Tracked\Data\Sound\crash1",10,1}; soundGear[] = {"",5.62341e-005,1}; soundGetIn[] = {"ca\SOUNDS\Vehicles\Tracked\Other\int\int-tracked-getin-01",0.562341,1}; soundGetOut[] = {"ca\SOUNDS\Vehicles\Tracked\Other\ext\ext-tracked-getout-01",0.562341,1,60}; soundEngineOnInt[] = {"ca\sounds\Vehicles\Tracked\Other\int\int-tracked-start-01",0.562341,1}; soundEngineOnExt[] = {"ca\SOUNDS\Vehicles\Tracked\Other\ext\ext-tracked-start-01",0.562341,1,500}; soundEngineOffInt[] = {"ca\sounds\vehicles\Tracked\Other\int\int-tracked-stop-02.wss",0.562341,1}; soundEngineOffExt[] = {"ca\sounds\vehicles\Tracked\Other\ext\ext-tracked-stop-02.wss",0.562341,0.8,500}; buildCrash0[] = {"Ca\sounds\Vehicles\Crash\tank_building_01",0.707946,1,150}; buildCrash1[] = {"Ca\sounds\Vehicles\Crash\tank_building_02",0.707946,1,150}; buildCrash2[] = {"Ca\sounds\Vehicles\Crash\tank_building_03",0.707946,1,150}; buildCrash3[] = {"Ca\sounds\Vehicles\Crash\tank_building_04",0.707946,1,150}; soundBuildingCrash[] = {"buildCrash0",0.25,"buildCrash1",0.25,"buildCrash2",0.25,"buildCrash3",0.25}; WoodCrash0[] = {"Ca\sounds\Vehicles\Crash\tank_wood_01",0.707946,1,150}; WoodCrash1[] = {"Ca\sounds\Vehicles\Crash\tank_wood_02",0.707946,1,150}; WoodCrash2[] = {"Ca\sounds\Vehicles\Crash\tank_wood_03",0.707946,1,150}; WoodCrash3[] = {"Ca\sounds\Vehicles\Crash\tank_wood_04",0.707946,1,150}; soundWoodCrash[] = {"woodCrash0",0.25,"woodCrash1",0.25,"woodCrash2",0.25,"woodCrash3",0.25}; ArmorCrash0[] = {"Ca\sounds\Vehicles\Crash\tank_vehicle_01",0.707946,1,150}; ArmorCrash1[] = {"Ca\sounds\Vehicles\Crash\tank_vehicle_02",0.707946,1,150}; ArmorCrash2[] = {"Ca\sounds\Vehicles\Crash\tank_vehicle_03",0.707946,1,150}; ArmorCrash3[] = {"Ca\sounds\Vehicles\Crash\tank_vehicle_04",0.707946,1,150}; soundArmorCrash[] = {"ArmorCrash0",0.25,"ArmorCrash1",0.25,"ArmorCrash2",0.25,"ArmorCrash3",0.25}; class SoundEvents { class AccelerationIn { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\int-tracked-acce-02",1.12202,1}; limit = "0.15"; expression = "engineOn*(1-camPos)*2*gmeterZ*((speed factor[1.5, 5]) min (speed factor[5, 1.5]))"; }; class AccelerationOut { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\ext-tracked-acce-02",1,1,600}; limit = "0.15"; expression = "engineOn*camPos*2*gmeterZ*((speed factor[1.5, 5]) min (speed factor[5, 1.5]))"; }; }; class Sounds { class Engine { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\ext-tracked-engine-02",1.41254,1,1000}; frequency = "(randomizer*0.05+0.8)*rpm"; volume = "engineOn*camPos*(rpm factor[0.4, 0.9])"; }; class IdleOut { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\ext-tracked-idle-02",0.794328,1,350}; frequency = "1"; volume = "engineOn*camPos*(rpm factor[0.6, 0.15])"; }; class NoiseOut { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\noise2",0.316228,1,150}; frequency = "1"; volume = "camPos*(angVelocity max 0.04)*(speed factor[4, 15])"; }; class ThreadsOutH0 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\sherman_05",1.12202,1,250}; frequency = "1"; volume = "engineOn*camPos*(1-grass)*((rpm factor[0.3, 0.6]) min (rpm factor[0.6, 0.3]))"; }; class ThreadsOutH1 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\sherman_04",1.25893,1,250}; frequency = "1"; volume = "engineOn*camPos*(1-grass)*((rpm factor[0.5, 0.8]) min (rpm factor[0.8, 0.5]))"; }; class ThreadsOutH2 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\sherman_03",1.41254,1,280}; frequency = "1"; volume = "engineOn*camPos*(1-grass)*((rpm factor[0.65, 0.9]) min (rpm factor[0.9, 0.65]))"; }; class ThreadsOutH3 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\sherman_02",1.58489,1,300}; frequency = "1"; volume = "engineOn*camPos*(1-grass)*((rpm factor[0.8, 1.2]) min (rpm factor[1.2, 0.8]))"; }; class ThreadsOutH4 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\sherman_01",1.77828,1,330}; frequency = "1"; volume = "engineOn*camPos*(1-grass)*((rpm factor[1, 2.0]) min (rpm factor[2.0, 1]))"; }; class ThreadsOutS0 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\sherman_05",1,1,250}; frequency = "1"; volume = "engineOn*camPos*grass*((rpm factor[0.3, 0.6]) min (rpm factor[0.6, 0.3]))"; }; class ThreadsOutS1 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\sherman_04",1.12202,1,250}; frequency = "1"; volume = "engineOn*camPos*grass*((rpm factor[0.5, 0.8]) min (rpm factor[0.8, 0.5]))"; }; class ThreadsOutS2 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\sherman_03",1.25893,1,250}; frequency = "1"; volume = "engineOn*camPos*grass*((rpm factor[0.65, 0.9]) min (rpm factor[0.9, 0.65]))"; }; class ThreadsOutS3 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\sherman_02",1.58489,1,280}; frequency = "1"; volume = "engineOn*camPos*grass*((rpm factor[0.8, 1.2]) min (rpm factor[1.2, 0.8]))"; }; class ThreadsOutS4 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\ext\sherman_01",1.77828,1,300}; frequency = "1"; volume = "engineOn*camPos*grass*((rpm factor[1, 2.0]) min (rpm factor[2.0, 1]))"; }; class Movement { sound[] = {"",1,1}; frequency = "0"; volume = "0"; }; class EngineIn { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\int-tracked-engine-02",1,1}; frequency = "(randomizer*0.05+0.8)*rpm"; volume = "engineOn*(1-camPos)*(rpm factor[0.4, 1])"; }; class IdleIn { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\int-tracked-idle-02",0.707946,1}; frequency = "1"; volume = "engineOn*(1-camPos)*(rpm factor[0.6, 0.15])"; }; class NoiseIn { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\noise2",0.316228,1}; frequency = "1"; volume = "(1-camPos)*(angVelocity max 0.04)*(speed factor[4, 15])"; }; class ThreadsInH0 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\sherman_05",0.562341,1}; frequency = "1"; volume = "engineOn*(1-camPos)*(1-grass)*((rpm factor[0.3, 0.6]) min (rpm factor[0.6, 0.3]))"; }; class ThreadsInH1 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\sherman_04",0.630957,1}; frequency = "1"; volume = "engineOn*(1-camPos)*(1-grass)*((rpm factor[0.5, 0.8]) min (rpm factor[0.8, 0.5]))"; }; class ThreadsInH2 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\sherman_03",0.707946,1}; frequency = "1"; volume = "engineOn*(1-camPos)*(1-grass)*((rpm factor[0.65, 0.9]) min (rpm factor[0.9, 0.65]))"; }; class ThreadsInH3 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\sherman_02",0.794328,1}; frequency = "1"; volume = "engineOn*(1-camPos)*(1-grass)*((rpm factor[0.8, 1.2]) min (rpm factor[1.2, 0.8]))"; }; class ThreadsInH4 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\sherman_01",0.891251,1}; frequency = "1"; volume = "engineOn*(1-camPos)*(1-grass)*((rpm factor[1, 2.0]) min (rpm factor[2.0, 1]))"; }; class ThreadsInS0 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\sherman_05",0.562341,1}; frequency = "1"; volume = "engineOn*(1-camPos)*grass*((rpm factor[0.3, 0.6]) min (rpm factor[0.6, 0.3]))"; }; class ThreadsInS1 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\sherman_04",0.630957,1}; frequency = "1"; volume = "engineOn*(1-camPos)*grass*((rpm factor[0.5, 0.8]) min (rpm factor[0.8, 0.5]))"; }; class ThreadsInS2 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\sherman_03",0.707946,1}; frequency = "1"; volume = "engineOn*(1-camPos)*grass*((rpm factor[0.65, 0.9]) min (rpm factor[0.9, 0.65]))"; }; class ThreadsInS3 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\sherman_02",0.794328,1}; frequency = "1"; volume = "engineOn*(1-camPos)*grass*((rpm factor[0.8, 1.2]) min (rpm factor[1.2, 0.8]))"; }; class ThreadsInS4 { sound[] = {"ca\sounds\Vehicles\Tracked\Other\int\sherman_01",0.891251,1}; frequency = "1"; volume = "engineOn*(1-camPos)*grass*((rpm factor[1, 2.0]) min (rpm factor[2.0, 1]))"; }; }; class Turrets: Turrets { class MainTurret: MainTurret { weapons[] = {"MLRS"}; magazines[] = {"12Rnd_MLRS"}; gunnerAction = "HMMWV_Cargo01"; gunnerInAction = "HMMWV_Cargo01"; gunnerGetInAction = "GetInHigh"; gunnerGetOutAction = "GetOutHigh"; commanding = 1; minElev = 0; maxElev = 77; initElev = 0; startEngine = 0; class Turrets {}; gunnerOpticsModel = "\ca\Weapons\optika_empty"; gunnerOutOpticsModel = "\ca\Weapons\optika_empty"; stabilizedInAxes = 0; lockWhenVehicleSpeed = 5; }; }; class Damage { tex[] = {}; mat[] = {"Ca\Tracked_E\us_m270mlrs\Data\MLRS_glass.rvmat","Ca\Tracked_E\us_m270mlrs\Data\MLRS_glass_damage.rvmat","Ca\Tracked_E\us_m270mlrs\Data\MLRS_glass_damage.rvmat","Ca\Tracked_E\us_m270mlrs\Data\MLRS_hull.rvmat","Ca\Tracked_E\us_m270mlrs\Data\MLRS_hull_damage.rvmat","Ca\Tracked_E\us_m270mlrs\Data\MLRS_hull_destruct.rvmat","Ca\Tracked_E\us_m270mlrs\Data\MLRS_interior.rvmat","Ca\Tracked_E\us_m270mlrs\Data\MLRS_interior_damage.rvmat","Ca\Tracked_E\us_m270mlrs\Data\MLRS_interior_destruct.rvmat","Ca\Tracked_E\us_m270mlrs\Data\MLRS_tracks.rvmat","Ca\Tracked_E\us_m270mlrs\Data\MLRS_tracks_damage.rvmat","Ca\Tracked_E\us_m270mlrs\Data\MLRS_tracks_destruct.rvmat","Ca\Ca_E\data\default.rvmat","Ca\Ca_E\data\default.rvmat","Ca\Ca_E\data\default_destruct.rvmat"}; }; class Library { libTextDesc = "The M270 Multiple Launch Rocket System (M270 MLRS) is an unguided rocket artillery system. It is a very mobile unit well suited for the 'shoot-and-scoot' tactic.<br />The system is capable of firing guided or unguided projectiles to distances of 42 km; or ballistic missiles to distances of 300 km."; }; ARTY_MissionPrep[] = {"\ca\modules\arty\data\scripts\missionprep\ARTY_mobileMissionPrep.sqf"}; ARTY_MissionFinish[] = {"\ca\modules\arty\data\scripts\missionprep\ARTY_mobileMissionFinish.sqf"}; artilleryScanner = 1; ARTY_IsArtyVehicle = 0; class NVGMarkers { class NVGMarker01 { name = "nvg_marker"; color[] = {0.03,0.003,0.003,1}; ambient[] = {0.003,0.0003,0.0003,1}; brightness = 0.001; blinking = 1; }; }; */ }; }; /* class cfgWeapons { class MLRS: RocketPods { scope = 2; displayName = "MLRS"; type = 65536; modelOptics = ""; magazines[] = {"ARTY_12Rnd_227mmHE_M270","12Rnd_MLRS"}; sound[] = {"\ca\Sounds\weapons\cannon\RocketLauncher_Shot04_A",10,1,1100}; drySound[] = {"\ca\Sounds\weapons\cannon\Javelin_dry_v1",0.0001,1,10}; reloadMagazineSound[] = {"\ca\Sounds\weapons\cannon\flare_reload",0.000316228,1,20}; soundFly[] = {"\ca\Sounds\weapons\cannon\rocket_fly1",10,1.5,700}; recoil = "launcherBase"; soundContinuous = 0; soundBurst = 0; reloadTime = 0.8; aiRateOfFire = 10; aiRateOfFireDistance = 450; minRange = 50; midRange = 450; maxRange = 5000; cursorAim = "\ca\Weapons\Data\clear_empty"; cursor = "Rocket"; cursorSize = 1; modes[] = {"Single1","Single2","Single3","Burst1","Burst2","Burst3"}; class Single1: Mode_SemiAuto { displayName = "Semi (close)"; reloadTime = 0.8; burst = 1; sound[] = {"\ca\Sounds\weapons\cannon\RocketLauncher_Shot04_A",10,1,1100}; soundFly[] = {"\ca\Sounds\weapons\cannon\rocket_fly1",10,1.5,700}; minRange = 0; midRange = 0; maxRange = 0; artilleryDispersion = 0.01; artilleryCharge = 0.48; }; class Single2: Single1 { displayName = "Semi (medium)"; artilleryCharge = 0.69; }; class Single3: Single1 { displayName = "Semi (far)"; artilleryCharge = 1; }; class Burst1: Mode_Burst { showToPlayer = 0; reloadTime = 0.8; burst = 6; sound[] = {"\ca\Sounds\weapons\cannon\RocketLauncher_Shot04_A",10,1,1100}; soundFly[] = {"\ca\Sounds\weapons\cannon\rocket_fly1",10,1.5,700}; soundBurst = 0; minRange = 1570; minRangeProbab = 0.5; midRange = 3345; midRangeProbab = 0.7; maxRange = 6186; maxRangeProbab = 0.5; artilleryDispersion = 0.01; artilleryCharge = 0.48; }; class Burst2: Burst1 { showToPlayer = 0; displayName = "Burst (medium)"; minRange = 3243; minRangeProbab = 0.4; midRange = 6911; midRangeProbab = 0.6; maxRange = 12781; maxRangeProbab = 0.4; artilleryCharge = 0.69; }; class Burst3: Burst1 { showToPlayer = 0; displayName = "Burst (far)"; minRange = 6813; minRangeProbab = 0.3; midRange = 14517; midRangeProbab = 0.4; maxRange = 26847; maxRangeProbab = 0.3; artilleryCharge = 1; }; }; }; */ Hope this helps getting you started. Good luck! Share this post Link to post Share on other sites
giorox 1 Posted February 20, 2013 (edited) Thank you so very much, this will indeed help me. AS you've stated i do need to make new ammo classes, as this project uses it's own missiles and as such would need to cause myself some "bleeding eyes" :P Though the only problem i perceive with this, is the fact that my addon isn't a vehicle and is more of a static weapon with no Driver/Gunner/Passenger seats at all, but i'll see what i can do about that Though i will see as to what extent this will work (: ---------- Post added at 18:32 ---------- Previous post was at 18:05 ---------- Well i have just tried the above config, and came up with a few things. First: It seems like the game can't load the texture, this is an error that wasnt previously hapenning with a config that only ports the model into the game (DISREGARD, as this was an error on my part and not in the config itself) Second: First time in editor, at the touch of the character, the model wobbled in a crazy way and then landed sideways just a few centimeters off Third: Model has (as expected) options for Driver/Gunner/Passenger seats just like the MLRS Fourth: Artillery computer works although when fireing the fire position is always from the right side of the model (as expected since it was ported from MLRS) That's what i found so far, and when taking my experience with configs i can not perceive a very near fix for this, without otherwise outside help :P Thank you very much for your help nonetheless Edited February 20, 2013 by Giorox Share this post Link to post Share on other sites
granQ 293 Posted February 23, 2013 First, disregard Second, seems your geometry lod, and landcontact needs some work. Third, in config add hasdriver=false; even if static you probably want a gunner (so it can fire), but can change so you never see the get in. Forth, memory lod needs the correct points to define where it supposed to be. Fifth, any screens? :) Share this post Link to post Share on other sites
giorox 1 Posted February 23, 2013 (edited) First, disregardSecond, seems your geometry lod, and landcontact needs some work. Third, in config add hasdriver=false; even if static you probably want a gunner (so it can fire), but can change so you never see the get in. Forth, memory lod needs the correct points to define where it supposed to be. Fifth, any screens? :) I fixed my geometry lod, but since it was inheriting from a vehicle it was looking for land contact points, which my model has none as my idea is to not be a vehicle at all. I dont know if it's possible, but could i have so a sort of "Artillery Computer" actually appears within x radius of the launcher? Instead of having to fake a gunner seat so that it can be used? Regarding memory LOD points, would i just place the point at from where i want the missile to be fired correct? If so, do i have to name it something? And would it fire straight up? Also are there any guides or pointers as to how to create new ammo/weapon classes? Since i want to have a custom missile on this (: I'll be on the topic of screens real soon (: Edited February 23, 2013 by Giorox Share this post Link to post Share on other sites
alexboy 11 Posted February 28, 2013 (edited) to the landcontact.. its basically where on the model does it touch the ground, for example: you can put points half way up your model in the landcontact LOD and the object will be halfway into the ground... this LOD just specifies where the object will be touching the ground :)... for the artillery computer.... you possible can... i have no idea but the way i do aircraft for get in and everything... there should be some kind of memory point in memory you can make... then in the config you save it as "named memory point" and you can set up a radius for it.... getInRadius=1.5; or like class OpenRear { displayName="$STR_c130kJ_OR"; onlyforplayer = false; position="pos nose open"; radius=100; showWindow = 0; condition="this animationPhase ""ramp_b_full"" == 0"; statement = "[this] execVM ""\c130kJ\scr\back_rampdown.sqf"""; }; position is the memory point... and the radius is how far from it can the person see the action hope this helps ======== edit ============= for the ammo you could possibly do something like this class CfgAmmo { class BulletBase; class Some_bullet_name : BulletBase { hit=50;indirectHit=3;indirectHitRange=0.5; visibleFire=25; audibleFire=28; visibleFireTime=4; cost = 80; explosive = 0; airlock=1; laserLock=2; irLock=1; tracerColor[]={0.2, 0.8, 0.1, 0.04}; tracerColorR[]={0.2, 0.8, 0.1, 0.04}; }; class CfgMagazines { class VehicleMagazine; class some_magazine_name: VehicleMagazine { scope = 2; displayName = "mag_name"; ammo = "ammo_name"; count=480; initSpeed = 1080; }; class CfgWeapons { class MGun; class some_weapon_name: MGun { scope = 2; displayName="weapon_name"; displayNameMagazine="mag_name"; shortNameMagazine="20mm"; reloadTime=0.01; burst=6; autofire=1; flash = gunfire; flashSize = 0.1; recoil = Empty; multiplier=1; dispersion=0.01; soundContinuous=0; sound[]={\ca\Weapons\Data\Sound\M197_5shots_rotation_end,db25,1}; initSpeed=900; CanLock=2; optics = 1; aiDispersionCoefX = 0.8; aiDispersionCoefY = 0.8; magazines[]={3lb_20mm_M61A2}; minRange=1;minRangeProbab=0.10; midRange=1400;midRangeProbab=0.58; maxRange=3000;maxRangeProbab=0.04; maxLeadSpeed = 2000; }; sorry, couldnt find the spoiler thing to paste this stuff into... contact me if you need more help, ill do my best to try Edited February 28, 2013 by alexboy Share this post Link to post Share on other sites