Bonezz 10 Posted December 27, 2016 Hey im kinda new to modding arma 3 i have a car i put in the game everything works fine , just the wheels when i shoot them they get destroyed but the dont change to the damaged one like the proxy i put in the p3d file and i have all of the unhide wheels and using the default proxy "\a3\data_f\proxies\damagewheel\damagewheel_4" in model viewer when i do the anim they show up the damaged ones not sure what im messing plz u if u have any idea let me know . Share this post Link to post Share on other sites
UK_Apollo 476 Posted December 28, 2016 Have you set up the animations in model.cfg? You need to define the wheels and wheel proxies as skeleton bones, and set up the animations to hide the good wheel and display the damage proxy. It's not 'automatic', but is linked to animationSources that are often inherited from class Car_F. For a working example, refer to the Arma3 Samples: \SteamLibrary\SteamApps\common\Arma 3 Samples\Addons\Test_Car_01 and search model.cfg for the keyword "wheel_1_1_". Share this post Link to post Share on other sites
Bonezz 10 Posted December 28, 2016 9 hours ago, UK_Apollo said: Have you set up the animations in model.cfg? You need to define the wheels and wheel proxies as skeleton bones, and set up the animations to hide the good wheel and display the damage proxy. It's not 'automatic', but is linked to animationSources that are often inherited from class Car_F. For a working example, refer to the Arma3 Samples: \SteamLibrary\SteamApps\common\Arma 3 Samples\Addons\Test_Car_01 and search model.cfg for the keyword "wheel_1_1_". Spoiler 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", "directional", "", "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","", "td1","", "td2","", "turn_left","", "turn_right","", "glass1","damageHide", "glass2","damageHide", "glass3","damageHide", "glass4","damageHide" }; }; class bmw_e30: Car { skeletonInherit="Car"; skeletonBones[]= { "reverse_light","", "daylights","damageHide", "door1","", "door2","", "glass5","damageHide" }; }; }; 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 { htMin = 60; // Minimum half-cooling time (in seconds) htMax = 180; // Maximum half-cooling time (in seconds) afMax = 100; // Maximum temperature in case the model is alive (in celsius) mfMax = 8; // Maximum temperature when the model is moving (in celsius) mFact = 1; // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)). tBody = 150; // Metabolism temperature of the model (in celsius) sections[]= { "ammo", "zadni svetlo", "brzdove svetlo", "spz", "motor", "body", "clan", "clan_sign", "zasleh", "Light_R", "Light_L", "podsvit pristroju", "glass1", "glass2", "glass3", "glass4", "glass5", "glass6" }; skeletonName="Car"; class Animations { // destruct START class damageHide { type="hide"; source="damage"; 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.99999; }; 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 = 0; maxValue = 1; hidevalue = 0.00000; UnHidevalue = 1.00000; }; 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"; 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";}; class wheel_1_3_Damage: wheel_1_1_Damage {source="HitLMWheel";selection="wheel_1_3_damper";}; class wheel_1_4_Damage: wheel_1_1_Damage {source="HitLF2Wheel";selection="wheel_1_4_damper";}; class wheel_2_1_Damage: wheel_1_1_Damage {source="HitRFWheel";selection="wheel_2_1_damper";}; class wheel_2_2_Damage: wheel_1_1_Damage {source="HitRBWheel";selection="wheel_2_2_damper";}; class wheel_2_3_Damage: wheel_1_1_Damage {source="HitRMWheel";selection="wheel_2_3_damper";}; class wheel_2_4_Damage: wheel_1_1_Damage {source="HitRF2Wheel";selection="wheel_2_4_damper";}; class wheel_1_1_Damper_Damage_BackAnim: wheel_1_1_Damage {selection="wheel_1_1_damper";offset1 = -1.2*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";}; // Wheels Damage END // Wheels END //Glass Damage START class Glass1_destruct { type="hide"; selection="glass1"; source="HitGlass1"; minValue = 0; maxValue = 1; hidevalue = 0.99999; }; class Glass2_destruct: Glass1_destruct {selection="glass2";source="HitGlass2";}; // Inherits from the the glass 1, only the selection and the source will be changed class Glass3_destruct: Glass1_destruct {selection="glass3";source="HitGlass3";}; class Glass4_destruct: Glass1_destruct {selection="glass4";source="HitGlass4";}; class Glass5_destruct: Glass1_destruct {selection="glass5";source="HitGlass5";}; class Glass6_destruct: Glass1_destruct {selection="glass6";source="HitGlass6";}; //Glass Damage END // destruct END class Fuel: Rotation { source="fuel"; selection="fuel"; axis="fuel_axis"; maxValue=1; memory=1; angle0="rad -110"; angle1=0; }; class IndicatorSpeed: Rotation { source="speed"; selection="mph"; axis="mph_axis"; memory=1; maxValue=38.900002; angle1="rad -265"; }; class IndicatorFuel: Rotation { type="rotation"; source="fuel"; selection="fuel_1"; axis="fuel_1_axis"; memory=1; minValue=0.000000; maxValue=1.000000; angle0=-0.087266; angle1=-1.658063; }; class IndicatorRPM: Rotation { source="rpm"; selection="rpm"; axis="rpm_axis"; memory=1; angle1="rad 80"; }; class DrivingWheel: Rotation { source="drivingWheel"; selection="drivewheel"; axis="drivewheel_axis"; minValue=-1; maxValue=1; angle0=(rad 80); angle1=(rad -80); }; class Steering_1_1 { type="rotationY"; source="drivingWheel"; selection="wheel_1_1_steering"; axis="wheel_1_1_steering_axis"; memory=1; minValue= -1; maxValue= 1; angle0=1.047198; angle1=-1.047198; }; class Steering_2_1: Steering_1_1 { selection="wheel_2_1_steering"; axis="wheel_2_1_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 daylights { type="hide"; source="rpm"; selection="daylights"; minValue=-0.8; maxValue=0.2; unhidevalue=1; sourceAddress="clamp"; }; class reverse_light { type="Hide"; selection="reverse_light"; sourceAddress="clamp"; source="Gear"; minValue = -1; maxValue = 0; hideValue = "0.2"; }; }; }; class bmw_e30: Car { skeletonName = "bmw_e30"; sectionsInherit = "Car"; sections[]= { "Camo1", "Camo2", "Camo3", "license1", "license2", "license3", "license4", "license5", "license6", "turn_left", "turn_right", "td2", "td1", "body", "directional", "karoserie", "palivo" }; class Animations: Animations { class wheel_1_1_Damage: wheel_1_1_Damage{offset1=0.18000001;}; class wheel_1_2_Damage: wheel_1_2_Damage{offset1=0.18000001;}; class wheel_2_1_Damage: wheel_2_1_Damage{offset1=0.18000001;}; class wheel_2_2_Damage: wheel_2_2_Damage{offset1=0.18000001;}; class wheel_1_1_Damper_Damage_BackAnim: wheel_1_1_Damper_Damage_BackAnim{offset1=-0.18000001;}; class wheel_1_2_Damper_Damage_BackAnim: wheel_1_2_Damper_Damage_BackAnim{offset1=-0.18000001;}; class wheel_2_1_Damper_Damage_BackAnim: wheel_2_1_Damper_Damage_BackAnim{offset1=-0.18000001;}; class wheel_2_2_Damper_Damage_BackAnim: wheel_2_2_Damper_Damage_BackAnim{offset1=-0.18000001;}; class DrivingWheel { type="rotation"; source="drivingWheel"; selection="drivewheel"; axis="drivewheel_axis"; memory=1; minValue=-1; maxValue=1; angle0=(rad 70); angle1=(rad -70); }; class Steering_1_1 { type="rotationY"; source="drivingWheel"; selection="wheel_1_1_steering"; axis="wheel_1_1_steering_axis"; memory=1; minValue="rad -90"; maxValue="rad +90"; angle0=1.0471981; angle1=-1.0471981; }; class Steering_2_1: Steering_1_1 { selection="wheel_2_1_steering"; axis="wheel_2_1_steering_axis"; angle0=1.0471981; angle1=-1.0471981; }; class IndicatorSpeed: Rotation { source="speed"; selection="mph"; axis="mph_axis"; memory=1; maxValue=28; angle0=0.17453299; angle1=-3.141593; }; class IndicatorRPM: Rotation { type="rotation"; source="rpm"; selection="rpm"; axis="rpm_axis"; memory=1; minValue=0; maxValue=7500; angle0=(rad 0); angle1=(rad 250); }; class fuel { type="rotation"; source="fuel"; selection="fuel"; axis="fuel_axis"; memory=1; minValue=0; maxValue=1; angle0=0; angle1="rad +55"; }; class prop_01 { type="rotation"; source="rpm"; selection="prop_1"; axis="prop_1_axis"; memory=1; minValue=1000; maxValue=7000; angle0="rad 30"; angle1="rad 35"; }; class daylights { type="hide"; source="rpm"; selection="daylights"; minValue=-0.8; maxValue=0.2; unhidevalue=1; sourceAddress="clamp"; }; class reverse_light { type="Hide"; selection="reverse_light"; sourceAddress="clamp"; source="Gear"; minValue = -1; maxValue = 0; hideValue = "0.2"; }; class damageHidedoor1: damageHide { selection="door1"; }; class damageHidedoor2: damageHide { selection="door2"; }; class Glass5_destruct { type="hide"; selection="glass5"; source="HitGlass5"; minValue = 0; maxValue = 1; hidevalue = 0.99999; }; 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 turn_left { type="hide"; hideValue=0; minValue=-1; maxValue=0.5; minPhase=-1; maxPhase=0.5; source="turn_left"; sourceAddress=0; selection="turn_left"; }; class turn_left_signal { type="hide"; hideValue=0; minValue=-0.5; maxValue=0.5; minPhase=-0.5; maxPhase=0.5; source="time"; sourceAddress=0; selection="turn_left"; }; class turn_right { type="hide"; hideValue=0; minValue=-1; maxValue=0.5; minPhase=-1; maxPhase=0.5; source="turn_right"; sourceAddress=0; selection="turn_right"; }; class turn_right_signal { type="hide"; hideValue=0; minValue=-0.5; maxValue=0.5; minPhase=-0.5; maxPhase=0.5; source="time"; sourceAddress=0; selection="turn_right"; }; class ani_directional { type="rotation"; angle0=0; angle1=0; axis=""; //unknown :( memory=0; minValue=0; maxValue=1000; minPhase=0; maxPhase=1000; source="user"; sourceAddress=0; selection="directional"; }; }; }; }; this the model.cfg im using i got it from the samples files Share this post Link to post Share on other sites
UK_Apollo 476 Posted December 28, 2016 We probably need to see your config.cpp also, at least the parts relevant to class inheritance and animationSources{}. Post all of it using hastebin.com or something similar if you wish. Share this post Link to post Share on other sites
Bonezz 10 Posted December 28, 2016 Spoiler #include "basicdefines_A3.hpp" class DefaultEventhandlers; class CfgPatches { class bmw_e30 { units[] = {"bmw_e30"}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Soft_F","ym_data"}; }; }; class WeaponFireGun; class WeaponCloudsGun; class WeaponFireMGun; class WeaponCloudsMGun; class CfgVehicles { class Car; class Car_F: Car { class HitPoints /// we want to use hitpoints predefined for all cars { class HitLFWheel; class HitLF2Wheel; class HitRFWheel; class HitRF2Wheel; class HitBody; class HitGlass1; class HitGlass2; class HitGlass3; class HitGlass4; }; class EventHandlers; class AnimationSources; }; class bmw_e30_base: Car_F { model = "\bmw_e30\bmw_e30"; /// simple path to model picture = "\YM_data\UI\map_car_E30.paa"; /// icon in map Icon = "\YM_data\UI\map_car_E30.paa"; /// icon in map displayName = "1991 BMW M3 E90"; /// displayed in Editor hiddenSelections[] = {"camo1","license1","license2","license3","license4","license5","license6"}; ///we want to allow changing the color of this selection hiddenSelectionsTextures[] = {"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""}; author = "Mado S.Yaghi"; terrainCoef = 2; /// different surface affects this car more, stick to tarmac turnCoef = 3; /// should match the wheel turn radius precision = 10; brakeDistance = 3; fireResistance = 5; /// lesser protection against fire than tanks armor = 65; /// just some protection against missiles, collisions and explosions cost = 50000; transportMaxBackpacks = 3; /// just some backpacks fit the trunk by default transportSoldier = 3; /// number of cargo except driver slingLoadCargoMemoryPoints[]= { "SlingLoadCargo1", "SlingLoadCargo2", "SlingLoadCargo3", "SlingLoadCargo4" }; /// some values from parent class to show how to set them up wheelDamageRadiusCoef = 0.9; /// for precision tweaking of damaged wheel size wheelDestroyRadiusCoef = 0.4; /// for tweaking of rims size to fit ground maxFordingDepth = 0.5; /// how high water would damage the engine of the car waterResistance = 1; /// if the depth of water is bigger than maxFordingDepth it starts to damage the engine after this time crewCrashProtection = 0.25; /// multiplier of damage to crew of the vehicle => low number means better protection driverLeftHandAnimName = "drivewheel"; /// according to what bone in model of car does hand move driverRightHandAnimName = "drivewheel"; /// beware, non-existent bones may cause game crashes (even if the bones are hidden during play) class Library { year="1991"; manufacturer="BMW"; model="M3 E30"; engineLayout="S6"; country="DEU"; libTextDesc=""; }; class eventhandlers {}; class TransportItems /// some first aid kits in trunk according to safety regulations { }; class AnimationSources {}; class UserActions {}; class Turrets {}; /// doesn't have any gunner nor commander class HitPoints: HitPoints { class HitLFWheel: HitLFWheel {armor=0.125; passThrough=0;}; /// it is easier to destroy wheels than hull of the vehicle class HitLF2Wheel: HitLF2Wheel {armor=0.125; passThrough=0;}; class HitRFWheel: HitRFWheel {armor=0.125; passThrough=0;}; class HitRF2Wheel: HitRF2Wheel {armor=0.125; passThrough=0;}; class HitFuel {armor=0.50; material=-1; name="fueltank"; visual=""; passThrough=0.2;}; /// correct points for fuel tank, some of the damage is aFRLied to the whole class HitEngine {armor=0.50; material=-1; name="engine"; visual=""; passThrough=0.2;}; class HitBody: HitBody {name = "body"; visual="camo1"; passThrough=1;}; /// all damage to the hull is aFRLied to total damage class HitGlass1: HitGlass1 {armor=0.10;}; /// it is pretty easy to puncture the glass but not so easy to remove it class HitGlass2: HitGlass2 {armor=0.10;}; class HitGlass3: HitGlass3 {armor=0.10;}; class HitGlass4: HitGlass4 {armor=0.10;}; }; driverAction = driver_offroad01; /// what action is going the driver take inside the vehicle. Non-existent action makes the vehicle inaccessible cargoAction[] = {passenger_low01}; /// the same of all the crew hideWeaponsDriver = true; hideWeaponsCargo = true; getInAction = GetInLow; /// how does driver look while getting in getOutAction = GetOutLow; /// and out cargoGetInAction[] = {"GetInLow"}; /// and the same for the rest, if the array has fewer members than the count of crew, the last one is used for the rest cargoGetOutAction[] = {"GetOutLow"}; /// that means all use the same in this case #include "sounds.hpp" /// sounds are in a separate file to make this one simple #include "pip.hpp" /// PiPs are in a separate file to make this one simple #include "physx.hpp" /// PhysX settings are in a separate file to make this one simple /// memory points where do tracks of the wheel appear // front left track, left offset memoryPointTrackFLL = "TrackFLL"; // front left track, right offset memoryPointTrackFLR = "TrackFLR"; // back left track, left offset memoryPointTrackBLL = "TrackBLL"; // back left track, right offset memoryPointTrackBLR = "TrackBLR"; // front right track, left offset memoryPointTrackFRL = "TrackFRL"; // front right track, right offset memoryPointTrackFRR = "TrackFRR"; // back right track, left offset memoryPointTrackBRL = "TrackBRL"; // back right track, right offset memoryPointTrackBRR = "TrackBRR"; class Damage { tex[]={}; mat[]= { "ym_data\common\metallic_co.rvmat", "ym_data\common\metallic1_damage.rvmat", "ym_data\common\metallic1_destruct.rvmat", "ym_data\common\glass_veh.rvmat", "ym_data\common\glass_veh_damage.rvmat", "ym_data\common\glass\glass_destruct.rvmat" }; }; class Exhausts /// specific exhaust effects for the car { class Exhaust1 /// the car has two exhausts - each on one side { position = "exhaust1_pos"; /// name of initial memory point direction = "exhaust1_dir"; /// name of memory point for exhaust direction effect = "ExhaustEffectOffroad"; /// what particle effect is it going to use }; class Exhaust2 { position = "exhaust2_pos"; direction = "exhaust2_dir"; effect = "ExhaustEffectOffroad"; }; }; class Reflectors /// only front lights are considered to be reflectors to save CPU { class LightCarHeadL01 /// lights on each side consist of two bulbs with different flares { color[] = {1900, 1800, 1700}; /// approximate colour of standard lights ambient[] = {5, 5, 5}; /// nearly a white one position = "LightCarHeadL01"; /// memory point for start of the light and flare direction = "LightCarHeadL01_end"; /// memory point for the light direction hitpoint = "Light_L"; /// point(s) in hitpoint lod for the light (hitPoints are created by engine) selection = "Light_L"; /// selection for artificial glow around the bulb, not much used any more size = 1; /// size of the light point seen from distance innerAngle = 100; /// angle of full light outerAngle = 179; /// angle of some light coneFadeCoef = 10; /// attenuation of light between the above angles intensity = 1; /// strength of the light useFlare = true; /// does the light use flare? dayLight = false; /// switching light off during day saves CPU a lot flareSize = 1.0; /// how big is the flare class Attenuation { start = 1.0; constant = 0; linear = 0; quadratic = 0.25; hardLimitStart = 30; /// it is good to have some limit otherwise the light would shine to infinite distance hardLimitEnd = 60; /// this allows adding more lights into scene }; }; class LightCarHeadL02: LightCarHeadL01 { position = "LightCarHeadL02"; direction = "LightCarHeadL02_end"; FlareSize = 0.5; /// side bulbs aren't that strong }; class LightCarHeadR01: LightCarHeadL01 { position = "LightCarHeadR01"; direction = "LightCarHeadR01_end"; hitpoint = "Light_R"; selection = "Light_R"; }; class LightCarHeadR02: LightCarHeadR01 { position = "LightCarHeadR02"; direction = "LightCarHeadR02_end"; FlareSize = 0.5; }; }; aggregateReflectors[] = {{"LightCarHeadL01", "LightCarHeadL02"}, {"LightCarHeadR01", "LightCarHeadR02"}}; /// aggregating reflectors helps the engine a lot }; class bmw_e30_stock: bmw_e30_base { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_man_1"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "1991 BMW M3 E30 "; hiddenSelectionsTextures[] = {"YM_data\common\black.paa"}; class EventHandlers { init="(_this select 0) execVM ""\bmw_e30\scripts\license.sqf"";"; }; }; class bmw_e30_black: bmw_e30_base { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_man_1"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "1991 BMW E30 (BLACK)"; hiddenSelectionsTextures[] = {"YM_data\common\black.paa"}; class EventHandlers { init="(_this select 0) execVM ""\bmw_e30\scripts\license.sqf"";"; }; }; class bmw_e30_Blue: bmw_e30_base { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_man_1"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "1991 BMW E30 (BLUE)"; hiddenSelectionsTextures[] = {"YM_data\common\blue.paa"}; class EventHandlers { init="(_this select 0) execVM ""\bmw_e30\scripts\license.sqf"";"; }; }; class bmw_e30_Red: bmw_e30_base { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_man_1"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "1991 BMW E30 (Red)"; hiddenSelectionsTextures[] = {"YM_data\common\red.paa"}; class EventHandlers { init="(_this select 0) execVM ""\bmw_e30\scripts\license.sqf"";"; }; }; class bmw_e30_White: bmw_e30_base { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_man_1"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "1991 BMW E30 (White)"; hiddenSelectionsTextures[] = {"YM_data\common\white.paa"}; class EventHandlers { init="(_this select 0) execVM ""\bmw_e30\scripts\license.sqf"";"; }; }; class bmw_e30_Yellow: bmw_e30_base { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_man_1"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "1991 BMW E30 (Yellow)"; hiddenSelectionsTextures[] = {"YM_data\common\yellow.paa"}; class EventHandlers { init="(_this select 0) execVM ""\bmw_e30\scripts\license.sqf"";"; }; }; class bmw_e30_Purple: bmw_e30_base { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_man_1"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "1991 BMW E30 (Purple)"; hiddenSelectionsTextures[] = {"YM_data\common\purple.paa"}; class EventHandlers { init="(_this select 0) execVM ""\bmw_e30\scripts\license.sqf"";"; }; }; class bmw_e30_Orange: bmw_e30_base { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_man_1"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "1991 BMW E30 (Orange)"; hiddenSelectionsTextures[] = {"YM_data\common\orange.paa"}; class EventHandlers { init="(_this select 0) execVM ""\bmw_e30\scripts\license.sqf"";"; }; }; class bmw_e30_Grey: bmw_e30_base { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_man_1"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "1991 BMW E30 (Grey)"; hiddenSelectionsTextures[] = {"YM_data\common\grey.paa"}; class EventHandlers { init="(_this select 0) execVM ""\bmw_e30\scripts\license.sqf"";"; }; }; class bmw_e30_DightBlue: bmw_e30_base { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_man_1"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "1991 BMW E30 (Light Blue)"; hiddenSelectionsTextures[] = {"YM_data\common\darkblue.paa"}; class EventHandlers { init="(_this select 0) execVM ""\bmw_e30\scripts\license.sqf"";"; }; }; }; here man thanks for replying . Share this post Link to post Share on other sites
UK_Apollo 476 Posted December 28, 2016 Try commenting out class AnimationSources {}; class TransportItems /// some first aid kits in trunk according to safety regulations { }; // class AnimationSources {}; class UserActions {}; 1 Share this post Link to post Share on other sites
Bonezz 10 Posted December 28, 2016 thanks man that worked . one more thing would u know why my glass is doing this when its destroyed https://gyazo.com/4281002c5987ebb18466451f4b9df420 https://gyazo.com/2bc7eff11e52e7fbbcd04b16adfd4fa4 1 hour ago, UK_Apollo said: Try commenting out class AnimationSources {}; class TransportItems /// some first aid kits in trunk according to safety regulations { }; // class AnimationSources {}; class UserActions {}; Share this post Link to post Share on other sites
UK_Apollo 476 Posted December 29, 2016 I guess that your window glass skeleton bones are not properly separated in the .p3d from other objects, so when the glass destruction animation is played, you are getting 'tearing' as it removes the glass but also pulls other bits of the car with it. Select the glass selections in the model, probably names like "glass1", "glass2" etc. and apply Structure > Topology > Split. That might be enough to fix it. 1 Share this post Link to post Share on other sites
Bonezz 10 Posted December 29, 2016 6 hours ago, UK_Apollo said: I guess that your window glass skeleton bones are not properly separated in the .p3d from other objects, so when the glass destruction animation is played, you are getting 'tearing' as it removes the glass but also pulls other bits of the car with it. Select the glass selections in the model, probably names like "glass1", "glass2" etc. and apply Structure > Topology > Split. That might be enough to fix it. thanks man Share this post Link to post Share on other sites