#arma3_config

1 messages Β· Page 25 of 1

hearty sandal
#

from pins we have a guide on how to read it

copper hazel
hearty sandal
#

something in your setup causes it

#

its not correct if the error pops up

#

either you create a class without correct parameters

#

or you break some exisiting inheritance rendering a class broken

copper hazel
hearty sandal
#

blobdoggoshruggoogly some mistake has been made inbetween

#

all I can say is that the error does not come up without reason

copper hazel
#

could be a required addon thing ?

hearty sandal
#

perhaps

#

if your config is read in wrong place

copper hazel
#

was looking at the wrong helicopter it was not the one when i placed it

somber turtle
#

I cant seem to get my main menu mission to show.

the mission only has a player down

 class CfgPatches
{
    class PTf_Menu
    {
        units[] = {};
        weapons[] = {};
        requiredVersion = 0.1;
        requiredAddons[] = {"A3_Data_F_Enoch_Loadorder"};
    };
};


class CfgWorlds {
    class CAWorld;    // External class reference
    class Altis : CAWorld {
        cutscenes[] = {"mymainmenu"};
    };
    
    class Stratis : CAWorld {
        cutscenes[] = {"mymainmenu"};
    };

    class Enoch : CAWorld {
        cutscenes[] = {"mymainmenu"};
    };

    class hellanmaa : CAWorld {
        cutscenes[] = {"mymainmenu"};
    };
    
    class hellanmaaw : CAWorld {
        cutscenes[] = {"mymainmenu"};
    };

    class VR : CAWorld {
        cutscenes[] = {"mymainmenu"};
    };

    initWorld = "VR";
    demoWorld = "VR";
};

class CfgMissions
{
    class Cutscenes
    {
        class mymainmenu // Class referenced in 'cutscenes' property in CfgWorlds
        {
            directory = "\PTF_Menu\mainmenu.vr"; // Path to scenario with the scene
        };
    };
};
hearty sandal
#

try newer loadorder maybe

somber turtle
#

what would be the newest one? oldman?

hearty sandal
somber turtle
#

when i run it with "A3_Data_F_Decade_Loadorder"

it still just flashes and gose to a static image

#

it dose show that its starting in my rpt

17:31:00 Starting mission:
17:31:00  Mission file: mainmenu
17:31:00  Mission world: vr
17:31:00  Mission directory: \PTF_Menu\mainmenu.vr\
tacit zealot
#

How are hidden selections configured on the Mk32 GMG variants? I'm trying to make a retexture but the configs don't have the entry arrays filled out (so they are defined in the model, which I cannot see)

hearty sandal
tacit zealot
#

I tried that but yielded no results, since hiddenSelections[] = {};. Currently testing what happens if I define some of these using some common selection names - maybe they're in the model but unused.
However, I did locate the textures inside \static_f_gamma\data

hearty sandal
#

camo1 camo2 camo3 seems to be present

tacit zealot
#

Found that out for myself when I discovered that after defining the HS[] but not the HST[] the turret disappeared!
Tex 01 is the colored part of the turret, Tex 02 is the stand + optic(?), Tex 03 is the autonomous addon module

tacit zealot
#

Confirmed that the turrets are retexturable - you just need to manually define hidden selections; sample config and results below, same textures work for raised, low, autonomous variants:

    class B47_WZ_M307X1_Raised_base: B47_WZ_M307X1_Raised_base2{
        author = "brendob47";
        hiddenSelections[] = {"camo1", "camo2", "camo3"};
        hiddenSelectionsTextures[] = {"\a3\static_f_gamma\data\staticturret_01_co.paa", "\a3\static_f_gamma\data\staticturret_02_co.paa", "\a3\static_f_gamma\data\staticturret_03_co.paa"};
        textureList[] = {"B47_WZ_Olive", 1};

        class TextureSources{
            class B47_WZ_Olive{
                author = "brendob47";
                displayName = "Olive";
                textures[] = {"\a3\static_f_gamma\data\staticturret_01_co.paa", "\a3\static_f_gamma\data\staticturret_02_co.paa", "\a3\static_f_gamma\data\staticturret_03_co.paa"};
            };
            class B47_WZ_Black{
                author = "brendob47";
                displayName = "Black";
                textures[] = {"\b47_Wz_factions\data\tex\statics\b47_m307_01_dark.paa", "\a3\static_f_gamma\data\staticturret_02_co.paa", "\b47_Wz_factions\data\tex\statics\b47_m307_03_dark.paa"};
            };
        };
    };```
dry kelp
#

Can any one tell me what i do wrong The first uniform is glitch but the seccond one work just fine

balmy atlas
#
class HitPoints {
  class HitFuel {
    name="myHPname"; //you are missing this parameter
  };
};
deft frigate
#

So I tried to increase radar range on a vehicle through class AirTarget and while on the panels it shows the range is increased it doesn't really detect anything over like 21-22 KM is it like a engine limitation or am I just doing something wrong (I have both objectDistanceLimitCoef and view DistanceLimitCoef set to -1 btw)

hearty sandal
#

could very well be engine limit

copper hazel
lean bloom
#

I have been looking at this for a while, trying to figure out if this is the same issue I am having. When I press RBM to go into the optics, the camera seems to be looking "straight ahead", but the default direction of my barrel is offset some 12 degrees, and I would need to create this same offset for the optics.

My assumption was memorypointCamera controls the initial camera position, and cameraDir controls the direction the camera is looking, but I reckon this is not true, since it does not work for me.

#
            class MainTurret : MainTurret {
                gunnerAction = "Mortar_Gunner";
                gunnergetInAction = "GetInLow";
                gunnergetOutAction = "GetOutLow";
                weapons[] = {QUOTE(TBD_2B9_WEAPON)};
                elevationMode = 1;
                initCamElev = 20;
                minCamElev = -35;
                maxCamElev = 35;
                initElev = 0;
                minTurn = -30;
                maxTurn = 30;
                initTurn = 0;
                cameraDir = "look";
                discreteDistance[] = {};
                discreteDistanceCameraPoint[] = {"gunnerview"};
                gunnerForceOptics = 0;
                maxVerticalRotSpeed = 0.05;
                maxHorizontalRotSpeed = 0.1;
                memoryPointCamera = "gunnerview";
                memoryPointGunnerOptics = "gunnerview";
                gunnerOpticsModel = QPATHTOF(TBD_2B9_VASILEK\scope.p3d);
                gunnerUsesPilotView = 1;
                disableSoundAttenuation = 1;
                class ViewOptics : ViewOptics {
                    initAngleX = 0;
                    minAngleX = -30;
                    maxAngleX = 30;
                    initAngleY = 20;
                    minAngleY = -100;
                    maxAngleY = 100;
                    initFov = 0.174;
                    minFov = 0.0077778;
                    maxFov = 0.14;
                    visionMode[] = {"Normal"};
                };
                minelev = -12;
                maxelev = 68;
                gunBeg = "usti_hlavne";
                gunEnd = "konec_hlavne";
                ejectDeadGunner = 1;
                usepip = 2;
                discreteDistanceInitIndex = 0;
                primaryGunner = 1;
                memoryPointsGetInGunner = "pos_gunner";
                memoryPointsGetInGunnerDir = "pos_gunner_dir";
                proxyType = "CPGunner";
            };
        };```
calm pilot
#

Hey peeps, i got a problem with my turrets: in this tracked apc with no commander seat, an unknown and unnamed turret keeps popping up in the available slots. There should be just cargo seats, which work fine, but this undefined turret is somehow there. This is the bit of code related to turrets in the config:

balmy atlas
#
class DaysightWFOV: ViewOptics
{
    camPos = "m151_dk_pos";
    camDir = "m151_dk_dir";
    opticsDisplayName = "DK";
    gunnerOpticsModel = "\rhsusf\addons\rhsusf_optics\data\rhsusf_CROWS_monitor";
    initFov = 0.7;
    minFov = 0.0233333;
    maxFov = 0.7;
    visionMode[] = {"Normal", "TI"};
    thermalMode[] = {0,1};
    hitpoint = "Hit_Optic_CROWS_Day";
};

nimble sequoia
tacit zealot
#

Can an item be configured such that it ocupies the Radio slot but the radio protocol remains unavailable?

hearty sandal
#

the item slots are meant for the specific items

#

not for anything else

#

generic or other purpose items are usually set up as magazines etc that can be just in the inventory

tacit zealot
#

Ugh I wanted to make a Radio (Defunct) that would be inventory-swapped in my EMP script. Thanks anyway.

hearty sandal
#

look into contact stuff if there was any solution for that

#

deactivated NVGs were added there

#

dont remember about radio

tacit zealot
#

Oh I have NVG (Defunct) covered alright! Even made a static-ed/grayed-out NVG modeloptics from the Arma 2 samples. Much easier to understand than Contact's black screen if you didn't realize you got EMP'd and tried to turn on your NVG.

Maybe I'll mess with enableRadio in the script itself.

hearty sandal
#

id wager that may be the right approach

tacit zealot
#

Ehh but I have permanent variations of the module, and I have no way to account for players picking up a new (functional) radio from a supply crate. They'd still be left radio-less according to the script.
Oh well, it's already more detailed than I had initially hoped.

hearty sandal
#

problaby you could remove the working radio and add a broken/disabled radio item to the inventory

#

the broken one dont need to be in the radio slot

tacit zealot
#

Ooh, good idea! Now I actually have to think about TFAR compatibility now. Maybe a generic broken radio and an isKindOf check should work.

hearty sandal
#

well if you dont have compatible radio on you you dont have radio

#

if you remove radio then you dont have radio

#

and the broken radio would be generic item type

#

or magazine

#

that wont trigger TFAR

tacit zealot
#

Oh true. Still need consideration for TFAR LR backpacks and vehicle radios then. Given how interesting one of my campaign missions was when a player who was RP'in a little hard faked a radio blackout, an actual LR blackout with TFAR would be very nice.

hard chasm
#

Mikero's tools release 9.46
Improved syntax listing for dos exes . Plus,
-# will show the arg,u,ments. good for tracing what went bang.
This 'improvement' only happens when the exe itself needs fixing/improved.
new improved dos dertm(again)
dos rapify now uses a -dayz option. (Added to the ofp,arma,xbox and vbslite stable)
The output for dayz is currently identical to arma. Until it isn't.
But (some) different warning messages are issued.

Under the covers the dll has been tweaked in several areas. Like all installer.exes,
the list of them is in depbofixes.txt

Enjoy

shell fractal
#

How do I fix the suspension to where my vehicle doesn't bounce while standing still.
I've done the math for the suspension configurations to a T according to the formulas, but it still bounces side to side as soon as I start it up, then bounces front to rear when I start moving

drifting skiff
#

i'm trying to make my weapon to have RHS grips, but they are all invisible, ie no model is showing, even though the grips are available in the menu?

basic bipods etc are showing, and i really dont know where to start or what to do to fix

EDIT: NVM i fixed it by creating a custom gripslot

drifting skiff
#

next question, where was the weapon impact stat defined?

nimble sequoia
granite dock
#

looking to animate the raising of an ATGM launcher, ideally when the weapon is selected. but also fine with manual raising via scroll menu.
been looking around model.cfgs/animationSources & userActions but can't quite figure out what I'm missing from the model.cfg to the config.cpp to get this to animate.
Vertex groups are assigned & axis are present. any points of interest would be helpful here, cheers

calm pilot
nimble sequoia
nimble sequoia
calm pilot
#

3 cargo because i just slapped in there a 4 man squad; the additional unnamed turret is the problem yep

calm pilot
granite dock
# nimble sequoia What's actually the problem?

I've now managed to get it to animate however its instant.
vehicle player animateSource ["spike_rail", 1, false]; works but the animation is instant, no interpolation between 0 & 1. have adjusted animPeriod but no luck

nimble sequoia
nimble sequoia
hearty sandal
granite dock
#

yeah its in the animSources & the model CFG

hearty sandal
#

holdster value for sure. the isSelected ,maybe

granite dock
hearty sandal
#

planes with weapon bays

granite dock
#

all I can think of is the comanche but looking at that I couldn't see much

hearty sandal
#

that too

#

dont think any land vehicles use it

nimble sequoia
#

I'm dubious that isSelected works

nimble sequoia
#

Have you also put it in the virtual garage?

granite dock
#

AnimationSources :
if this is what you mean, then no πŸ™‚

nimble sequoia
#

ah

#

source = "user";

granite dock
#

I figured source pointed to the model CFG

#

