Jump to content
Sign in to follow this  
odyseus

CO_pilot setup for ARMA 3

Recommended Posts

Hello guys,

I have tried many ways with not lucky so far. Does anyone have any idea on how to set it up. Can you walk me through it!? thx

memory point should be the same as the config ones. in my case

memorypointsgetingunner = "pos copilot";

memorypointsgetingunnerdir = "pos copilot dir";

Not sure about proxy : what should i name the proxy or what address it is suppose to have. pilot.02 or gunner. 01. or co-pilot ???

as far as config goes i have this.

class Turrets: Turrets {

class CopilotTurret: CopilotTurret {

caneject = 0;

commanding = -3;

gunneraction = "pilot_Heli_Transport_01";

gunnercompartments = "Compartment3";

gunnerdoor = "";

gunnergetinaction = "GetInHeli_Transport_01Cargo";

gunnergetoutaction = "GetOutLow";

gunnerinaction = "pilot_Heli_Transport_01";

gunnerlefthandanimname = "lever_copilot";

gunnerleftleganimname = "";

gunnerrighthandanimname = "stick_copilot";

gunnerrightleganimname = "";

lodturnedin = 1100;

lodturnedout = 1100;

memorypointsgetingunner = "pos copilot";

memorypointsgetingunnerdir = "pos copilot dir";

precisegetinout = 0;

proxyindex = 3;

};

class MainTurret: MainTurret {

isCopilot = 0;

body = "mainTurret";

gun = "mainGun";

minElev = -60;

maxElev = 30;

initElev = -30;

minTurn = -173;

maxTurn = -3;

initTurn = -70;

soundServo[] = {"", 0.010000, 1.000000};

stabilizedInAxes = "StabilizedInAxesNone";

weapons[] = {"M240_veh"};

magazines[] = {"100Rnd_762x51_M240", "100Rnd_762x51_M240", "100Rnd_762x51_M240"};

gunBeg = "muzzle";

gunEnd = "chamber";

gunnerName = "DoorGunner";

memoryPointsGetInGunner = "pos Gunner";

memoryPointsGetInGunnerDir = "pos Gunner dir";

gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Transport_01_Optics_Gunner_F";

memoryPointGunnerOptics = "gunnerview";

gunnerOutOpticsShowCursor = 1;

gunnerOpticsShowCursor = 0;

gunnerAction = "pilot_Heli_Transport_01";

gunnerInAction = "pilot_Heli_Transport_01";

commanding = -3;

primaryGunner = 0;

class ViewOptics {

initAngleX = 0;

minAngleX = -30;

maxAngleX = 30;

initAngleY = 0;

minAngleY = -100;

maxAngleY = 100;

initFov = 0.700000;

minFov = 0.250000;

maxFov = 1.100000;

};

gunnerCompartments = "Compartment2";

};

class LeftDoorGun : MainTurret {

isCopilot = 0;

body = "Turret_2";

gun = "Gun_2";

animationSourceBody = "Turret_2";

animationSourceGun = "Gun_2";

weapons[] = {"M240_veh_2"};

magazines[] = {"100Rnd_762x51_M240", "100Rnd_762x51_M240", "100Rnd_762x51_M240"};

gunBeg = "muzzle_2";

gunEnd = "chamber_2";

gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Transport_01_Optics_Gunner_F";

memoryPointsGetInGunner = "pos Gunner";

memoryPointsGetInGunnerDir = "pos Gunner dir";

proxyIndex = 2;

gunnerOutOpticsShowCursor = 1;

gunnerOpticsShowCursor = 0;

memoryPointGunnerOptics = "gunnerview_2";

selectionFireAnim = "zasleh_1";

gunnerName = "CrewChief";

commanding = -2;

minElev = -50;

maxElev = 30;

initElev = -30;

minTurn = 3;

maxTurn = 173;

initTurn = 80;

primaryGunner = 1;

};

};

Please help, in game i am not getting anyopition to get in as co_pilot

Edited by Odyseus

Share this post


Link to post
Share on other sites

try naming the proxy gunner.01 and setting the proxy index to 1. I belive the 01 and 1 are connected through the config. That may be your issue.

Share this post


Link to post
Share on other sites

Thank you for the prompt reply Sw4l, Since there is already one gunner.001 and gunner.002. I have tried something similar to what you said and it did not work i tried to rename the proxy to gunner.000 and changed the proxy index to 0 and i also try this with the number 3, in this case gunner.003 and proxy index 3. It did not work. Any other ideas guys?

---------- Post added at 06:59 AM ---------- Previous post was at 05:47 AM ----------

Ok guys thank you very much, specilly to Swa4l. After reading his post it made me think that maybe the problem was somewhere in my class. Thank you sir! Problem solved! :D

Share this post


Link to post
Share on other sites

