How to create addons for OA?, And, of course, with 3Ds Max 2011? |
How to create addons for OA?, And, of course, with 3Ds Max 2011? |
Sep 7 2010, 20:08
Post
#1
|
|
Member Group: Members Posts: 131 Joined: 22-May 10 Member No.: 7,651 |
Hay guise!
I barely learned how to make addons for ArmA1, now, is it different in OA? (I bet it is) I'm really good at 3Ds Max 2011, and I'd like to know some things: 1- I make a model, I import it to O2? Or is there other program used for OA? 2- How to wrap textures in a way that they're all connected in a single file and when I apply it in O2 it automaticly adjusts to the model? 3- What would be an example of a config.cpp that places the addon in the 'Empty' section? Thanks! |
|
|
Sep 7 2010, 21:21
Post
#2
|
|
Gee, I wish we had one of them doomsday machines. Group: Moderators Posts: 2,037 Joined: 13-November 06 From: Wales Member No.: 155 |
Exactly the same way as done with ArmA.1. The only differences are with the way ammo crates are defined (though I think you can use the ArmA.1 method too), and the faction system.
Defining an object into a faction is as simple as creating a new faction class: CODE class CfgFactionClasses { class Myfaction { displayName = "My Faction"; priority = 67; side = TWest; }; }; Then using this line in your vehicle class: CODE faction="Myfaction"; This site contains the a list of ArmA.2 and OA classes you can inherit from, along with pictures and such. (No BAF classes yet unfortunately) -------------------- The Rules - Nothing too complicated, follow these and we'll have no problems.
Moderation Feedback Thread - Tell everyone how much you Site Issues Thread - Complain about site issues here. We might even fix them! Community Chatter Thread - Furthest Mud-sling gets a free subscription to "JdB Monthly". QUOTE(Major Mike Shearer) We can categorically state that we have not released man-eating badgers into the area. QUOTE(Brace Belden) A machine gun is like a woman, I don’t understand it, I’m afraid of it, and one day I’ll accidentally be killed by one. |
|
|
Sep 7 2010, 22:23
Post
#3
|
|
Member Group: Members Posts: 131 Joined: 22-May 10 Member No.: 7,651 |
Okay, now, explain:
CODE faction="Myfaction"; CODE class CfgFactionClasses { class Myfaction { displayName = "My Faction"; priority = 67; side = TWest; }; }; It would be nice if you could explain the config.cpp and each line in it, and the faction system. If you already explained it and I didn't get it, then please make it easier XD Thanks! |
|
|
Sep 8 2010, 03:10
Post
#4
|
|
Gee, I wish we had one of them doomsday machines. Group: Moderators Posts: 2,037 Joined: 13-November 06 From: Wales Member No.: 155 |
Okay, now, explain: CODE faction="Myfaction"; CODE class CfgFactionClasses { class Myfaction { displayName = "My Faction"; priority = 67; side = TWest; }; }; It would be nice if you could explain the config.cpp and each line in it, and the faction system. If you already explained it and I didn't get it, then please make it easier XD Thanks! Unfortunately, a full description is too big to fit in the confines of this forums posting ability! My personal advice, and this is how I learned to make configs, so I know it's a method that works, is to look at other people's work, most addon makers won't mind you have a poke around their configs, if you're just looking to see how they've created their addons, as long as the stuff you release is your own, then it's "kosher". Some examples though: This is essentially a "stripped down" version of my SLA pack. (Though I've also expanded on some bits) CODE //Basic Definitions #define true 1 #define false 0 #define VSoft 0 #define VArmor 1 #define VAir 2 #define private 0 #define protected 1 #define public 2 #define TEast 0 #define TWest 1 #define TGuerrila 2 #define TCivilian 3 #define TSideUnknown 4 #define TEnemy 5 #define TFriendly 6 #define TLogic 7 #define ReadAndWrite 0 #define ReadAndCreate 1 #define ReadOnly 2 #define ReadOnlyVerified 3 #define DefaultManWeapons Throw,Put //This is the basic definations of ArmA, just have everything above this line at the start of your config and it'll save a lot of time! //cfgpatches is always at the start of your config file, it's the "base" of your config, and tells the engine what to expect from the pbo class CfgPatches { class HSO_EXAMPLE //It's best to keep this the same as the name of your pbo, for simplicity { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"CAweapons"}; }; }; //Factions are pretty self explainatory, if you're creating a unit for any of the default factions, or just a weapons pack, you don't need to include this. class CfgFactionClasses { class HSO_SLA_Faction //The classname of the faction { displayName = "SLA"; //The ingame name of the faction, can also be a string priority = 15; //The priority of the faction, where it appears in the editor side = TEast; //The side the faction is on. We can use the easily understood "TEast", rather than the engine defination of the east (OPFOR) side, which is "0", due to the basic definations at the top of the file }; }; CfgVehicleClasses gives us classes for vehicles: class CfgVehicleClasses { class HSO_Softskin_Class { displayName = "Soft-skinned vehicles"; //The display name of the vehicle class, can also be a string }; }; //It's good practice to include this before your cfgweapons section, so the firemodes will inherit correctly class Mode_SemiAuto { displayName = $STR_DN_MODE_SEMIAUTO; }; class Mode_Burst: Mode_SemiAuto { displayName = $STR_DN_MODE_BURST; }; class Mode_FullAuto: Mode_SemiAuto { displayName = $STR_DN_MODE_FULLAUTO; }; //cfgweapons contains all the information about weapons, whether they're hand-held or mounted on a turret. class cfgWeapons { class AK_74; class HSO_AIM74: AK_74 { model="\HSO_ARMA2_Weaps\AIMS74"; //The directory of the model for the weapon displayname="AIM-74"; //The display name ingame picture="\HSO_ArmA2_Weaps\ico\AIM74.paa"; //The picture, as shown in the inventory screen class Single: Mode_SemiAuto //The semiautomatic firemode class { begin1[] = {"ca\sounds\weapons\rifles\AK74_single2",1.77828,1,1000}; //The firing sound soundBegin[] = {"begin1",1}; //As above, this is a coding relic, to when weapons made different sounds for semi or auto fire back in OFP reloadTime = 0.1; //How fast the weapon fires recoil = "recoil_single_primary_4outof10"; //The recoil, as defined in cfgrecoils, you'll usually just want to use one of the predefined values for this recoilProne = "recoil_single_primary_prone_4outof10"; //As above, but for prone-firing dispersion = 0.00125; //The dispersion minRange = 2;minRangeProbab = 0.3; //For AI, the minimum engagement range with this weapon midRange = 300;midRangeProbab = 0.7; //For AI, the medium engagement range with this weapon maxRange = 600;maxRangeProbab = 0.04; //For AI, the maximum engagement range with this weapon }; class Burst: Mode_Burst { begin1[] = {"ca\sounds\weapons\rifles\AK74_single2",1.77828,1,1000}; soundBegin[] = {"begin1",1}; soundBurst = 0; reloadTime = 0.1; ffCount = 3; recoil = "recoil_auto_primary_3outof10"; recoilProne = "recoil_auto_primary_prone_3outof10"; dispersion = 0.00125; minRange = 50;minRangeProbab = 0.3; midRange = 200;midRangeProbab = 0.7; maxRange = 500;maxRangeProbab = 0.05; }; class FullAuto: Mode_FullAuto { begin1[] = {"ca\sounds\weapons\rifles\AK74_single2",1.77828,1,1000}; soundBegin[] = {"begin1",1}; reloadTime = 0.1; ffCount = 30; recoil = "recoil_auto_primary_4outof10"; recoilProne = "recoil_auto_primary_prone_4outof10"; dispersion = 0.00125; minRange = 0;minRangeProbab = 0.1; midRange = 150;midRangeProbab = 0.7; maxRange = 300;maxRangeProbab = 0.05; }; }; }; //Class cfgvehicles contains all the stuff you'll find in the editor (unless it's hidden, of course!) class CfgVehicles { //External class references class Man; class CAManBase: Man { class TalkTopics; class HitPoints { class HitHead; class HitBody; }; }; class SoldierEB: CAManBase { class TalkTopics: TalkTopics{}; }; class UAZ; class HSO_SLA_Soldier: SoldierEB { faction="HSO_SLA_Faction"; //This is the faction our soldier or vehicle belongs to, as defined in CfgFactionClasses side = TEast; //The side, again identityTypes[] = {"Head_CDF","RU_Glasses"}; //The sorts of identity this soldier should have, in this case, CDF style faces and voices and russian style glasses faceType = "Man"; //The head model used. Keep it like this unless you want soldier to wear a balaclava or similar genericNames = "RussianMen"; //The sort of names the soldier should have vehicleClass = "Men"; //The vehicle class for the soldier portrait = "\HSO_SLAINF\portraits\soldier_ca"; //The command panel portrait for the soldier model="\HSO_SLAInf\INFSoldier"; //The soldier's model picture = "\Ca\characters\data\Ico\i_null_CA.paa"; //Not too sure what this one does icon = "\Ca\characters2\data\icon\i_soldier_CA.paa"; // The icon in the editor accuracy = 2; //The basic accuracy of the soldier, best keep it at this sort of value camouflage = 1.4; //How well camouflaged the unit is sensitivity = "0.5 *2"; //How sensitive the unit is minFireTime = 10; //Not too sure what this one does, think it determines how "triggerhappy" the soldier is scope = 2; //Determines if the soldier appears in the editor or not, any values less than 2 and the vehicles won't appear in the editor cost = 40000; //Used to work out the score at the end of scenario if this unit is KIA weapons[] = {"HSO_AIMS74","Throw","Put","ItemMap","ItemCompass","ItemWatch","ItemRadio"}; //The weapons this unit starts with, by default magazines[] = {"30Rnd_545x39_AK","30Rnd_545x39_AK","30Rnd_545x39_AK","30Rnd_545x39_AK","30Rnd_545x39_AK","30Rnd_545x39_AK","HandGrenade_East","HandGrenade_East"}; // The magazines this unit starts with, by default respawnWeapons[] = {"HSO_AIMS74","Throw","Put","ItemMap","ItemCompass","ItemWatch","ItemRadio"}; //The weapons this unit respawns with (in MP) by default respawnMagazines[] = {"30Rnd_545x39_AK","30Rnd_545x39_AK","30Rnd_545x39_AK","30Rnd_545x39_AK","HandGrenade_East"}; //Ditto, but for magazines class Wounds { tex[] = {}; mat[] = {"ca\characters2\Rus\DATA\soldier_flora_vsr_vest.RVmat","ca\characters2\Rus\DATA\soldier_flora_vsr_vest_w1.RVmat","ca\characters2\Rus\DATA\soldier_flora_vsr_vest_w2.RVmat", "ca\characters2\Rus\DATA\soldier_co_flora_vsr_vest.RVmat","ca\characters2\Rus\DATA\soldier_co_flora_vsr_vest_w1.RVmat","ca\characters2\Rus\DATA\soldier_co_flora_vsr_vest_w2.RVmat", "ca\characters2\Rus\DATA\soldier_mg_flora_vsr_vest.RVmat","ca\characters2\Rus\DATA\soldier_mg_flora_vsr_vest_w1.RVmat","ca\characters2\Rus\DATA\soldier_mg_flora_vsr_vest_w2.RVmat", "ca\characters2\Rus\DATA\soldier_at_flora_VSR_vest.RVmat","ca\characters2\Rus\DATA\soldier_at_flora_VSR_vest_w1.RVmat","ca\characters2\Rus\DATA\soldier_at_flora_VSR_vest_w2.RVmat", "ca\characters2\Rus\DATA\soldier_pilot_flora_vsr.RVmat","ca\characters2\Rus\DATA\soldier_pilot_flora_vsr_w1.RVmat","ca\characters2\Rus\DATA\soldier_pilot_flora_vsr_w2.RVmat", "ca\characters2\Rus\DATA\soldier_crew_flora_vsr.RVmat","ca\characters2\Rus\DATA\soldier_crew_flora_vsr_w1.RVmat","ca\characters2\Rus\DATA\soldier_crew_flora_vsr_w2.RVmat", "ca\characters2\Rus\DATA\Commander.rvmat","ca\characters2\Rus\DATA\W1_Commander.rvmat","ca\characters2\Rus\DATA\W2_Commander.rvmat"}; }; //The wound texture bit, there are 3 levels of wounding for each material or texture, healthy, light wounding, or heavy wounding, this is defined here. class TalkTopics: TalkTopics { core_cz = "Core_Full"; }; languages[] = {"CZ"}; //Which languages this unit understands }; class HSO_Scouter: Uaz { model="\HSO_SLAInf\Scouter.p3d"; //The model for the vehicle crew= HSO_SLA_Soldier; //The crew for the vehicle vehicleClass="HSO_Softskin_Class"; //The class of the vehicle displayName="Scout Car"; //The display name for this vehicle maxSpeed=75; //The maximum speed of this vehicle, in km/h cargoAction[] = {Hatchback_Cargo01}; //The animation soldiers in cargo should play transportSoldier = 3; //How many soldiers can ride in the vehicle driverAction = Hatchback_Driver; //The animation the driver should play cargoIsCoDriver[] = {true, false}; //Determines whether this driver or gunner should lead if there isn't a commander in the vehicle. class Library {libTextDesc = "A basic scout car";}; //The description of this unit in the armoury }; }; I know I've forgotten something, so apologies for this in advance -------------------- The Rules - Nothing too complicated, follow these and we'll have no problems.
Moderation Feedback Thread - Tell everyone how much you Site Issues Thread - Complain about site issues here. We might even fix them! Community Chatter Thread - Furthest Mud-sling gets a free subscription to "JdB Monthly". QUOTE(Major Mike Shearer) We can categorically state that we have not released man-eating badgers into the area. QUOTE(Brace Belden) A machine gun is like a woman, I don’t understand it, I’m afraid of it, and one day I’ll accidentally be killed by one. |
|
|
Sep 9 2010, 15:17
Post
#5
|
|
Member Group: Members Posts: 131 Joined: 22-May 10 Member No.: 7,651 |
HOLY ********************************************!!
Hmh... Well, I actually don't know what to say :S... I didn't fully understood what's the config for(Weapons, Vehicles, Soldiers)... It may be a part of all those (?) Still, my questions still are: 1- I make a model, I import it to O2? Or is there other program used for OA? 2- How to wrap textures in a way that they're all connected in a single file and when I apply it in O2 (or other program) it automaticly adjusts to the model? In case you might've missunderstood, I DON'T know how to wrap textures Really good job Dave... Still this sh*t's kinda messy for me, I rather prefer stick to my questions |
|
|
Sep 9 2010, 20:14
Post
#6
|
|
Gee, I wish we had one of them doomsday machines. Group: Moderators Posts: 2,037 Joined: 13-November 06 From: Wales Member No.: 155 |
The config tells the game how objects work.
Anyways... your questions... 1. O2 is still used for making models in the p3d format. You'll also want texview 2, to convert your textures into .paa format. 2. UV mapping should be done in the program you're using to make the models, before you import them into O2, at which point you only need to set up the path to the texture. You can also edit UV maps in oxygen, but it's pretty messy, so I'd advise against it unless you just want to make modifications to an existing UV map. If you're not sure what this means, then I'd advise you use separate textures for now. Bear in mind, before attempting to use a UV map, that you can not have textures tiling, without a significant performance drop. -------------------- The Rules - Nothing too complicated, follow these and we'll have no problems.
Moderation Feedback Thread - Tell everyone how much you Site Issues Thread - Complain about site issues here. We might even fix them! Community Chatter Thread - Furthest Mud-sling gets a free subscription to "JdB Monthly". QUOTE(Major Mike Shearer) We can categorically state that we have not released man-eating badgers into the area. QUOTE(Brace Belden) A machine gun is like a woman, I don’t understand it, I’m afraid of it, and one day I’ll accidentally be killed by one. |
|
|
Sep 12 2010, 17:21
Post
#7
|
|
Member Group: Members Posts: 131 Joined: 22-May 10 Member No.: 7,651 |
Alright, look, let's make it easier: Just give me a tut(s) that explain how to create addons and, while the guy's good, i'll understand. Thanks!
|
|
|
Sep 13 2010, 17:57
Post
#8
|
|
Gee, I wish we had one of them doomsday machines. Group: Moderators Posts: 2,037 Joined: 13-November 06 From: Wales Member No.: 155 |
Alright, look, let's make it easier: Just give me a tut(s) that explain how to create addons and, while the guy's good, i'll understand. Thanks! I'd love to, unfortunately, to the best of my knowledge no such tutorial exists, so I'd need to write one myself. Might do some time... it'd take a lot of time though... time being something I seem to be able to less of with each day... -------------------- The Rules - Nothing too complicated, follow these and we'll have no problems.
Moderation Feedback Thread - Tell everyone how much you Site Issues Thread - Complain about site issues here. We might even fix them! Community Chatter Thread - Furthest Mud-sling gets a free subscription to "JdB Monthly". QUOTE(Major Mike Shearer) We can categorically state that we have not released man-eating badgers into the area. QUOTE(Brace Belden) A machine gun is like a woman, I don’t understand it, I’m afraid of it, and one day I’ll accidentally be killed by one. |
|
|
Lo-Fi Version | Time is now: 23rd April 2024 - 22:49 |