Αplion 1122 Posted March 16, 2014 As many people asking me to help them on starting import some ArmA 2 default vehicles, I've decided to try making a tutorial about it (in two posts as there is a characters limit here). What is basically needed: - ArmA 3 Tools installed (Oxygen2 and AddonBuilder, from steam) - Open ArmA 2 samples - https://community.bistudio.com/wiki/Arma_2_Sample_Models - Original and installed copy of ArmA 2 and (maybe) OA expansion (as well as the rest of expansions in case you want to import any model belongs to them) - An "UnPbo" tool (as Mikero's "ExtractPbo.exe" file for example) - Basic knowledge of Oxygen2 use For this tutorial we'll try to import the HMMWV_M2 (HMMWV50.p3d) so the ArmA 2 samples file will be needed is titled as "A2SM_Data_APL". STEP #1 - Create your main working folder of your addon (you can name it as you like). - Into this main working folder, create another one named for this example "HMMWV" (inside this folder you will have your addon main 3D file so you can name it according its name). - Into "HMMWV" folder, create these three folders ... "data" - "penetration" and "weapons". - From ArmA 2 samples folder go to ... A2SM_Data_APL/Wheeled/CA/Wheeled/ ... find the "HMMWV50.p3d" and copy - paste it into your "HMMWV" folder (root - not inside any other folder). - Now open the copied "HMMWV50.p3d" into Oxygen2. - From Oxygen2 top menu go to ... Tools --> Mass Texture & Material Renaming (you will see a full list of files and their original location - path - needed for your addon) http://prntscr.com/31a700 - Now you must extract (unpbo) every original ArmA 2 pbo containing these files listed into "Mass Texture & Material Renaming" editor (we need that as the ArmA 2 samples does not contain the texture files). - Assuming that you have all needed original pbos extracted, you must now copy - paste what is listed into "Mass Texture & Material Renaming" to the appropriate folders of your addon (note : data to data, penetration to penetration and weapons to weapons folder - look at the path of each file. Also in place of any file with "TGA" extension you will find and copy - paste the "PAA" ones). - When you'll be ready, you have to replace the paths (one by one) using "Mass Texture & Material Renaming" editor ... to do that ... click (for example) on the first in list ca\data\data\default_flash_2pass.rvmat ... now right below we must put our path which must be YourMainAddonFolderName\HWMMV\data\default_flash_2pass.rvmat ... then hit "Rename" button and proceed to the next file (you will notice that each new path is now coloured in "black" into your list ... in case it is still coloured in "red" it means that either the path you are stating is wrong or you haven't pasted this file into your folder as described above). - When you'll finished with all paths your list must contains only black lines and you can close the "Mass Texture & Material Renaming" editor. Save your p3d file now. STEP #2 - Now the hard part ... open your YourMainAddonFolderName\HWMMV\data folder ... and using a text editor (Notepad++ preferably) you must change the paths in each .RVMAT file but also to find - copy - paste from their original locations all files refered into these .RVMAT files (example : open the "hmmwv_body.rvmat" ... note that first path is ca\wheeled\hmmwv\data\hmmwv_body_nohq.paa ... you must change it as YourMainAddonFolderName\HWMMV\data\hmmwv_body_nohq.paa but first you have to locate the "hmmwv_body_nohq.paa" from the original extracted ArmA 2 pbos and copy - paste it also into your YourMainAddonFolderName\HWMMV\data ... you must do that for each file and path into each one of the .RVMATs - Note that in case any of these paths will be wrong or any file will be missing, you will got errors in game) ... when you will be finished with all .RVMATs from "data" folder you have to do the same with .RVMATs located also into the "penetration" and "weapons" folders of your addon. In general ... all .RVMAT paths must reflect valid paths and files inside your addon. STEP #3 - So you have all files and paths sorted in your addon now ... ok lets go back to our "HMMWV50.p3d" now ... Proxies ... that is something we must change now ... and we need to do that in every LOD of our addon. - Starting from LOD 1 ... locate the proxies (they have the word "proxy" at the beggining and a path after that) ... now our goal is to change each proxy path to something similar from ArmA 3 (current proxies are from ArmA 2 default). Double click on first proxy and you will get a pop-up for its path and ID number ... the path should be now something like \CA\temp\proxies\UAZ\cargo01 and as I said we must change it to something similar from ArmA 3 proxies ... well I found that as more appropriate, so change that line to \a3\data_f\proxies\passenger_hunter_front\Cargo01 (now you know also which is the path of ArmA 3 proxies so I believe that it is good to extract them also just to know the paths for any futured addon you wish to make) ... After this line change, just press the "OK" button without any other change ... this proxy is now fine for our purpose. Lets try to the next proxy ... double click on that and you will get again the pop-up ... now the path should be \CA\temp\proxies\hmmwv\cargo01 (note that it is different than previous proxy) ... replace with this path \a3\data_f\proxies\passenger_hunter_back\Cargo01 and do the same also for the third "cargo" proxy. - Next proxy it is something called "damagewheel_3" ... this is a separate p3d file so you have to go to the A2SM_Data_APL/Wheeled/CA/Wheeled/data/damagewheel/ of the ArmA 2 samples folder and find the "damagewheel_3.p3d" ... copy and paste this file into your "YourMainAddonFolderName\HWMMV\" folder. Before anything else you must now open the "damagewheel_3.p3d" in Oxygen2 and change paths and files as described on STEP #1 (and STEP #2 for .RVMATs). When the "damagewheel_3.p3d" will be ready save it and return to "HMMWV50.p3d" ... lets continue with proxies ... - There are four "damagewheel_3" proxies with this line in their paths .. \CA\wheeled\data\damagewheel\damagewheel_3 ... now change each path as follow ... "\YourMainAddonFolderName\HMMWV\damagewheel_3" (note : do the same for each of the four proxies named "damagewheel_3"). - OK so far, so lets continue with next proxy ... double click on proxy named "Driver" ... the path is \CA\temp\proxies\hmmwv\driver ... change it to \a3\data_f\proxies\HEMTT\Driver and hit ok to close it ... next proxy ... double click on that one named "Gunner" ... its path should be \CA\temp\proxies\hmmwv50\gunner ... change it to \a3\data_f\proxies\gunner_standup01\Gunner and again hit ok. - There is a proxy named "flag_alone" ... double click on that proxy and you'll get the path \ca\wheeled\flag_alone ... change it to \a3\data_f\proxies\Flags\flag_alone - Finally there is another proxy we have to change (last one) ... find the "zasleh2" named proxy ... double click and the path should be \CA\weapons\zasleh2_proxy ... change it to \A3\Weapons_F\Data\zasleh2_proxy STEP #4 - Now we have changed all proxies but remember only for the LOD 1 (first lod) so lets do that for the rest but faster that time ... - Select all proxies from LOD 1 (use your CONTROL key and select them all) then press CONTROL+C to copy them ... Double click on LOD 2 and select all proxies from this lod ... hit DELETE to erase them and right click in the list ... choose "Delete Empty" ... when LOD 2 is empty from any proxies, press CONTROL+V from your keyboard to paste the proxies from LOD 1 to LOD 2 ... this LOD is now proxies ready also. - Repeat this last procedure for LODs 3 and 4 (not for the rest of the LODs for the moment as we'll handle these differently). - As LODs 1 to 4 are now proxies ready we must change also the paths from "View - Gunner" and "View - Cargo" LODs ... but as most of the times these LODs proxies position are different from the rest, we must do this on one by one basis instead pasting again from LOD 1 ... in order to make the procedure faster we'll follow this ... open "View - Gunner" LOD and find the proxies ... double click on first proxy named "Cargo" ... the path is \CA\temp\proxies\UAZ\cargo01 ... now press the drop down tab which contains this path and you will find all your previous paths from ArmA 3 (these from LOD 1) ... choose the \a3\data_f\proxies\passenger_hunter_front\Cargo01 path from drop down list and click "ok" ... follow the same procedure for all proxies in both "View - Gunner" and "View - Cargo" LODs ... by this way we'll get the appropriate proxies paths and at same time you will retain them in same position as originally was in these LODs. - After proxies work have been completed on "View - Gunner" and "View - Cargo" LODs we must finish the remain LODs, which are the "ShadowVolume" (0 - 1 and View Gunner) LODs and "Fire Geometry" LOD, ... You can copy - paste the proxies from LOD 1 again for replacing these LODs proxies (the procedure described above) but first note that some proxies are not needed for these LODs so you have to delete them after pasting LOD 1 proxies. - Now all proxies must be ok for each LOD of your addon so it is time to save the p3d. STEP #5 - Now we need to add PhysX into our p3d model ... but as this tutorial just explains the basic for import ... you have to read this ... https://community.bistudio.com/wiki/Arma_3_Cars_Config_Guidelines CONTINUING AT NEXT POST ... 5 Share this post Link to post Share on other sites
Αplion 1122 Posted March 16, 2014 (edited) .... CONTINUED ... STEP #6 - Assuming you have finished with PhysX LOD and memory points into your p3d file, lets continue with configs needed ... - Basically you need a model.cfg and a config.cpp ... these files must be placed into your YourMainAddonFolderName\HWMMV\ folder (together with your p3d) ... Now ... I believe that instead of point you to the locations of these original files, it will be better to give you my working files for this addon ... by that way it will be easier to understand, plus you will have something working as soon as you replace the paths inside them with your paths. My model.cfg file: #define BULLET_HIDE(x,from,count) class Bullet##x\ {\ type="hide";\ source="revolving";\ sourceAddress="mirror";\ selection=bullet##x;\ minValue=-1.000000;\ maxValue= 0.000000;\ hideValue=((count+x-from-2)/count)+0.00001;\ }; class Rotation { type = "rotation"; memory = 1; minValue = 0; maxValue = 1; angle0 = 0; angle1 = 1; }; class CfgSkeletons { class Default { isDiscrete = 1; skeletonInherit = ""; skeletonBones[] = {}; }; class Vehicle : Default {}; class Car : Vehicle { skeletonBones[]= { "drivewheel","", "wheel_1_1_damper_land","", "wheel_1_2_damper_land","", "wheel_1_3_damper_land","", "wheel_1_4_damper_land","", "wheel_2_1_damper_land","", "wheel_2_2_damper_land","", "wheel_2_3_damper_land","", "wheel_2_4_damper_land","", "wheel_1_1_damper","wheel_1_1_damper_land", "wheel_1_2_damper","wheel_1_2_damper_land", "wheel_1_3_damper","wheel_1_3_damper_land", "wheel_1_4_damper","wheel_1_4_damper_land", "wheel_2_1_damper","wheel_2_1_damper_land", "wheel_2_2_damper","wheel_2_2_damper_land", "wheel_2_3_damper","wheel_2_3_damper_land", "wheel_2_4_damper","wheel_2_4_damper_land", "wheel_1_1_steering","wheel_1_1_damper", "wheel_1_2_steering","wheel_1_2_damper", "wheel_1_3_steering","wheel_1_3_damper", "wheel_1_4_steering","wheel_1_4_damper", "wheel_2_1_steering","wheel_2_1_damper", "wheel_2_2_steering","wheel_2_2_damper", "wheel_2_3_steering","wheel_2_3_damper", "wheel_2_4_steering","wheel_2_4_damper", "wheel_1_1","wheel_1_1_steering", "wheel_1_2","wheel_1_2_steering", "wheel_1_3","wheel_1_3_steering", "wheel_1_4","wheel_1_4_steering", "wheel_2_1","wheel_2_1_steering", "wheel_2_2","wheel_2_2_steering", "wheel_2_3","wheel_2_3_steering", "wheel_2_4","wheel_2_4_steering", "wheel_1_1_unhide","wheel_1_1", "wheel_1_2_unhide","wheel_1_2", "wheel_1_3_unhide","wheel_1_3", "wheel_1_4_unhide","wheel_1_4", "wheel_2_1_unhide","wheel_2_1", "wheel_2_2_unhide","wheel_2_2", "wheel_2_3_unhide","wheel_2_3", "wheel_2_4_unhide","wheel_2_4", "wheel_1_1_hide","wheel_1_1", "wheel_1_2_hide","wheel_1_2", "wheel_1_3_hide","wheel_1_3", "wheel_1_4_hide","wheel_1_4", "wheel_2_1_hide","wheel_2_1", "wheel_2_2_hide","wheel_2_2", "wheel_2_3_hide","wheel_2_3", "wheel_2_4_hide","wheel_2_4", "OtocVez","", "OtocHlaven","OtocVez", "damageHide","", "damageVez","OtocVez", "damageHlaven","OtocHlaven", "ukaz_rychlo","", "ukaz_rychlo2","", "ukaz_rpm","", "mph","", "rpm","", "fuel","", "fuel_1","", "fuel_01","", "fuel_2","", "fuel_3","", "prop_01","", "prop_02","", "prop_2","", "prop_1","", "glass1","damageHide", "glass2","damageHide", "glass3","damageHide", "glass4","damageHide", }; }; class HMMWVSkeleton:Car { isDiscrete=1; skeletonInherit="Car"; skeletonBones[]= { "ammo_belt","OtocHlaven" }; }; class HMMWV_M2_Skeleton:HMMWVSkeleton { isDiscrete=1; skeletonInherit="HMMWVSkeleton"; skeletonBones[]= { "ammo_belt","OtocHlaven_Shake", "OtocHlaven_Shake","OtocHlaven", "bolt","OtocHlaven_Shake", "recoil","OtocHlaven_Shake", "charging_handle","OtocHlaven_Shake", "magazine","OtocHlaven_Shake", "feedtray_cover","OtocHlaven_Shake", "bullet001","bullet002", "bullet002","bullet003", "bullet003","bullet004", "bullet004","bullet005", "bullet005","bullet006", "bullet006","bullet007", "bullet007","bullet008", "bullet008","bullet009", "bullet009","bullet010", "bullet010","bullet011", "bullet011","bullet012", "bullet012","ammo_belt" }; }; }; class CfgModels { class Default { sectionsInherit = ""; sections[] = {}; skeletonName = ""; }; class Vehicle: Default { sections[] = { "cislo", "grupa", "side", "sektor", "clan", "clan_sign", "podsvit pristroju", "poskozeni", "L svetlo", "P svetlo", "zasleh" }; }; class Car: Vehicle { sectionsInherit="Vehicle"; sections[]= { "ammo", "sklo predni p", "sklo predni l", "zadni svetlo", "brzdove svetlo", "spz", "karoserie", "motor", "zbran", "vez", "zbytek", "clan", "clan_sign", "zasleh", "P svetlo", "L svetlo", "palivo", "glass1", "glass2", "glass3", "glass4" }; skeletonName="Car"; class Animations { // destruct START class damageHide { type="hide"; source="damage"; //damage //test selection="damageHide"; hideValue=1.0; }; class damageHideVez:damageHide { selection="OtocVez"; }; class damageHideHlaven:damageHide { selection="OtocHlaven"; }; // Wheels START // Wheels Complete Destruct START class wheel_1_1_destruct { type="hide"; selection="wheel_1_1_hide"; source="HitLFWheel"; minValue = 0; // upravit na 0.99 maxValue = 1; // upravit na 1.0 hidevalue = 0.99; }; class wheel_1_2_destruct:wheel_1_1_destruct {source="HitLBWheel";selection="wheel_1_2_hide";}; class wheel_1_3_destruct:wheel_1_1_destruct {source="HitLMWheel";selection="wheel_1_3_hide";}; class wheel_1_4_destruct:wheel_1_1_destruct {source="HitLF2Wheel";selection="wheel_1_4_hide";}; class wheel_2_1_destruct:wheel_1_1_destruct {source="HitRFWheel";selection="wheel_2_1_hide";}; class wheel_2_2_destruct:wheel_1_1_destruct {source="HitRBWheel";selection="wheel_2_2_hide";}; class wheel_2_3_destruct:wheel_1_1_destruct {source="HitRMWheel";selection="wheel_2_3_hide";}; class wheel_2_4_destruct:wheel_1_1_destruct {source="HitRF2Wheel";selection="wheel_2_4_hide";}; class wheel_1_1_destruct_unhide { type="hide"; selection="wheel_1_1_unhide"; source="HitLFWheel"; minValue = -1; // upravit na 0.99 maxValue = 0; // upravit na 1.0 hidevalue = 0.01; sourceAddress="mirror"; }; class wheel_1_2_destruct_unhide:wheel_1_1_destruct_unhide {source="HitLBWheel";selection="wheel_1_2_unhide";}; class wheel_1_3_destruct_unhide:wheel_1_1_destruct_unhide {source="HitLMWheel";selection="wheel_1_3_unhide";}; class wheel_1_4_destruct_unhide:wheel_1_1_destruct_unhide {source="HitLF2Wheel";selection="wheel_1_4_unhide";}; class wheel_2_1_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRFWheel";selection="wheel_2_1_unhide";}; class wheel_2_2_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRBWheel";selection="wheel_2_2_unhide";}; class wheel_2_3_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRMWheel";selection="wheel_2_3_unhide";}; class wheel_2_4_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRF2Wheel";selection="wheel_2_4_unhide";}; // Wheels Complete Destruct END #define DamageOffset 0.2 // Wheels Damage START class wheel_1_1_Damage:wheel_1_1_destruct { type="translation"; axis="Basic_Damper_Destruct_Axis"; memory=1; selection="wheel_1_1_damper_land"; source="HitLFWheel"; minValue = 0.0; maxValue = 1; offset0 = 0; offset1 = DamageOffset; }; class wheel_1_2_Damage:wheel_1_1_Damage {source="HitLBWheel";selection="wheel_1_2_damper_land";}; class wheel_1_3_Damage:wheel_1_1_Damage {source="HitLMWheel";selection="wheel_1_3_damper_land";}; class wheel_1_4_Damage:wheel_1_1_Damage {source="HitLF2Wheel";selection="wheel_1_4_damper_land";}; class wheel_2_1_Damage:wheel_1_1_Damage {source="HitRFWheel";selection="wheel_2_1_damper_land";}; class wheel_2_2_Damage:wheel_1_1_Damage {source="HitRBWheel";selection="wheel_2_2_damper_land";}; class wheel_2_3_Damage:wheel_1_1_Damage {source="HitRMWheel";selection="wheel_2_3_damper_land";}; class wheel_2_4_Damage:wheel_1_1_Damage {source="HitRF2Wheel";selection="wheel_2_4_damper_land";}; // animace damper smerem nahoru START class wheel_1_1_Damper_Damage_BackAnim:wheel_1_1_Damage {selection="wheel_1_1_damper";offset1 = -1*DamageOffset;}; class wheel_1_2_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitLBWheel";selection="wheel_1_2_damper";}; class wheel_1_3_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitLMWheel";selection="wheel_1_3_damper";}; class wheel_1_4_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitLF2Wheel";selection="wheel_1_4_damper";}; class wheel_2_1_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRFWheel";selection="wheel_2_1_damper";}; class wheel_2_2_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRBWheel";selection="wheel_2_2_damper";}; class wheel_2_3_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRMWheel";selection="wheel_2_3_damper";}; class wheel_2_4_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRF2Wheel";selection="wheel_2_4_damper";}; // animace damper smerem nahoru END // Wheels Damage END // Wheels END //Glass Damage START class Glass1_destruct { type="hide"; selection="glass1"; source="HitGlass1"; minValue = 0; // upravit na 0.99 maxValue = 1; // upravit na 1.0 hidevalue = 0.99; }; class Glass2_destruct:Glass1_destruct{selection="glass2";source="HitGlass2";}; class Glass3_destruct:Glass1_destruct{selection="glass3";source="HitGlass3";}; class Glass4_destruct:Glass1_destruct{selection="glass4";source="HitGlass4";}; //Glass Damage END // destruct END class IndicatorSpeed { animPeriod=0; type="rotation"; source="speed"; selection="ukaz_rychlo"; axis="osa_rychlo"; memory=0; minValue=0.000000; maxValue=16.670000; angle0=0.000000; angle1=2.879793; }; class IndicatorSpeed2 { type="rotation"; source="speed"; selection="ukaz_rychlo2"; axis="osa_rychlo2"; memory=0; animPeriod=0; minValue=0; maxValue=16.670000; angle0=0; angle1="rad -240"; }; class IndicatorRPM { animPeriod=0; type="rotation"; source="rpm"; selection="ukaz_rpm"; axis="osa_rpm"; memory=0; minValue=0.000000; maxValue=1.000000; angle0=0.000000; angle1=2.967060; }; class DrivingWheel: Rotation { source="drivingWheel"; selection="drivewheel"; axis="drivewheel_axis"; minValue=-1; maxValue=1; angle0=(rad -80); angle1=(rad 80); }; class TurnFrontWheelR { type="rotationY"; source="drivingWheel"; selection="wheel_2_1_steering"; axis="wheel_2_1_steering_axis"; memory=1; animPeriod=0; sourceAddress="loop"; minValue="rad -180"; maxValue="rad +180"; angle0="rad +90"; angle1="rad -90"; }; class TurnFrontWheelL: TurnFrontWheelR { selection="wheel_1_1_steering"; axis="wheel_1_1_steering_axis"; }; class TurnFrontWheelR2: TurnFrontWheelR { selection="wheel_2_4_steering"; axis="wheel_2_4_steering_axis"; }; class TurnFrontWheelL2: TurnFrontWheelR { selection="wheel_1_4_steering"; axis="wheel_1_4_steering_axis"; }; class Wheel_1_1 { type="rotationX"; source="wheel"; selection="wheel_1_1"; axis="wheel_1_1_axis"; memory=1; sourceAddress="loop"; minValue=0; maxValue=1; angle0=0; angle1="rad -360"; }; class wheel_2_1: Wheel_1_1 { selection="wheel_2_1"; axis="wheel_2_1_axis"; }; class wheel_1_2: Wheel_1_1 { selection="wheel_1_2"; axis="wheel_1_2_axis"; }; class wheel_1_3: Wheel_1_1 { selection="wheel_1_3"; axis="wheel_1_3_axis"; }; class Wheel_2_2: Wheel_1_1 { selection="wheel_2_2"; axis="wheel_2_2_axis"; }; class Wheel_2_3: Wheel_1_1 { selection="wheel_2_3"; axis="wheel_2_3_axis"; }; class Wheel_1_4: Wheel_1_1 { selection="wheel_1_4"; axis="wheel_1_4_axis"; }; class Wheel_2_4: Wheel_1_1 { selection="wheel_2_4"; axis="wheel_2_4_axis"; }; class Wheel_1_1_Damper { type="translation"; source="damper"; selection="wheel_1_1_damper_land"; axis="posun wheel_1_1"; animPeriod = 1; minValue="0"; maxValue="1"; offset0= "0.5"; offset1= "-0.5"; memory=1; }; class wheel_2_1_Damper: Wheel_1_1_Damper { selection="wheel_2_1_damper_land"; }; class wheel_1_2_Damper: Wheel_1_1_Damper { selection="wheel_1_2_damper_land"; }; class Wheel_2_2_Damper: Wheel_1_1_Damper { selection="wheel_2_2_damper_land"; }; class damageVez: damageHide { selection="damageVez"; }; class damageHlaven: damageHide { selection="damageHlaven"; }; }; }; class HMMWV: Car { sectionsInherit="Car"; sections[]= { "Camo1" }; skeletonName="HMMWVSkeleton"; class Animations: Animations { // Dampers Destruct START class wheel_1_1_Damage:wheel_1_1_Damage {offset1 = 0.20;}; class wheel_1_2_Damage:wheel_1_2_Damage {offset1 = 0.20;}; // class wheel_1_3_Damage:wheel_1_3_Damage {offset1 = 0.20;}; class wheel_2_1_Damage:wheel_2_1_Damage {offset1 = 0.20;}; class wheel_2_2_Damage:wheel_2_2_Damage {offset1 = 0.20;}; // class wheel_2_3_Damage:wheel_2_3_Damage {offset1 = 0.20;}; // Dampers Destruct END // animace damper smerem nahoru START class wheel_1_1_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {offset1 = -0.20;}; class wheel_1_2_Damper_Damage_BackAnim:wheel_1_2_Damper_Damage_BackAnim {offset1 = -0.20;}; // class wheel_1_3_Damper_Damage_BackAnim:wheel_1_3_Damper_Damage_BackAnim {offset1 = -0.20;}; class wheel_2_1_Damper_Damage_BackAnim:wheel_2_1_Damper_Damage_BackAnim {offset1 = -0.20;}; class wheel_2_2_Damper_Damage_BackAnim:wheel_2_2_Damper_Damage_BackAnim {offset1 = -0.20;}; // class wheel_2_3_Damper_Damage_BackAnim:wheel_2_3_Damper_Damage_BackAnim {offset1 = -0.20;}; // animace damper smerem nahoru END class IndicatorSpeed: IndicatorSpeed { maxValue=16.670000; angle0=-0.174533; angle1=3.141593; }; class IndicatorRPM: IndicatorRPM { angle0=0.000000; angle1=1.483530; }; class fuel { type="rotation"; source="fuel"; selection="fuel_1"; axis="fuel_1_axis"; memory=0; minValue=0.000000; maxValue=1.000000; angle0=-0.087266; angle1=-1.658063; }; class prop_01 { type="rotation"; source="rpm"; selection="prop_01"; axis="prop_01_axis"; memory=0; minValue=0.000000; maxValue=0.360000; angle0=1.396263; angle1=0.000000; }; class prop_02 { type="rotation"; source="rpm"; selection="prop_02"; axis="prop_02_axis"; memory=0; minValue=0.000000; maxValue=0.640000; angle0=0.349066; angle1=-0.349066; }; class Wheel_1_1_Damper: Wheel_1_1_Damper { type="translation"; source="damper"; selection="wheel_1_1_damper_land"; axis="posun wheel_1_1"; animPeriod = 1; minValue="0"; maxValue="1"; offset0= "0.5"; offset1= "-0.5"; memory=1; }; class wheel_2_1_Damper: Wheel_1_1_Damper { selection="wheel_2_1_damper_land"; }; class wheel_1_2_Damper: Wheel_1_1_Damper { selection="wheel_1_2_damper_land"; }; class Wheel_2_2_Damper: Wheel_1_1_Damper { selection="wheel_2_2_damper_land"; }; }; }; class HMMWVTurret: HMMWV { class Animations: Animations { class MainTurret { type="rotationY"; source="mainTurret"; selection="OtocVez"; axis="OsaVeze"; animPeriod=0; minValue="rad -360"; maxValue="rad +360"; angle0="rad -360"; angle1="rad +360"; }; class MainGun: MainTurret { type="rotationX"; source="mainGun"; selection="OtocHlaven"; axis="OsaHlavne"; }; class damageHlaven: damageHide { selection="damageHlaven"; }; }; }; class HMMWV50: HMMWVTurret { skeletonName="HMMWV_M2_Skeleton"; class Animations: Animations { class ammo_belt_rotation { type="rotationZ"; source="ReloadAnim"; selection="ammo_belt"; axis="ammo_belt_axis"; memory=1; sourceAddress="loop"; minValue=0.000000; maxValue=1.0000; angle0=0.000000; angle1=-0.209440; }; class Barrel_recoil:ammo_belt_rotation { type="translation"; selection="recoil"; axis="recoil_axis"; sourceAddress="mirror"; minValue=0.0; maxValue=0.5; offset0=0; offset1=-0.05; }; class Bolt_recoil:Barrel_recoil { selection="bolt"; offset0=0; maxValue=0.5; offset1=-0.25; }; class Turret_shake:Barrel_recoil { selection="OtocHlaven_Shake"; axis="osaveze"; offset0=0; offset1=-0.002; maxValue=0.05; }; class Turret_shake_aside:Turret_shake { axis="osahlavne"; maxValue=0.05*1.3; }; class Charging_handle_shake:Barrel_recoil { type="rotation"; selection="Charging_handle"; axis="Charging_handle_axis"; sourceAddress="mirror"; maxValue=0.005; angle0=0.000000; angle1=-0.1; }; class Feedtray_cover_up { type="rotation"; source="reloadMagazine"; selection="feedtray_cover"; axis="feedtray_cover_axis"; memory=1; minValue=0.1000000; maxValue=0.130000; angle0=0.000000; angle1=-1.570796; }; class Feedtray_cover_down:feedtray_cover_up { minValue=0.860000; maxValue=0.900000; angle0=0.000000; angle1=1.570796; }; class Bolt_reload_begin:Bolt_recoil { type="translation"; sourceAddress="clamp"; source="reloadMagazine"; minValue=0.00000; maxValue=0.0200000; }; class Bolt_reload_end:bolt_reload_begin { minValue=0.050000; maxValue=0.070000; offset0=0; offset1=+0.25; }; class Charging_handle_reload_begin:Bolt_reload_begin{selection="Charging_handle";}; class Charging_handle_reload_end:Bolt_reload_end{selection="Charging_handle";}; class Magazine_hide { type="hide"; source="reloadMagazine"; sourceAddress="mirror"; selection="magazine"; minValue=0.0; maxValue=0.5; hideValue=0.56; }; }; }; }; My Config.cpp: #define _ARMA_ //ndefs=13 enum { destructengine = 2, destructdefault = 6, destructwreck = 7, destructtree = 3, destructtent = 4, stabilizedinaxisx = 1, stabilizedinaxesxyz = 4, stabilizedinaxisy = 2, stabilizedinaxesboth = 3, destructno = 0, stabilizedinaxesnone = 0, destructman = 5, destructbuilding = 1 }; class DefaultEventhandlers; class CfgPatches { class HMMWV { units[] = {"HMMWV_M2"}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Soft_F"}; }; }; class CfgFactionClasses { class YOUR_FACTION_CLASS_HERE { displayName = "YOUR_DISPLAY_NAME_HERE"; priority = 8; side = 2; icon = "\YOUR_MAIN_PATH_HERE\HMMWV\UI\cfgFactionClasses_gr_ca.paa"; }; }; class CfgVehicleClasses { class YOUR_VEHICLE_CLASS_HERE { displayName = "WHATEVER_YOU_WANT_TO_SAY_FOR_YOUR_VEHICLE_CLASS_TO_BE"; }; }; class WeaponFireGun; class WeaponCloudsGun; class WeaponFireMGun; class WeaponCloudsMGun; class RCWSOptics; class CfgMovesBasic { class DefaultDie; class ManActions { HMMWV_Driver = "HMMWV_Driver"; HMMWV_Gunner01 = "HMMWV_Gunner01"; HMMWV_Cargo01 = "HMMWV_Cargo01"; }; }; class CfgMovesMaleSdr: CfgMovesBasic { class States { class Stryker_Dead: DefaultDie { actions = "DeadActions"; speed = 0.5; looped = 0; terminal = 1; file = "\YOUR_MAIN_PATH_HERE\HMMWV\data\anim\Stryker_Dead.rtm"; connectTo[] = {"Unconscious",0.1}; }; class Crew; class AmovPercMstpSnonWnonDnon; class KIA_HMMWV_Driver: DefaultDie { actions = "DeadActions"; file = "\YOUR_MAIN_PATH_HERE\HMMWV\data\anim\KIA_HMMWV_Driver.rtm"; speed = 0.5; looped = "false"; terminal = 1; connectTo[] = {"Unconscious",0.1}; soundEnabled=0; }; class HMMWV_Driver: Crew { file = "\YOUR_MAIN_PATH_HERE\HMMWV\data\anim\HMMWV_Driver.rtm"; interpolateTo[]={"KIA_HMMWV_Driver",1}; leftHandIKCurve[] = {1}; rightHandIKCurve[] = {1}; }; class KIA_HMMWV_Gunner: KIA_HMMWV_Driver { file= "\YOUR_MAIN_PATH_HERE\HMMWV\data\anim\KIA_hmmwv_gunnerOUT.rtm"; }; class HMMWV_Gunner01: Crew { file= "\YOUR_MAIN_PATH_HERE\HMMWV\data\anim\hmmwv_M2gunnerOUT.rtm"; interpolateTo[]={"KIA_HMMWV_Gunner",1}; }; class KIA_HMMWV_Cargo01: KIA_HMMWV_Driver { file= "\YOUR_MAIN_PATH_HERE\HMMWV\data\anim\KIA_HMMWV_Cargo01.rtm"; }; class HMMWV_Cargo01: Crew { file= "\YOUR_MAIN_PATH_HERE\HMMWV\data\anim\hmmwv_Cargo01_V0.rtm"; interpolateTo[]={"KIA_HMMWV_Cargo01",0.1}; }; }; }; class CfgVehicles { class LandVehicle; class Car: LandVehicle { class NewTurret; }; class Car_F: Car { class AnimationSources; class Turrets { class MainTurret: NewTurret{}; }; class HitPoints { class HitLFWheel; class HitLF2Wheel; class HitRFWheel; class HitRF2Wheel; class HitGlass1; class HitGlass2; class HitGlass3; class HitGlass4; class HitGlass5; class HitGlass6; }; }; class HMMWV_Base: Car_F { class SpeechVariants { class Default { speechSingular[] = {"veh_vehicle_armedcar_s"}; speechPlural[] = {"veh_vehicle_armedcar_p"}; }; }; textSingular = "$STR_A3_nameSound_veh_vehicle_armedcar_s"; textPlural = "$STR_A3_nameSound_veh_vehicle_armedcar_p"; nameSound = "veh_vehicle_armedcar_s"; author = "$STR_A3_Bohemia_Interactive"; _generalMacro = "hmmwv"; scope = 0; Model = "\YOUR_MAIN_PATH_HERE\HMMWV\HMMWV50"; Picture="\YOUR_MAIN_PATH_HERE\HMMWV\data\ico\HMMWV50_CA.paa"; Icon="\YOUR_MAIN_PATH_HERE\HMMWV\data\ico\icomap_hmwv50_CA.paa"; mapSize = 6; displayName = "MY-HMMWV"; vehicleClass = "YOUR_VEHICLE_CLASS_HERE"; crew = "B_Soldier_F"; typicalCargo[]={"B_Soldier_F", "B_Soldier_F", "B_Soldier_F", "B_Soldier_F"}; side=1; faction="YOUR_FACTION_CLASS_HERE"; wheelCircumference=2.834; antiRollbarForceCoef = 12; antiRollbarForceLimit = 10; antiRollbarSpeedMin = 20; antiRollbarSpeedMax = 50; crewVulnerable = 1; crewCrashProtection = 0.15; weapons[] = {"TruckHorn2"}; magazines[] = {}; damperSize = 0.2; // max. damper amplitude damperForce = 1; // damper reaction force (bigger is more visible) damperDamping = 1; // schock absorbers bigger => more tough armor = 80; damageResistance = 0.00562; // Steering values turnCoef=2.5; steerAheadPlan = 0.2; // steering point steerAheadSimul = 0.4; // steering point predictTurnPlan =0.9; // braking point predictTurnSimul = 0.5; // braking point brakeDistance = 1.0; terrainCoef = 1.5; wheelDamageThreshold = 0.7; wheelDestroyThreshold = 0.99; wheelDamageRadiusCoef = 0.95; wheelDestroyRadiusCoef = 0.45; cost=200000; precision = 15; armorGlass=0.5; armorWheels=0.1; soundServo[] = {"A3\sounds_f\dummysound",0.01,1.0,10}; soundEnviron[] = {, db-5, 1}; transportMaxBackpacks = 5; transportSoldier = 3; //driver, gunner + 3 cargo class Library { libTextDesc = "TEST ArmA2 HMMWV"; }; castDriverShadow = false; driverAction = "HMMWV_Driver"; cargoAction[] = {"HMMWV_Cargo01","HMMWV_Cargo01","HMMWV_Cargo01"}; threat[] = {0.8,0.6,0.3}; driverLeftHandAnimName = "drivewheel"; driverRightHandAnimName = ""; class TransportMagazines { class _xx_30Rnd_mas_556x45_Stanag { magazine = "30Rnd_556x45_Stanag"; count = 100; }; }; class TransportItems { class _xx_FirstAidKit { name = "FirstAidKit"; count = 10; }; }; class TransportWeapons{}; idleRpm = 800; redRpm = 4500; brakeIdleSpeed = 1.78; fuelCapacity = 250; class complexGearbox { GearboxRatios[] = {"R1",-5.75,"N",0,"D1",4.3,"D2",2.3,"D3",1.5,"D4",1.0,"D5",0.73}; TransmissionRatios[] = {"High",6.759}; gearBoxMode = "auto"; moveOffGear = 1; driveString = "D"; neutralString = "N"; reverseString = "R"; }; simulation = "carx"; dampersBumpCoef = 6.0; differentialType = "all_limited"; frontRearSplit = 0.5; frontBias = 1.3; rearBias = 1.3; centreBias = 1.3; clutchStrength = 20.0; enginePower = 276; maxOmega = 471; peakTorque = 1253; dampingRateFullThrottle = 0.08; dampingRateZeroThrottleClutchEngaged = 2.0; dampingRateZeroThrottleClutchDisengaged = 0.35; /*torqueCurve[] = { { 0.0,0.0 }, { 0.178,0.5 }, { 0.25,0.85 }, { 0.4,0.9 }, { 0.5,1.0 }, { 0.725,0.95 }, { 0.85,0.6 }, { 1.0,0.3 }}; changeGearMinEffectivity[] = {0.95,0.15,0.95,0.95,0.95,0.95,0.95};*/ torqueCurve[] = { { 0.0,0.0 }, { 0.278,0.5 }, { 0.35,0.75 }, { 0.461,1.0 }, { 0.6,0.95 }, { 0.7,0.85 }, { 0.8,0.75 }, { 1.0,0.5 }}; changeGearMinEffectivity[] = {0.95,0.15,0.95,0.95,0.95,0.95,0.95}; switchTime = 0.31; latency = 1.0; 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.126"; mass = 30; MOI = 12.8; dampingRate = 0.1; maxBrakeTorque = 10000; maxHandBrakeTorque = 0; suspTravelDirection[] = {0,-1,0}; suspForceAppPointOffset = "wheel_1_1_axis"; tireForceAppPointOffset = "wheel_1_1_axis"; maxCompression = 0.05; mMaxDroop = 0.1; sprungMass = 825; springStrength = 51625; springDamperRate = 8920; longitudinalStiffnessPerUnitGravity = 10000; latStiffX = 25; latStiffY = 180; frictionVsSlipGraph[] = { { 0,1 }, { 0.5,1 }, { 1,1 }}; }; class LR: LF { boneName = "wheel_1_2_damper"; steering = 0; center = "wheel_1_2_axis"; boundary = "wheel_1_2_bound"; suspForceAppPointOffset = "wheel_1_2_axis"; tireForceAppPointOffset = "wheel_1_2_axis"; maxHandBrakeTorque = 3500; }; 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"; }; 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 = 3500; }; }; attenuationEffectType = "CarAttenuation"; soundGetIn[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\getin",0.56234133,1}; soundGetOut[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\getout",0.56234133,1,40}; soundDammage[] = {"",0.56234133,1}; soundEngineOnInt[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_start",0.35481337,1.0}; soundEngineOnExt[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_start",0.70794576,1.0,200}; soundEngineOffInt[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_stop",0.35481337,1.0}; soundEngineOffExt[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_stop",0.70794576,1.0,200}; buildCrash0[] = {"A3\sounds_f\Vehicles\soft\noises\crash_building_01",1.0,1,200}; buildCrash1[] = {"A3\sounds_f\Vehicles\soft\noises\crash_building_02",1.0,1,200}; buildCrash2[] = {"A3\sounds_f\Vehicles\soft\noises\crash_building_03",1.0,1,200}; buildCrash3[] = {"A3\sounds_f\Vehicles\soft\noises\crash_building_04",1.0,1,200}; soundBuildingCrash[] = {"buildCrash0",0.25,"buildCrash1",0.25,"buildCrash2",0.25,"buildCrash3",0.25}; WoodCrash0[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_01",1.0,1,200}; WoodCrash1[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_02",1.0,1,200}; WoodCrash2[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_03",1.0,1,200}; WoodCrash3[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_04",1.0,1,200}; WoodCrash4[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_05",1.0,1,200}; WoodCrash5[] = {"A3\sounds_f\Vehicles\soft\noises\crash_mix_wood_06",1.0,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\soft\noises\crash_vehicle_01",1.0,1,200}; ArmorCrash1[] = {"A3\sounds_f\Vehicles\soft\noises\crash_vehicle_02",1.0,1,200}; ArmorCrash2[] = {"A3\sounds_f\Vehicles\soft\noises\crash_vehicle_03",1.0,1,200}; ArmorCrash3[] = {"A3\sounds_f\Vehicles\soft\noises\crash_vehicle_04",1.0,1,200}; soundArmorCrash[] = {"ArmorCrash0",0.25,"ArmorCrash1",0.25,"ArmorCrash2",0.25,"ArmorCrash3",0.25}; class Sounds { class Idle_ext { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_idle",0.39810717,1,150}; frequency = "0.95 + ((rpm/ 4500) factor[(800/ 4500),(1400/ 4500)])*0.15"; volume = "engineOn*camPos*(((rpm/ 4500) factor[(600/ 4500),(1100/ 4500)]) * ((rpm/ 4500) factor[(1800/ 4500),(1300/ 4500)]))"; }; class Engine { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_low1",0.4466836,1,250}; frequency = "0.9 + ((rpm/ 4500) factor[(1400/ 4500),(2100/ 4500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 4500) factor[(1400/ 4500),(1800/ 4500)]) * ((rpm/ 4500) factor[(2300/ 4500),(2000/ 4500)]))"; }; class Engine1_ext { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_low2",0.56234133,1,300}; frequency = "0.9 + ((rpm/ 4500) factor[(2100/ 4500),(2800/ 4500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 4500) factor[(1900/ 4500),(2300/ 4500)]) * ((rpm/ 4500) factor[(3000/ 4500),(2500/ 4500)]))"; }; class Engine2_ext { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_mid",0.70794576,1,350}; frequency = "0.9 + ((rpm/ 4500) factor[(2800/ 4500),(3600/ 4500)])*0.2"; volume = "engineOn*camPos*(((rpm/ 4500) factor[(2500/ 4500),(3100/ 4500)]) * ((rpm/ 4500) factor[(4500/ 4500),(3700/ 4500)]))"; }; class Engine3_ext { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_high",1.0,1,400}; frequency = "0.95 + ((rpm/ 4500) factor[(3600/ 4500),(4500/ 4500)])*0.1"; volume = "engineOn*camPos*((rpm/ 4500) factor[(3800/ 4500),(4500/ 4500)])"; }; class IdleThrust { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_exhaust_idle",0.56234133,1,200}; frequency = "0.95 + ((rpm/ 4500) factor[(800/ 4500),(1400/ 4500)])*0.15"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 4500) factor[(600/ 4500),(1100/ 4500)]) * ((rpm/ 4500) factor[(1800/ 4500),(1300/ 4500)]))"; }; class EngineThrust { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_exhaust_low1",0.70794576,1,350}; frequency = "0.9 + ((rpm/ 4500) factor[(1400/ 4500),(2100/ 4500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 4500) factor[(1400/ 4500),(1800/ 4500)]) * ((rpm/ 4500) factor[(2300/ 4500),(2000/ 4500)]))"; }; class Engine1_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_exhaust_low2",0.8912509,1,400}; frequency = "0.9 + ((rpm/ 4500) factor[(2100/ 4500),(2800/ 4500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 4500) factor[(1900/ 4500),(2300/ 4500)]) * ((rpm/ 4500) factor[(3000/ 4500),(2500/ 4500)]))"; }; class Engine2_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_exhaust_mid",1.1220185,1,425}; frequency = "0.9 + ((rpm/ 4500) factor[(2800/ 4500),(3600/ 4500)])*0.2"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 4500) factor[(2500/ 4500),(3100/ 4500)]) * ((rpm/ 4500) factor[(4500/ 4500),(3700/ 4500)]))"; }; class Engine3_Thrust_ext { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_ext_exhaust_high",1.2589254,1,450}; frequency = "0.95 + ((rpm/ 4500) factor[(3600/ 4500),(4500/ 4500)])*0.1"; volume = "engineOn*camPos*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 4500) factor[(3800/ 4500),(4500/ 4500)])"; }; class Idle_int { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_idle",0.25118864,1}; frequency = "0.95 + ((rpm/ 4500) factor[(800/ 4500),(1400/ 4500)])*0.15"; volume = "engineOn*(1-camPos)*(((rpm/ 4500) factor[(600/ 4500),(1100/ 4500)]) * ((rpm/ 4500) factor[(1800/ 4500),(1300/ 4500)]))"; }; class Engine_int { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_low1",0.31622776,1}; frequency = "0.9 + ((rpm/ 4500) factor[(1400/ 4500),(2100/ 4500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 4500) factor[(1400/ 4500),(1800/ 4500)]) * ((rpm/ 4500) factor[(2300/ 4500),(2000/ 4500)]))"; }; class Engine1_int { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_low2",0.39810717,1}; frequency = "0.9 + ((rpm/ 4500) factor[(2100/ 4500),(2800/ 4500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 4500) factor[(1900/ 4500),(2300/ 4500)]) * ((rpm/ 4500) factor[(3000/ 4500),(2500/ 4500)]))"; }; class Engine2_int { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_mid",0.5011872,1}; frequency = "0.9 + ((rpm/ 4500) factor[(2800/ 4500),(3600/ 4500)])*0.2"; volume = "engineOn*(1-camPos)*(((rpm/ 4500) factor[(2500/ 4500),(3100/ 4500)]) * ((rpm/ 4500) factor[(4500/ 4500),(3700/ 4500)]))"; }; class Engine3_int { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_high",0.63095737,1}; frequency = "0.95 + ((rpm/ 4500) factor[(3600/ 4500),(4500/ 4500)])*0.1"; volume = "engineOn*(1-camPos)*((rpm/ 4500) factor[(3800/ 4500),(4500/ 4500)])"; }; class IdleThrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_exhaust_idle",0.35481337,1}; frequency = "0.95 + ((rpm/ 4500) factor[(800/ 4500),(1400/ 4500)])*0.15"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 4500) factor[(600/ 4500),(1100/ 4500)]) * ((rpm/ 4500) factor[(1800/ 4500),(1300/ 4500)]))"; }; class EngineThrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_exhaust_low1",0.4466836,1}; frequency = "0.9 + ((rpm/ 4500) factor[(1400/ 4500),(2100/ 4500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 4500) factor[(1400/ 4500),(1800/ 4500)]) * ((rpm/ 4500) factor[(2300/ 4500),(2000/ 4500)]))"; }; class Engine1_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_exhaust_low2",0.56234133,1}; frequency = "0.9 + ((rpm/ 4500) factor[(2100/ 4500),(2800/ 4500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 4500) factor[(1900/ 4500),(2300/ 4500)]) * ((rpm/ 4500) factor[(3000/ 4500),(2500/ 4500)]))"; }; class Engine2_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_exhaust_mid",0.70794576,1}; frequency = "0.9 + ((rpm/ 4500) factor[(2800/ 4500),(3600/ 4500)])*0.2"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*(((rpm/ 4500) factor[(2500/ 4500),(3100/ 4500)]) * ((rpm/ 4500) factor[(4500/ 4500),(3700/ 4500)]))"; }; class Engine3_Thrust_int { sound[] = {"A3\Sounds_F\vehicles\soft\MRAP_01\MRAP_01_int_exhaust_high",0.7943282,1}; frequency = "0.95 + ((rpm/ 4500) factor[(3600/ 4500),(4500/ 4500)])*0.1"; volume = "engineOn*(1-camPos)*(0.4+(0.6*(thrust factor[0.1,1])))*((rpm/ 4500) factor[(3800/ 4500),(4500/ 4500)])"; }; class TiresRockOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_dirt_soft_1",1.4125376,1.0,60}; frequency = "1"; volume = "camPos*rock*(speed factor[2, 20])"; }; class TiresSandOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-sand1",1.4125376,1.0,60}; frequency = "1"; volume = "camPos*sand*(speed factor[2, 20])"; }; class TiresGrassOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_dirt_soft_2",1.2589254,1.0,60}; frequency = "1"; volume = "camPos*grass*(speed factor[2, 20])"; }; class TiresMudOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext-tires-mud2",1.1220185,1.0,60}; frequency = "1"; volume = "camPos*mud*(speed factor[2, 20])"; }; class TiresGravelOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_gravel_1",1.2589254,1.0,60}; frequency = "1"; volume = "camPos*gravel*(speed factor[2, 20])"; }; class TiresAsphaltOut { sound[] = {"A3\Sounds_F\vehicles\soft\tires\ext_tires_asfalt_2",1.1220185,1.0,60}; frequency = "1"; volume = "camPos*asphalt*(speed factor[2, 20])"; }; class NoiseOut { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_ext_car_3",1.1220185,1.0,90}; frequency = "1"; volume = "camPos*(damper0 max 0.02)*(speed factor[0, 8])"; }; class TiresRockIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_dirt_soft_1",0.70794576,1.0}; frequency = "1"; volume = "(1-camPos)*rock*(speed factor[2, 20])"; }; class TiresSandIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-sand2",0.70794576,1.0}; frequency = "1"; volume = "(1-camPos)*sand*(speed factor[2, 20])"; }; class TiresGrassIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_dirt_soft_2",0.70794576,1.0}; frequency = "1"; volume = "(1-camPos)*grass*(speed factor[2, 20])"; }; class TiresMudIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int-tires-mud2",0.70794576,1.0}; frequency = "1"; volume = "(1-camPos)*mud*(speed factor[2, 20])"; }; class TiresGravelIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_gravel_1",0.70794576,1.0}; frequency = "1"; volume = "(1-camPos)*gravel*(speed factor[2, 20])"; }; class TiresAsphaltIn { sound[] = {"A3\Sounds_F\vehicles\soft\tires\int_tires_asfalt_2",0.70794576,1.0}; frequency = "1"; volume = "(1-camPos)*asphalt*(speed factor[2, 20])"; }; class NoiseIn { sound[] = {"A3\Sounds_F\vehicles\soft\noises\noise_int_car_3",0.56234133,1.0}; frequency = "1"; volume = "(damper0 max 0.1)*(speed factor[0, 8])*(1-camPos)"; }; class breaking_ext_road { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_loop_04",0.70794576,1,80}; frequency = 1; volume = "engineOn*camPos*asphalt*(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",0.70794576,1,80}; frequency = 1; volume = "engineOn*camPos*asphalt*(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",0.70794576,1,80}; frequency = 1; volume = "engineOn*camPos*asphalt*(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",0.70794576,1,80}; frequency = 1; volume = "engineOn*camPos*asphalt*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; class breaking_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_14_dirt_breaking",0.70794576,1,60}; frequency = 1; volume = "engineOn*camPos*(1-asphalt)*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 10])"; }; class acceleration_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\acceleration_dirt_ext_1",0.70794576,1,60}; frequency = 1; volume = "engineOn*camPos*(1-asphalt)*(LongSlipDrive Factor[0.15, 0.3])*(Speed Factor[10, 0])"; }; class turn_left_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt",0.70794576,1,60}; frequency = 1; volume = "engineOn*camPos*(1-asphalt)*(latSlipDrive Factor[0.15, 0.3])*(Speed Factor[0, 10])"; }; class turn_right_ext_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\slipping_tires_18_dirt",0.70794576,1,60}; frequency = 1; volume = "engineOn*camPos*(1-asphalt)*(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",0.31622776,1}; frequency = 1; volume = "engineOn*asphalt*(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",0.31622776,1}; frequency = 1; volume = "engineOn*asphalt*(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",0.31622776,1}; frequency = 1; volume = "engineOn*asphalt*(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",0.31622776,1}; frequency = 1; volume = "engineOn*asphalt*(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_14_dirt_breaking_int",0.31622776,1}; frequency = 1; volume = "engineOn*(1-asphalt)*(1-camPos)*(LongSlipDrive Factor[-0.15, -0.3])*(Speed Factor[2, 6])"; }; class acceleration_int_dirt { sound[] = {"A3\Sounds_F\vehicles\soft\noises\acceleration_dirt_int_1",0.31622776,1}; frequency = 1; volume = "engineOn*(1-asphalt)*(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_18_dirt_int",0.31622776,1}; frequency = 1; volume = "engineOn*(1-asphalt)*(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_18_dirt_int",0.31622776,1}; frequency = 1; volume = "engineOn*(1-asphalt)*(1-camPos)*(latSlipDrive Factor[-0.15, -0.3])*(Speed Factor[0, 10])"; }; }; class Exhausts { class Exhaust1 { position = "vyfuk start"; direction = "vyfuk konec"; effect = "ExhaustEffectOffroad"; }; }; class Turrets: Turrets { class MainTurret : MainTurret { body = "mainTurret"; gun = "mainGun"; hasGunner= 1; weapons[] = {"HMG_M2"}; magazines[] = {"100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow"}; soundServo[] = {"A3\sounds_f\dummysound",0.01,1.0,10}; minElev = -25; maxElev = +60; gunnerAction = "HMMWV_Gunner01"; // used for sound occlusions as well viewGunnerInExternal=true; castGunnerShadow = 1; stabilizedInAxes = StabilizedInAxesNone; gunnerRightHandAnimName = "OtocHlaven_shake"; gunnerLeftHandAnimName = "OtocHlaven_shake"; }; }; class HitPoints: HitPoints { class HitGlass1:HitGlass1 {armor=0.1;}; class HitGlass2:HitGlass2 {armor=0.1;}; class HitGlass3:HitGlass3 {armor=0.1;}; class HitGlass4:HitGlass4 {armor=0.1;}; class HitLFWheel:HitLFWheel {armor=0.38;}; class HitLBWheel:HitLF2Wheel {armor=0.38;}; class HitRFWheel:HitRFWheel {armor=0.38;}; class HitRBWheel:HitRF2Wheel {armor=0.38;}; class HitFuel {armor=1.4;material=-1;name="palivo";visual="";passThrough=1;}; }; class Damage { tex[]={}; mat[]={ "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_details.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_details_damage.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_details_destruct.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_body.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_body_damage.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_body_destruct.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_clocks.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_clocks.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_clocks_destruct.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\weapons\m2.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\weapons\m2.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\m2_destruct.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\detailmapy\m1abrams_mg_mount.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\detailmapy\m1abrams_mg_mount.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\detailmapy\m1abrams_mg_mount_destruct.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_glass.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_glass_Half_D.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_glass_Half_D.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_glass_in.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_glass_in_Half_D.rvmat", "YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_glass_in_Half_D.rvmat", }; }; class Reflectors { class Left { color[] = {1900,1300,950}; ambient[] = {5,5,5}; position = "L svetlo"; direction = "konec L svetla"; hitpoint = "L svetlo"; selection = "L svetlo"; size = 1; innerAngle = 100; outerAngle = 179; coneFadeCoef = 10; intensity = 1; useFlare = 0; dayLight = 0; flareSize = 1.0; class Attenuation { start = 1.0; constant = 0; linear = 0; quadratic = 0.25; hardLimitStart = 30; hardLimitEnd = 60; }; }; class Right: Left { position = "P svetlo"; direction = "konec R svetla"; hitpoint = "P svetlo"; selection = "P svetlo"; }; class Right2: Right { useFlare = 1; position = "P svetlo"; }; class Left2: Left { useFlare = 1; position = "L svetlo"; }; }; aggregateReflectors[] = { { "Left","Right","Left2","Right2" }}; class RenderTargets { class LeftMirror { renderTarget = "rendertarget0"; class CameraView1 { pointPosition = "PIP0_pos"; pointDirection = "PIP0_dir"; renderQuality = 2; renderVisionMode = 4; fov = 0.7; }; }; class RightMirror { renderTarget = "rendertarget1"; class CameraView1 { pointPosition = "PIP1_pos"; pointDirection = "PIP1_dir"; renderQuality = 2; renderVisionMode = 4; fov = 0.7; }; }; }; }; class HMMWV_M2: HMMWV_Base { scope=2; displayName = "TEST HMMWV-M2"; accuracy=0.32; class AnimationSources:AnimationSources { class ReloadAnim{source="reload";weapon="HMG_M2";}; class ReloadMagazine{source="reloadmagazine";weapon="HMG_M2";}; class Revolving{source="revolving";weapon="HMG_M2";}; }; hiddenSelections[] = { "Camo1" }; hiddenSelectionsTextures[] = { "\YOUR_MAIN_PATH_HERE\HMMWV\data\hmmwv_body_co.paa" }; }; }; STEP #7 - Go to your YourMainAddonFolderName\HWMMV\data\ folder and create inside a new one called "Anim" ... - Go to ArmA 2 samples folder under ... A2SM_Data_APL/Wheeled/CA/Wheeled/data/anim/ and locate the following files ... "Stryker_Dead.rtm", "hmmwv_Cargo01.rtm", "KIA_HMMWV_Driver.rtm", "KIA_hmmwv_gunnerOUT.rtm", "HMMWV_Driver.rtm", "hmmwv_M2gunnerOUT.rtm", "KIA_HMMWV_Cargo01.rtm", "hmmwv_Cargo01_V0.rtm" ... copy - paste them into YourMainAddonFolderName\HWMMV\data\Anim\ folder. STEP #8 - Use ArmA 3 Tools to binarize your addon and test it through game editor ... NOTE : you have to excuse my poor english and please feel free to post any corrections and possible questions might have for this tutorial ... Aplion Edited March 16, 2014 by Aplion 4 Share this post Link to post Share on other sites
matt_baker1942 3 Posted March 20, 2014 Nice tutorial man, sorted out all my problems that I had been struggling with, thanks! Share this post Link to post Share on other sites
ROBDABANKLAITH 10 Posted April 18, 2014 This was a very useful post... thanks so much. as for the english, it was very good Share this post Link to post Share on other sites
marker 1 Posted April 18, 2014 Fantastic mate. I have been working in importing the su25 and this clears up a few things. Thanks Share this post Link to post Share on other sites
Polygon 11 Posted April 18, 2014 Excellent post. Keep them coming, Aplion. Very much appreciated. :) Share this post Link to post Share on other sites
poupoune 10 Posted April 19, 2014 hello, me jai sake, I create my mod file. pbo and when I look in my editor jai good textures but in multiplayer, other players do not have the texture, how to please? thank you in advance Share this post Link to post Share on other sites
Αplion 1122 Posted April 20, 2014 hello, me jai sake, I create my mod file. pbo and when I look in my editor jai good textures but in multiplayer, other players do not have the texture, how to please? thank you in advance For any addon ... except you, also the server must run this addon as also anyone else wants to connect to your server ... thats the way ArmA works. Share this post Link to post Share on other sites
poupoune 10 Posted April 20, 2014 yes ok put it on the server its ok, but infact this is my first add on that I created, I have created my pbo with my p3d file in my config and my textures, but infact when I send it to the Chief server, it does not see the texture on the object which i created is that someone could tell me how to make all the world voyent textures game on our server which ... desoler I am a beginner and thank you for your answers Share this post Link to post Share on other sites
logan83 11 Posted September 27, 2014 Hi every body... im followng this tutorial, i Unpbo all the *.pbos needes by the p3D model an copy in their respective folders (Penetration, weapons and data) but when i remplace the path to the archives always get the path in red color... :( for example the first line ca\data\data\default_flash_2pass.rvmat in my work folder the rvmat archive route is: LG83_BT_models\HWMMV\data\default_flash_2pass.rvmat but always return red line, my HMMWV50.P3d file is in the HWMMV folder... Whats Wrong? Thansk so much... Share this post Link to post Share on other sites
logan83 11 Posted September 27, 2014 anybody cant helP? Share this post Link to post Share on other sites
logan83 11 Posted September 28, 2014 Solved, Was a P drive config fail... Share this post Link to post Share on other sites
Αplion 1122 Posted October 1, 2014 I missed that post (sorry) but glad you have it solved. Share this post Link to post Share on other sites
Games 1 Posted October 1, 2014 Hi Aplion, I was wondering if the same steps are taken for importing Helicopters as well. Your guide has really open my eyes to the requirements necessary to carry out such a daunting task. I am interested in creating a workable import of the bell 412 sample Helicopter from Take on Helicopters. Are there extra or different procedures required to do it, or would your awesome guide be enough to handle this? Share this post Link to post Share on other sites
Αplion 1122 Posted October 2, 2014 Hi Aplion,I was wondering if the same steps are taken for importing Helicopters as well. Your guide has really open my eyes to the requirements necessary to carry out such a daunting task. I am interested in creating a workable import of the bell 412 sample Helicopter from Take on Helicopters. Are there extra or different procedures required to do it, or would your awesome guide be enough to handle this? This guide is mainly for wheeled land vehicles mate ... the main import procedure is always the same, but for helicopters you also have to take a look on one of open content BIS has released (or the open content from my import to A3 http://www.mediafire.com/download/cibb7npbawqnebv/HAFM_ArmA2_Helis_UNBINED.rar ). Share this post Link to post Share on other sites
Games 1 Posted October 3, 2014 the main import procedure is always the same Are you implying that the main procedure is something like Steps 1-5? Share this post Link to post Share on other sites
BEAKSBY 11 Posted October 27, 2014 STEP #4- Now we have changed all proxies but remember only for the LOD 1 (first lod) so lets do that for the rest but faster that time ... - Select all proxies from LOD 1 (use your CONTROL key and select them all) then press CONTROL+C to copy them ... Double click on LOD 2 and select all proxies from this lod ... hit DELETE to erase them and right click in the list ... choose "Delete Empty" ... when LOD 2 is empty from any proxies, press CONTROL+V from your keyboard to paste the proxies from LOD 1 to LOD 2 ... this LOD is now proxies ready also. I'm using the builder tool instead of Oxygen2, where in the tool do I get the list of proxies that I'm supposed to double click? I've packed my file skipping Step #4 and as a result the C130J plane propellers won't spin! Looks funny when it's buzing overhead without running engines! Share this post Link to post Share on other sites
diabolical 428 Posted November 4, 2014 Solved, Was a P drive config fail... so how did you fix it? I have the problem Share this post Link to post Share on other sites
npmproductions13 14 Posted March 31, 2015 Hey there i have one small problem when i have the vehicle in game it does not blow/can't be destroyed the vehicle is floating high up and i cant look around inside the vehicle Share this post Link to post Share on other sites
Ranwer135 308 Posted July 2, 2015 (edited) Any tutorial's on porting buildings? Thanks. PS: I cannot download the example models because my internet is capped. How would I port a building with just oxygen? Edited July 2, 2015 by Ranwer Share this post Link to post Share on other sites
Noma 8 Posted June 20, 2016 Is it possible to port A3 models to A2, any tutorial? P.S. Need to port RHS BTR-80A to A2. Share this post Link to post Share on other sites
PuFu 4600 Posted June 20, 2016 Is it possible to port A3 models to A2, any tutorial? P.S. Need to port RHS BTR-80A to A2. 1. there will be no back porting\ 2. you are NOT allowed to mess with any of the RHS content without permission. do read the EULA: https://www.facebook.com/notes/red-hammer-studios/disclaimer-and-license/1147974055215586 3. you are NOT allowed to port 3rd party content (everything besides BI's) from A2 to A3 or A3 to A2 either without written permission from the original author 1 Share this post Link to post Share on other sites
LCpl Baev 1 Posted December 20, 2016 For some reason no matter how much i change the path for the P3D object it always stays red. I don't know why. Can anyone help me? EDIT: Fixed it Share this post Link to post Share on other sites