Jump to content
Sign in to follow this  
Messiah

I really do give up

Recommended Posts

I'm trying to keep things simple, I really am. I just want to begin with a stable base where my vehicle references the stock 50cal Hummer, and from there I begin to add my alterations to the config and model.cfg...

thus I wanted to write an easy config that just means the vehicle drives, fires its main gun and the lights etc work. Now, the model is set up correctly, I've been through it a thousand times and this isn't exactly my first ever model.

But no matter how many times I read the example configs, read mine, and try and bug fix, I seem to create more errors than I solve.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">#include "basicDefines.hpp"

class CfgPatches

{

class ukf_jackal_mwmik

{

units[] = {ukf_jackal_mwmik};

weapons[] = {};

requiredVersion = 1.14;

requiredAddons[] = {

CAData,CACharacters,CAWeapons,CASounds,CA_Anims_Char,

CAweapons3_aks74pso,CAweapons3_ksvk,CAweapons3_m107

};

};

};

class CfgVehicleClasses

{

class UKF_Wheeled

{

displayName = "UKF Wheeled";

};

};

class cfgvehicles

{

class car;

class hmmwv50 : car

{

class mainturret;

};

class ukf_jackal_mwmik : hmmwv50

{

Model = "\ukf_jackal_mwmik\ukf_jackal.p3d";

Picture="\Ca\wheeled\data\ico\HMMWV50_CA.paa";

Icon="\Ca\wheeled\data\map_ico\icomap_hmwv50_CA.paa";

vehicleClass = "UKF_Wheeled";

displayName = "Jackal MWMIK HMG (D)";

armor = 400;

damageResistance = 0.01;

transportSoldier = 1;

castDriverShadow = true;

driverAction = HMMWV_Driver;

cargoAction[] = {HMMWV_Cargo01};

nameSound="truck";

fuelCapacity=500;

maxSpeed=130;

transportMaxMagazines = 999;

transportMaxWeapons =999;

terraincoef = 1.0;

class Library

{

libTextDesc = "Blurb about the Jackal";

};

class Turrets

{

class MainTurret : Mainturret

{

outGunnerMayFire = 1;

memoryPointGun = "machinegun";

body = "mainTurret";

gun = "mainGun";

weapons[] = {M2};

magazines[] = {100Rnd_127x99_M2,100Rnd_127x99_M2,100Rnd_127x99_M2,100Rnd_127x99_M2,100Rnd_127x99_M2,100R

nd_127x99_M2,100Rnd_127x99_M2,100Rnd_127x99_M2};

gunnerAction = "HMMWV_Gunner01";

gunBeg = "usti hlavne"; //gunBeg = endpoint of the gun

gunEnd = "konec hlavne"; //gunEnd = chamber of the gun

soundServo[]={\ca\wheeled\Data\Sound\servo3, db-75, 0.9};

minElev = -5; maxElev = +40;

minTurn = -360; maxTurn = +360;

gunnerOpticsModel = "\ca\weapons\optika_empty";

hasGunner= 1;

gunnerForceOptics = 0;

startEngine = 0;

class HitTurret {armor=0.8;material=51;name="vez";visual="vez";passThrough=0;};

class HitGun {armor=0.4;material=52;name="zbran";visual="zbran";passThrough=0;};

castGunnerShadow = 1;

class ViewOptics

{

initAngleX=0; minAngleX=-30; maxAngleX=+30;

initAngleY=0; minAngleY=-100; maxAngleY=+100;

initFov=0.42; minFov=0.22; maxFov=0.64;

};

class ViewGunner

{

initAngleX=5; minAngleX=-30; maxAngleX=+30;

initAngleY=0; minAngleY=0; maxAngleY=0;

initFov=0.42; minFov=0.22; maxFov=0.95;

};

};

};

};

};

class CfgNonAIVehicles

{

class ProxyWeapon;

class ProxyAmmoInTruck;

class Proxyukf_hmg: ProxyWeapon {model = "\ukf_jackal_mwmik\ukf_hmg"; simulation = "alwaysshow";}

class Proxyukf_gpmg: ProxyWeapon {model = "\ukf_jackal_mwmik\ukf_gpmg"; simulation = "alwaysshow";}

class Proxyjerrycan : ProxyAmmoInTruck {model = "\ukf_jackal_mwmik\jerrycan"; simulation = "alwaysshow";}

class Proxyukf_susat: ProxyAmmoInTruck {model = "\ukf_jackal_mwmik\ukf_susat"; simulation = "alwaysshow";}

class Proxym136_launcher: ProxyAmmoInTruck {model = "\ca\weapons\m136_launcher"; simulation = "alwaysshow";}

};

