Jump to content
Sign in to follow this  
Rhamka

static weapon config help, please!

Recommended Posts

Im new to config, I have several 3d models but none of them I've finished, so I decided to finish at least one, the thing is that config is not easy to understand, so I downloaded a some sample models released by BI to understand config files. Now, its not been easy so I went to original config files of original addons I took what I thought was related. I took an M2 machine gun sample to work with. So what I have a carpet named "myweap", within there the files: config.cpp, MyWeapon_mg.p3d and MyWeapon_static.p3d; I just renamed original models (m2_mg.p3d and m2_static.p3d).

I think config works fine, it appears no error message but as you can see it has lot of information that probably just reduplicates information with no necessity.

The weapon appears in the library and can be accessed, can shoot and eve appears with the same texture as the orignal m2 (I didn't altered textures path) but can't mouve the barrel to different directions, it always points at the same place which is useless.

I post the config file it helps someone, problably the mistake is not in the config file but in finishing the 3d model, but I have no idea. If you can tell me what things of the config file are just repating, please tell, it's too long file! (My questions are in the config file...)

#define TWest 1

#define TGuerrila 2

#define TCivilian 3

#define TSideUnknown 4

#define TEnemy 5

#define TFriendly 6

#define TLogic 7

#define true 1

#define false 0

#define private 0

#define protected 1

#define public 2

class CfgMovesBasic {

class DefaultDie; //Extended

class ManActions {

MyWeapon_Gunner = "MyWeapon_Gunner";

};

};

class CfgMovesMaleSdr : CfgMovesBasic {

class States {

class Static_Dead : DefaultDie {

actions = "DeadActions";

file = "\ca\Anims\characters\data\anim\sdr\Mov\Sit\stp\non\non\AmovPsitMstpSnonWnonDnon_basic.rtm";

speed = 10000000000.000000;

terminal = 1;

soundEnabled = 0;

};

class Crew; //Extended

class M2_Gunner : Crew {

file = "\ca\weapons\Data\Anim\M2_Gunner.rtm";

connectTo[] = {"Static_Dead",1 };

};

};

};

class cfgRecoils {

machinegunBase[] = {0,0,0,0.080000,0.010000,0.040000,0.050000,-0.003000,-0.010000,0.200000,0,0 };

};

class CfgAmmo {

class Default; //Extended

class BulletCore; //Extended

class BulletBase : BulletCore {

hit = 8;

indirectHit = 0;

indirectHitRange = 0;

model = "\ca\Weapons\shell"; //do I have to put all these bullet base? I removed but "class B_127x99_Ball : BulletBase" ask for this

soundFly[] = {"\ca\Weapons\Data\Sound\bulletnoise1",0.112202,1.200000 };

soundHit1[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_01",0.010000,1 };

soundHit2[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_02",0.031623,1 };

soundHit3[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_03",0.010000,1 };

soundHit4[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_04",0.031623,1 };

soundHit5[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_05",0.010000,1 };

soundHit6[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_06",0.010000,1 };

soundHit7[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_07",0.010000,1 };

soundHit8[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_08",0.031623,1 };

soundHit9[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_09",0.017783,1 };

soundHit10[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_10",0.010000,1 };

soundHit11[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_13",0.031623,1 };

soundHit12[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_16",0.010000,1 };

soundHitMan1[] = {"\ca\Weapons\Data\Sound\bullet_man_hit_01",0.316228,1 };

soundHitMan2[] = {"\ca\Weapons\Data\Sound\bullet_man_hit_02",0.316228,1 };

soundHitMan3[] = {"\ca\Weapons\Data\Sound\bullet_man_hit_03",0.316228,1 };

soundHitMan4[] = {"\ca\Weapons\Data\Sound\bullet_man_hit_04",0.316228,1 };

soundHitMan5[] = {"\ca\Weapons\Data\Sound\bullet_man_hit_05",0.316228,1 };

soundHitMan6[] = {"\ca\Weapons\Data\Sound\bullet_man_hit_06",0.316228,1 };

soundHitMan7[] = {"\ca\Weapons\Data\Sound\bullet_man_hit_07",0.316228,1 };

soundHitArmor1[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_01",0.100000,1 };

soundHitArmor2[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_02",0.100000,1 };

soundHitArmor3[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_03",0.100000,1 };

soundHitArmor4[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_04",0.100000,1 };

soundHitArmor5[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_05",0.100000,1 };

soundHitArmor6[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_06",0.100000,1 };

soundHitArmor7[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_07",0.100000,1 };

soundHitArmor8[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_08",0.100000,1 };

soundHitArmor9[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_09",0.100000,1 };

soundHitArmor10[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_10",0.100000,1 };

soundHitArmor11[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_11",0.100000,1 };

soundHitArmor12[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_12",0.100000,1 };

soundHitArmor13[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_13",0.100000,1 };

soundHitArmor14[] = {"\ca\Weapons\Data\Sound\bullet_armor_hit_14",0.100000,1 };

soundHitBuilding1[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_02",0.017783,1 };

soundHitBuilding2[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_04",0.017783,1 };

soundHitBuilding3[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_10",0.017783,1 };

soundHitBuilding4[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_12",0.017783,1 };

soundHitBuilding5[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_13",0.005623,1 };

soundHitBuilding6[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_14",0.017783,1 };

soundHitBuilding7[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_15",0.017783,1 };

soundHitBuilding8[] = {"\ca\Weapons\Data\Sound\bullet_ricochet_16",0.017783,1 };

supersonicCrackNear[] = {"\ca\Weapons\Data\Sound\supersonic_crack_close.wss",1,1 };

supersonicCrackFar[] = {"\ca\Weapons\Data\Sound\supersonic_crack_50meters.wss",1,1 };

hitGround[] = {"soundHit1",0.083000,"soundHit2",0.083000,"soundHit3",0.083000,"soundHit4",0.083000,"soundHit5",0.083000,"soundHit6",0.083000,"soundHit7",0.083000,"soundHit8",0.083000,"soundHit9",0.083000,"soundHit10",0.083000,"soundHit11",0.083000,"soundHit12",0.083000 };

hitMan[] = {"soundHitMan1",0.143000,"soundHitMan2",0.143000,"soundHitMan3",0.143000,"soundHitMan4",0.143000,"soundHitMan5",0.143000,"soundHitMan6",0.143000,"soundHitMan7",0.143000 };

hitArmor[] = {"soundHitArmor1",0.071000,"soundHitArmor2",0.071000,"soundHitArmor3",0.071000,"soundHitArmor4",0.071000,"soundHitArmor5",0.071000,"soundHitArmor6",0.071000,"soundHitArmor7",0.071000,"soundHitArmor8",0.071000,"soundHitArmor9",0.071000,"soundHitArmor10",0.071000,"soundHitArmor11",0.071000,"soundHitArmor12",0.071000,"soundHitArmor13",0.071000,"soundHitArmor14",0.071000 };

hitBuilding[] = {"soundHitBuilding1",0.125000,"soundHitBuilding2",0.125000,"soundHitBuilding3",0.125000,"soundHitBuilding4",0.125000,"soundHitBuilding5",0.125000,"soundHitBuilding6",0.125000,"soundHitBuilding7",0.125000,"soundHitBuilding8",0.125000 };

cartridge = "FxCartridge";

cost = 0.700000;

deflecting = 10;

tracerColor[] = {0,0,0,0 };

tracerColorR[] = {0,0,0,0 };

};

class FlareCore; //Extended

class FlareBase : FlareCore {

};

class B_127x99_Ball : BulletBase {

hit = 26;

indirectHit = 3;

indirectHitRange = 0.010000;

visibleFire = 22;

audibleFire = 22;

visibleFireTime = 3;

cost = 20;

airLock = 1;

tracerColor[] = {0.800000,0.100000,0.100000,0.040000 };

tracerColorR[] = {0.800000,0.100000,0.100000,0.040000 };

};

};

class CfgVehicles {

class All; //Extended

class Strategic; //Extended

class Land; //Extended

class LandVehicle : Land {

class ViewPilot; //Extended

class NewTurret; //Extended

};

class StaticWeapon : LandVehicle {

vehicleClass = "Static";

driverOpticsModel = "\ca\weapons\optika_empty";

selectionClan = "clan";

selectionDashboard = "podsvit pristroju";

selectionShowDamage = "poskozeni";

selectionBackLights = "light_back";

bounding = "usti hlavne";

alphaTracks = 0.700000;

textureTrackWheel = 0;

selectionLeftOffset = "";

selectionRightOffset = "";

memoryPointTrack1L = "";

memoryPointTrack1R = "";

memoryPointTrack2L = "";

memoryPointTrack2R = "";

selectionFireAnim = "zasleh";

fireDustEffect = "FDustEffects";

class DestructionEffects {

};

memoryPointMissile[] = {"spice rakety","usti hlavne" };

memoryPointMissileDir[] = {"konec rakety","konec hlavne" };

memoryPointCargoLight = "cargo light";

gunnerCanSee = "2+8+32";

gunnerHasFlares = 0;

class Turrets {

class MainTurret : NewTurret {

memoryPointsGetInGunner = "pos_gunner";

memoryPointsGetInGunnerDir = "pos_gunner_dir";

memoryPointGunnerOptics = "gunnerview";

memoryPointGun = "usti hlavne";

outGunnerMayFire = 1;

gunnerOpticsModel = "\ca\Weapons\optika_empty";

minTurn = -180;

maxTurn = 180;

initTurn = 0;

minElev = -7;

maxElev = 70;

initElev = 0;

castGunnerShadow = 1;

ejectDeadGunner = 1;

class ViewOptics {

initAngleX = 0;

minAngleX = -30;

maxAngleX = 30;

initAngleY = 0;

minAngleY = -100;

maxAngleY = 100;

initFov = 0.420000;

minFov = 0.220000;

maxFov = 0.640000;

};

};

};

damperSize = 1.400000;

damperForce = 0.800000;

gearBox[] = {-1,0,1 };

soundEnviron[] = {"",1.000000,0.700000 };

soundEngine[] = {"",10.000000,1 };

soundCrash[] = {"",0.562341,1 };

soundGear[] = {"",0.000316,1 };

soundDammage[] = {"",0.010000,1 };

getInAction = "GetInMedium";

getOutAction = "GetOutMedium";

class Wounds {

tex[] = {};

mat[] = {};

};

icon = "iconTank";

mapSize = 5;

displayName = "$STR_DN_TANK";

nameSound = "tank";

accuracy = 0.120000;

getInRadius = 3.500000;

fuelCapacity = 0;

irScanRangeMin = 500;

irScanRangeMax = 4000;

irScanToEyeFactor = 1;

armor = 20;

armorStructural = 2.000000;

class HitEngine {

armor = 0.800000;

material = 60;

name = "motor";

passThrough = 1;

};

class HitHull {

armor = 1;

material = 50;

name = "telo";

passThrough = 1;

};

class HitTurret {

armor = 0.800000;

material = 51;

name = "vez";

passThrough = 1;

};

class HitGun {

armor = 0.600000;

material = 52;

name = "zbran";

passThrough = 1;

};

class HitLTrack {

armor = 0.600000;

material = 53;

name = "pas_L";

passThrough = 1;

};

class HitRTrack {

armor = 0.600000;

material = 54;

name = "pas_P";

passThrough = 1;

};

extCameraPosition[] = {0,1.500000,-9 };

class ViewPilot : ViewPilot {

initAngleX = 7;

minAngleX = -15;

maxAngleX = 25;

initAngleY = 0;

minAngleY = -90;

maxAngleY = 90;

};

cost = 1000000;

steerAheadSimul = 0.400000;

steerAheadPlan = 0.600000;

predictTurnSimul = 1.200000;

predictTurnPlan = 1.800000;

hasGunner = 1;

hasCommander = 0;

ejectDeadDriver = 1;

ejectDeadCargo = 1;

hasDriver = 0;

nightVision = 0;

driverAction = "ManActCargo";

driverInAction = "ManActCargo";

simulation = "tank";

occludeSoundsWhenIn = 1.000000;

obstructSoundsWhenIn = 1.000000;

formationX = 10;

formationZ = 10;

precision = 1;

brakeDistance = 0;

maxSpeed = 0;

canFloat = 0;

weapons[] = {"FakeWeapon" };

magazines[] = {"FakeWeapon" };

type = 1;

threat[] = {0.700000,1,0.300000 };

camouflage = 1;

audible = 1;

hideProxyInCombat = 0;

driverOpticsColor[] = {0,0,0,1 };

class CargoLight {

color[] = {0,0,0,0 };

ambient[] = {0.600000,0,0.150000,1 };

brightness = 0.007000;

};

transportMaxMagazines = 0;

transportMaxWeapons = 0;

class Reflectors {

};

secondaryExplosion = 0;

};

class MyWeaponStaticMG : StaticWeapon { //orginally was M2StaticWeapon, so I don't know if it is right

scope = 2;

side = 1;

crew = "SoldierWB";

model = "\myweap\myweapon_mg"; //this is where the model is located,

picture = "\ca\Weapons\data\ico\m2_mg_CA.paa"; //I didn't change this path so textures appear applied

icon = "\Ca\weapons\Data\map_ico\icomap_M2_CA.paa"; //same here, so same icon

mapSize = 4;

sound[] = {"\ca\Weapons\Data\Sound\MachineGuns_M2HB_SS_v5",100.000000,1 };

reloadMagazineSound[] = {"\ca\Weapons\Data\Sound\m2gun_inout",0.031623,1 };

displayName = "$STR_DN_MyWeapon_MG";

nameSound = "mgun";

typicalCargo[] = {"SoldierWB" };

class Turrets : Turrets {

class MainTurret : MainTurret {

minElev = -10;

minTurn = -70;

maxTurn = 70;

initTurn = 0;

weapons[] = {"MyWeapon" }; //is this right?

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

gunnerAction = "MyWeapon_Gunner"; //same doubt here? originally it was "M2_Gunner"

};

};

class AnimationSources {

class belt_rotation {

source = "reload";

weapon = "MyWeapon";

};

};

soundGetOut[] = {"\ca\Weapons\Data\Sound\m2gun_inout",0.001000,1 };

soundGetIn[] = {"\ca\Weapons\Data\Sound\m2gun_inout",0.000316,1 };

armorStructural = 10.000000;

class Library {

libTextDesc = "$STR_LIB_MyWeapon_MG";

};

};

};

class CfgNonAIVehicles {

class ProxyGunner; //Extended

class ProxyM2Gunner : ProxyGunner {

};

class ProxyWeapon {

};

class ProxySecWeapon {

};

class ProxyM2_Static : ProxyWeapon {

model = "\ca\Weapons\MyWeapon_Static";

simulation = "alwaysshow";

};

};

class CfgMagazines {

class Default; //Extended

class CA_Magazine : Default {

scope = 1;

value = 1;

displayName = "";

model = "\ca\weapons\mag_univ.p3d";

picture = "";

modelSpecial = "";

useAction = 0;

useActionTitle = "";

reloadAction = "ManActReloadMagazine";

ammo = "";

count = 30;

type = 256;

initSpeed = 900;

selectionFireAnim = "zasleh";

nameSound = "";

maxLeadSpeed = 23;

};

class VehicleMagazine : CA_Magazine {

type = 0;

reloadAction = "";

maxLeadSpeed = 100;

};

class 100Rnd_127x99_M2 : VehicleMagazine {

scope = 2;

displayName = "$STR_DN_MyWeapon_MG";

ammo = "B_127x99_Ball";

count = 100;

initSpeed = 930;

maxLeadSpeed = 200;

};

};

class CfgPatches {

class CAWeapons {

units[] = {};

weapons[] = {};

requiredVersion = 0.100000;

requiredAddons[] = {"CAData","CA_Anims_Char" };

};

};

class cfgWeapons {

class Default; //Extended

class MGunCore; //Extended

class MGun : MGunCore {

type = 65536;

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

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

displayName = "$STR_DN_MGUN";

nameSound = "mgun";

reloadTime = 0.250000;

autoFire = 1;

reloadAction = "ManActReloadMagazine";

sound[] = {"\ca\Weapons\Data\Sound\M60_SS",1.000000,1 };

soundContinuous = 0;

reloadSound[] = {"",1,1 };

initSpeed = 900;

flash = "gunfire";

flashSize = 0.500000;

optics = 0;

};

class MyWeapon : MGun {

scope = 1;

displayName = "$STR_DN_MyWeapon_MG"; //does it display weapon name in-game or in the editor?

autoFire = 1;

magazines[] = {"100Rnd_127x99_M2" };

sound[] = {"\ca\Weapons\Data\Sound\MachineGuns_M2HB_SS_v2",3.162278,1 };

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

reloadTime = 0.110000;

magazineReloadTime = 10;

dispersion = 0.002000;

canLock = 0;

minRange = 1;

minRangeProbab = 0.100000;

midRange = 400;

midRangeProbab = 0.700000;

maxRange = 1200;

maxRangeProbab = 0.040000;

aiDispersionCoefY = 7.000000;

aiDispersionCoefX = 7.000000;

maxLeadSpeed = 600;

};

}; //ends config

I lighter problem is that the name of this addon appears as "*", I mean, no real name but Im not really worried about it.

So this is about three main questions:

1)how to make my turret point to different directions? is it the config?

2)how to simplify the config file?

3)how to display a proper name in-game?

Share this post


Link to post
Share on other sites

no one?... Well, I've been looking the p3d model, I do not know if it is related but selections are not written in the config.cpp file, for exemple "bolt" and those czech names. I've looked for a config file with animations, maybe that helps me but not sure, I don't find anything like CfgAnimations or something in the BIS wiki, actually there is no CfgPatches there to be explained, so I changed it to:

class CfgPatches {

class MyWeapon {

units[] = {};

weapons[] = {"MyWeapon"};

requiredVersion = 0.100000;

requiredAddons[] = {"CAData","CA_Anims_Char" };

};

};

I tested and same thing as before, barrel has no movement.

Edited by Rhamka

Share this post


Link to post
Share on other sites
but can't mouve the barrel to different directions, it always points at the same place which is useless.

Probably because you model doesnt have its own compiled MODEL.CFG file.

This "replacement" method is going to give you nothing but trouble.

You need to look at other peoples addon configs to see how they work, you dont need 90% of the below.

And you need a MODEL.CFG for your models.

1)how to make my turret point to different directions? is it the config?

2)how to simplify the config file?

3)how to display a proper name in-game?

First off you need to work out what your guns will be most like from the standard BIS provided stuff, then INHERIT that config, but NOT copy the whole config.

Share this post


Link to post
Share on other sites

I tried to find an static weapon addon with no result. I thought it was too large file but worked almost completely. I just ignore everything about config files, I've been on BIS wiki so some things are clearer but not enough to me. Some unbinarized samples could help noobs like me to understand how the whole addon works, but all addons I have are binarized. I tried to download SLX sample but can't be open. So probably a basic config for static weapon helps me.

Share this post


Link to post
Share on other sites

BIS provided just about EVERY model from ArmA1 as a unbinarized sample, with model.cfg's and configs. Suggest you search for that thread, download and look.

You will find a bunch of Static weapons in that.

Share this post


Link to post
Share on other sites

For what you say I have to include a model.cfg file, right? I have samples of BIS an the config I take in my post is taken from there. Anyway, I'll give a try with model.cfg wich I don't have. I just meant that I haven't found static weapons addons done by players to see how the whole thing works, as BIS samples are just like reference stuff. Thanks for the advice, probably I'm missing a config file.

Share this post


Link to post
Share on other sites

If the config for an existing BIS model already exists, you only need to redefine it IF you change it's value. Obvious ones being displayName, model etc.

Depending on how different your static model is compared to a BIS one will vary the amount of config values you will redefine.

The reason your name is appearing blank is probably because you don't have "$STR_DN_MyWeapon_MG" defined in a stringtable? For now just put exactly what you want it to be in the string. Eg:

displayName = "My Static Weapon";

I'm no good with anims so I can't help you with that, but the basic rule with the config is that you don't copy the config, only use it as a reference and then redefine whats different.

Share this post


Link to post
Share on other sites

is it possible to have this entire thread recreated on Armastack, it has good information in it, and could be benificial to have all in one place.

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  

×