proxy is defined that way in the cfg

	proxyType="CPGunner";	//proxy has to be named according to this in p3d (proxy:Gunner.XX or proxy:Commander.XX); ProxyType="CP_xyz" (_xyz= Gunner/Commander)
proxyIndex=1; //number behind proxy (Commander.XX -> XX=proxyindex) 

if you cant get in make sure your turret class is proper and the turret actually exists ingame. You can define memory points for getting in different to standard

memoryPointsGetInGunner="pos gunner"; //"xyz" related to mempoint name in p3d
memoryPointsGetInGunnerDir="pos gunner dir";

Share this post


Link to post
Share on other sites

Would it be possible to use a passenger proxy as well?

I have an helicopter from A2 that has the copilot seat taken by the first passenger.

Would it be possible to use that or would i necessarily have to rename the proxy as "...gunner.001"?

Share this post


Link to post
Share on other sites

Hard to find info about this. I have a half working copilot setup here. Maybe it's useful for someone. Don't want to get this lost so here it is:

One problem I have is a weird boarding issue in MP with other players. Sometimes they get stuck till the other person gets out. Not sure if related to my config:

It includes a copilot and 2 Door gunners (FFV). It is from my An-2

First you inherit the classes of course:


class CfgVehicles {

class Air;

class Plane: Air
{
	class NewTurret;

	class Sounds;
	class AnimationSources;	
	class HitPoints
		{
			class HitHull;
		};
};

then you start your own plane:


class sab_an2_BASE : Plane {

	displayName = "sab_An2";								
	model = "\sab_an2\an2.p3d";													
	icon = "sab_an2\data\icon_an2_ca.paa"; 
	picture = "sab_an2\data\picture_an2_ca.paa"; 
	mapSize = 20;
	hasGunner = true;   // test v 091
	fuelCapacity = 800;
	hascommander = false;  // ?
	startEngine = true;
	gearRetracting  = false;
	fov = 0.7;
	cabinOpening = false;
	driverCompartments = "Compartment1";
	cargoCompartments[] = {"Compartment1"};
	driverAction = "driver_Truck_02";
	crew = "C_man_shorts_2_F";

	// pilot + copilot + gunners ***************************

	driverIsCommander = true;	
	ejectDeadDriver = true;
	hideWeaponsDriver = true;
	hideWeaponsCargo = false;
	memoryPointsGetInDriver = "pos driver";
	memoryPointsGetInDriverDir = "pos driver dir";
	driverLeftHandAnimName = "stick_pilot";
	driverRightHandAnimName = "stick_pilot";
	driverLeftLegAnimName = "pedal1";
	driverRightLegAnimName = "pedal1";



	class Turrets {
		// Copilot and Door Gunner Turrets  - door gunner shouldn't be able to take control. Don't know how to prevent this : (

		class MainTurret : NewTurret {
			// copilot
			commanding = -1;
			gunnerName = "Co-Pilot";
			gunnerCompartments = "Compartment1";
			gunnerUsesPilotView = true;
			primaryGunner = 0;

			proxyIndex = 1;
			memoryPointsGetInGunner = "pos gunner";
			memoryPointsGetInGunnerDir = "pos gunner dir";
			gunnergetinaction = "GetInLow";
			gunnergetoutaction = "GetOutHigh";
			caneject = 1;
			weapons[] = {};
			magazines[] = {};
			gunnerForceOptics = false;
			gunnerAction = "driver_Truck_02";
			gunnerlefthandanimname = "stick_pilot_2";
			gunnerrighthandanimname = "stick_pilot_2";
			gunnerLeftLegAnimName = "pedal2";
			gunnerRightLegAnimName = "pedal2";


			minElev = -60;
			maxElev = 10;
			initElev = 0;
			minTurn = -70;
			maxTurn = 70;
			initTurn = 0;
			ejectDeadGunner = 1;


		};

		class GunnerTurret : NewTurret {
			// door seat 
			enableCopilot = false;
			commanding = -2;
			gunnerName = "Door seat 1";
			gunnerCompartments = "Compartment1";
			gunnerUsesPilotView = false;
			gunnerAction = "passenger_bench_1";    
			primaryGunner = 0;

			proxyIndex = 2;
			memoryPointsGetInGunner = "pos gunner";
			memoryPointsGetInGunnerDir = "pos gunner dir";
			gunnergetinaction = "GetInLow";
			gunnergetoutaction = "GetOutHigh";
			caneject = 1;
			weapons[] = {};
			magazines[] = {};
			gunnerForceOptics = false;

			ejectDeadGunner = 1;
			isPersonTurret = 1;   // enable FFV

			minElev = -60;
			maxElev = 10;
			initElev = 0;
			minTurn = -70;
			maxTurn = 70;
			initTurn = 0;