ah so the class "name" {
is what actually points to the right selection?

nimble sequoia
#

no, the source in model.cfg is the class name from animationSources

granite dock
#

copy, that explains why it was somewhat working lol

#

testing now

#

awesome, animating now cheers.

#

looking around for pylonbay stuff atm, not much joy yet. will keep searching

hearty sandal
#

weapon would have this

#

and this would then correspond to at what value the model.cfg animation happens

#

the value can be anything to allow multiple different weapons use it in same vehicle

#

when a vehicle has this weapon selected the maxholdster value is 1

#

another example with different value

granite dock
#

ahh, I was searching for "holster"

hearty sandal
#

this holdster value would open up different bay

granite dock
#

I see. then I'd need to work something out with the model cfg

hearty sandal
#

this is good bookmark

granite dock
#

I see the "isSelected" & "maxHoldsterValue" in there, how would I go about having the launcher react to that value change

hearty sandal
granite dock
#

ahh right, right

calm pilot
granite dock
#

all setup now, working exactly as described. cheers

calm pilot
nimble sequoia
#

Yep, click on ViewPilot to see where it comes from

calm pilot
#

Ok

#

Looks like it comes from viewpilot itself? My brain is confused

calm pilot
#

Oh God, always these stupid errors. Thanks Apollo

nimble sequoia
#

Most of us make the same errors, but after a while you get to know how to find them yourself.

hearty sandal
#

while = few years πŸ˜…

royal shoal
#

I need some help with making a config for head/face. i am super duper lost

#

never done it before and would love some help

nimble sequoia
royal shoal
#

alright, ill take a look . right now i had made a custom face (on photoshop) and found an arm then put tats on that (on ps) now im trying to link them together and get into game with it

#

this stuff really hurts my brain πŸ˜‚ LOL

granite dock
#

sorry I don't mean to spam questions in here(more so, don't want to look like I'm not trying to figure things out myself first), buuut. I can't figure out how I'd go about changing the muzzle firing position of a second weapon in the gunner seat.
eg, my ATGM is firing from the cannon barrel instead of the launcher, I've read over the gorgon config(which does this correctly) for over an hour now but can't find what I'm missing

nimble sequoia
granite dock
#

testing now, cheers

#

well no joy, both weapons firing from the same pos still. do now have this constant muzzle flash going on though lol

nimble sequoia
#

Because you have two weapons you'll have to do a manual muzzle flash animation using model.cfg

#

Obviously the memory point names need to match those in the weapon config

#

Having a cannon AND an ATGM on the same turret is not trivial

undone patio
#

What determines if you can access a vic's inventory from outside of it?

granite dock
hearty sandal
#

there is a value for how long radius it can be accessed from

#

and the name of the point can also be defined in config

shell fractal
#

I got rid of my bouncing in place issue by using the sample car weight for my geo lod and used its physx, model, and config.
Now my vehicle Flys away if I don't spawn it slightly above ground, and when it touches the ground; only two wheels make contact with the ground.

#

And I mean when two wheels only make contact; the other two are like a players height in the air

hearty sandal
#

most likely your wheel diameter points still have some sort of issue that the physX wheels become too big

granite dock
#

is there a way to assign weight to verts in blender? I've seen the object properties for it but never a way to edit them

granite dock
#

these, Geo LOD

hearty sandal
granite dock
#

ahh damn, spent ages searching. doesn't show up outside of edit mode

rapid crystal
#

Trying to make a turret right now, but I am having an issue. I want this turret to not have a camera that you right click into. How can I disable this camera to make it similar to a vanilla hmg?

hearty sandal
#

simplest way is to inherit vanilla HMG config to get its view setup

#

mimick what it has

rapid crystal
hearty sandal
#

yes you can inherit the turret config directly from the existing vehicle

#

though it too might have its onw MainTurret

novel lava
#

Im pretty sure it just an empty gunnerOpticsModel that does it for vehicles

#

empty as in, an empty string, not an empty p3d

#

empty p3d is for when you want to do ironsights

rapid crystal
novel lava
#

both you can just set
gunnerOpticsModel = "\A3\weapons_f\reticle\optics_empty";
in the turret config tho

rapid crystal
#

Damn, I already have that and it still has the camera screen thing

novel lava
#

you might have some opticsIn definition then or similar which overrides it

warped perch
#

How do you have components in edit appearance in the garage be set default enabled?

warped perch
warped perch
#

Having some trouble with implementing the component animation source customization. Options are not selected on init in component list in garage and do not hold when clicked and applied.

warped perch
smoky python
#

Is anyone aware if it's possible to have a grenade explode on impact with a soldier?
I've been trying to set up a config for a impact grenade which will explode immediately when it hits someone.
This is where I'm at right now.

class GrenadeHand_Impact: GrenadeHand
{
    hit = 1;
    indirectHit = 30;
    indirectHitRange = 1;
    dangerRadiusHit = 1;
    suppressionRadiusHit = 10;
    typicalspeed = 200;
    model = "\tc\impact\impact.p3d";
    CraterEffects = "NoCrater";
    explosionEffects = "NoExplosion";
    soundHit[] = {"",1,1};
    explosive = 0;
    deflecting = 7;
    fuseDistance = 0;
    explosionTime = -1;
    cost = 1;
    whistleDist = 0;
    timeToLive = 18;
    class EventHandlers
    {
        hit = "systemChat format ['hit EH output: %1 [time: %2]', _this, time]";
        ammoHit = "systemChat format ['ammoHit EH output: %1 [time: %2]', _this, time]";
    };
};
#

The grenade goes through soldiers and explodes behind them.
The ammoHit event does fire, but only once it has exploded.

smoky python
#

It doesn't appear to.

dusk jungle
#

Oh it should be HitPart btw

smoky python
#

Ohh. Thank you

dusk jungle
#

Oh wait these EHs are something different

#
Ammo Config Events

There are three event handlers that can be set on ammo in config: 
#

I guess you need to add Fired event handler which then adds HitPart to the projectile (_this select 6)

#

Then you check if HitPart hit a unit (_this select 1 isKindOf "Man"?), then you force trigger it with triggerAmmo

#

But all this will work ONLY if grenades fire HitPart when they hit something

#

shotShell certainly do, but grenades are something else

#

shotGrenade?

smoky python
dusk jungle
#

You'll have to do it through fired which is add-able in config

smoky python
#

Ah I see

dusk jungle
#
fired = "_this select 6 addEventHandler ['HitPart', {systemChat format ['I just hit %1', _this select 1]; if(_this select 1 isKindOf 'Man') then {systemChat 'Boom?'; triggerAmmo (_this select 0);}}]";
#

haven't tested

#

Oh there is also init

#
init = "_this addEventHandler ['HitPart', {systemChat format ['I just hit %1', _this select 1]; if(_this select 1 isKindOf 'Man') then {systemChat 'Boom?'; triggerAmmo (_this select 0);}}]";
#

I think _this is not an array but the entity itself?

wintry tartan
#

Don't know which _this but init has [entity] too

dusk jungle
#

Guess we can only figure out through test

#

Some EHs provide the entity and not an array with entity, thought maybe its the case here

smoky python
#

I'll be trying out these options tomorrow. Thank you for the pointers

warped perch
nimble sequoia
hollow moon
#

Quick question, can I use spaces between words for class names?

#

Like "class desert bdu"

#

Or does it have to be "class desert_bdu"

warped perch
#

no spaces

warped perch
hard chasm
#

that's because the classname is triggered by the bone

wintry fox
#

If adding OpticsModes to a weapon from scratch, do you need to define anything other than the OpticsModes class itself?
Running into an issue where I can't seem to use an optic even though it's defined.

class BNA_KC_arifle_base;
class BNA_KC_arifle: BNA_KC_arifle_base {
    class OpticsModes {
        class Zoom {
            cameraDir = "";
            distanceZoomMax = 200;
            distanceZoomMin = 200;
            memoryPointCamera = "Optics1";
            opticsDisablePeripherialVision = 0;
            opticsFlare = 0;
            opticsID = 1;
            opticsPPEffects[] = {"Default"};
            opticsZoomInit = 0.75;
            opticsZoomMax = 1.25;
            opticsZoomMin = 0.25;
            useModelOptics = 0;
            visionMode[] = {};
        };
    };
};
shy knot
wintry fox
#

Built in is my intention

#

Which is why I'm using optics modes, not defining an optic

shy knot
# wintry fox Built in is my intention
//Optics and zeroing
        modelOptics = "\OPTRE_Weapons\Sniper\Sniper_Oracle10_Optic"; //TODO?
        opticType = 1;
        optics = 1;
        opticsID = 1;
        useModelOptics = 1;
        opticsZoomMin = 0.01;
        opticsZoomMax = 0.25;
        opticsZoomInit = 0.25;
        opticsFlare = 1;
        opticsDisablePeripherialVision = 1;
        reloadAction = "WBK_M99_Reload";
        reloadMagazineSound[] = {"\OPTRE_Wbk_WeaponImprovements\reload\srs99_reload.ogg",2,1,25};
        opticsPPEffects[] = {"OpticsCHAbera1","OpticsBlur1"};
        visionMode[] = {"Normal","NVG","TI"};
        thermalMode[] = {0,1,5,6,7};
        discretefov[] = {0.25,0.05,0.025,0.01};
        discreteinitIndex = 0;
        discreteDistance[] = {
            50,
            100, 150,
            200, 250,
            300, 350,
            400, 450,
            500, 550,
            600, 650,
            700, 750,
            800, 850,
            900, 950,
            1000, 1050,
            1100, 1150,
            1200, 1250,
            1300, 1350,
            1400, 1450,
            1500, 1550,
            1600, 1650,
            1700, 1750,
            1800, 1850,
            1900, 1950,
            2000
        };
        discreteDistanceInitIndex = 1;
        distanceZoomMin = 100;
        distanceZoomMax = 2000;```
#

Make modelOptics an array if you have more than one zoom level scope UI

coral knoll
#

What determines the muzzle flash of a gun?

wintry tartan
#

It is zasleh selection by default

coral knoll
#

the flash is zasleh?

wintry tartan
#

Yes

coral knoll
#

Interesting

#

Thanks

wintry tartan
#

And it does mean it is a part of model

coral knoll
#

Ohhh... So changing a gun's muzzleflash without having access to the model isnt possible?

wintry tartan
#

Correct

coral knoll
novel lava
#

theres some hacky ways to do it with a dummy muzzle attachment

#

but that's kinda Crap

smoky python
#

Is it possible to edit weapon config settings while the game is running? I want to tweak sqf scripts and reload them live.

wintry tartan
#

Check pinned

smoky python
#

Awesome πŸ™‚

#

That works great. Cheers!

smoky python
# dusk jungle Oh there is also `init`

I'm not having much luck with this.
When the grenade is thrown the 'HitPart' message is printed. But it trigger againt when the grenade hits someone.

class EventHandlers
{
    init = "_entity addEventHandler ['HitPart', systemChat 'HitPart']";
};
wintry tartan
#

_entity is not defined there

smoky python
#

This is my first time doing this so I'm not quite sure how the syntax is meant to be written

wintry tartan
#
params ['_entity'];```This is how `_entity` is defined
smoky python
#

So I'm guessing that the event handler init should be written like this
init = "this addEventHandler ['HitPart', {systemChat format ['HitPart at %1', time]}];";

#

Since it's being called on the object itself

wintry tartan
#
init = "(_this#0) addEventHandler ['HitPart', {systemChat format ['HitPart at %1', time]}];";```or
```cpp
init = "params ['_entity']; _entity addEventHandler ['HitPart', {systemChat format ['HitPart at %1', time]}];";```
smoky python
#

Thanks, that's taken me a step further.
I'm able to run the following

class EventHandlers
{
    init = "params ['_entity']; systemChat 'Added Event'; _entity addEventHandler ['HitPart', {systemChat format ['HitPart at %1', time]}];";
};

This doesn't trigger the HitPart message when the grenade goes through a soldier

I know this is functionally adding a event handler as I can change the Event to 'Explode' and it will fire.

drifting skiff
#

need some help with inheriting RHS blackhawk and changing gunners, current code is this but i breaks the rightdoorgun;

    class RHS_UH60M_d;
    class PB_AUS_UH60M_A: RHS_UH60M_d
    {
        class Turrets;
    };
    class PB_AUS_UH60M_B: PB_AUS_UH60M_A
    {
        class Turrets: Turrets
        {
            class CopilotTurret;
            class MainTurret;
            class RightDoorGun;
            class CargoTurret;
            class CargoTurret_01;
            class CargoTurret_03;
        };
    };
    class PB_AUS_UH60M: PB_AUS_UH60M_B
    {
        class Turrets: Turrets
        {
            class CopilotTurret: CopilotTurret
            {
            };
            class MainTurret: MainTurret
            {
                gunnerType = "PB_AUS_SOL_HP";
            };
            class RightDoorGun: MainTurret
            {
                gunnerType = "PB_AUS_SOL_HP";
            };
            class CargoTurret_01: CargoTurret
            {
            };
            class CargoTurret_02: CargoTurret_01
            {
            };
            class CargoTurret_03: CargoTurret_01
            {
            };
            class CargoTurret_04: CargoTurret_03
            {
            };
        };
    };```
wintry tartan
#

class RightDoorGun: MainTurret?

drifting skiff
#

thats how it is in the RHS config atleast

wintry tartan
#

But it is your UH60 config no?

drifting skiff
#

yeah, but im inheriting it from the rhs one, so i should have roughly same class names at is has, no?

wintry tartan
#

But your config is inheriting PB_AUS_UH60M_B's MainTurret

#

Don't you have to inherit from RightDoorGun?

drifting skiff
#

ah, i see

smoky python
hard chasm
#
            {
            };```
any 'empty' statements like this are effectively a nop. (not to be confused with
class elephants{};  // empties the entire contents
wintry tartan
#

Even though the inheritance there looks wrong, turrets need to be declared like that to make it work, AFAIK

hard chasm
#

also RHS should know better than to fully uppercase their classnames. They scream #defines, you should not mimic a very., very, bad practice.

wintry tartan
#

Just inherit doesn't work on turrets

drifting skiff
#

yeah they need to be done like that, otherwise things will not work

slim halo
hard chasm
#

you might be confusing it with
class elephants;

slim halo
#

Nope. I'm not. {} doesn't make it empty

hard chasm
#

that's how turrets{} are removed from 'vehicles' that don't need them.

opal crater
#

yes, that's by definining an empty class instead of inheriting a one from the parent.

#

But it's not "emptying the entire contents"

#

that is simply misleading.

#

also
class elephants;
and
class elephants {};
do exactly the same if there's no class to import.

hard chasm
#

Ok! Have to agree here that I'm wrong and misleading.

slim halo
# hard chasm that's how turrets{} are removed from 'vehicles' that don't need them.

yeah as veteran said you need to inherit turret from its parent:

class CfgVehicles {
    class All {};
    class AllVehicles: All {};
    class Land: AllVehicles {};
    class LandVehicle: Land {};
    class Tank: LandVehicle {};
    class Tank_F: Tank {
        class Turrets {};
    };
    class MBT_01_base_F: Tank_F {
        class Turrets: Turrets {};
    };
};

if you try this nothing will become empty even tho you have {}s all over the place (but you need the correct mod dependency ofc)

tidal knot
#

Having problem with preprocessor commands by using pboProject

\\ shotTimer.hpp
#define SHOTTIMERITEM(CN,DN,DS,AUTHOR,WEIGHT) \
    class ##CN##: ItemCore \
    { \
        displayName = ##DN##; \
        descriptionShort = ##DS##; \
        author = ##AUTHOR##; \
        scope = 2; \
        type = 131072; \
        class ItemInfo : InventoryItem_Base_F \
        { \
            allowedslots[] = {701, 801, 901}; \
            type = 620; \
            mass = ##WEIGHT##; \
        }; \
    };
\\config.cpp
#include "\leon\shot_timer\commons\shotTimer.hpp"

class CfgWeapons
{
    class ItemCore;
    class InventoryItem_Base_F;
    SHOTTIMERITEM("LEON_ST_ClubTimer2","Club Timer 2","Shot Timer by PACT","Leon",2);
};

pboProject error about this

\leon\shot_timer\club_timer_2\config.cpp Rapify:Rap: In File \leon\shot_timer\club_timer_2\config.cpp: circa Line 7 label is not alphanumeric
.preprocessing files produced an error

Problem solved, the replacement should be what it excatly

// from SHOTTIMERITEM("LEON_ST_ClubTimer2") to SHOTTIMERITEM(LEON_ST_ClubTimer2)
-"LEON_ST_ClubTimer2"
+LEON_ST_ClubTimer2
grand zinc
#

##CN##
Thats nonsense. ## is used as a separator between non-whitespace characters.
But you have whitespace there, you don't need any separator. It should be just CN
Same for all your others that are like that

hard chasm
#

yes. had to absorb all the above. the rapify module of the dll is parsing that macro quite happily. It is also coping with the ## word delimeters. It would have warned you that neither of them were necessary.

"label is not alphanumeric"
because it had " characters

#

'label' isn't really sufficient, it should say 'class label'. will fix on next release.

grave steppe
#

Anyone else having issues making variable zoom optic using CBA Accessory Functions?
I am having some of my optics just disappearing rather than switching

class NAVSPECWARGRU2_NF_ATACR18_x1: ItemCore
    {
        weaponInfoType = "scope_1x_pip_handler";
        author = "Natan Brody";
        scope = 2;
        displayName = "[NSW] Nightforce ATACR 1-8x24mm";
        picture = "\NAVSPECWARGRU2\NAVSPECWARGRU2_TACDEV_Equipment_Uniform_Base\UI\NAVSPECWARGRU2_ca.paa";
        model = "\NAVSPECWARGRU2\NAVSPECWARGRU2_TACDEV_Armory_Weapons_Optics\Optics\ATACR\18\ATACR18_1x.p3d";
        ace_scopeZeroRange = 100; // Overwrites the ace_setting default zero range
        ace_scopeHeightAboveRail = 3.9625;  // Distance between center of scope and rail in centimeters
        ace_scopeAdjust_vertical[] = {-15, 15};  // Maxmimum vertical adjustment limits
        ace_scopeAdjust_horizontal[] = {-15, 15};  // Maximum horizontal adjustment limits
        ace_scopeAdjust_verticalIncrement = 0.1;  // Vertical increment
        ace_scopeAdjust_horizontalIncrement = 0.1;  // Horizontal increment
        MRT_SwitchItemNextClass = "NAVSPECWARGRU2_NF_ATACR18_x2";
        MRT_SwitchItemPrevClass = "NAVSPECWARGRU2_NF_ATACR18_x1";
        MRT_switchItemHintText = "Magnification 1x";
        class ItemInfo: InventoryOpticsItem_Base_F
        {
            mass = 6;
            RMBhint = "Adjustable Range Optics";
            opticType = 1;
            optics = 1;
            modelOptics = "\A3\Weapons_f_beta\acc\reticle_MRCO_F";
            memoryPointCamera = "eye";
            class OpticsModes
            {
                class IronSight
                {
                    opticsID = 1;
                    useModelOptics = 0;
                    opticsPPEffects[] = {};
                    opticsFlare = 0;
                    opticsDisablePeripherialVision = 0;
                    opticsZoomMin = 0.75;
                    opticsZoomMax = 0.75;
                    opticsZoomInit = 0.75;
                    memoryPointCamera = "eye";
                    visionMode[] = {};
                    discreteDistance[] = {100};
                    discreteDistanceInitIndex = 0;
                    distanceZoomMin = 100;
                    distanceZoomMax = 100;
                };
            };
        };
        inertia = 0.6;
    };
class NAVSPECWARGRU2_NF_ATACR18_x2: NAVSPECWARGRU2_NF_ATACR18_x1
    {
        weaponInfoType = "scope_2x_pip_handler";
        author = "Natan Brody";
        scope = 1;
        model = "\NAVSPECWARGRU2\NAVSPECWARGRU2_TACDEV_Armory_Weapons_Optics\Optics\ATACR\18\ATACR18_2x.p3d";
        MRT_SwitchItemNextClass = "NAVSPECWARGRU2_NF_ATACR18_x3";
        MRT_SwitchItemPrevClass = "NAVSPECWARGRU2_NF_ATACR18_x1";
        MRT_switchItemHintText = "Magnification 2x";
        class ItemInfo: InventoryOpticsItem_Base_F
        {
            mass = 6;
            RMBhint = "Adjustable Range Optics";
            opticType = 1;
            optics = 1;
            modelOptics = "\A3\Weapons_f_beta\acc\reticle_MRCO_F";
            memoryPointCamera = "eye";
            class OpticsModes
            {
                class IronSight
                {
                    opticsID = 1;
                    useModelOptics = 0;
                    opticsPPEffects[] = {};
                    opticsFlare = 0;
                    opticsDisablePeripherialVision = 0;
                    opticsZoomMin = 0.75;
                    opticsZoomMax = 0.75;
                    opticsZoomInit = 0.75;
                    memoryPointCamera = "eye";
                    visionMode[] = {};
                    discreteDistance[] = {100};
                    discreteDistanceInitIndex = 0;
                    distanceZoomMin = 100;
                    distanceZoomMax = 100;
                };
            };
        };
        inertia = 0.6;
    };
#

Theoretically based upon their wiki it should all work

limber cape
#

Would anyone here have any idea how to go about making a config to make an unarmed player have the same movement options and move at the same speed as someone armed with a rifle?

I'm in a WWII unit and am trying to make this for our unarmed medics so they can stay at the same pace with the infantry during formations.

chilly tulip
#

I'm not even sure if it's intentional that the movement speeds vary :P

#

As far as I know it's based on animations, so I suspect it won't be easy to equalize.

limber cape
#

I've tried changing the speed of the unarmed running animation to match that of the rifle animation and it doesnt seem that the "speed = " modifier is actually what controls how far a person moves in the world.

One attempt had me changing the walking animation of the unarmed to the running animation of the unarmed and then tweaking both the walking and running speed classes' speed to be the same as the rifle tac movement animation and running animation.

#

The problem I encountered was that in game by default the unarmed running moves the player faster than both the tac rifle movement and the running rifle movement, but the unarmed running animation plays by default at a speed halfway between both of those in the config.

#

So that makes me think that "speed = " doesnt actually control the traversal rate of a player.

chilly tulip
#

Well, the animation would have an inherent movement speed as well.

#

I'd have thought you could use speed to tweak it until they were equal.

#

Ignore the values and just adjust them until it works.

#

Assuming that changing speed does also change the traversal speed.

limber cape
#

I guess to rephrase, based on the animation viewer in the editor where it shows how long an animation plays before it loops, with a speed setting of 1, the unarmed running animation plays for 0.6 seconds, while the rifle running animation plays for 2.48 seconds and the rifle tac movement speed plays for 0.416 seconds. With these values you would expect the unarmed running to be faster than the tac rifle movement but slower than the running rifle movement, but thats not the case.

Unarmed running is faster than both

#

I guess I could try to brute force it with multiple iterations of the speed value change but its really hard to test solo.

#

I had another idea for an attempt at doing this where I would just add an invisible rifle and have the medics carry that in their weapon slot, affording them the same speed and movement options of infantry. But I don't know how to go about doing that and have the hands not be holding an invisible rifle.

chilly tulip
#

Then you can do a tiny bit of maths to rescale.

#

I am assuming that speed in the animations is linearly related. Not my thing.

limber cape
#

from what I've read speed is the percentage value of the animation play time. So a value of 0.5 would play 50 frame of a 100 frame animation.

limber cape
chilly tulip
#

Nah, you'd need someone who knows what they're talking about with animations.

limber cape
chilly tulip
hearty sandal
#

animation playback speed does control how fast movement is

#

but each move animation can have different direction vector set

limber cape
#

I got that. Was just confused.

hearty sandal
#

so just looking at animations and their playback speed, you wont get anything useful for actual movement speed

chilly tulip
limber cape
#

I achieved my goal. Thank you guys for your help PU_Prayge

boreal surge
#

hello, for some reason i have infinite ammo when im shooting with my custom weapon, and when i reload the secondary my primary weapon comes up and messes up the animation, is there a way to fix that\handle that? or is that the rtm file that does?

hearty sandal
#

If yes, disable everything else

boreal surge
#

i test with RHS, ace and CBA
i tested without ACE and same results
RHS is a dependency for the mod

hearty sandal
#

It is possible your rtm is messed up for the secondary weapon.

boreal surge
#

guessed so :\

hearty sandal
#

Is there something out of ordinary you try to do?

boreal surge
#

i dont know if thats crazy, but i put the grenade launcher in the secondary slot as a "pistol"

#

but other than that, im not adding anything else for that
i took insperation from the basic cpp from the assets

#

so the RTM ill fix it, but the infinite ammo is the biggest problem here
it dosent have anything that messes up the ammo counter

severe marlin
#

Anyone alive?

chilly tulip
#

That's not how the channel works. You ask the question and someone reads it when they have time.

hearty sandal
#

You need a separate model for that and it will be held like a pistol

#

Separate model because pistol needs to be little off center to not clip into the hand

boreal surge
#

so basicly 2 models?

hearty sandal
#

Because the pistol proxy is designed poorly

boreal surge
#

oh, ok

hearty sandal
#

How important is it to have it as secondary weapon?

#

And how much are you willing to compromise with it

#

You re unlikely to be able to make it same as primary

boreal surge
#

the weapon needs to be in the secondary slot or the third slot
will that still be the problem?

#

or it needs to be in the primary slot?

hearty sandal
#

Yes

boreal surge
#

understood, ill convert it to primary weapon and save myself the headache

hearty sandal
#

For weapon like that anything but primary weapon is difficult

boreal surge
#

yeah, i searched in the forums and nothing poped out about the infinite ammo bug in the secondary weapon

#

or no mentions

#

but ill figure something out

#

thanks for the help πŸ™‚

hearty sandal
#

can say I recall hearing such happening

#

probably some error in your configs

#

maybe you set it to use 0 ammo on each shot or something

boreal surge
#

nope, i dont play around with the ammo count everytime im shooting

severe marlin
#

Guys I'm trying to add a uniform it works but the texture it's the default uniform texture

#

It's like I copied that uniform and changed the name

hearty sandal
#

copied it how?

severe marlin
#

It worked

#

But not the texture

hearty sandal
#

so a retexture?

#

with just a config?

severe marlin
hearty sandal
#

but you did also a retexture?

severe marlin
#

Wdym

hearty sandal
#

me neither

#

Im not quite sure what you have done

severe marlin
#

I retextured a Paramilitary uniform and I wanted to add it as a new uniform

#

It worked

#

But the texture of that uniform its still the vanilla texture

hearty sandal
#

uniforms are 2 part
the uniform item in cfgWeapon
the uniform character/unit in cfgVehicles
retexturing via hiddenselections needs to be applied on both but the cfgVehicles unit is what you see on you/on a character
the cfgVehicles Item is what you see in inventory

#

do you have both parts?

severe marlin
boreal surge
hearty sandal
boreal surge
#

well now i found out that the game dosent care, same case with mikeros tools

latent monolith
#

anyone know which example in arma 3 samples has the CfgSurfaces

#

cant seem to locate it

hearty sandal
#

but you can find that in vanilla config

latent monolith
#

so what its just a new class name i chuck in to my code?

#

trying to make it so my ship interior has metal footstep sound when im walking about it

hearty sandal
#

im fairly sure there is a metal surface already in you could use

latent monolith
#

from what im reading theres a couple of existing things already im just wondering how do i go about telling the code

hey i want it to sound like this when a player walks on this surface and when it gets shot

hearty sandal
#

the surface is applied on the roadway mesh

#

data_f\surfaces\ from here

latent monolith
#

theres these:

soundEnviron = "drygrass"
soundHit = "concrete";    

#

metal
metal_plate

#

and thats the metal Valid values

hearty sandal
#

roadway mesh surface texture is what defines what sounds you make when you walk on it

latent monolith
#

ive got that so far afaik

hearty sandal
#

check sample house roadway for reference

latent monolith
stuck nest
#

Anyone know off hand how to hide shells ejecting from a custom ammo type?

#

I forgot.

#

Nvm, think I found it "cartridge" in cfgammo.

gritty rune
#

can planes be sling loaded by a helo? We're trying to add this to the Unsung O-1 Bird Dog, so it can be lifted by a heavy transport helo, like Chinook or CH-53, but so far I don't see it in the sling load assistant. Mem points are present in config and model

wintry tartan
#

Yes, vanilla UAV can

gritty rune
#

thx! not sure what's missing then. mass is 1600, well within a Huron max lift capacity

hearty sandal
hearty sandal
#

this is what the model uses

severe marlin
hearty sandal
#

as you can see here this is the original class that uses that character and its parent is the class in the previous screenshot

#

and the hiddenselections are defined in that base class as I have marked

severe marlin
hearty sandal
#

same way

#

new classes

severe marlin
hearty sandal
#

you can name your classes whatever you like but it does help to keep the naming somewhat logical

hearty sandal
#

if you look at how vanilla classes are built you can see that the base classes are not actually used by anything in game but act as the name says bases for furhter classes and the base classes compile the shared properties that need to be same in all further child classes

#

so you could have your current baseclass

#

and then someething like
class Myblackhand_01 : base_class
class Myblackhand_02: base_class
class Myblackhand_03: base_class
class Myblackhand_04: base_class

hearty sandal
#

thats all I got at the moment

queen viper
#

So i am new in modding sound, but what Settings in config changes the ”echo” Level when firing a gun?

severe marlin
#

zzzzzzzzzzzz

ebon pivot
#

im not allowed to do this am i

hard chasm
#

agreed, you can't. You CAN inherit a common base class instead.

{ blah blah
}:
class Object
{
    class attributeCategories
    {
        class KJW_Radiate: KJW_radiate_base{};
    };
};
class Trigger
{
etc```
ebon pivot
#

indeed

#

i have done thati nstead

#

unfortunately

hard chasm
#

that's hardly your fault. it's the manner in which the inheritence chain is designed to maximise speed in operation. By no means a bad trade off. It's just possible but unlikely that their script.c language is even more efficient. (I'd vote for it regardless, if it replaced bloody awful sqX)

