Jump to content

Johno89

Member
  • Content Count

    79
  • Joined

  • Last visited

  • Medals

  • Medals

Everything posted by Johno89

  1. I will give it a try, however should i delete values that currently don't apply to my own .p3d? At present I have 0.00, Memory, View - Gunner, View - Pilot & basic Geometry LOD's. For instance my model doesn't have memory points for the exhausts. Should I delete the exhaust values from the config or can i get away with leaving them in?
  2. thanks very much, here is the latest config; class CfgPatches { class project { units[] = {"project"}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Air_F"}; }; }; class CfgVehicles { class Heli_Attack_02_base_F; class project: Heli_Attack_02_base_F { class AnimationSources; class SpeechVariants; { class Default { speechSingular[] = {"veh_air_gunship_s"}; speechPlural[] = {"veh_air_gunship_p"}; }; }; textSingular = "$STR_A3_nameSound_veh_air_gunship_s"; textPlural = "$STR_A3_nameSound_veh_air_gunship_p"; nameSound = "veh_air_gunship_s"; author = "Johno"; _generalMacro = "project"; model = "\project\project.p3d"; driveOnComponent[] = {"Wheels"}; icon = "\A3\Air_F_Beta\Heli_Attack_01\Data\UI\Map_Heli_Attack_01_CA.paa"; picture = "\A3\Air_F_Beta\Heli_Attack_01\Data\UI\Heli_Attack_01_CA.paa"; maxSpeed = 325; displayname = "project"; scope = 2; faction = "OPF_F"; crew = "O_helipilot_F"; typicalCargo[] = {"O_helipilot_F"}; gearRetracting = 1; class AnimationSources: Animations { class door_1 { source = "user"; animPeriod = 1; initPhase = 0; }; class door_2 { source = "user"; animPeriod = 1; initPhase = 0; }; }; memoryPointsGetInDriver = "pos Driver"; memoryPointsGetInDriverDir = "pos Driver dir"; driverAction = "Heli_Attack_02_pilot"; driverInAction = "Heli_Attack_02_pilot"; driverCanEject = 0; precisegetinout = 1; getinAction = "Heli_Attack_02_Pilot_Enter"; getoutaction = "Heli_Attack_02_Pilot_Exit"; memoryPointsGetInGunner = "pos Gunner"; memoryPointsGetInGunnerDir = "pos Gunner dir"; gunnerAction = "Heli_Attack_02_Gunner"; gunnerInAction = "Heli_Attack_02_Gunner"; gunnerCanEject = 0; gunnerGetInAction = "Heli_Attack_02_Gunner_Enter"; gunnerGetOutAction = "Heli_Attack_02_Gunner_Exit"; class UserActions { class Opendoor_1 { displayName = "Open door_1"; position = "door_1"; source = "user"; animPeriod = 1; }; class Closedoor_1 { displayName = "Close door_1"; position = "door_1"; source = "user"; animPeriod = 1; }; class Opendoor_2 { displayName = "Open door_2"; position = "door_2"; source = "user"; animPeriod = 1; }; class Closedoor_2 { displayName = "Close door_2"; position = "door_2"; source = "user"; animPeriod = 1; }; }; }; /* extern */ class Heli_Attack_02_base_F; class project: Heli_Attack_02_base_F { author = "Johno"; _generalMacro = "project"; scope = 2; side = 0; faction = "OPF_F"; crew = "O_helipilot_F"; typicalCargo[] = {"O_helipilot_F"}; accuracy = 5; displayname = "project"; class Library { libTextDesc = "TODO"; }; }; };
  3. yh I already did Surpher, didn't work though. I now get; File p:\project\config.cpp, line 18: '/CfgVehicles/project.': '{' encountered instead of '=' Config : some input after EndOfFile. Error reading binary file 'p:\project\config.cpp'
  4. No luck I'm afraid. If its alright with you can I message you later perhaps when you have more time to analyse what could be going wrong?
  5. Thanks RedPheonix, I applied your edited version. But now i have these 4 errors; File p:\project\config.cpp, line 57: /CfgVehicles/project.AnimationSources: Member already defined. File p:\project\config.cpp, line 103: /CfgVehicles/project.UserActions: Member already defined. File p:\project\config.cpp, line 104: /CfgVehicles.Heli_Attack_02_base_F: Member already defined. File p:\project\config.cpp, line 121: /CfgVehicles.project: Member already defined.
  6. RedPhoenix - I'm an utter noob when It comes to all this coding business, hence why I've apparently defined my class two times. I followed the AH-99 config as a guide. Surpher- So what should i do? Do i delete the closing brackets so that there is no break?
  7. Ok so I've used the AH-99 config as a template for my own. I've kept the same class structure more or less (as appropriate for how far I've gotten with my project). Here is the new config; N.b, I've replaced the actual helicopter name with 'project', (i'd like to keep it secret until I feel it is ready for public release). class CfgPatches { class project { units[] = {"project"}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Air_F"}; }; }; class CfgVehicles { class Heli_Attack_02_base_F; class project: Heli_Attack_02_base_F { class AnimationSources; class UserActions; }; class SpeechVariants { class Default { speechSingular[] = {"veh_air_gunship_s"}; speechPlural[] = {"veh_air_gunship_p"}; }; }; textSingular = "$STR_A3_nameSound_veh_air_gunship_s"; textPlural = "$STR_A3_nameSound_veh_air_gunship_p"; nameSound = "veh_air_gunship_s"; author = "Johno"; _generalMacro = "project"; model = "\project\project.p3d"; driveOnComponent[] = {"Wheels"}; icon = "\A3\Air_F_Beta\Heli_Attack_01\Data\UI\Map_Heli_Attack_01_CA.paa"; picture = "\A3\Air_F_Beta\Heli_Attack_01\Data\UI\Heli_Attack_01_CA.paa"; maxSpeed = 325; gearRetracting = 1; }; }; class AnimationSources: AnimationSources { class door_1 { source = "user"; animPeriod = 1; initPhase = 0; }; class door_2 { source = "user"; animPeriod = 1; initPhase = 0; }; }; memoryPointsGetInDriver = "pos Driver"; memoryPointsGetInDriverDir = "pos Driver dir"; driverAction = "Heli_Attack_02_pilot"; driverInAction = "Heli_Attack_02_pilot"; driverCanEject = 0; precisegetinout = 1; getinAction = "Heli_Attack_02_Pilot_Enter"; getoutaction = "Heli_Attack_02_Pilot_Exit"; memoryPointsGetInGunner = "pos Gunner"; memoryPointsGetInGunnerDir = "pos Gunner dir"; gunnerAction = "Heli_Attack_02_Gunner"; gunnerInAction = "Heli_Attack_02_Gunner"; gunnerCanEject = 0; gunnerGetInAction = "Heli_Attack_02_Gunner_Enter"; gunnerGetOutAction = "Heli_Attack_02_Gunner_Exit"; class UserActions { class Opendoor_1 { displayName = "Open door_1"; position = "door_1"; source = "user"; animPeriod = 1; }; class Closedoor_1 { displayName = "Close door_1"; position = "door_1"; source = "user"; animPeriod = 1; }; class Opendoor_2 { displayName = "Open door_2"; position = "door_2"; source = "user"; animPeriod = 1; }; class Closedoor_2 { displayName = "Close door_2"; position = "door_2"; source = "user"; animPeriod = 1; }; }; /* extern */ class Heli_Attack_02_base_F; class project: Heli_Attack_02_base_F { author = "Johno"; _generalMacro = "project"; scope = 2; side = 0; faction = "OPF_F"; crew = "O_helipilot_F"; typicalCargo[] = {"O_helipilot_F"}; accuracy = 5; displayname = "project"; class Library { libTextDesc = "TODO"; }; }; }; I got an error when i packaged the pbo, here it is; Config : some input after EndOfFile. Error 3 while parsing Error in config p:\project\config.cpp
  8. thanks for the advice, ill give it ago and get back to you
  9. ok so should it be something like class helicopter or class default?
  10. Yh I've been working off the sample heli and its config quite a bit. I'll have another look over and draw comparisons, but could you point out what could be the potential inheritance problem? Btw, here are the errors that accompany the .pbo file when I last used the addonmaker. Warning: CfgVehicles missing in PreloadConfig - may slow down vehicle creation Warning: CfgAmmo missing in PreloadConfig - may slow down vehicle creation Warning: CfgNonAIVehicles missing in PreloadConfig - may slow down vehicle creation File p:\heli\config.cpp, line 100: /CfgVehicles.heli: Member already defined. Error in config p:\heli\config.cpp <model = "p:\heli\heli.p3d"> Warning: bone fl_gear_a already listed in model.cfg/CfgSkeletons/heli_skeleton/ skeleton Warning: bone fl_gear_b already listed in model.cfg/CfgSkeletons/heli_skeleton/ skeleton Warning: bone fr_gear_a already listed in model.cfg/CfgSkeletons/heli_skeleton/ skeleton Warning: bone fr_gear_b already listed in model.cfg/CfgSkeletons/heli_skeleton/ skeleton
  11. Strange as I've already attempted what you provided. I've put negative values and switched the values between min/max. It seems that 'maxValue' will only except values that are positive.
  12. Hi, I am trying to animate weapon hatches on my attack helicopter. It's a two stage animation; 1st anim phase weapon hatch moves down slightly (translation -y). The is to help prevent clipping with the main body when 2nd anim phase (rotation) occurs. The problem I can't figure out is translation Y, making the hatch move in negative Y direction. Right now it will only move up in the positive. Any attempts at altering the model.cfg results in translation ignored and rotation only occurring. I've attached my cfg file and omitted parts for easier reading. I've searched the forums but cant find anything that would help. Thanks for your time. class CfgSkeletons { class Default { isDiscrete = 1; skeletonInherit = ""; skeletonBones[] = {}; }; class heli_skeleton: Default { skeletonInherit=""; isDiscrete=0; skeletonBones[]= { //weapon bay "l_holdster","", }; }; }; class Rotation { type = "rotation"; memory = 1; minValue = 0; maxValue = 1; angle0 = 0; angle1 = 1; }; class CfgModels { class Default { sectionsInherit=""; sections[] = {}; skeletonName = ""; }; class heli: Default { skeletonName="heli_skeleton"; sectionsInherit=""; sections[]= { }; class Animations { //weapons bay class l_holdster_1pass { type="translationY"; source="maxHoldsterValue"; selection="l_holdster"; minValue="0"; maxValue="0.1"; }; class l_holdster_2pass: l_holdster_1pass { type="rotation"; source="maxHoldsterValue"; memory=1; selection="l_holdster"; axis="l_holdster_axis"; minValue=1; maxValue=2; minPhase=0; maxPhase=1; angle0=0; angle1=2; }; }; }; };
  13. M1lkm8n I've added the offset values and axis but still the hatch will only move upwards in positive Y, it then rotates as it should. I'm new to all this so forgive me if this sounds silly. But it would be so much easier if it would recognize maxValue="-1" so that it would translate the hatch -Y. If maxValue="1" moves in the positive, why can't -1 move it in the negative? WarLord554 im currently working on the animations & model.cfg, thus far i havn't worked on eventhandlers and scripts. Is this something that would help translate negative Y?
  14. Sorry late reply, here is my model.cfg. class CfgSkeletons { class Default { isDiscrete = 1; skeletonInherit = ""; skeletonBones[] = {}; }; class heli_skeleton: Default { skeletonInherit=""; isDiscrete=0; skeletonBones[]= { //rotors "velka vrtule","", "mala vrtule","", //doors "door_1","", "door_2","", //weapon bay "l_holdster","", //front left gear "fl_gear_a","", "fl_gear_w","fl_gear_a", "fl_gear_a","", "fl_gear_b","fl_gear_a", "fl_gear_b","", "fl_gear_c","fl_gear_b", "fl_gear_h1","", //front right gear "fr_gear_a","", "fr_gear_w","fr_gear_a", "fr_gear_a","", "fr_gear_b","fr_gear_a", "fr_gear_b","", "fr_gear_c","fr_gear_b", "fr_gear_h1","", //rear gear "r_gear","", "r_gear_h1","", "r_gear_h2","" }; }; }; class Rotation { type = "rotation"; memory = 1; minValue = 0; maxValue = 1; angle0 = 0; angle1 = 1; }; class CfgModels { class Default { sectionsInherit=""; sections[] = {}; skeletonName = ""; }; class heli: Default { skeletonName="heli_skeleton"; sectionsInherit=""; sections[]= { }; class Animations { //rotors class HRotor { type="rotationY"; source="rotorH"; selection="velka vrtule"; axis="velka osa"; memory=1; sourceAddress="loop"; minValue=0; maxValue=1; angle0=0; angle1="rad +360"; }; class HRotor2 { type="rotationY"; source="rotorH"; selection="mala vrtule"; axis="mala osa"; memory=1; sourceAddress="loop"; minValue=0; maxValue=1; angle0=0; angle1="rad -360"; }; //doors class door_1 { type="rotation"; source="Doors"; selection="door_1"; axis="door_1_axis"; memory=1; animPeriod=1; angle0=0 angle1=1 }; class door_2 { type="rotation"; source="Doors"; selection="door_2"; axis="door_2_axis"; memory=1; animPeriod=1; angle0=0 angle1=-1 }; //weapons bay class l_holdster_1pass { type="translationY"; source="maxHoldsterValue"; selection="l_holdster"; minValue="0"; maxValue=".01"; }; class l_holdster_2pass: l_holdster_1pass { type="rotation"; source="maxHoldsterValue"; memory=1; selection="l_holdster"; axis="l_holdster_axis"; minValue=1; maxValue=2; minPhase=0; maxPhase=1; angle0=0; angle1=2; }; //front left gear class fl_gear_1pass { type="rotation"; source="gear"; selection="fl_gear_a"; axis="fl_gear_a_axis"; memory=1; minValue=0; maxValue=1; angle0=0; angle1=1.1; }; class fl_gear_2pass: fl_gear_1pass { type="translation"; minValue="0.2"; maxValue="0.5"; offset0="0"; offset1="0"; }; class fl_gear_b { type="rotation"; source="gear"; selection="fl_gear_b"; axis="fl_gear_b_axis"; memory=1; minValue=0; maxValue=1; angle0=0; angle1=0.9; }; class fl_gear_c_1pass { type="rotation"; source="gear"; selection="fl_gear_c"; axis="fl_gear_c_axis"; memory=1; minValue=0; maxValue=1; angle0=0; angle1=-2.6; }; class fl_gear_c_2pass: fl_gear_c_1pass { type="translation"; minValue="0"; maxValue="1"; offset0="0"; offset1="0"; }; class fl_gear_w { type="rotation"; source="wheel"; selection="fl_gear_w"; axis="fl_gear_w_axis"; memory=1; sourceAddress="loop"; minValue=0; maxValue=1; angle0=0; angle1="rad +360"; }; class fl_gear_h1 { type="rotation"; source="gear"; selection="fl_gear_h1"; axis="fl_gear_h1_axis"; memory=1; minValue=0; maxValue=2.5; angle0=1.8; angle1=0; }; //front right gear class fr_gear_1pass { type="rotation"; source="gear"; selection="fr_gear_a"; axis="fr_gear_a_axis"; memory=1; minValue=0; maxValue=1; angle0=0; angle1=-1.1; }; class fr_gear_2pass: fr_gear_1pass { type="translation"; minValue="0.2"; maxValue="0.5"; offset0="0"; offset1="0"; }; class fr_gear_b { type="rotation"; source="gear"; selection="fr_gear_b"; axis="fr_gear_b_axis"; memory=1; minValue=0; maxValue=1; angle0=0; angle1=-0.9; }; class fr_gear_c_1pass { type="rotation"; source="gear"; selection="fr_gear_c"; axis="fr_gear_c_axis"; memory=1; minValue=0; maxValue=1; angle0=0; angle1=2.6; }; class fr_gear_c_2pass: fr_gear_c_1pass { type="translation"; minValue="0"; maxValue="1"; offset0="0"; offset1="0"; }; class fr_gear_w { type="rotation"; source="wheel"; selection="fr_gear_w"; axis="fr_gear_w_axis"; memory=1; sourceAddress="loop"; minValue=0; maxValue=1; angle0=0; angle1="rad +360"; }; class fr_gear_h1 { type="rotation"; source="gear"; selection="fr_gear_h1"; axis="fr_gear_h1_axis"; memory=1; minValue=0; maxValue=2.5; angle0=-1.8; angle1=0; }; //rear gear class r_gear { type="rotation"; source="gear"; selection="r_gear"; axis="r_gear_axis"; memory=1; minValue=0; maxValue=1; angle0=0; angle1=1.7; }; class r_gear_h1 { type="rotation"; source="gear"; selection="r_gear_h1"; axis="r_gear_h1_axis"; memory=1; minValue=0; maxValue=2.5; angle0=2; angle1=0; }; class r_gear_h2 { type="rotation"; source="gear"; selection="r_gear_h2"; axis="r_gear_h2_axis"; memory=1; minValue=0; maxValue=2.5; angle0=-2; angle1=0; }; }; }; };
  15. M1lkm8n you are the best haha. Ok i'll give the offset value a try and hopefully it'll work. No need to worry about the coma, i removed other skeleton bones from the list to save reading time. 'l_holdster' isnt the last named selection which is why it has a coma in this instance. :) Unfortunately the offset values haven't worked. Am able to define the direction (-ve or +ve) the selection moves in some other way? So far i have attempted "translation-Y" and max value to "-1" but this hasn't worked.
  16. Awesome the rear gear works fine, now for the tricky front left & right gears. Should of chose a heli with skids! ;) Thanks for the advice and info, really helped.
  17. Hi I am currently trying to animate the rear gear on my attack helicopter. I had the basics sorted, however problems arose when I attempted to link (b_gear, b_gear_h1, b_gear_h2) together into one fluid animation in source="gear";. I have defined the bones in 0.00 & memory LODs. In my model.cfg I have made sure the selections are identical to O2. But when i go to animate the rear gear and two hatches in bulldozer, only b_gear will animate. My knowledge of .cpp & .cfg's are amateur at best so any help would be appreciated. Thanks for your time. Edit: Btw how do i upload my .cfg without taking up too much space?
  18. Ah ok, but I thought that selections which are dependent upon one another in an animation sequence had a comma, and those that weren't linked had "", at the end. This rear gear and two flaps are like the AH-99, closing together upon take off and opening/retracting when landing. Just applied what you defined and now works like a charm, however how would I create a delay for the hatches that would prevent the gear clipping through them when retracting? Thanks very much btw.
  19. Thanks M1lkm8n, Here is my model.cfg, I have omitted other animated parts and just left the rear gear and hatch flaps. class CfgSkeletons { class Default { isDiscrete = 1; skeletonInherit = ""; skeletonBones[] = {}; }; class heli_skeleton: Default { skeletonInherit=""; isDiscrete=0; skeletonBones[]= { "b_gear", "b_gear_h1", "b_gear_h2" }; }; }; class Rotation { type = "rotation"; memory = 1; minValue = 0; maxValue = 1; angle0 = 0; angle1 = 1; }; class CfgModels { class Default { sectionsInherit=""; sections[] = {}; skeletonName = ""; }; class heli: Default { skeletonName="heli_skeleton"; sectionsInherit=""; sections[]= { }; class Animations { //rear gear class b_gear { type="rotation"; source="gear"; selection="b_gear"; axis="b_gear_axis"; memory=1; minValue=0; maxValue=1; angle0=0; angle1=1.7; }; class b_gear_h1 { type="rotation"; source="gear"; selection="b_gear_h1"; axis="b_gear_h1_axis"; memory=1; minValue=0; maxValue=1; angle0=2; angle1=0; }; class b_gear_h2 { type="rotation"; source="gear"; selection="b_gear_h2"; axis="b_gear_h2_axis"; memory=1; minValue=0; maxValue=1; angle0=-2; angle1=0; }; }; }; }; };
  20. Could someone explain what happens if you decide to link up with Nato instead of the British?
  21. Hi, Recently I have been modelling an attack helicopter in 3ds Max with the intention of porting it into Arma 3. At present (following a tutorial) I have managed to edit the model in o2 and package it into a pbo using the addon builder. In the A3 editor the addon is displayed, however when I place it and click preview Arma simply crashes. To give you a run down, I have successfully installed o2 via the following tutorial; http://ohplz.ca/tuts/00/index.html To get a basic model in game I have been following this tutorial; http://armscor.blogspot.com.au/2013/09/arma-3-mod-basic-helicopter-tutorial.html Within Max I have turbo smoothed my model and deleted unnecessary edges to reduce file size. One problem I have encountered which may be the cause of A3 crash; I modelled it in meters (I read that importing into o2 should be 1:1), but this gave me my first problem. When the heli is imported into o2 it is huge, so I have to manually scale it down to a size which seems best. I have read and studied various tutorials but everything still feels hazy. If anyone could provide knowledge or advice to help make my addon work it would be greatly appreciated. Thanks for you time.
  22. 4. I've searched dev-heaven and found this site http://dev.withsix.com/, I'm assuming the config files are located within the projects tab? But I'm unable to find them, could you point me in the right direction? 5. Yeah the config.cpp (i think) goes hand in hand with the .p3d file I've created, but at present its basic just getting the model in game. I'll continue to work on this, god help me XD. Thanks
  23. I've sorted the problem, something as simple as the file save name being different to that inside of the config file.
  24. Thanks Surpher, Im looking at a host of .rpt files and some crash dump files, what do i need to do with them?
×