			class ViewPilot : ViewPilot {
				initFov = 1;
				minFov = 0.3;
				maxFov = 1.2;
				initAngleX = 0;
				minAngleX = -75;
				maxAngleX = 85;
				initAngleY = 0;
				minAngleY = -170;
				maxAngleY = 170;
				minMoveX = -0.2;
				maxMoveX = 0.2;
				minMoveY = -0.025;
				maxMoveY = 0.1;
				minMoveZ = -0.2;
				maxMoveZ = 0.2; 
			}; 
		};

		class GunnerTurret2 : NewTurret {
			// door seat 
			enableCopilot = false;
			commanding = -3;
			gunnerName = "Door Seat 2";
			gunnerCompartments = "Compartment1";
			gunnerUsesPilotView = false;
			gunnerAction = "passenger_bench_1";    
			primaryGunner = 0;

			proxyIndex = 3;
			memoryPointsGetInGunner = "pos gunner";
			memoryPointsGetInGunnerDir = "pos gunner dir";
			gunnergetinaction = "GetInLow";
			gunnergetoutaction = "GetOutHigh";
			caneject = 1;
			weapons[] = {};
			magazines[] = {};
			gunnerForceOptics = false;

			ejectDeadGunner = 1;
			isPersonTurret = 1;   // enable FFV

			minElev = -60;
			maxElev = 10;
			initElev = 0;
			minTurn = -70;
			maxTurn = 70;
			initTurn = 0;

			class ViewPilot : ViewPilot {
				initFov = 1;
				minFov = 0.3;
				maxFov = 1.2;
				initAngleX = 0;
				minAngleX = -75;
				maxAngleX = 85;
				initAngleY = 0;
				minAngleY = -170;
				maxAngleY = 170;
				minMoveX = -0.2;
				maxMoveX = 0.2;
				minMoveY = -0.025;
				maxMoveY = 0.1;
				minMoveZ = -0.2;
				maxMoveZ = 0.2; 
			}; 
		};

	};	


then comes all the other stuff.

Proxies are pilot.001, gunner.001, gunner.002, gunner.003

if anyone knows how to prevent door gunners from being able to take control or solve my mp boarding issue I'd be grateful.

Hope this helps other people even with the faulty state it may be in : )

Share this post


Link to post
Share on other sites
Would it be possible to use a passenger proxy as well?

I have an helicopter from A2 that has the copilot seat taken by the first passenger.

Would it be possible to use that or would i necessarily have to rename the proxy as "...gunner.001"?

You would have to adjust the config for this. Idk how that would work (maybe try CPPassenger? just a guess). But apart from that, yes it should work with that as well i think. It's just a naming thing - either you rename the proxy selection in the model, or change the config...

Share this post


Link to post
Share on other sites

In the end i just fixed the proxies in the model and switched to gunner instead, it was faster than banging my head over the config viewer. :D

Share this post


Link to post
Share on other sites

class CoPilotTurret: MainTurret
		{
			isCopilot = 1;
			weapons[] = {};
			magazines[] = {};
			gun = "";
			selectionFireAnim = "";
			CanEject = 0;
			commanding = -1;
			gunnerAction = "CH47_Pilot_EP1";
			gunnerInAction = "CH47_Pilot_EP1";
			gunnerGetInAction = "GetInHeli_Transport_01Cargo";
			gunnerGetOutAction = "GetOutLow";
			gunnerName = "Co-Pilot";
			gunnerNotSpawned = 1;
			gunnerLeftHandAnimName = "lever_pilot";
			gunnerRightHandAnimName = "stick_pilot";
			gunnerLeftLegAnimName = "";
			gunnerRightLegAnimName = "";
			gunnerCompartments = "Compartment3";
			GunnerDoor = "";
			memoryPointGunnerOptics = "";
			memoryPointsGetInGunner = "pos codriver";
			memoryPointsGetInGunnerDir = "pos codriver dir";
			maxHorizontalRotSpeed = 3;
			maxVerticalRotSpeed = 3;
			preciseGetInOut = 0;
			LODTurnedIn = 1100;
			LODTurnedOut = 1100;		
			turretCanSee = 15;
			proxyIndex = 1;
			primaryGunner = 1;
		};

Thats my co-pilot turret class. isCopilot = 1; and primaryGunner = 1; are the most important. Primary gunner means you can do conditions in user actions that only relate to the co-pilot with player ==gunner. isCopilot tells the game that the turret is the co=pilot( other turrets should have isCopilot = 0;)

Share this post


Link to post
Share on other sites

Yap thanks guys. Hope this helps other people so they don't have to figure it out by themselves.

Btw, one last thing that bugs me. When I have AI on a plane with me and I switch seats sometimes I can't switch back. Is there a way to change this?

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  

×