Jump to content
Sign in to follow this  
LincolnBurrows

Few issues I'm having with my custom vehicle.

Recommended Posts

Hey guys,

 

I have made a custom vehicle where you can shoot out of the back of it.

The problems that I am having are when switching to the turret seat from driver or passenger, it makes you stand up when you are in the turret. The other issue I am having is the smoke countermeasure I added, I added the weapon and everything worked like sounds etc except the actual deployment of the smokes (no smoke grenades appear). Was wondering if anyone here could point me in the right direction.

 

Thanks.

Share this post


Link to post
Share on other sites

Hey guys,

 

I have made a custom vehicle where you can shoot out of the back of it.

The problems that I am having are when switching to the turret seat from driver or passenger, it makes you stand up when you are in the turret. The other issue I am having is the smoke countermeasure I added, I added the weapon and everything worked like sounds etc except the actual deployment of the smokes (no smoke grenades appear). Was wondering if anyone here could point me in the right direction.

 

Thanks.

Please post your config, as it will allow us to have a look. 

Share this post


Link to post
Share on other sites

Please post your config, as it will allow us to have a look. 

 
Here ya go

class CfgPatches {

class Hummer{

units[] = {"Hummer"};

weapons[] = {};

requiredVersion = 0.1;

requiredAddons[] = {"A3_Soft_F"};

};

};

class DefaultEventhandlers; // External class reference

class CfgVehicles