(Basic defines hpp works, I've used it before on another addon)

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class Rotation;

class CfgSkeletons

{

class HMMWVSkeleton;

class ukf_jackal_mwmik

{

skeletonInherit="HMMWVSkeleton";

};

};

class CfgModels

{

class hmmwv50;

class ukf_jackal: hmmwv50

{

sectionsInherit = "";                    

sections[] =

{

"pruh",

"zadni svetlo",

"brzdove svetlo",

"pravy predni",

"pravy dalsi",

"pravy zadni",

"pravy prostredni",

"levy predni",

"levy dalsi",

"levy zadni",

"levy prostredni",

"L svetlo",

"P svetlo",

"clan",

"clan_sign",

"zasleh",

"zasleh_2"

};

skeletonName = "ukf_jackal_mwmik";

class Animations

{

class IndicatorSpeed

{

animPeriod=0;

type="rotation";

source="speed";

selection="ukaz_rychlo";

axis="osa_rychlo";

memory=0;

minValue=0.000000;

angle0=0.000000;

maxValue=50.000000;

angle1=3.577925;

};

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="rad 175";

};

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 fuel_2

{

type="rotation";

source="fuel";

selection="fuel_2";

axis="fuel_2_axis";

memory=0;

minValue=0.000000;

maxValue=1.000000;

angle0=-0.087266;

angle1=-1.658063;

};

class ammo_belt_rotation

{

type="rotationZ";

source="belt_rotation";

selection="ammo_belt";

axis="ammo_belt_axis";

memory=1;

sourceAddress="loop";

minValue=0.000000;

maxValue=0.020000;

angle0=0.349066;

angle1=0.000000;

};

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";

};

};

};

};

I also tried adding the following, a direct copy paste from the example configs, but it just error'ed on arma load, "found ' expecting =" on the first line. I removed it to get ingame in the end, as I couldn't see what was wrong with it.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class TransportMagazines

{

mag_xx(30Rnd_556x45_Stanag,50);

mag_xx(200Rnd_556x45_M249,15);

mag_xx(HandGrenadeTimed,50);

mag_xx(15rnd_9x19_M9,75);

mag_xx(M136,15);

mag_xx(FlareWhite_M203,15);

mag_xx(FlareGreen_M203,15);

mag_xx(FlareRed_M203,15);

mag_xx(FlareYellow_M203,15);

mag_xx(SmokeShell,15);

mag_xx(SmokeShellRed,15);

mag_xx(SmokeShellGreen,15);

};

class TransportWeapons

{

weap_xx(M136,2);

               };

that was placed just above class library in the config.

Now, the bevvy of fun errors I currently get using that config and model.cfg:

On entering the UKF wheeled list:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">no entry bin/config.bin/cfgvehicles/ukf_jackal_mwmik/turrets/mainturret.maxhorizontalrotspeed

I can't even find that entry listed anywhere, either in the examples or the wiki.

on clicking past that and preview:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">no entry model.cfg\cfgskeletons\hmmwvskeleton.skeletoninherit

I know what that refers to, but I can't seem to be able to work out what I mean't to tell the hummerclass to refer to. Everything breeds a new error.

and when i click ok past that error and try another preview:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">no entry bin/config.bin/cfgvehicles/ukf_jackal_mwmik/turrets/mainturret.mgunclouds

my personal favourite... can't find a single mention of this anywhere.

I used to be good at configs in OFP... why do BIS insist on confusing me so much. Eventually this vehicle's meant to have active dampers, adjustable suspension, weapon soft mount recoils and a second turret... fat bloody chance at this rate tounge2.gif

any and all help is appreciated... other than telling me my config and model.cfg is an epic fail... as I'm quite aware of that.

Share this post


Link to post
Share on other sites

no entry means it's missing in your config. browse through arma configs to check what it is and just add to yuor config

for ex. maxhorizontalrotspeed is turret rotation parameter.

smth like maxhorizontalrotspeed=1.2 will work wink_o.gif

Share this post


Link to post
Share on other sites

I understand what no entry is, like I said, this isn't my first ever addon. The only problem on the other two, is that when I enter the missing values, I invariably gain another set of no entry errors.

I had a brain fart on the rotation entry... I'd forgotten that I was overwriting all the turret entries I was trying to reference. Thanks

From what I can tell from vague experients, it seems that I'm either 1. referencing the hummer skeletons in wrong, or 2. you can't do it the way I'm trying, and its easier to just write my own skeletons/bones.

Share this post


Link to post
Share on other sites

I tested around with airplane turrets some time ago. If i see your error messages (i got the exactly same) u have done something wrong in the turret class. i just see your Turret class there the error sits.

Try with newturret

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

class NewTurret;

................

class turrets;

class MainTurret: NewTurret

maby it helps in some way.

\sgt.ace

Share this post


Link to post
Share on other sites