opal crater
#

Config files are not really related to SQF. And the enfusion config format is way worse for humans to read.

hard chasm
#

haaaaaaaaaaa Have to (almost) agree. But the sooner sqX dissapears,the better the world will be. I am, biased.
And i was relating the compilability of script.c text rather than it's use.

#

@opal craterI am uploading a tiny bat file here that automatically greps any .rpt file for 'your' project
if not allowed, pls delete it

opal crater
#

Hmm? Where did that come from.

hard chasm
#

home grown

#

did it originally as part of cwr1,2 & 3

severe marlin
shy knot
severe marlin
molten musk
severe marlin
#

Changed that to camo,camo still doesn't work

molten musk
#

Any error or it just doesn't show up?

severe marlin
molten musk
ebon pivot
true gull
#

Hey, anyone know what I'm doing wrong here?

Get an error message when booting up arma: File test\config.cpp, line 15: '/CfgEditorSubcategories.': '{' encountered instead of '='

File in question:

class CfgFactionClasses

{
    class B_USAArmy_SOAR {
        scope = 2;
        curatorScope = 2;
        displayName = "[GI] US Army - 160th SOAR";
        side = 1;
        priority = 10;
    };
};

class CfgEditorSubcategories 
{
    {
        class air_crew 
        {
            displayName = "Air Crew";
        };
    };