{

class LandVehicle; // External class reference

class Car : LandVehicle {

class HitPoints; // External class reference

class NewTurret; // External class reference

};

class Car_F : Car {

class Turrets {

class MainTurret : NewTurret {

class ViewOptics; // External class reference

};

};

class HitPoints {

class HitLFWheel; // External class reference

class HitLF2Wheel; // External class reference

class HitRFWheel; // External class reference

class HitRF2Wheel; // External class reference

class HitBody; // External class reference

class HitEngine; // External class reference

class HitGlass1 {};

class HitGlass2; // External class reference

class HitGlass3; // External class reference

class HitGlass4; // External class reference

class HitGlass5; // External class reference

class HitGlass6; // External class reference

};

class EventHandlers; // External class reference

class AnimationSources; // External class reference

};

class Hummer: Car_F

{

model = "\HummerH1\HummerH1"; /// simple path to model

displayName = "Hummer H1 (Base)";

weapons[] = {"TruckHorn2","SmokeLauncher"};

magazines[] = {"SmokeLauncherMag"};

hiddenSelections[] = {"camo1"};

hiddenSelectionsTextures[]= {"#(argb,8,8,3)color(0,0,0,1.0,CO)"};

terrainCoef = 0; /// different surface affects this car more, stick to tarmac

turnCoef = 2.5; /// should match the wheel turn radius

precision = 10; /// how much freedom has the AI for its internal waypoints - lower number means more precise but slower approach to way

fireResistance = 5; /// lesser protection against fire than tanks

armor = 100; /// just some protection against missiles, collisions and explosions

smokeLauncherGrenadeCount = 16;

smokeLauncherVelocity = 14;

smokeLauncherOnTurret = 0;

smokeLauncherAngle = 360;

cost = 50000; /// how likely is the enemy going to target this vehicle

acceleration=15;

class PlayerSteeringCoefficients

{

turnIncreaseConst=1;

turnIncreaseLinear=3;

turnIncreaseTime=0;

turnDecreaseConst=8;

turnDecreaseLinear=0;

turnDecreaseTime=0;

maxTurnHundred=1;

};

transportMaxBackpacks = 3; /// just some backpacks fit the trunk by default

transportSoldier = 5;

cargoProxyIndexes[] = {1,2,3,5,6};

getInProxyOrder[]={1,2,3,4,5,6,7};

wheelDamageRadiusCoef = 0.9;

wheelDestroyRadiusCoef = 0.4;

maxFordingDepth = 0.5;

waterResistance = 1;

crewCrashProtection = 0.25;

driverLeftHandAnimName = "drivewheel";

driverRightHandAnimName = "drivewheel";

class AnimationSources

{

class door_r // Marquer le nom qui est défini à côté de "source" dans le fichier model.cfg

{

source = "door";

animPeriod = 2; // Durée de l'animation

initPhase=0;

sound="ServoDoorsSound";

};

class door_l // Marquer le nom qui est défini à côté de "source" dans le fichier model.cfg

{

source = "door";

animPeriod = 2; // Durée de l'animation

initPhase=0;

sound="ServoDoorsSound";

};

};

class CargoTurret;

class Turrets: Turrets

{

class CargoTurret_01: CargoTurret

{

gunnerAction="passenger_flatground_3";

memoryPointsGetInGunner="pos cargo RR";

memoryPointsGetInGunnerDir="pos cargo RR dir";

gunnerName="$STR_A3_TURRETS_CARGOTURRET_R2";

proxyIndex=4;

isPersonTurret=1;

canHideGunner=0;

allowLauncherIn=0;

allowLauncherOut=0;

enabledByAnimationSource="door_r";

class TurnIn /// limits for gunner turned in

{

limitsArrayTop[]=

{

{25,-35},

{25,35}

};

limitsArrayBottom[]=

{

{-25,95},

{-25,25},

{-25,25},

{-25,25}

};

};

class dynamicViewLimits

{

CargoTurret_01[]={0,95};

};

};

class CargoTurret_02: CargoTurret_01

{

gunnerAction="passenger_flatground_2";

gunnerName="$STR_A3_TURRETS_CARGOTURRET_L2";

memoryPointsGetInGunner="pos cargo LR";

memoryPointsGetInGunnerDir="pos cargo LR dir";

proxyIndex=7;

enabledByAnimationSource="door_r";

class TurnIn

{

limitsArrayTop[]=

{

{25,-35},

{25,-35}

};

limitsArrayBottom[]=

{

{-25,-95},

{-25,-25},

{-25,-25},

{-25,-25}

};

};

class dynamicViewLimits

{

CargoTurret_02[]={0,-95};

};

};

};

class HitPoints : HitPoints

{

class HitLFWheel:HitLFWheel {armor=1.75; passThrough=0;}; /// it is easier to destroy wheels than hull of the vehicle

class HitLF2Wheel:HitLF2Wheel{armor=1.75; passThrough=0;};

class HitRFWheel:HitRFWheel {armor=1.75; passThrough=0;};

class HitRF2Wheel:HitRF2Wheel{armor=1.75; passThrough=0;};

class HitFuel {armor=5; material=-1; name="fueltank"; visual=""; passThrough=0.002;}; /// correct points for fuel tank, some of the damage is aFRLied to the whole

class HitEngine {armor=5; material=-1; name="engine"; visual=""; passThrough=0.2;};

class HitBody: HitBody {name = "body"; visual="camo1"; passThrough=0;}; /// all damage to the hull is aFRLied to total damage

class HitGlass1:HitGlass1 {armor=3;}; /// it is pretty easy to puncture the glass but not so easy to remove it

class HitGlass2:HitGlass2 {armor=3;};

class HitGlass3:HitGlass3 {armor=3;};

class HitGlass4:HitGlass4 {armor=3;};

class HitGlass5:HitGlass5 {armor=3;};

class HitGlass6:HitGlass6 {armor=3;};

class HitGlass7:HitGlass6 {armor=3;};

class HitGlass8:HitGlass6 {armor=3;};

class HitGlass9:HitGlass6 {armor=3;};

};

driverAction = driver_high01; /// what action is going the driver take inside the vehicle. Non-existent action makes the vehicle inaccessible

cargoAction[] = {passenger_low01, passenger_generic01_leanleft, passenger_generic01_foldhands, passenger_flatground_crosslegs, passenger_flatground_crosslegs, passenger_flatground_crosslegs, passenger_flatground_crosslegs}; /// the same of all the crew

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 /// damage changes material in specific places (visual in hitPoint)

{

tex[]={};

mat[]=

{

"A3\data_f\glass_veh.rvmat", /// another material

"A3\data_f\Glass_veh_damage.rvmat", /// changes into different ones

"A3\data_f\Glass_veh_damage.rvmat"

};

};

class Exhausts /// specific exhaust effects for the car

{

class Exhaust1 /// the car has two exhausts - each on one side

{

position = "exhaust"; /// name of initial memory point

direction = "exhaust_dir"; /// name of memory point for exhaust direction

effect = "ExhaustsEffect"; /// what particle effect is it going to use

};

class Exhaust2

{

position = "exhaust2_pos";

direction = "exhaust2_dir";

effect = "ExhaustsEffect";

};

};

class Reflectors

{

class LightCarHeadL01

{

color[]={1900,1300,950};

ambient[]={5,5,5};

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;

innerAngle=100;

outerAngle=179;

coneFadeCoef=10;

intensity=1;

useFlare=0;

dayLight=0;

flareSize=1;

class Attenuation

{

start=1;

constant=0;

linear=0;

quadratic=0.25;

hardLimitStart=30;

hardLimitEnd=60;

};

};

class LightCarHeadR01:LightCarHeadL01

{

position = "LightCarHeadR01";

direction = "LightCarHeadR01_end";

hitpoint = "Light_R";

selection = "Light_R";

};

};

aggregateReflectors[] = {{"LightCarHeadL01"}, {"LightCarHeadR01"}}; /// aggregating reflectors helps the engine a lot

/// it might be even good to aggregate all lights into one source as it is done for most of the cars

};

};

};

Share this post


Link to post
Share on other sites

Hello,

 

It seems like you need to define the cargoGetInAction and cargoGetOutAction for your turret passenger as it using what you have stated in your config. I have posted it below. 

 

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

 

Hope this can get the ball rolling. 

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×