For me the "mag_xx(30Rnd_556x45_Stanag,50);" etc look like macros, did you load them somewhere? (#define mag_xx(a,b) ...)

You did not load the mainTurret correctly, it at least has to be in the turrets subclass. That's why it is moaning about the turret class. Your rpt file should be full of error messages then. Keep in mind that when loading the turrets class in class hmmwv50, you have to do it exactly the same way as the original class hmmwv50 does.

Don't forget to add CAWheeled to cfgPatches. smile_o.gif

/edit: Tried to be a bit clearer.

Share this post


Link to post
Share on other sites
Quote[/b] ]class cfgvehicles

{

class car;

class hmmwv50 : car

{

class mainturret;

};

class ukf_jackal_mwmik : hmmwv50

{

Model = "\ukf_jackal_mwmik\ukf_jackal.p3d";

Picture="\Ca\wheeled\data\ico\HMMWV50_CA.paa";

...

What is 'class mainturret;' doing there?

I think it should look like this:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class cfgvehicles

{

class car;

class hmmwv50 : car{};

class ukf_jackal_mwmik : hmmwv50

{

Model = "\ukf_jackal_mwmik\ukf_jackal.p3d";

Picture="\Ca\wheeled\data\ico\HMMWV50_CA.paa";

...

Or actually you can clean up the start a little by removing class car:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class cfgvehicles

{

class hmmwv50;

class ukf_jackal_mwmik : hmmwv50

{

Model = "\ukf_jackal_mwmik\ukf_jackal.p3d";

Picture="\Ca\wheeled\data\ico\HMMWV50_CA.paa";

...

Share this post


Link to post
Share on other sites

Ermmm no. confused_o.gif

It should be like this, afaik:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class LandVehicle;

class Car: LandVehicle

{

class Turrets;

};

class hmmwv50: car

{

class Turrets: Turrets

{

class mainTurret;

};

};

class ukf_jackal_mwmik: hmmwv50

{

... your defintions ...

class Turrets: Turrets

{

class MainTurret: Mainturret

{

... your defintions ...

};

};

};

No warranties, though, it is late! goodnight.gif

/edit: Guess the first posted cfg was wrong.

Share this post


Link to post
Share on other sites
Quote[/b] ] when I enter the missing values, I invariably gain another set of no entry errors.

of course. only forst missing value is shown as error. you fix it - you got the next missing entry. vice versa till you get all you need

Share this post


Link to post
Share on other sites

Take a look at ArmA's error report file. It lists all errors created during runtime, not just the first. Might help in getting a better overview. If not then you can at least fix several 'no entry' errors at a time.

Share this post


Link to post
Share on other sites

thank you gents, shall attempt these once I get back home. I assumed I'd loaded up the turrets incorrectly, but for all the methods I'd tried, it still didn't want to work. I originally copied and pasted the example config exactly, but obviously I missed something crucial in the copy paste, and hence starting playing around with various cofigorations.

Quote[/b] ]For me the "mag_xx(30Rnd_556x45_Stanag,50);" etc look like macros, did you load them somewhere? (#define mag_xx(a,b) ...)

a case of hummer config copy paste, but even if I had defined them in my basic defines, then I shouldn't get the 'found ', expected =' error on start, no? I've removed it for now, its not exactly an important entry as far as I'm concerned right now.

Share this post


Link to post
Share on other sites

Now, reading your post again and a bit closer: The mgunclouds are defined in allVehicles' newTurret class, all other classes inherit it from there.

In model.cfg, there are also some bugs (what's up with you wink_o.gif). If you want to make no changes on the skeleton, you can simply use the HMMWVSkeleton and you don't have to define an own class. If you want to define an own class, you have to inherit it correctly from the HMMWVSkeleton, in this case:<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class CfgSkeletons

{

class HMMWVSkeleton;

class ukf_jackal_mwmik: HMMWVSkeleton{};

};

You only have to use skeletonInherit when you are adding bones in the skeletonBones array, e.g.:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class CfgSkeletons

{

class HMMWVSkeleton;

class ukf_jackal_mwmik: HMMWVSkeleton

{

skeletonInherit="HMMWVSkeleton";

skeletonBones[]=

{

"myNewBone",""

};

};

In cfgModels itself there's a similar problem. sectionsInherit works the same way as skeletonInherit. To keep it short, this should be the start of your cfg:<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class CfgModels

{

class hmmwv50;

class ukf_jackal: hmmwv50

{

sectionsInherit = "hmmwv50";                    

/*sections[] =

{

"pruh",

"zadni svetlo",

"brzdove svetlo",

"pravy predni",

"pravy dalsi",

"pravy zadni",

"pravy prostredni",

"levy predni",

"levy dalsi",

"levy zadni",

"levy prostredni",

"L svetlo",

"P svetlo",

"clan",

"clan_sign",

"zasleh",

"zasleh_2"

}; not needed, all loaded by sectionsInherit*/

/*skeletonName = "ukf_jackal_mwmik"; not needed as we decided above to use the hmmwv skeleton, which is loaded by the inherited class*/

BTW, when you learned the class loading correctly in above posts, you can load the class animations from the hmmwv, so you don't have to write all the stuff again. Or, even easier, when you do not want to change/add any animations, you can just leave the class animations away as they'll be loaded from the hmmwv class.

Share this post


Link to post
Share on other sites
Now, reading your post again and a bit closer: The mgunclouds are defined in allVehicles' newTurret class, all other classes inherit it from there.

In model.cfg, there are also some bugs (what's up with you wink_o.gif). If you want to make no changes on the skeleton, you can simply use the HMMWVSkeleton and you don't have to define an own class. If you want to define an own class, you have to inherit it correctly from the HMMWVSkeleton, in this case:<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class CfgSkeletons

{

class HMMWVSkeleton;

class ukf_jackal_mwmik: HMMWVSkeleton{};

};

You only have to use skeletonInherit when you are adding bones in the skeletonBones array, e.g.:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class CfgSkeletons

{

class HMMWVSkeleton;

class ukf_jackal_mwmik: HMMWVSkeleton

{

skeletonInherit="HMMWVSkeleton";

skeletonBones[]=

{

"myNewBone",""

};

};

In cfgModels itself there's a similar problem. sectionsInherit works the same way as skeletonInherit. To keep it short, this should be the start of your cfg:<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class CfgModels

{

class hmmwv50;

class ukf_jackal: hmmwv50

{

sectionsInherit = "hmmwv50";                    

/*sections[] =

{

"pruh",

"zadni svetlo",

"brzdove svetlo",

"pravy predni",

"pravy dalsi",

"pravy zadni",

"pravy prostredni",

"levy predni",

"levy dalsi",

"levy zadni",

"levy prostredni",

"L svetlo",

"P svetlo",

"clan",

"clan_sign",

"zasleh",

"zasleh_2"

}; not needed, all loaded by sectionsInherit*/

/*skeletonName = "ukf_jackal_mwmik"; not needed as we decided above to use the hmmwv skeleton, which is loaded by the inherited class*/

BTW, when you learned the class loading correctly in above posts, you can load the class animations from the hmmwv, so you don't have to write all the stuff again. Or, even easier, when you do not want to change/add any animations, you can just leave the class animations away as they'll be loaded from the hmmwv class.

I know, OFP was so easy in comparison, and now I've just lost the plot when it comes to configs and model.cfg's. I''ve gotten lazy now that other people tend to do it for me biggrin_o.gif

so, if I understand it, when you use the inheirt it 'adds' the various bones or sections (depending on what part we're talking to) and you then add to those inherited with your own? I'm still in the Land of OFP where you were always in danger of overwriting stuff.

I think I may have actually understood it now... although I've embarrased myself with that poor effort of a config/model.cfg

thanks Raedor.

Share this post


Link to post
Share on other sites

You're welcome smile_o.gif It looks like you understood correctly.

I don't want to crap the rest of your self-esteem, but the cfgModels of OFP was working exactly the same regarding sections and sectionsInherit... whistle.gif  wink_o.gif

Share this post


Link to post
Share on other sites

really? I think the heat is frying my brain today. Whatever the case, I'm obviously a little out of practice. I used to be able to write these with my eyes closed. whistle.gif

Share this post


Link to post
Share on other sites
Ermmm no. confused_o.gif

Ahh, yes. I had a look in the arma config and I see you're right. I learned something today.

Share this post


Link to post
Share on other sites

ok, config seems to work a treat now, but now I have another problem:

I get a no entry sections inherit for the hmmwv skeleton class - fine I think, I'll tell it where to inherit the section from.... nope, now car skeleton errors asking for vehicle skeleton... and so on.

so, obviously not the answer - this is how the model.cfg stood before I started messing around addon more section inherits:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

class CfgSkeletons

{

class HMMWVSkeleton;

class ukf_jackal_mwmik: HMMWVSkeleton

{

skeletonInherit="HMMWVSkeleton";

skeletonBones[]= {};

};

};

obviously it leaves me with the usual no turning wheels etc stuff. Head lights etc do work mind.

[edit]Not to worry, I've got it working thanks to Rockape giving me a few pointers as to what I was doing wrong.

Thanks for all the help gents. Much appreciated.

Share this post


Link to post
Share on other sites

ah... just when you thought it was safe to visit this thread...

Ok... I had a perfectly happy, working, addon 2 hours ago. No errors, no nothing. It just did as it was told.

But now, upon adding a second vehicle that inherits off the first, I suddenly get lots of model.cfg errors or noentry animation source errors (Only in ArmA, not in Buldozer)

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class CfgSkeletons

{

class vehicle;

class ukf_jackal_mwmik: vehicle

{

isDiscrete=1;

skeletonInherit="";

skeletonBones[]=

{

"Wheel_1_1_Damper","",

  "wheel_1_2_damper","",

  "wheel_2_1_damper","",

  "wheel_2_2_damper","",

  "wheel_1_1_steering","Wheel_1_1_Damper",

  "wheel_1_2_steering","wheel_1_2_damper",

  "wheel_1_1","wheel_1_1_steering",

  "wheel_1_2","wheel_1_2_steering",  

  "wheel_2_1","wheel_2_1_damper",

  "wheel_2_2","wheel_2_2_damper",

"ukaz_rychlo","",

"ukaz_rychlo2","",

"ukaz_rpm","",

"compass","",

"OtocVez","",

"OtocHlaven","OtocVez",

"main_recoil","OtocHlaven",

"ammo_belt", "OtocHlaven",

"fuel_2","",

"fuel_1","",

"damageHide","",

"damageVez","OtocVez",

"damageHlaven","OtocHlaven",

"2nd_trav","",

  "2nd_elev","2nd_trav",

"2nd_elev_recoil","2nd_elev",

"brzdove svetlo","",

"door_1_1", "",

"door_1_2", "",

"door_2_1", "",

"door_2_2", "",

};

};

};

class Rotation;

class CfgModels

{

class ukf_jackal_base

{

sectionsInherit = "";

sections[] = {};

};

class ukf_jackal: ukf_jackal_base

{

sectionsInherit = "";

sections[] =

{

"ammo",

"sklo predni p",

"sklo predni l",

"zadni svetlo",

"brzdove svetlo",

"spz",

"karoserie",

"motor",

"zbran",

"vez",

"zbytek",

"Wheel_1_1",

  "wheel_1_2",

  "wheel_2_1",

  "wheel_2_2",

"clan",

"clan_sign",

"zasleh",

"P svetlo",

"L svetlo",

"palivo",

"zasleh_2"

};

skeletonName = "ukf_jackal_mwmik";

class Animations

{

class IndicatorCompass: Rotation

{

source="direction";

type="rotation";

selection="compass";

axis="compass_axis";

memory="false";

minValue=-3.141593;

maxValue=3.141593;

angle0=-3.141593;

angle1=3.141593;

};

class IndicatorSpeed

{

animPeriod=0;

type="rotation";

source="speed";

selection="ukaz_rychlo";

axis="osa_rychlo";

memory=0;

minValue=0.000000;

angle0=0.000000;

maxValue=30.000000;

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="-rad 175";

};

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.30;

};

class fuel_2 : fuel

{

selection="fuel_2";

axis="fuel_2_axis";

};

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 2nd_Turret: MainTurret

  {

    selection="2nd_trav";

    axis="2nd_trav_axis";

source="2nd_Turret";

    animPeriod=0;

  };

  class 2nd_Gun: MainGun

  {

    type="rotationX";

source="2nd_Gun";

    selection="2nd_elev";

    axis="2nd_elev_axis";

  };

class DrivingWheel

{

type="rotation";

source="drivingWheel";

selection="volant";

begin="osaVolantZac";

end="osaVolantKon";

memory="false";

animPeriod=0;

minValue=-1;

maxValue=1;

angle0=-8;

angle1=8;

};

class TurnFrontWheelR

{

type="rotationY";

source="drivingWheel";

selection="wheel_1_2_steering";

axis="wheel_1_2_steering_axis";

memory="false";

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 FrontWheelR

{

type="rotationX";

source="wheel";

selection="wheel_1_2";

axis="wheel_1_2_axis";

memory="true";

animPeriod=0;

sourceAddress="loop";

minValue=0;

maxValue=1;

angle0=0;

angle1="rad -360";

};

class BackWheelR: FrontWheelR

{

selection="wheel_2_2";

axis="wheel_2_2_axis";

};

class FrontWheelL: FrontWheelR

{

selection="wheel_1_1";

axis="wheel_1_1_axis";

};

class BackWheelL: FrontWheelR

{

selection="wheel_2_1";

axis="wheel_2_1_axis";

};

class hide_brakes

  {

    type="hide";

    source="hidebrakes";

    selection="brzdove svetlo";

  axis="";

    memory="true";

    animPeriod=0;

    minValue=0;

    maxValue=1;

  };

class FrontWheelDamperR

{

type="translationY";

source="damper";

selection="wheel_1_2_damper";

axis="";

animPeriod=0;

minValue=-1000;

maxValue=1000;

};

class FrontWheelDamperL: FrontWheelDamperR

{

selection="wheel_1_1_damper";

};

class RearWheelDamperL: FrontWheelDamperR

{

selection="wheel_2_1_damper";

};

class RearWheelDamperR: FrontWheelDamperR

{

selection="wheel_2_2_damper";

};

class door_FL

{

type="rotation";

source="user";

selection="door_1_1";

axis="door_1_1_axis";

memory=0;

minValue=0.000000;

maxValue=1.000000;

angle0="rad +0";

angle1="rad -80";

};

class door_FR: door_FL

{

source="user";

selection="door_FR";

axis="door_1_2_axis";

angle0="rad +0";

angle1="rad +80";

};

class door_MR: door_FL

{

source="user";

selection="door_MR";

axis="door_2_2_axis";

angle0="rad +0";

angle1="rad +70";

};

class door_ML: door_FL

{

source="user";

selection="door_2_1";

axis="door_2_1_axis";

angle0="rad +0";

angle1="rad -70";

};

class main_recoil

{

    type="translation";

    source="50_recoil";

    selection="main_recoil";

    begin="recoil_start";

    end="recoil_end";

    initPhase=0;

    memory=1;

    animPeriod =.5;

    sourceAddress="loop";

    minValue=0;

  maxValue=1;

    offset0=0;

    offset1=1;

  };

class ammo_belt_rotation

{

    type="translation";

    source="belt_rotation";

    selection="ammo_belt";

    begin="ammo_belt_start";

    end="ammo_belt_end";

    initPhase=0;

    memory=1;

    animPeriod =.5;

    sourceAddress="loop";

    minValue=0;

  maxValue=1;

    offset0=0;

    offset1=1;

  };

};

};

class ukf_jackal_gmg: ukf_jackal {};

};

With that model.cfg it asks for 'no entry cfgvehicles animation source door_fl' - Which is odd, given the first vehicle coped happily without needing an animation source entry with user... and in bulldozer the doors work anyway.

I've also tried copy pasting the entire animation passage into the gmg entry, and inheriting off the base model, but no joy, it just breeds the same error.

My config:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">#include "basicDefines.hpp"

class CfgPatches

{

class ukf_jackal_mwmik

{

units[] = {ukf_jackal_mwmik};

weapons[] = {};

requiredVersion = 1.14;

requiredAddons[] = {

CAData,CACharacters,CAWeapons,CASounds,CA_Anims_Char,

CAweapons3_aks74pso,CAweapons3_ksvk,CAweapons3_m107,ukf_misc

};

};

};

class CfgVehicleClasses

{

class UKF_Wheeled

{

displayName = "UKF Wheeled";

};

};

class CfgMagazines

{

class Default;

class CA_Magazine: Default {};

class VehicleMagazine: CA_Magazine {};

class UKF_200Rnd_762x51_GPMGJackal: CA_Magazine {

scope = 2;

displayName = "200RND GPMG Belt";

picture = "\CA\weapons\data\equip\m_m240_ca.paa";

count = 200;

type = "2* 256";

ammo = "B_762x51_Ball";

initSpeed = 900;

};

};

class cfgWeapons

{

class Default;

class MGunCore;

class LauncherCore;

class GrenadeCore;

class CannonCore;

class MGun: MGunCore {};

class UKF_Jackal_GPMG: MGun

{

scope = 2;

displayName = "GPMG";

reloadTime = 0.075;

magazineReloadTime = 7;

autoFire = 1;

sound[] = {"\ca\Weapons\Data\Sound\PK_1a_SS", 10.000000, 1};

soundContinuous = 0;

dispersion = 0.003000;

minRange = 2;

minRangeProbab = 0.500000;

midRange = 500;

midRangeProbab = 0.700000;

maxRange = 1100;

maxRangeProbab = 0.10000;

aiDispersionCoefY = 7.000000;

aiDispersionCoefX = 7.000000;

magazines[] = {"UKF_200Rnd_762x51_GPMGJackal"};

maxLeadSpeed = 600;

canLock = 0;

cursor = "\ca\Weapons\Data\w_weapon_mg";

cursorAim = "\ca\Weapons\Data\w_weapon_mg";

showAimCursorInternal = 1;

flash = "gunfire";

flashSize = 0.100000;

recoil = "Empty";

ffMagnitude = 0.500000;

ffFrequency = 11;

ffCount = 6;

};

};

class cfgvehicles

{

class LandVehicle;

class Car: LandVehicle

{

class Turrets;

};

class hmmwv50: car

{

class Turrets: Turrets

{

class mainTurret;

};

};

class ukf_jackal_mwmik: hmmwv50

{

Model = "\ukf_jackal_mwmik\ukf_jackal.p3d";

Picture="\Ca\wheeled\data\ico\HMMWV50_CA.paa";

Icon="\Ca\wheeled\data\map_ico\icomap_hmwv50_CA.paa";

vehicleClass = "UKF_Wheeled";

displayName = "Jackal MWMIK HMG (D)";

armor = 400;

damageResistance = 0.01;

transportSoldier = 0;

castDriverShadow = true;

driverAction = HMMWV_Driver;

cargoAction[] = {HMMWV_Cargo01};

nameSound="truck";

fuelCapacity=500;

maxSpeed=130;

transportMaxMagazines = 999;

transportMaxWeapons =999;

terraincoef = 1.0;

class AnimationSources

{

class belt_rotation

{

source="reload";

weapon="M2";

};

class 50_recoil

{

source="reload";

weapon="M2";

};

};

class Library

{

libTextDesc = "Blurb about the Jackal";

};

class Turrets: Turrets

{

class MainTurret: Mainturret

{

gunnerName = "HMG Gunner";

maxHorizontalRotSpeed=1.200000

outGunnerMayFire = 1;

memoryPointGun = "machinegun";

body = "mainTurret";

gun = "mainGun";

selectionFireAnim = "zasleh";

weapons[] = {M2};

magazines[] = {100Rnd_127x99_M2,100Rnd_127x99_M2,100Rnd_127x99_M2,100Rnd_127x99_M2,100Rnd_127x99_M2,100R

nd_127x99_M2,100Rnd_127x99_M2,100Rnd_127x99_M2};

gunnerAction = "HMMWV_Gunner01";

gunBeg = "usti hlavne"; //gunBeg = endpoint of the gun

gunEnd = "konec hlavne"; //gunEnd = chamber of the gun

soundServo[]={\ca\wheeled\Data\Sound\servo3, db-75, 0.9};

minElev = -5; maxElev = +40;

minTurn = -360; maxTurn = +360;

gunnerOpticsModel = "\ukf_jackal_mwmik\ukf_susat3.p3d";

hasGunner= 1;

gunnerForceOptics = 0;

memoryPointGunnerOptics="gunnerview";

memoryPointsGetInGunner="pos gunner";

memoryPointsGetInGunnerDir="pos gunner dir";

startEngine = 0;

class HitTurret {armor=0.8;material=51;name="vez";visual="vez";passThrough=0;};

class HitGun {armor=0.4;material=52;name="zbran";visual="zbran";passThrough=0;};

castGunnerShadow = 1;

commanding = 0;

class ViewOptics

{

initAngleX = 25;

minAngleX = -89;

maxAngleX = 25;

initAngleY = 180;

minAngleY = -360;

maxAngleY = 360;

initFov = 0.175;

minFov = 0.175;

maxFov = 0.175;

};

class ViewGunner

{

initAngleX=5; minAngleX=-30; maxAngleX=+30;

initAngleY=0; minAngleY=0; maxAngleY=0;

initFov=0.42; minFov=0.22; maxFov=0.95;

};

};

class 2nd_Turret: MainTurret

{

gunnerName = "Vehicle Commander";

body = "2nd_Turret";

gun = "2nd_Gun";

animationSourcebody = "2nd_Turret";

animationSourcegun = "2nd_Gun";

selectionFireAnim = "zasleh_2";

memoryPointGunnerOptics="2nd_gunnerview";

memoryPointsGetInGunner="pos codriver";

memoryPointsGetInGunnerDir="pos codriver dir";

weapons[] = {UKF_Jackal_GPMG};

magazines[] = {UKF_200Rnd_762x51_GPMGJackal, UKF_200Rnd_762x51_GPMGJackal, UKF_200Rnd_762x51_GPMGJackal, UKF_200Rnd_762x51_GPMGJackal, UKF_200Rnd_762x51_GPMGJackal};

gunnerAction = "HMMWV_Cargo01";

gunnerOpticsModel = "\ca\Weapons\optika_empty";

gunBeg = "2nd_muzzle_end"; //gunBeg = endpoint of the gun

gunEnd = "2nd_muzzle_start"; //gunEnd = chamber of the gun

minElev = -25; maxElev = +50;

minTurn = -50; maxTurn = +50;

proxyType = CPCargo;

proxyindex = 1;

commanding = 2;

};

};

class UserActions

{

  class brakesoff

  {

    displayName="Brake lights off";

    position="hidebrakes";

    radius=0.5;

    condition="this animationPhase ""hide_brakes"" < 0.5";

    statement="this animate[""hide_brakes"",1]";

    onlyforplayer = true;

  };

class brakeson

  {

    displayName="Brake lights on";

    position="hidebrakes";

    radius=0.5;

    condition="this animationPhase ""hide_brakes"" > 0.5";

    statement="this animate[""hide_brakes"",0]";

    onlyforplayer = true;

  };

};

};

class ukf_jackal_mwmik_gmg: ukf_jackal_mwmik

{

Model = "\ukf_jackal_mwmik\ukf_jackal_gmg.p3d";

Picture="\Ca\wheeled\data\ico\HMMWV50_CA.paa";

Icon="\Ca\wheeled\data\map_ico\icomap_hmwv50_CA.paa";

vehicleClass = "UKF_Wheeled";

displayName = "Jackal MWMIK GMG (D)";

class AnimationSources {};

class Turrets: Turrets

{

class MainTurret: Mainturret

{

gunnerName = "GMG Gunner";

maxHorizontalRotSpeed=1.200000

outGunnerMayFire = 1;

memoryPointGun = "machinegun";

body = "mainTurret";

gun = "mainGun";

weapons[]={MK19};

magazines[]={48Rnd_40mm_MK19,48Rnd_40mm_MK19,48Rnd_40mm_MK19,48Rnd_40mm_MK19,48Rnd_40mm_MK19,48Rnd_40m

m_MK19};

gunnerAction = "HMMWV_Gunner01";

gunBeg = "usti hlavne"; //gunBeg = endpoint of the gun

gunEnd = "konec hlavne"; //gunEnd = chamber of the gun

soundServo[]={\ca\wheeled\Data\Sound\servo3, db-75, 0.9};

minElev = -5; maxElev = +60;

minTurn = -360; maxTurn = +360;

gunnerOpticsModel = "\ca\Weapons\optika_ACOG";

hasGunner= 1;

gunnerForceOptics = 0;

memoryPointGunnerOptics="gunnerview";

memoryPointsGetInGunner="pos gunner";

memoryPointsGetInGunnerDir="pos gunner dir";

startEngine = 0;

class HitTurret {armor=0.8;material=51;name="vez";visual="vez";passThrough=0;};

class HitGun {armor=0.4;material=52;name="zbran";visual="zbran";passThrough=0;};

castGunnerShadow = 1;

commanding = 0;

class ViewOptics

{

initAngleX = 25;

minAngleX = -89;

maxAngleX = 25;

initAngleY = 180;

minAngleY = -360;

maxAngleY = 360;

initFov = 0.175;

minFov = 0.175;

maxFov = 0.175;

};

class ViewGunner

{

initAngleX=5; minAngleX=-30; maxAngleX=+30;

initAngleY=0; minAngleY=0; maxAngleY=0;

initFov=0.42; minFov=0.22; maxFov=0.95;

};

};

class 2nd_Turret: MainTurret

{

gunnerName = "Vehicle Commander";

body = "2nd_Turret";

gun = "2nd_Gun";

animationSourcebody = "2nd_Turret";

animationSourcegun = "2nd_Gun";

selectionFireAnim = "zasleh_2";

memoryPointGunnerOptics="2nd_gunnerview";

memoryPointsGetInGunner="pos codriver";

memoryPointsGetInGunnerDir="pos codriver dir";

weapons[] = {UKF_Jackal_GPMG};

magazines[] = {UKF_200Rnd_762x51_GPMGJackal, UKF_200Rnd_762x51_GPMGJackal, UKF_200Rnd_762x51_GPMGJackal, UKF_200Rnd_762x51_GPMGJackal, UKF_200Rnd_762x51_GPMGJackal};

gunnerAction = "HMMWV_Cargo01";

gunnerOpticsModel = "\ca\Weapons\optika_empty";

gunBeg = "2nd_muzzle_end"; //gunBeg = endpoint of the gun

gunEnd = "2nd_muzzle_start"; //gunEnd = chamber of the gun

minElev = -25; maxElev = +50;

minTurn = -50; maxTurn = +50;

proxyType = CPCargo;

proxyindex = 1;

commanding = 2;

};

};

};

};

class CfgNonAIVehicles

{

class ProxyWeapon;

class ProxyAmmoInTruck;

class Proxyukf_hmg: ProxyWeapon {model = "\ukf_jackal_mwmik\ukf_hmg"; simulation = "alwaysshow";}

class Proxyukf_gpmg: ProxyWeapon {model = "\ukf_jackal_mwmik\ukf_gpmg"; simulation = "alwaysshow";}

class Proxyjerrycan : ProxyAmmoInTruck {model = "\ukf_jackal_mwmik\jerrycan"; simulation = "alwaysshow";}

class Proxyukf_susat: ProxyAmmoInTruck {model = "\ukf_jackal_mwmik\ukf_susat"; simulation = "alwaysshow";}

class Proxym136_launcher: ProxyAmmoInTruck {model = "\ca\weapons\m136_launcher"; simulation = "alwaysshow";}

};

Again, worked fine, no drama, untill I added the second vehicle.

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  

×