    {
        class ground_crew 
        {
            displayName = "Ground Crew";
        };
    };

    {
        class special_forces 
        {
            displayName = "Special Forces";
        };
    };
}; 

#include "CfgPatches.hpp"
#include "CfgIdentities.hpp"
#include "CfgVehicles.hpp"```
ebon pivot
#

{{ in cfgeditorsubcategories

#

youre enclosing all your classes in {}

#

but not the {} from editorsubcat

true gull
#

ah right, I see it now. Thanks!

#

so this, right? ```cpp
class CfgEditorSubcategories
{
class air_crew
{
displayName = "Air Crew";
};

class ground_crew 
{
        displayName = "Ground Crew";
};

class special_forces 
{
        displayName = "Special Forces";
};

}; ```

true gull
#

thanks

brave oasis
#

hey, any idea what i might be doing wrong here?
vehicle is tilted
viewpilot is ok
viewcargo cargoturret is ok
viewcargo mainturret view doesnt tilt with the vehicle

dusk jungle
#

no idea why though, but I remember it

nimble sequoia
brave oasis
#

Yes, every other view is ok

nimble sequoia
#

ok, and q1?

brave oasis
#

Yes, also my vehicle

nimble sequoia
#

So there's likely something wrong with the proxy / turret naming / configuration / animation

#

Does this turret move?

brave oasis
#

Yes, traverse and elevation,

#

everything seems to be working in correct order

nimble sequoia
#

And should the character rotate around with it?

brave oasis
#

except for the view itself

brave oasis
nimble sequoia
#

Two things to check

  1. character proxy in p3d is upright (not leaning)
  2. character rtm applied in config (gunnerAction gunnerInAction) doesn't have a lean to it - change for different poses
#

Also check what named selection is applied to the proxy and what animations are occuring on it

brave oasis
#

it seems to be an issue with the mainturret config itself

#

something being inherited from mainturret class defined by bohemia

#

need to investigate.

hearty sandal
brave oasis
#

issue ^

#

current wiki says ???

#

but I suppose its for stabilizing the view

hearty sandal
#

4 seems to be default in class Car mainTurret

#

and on boats

#

3 instances in all vanilla config with value 4

nimble sequoia
#

Why not just try an alternative stabilizedInAxes = 0 and see what if it fixes the issue?

hearty sandal
#

πŸ‘† solid idea

nimble sequoia
#

I don't get people (in general), seems obvious to experiment and then report the result.

#

Probably come from a by-gone age where there was no vast knowledge of internet and it was easier to experiment than to try looking it up in your neighbours Encyclopaedia Britannica.

brave oasis
nimble sequoia
#

Ah, your one word report wasn't sufficiently verbose to give the idea that you had solved the issue or what you had changed it to.

#

Glad it's fixed though.

brave oasis
#

Sorry if it wasn't enough to understand, I'll make sure to utilize more clarifying terms next time. πŸ˜„

nimble sequoia
#

splendid ^ πŸ˜‰

true gull
#

Getting error: File tfg_us_soar\tfg_us_soar_units.hpp, line 21: /CfgVehicles/tfg_us_soar_base.respawnlinkeditems: Member alteady defined:

#include "..\tfg_main\tfg_script_macros.hpp"
#include "..\tfg_identities\tfg_identities_us.hpp"
#include "..\tfg_identities\tfg_identities_us_names.hpp"
#include "tfg_us_soar_weapons.hpp"

class B_Soldier_Base_F;
class tfg_us_soar_base : B_Soldier_Base_F {
    author = "Nibbles";  
    scope = 0
    scopeCurator = 0;
    displayname = "Bob";
    genericNames = "tfg_us_names";
    identityTypes = "tfg_us_men";
    side = 1;
    faction = "tfg_us_soar";


    uniformClass[] = {"acp_US_OCP_core_U_Aetfgs_O_Soldier_03_US_OCP_insignia","acp_US_OCP_core_U_Aetfgs_O_Soldier_04_US_OCP_insignia"};
    linkedItems[] = {"DEFAULT_ITEMS_RADIO"};
    respawnLinkedItems[] = {"DEFAULT_ITEMS_RADIO"};

    magazines[] = {R2("SmokeShell")};
    respawnMagazines[] = {R2("SmokeShell"};
    items[] = {"DEFAULT_MEDICAL"};
    respawnItems[] = {"DEFAULT_MEDICAL"};
    };

    class tfg_us_soar_pilot : tfg_us_soar_base {
        editorPreview = \x\\addons\busaarmysoar\data\preview\B_USAArmy_Pilot_SOAR_01.JPG;
        author = "Nibbles";
        scope = 2;
        scopeCurator = 2;
        displayName = "Pilot";
        editorSubcategory = "air_crew";

        linkedItems[] = {"ASZ_GearHelyPilot_MM","rhsusf_hgu56p_visor_black","rhsusf_ANPVS_15"};
        respawnlinkedItems[] = {"ASZ_GearHelyPilot_MM","rhsusf_hgu56p_visor_black","rhsusf_ANPVS_15"};

        weapons[] = {"tfg_M4A1_CCO","Tier1_P320","Binocular"};
        respawnWeapons[] = {"tfg_M4A1_CCO","Tier1_P320","Binocular"};

        magazines[] = {R7("rhs_mag_30Rnd_556x45_M855A1_Stanag"), R4("Tier1_17Rnd_9x19_P320_JHP")};
        respawnMagazines[] = {R7("rhs_mag_30Rnd_556x45_M855A1_Stanag"), R4("Tier1_17Rnd_9x19_P320_JHP")};   
    };```

I can't seem to find the problem, could use an extra set of eyes...
ebon pivot
#

seems like its probably causing it

#

the editorpreview part

#

(addon builder error messages suck)

true gull
#

oh, I think you're right - completely glanced over it

#

tysm

ebon pivot
#

in typical kjw fashion 😎

true gull
#

unfortunately, same error still

#

I removed the entire editorPreview line

#

according to the forums there's a class which has been defined twice... but there are only two classes and they're both unique lol

molten musk
#

You are including your macros and other classes in cfgVehicles or you haven't defined class cfgVehicles where your units should be

true gull
# molten musk And this is under/in cfgVehicles?
class CfgVehicles {
    #include "tfg_us_soar_units.hpp"
    #include "tfg_us_soar_vehicles.hpp"
};

Is what my cfgVehicles looks like, "tfg_us_soar_units.hpp" is what i posted above. "_vehicles.hpp" is currently empty

true gull
molten musk
#

yeh

true gull
#

if I do:

class CfgVehicles {
    #include "tfg_us_soar_units.hpp"
    #include "tfg_us_soar_vehicles.hpp"
};

#include "..\tfg_main\tfg_script_macros.hpp"
#include "..\tfg_identities\tfg_identities_us.hpp"
#include "..\tfg_identities\tfg_identities_us_names.hpp"
#include "tfg_us_soar_weapons.hpp"

Will that fix it?

molten musk
#

so in your file should just be

// #include "tfg_us_soar_units.hpp"
class B_Soldier_Base_F;
class tfg_us_soar_base : B_Soldier_Base_F {
    author = "Nibbles";  
    scope = 0
    scopeCurator = 0;
    displayname = "Bob";
    genericNames = "tfg_us_names";
    identityTypes = "tfg_us_men";
    side = 1;
    faction = "tfg_us_soar";


    uniformClass[] = {"acp_US_OCP_core_U_Aetfgs_O_Soldier_03_US_OCP_insignia","acp_US_OCP_core_U_Aetfgs_O_Soldier_04_US_OCP_insignia"};
    linkedItems[] = {"DEFAULT_ITEMS_RADIO"};
    respawnLinkedItems[] = {"DEFAULT_ITEMS_RADIO"};

    magazines[] = {R2("SmokeShell")};
    respawnMagazines[] = {R2("SmokeShell"};
    items[] = {"DEFAULT_MEDICAL"};
    respawnItems[] = {"DEFAULT_MEDICAL"};
    };

    class tfg_us_soar_pilot : tfg_us_soar_base {
        editorPreview = \x\\addons\busaarmysoar\data\preview\B_USAArmy_Pilot_SOAR_01.JPG;
        author = "Nibbles";
        scope = 2;
        scopeCurator = 2;
        displayName = "Pilot";
        editorSubcategory = "air_crew";

        linkedItems[] = {"ASZ_GearHelyPilot_MM","rhsusf_hgu56p_visor_black","rhsusf_ANPVS_15"};
        respawnlinkedItems[] = {"ASZ_GearHelyPilot_MM","rhsusf_hgu56p_visor_black","rhsusf_ANPVS_15"};

        weapons[] = {"tfg_M4A1_CCO","Tier1_P320","Binocular"};
        respawnWeapons[] = {"tfg_M4A1_CCO","Tier1_P320","Binocular"};

        magazines[] = {R7("rhs_mag_30Rnd_556x45_M855A1_Stanag"), R4("Tier1_17Rnd_9x19_P320_JHP")};
        respawnMagazines[] = {R7("rhs_mag_30Rnd_556x45_M855A1_Stanag"), R4("Tier1_17Rnd_9x19_P320_JHP")};   
    };

And rest of include in config.hpp

#include "..\tfg_main\tfg_script_macros.hpp"
#include "..\tfg_identities\tfg_identities_us.hpp"
#include "..\tfg_identities\tfg_identities_us_names.hpp"
#include "tfg_us_soar_weapons.hpp"
class CfgVehicles {
    #include "tfg_us_soar_units.hpp"
    #include "tfg_us_soar_vehicles.hpp"
};

true gull
#

perfect, thanks

molten musk
#

and make sure you don't have multiple times

//soar_units.hpp
class tfg_us_soar_base: ...
//soar_vehicles
class tfg_us_soar_base: ..
true gull
#

I applied the changes you suggested - going to give it a try

chilly tulip
#

I'm a bit puzzled about the error because I thought if you redefined the class then it told you so.

#

And redefining a member var is fine?

true gull
chilly tulip
#

But my inclination is that it's something in the includes causing the issue.

#

Whenever there's a sufficiently weird error it's in the code you didn't paste :P

molten musk
true gull
true gull
#
// Inventory
#define ADDITEM(ITEM,COUNT) class _xx_##ITEM { \
    name = #ITEM; \
    count = COUNT; \
}

#define ADDMAG(ITEM,COUNT) class _xx_##ITEM { \
    magazine = #ITEM; \
    count = COUNT; \
}

#define R2(ITEM) ITEM,ITEM
#define R3(ITEM) ITEM,ITEM,ITEM
#define R4(ITEM) ITEM,ITEM,ITEM,ITEM
#define R5(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM
#define R6(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM,ITEM
#define R7(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM
#define R8(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM
#define R9(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM
#define R10(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM

#define DEFAULT_ITEMS "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"
#define DEFAULT_MEDICAL R2("FirstAidKit")

Is the scripts_macro.hpp, DEFAULT_ITEMS is defined here

#

I was thinking, it might be here - but looks fine to me

molten musk
#

missing )
``

true gull
#

no way

#

lmao

#

good catch

#

Arma launched, that's a good sign

#

I think it works

#

thank you @molten musk and @chilly tulip

chilly tulip
#

Trying to work out what that preprocesses to with the missing bracket :P

fleet adder
#

how does one use the custom effects created in an ammo class?

If I get this correctly, the steps are:

  • Create class for custom Effect in root of game? (Complex Effect)
  • Create a custom entry in cfgCloudlets for you fantastic effect.
  • Call custom effect/cloudlet from a class defined within the complex effect using simulation type as particles
  • do stuff within the effect
  • set explosionEffect in the entry of cfgAmmo using the complex effect

Is this correct?

wintry tartan
#

I think you get the idea correctly

severe marlin
#

@wintry tartan

wintry tartan
#

?

severe marlin
#

I'm trying to add uniform with different texture

severe marlin
wintry tartan
#

And why you ping me

severe marlin
#

It's Paramilitary shirt

#

It's add uniform but the texture won't change

#

It shows the default texture

wintry tartan
#

Well

#

You're the one who doesn't help you. What HG said is the answer already

wintry tartan
severe marlin
winter rain
#

The problem is your parent class B_Soldier_F is wrong

severe marlin
#

Nothing worked

winter rain
#

Needs to be I_C_Soldier_base_F

wintry tartan
#

β€œDidn't worked” β€œNothing worked” without your code, yeah, it won't work

#
class BlackHand_UniformBase: B_soldier_F {
    author = "β™ Punisherβ™ ";
    vehicleClass = "BlackHand";
    scope = 1;
    displayName = "BlackHand Unit Base";
    identityTypes[] = {"Head_NATO", "G_NATO_default"};
    genericNames = "NATOMen";
    model = "\A3\characters_f_exp\Syndikat\I_C_Soldier_Para_3_F.p3d";
    uniformClass = "BlackHand_CamoBase";
    hiddenSelections[] = {"camo1","camo2"};
    hiddenSelectionsTextures[] = {"#(argb,1,1,1)color(1,0,0,1,co)"};
};```I've changed a BIT of your code and it worked, though
severe marlin
severe marlin
wintry tartan
#

I put a procedural texture

winter rain
fleet adder
# wintry tartan I think you get the idea correctly

Alrighty, thanks.

In another question; The ammo/projectiles event handlers behave differently if they are grenades vs bullets right?
Is a Hit considered an explosion on grenades? Since everything else pretty much seems to activate the hit handler on impact with other stuff in the world.

wintry tartan
#

Not 100% sure. But EHs you can set in config are identical to things you can set in script, so you can test it easily

fleet adder
#

Ill try then, thanks for the input

spare plank
#

The base game scientist clothing, the texture I applied to it is not showing in game but it is showing up as a selection in Ace arsenal, anyone wanna help me out?

winter rain
fleet adder
# winter rain You can also execute a script in cfgCloudlets

Yeah, I've been trying to set up the effects properly in order to execute functions from the coudlets, but I think the classes im inheriting from have limitations (flareShell) so I might have to set up the effects manually (more likely I dont know how they are supposed to work).

In the mean time I wanted to use the hit handler in order to test if the projectiles behaved properly in regard of actual script execution on impact.

untold temple
#

Trying to make a projectile that falls like a flare but with a different pfx? I think I had to set them up as a submunition for doing like canopy smoke shells in RHS. i.e. I made a normal grenade that can be fired then turns in to the submunition that's set up as a flare

fleet adder
toxic solar
#

I imagine this is config related, but I am creating a mortar with a new model and p3d wise it should be good (it rotates and elevates in game fine), but in the artillery computer it gives me this hexagon range. if I manually aim with page up and page down the tube aims and the shell goes in that direction. Anything simple I might be missing?

hearty sandal
#

Is the configs derived from existing weapon/magazaine/ammo

toxic solar
hearty sandal
#

Do you have the short, med, long range muzzles?

toxic solar
#

These are my only important config changes

class Turrets: Turrets
{
    class MainTurret: MainTurret
    {
        elevationMode = 3;
        magazines[] = {"8Rnd_82mm_Mo_shells","8Rnd_82mm_Mo_Flare_white","8Rnd_82mm_Mo_Smoke_white","8Rnd_82mm_Mo_guided","8Rnd_82mm_Mo_LG"};

        initCamElev = 0;

        maxelev = 45;
        minElev = 0.0;

        maxHorizontalRotSpeed = 3.6;
        maxVerticalRotSpeed = 3.6;
        disableSoundAttenuation = 0;
    };
};
hearty sandal
toxic solar
#

yes, the weird hexagon changes, heres far

hearty sandal
#

Or is that the minimum range actually

toxic solar
#

looks to be min range

wintry tartan
#

The hexagon means drawing circle has failed (more like the radius is minus)

#

Which means... yeah, it failed to calc the range

toxic solar
hearty sandal
#

Possibly

#

Looks like min distance is negative 4km

toxic solar
#

let me try like, idk 5 for minElve

hearty sandal
#

In your ui

toxic solar
#

oh

hearty sandal
#

And max is 0

#

Could also be your gun direction points are wrong way

toxic solar
#

wait, should usti hlavne be the bottom or top of the tube

hearty sandal
#

Depends what they correspond to in your config

toxic solar
#

gubBeg = bottom of tube correct?

#

I think I have them flipped in memory lod πŸ™‚

toxic solar
#

Okay I think its p3d issue, the shells are launching the opposite direction so I prob messed up there, ill revist the p3d and try again

opal crater
#

If you try to create circle marker but give it negative size it's a hexagon of that size.

#

So it's most likely something similar. The range might be negative πŸ˜…

true gull
#

Hey! I'm still trying to learn the possibilities and limitations of config files and was wondering about the following.

Say I wanted to make a custom unit, that uses a weapon with a random attachment, could I theoretically create a new class like:

}; 

class weapon_attachments {

    class eotech : "rhsusf_acc_eotech_552";
    class compm2 : "CUP_optic_CompM2_low";

};

Reference said class in cfgWeapons like:

class CfgWeapons {
    class rhs_weap_m4a1_carryhandle;
    class M4A1_CCO : rhs_weap_m4a1_carryhandle {
        scope = 0;
        class LinkedItems {
            class LinkedItemsOptic {
                slot = "CowsSlot";
                item[] = {"weapon_attachments"};
            };
            class LinkedItemsAcc
            {
            slot = "PointerSlot";
            item = "";
            };
            class LinkedItemsBipod
            {
            slot = "BipodSlot";
            item = "";
            };
            class LinkedItemsMuzzle {
            slot = "MuzzleSlot";
            item = "";
            };
        };
    };
};

And later reference the weapon class in cfgVehicles?

hard chasm
#

short answer is no. classes with inheritence attached need class bodies {}

true gull
#

okay, is there a way to achieve it tho?

#

or is the long answer also no, but with more steps?

grand zinc
#

Random attachment not doable in config

true gull
#

okay, too bad. Brings me to my next question: Can I do it with faces and voices?

#

for cfgIdentities?

grand zinc
#

Nothing in config no

#

Some numbers you could randomize somewhat. It would be random value at game start or at mission start.
But all units spawned off of it will still have the same value. Because the randomization is only done once

true gull
#

Okay, makes sense. I have seen face and voice presets somewhere before, but can't find them anymore. Do you happen to know where I can find them? I'd like to see how they were made

shy knot
toxic solar
livid trail
#

Hey there, I want to make my vehicle sling loadable by helicopters, but I found next to no documentation to this what so ever. (possibly google skill issue)

I defined two points in config as slingLoadCargoMemoryPoints[], but that did not allow me to hook it.
Is there anything else config related that needs to be edited?
(Or do I need at least three points?)

opal crater
#

what did you define as the points? positions

livid trail
#

selections in memory lod

opal crater
#

it's memory points names.

#

I would try 4 points for the start

#

and make sure your item is not heavier than max capacity of the helo

#

slingLoadMaxCargoMass

livid trail
#

on it!

opal crater
#

I would expect at least 3 points to be minimum so it's stable.

livid trail
#

the mass of the gun is way heavier than the slingloading capacity of the heli KEKW
It'se set to 350 tons for some reason

livid trail
#

(350 tons becasue of the mags I spawn dangerously close to it when finished firing)

hearty sandal
livid trail
# hearty sandal Make the shells with particles

I want the mag to hurt you if it hits you. The problem was the Arma moment of gun if mag colided during spawning. But that was sorted. The 320 tons is not necessary anymore, but I'll keep it and change it with code to 650 when folded, so it can be sling loaded only in folded state. A cheat? Maybe. But I like those

opal crater
#

there's enableRopeAttach command.

trail sparrow
#

How to fully delete the option "turn out" in a vehicle per cfg? I tried so many different things, and propably just overlook something. πŸ˜” Its causing bugs in a mod.

toxic solar
#

I have a mortar where the elevation limits are

minelev = -45;
initelev = -1;
maxelev = -1;

but the problem is the camera when u right click is also effected by this, and the below doesnt seem to have any effect

minCamElev
maxCamElev
initCamElev

so what should I do? the mortar is pointing straight up in p3d

marble badger
#

Looking at a silly idea
Can a driver position be set as firing from vehicle?

wintry tartan
#

No

#

FFV is a turret seat actually. Which means it is not, and cannot be a driver

marble badger
#

Hmm, could do a ugv then

winter rain
toxic solar
winter rain
#

You got to try.. i had some problems with my own Artillery if you have used the Artillerycomputer the 3rd Personview was stuck in the air after targeting/use, it needed a second model.cfg entry for the view.. Arty stuff is a bit weird done..

Im not sure if its mode 2 or 3..

But your problem could be what i had

wintry tartan
marble badger
#

I know

wintry tartan
#

I think I get your idea then. Yeah guess having an invisible AI to do it might be the way

marble badger
#

here be the silly

winter rain
#

Should work but you wont be able to turn turret or elevate.. horn is also a weapon

wintry tartan
#

Being silly is a part of Real Virtuality

toxic solar
trail sparrow
winter rain
trail sparrow
# winter rain You added it to the Turret class?

Directly in (pseudocode):

class newNyx: Nyx
{
forcehidedriver=1;
};

As that location so far had effects on driver, and idk if they have their own turret, i thought only mainturret and commanderoptics had those.

winter rain
trail sparrow
#

Anyone else has an idea? I tried hundreds of things at this point...

nova scarab
#

Hello guys. I m having a problem with Vehicle configuration. I have one vehicle a car, that has many parts. like bumper and so on that need to be applied by proxy. I was able to make it work in the Virtual garage. However I cant seem to have my vehicle appear with the proper parts designated by its class. I m using the code line "animationList" as you can see here ```class BRAF_LR110_gendarmerie: BRAF_LR_01_Base /// some class that is going to be visible in editor
{
scope = 2; /// makes the car visible in editor
scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden)
crew = "braf_soldier_light"; /// we need someone to fit into the car
side = 1;
faction = "BLU_GEN_F";
displayname = "Land Rover 110 SW (Hard Top)";

    hiddenSelections[] = {"camo1","camo2"}; ///we want to allow changing the color of this selection
    hiddenSelectionsTextures[] = {
        
        "braf_land\LR\Data\Skins\GEN\braf_landrover_GENout_co.paa",
        "braf_land\LR\Data\Skins\GEN\braf_landrover_GENin_co.paa",
        
    }; 
    hiddenSelectionsMaterials[] = {
        
        "braf_land\LR\Data\Skins\GEN\braf_GEN_landrover_out.rvmat",
        "braf_land\LR\Data\Skins\GEN\braf_GEN_landrover_in.rvmat",
        
    }; 
    
    animationList[] = {"hidebumper1",0,"HideBumper2",0,};
    
    

};```                                                         I m not sure how to call those proxy. Please any help could is Welcome. Thank you
nimble sequoia
nova scarab
#

Do you mean this ```class AnimationSources: AnimationSources
{

        class HideDoor1
        {
            scope = 0;
        };
        class HideDoor2: HideDoor1
        {
        scope = 0;
        };
        class HideGlass2
        {
            scope = 0;
        };
        class HideDoor3: HideDoor1
        {
            scope = 0;
        };
        class HideBackpacks
        {
            scope = 0;
        };
        
        
        class hidebumper1

        {

            displayName = "Hide Bumper Brazilian Army";
            source = "Proxy";
            initPhase = 1;
            forceAnimatePhase = 0;
            forceAnimate[] = {"HideBumper2",1};
            mass = -50;

        };
        
        

        class HideBumper2: hidebumper1

        {

            displayName = "Hide Bumper Gendarmerie";
            forceAnimate[] = {"hidebumper1",1};
            mass = -90;

        };
        
        class HideConstruction
        {
            scope = 0;
        };
        class hidePolice
        {
        scope = 0;
        };
        class HideServices
        {
        scope = 0;
        };
        class BeaconsStart
        {
            scope = 0;
        };
        class BeaconsServicesStart
        {
            scope = 0;
        };
        class Hide_Dashboard
        {
            scope = 0;
        };
        class Doors
        {
            scope = 0;
        };
        
        class Proxy

        {

            source = "user";

            animPeriod = 0.001;

            initPhase = 1;

        };
        
        class Beacons
        {
            scope = 0;
        };
        class Destruct
        {
            scope = 0;
        };
    };```
nimble sequoia
trail sparrow
nimble sequoia
nimble sequoia
nimble sequoia
#

Of course it has an effect - it changes the animation rtm for the driver when turned out compared to turned in?

#

It won't remove the option to turn-out, but at least the driver wouldn't appear to move position.

trail sparrow
#

Its not about looks, its that driverforceoptics doesnt work if the uav ai is turned out (which it still does).
When remote controlling it, the viewpoint is at the bottom of the driver seat as it doesnt have a human model, and opticsview isnt forced.

This doesnt happen with driver and gunner being uav ai. It does when only the driver is, and the gunner is empty.

Can this in the init have to do with it? The superior in the group being deleted having some negative effect on the driver?
waitUntil {!isNull gunner _this}; _this deleteVehicleCrew gunner _this;};

nimble sequoia
#

If you remove the gunner turret from the config does that fix the driver?

trail sparrow
trail sparrow
nimble sequoia
nova scarab
# nimble sequoia Maybe try changing the source type: ```class hidebumper1 { displayName = "Hi...

Yes, animation source is good it seems class hidebumper1 { type="hide"; source="proxy"; selection="bumper_EB_proxy"; // sourceAddress = clamp;// (default) minValue = 0.0;//rad 0.0 maxValue = 1.0;//rad 57.29578 hideValue = 1.0; // unHideValue = -1.0;//(default) animPeriod = 0.0; initPhase = 0.0; }; class hidebumper2 { type="hide"; source="proxy"; selection="bumper2_ENG_proxy"; // sourceAddress = clamp;// (default) minValue = 0.0;//rad 0.0 maxValue = 1.0;//rad 57.29578 hideValue = 1.0; // unHideValue = -1.0;//(default) animPeriod = 0.0; initPhase = 0.0; }; what sorce type should i change to?

trail sparrow
nimble sequoia
trail sparrow
nimble sequoia
trail sparrow
nimble sequoia
#

Ok, so it is still purely a question of can the driver in a tank be restricted to no turn-out? Nothing immediate is coming to mind. Are there any examples where this is true?

trail sparrow
nimble sequoia
#

UGV is a car

trail sparrow
#

What then is different between apc/tank, and car, and how to remove it? :/

nimble sequoia
#

It's probably hard coded to the simulation type. Tanks and APC's are typically tankx.
UGV is carx.

trail sparrow
nimble sequoia
#

Car drivers don't get a turn-out option, but they also don't have tracks.

trail sparrow
nova scarab
trail sparrow
# nimble sequoia Car drivers don't get a turn-out option, but they also don't have tracks.

Nope, it wasnt simulation. Same thing still happens with carx.

Removing the gunner def has some effect on it, when not removing it the driver turnout bug doesnt happen.
waitUntil {!isNull gunner _this}; _this deleteVehicleCrew gunner _this;};
But ofc the intention is to have the player sit in the gunner seat. Are there other ways to remove it?
dontCreateAI=1; had no effect

nimble sequoia
#

Drivers in cars don't have turn-out options by default, even when they have gunners. Check Hunter HMG.
driverInAction = "";
driverAction = "driver_MRAP_01";

trail sparrow
#

Your saying driverInAction would be the option for turnout?

nimble sequoia
#

No, usually the other way around, but those are the entries for the Hunter

trail sparrow
nimble sequoia
#

so if you have a driverInAction try replacing it with ""

trail sparrow
trail sparrow
#

@nimble sequoia Still thanks for the help. πŸ…πŸ™‡β€β™‚οΈ

nimble sequoia
trail sparrow
shy knot
#

Commander usually has like, 2 I think

#

Or 1 idk

nimble sequoia
trail sparrow
# nimble sequoia Yes, as already confirmed, highest commanding value is commander. If you have an...

I had a wierd effect:
-> Marshall IFV, with a UAV_AI driver (commanding=2;), and removed gunner/commander.
-> Sitting in commander (commanding=2;), with a friend besides me sitting in gunner (commanding=3;).

To bypass the locality issue, my friend the gunner connected to the driver, waited until it reacted to WASD, then released controls, and it didnt react to driving controls.
While for me sitting on the commander (with a intentionally lower commanding value), the same approach worked.

We swapped seats, and it also didnt work for me on gunner.
πŸ€”

How should i best set up the commanding values for this case? Or is it a different issue?

nimble sequoia
#

That removes the turn-out option, but he's turned out by default.

trail sparrow
shy knot
#

At least per BIKI

trail sparrow
rapid crystal
#

Currently attempting to make a crate that can be air dropped. When I airdrop the crate from the vehicle the parachute will deploy, but the crate itself will breakaway and just fall straight to the ground. The parachute itself will continue to float down until it hits the ground.

It doesn't seem the parachute itself connects to the crate after it is dropped for the vehicle.

shy knot
rapid crystal
shy knot
#

I think you need some memory points for it. But, I’ve never done it before so I can’t really help much

faint spruce
#

I have a question: what is handling vehicle instruments ? I read bohemia's config for boats and cars but i dont understand how instruments like speedomeeters are handled. What script is handling it ? Do i have to add an init event ?

true fossil
faint spruce
hearty sandal
teal mirage
#

hi folks, does anyone here know if there's a way to fix my vehicles from spawning in the ground as seen below with configs? I'm in no way versed well enough in arma stuff to start messing around with the 3d model

rapid crystal
#

are you able to increase turret rotation speed?

winter rain
winter rain
rapid crystal
faint spruce
faint spruce
#

Or maybe i could use 3 cylinders for one speedomeeter......

faint spruce
#

By the way, if i use cylinders for a digital speedomeeter, shouln't i see the cylinders rotation ?

hearty sandal
hearty sandal
cursive talon
#

What's the attribute for hiding backpacks when wearing a certain uniform? I know this happens with the Full Ghillie's from Marksman DLC but I'm curious about how I can do it myself for other equipment.

cursive talon
shy knot
faint spruce
trail sparrow
#

How to put this script into an cfg init?

this addEventHandler ["GetIn", {
 params ["_vehicle", "_role", "_unit", "_turret"];
  if (_role =="gunner") then { _vehicle setEffectiveCommander _unit}; 
  if (isNull (driver _vehicle)) then {  
  _agent = createAgent [format["%1_Soldier_F", (typeOf _unit) select [0,1]], position _vehicle, [], 0, "NONE"];       
  _agent moveInDriver _vehicle;
  };
 }];

This has error at [|#|'GetIn' , generic error in expression, what did i do wrong?

class EventHandlers: EventHandlers
{
  init="(_this select 0) addEventHandler ['GetIn', {params ['_vehicle', '_role', '_unit', '_turret']; if (_role =='gunner') then { _vehicle setEffectiveCommander _unit}; if (isNull (driver _vehicle)) then {_agent = createAgent [format['%1_Soldier_F', (typeOf _unit) select [0,1]], position _vehicle, [], 0, 'NONE']; _agent moveInDriver _vehicle;};];";
};

I remember something like this, but what of the script to put in there? πŸ€”

class EventHandlers: EventHandlers
{
  class GetIn
  {
    init="?";
  };
};

Actually it gave me ".../GetIn/' is not a value", but i think there was something similar like this.

Not sure if this helps:
https://github.com/CBATeam/CBA_A3/wiki/Extended-Event-Handlers-(new)#extended_init_eventhandlers

GitHub

Community Base Addons for Arma 3. Contribute to CBATeam/CBA_A3 development by creating an account on GitHub.

winter rain
gritty pagoda
#

Hi everyone I am getting no entry/bin/config.bin/cfgpatches/6b47s.units for any mission on my server and idk what to do could someone help out please

winter rain
gritty pagoda
#

Others compiled for the community

winter rain
#

sounds like its a problem by such mod so you got to find out which mod causes this and contact that mod to fix that

gritty pagoda
#

so it's either RHS or CUP since those are the only ones adding that russian helmet

#

@winter rain appreciate it very much btw

boreal surge
winter rain
boreal surge
winter rain
boreal surge
#

thx πŸ™‚ ill try that later on

hearty sandal
#

they are bound to break

#

use the original mods like they are intended to be used

gritty pagoda
#

Mods were compiled in full cooperation with mod developers so it wasn't supposed to happen, also found the issue my dev is working on it. Appreciate the help very much!

hearty sandal
timber willow
#

Hello i have some question. What define passenger seat in CfgVehicles?

hearty sandal
#

crew seats are combination of model things and config things

#

so do explain what is it you try to do

timber willow
#

I would like to try adding passenger seats to the APC model.

hearty sandal
#

you would need cargo proxies in the model to define the positions of passengers

#

and then corresponding cargoActions for the passengers sitting poses

#

you can check sample car for reference

timber willow
#

ok, thanks.

toxic solar
#

are mortars effected by maxHorizontalRotSpeed and maxVerticalRotSpeed?

#

doesnt seem to be working for me

dusty relic
#

having a bit of a struggle with adding visual items in vehicle appearance; I am trying to have the spoiler as an optional extra on my vehicle. it appears as an option in-game however it is not clickable, and bulldozer seems to not recognise it as an animation - so I feel this is a vehicle config thing? I've never done it before so I'm not entirely sure how to set it up.

class spoiler { type="hide"; source="user"; selection="spoiler"; memory=1; minValue=0; maxValue=1; };
For whatever reason it's not picking this up?

dusty relic
winter rain
dusty relic
nimble sequoia
dusty relic
nimble sequoia
#

That will fix it for buldozer but without the animationSources class it won't work in game.

dusty relic
#

that was already in place, and correctly, apparently.
It was just the model config that was scuffed

hearty sandal
#

The empty "" is the root of the object

boreal surge
# winter rain maybe try this ``` class EventHandlers { AmmoHit = "_this execVM '\DCA\weapons\d...

sadly this dosent work, do i have to put that inside of CfgMagazines?

class CfgMagazines
{
    class CA_Magazine;
    class dca_tear_gas_1rnd : CA_Magazine
    {
        magazineGroup[] = {"dca_tear_gas_1rnd"};
        author = "Ilya";
        scope = 2;
        type = 16;
        displayName = "40mm Tear Gas";
        picture = "";
        ammo = "SmokeGasShell";
        initSpeed = 80;
        maxSpeed = 200;
        count = 1;
        nameSound = "";
        descriptionShort = "Used in: UGL";
        mass = 6;
        beforeDestroyScript = "\DCA\weapons\data\Ringo\teargas_ammo.sqf";
        class EventHandlers
        {
            AmmoHit = "_this execVM '\DCA\weapons\data\Ringo\teargas_ammo.sqf';";
        };
    };

    class dca_tear_gas_6rnd : dca_tear_gas_1rnd
    {
        displayName = "40mm Tear Gas x6";
        count = 6;
        descriptionShort = "Used in: UGL, 6 Rounds";
        mass = 14;
        picture = "";
        class EventHandlers
        {
            AmmoHit = "_this execVM '\DCA\weapons\data\Ringo\teargas_ammo.sqf';";
        };
    };
};
class CfgAmmo
{
    class GrenadeBase;
    class SmokeGasShell : GrenadeBase
    {
        timeToLive = 60;
        timeToLiveSmoke = 60;
        ace_frag_enabled = 0;
        simulation = "shotSmoke";
        deflectionSlowDown = 0;
        initSpeed = 30; 
        thrust = 30; 
        airFriction = -0.001;
        sideAirFriction = 0.1;
        hit = 0;  
        indirectHit = 0;
        indirectHitRange = 0;
        dangerRadiusHit = 0;  
        suppressionRadiusHit = 0;
        suppressionRadiusBulletClose = 0;
        suppressionRadiusHitClose = 0;
        model = "\DCA\weapons\data\Ringo\gas_grenade.p3d";
        effectsSmoke = "SmokeShellWhiteEffect"; 
        explosionTime = 1.2; 
        caliber = 0.5;
        maxControlRange = 75;
        displayName = "40mm Tear Gas Grenade";
        descriptionShort = "40mm Tear Gas Grenade";
        smokeColor[] = {1, 1, 1, 1};
    };
};
winter rain
#

no, in your cfgAmmo

toxic solar
rancid lotus
#

Hey! Quick question

#

Is it possible to use the #define and #has_include macros together?

#

Like so:

#
#if __has_include(\TEX(Collar))
    #define TEXCOLLAR TEX(Collar)
#else
    #define TEXCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#endif```
wintry tartan
#

IIRC such nested thing is impossible

rancid lotus
#

Dang... that sucks

#

Would have been sooo convenient

rancid lotus
#

Oh wait really?

#

How?

grand zinc
#

__has_include(\TEX(Collar)) don't know if this works, I think it just reads the macro name as string, not as sub-macro

rancid lotus
#

Hmm okay

rancid lotus
grand zinc
#

yes has include also specifically requires quotation marks to be used

rancid lotus
#

Ah okay

#

Quotation marks around the macro or within the macro?

grand zinc
#

It takes the filepath as quoted string

rancid lotus
#

I don’t think that answered my question, sorry πŸ˜…

#

So would it be like

#

__has_include(β€œMACRO”)

#

Or __has_include(MACRO)

#

Assuming MACRO in the second case would have quotations built in?

grand zinc
#

__has_include takes specifically only quoted string

#

MACRO is not a quoted string

rancid lotus
#

Got it

grand zinc
#

__has_include("*")

rancid lotus
#

Sweet, thanks!

#

I’ll try it soon

rancid lotus
#

Doesn't seem to work properly- like it just defaults to the #else

#

Current code so far

#
#if __has_include("TEX(Collar)")
    #define TEXCOLLAR TEX(Collar)
#else

    #define TEXCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#endif

(Fixed, had it backwards)

#

What's weird is that TEX(Collar) isn't quote-enclosed

#

DedMen said it would work with a macro

hard chasm
#

why don't you siimply use

apples....
#else
oranges ....
#endif```
rancid lotus
hard chasm
#

ah ok.
you can and #quotes within a define,,, moment.....

rancid lotus
#

Right now it packs fine with the code below, but it never actually shows the correct texture despite it existing

#
//#ifdef CUSTOM_COLLAR
#if __has_include(QUOTES(TEX(Collar)))
    #define TEXCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
    //#define TEXCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#else
    //#define TEXCOLLAR TEX(Collar)
    #define TEXCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"

#endif```
rancid lotus
#

Wait I'm stupid

#

That one's wrong

#

One sec

hard chasm
#

give me a moment to get the syntax

rancid lotus
#

Got it

hard chasm
#
thing1 = QUOTE(\one\TWO.three);```
grand zinc
grand zinc
hard chasm
#

the macro operates on >>>var<<< then surrounds it in quotes for the __has_include

rancid lotus
#

Got it, okay

#

For some reason it just isn't working properly even though TEX(Collar) shouldn't be encased in quotes

hard chasm
#

pls show this mysterious TEX(Collar)

rancid lotus
#

Wait I may know what's weong

#

One sec

hard chasm
#

#define QUOTE(var) #var
is all you need to pass the file\name generated by TEX() to satisfy __has_include . In fact any include needs those quotes.

rancid lotus
#

Okay so

#

Relevant macros are as follows:

#
    #define JOIN2(A,B) A##B

        #define FAMILY Camo
        #define ELEMENT Arid

    #define PATHPARENT \41st_ODST_Internal_Assets\41Armor\Armor
    #define PATH JOIN5(PATHPARENT,\,FAMILY\,ELEMENT,\)

        //Recurring definition due to use of repeat macros
    #ifndef TEX
        #define TEX(A) JOIN2(PATH,ELEMENT##A##.paa)
    #endif

    #define TEXCOLLAR TEX(Collar)```
#

So the end result should be something like:

#

TEXCOLLAR

\41st_ODST_Internal_Assets\41Armor\Armor\Camo\Arid\AridCollar.paa

#

So what I want to do it this:

#
//#ifdef CUSTOM_COLLAR             //Macro solution
//#ifdef CUSTOM_COLLAR             //Macro solution
#if __has_include("TEXCOLLAR")
    #define TEXHELMCOLLAR TEX(Collar)
#else
    #define TEXHELMCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#endif

#

Wait one sec

#

A little bit messy but you get the idea

#

I'm trying to work to see if it's an error with one of my earlier definitions

#

Nope, still no joy

#

I've gotten to about here

#define TEXCOLLAR Tex(Collar)

#if __has_include("TEXCOLLAR")
    #define TEXHELMCOLLAR TEX(Collar)
#else
    #define TEXHELMCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#endif

hard chasm
#

for the purposes of __has_include

__has_include( QUOTE( TEX(Collar)) )

rancid lotus
#

You sure? Copy

#

Also

#

Could I also do #TEX(Collar)?

hard chasm
#

no

rancid lotus
#

Got it

grand zinc
rancid lotus
#

In that case- any idea why it's not working?

#
#define TEXCOLLAR Tex(Collar)

#if __has_include("TEXCOLLAR")
    #define TEXHELMCOLLAR TEX(Collar)
#else
    #define TEXHELMCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#endif
hard chasm
#

you cannot use "TEX"

#

the QUOTE() will surround the text for __has_include. effectively (" blah ")

rancid lotus
#

Alrighty

#

It's weird though, I don't think anything in TEX() wraps quotes

rancid lotus
#

OH

#

WAIT

#

DID I MISREAD WHAT YOU TYPED?

#

OOOF

rancid lotus
grand zinc
#

correct

rancid lotus
#

EEEEEEEEE

#

I could have saved so much time 😭

grand zinc
rancid lotus
#

Anyhow, thanks for the info

rancid lotus
#

If you give it serious consideration, ping me so I can cheer you guys on :P

#

Anyhow

#

I'm now going to go away and cry since I wasted my morning on this

#

Cheers!

grand zinc
#
#define QUOTE(x) #x

__has_include(QUOTE(initvars.sqf))

in 2.18 this will work. But also this

#define QUOTE(x) x

__has_include(QUOTE(initvars.sqf))

The quotes aren't really needed there

rain scarab
#

What's the dealio with numbers in configs for some of the vanilla data to have weird decimal points- is this a byproduct of binarization or something? i.e. thisParameter=4.6999998; instead of =4.7;

molten musk
rain scarab
#

Oh!

#

Guess so, neat.

hard chasm
#

4.6999998; instead of =4.7;
welcome to the world of IEEE 32 bit floating point maths.

Contrary to popular belief, floating point math is imprecise. It simply cannot store the exact number in 32 bits for most values.

When you compile a float eg: 4.7, the nearest value that can actually be stored in 32 bits is 4.6999999999

so you get a difference betweem the value you wrote, and when decoded (debinarised) the result is more often than not, fractionally different.

#

if you think for a moment, how could you possibly store 1/3rd of something. Eg it;s not 0.3, it's 0.333333333333333333

#

(some decompilers btw hide this discrepency by rounding the value)

sleek kelp
#

Hello everyone, i need help with a tracked vehicle im making. For some reason i cant make it exceed 23 km/h, i tried changing the physx values the bound mem point and still nothing. Does anyone know what might be causing this?

shy knot
sleek kelp
#

so its not on the wheels, but the engine that i should focus?

raw lodge
#

I have a problem that really baffles me, maybe someone has an idea. I have a car with 10 windows, glass1 to glass10. Each of the windows is animated in model.cfg by an appropriate HitGlassXX to disappear when HitGlassXX is 1, and I can verify in buldozer that this works for both the "normal" geometry as well as the Fire Geometry LOD. Hitpoints are setup normally:

                                 #define GLASS(x) \
                    class HitGlass##x \
                    { \
                        passthrough = 0; \
                        visual = glass##x ; \
                        armor = 0.05; \
                        explosionShielding = 2; \
                        radius = 0.2; \
                        name = glass##x; \
                        minimalHit = 0.10; \
                    }
                    
                GLASS(1);
                GLASS(2);
                GLASS(3);
                GLASS(4);
                GLASS(5);
                GLASS(6);
                GLASS(7);
                GLASS(8);
                GLASS(9);
                GLASS(10);

Previously, I had also tried naming the hit points differently (hit_glass##x). glass1 through glass3 work perfectly fine. glass4 works too, HOWEVER; when I destroy hitpoint HitGlass4, glass5 to glass10 ALSO disappears, even though diag shows that the hitpoints HitGlass5 to HitGlass10 are all zero damage. If I only destroy HitGlass4, then HitGlass1 through 3 stay zero and the fire geometry and glass geometry stays.

This really has me scratching my head, and I can't figure out what is wrong.

nimble sequoia
#

Check the glass selections aren't double-named (glass1 AND glass 4), also not part of any other selections such as camo

raw lodge
#

Geez, you are right... all of the HitGlassX after 4 have HitGlass4 as hhitpoint 😐

#

Thank you, I think that was the problem, testing...

#

It was indeed the problem. Copy-pasted, stuck into an include file, and forgotten Thanks for the help

nimble sequoia
shy knot
raw lodge
#

Yeah, it's confirmatiojn bias... "I am sure that stuff is correct, so it must be Arma's fault" πŸ™‚

drifting skiff
#

how is mass calculated, is it a certain weight unit or something?

hearty sandal
drifting skiff
#

mass as in weight

wintry tartan
#

What kind of thing you are doing?

hearty sandal
drifting skiff
#

gear, weapons, equipment, anything

hearty sandal
#

Ace mass?

drifting skiff
#

propably?

hearty sandal
#

I mean you will need to be specific

#

What is it you try to do

drifting skiff
#

figured it out myself

hearty sandal
sleek kelp
#

hello guys, in a vehicle, how can i make an animation play when a weapon is selected? i would like for it to work like in the vanilla vehicles with atgms, where if switch to that weapon the launcher covers open

hearty sandal
sleek kelp
hearty sandal
#

its described in the modelc.cfg wiki page

#

but not much else

#

maybe in the BIforums there may be few questions/answers too

#

MaxHoldsterValue is the full name of it

hard chasm
#

Despite my all-to-frequent criticisms of BI, that document is the clearest and best i've seen on the biki. Better in fact that many wiki tutes. You owe it to yourselves to be aquainted with it so that you understand the total absence of #includes, and the straightforward manner in how bones connect to each other.

hearty sandal
#

its been one of the most frequented wiki page for me along the years πŸ˜„

hard chasm
#

if you haven't read it, then you are garanteed to introduce typos in (eg) ofpManSkeleton, or keep pasting the same , often wrong, 'skeleton' from one project to the next one instead of simply declaring it once at the root of your P drive.

#

there is never a reason to declare class rotation eg in each separate project you make.

nimble sequoia
#

And yet the official samples still have all sorts of errors that continue to be replicated...

hearty sandal
#

Sad truth

trail sparrow
rare garnet
#

I have a useraction that creates a say3d with a varname but in a second useraction I cannot delete the declared varname, do i need to make the varname public?

sullen harbor
#

is there a way to assign a prefix to a subfolder that way p3ds can refrence proxies? ie change path from /prefix/subfolder/data to /subfolder/data

#

I tried assigning prefixes to each subfolder but no luck

cursive talon
#

How would I go about implementing something similar to backup optics on rifle scopes but for a binocular? I'm working on an improved laser designator and would like to separate NV and TI from the daysight as I will be using a different shaped optic body for the them.

hearty sandal
sullen harbor
hearty sandal
#

You'll need to se the path in p3ds If you change folder structure

cursive talon
# hearty sandal It may not be possible

Not sure if this is something I have "understood" correctly but when I tap Ctrl+RMB it does look like it is attempting to switch to another optic of some kind as it flickers out to a different view very, very briefly.

hearty sandal
#

If it can work, it would be done same way as with other weapons

cursive talon
cursive talon
#

Thanks anyways.

hearty sandal
#

I cant say for sure its not possible but at least I cant say Id have never seen that done

#

gut feeling is that it dont work because binocular is not quite same as the weapons

novel lava
#

I think you can add extra optics to it

#

whether they work though im unsure

#

the only use ive seen of it was a long time ago there was a 'iron sight' mode for binocs - cuz iirc in arma 2 it would force you into optics view when using them

#

and the ironsight view was basically to do what arma 3 does normally where you just hold them but arent in the optic

hearty sandal
#

could be it works then πŸ‘

versed stratus
#

Where we can get values for minFov entry inside opticsIn class of vehicle?
Right now it is initFov = 0.269231; and i have 0.9x zoom with it. Which value should i put to have x2 zoom e.g. ? How to calculate this stuff?

nimble sequoia
shy knot
#

If you're using CBA, CBA has a handy magnification helper

versed stratus
shy knot
#

So, if you want 4 times zoom, it would just be 4

#

Though, if you're mod doesnt rely on CBA, this would make it a dependency

rapid crystal
#

Is there a way to add hit points (i.e. health) to a vehicle without increasing the armor? Is armor the only form of health?

hearty sandal
#

armor type is tied to the model and what penetration material the hit geometry uses

hearty sandal
rapid crystal
#

Want a vehicle to have a larger health pool but still be able to take damage from small arms fire like an assault rifle.

Once I bumped the armor up to 250 it stopped taking damage from small arms fire.

#

let me mess with the penetration value.

hearty sandal
#

its part of the model itself

rapid crystal
#

Yeah, the fire geo right?

#

e.g. 10mm armour

hearty sandal
#

yes

#

this for a custom vehicle?

rapid crystal
#

It is.

hearty sandal
#

right, yeah if you have access you can change that sure

#

but having more health is controlled by the armor value

#

and possibly modulated by hitpoints (in config)

rapid crystal
#

Got another question here, in the config under 'Class HitPoints', are these all tied to just the 'Hit-Point'? What is the general use for this class?

hearty sandal
rapid crystal
#

I'll give it a look, thanks.

novel lava
#

minTotalDamageTreshold

#

and minimal hit on hitpoints

#

although id recommend looking at armorStructural, because if you set armor too high AI wont shoot even if they can damage it

#

with small arms

ebon pivot
#

does __has_include work within define macros? meowsweats

wintry tartan
#

πŸ€” good question

#

What's your current preprocessors?

ebon pivot
#

im using #define for doing bulk textures but when i try and do a #__has_include for if rvmat exists adjacent to _co then to include it as a hiddenselectionmaterial

ebon pivot
#

i forgot to finish that sentence

#

when i try and do that addonbuilder refuses to build

#

but when not within a #define its fine

#

yes i am remembering \ at the end of each line

hard chasm
#

the answer is yes

#

__has include works within a define

#

paste your code

#

just confirm with my tools (if you want to) that your syntax is correct.

ebon pivot
#

i dont use your tools

#

ive deleted it now but literally ctrl+x'ing the same thing out and getting rid of the \ at the end of each line worked fine so i have no idea

grand zinc
# ebon pivot does `__has_include` work within define macros? <:meowsweats:707626030613135390>

That was asked a few days ago by Stoney.

You need to be more clear.
Can you #define in a #if block? Of course.
Can you use a macro, as the filename in has include.
Not before yesterday's dev/profiling branch.
Can you use preprocessor commands inside a #define macro definition? No. At least I've never seen that anywhere (Arma or C) and I don't think the Arma preproc processes commands when inserting macro replacements

ebon pivot
#

roger doger third one answers thanks

rare garnet
#

do you need to define
ammo[]={}
magazines[]={}
in CfgPatches

grand zinc
rare garnet
ebon pivot
#

probably gets used in scripts by them

rare garnet
ebon pivot
#

everything you write in config gets put into the classes so long as its syntaxically correct

#

cfgpatches is no exception

hard chasm
#
magazines[]={}```
rapify (part of mikero's toolset) lists all *public* items in cfgVehicles, cfgWeapons, cfgAmmo, cfgMagazines.  The latter two cause no harm and are only written IF there is in fact some ammo or magazines! They are there to assist you with informatian on sometimes very large config files. (same reason in fact why missions use units[]= and weapons[]=).

note *public*. pboProject ignores anything you scribble into units and weapons and re-writes those arrays[]  with the truth. If it aint public, it aint there.
stuck nest
#

Hello, I'm probably not doing it right at all, but would this be the appropriate method to get a map to inherit the sky from another map?

class CfgWorlds {
class Enoch;
class chernarus: Enoch
{
};
class chernarus_summer: chernarus
{
};
class chernarus_winter: chernarus
{
};
};
wheat sluice
#

Unless you're writing those configs from scratch (as in this isn't a replacement addon), you'll mess up the inheritance chain for those maps and cause a lot of strange mismatches.

#

If you want to swap out the lighting with those used by the Livonia terrain, you'll have to tweak the lighting settings line by line.
I'd suggest taking a look at how the First Contact campaign's version of Livonia does it (in \a3\data_f_contact\config.bin).

tulip escarp
#

Any reason this always runs the #else section? (dev branch)

#
#ifdef __A3_DEBUG__
    #define XPS_DEBUG 1
#endif

#ifdef XPS_DEBUG
    #define XPS_ISFINAL isFinal = 0
    #define XPS_RECOMPILE recompile = 1
#else 
    #define XPS_ISFINAL isFinal = 1
    #define XPS_RECOMPILE recompile = 0
#endif```
#

It was just A3_DEBUG in place of XPS_DEBUG before but wouldn't work so I am trying to figure out why.

#

tried w/ no mods same result

tulip escarp
#

tried on stable branch. I can confirm XPS_DEBUG is working. Here's the full story then...

#
#define XPS_CFG_TYP(typName) class typName {\
    file = FILEPATH_C_Q(typedefs\typName.sqf);\
    type = "typ";\
    preprocess = 1;\
    allowNils = 1;\
    noStack = 1;\
    XPS_RECOMPILE;\
    XPS_ISFINAL;\
}```
#

in preInit : sqf XPS_DebugMode = false; #ifdef XPS_DEBUG XPS_DebugMode = true; #endif

#

so XPS_DebugMode is true/false according to the -debug startup param. but isFinal is always 1 and recompile is always 0

#

if I comment out the _A3_DEBUG then everything works fine?

#
 
// #ifdef __A3_DEBUG__
    #define XPS_DEBUG 1
// #endif```
hard chasm
#

if this is in a config.cpp, do not binarise it. (all #preprocessing is removed)

tulip escarp
#

or does binarizing the config.cpp file cause this even outside of it?

#

This might be a HEMTT issue now that I look at it. I am running .\HEMMT dev -O and technically my config.cpp should NOT be binarized but it clearly is

#

new version downloaded but still same issue. I'd try disabling binarizing but there's only a xwitch to enable it according to docs. "-b" and I'm not including that switch πŸ€”

#

disabled in project.tonl and still binarizing config.cpp and now it's even worse. I have sqfc files everywhere I dont want built. well ffs

#

packaged it manually. still not working. I'll see if I can repro on something smaller

hard chasm
#

i think i know the problem!!!

#

arma needs

#define true 1
#define false 0

if you were using my tools you would never need to do this.

#

without the defines
thing = false; is converted to as string and always presents as being non-zero

nova scarab
#

Hey guys I have a APC that the AI does not shooting /engage, only engaging when very close and even then shooting at the ground? Please help!

true fossil
hard chasm
#

you are quite right for sqf. In fact, it's 'true' and 'false' not a boolean.

#

when sqf is used in configs, "it is enclosed in quotes" so the defines don;t affect it

true fossil
#

It's not a config though, I went and checked his git repo, it's a function that's packed as part of the mod

#

in an sqf file

hard chasm
#

ok. that was not at all clear. hmmyes

true fossil
#

But mikero is right, hemtt is binarizing rapifying at build/packing which is stopping your #ifdef __A3_DEBUG__ from working the way you want it as those macros have to evaluated to binarize rapify (as far as I know). Looking at the documentation for hemtt you can stop it from binarizing rapifying by changing the "addon.toml".
(corrected by veteran below)
https://brettmayson.github.io/HEMTT/configuration/addon.html

hard chasm
#

and everything you need to know to build any bis engine? <silent grin>

#

one more comment about sqX. #includes were first used by the community (SickBoy and Kju). You have them to thank for CBA etc. One unfortunate act was to call their includes HPP instead of (say) SQH.
we have been living with this confusion ever since. The least of which in including acres of useless config.cpp related files in pbos because you can't filter. (well you can with pboPro, but it's painful)

opal crater
#

It's intentional, these files allow for easy file patching.

#

Maybe they're useless for normal users but they're small so that doesn't matter that much.