#arma3_config

1 messages ยท Page 74 of 1

sour drift
#

or mortar shell's dispersion

strange egret
#

projectile properties are in cfgAmmo. You can go into ingame config viewer (in EDEN, click play, then escape, then on config viewer) to read configs

jade brook
#

You can access the config viewer inside Eden without starting a preview. It's a button somewhere under the "tools" tab. When using CBA, the shortcut is alt+G (ctrl+G ?).

sour drift
#

thanks a lot.

kindred moss
#

is there a way to detect firemode change and execute a command adding for example attachment to players weapon? Can that work from the weapons EH?

for example I have muzzles [] = {"this","muzzle2","safe"} in the weapon and once firemode is changed to muzzle2 there is certain animation on the weapon, working from model.cfg, animating some iron sights for example.

once that is activated I need a way to add a special atachment to the weapons muzzle, which acts as another weapon with its own magazines, and configuration for that one is not an issue, but a way how to detect the active muzzle and then adding the mentioned attachment.

I am brainstorming on how would I be able to achieve this, and I would like to avoid too much scripting if possible.

Thank you for input and ideas.

untold temple
#

does the weaponInfoType get changed when switching the muzzle if you assign a different one to the second muzzle's weapon class?

#

might be possible to do it then with onLoad

kindred moss
#

yeah it inherits from UGL_F so it swaps to default RscWeaponZeroing from the custom one

#

making a custom Rsc and calling the function from there to load accessory might work

#

one of those vodoo trix aye ๐Ÿ˜‰

fair hearth
#

A really basic question... How do you get the Author's name of an addon not to say 'by unknown community author'? I've got an 'author = "XXX";' in the class of my addon under the CfgPatches but it does not seem to do anything!

jade brook
#

You need to add author = "blah" to every class. And keep in mind that this entry is ignored when inherited. You need to add it to every class.

fair hearth
#

Understood - thanks!

stone cove
#

btw why when you inherit the class , the author value isnt inherited which is annoying

kindred moss
#
#define AUTHOR   author="Blah";``` cause macros but I do agree its dumb to write it thousand times in the config
jade brook
#

@stone cove The value is inherited like any other entry would be. But it's ignored by the logic that handles the authorship stuff if not explicitly defined in this class. Some things just ignore inherited entries and classes. This is one of them. My guess is, that this is done to not misattribute the authorship of reskins.

#

Jastreb, there is not much point to a macro if it's the same number of lines before and afterwards. Although I guess you can change the author of everything by changing one line this way. I'd still prefer a stringtable entry instead though.

stone cove
#

well then the author unknown is quite famous

jade brook
#

Imo it should leave the line blank instead of say "unknown author". But I guess it's easier to spot for the one that makes the addon if it's missing somewhere this way.

kindred moss
#
#define AUTHOR author=$STR_AUTHOR;```
#

just shooting examples, I do use strings

grand zinc
#

again. Why have a macro for something that never changes and is only one line?

kindred moss
#

easier to write just AUTHOR rather than author=$STR_AUTHOR?

#

personal preference in the end

jade brook
#

Doesn't matter when it's all entered by pressing ctrl+v

kindred moss
#

ยฏ_(ใƒ„)_/ยฏ

nimble sequoia
#

Is it possible for the driver of a tank be seen in external view (LOD1) when turned IN?
I've tried viewDriverInExternal = 1; , but he still doesn't show up.

grand zinc
#

I think no. I read something about that a while back

nimble sequoia
#

Thanks Dedmen.

#

How can I deal with a tracked APC that has:

  1. an open hatch in front of the driver when turned in (so visible to external viewers)
  2. a driver turned out position through an overhead hatch (so can't make the interior position 'turned-out')
  3. a gunner seated next to the driver in a modelled interior (gunner can look at driver when turned in)
    I'm currently inheriting from tank_f, because of the tracks. Can I inherit from car_f (driver visible in external) and still use tracks?
untold temple
#

does it have hideproxyincombat = 1; as well?

nimble sequoia
#

yes

#

Isn't that an AI setting, telling them whether to turn in or out (or something) when in combat?

#

I've tried hideProxyInCombat = 0; driver is now visible, but has lost the 'turn-out' option.

kindred moss
#

hideProxyInCombat = false; // default (true for tanks); if true, disables turn-in option for all crew

#

I think you cant use Car_F because of the simulation, you will lose tank physx then, tracks wont work etc

untold temple
#

you're testing on dev Branch, yeah?

#

because AFAIK the viewDriverInExternal parameter is still only on dev at the moment

nimble sequoia
#

No, I'm on stable.

#

Thanks Jastreb, that's what I thought.

#

There is a single entry of viewDriverInExternal in the config dump of stable.

untold temple
nimble sequoia
#

ah ok. Do you think they're adding it to address the issue I'm raising, so I should stop looking for an answer at present?

untold temple
#

well reyhard added it to our stuff at RHS, so I think it's safe to say it'll do something when 1.74 is released

nimble sequoia
#

rgr - I did look through all the RHS vehicles, but couldn't find a tank with a visible driver - I know you guys know your stuff, first place I looked ๐Ÿ˜ƒ

untold temple
#

the pts we have is a tank with a visible driver, but it's because he's permanently turned-out

nimble sequoia
#

yep

#

You also have apc's with visible drivers, but they're car_f inheritance and no tracks

#

I'm thinking about a turned-out driver with two positions via script...

untold temple
#

I think we've got it on tanks etc. now for the sake of killing the driver with penetration, as he also improved the fire geometry of the Bradley's hatch

#

and made new turn-in anims for the Abrams driver

wise fog
#

anyone know the inherit path for glass hitpoints in a door that opens and closes and can roll down glass

#

Right now I have the glass as glass3 with inherit dmghide

#

Then in car skeleton its door then door_window inherits door then opening and closing and window up/down works but glass hits doesnt

#

If i have the door inherit the glass it works but hides the whole door

#

All other glass works but not this one when combined the way I have it I guess

kindred moss
#

"damageHide","",

#
            "door_1_1_damage","door_1_1",
            "door_1_2","",
            "door_1_2_damage","door_1_2",
            "door_2_1","",
            "door_2_1_damage","door_2_1",
            "door_2_2","",

            "glass1","damageHide",
            "glass2","damageHide",
            "glass3","door_1_1",
            "glass4","door_1_2",
            "glass5","damageHide",
            "glass6","damageHide",
            "glass7","damageHide",
            "glass8","damageHide",
            "glass9","door_2_1",
            "glass10","door_2_2"```
thorn shadow
#

Is it possible to reference config values across classes?

class CfgSounds
{
    class randomSound01
    {
        Sound[] = {... stuff ...};
    };
    class randomSound02
    {
        Sound[] = {... stuff ...};
    };
};

class CfgSfx 
{
    class MySfx
    {
        random[] = {Sound01, Sound02};
        Sound01 = CfgSounds.randomSound01.Sound;
        Sound02 = CfgSounds.randomSound02.Sound;
    };
};

The problem:
There is a mod or several that add sound effects to CfgSounds, I'd like to use them with zeus module play Sound.
The module uses cfgVehicles.Sound which references to CfgSfx.
The Sfx entry's are almost identical to cfg sound, only that they can contain more than one entry.
I don't want to manually duplicate all entry's but just link them.
is that possible and how?

jade brook
#

Is it possible to reference config values across classes?
Not like you did, no.

wise fog
#

Thanks @kindred moss

wise fog
#

Also anyone know can you use gear or speed as a source in model.cfg? I know you can use gear for reverse/reverse lights but does it go up with increasing speeds?

jade brook
#

There is a list of all animation sources on the wiki. If something is not in there, it most likely does not exist.

untold temple
#

reverse lights aren't handled by model.cfg so much, apart from including them in the sections[]= array. There's a hardcoded system from the OFP era, based on the selection name assigned to the parameter in the config.cpp C selectionBrakeLights= ""; selectionBackLights= ""; etc.

#

speed, yes: since there are anims for speedometers

wise fog
#

Thx - was gonna have a look at wiki after work

lofty zealot
#

this is valid? Oo

#

    class Exile_Bike_QuadBike_Abstract
    {
        skins[] =
        {

            {"Exile_Bike_QuadBike_Blue",        100, "Blue",        {"\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_CIV_BLUE_CO.paa","\A3\Soft_F_Beta\Quadbike_01\Data\Quadbike_01_wheel_CIVBLUE_CO.paa"};},
            {"Exile_Bike_QuadBike_Black",        100, "Hex",        {"\A3\Soft_f_Exp\Quadbike_01\data\Quadbike_01_ghex_CO.paa","\A3\Soft_f_Exp\Quadbike_01\data\Quadbike_01_wheel_ghex_CO.paa"};}
        };
    };```
grand zinc
#

Why not?

#

What should be invalid on that?

lofty zealot
#

};}

#

inside the array

grand zinc
#

oh

#

yeah the ; is incorrect

lofty zealot
#

@hard chasm ?

grand zinc
#

after the .paa

lofty zealot
#

y

#

it is from the recently here posted exile config thingy

#

reworking arma.studio linter and discovered that

grand zinc
#

Well. Then it apparently doesn't hurt. but ; are used to end entries/values. Should not appear in the middle of an array entry

lofty zealot
#

thats why i am wondering

#

and hope mikero can solve this misconception and tell if that indeed is some crap i have to take care of ๐Ÿ™ˆ

grand zinc
#

It's like if you'd write
auto var = {1,2,{3,4};}; in C++. Syntax error because the ; ends the statement before the array is closed

lofty zealot
#

anyway ... ArmA.Studio can now lint configs again
things like that weird ; are marked as error

#

perprocessor not yet functional

#

due to ... reason (if anybody wants to implement the preprocessor for antlr ... i am already trying, maybe youre faster then i am)

oblique violet
#

hello guys

#

im tring to have a listbox with secondary text (aligned to the right) in addition to the text that is aligned to the left.

#

haven't been able to find any functions to set it, but i have read a few wiki pages of commands that handle the color of that text and even found a devblog entry that states support for this feature and scripting commands are added - yet i haven't been able to find such command

#

p.s my listbox is created dynamically (sqf wisely)

#

also, inside a controls group

#

to better understand my goal, im trying to imitate inventory containers - so i need to have my list item in the following format:

<PAA> <NAME> <NO>

#

where paa is the item picture, name is the item's name

#

and NO is the amount of items (obviously, i handle all the logic behind it - just need script functions to have it working)

#

^^ this is how it looks like without the secondary text feature, items are duplicated and it looks bad ๐Ÿ˜ฆ

#

this is more of a scripting related problem but i've put this here because UI is usually config

oblique violet
#

lbSetTextRight

#

thanks supportInfo

full shuttle
#

Does anyone know any good tutorials on making scopes?

strange egret
#

making - define making.

#

how to figure out the values or how to config it in principal or what is it that you are after?

hard chasm
#

the semicolon is illegal for the reasons you ladies have already pointed out. it is a throwback to ofp where such arrays were accepted. Exile has many many mistakes such as this, the worst of all is using a 'config.cpp' for something other than an addon.

rigid token
#

"the worst of all is using a 'config.cpp' for something other than an addon."
@hard chasm can you explain that a little more please? what else would you use that for?

hard chasm
#

the presense of a config.cpp IS the definination of an addon. eg, it has a cfgPatches class which tells the engine the name of this addon.

a mission.pbo is simply a mission.sqm convenientlly wrapped in a pbo just like a zip file.

a mission addon is same as above but also has a config.cpp which causes the way in which the mission or missions inside are discovered and used.

#

a mission addon lives in a mods folder just like any other addon
a mission.pbo lives in the missiions\folder

#

exile is a mission,pbo but confuses the crap out of my tools (and bis binarise) because of the cpp

#

it is identical in effect to using a description.ext for something other than being for a mission.

rigid token
#

ok. thank you!

wise fog
#

whats the best way to have running lights for vehicles that turn on/off if you press L

#

just selections that emit light, no reflectors

#

is there a way to define selections that can do this or do I gotta do a hacky method

rigid token
#

emissiveness is handled via material usually. i think in this case too. so my guess is you would use a model.cfg hide animation using hte right anim source to tie it to the L button

wise fog
#

yea I am just looking to hide/unhide an emissive selection

wise fog
#

just added them to backLights selection because I didn't find a good source other then time/hour

rigid token
#

what about those collision light ones? maybe those are good. no full info on them though

wise fog
#

exactly ๐Ÿ˜›

#

plus its land vehicle, iirc collision lights only worked on ships and air

rigid token
#

ah. weird that there is no simple light anim source for the L key switch.

#

hm. look at this from the sample car. looks weird but maybe it works well

            class daylights
            {
                type="hide";
                source="rpm";
                selection="daylights";
                minValue=-0.8;
                maxValue=0.2;
                unhidevalue=1;
                sourceAddress="clamp";
            };
            
            class reverse_light
            {
                type="Hide";
                selection="reverse_light";
                sourceAddress="clamp";
                source="Gear";
                minValue = -1;
                maxValue = 0;
                hideValue = "0.2";    
            };
wise fog
#

why is rpm a source for daylights there

#

odd

hard chasm
#

hideValue = "0.2";

be careful with quotes for this, it can be misinterpreted as a string

untold temple
#

@wise fog rpm is probably so you can't turn the lights on while the engine is off

wise fog
#

Makes sense

sullen fulcrum
#

Say I have a display, and I want it to appear forever. What's the largest number I can put in duration = N;?

jade brook
#

I don't know, but 1E6 would mean it's shown for 11 days already.

#

So 1E6 should be enough already.

sullen fulcrum
#

Thanks.

wise fog
#

radius for userActions is in meters correct? Does it even work?

strange egret
#

y

wise fog
#

I have a useraction that has the position as the "drivewheel" but changing the radius doesn't seem to change it

#

does it have to be a memory point or selection on res LOD

strange egret
#

if you want to do specific controlls (i.e. clickable cockpit) then i dont think it is accurate enough

#

not sure to where the distance is measured even.

wise fog
#

I just want the useractions to be only accessable from the Driver/Passenger

#

not the rest of the crew (URAL/MTVR driver and passenger but units in back can't open it)

strange egret
#

then do a condition that checks if player is driver/passenger...

#

could be that every unit inside vehicle is considered as distance 0 towards action points

wise fog
#

that might be it

untold temple
#

setting it to "pos driverpos" usually works, no?

real cloak
#

is this inheritance correct

    class Rifle;
    class Rifle_Base_F : Rifle {
        class WeaponSlotsInfo;
        class ItemInfo;
        class LinkedItems;
        class GunParticles;     // External class reference    
    }; 
    class Rifle_Long_Base_F : Rifle_Base_F {
        class WeaponSlotsInfo : WeaponSlotsInfo {
            class SlotInfo;    
        };    
    };

to reference SlotInfo?

jade brook
#

@real cloak No, it's not.

#
class SlotInfo;

class CfgWeapons {
    class RifleCore;
    class Rifle: RifleCore {
        class WeaponSlotsInfo;
    };

    class Rifle_Base_F: Rifle {
        class GunParticles;
    };

    class Rifle_Short_Base_F: Rifle_Base_F {
        class WeaponSlotsInfo;
    };

    class Rifle_Long_Base_F: Rifle_Base_F {
        class WeaponSlotsInfo;
    };
};
#
class LinkedItems

Is never used in these base classes. It's only used in pre-equipped classes.

#
class ItemInfo

And this one is never used in the base classes either.

real cloak
#

ahh ok thanks for the heads up

fair hearth
#

I believe it's possible to change the dispersion of a weapon via 'dispersionCoef' if adding a suppresor. But is it possible to use something similar in ammunition classes? I was thinking it would be useful if we wanted to make a Mk262 5.56mm ammo more accurate than a standard Mk855 ball, for example.

jade brook
#

Probably not.

#

Although you can lower the muzzle velocity and that would increase scatter too.

#

I think.

fair hearth
#

OK - thanks!

fathom thorn
#

after I try to pack some of the sample files, I get "Cannot open object modelname.p3d" in Eden. Neither addon builder or Mikeros tools gives me errors when packing it. Anybody knows whats wrong?

#

no error in the logs either

#

nver mind guys... it worked after deleting the content of P:/temp

dusty plover
#

Does anyone know how I can stop CfgGlasses from showing up in the profile glasses section? I have an eyepatch i want to add for my group for missions but I don't want people to be able to equip it from their profile and play in any mission with it on

jade brook
#

scope = 1;

#

if that doesn't work, then you can't hide it

dusty plover
#

I'll give it a try thanks

#

Thank you so much, that worked. Just added the line
scopeArsenal=2; to get it to still show in the virtual arsenal

jade brook
#

Nice! hf

inland gulch
#

what does the CfgPatches entry fileName = ""; do exactly?

jade brook
#

Nothing.

#

Where did you got this from?

inland gulch
#

I just noticed that it was in the Atlas terrain guide example config

#
{
    class Terrain
    {
        units[]                              = {"Island_Name"};
        weapons[]                              = {};
        requiredVersion                      = 1.72;
        requiredAddons[]                     = 
        {
            "A3_Data_F",
            "A3_Map_Data",
            "A3_Map_Altis",
            "A3_Map_Stratis"
        };
        version                                 = "Date";
        fileName                             = "Terrain.pbo";
        author                                 = "Author";
    };
};```
#

Something like this

sullen fulcrum
#

Anyone know config entry for UI or the IDC for plane engine throttle.
i.e when you start engine in plane, default UI top left is number output for engine throttle
I am assumming its a hard coded value. For doing a custom RSCTitle

untold temple
#
            class CA_Throttle: RscText
            {
                idc = 205;
                ...
            };
#

part of RscUnitInfoAirPlane controls[] group

sullen fulcrum
#

Thanks found it, think i need to update p drive. Think i behind afew versions

untold temple
real cloak
#

what could prevent a weapon from being shown in editor?

#

(the weapon itself when spawned by command is working totally fine)

#

nvm found it

tardy frigate
#

anybody had anyluck with subitems on helmets ?

clever kestrel
#

Anybody have any idea how the field manual configuration works? Can't seem to find any docs or config entries on it

#

Disregard last

jade brook
#

Disregard last
Well, I posted how it's done in the Bundeswehr mod.

clever kestrel
#

@jade brook Yep yep, thanks. I'll take a look

kindred moss
#

here the question
I have and addon A_weapons which has Author="A" defined and class A_weapon

I have another addon named B_weapons which has Author="B" defined and same class A_weapon

those addons are not from the same mod obviously, but how do I make addon B_Weapons takes over the A_weapons if its loaded, so the Author=A is achieved?

#

this is basic example I hope you understand what do I want to do

#

and before you ask no I cant change the class to class B_weapon in B_weapons addon (dont ask why) thats why Im seeking for workarounds

#

Might be a trick just in load order, if I load the B_Weapons last it will take over the A_Weapons?

jade brook
#

You add A_weapons to requiredAddons of B_weapons to ensure that B_weapons is loaded after A_weapons and overwrites the author entry in A_weapon.

kindred moss
#

ah should of mentioned that no dependecies between the two are desirable

#

autor is just an example parameter, there is more to it than that

hard chasm
#

commy2 is 110% correct in not only how-to, but the reasons why. requiredAddons determines the load-order, and what you need to do is ensure that addon A is obliterated/modified by addon B. You can't achieve that miracle if addon A loads after addon B. If you say you can't do that for technical reasons, then it's your architecture that needs to be revised. There's no way up over or around that basic principle of inheritence.

#

There's no reason why addon B has to be loaded at all, other than your wish to over-ride something.

kindred moss
#

I guess that, hmm load order can then be "fixed" for me by actually loading my mod as last from arma3 launcher, thats all that is left, aside hacks, dirty ones

jade brook
#

The order in a launcher is not guaranteed though. It depends on what the other required addons are and how the game walks through the CfgPatches class when booting the game.

kindred moss
#

and that is the mistery ofc

real cloak
#

cfg patches is prebuild and it traverses it (besides the dependecies) alphabetically

jade brook
#

Well not really. It does the Addons folder first alphabetically and when a requirement isn't loaded yet, it holds it back for later..

#

Then does the same with the expansions. And then with the @addon adons folders.

real cloak
#

sorry, thats what I meant

#

the addons name part

grand zinc
#

The last Mod in the -mod parameter is generally loaded last. But i don't know if that also causes it's config to be parsed and integrated last

jade brook
#

There is some logic behind it of course, but I guess it counts as undefined behavior and some seemingly unrelated things can shake it up.

kindred moss
#

loading the mod as last in line doesnt help /facepalm

grand zinc
#

You can't trust A3Launcher on that though. You could try it when starting manually via -mod.
Also try loading it as first and last. Maybe the first Mod get's loaded last

kindred moss
#

it does write chit in rpt, its loaded last allright

cursive cliff
#

i import a font with fonttotga and convert tga files to paa Config looks like: class CfgFontFamilies { class CrayonHand { fonts[] = { "\Folder\Fonts\CrayonHand\CrayonHand6", "\Folder\Fonts\CrayonHand\CrayonHand7", "\Folder\Fonts\CrayonHand\CrayonHand8"........... }; spaceWidth = 0.7; spacing = 0.13; }; }; but it still not work

#

Anyone a idea ?

jade brook
#

But I don't see it used anywhere.

#

Maybe it's hard coded and you can't add custom fonts?

cursive cliff
#

i try to add a other font, still not working too

#

you can add fonts

#

i got 2 custom fonts

#

some one was gave me that

#

but when I try to add fonts ,it not working

jade brook
#

Well if you already implemented two other fonts, then just do the same thing again.

cursive cliff
#

I didnt , a friend does

#

but he is offline for a long time now ๐Ÿ˜„

#

thats not the point

#

I used "FontToTga"

#

And convert it with "ImageToPaa"

grand zinc
#

TFAR has 2 custom fonts.

#

and ACE is doing it the same way

cursive cliff
#

thats my font

jade brook
#

Hmm, make sure to copy the files into the PBO by adding *.paa to "files to copy directly".

#

There is no config.cpp in that folder

cursive cliff
#

i using the same config , to add the other fonts

#

I using pbo manager

jade brook
#

Well it can't be the same config, because at least the filenames and the addon name have to change.

cursive cliff
#

what

#

class CfgFontFamilies { class RobotoB {.....}; class CrayonHand {.....} };

cursive cliff
#

yeah I know these tutorial

kindred moss
#

see the cfgPatches class? That is your addon filename

cursive cliff
#

men ,thats not the rproblem

#

its not the config or addon name

grand zinc
#

Why not?

cursive cliff
#

I got a config.cpp where Im including these cfgs and im using a cfgpatches

#

and a prefix

#

THe path is correct

grand zinc
#

Soo.. You are saying "I have no Idea how to do this stuff. But I know that you guys who have several years of experience in that stuff are 100% wrong"

#

The name of your CfgPatches entry has to be unique

#

Please upload your final PBO so we can have a exact look on where the problem is

cursive cliff
#

No , im telling you, thats not the problem, if you want , i can give you the pbo and you will see , thats all fine

grand zinc
#

I already asked for the PBO

kindred moss
#

\Folder\Fonts\CrayonHand\CrayonHand6 is your pbo named Folder.pbo?

packing with PboManager
the what, and the why?

cursive cliff
#

wrote it in the same time

jade brook
#

Sounds suspiciously like the problem is with CfgPatches.

#

The font name has to be unique, sure. But so has to be the CfgPatches name.

kindred moss
#

Im not even sure pbo manager can handle includes and whatnot

grand zinc
#

If it doesn't then Arma will

jade brook
#

Also, is there an error message in the RPT log file?

cursive cliff
#

will look

kindred moss
#

is pbo manager even updated lately, that thing is very old

#

try packing with free mikero tools, or addon builder

#

namely pboProject

jade brook
#

I doubt the tool is the problem tbqh.

kindred moss
#

aye just pointing out that it might be, whatevers clever

#
-Suppotrs only "resistance" pbo. Will add support of another formats, when have time.```
Winse said that long time ago, also the tool isnt working right in Win7 let alone 10
grand zinc
#

yes pbo manager is completly outdated. It still works in Win 8 and 10 though.
And I can confirm it's not the problem as long as the prefix is correct

kindred moss
#

aye thanks, used it long time ago, but packing with PboProject now, cause I like the sadistic part of it :p

wise tusk
#

Hi everyone, I got a question. I have model of jet , with specified memor points for pointPosition and pointDirection, in config I got something like this: class RenderTargets
{
class mfdFlir
{
renderTarget="rendertarget0";
class CameraView1
{
pointPosition="flir_pos";
pointDirection="flir_dir";
renderQuality=2;
renderVisionMode=2;
fov=0.30000001;
};
};
};

#

But my camera PIP is stuck, I want it to move just like the TGP. What should I do?

cursive cliff
#

@grand zinc

jade brook
#

There is no config.cpp in A3S_assets.

cursive cliff
#

delete it , my bad

#

will upload the right pbo

grand zinc
#

Wtf are you doing ๐Ÿ˜„ You are saying that you are adding new Weapons in your CfgPatches

cursive cliff
#

I dleeted 400 mb

#

for you

#

you wanted the pbo

#

so i making mistakes

grand zinc
#

Okey. I'll correct myself. You Cfgpatches is saying that you are adding VANILLA weapons in your pbo

#

Vanilla weapons are Added in Vanilla pbos though

cursive cliff
#

im not adding it , I reconfig it

jade brook
#

Yeah and

        magazines[] = {};
        ammo[] = {};

look weird too. Where do these come from?

cursive cliff
#

that is not the fintprobleme

jade brook
#

That's what you say, but what if it is?

grand zinc
#

You shouldn't put the weapon in Cfgpatches if you just modify it afaik. You should put it in there if you add it.

jade brook
#

Yep.

grand zinc
#

If you know exactly what's not the problem why do you need our help then

jade brook
#

Good way to break things too.

cursive cliff
#

I put it in , to reconfig some weapons, why its to bad to add ammo[] = {}; ?

jade brook
#

Because you shouldn't add config entries willy nilly.

grand zinc
#

As I said. You shouldn't put that in if you reconfig weapons. Only if you add new ones

kindred moss
#
    class A3S_client {
        ...stuff
    };
};``` and then you have ```

class SitkaText {
        fonts[] = {
            "\A3S_assets\Fonts\....```

if you cant see it...
grand zinc
#

I don't see any error here. What is it @kindred moss?

soft cedar
#

UH

cursive cliff
#

// Required addons, used for setting load order.

grand zinc
#

Sorry jaska :x typo

soft cedar
#

You're dedmen now

#

๐Ÿ˜ƒ

jade brook
#

dadman

cursive cliff
#

so if i didnt put these pbo in there, my pbo can load first

grand zinc
#

For some reason Discord recommends you when I type @Ja instead of Jastreb

cursive cliff
#

but that is not the pronblem ๐Ÿ˜„

kindred moss
#

the class of cfgPatches says its A3S_client.pbo the path to font is \A3S_assets.... @grand zinc

jade brook
#

Hungry, you sound confused.

cursive cliff
#

the new one

grand zinc
#

@cursive cliff No one said anything is wrong with your requiredAddons

#

@kindred moss Yes that's correct. The font is in another PBO. So what's the problem? ^^

jade brook
#

That is why we need a RPT file...

cursive cliff
#

there is no probleme with the configs or cfgpatches or what ever...... thanks

jade brook
#

I think there is

cursive cliff
#

must be in the .paa files

jade brook
#

Disagreed.

cursive cliff
#

and why is loading the 2 fonts there

#

and the toher 2 not

#

?

grand zinc
#

RPT file please?

kindred moss
#

@grand zinc you are right, fonts are in other pbo, provided that its packed correctly, rpt if possible

#

comes down to tits or gt.o

grand zinc
#

2 of 4 fonts work. So it works partly

cursive cliff
grand zinc
#

isn't roboto already in the game though?

jade brook
#

Yes it is.

grand zinc
#

So you are adding Fonts that the Game already has.

cursive cliff
#

it was taking out

grand zinc
#

And you know that the Fonts that the Game already has work and the others don't.

cursive cliff
#

robotoblack

jade brook
#

Roboto was not taken out of the game. It's the font used in the main menu.

cursive cliff
#

๐Ÿค”

#

I would use roboto

#

and there was a error

#

that told me

#

roboto isnt a font

jade brook
#

It would be easier if you test your mods without loading a ton of other addons.

cursive cliff
#

5 month ago

#

@jade brook you dont know my addon ๐Ÿ˜„ I need to load it, but thats not the point

#

what can be wrong in the config

jade brook
#

Yes it is the point!

#

There already are on screen errors in that RPT...

grand zinc
#

The point is something doesn't work and you ask for help but deny every idea we have because "that can't be it"

jade brook
#

Who knows which of these originate from your font mod and which are from the other 20 mods.

kindred moss
#

while trying to repack and add ton if chit that isnt yours

#

but

#

ยฏ_(ใƒ„)_/ยฏ

cursive cliff
#

omg

#

try it by your self

#

start these two addons

jade brook
#

If you build it for me.

cursive cliff
#

and try to add the font , you will see , it dont work, I can change the roboto to roboto2 and it will work

grand zinc
#

what?

#

If you change roboto to roboto2 then it works?

cursive cliff
#

I mean , I added RobotoBlack and I can call it ingame , you guys mean , roboto is still in the game, so If I change the name of RobotoBlack to RobotoTest and call it ingame , it will still work

#

There isnt a error in the cfgs

grand zinc
#

If there is no error in your config why are you asking in #arma3_config ?

jade brook
#

I'm not convinced.

#

Actually we pointed some out already.

cursive cliff
#

I thought it was a probleme

#

And I thought someone is fit in adding fonts

jade brook
#

If the addon has vanilla weapons in the weapons[] array, then there is at least one error in the config.

cursive cliff
#

yeah thanks commy

grand zinc
#

Well I added fonts myself. I ran FontToTGA and converted it to paa put it into the correct folder and added the config entry and everything worked flawelessly

jade brook
#
  1. retest with only the fonts addon
  2. upload RPT
cursive cliff
#

Ok I found the error... First of all, "Roboto" was redifined to "RobotoCondensed","RobotoCondensedBold ", "RobotoCondensedLight" 3 or 5 month ago.... I added 4 Fonts, ( Roboto, RobotoBlack, SitkaText are working and CrayonHand not )
Thats the error in .rpt : 17:10:16 Extreme texture size (1x1) 17:10:16 Texture init failed. 17:10:16 Extreme texture size (1x1) 17:10:16 Texture init failed. 17:10:16 Extreme texture size (1x1) 17:10:16 Texture init failed. 17:10:16 Extreme texture size (1x1) 17:10:16 Texture init failed. 17:10:16 Extreme texture size (1x1) 17:10:16 Texture init failed. 17:10:16 Extreme texture size (1x1) 17:10:16 Texture init failed. 17:10:16 Extreme texture size (1x1) Rpt file: https://pastebin.com/0UixaEs0 Here is the addon: (https://www.file-upload.net/download-12619838/font.zip.html) you can test it with : [ [ ["Test,","<t align = 'center' shadow = '1' size = '0.7' font='SitkaText'>%1</t>"], ] ] spawn BIS_fnc_typeText;

grand zinc
#

I'd say some of your paa's have a size of 1x1

cursive cliff
#

Maybe didnt read it, anyway thanks for your help.

#

@grand zinc so I need to delete these files ?

grand zinc
#

I guess. In TFAR I removed all but the highest resolution Font. Because I have no need for most of the small Font sizes

cursive cliff
#

ok , i will try it

sullen fulcrum
#

hey. i need help. i cannot get - packing cpp into bin - to work. i tried binmake and binpbo with no luck.

#

i get "error in config" when using binpbo

cursive cliff
#

@grand zinc is there a way , to edit .fxy files ?

grand zinc
#

Yes. Use a Hex-Editor

#

They are just files like any other file

cursive cliff
#

yeah, but i want to delete the path to the 1x1 files

grand zinc
#

Just remove the batch of files that contain the 1x1 files

#

You can't remove just one file of a batch

sullen fulcrum
#

anyone have an easy way of packing to .bin?

grand zinc
#

Arma 3 tools binarize.exe

sullen fulcrum
#

i tried binarize too but im not exactly sure how to make it work

#

how do you add lines and tell it how to binarize?

cursive cliff
#

@grand zinc contain all

grand zinc
#

There is no "how to binarize" you just binarize

#

I think it's enough to just drag&drop your config onto binarize

sullen fulcrum
#

tried that too..

#

but where should the outcome file land?

grand zinc
#

same directory as cpp I guess

sullen fulcrum
#

doesn't in my case

grand zinc
#

Just use Addonbuilder to build your pbo. It will automatically binarize your config

sullen fulcrum
#

i tried that too but Addonbuilder doesn't react to pressing "pack"

#

i will move to troubleshooting i guess

ocean nacelle
#

Anyone knows what's "canHideGunner" parameter do into a CargoTurret class? There is no references at all or undocumented

jade brook
#

I think it enables the hatch?

latent oak
#

to enable the gunner lowering down into the turret when he gets shot at I would assume. Like you can do in the RHS vehicles like the Hummvee

jade brook
#

That is basically the hatch logic appropriated for the person turret / FFV stuff.

ocean nacelle
#

Code:

class CargoTurret_01: CargoTurret
            {
                gunnerAction = "passenger_inside_1";
                gunnerInAction = "passenger_inside_1";
                gunnerCompartments = "Compartment2";
                memoryPointsGetInGunner = "pos cargo L";
                memoryPointsGetInGunnerDir = "pos cargo L dir";
                gunnerName = "$STR_A3_TURRETS_BENCH_L1";
                proxyIndex = 3;
                gunnerDoor = "";
                isPersonTurret = 2;
                class dynamicViewLimits{};
                soundAttenuationTurret = "HeliAttenuationGunner";
                disableSoundAttenuation = 0;
                forceHideGunner= 0;
                canHideGunner = 1;
                personTurretAction = "passenger_inside_6";
                gunnerGetInAction = "GetInHelicopterCargo";
                enabledByAnimationSource = "hatch_L1";
                animationSourceHatch = "hatch_L1";
                allowLauncherIn = 0;
                allowLauncherOut = 0;
                
                class TurnOut
                {
                    limitsArrayTop[] = {{38.5373, -12.3438}};
                    limitsArrayBottom[] = {{-55.8132, -78.701},  {-47.6331, 90.4505}};
                };
            };
jade brook
#

```cpp

```
for pretty colors.

#

No space.

sullen fulcrum
#

anyone who can give some basic config help? never done config before and i know this is incorrect but can you tell me what's wrong?

jade brook
#

No space, no newline.

class blah {
};
ocean nacelle
#

wait, I'm learning it as you read ๐Ÿ˜‚

jade brook
#

@sullen fulcrum You need to define reference the base classes.

#

Also, you didn't make the Rangefinder. Why put your name as author?

#

Or is this a different one?

sullen fulcrum
#

@jade brook its just a test, i only made a test retexture

jade brook
#

It's better to make your own classname and inherit from the Rangefinder of the base game instead.

sullen fulcrum
#

could you tell me how to reference the base classes?

jade brook
#

Yes, wait.

sullen fulcrum
#

nice

ocean nacelle
#
class cfgWeapons
{
    class Rangefinder;
    class your_pretty_rangefinder :  Rangefinder
    {
        blabla
        bla bla
        hiddenSelections[] = {"camo"};
        hiddenSelectionsTextures[] = {"rangefinder\rangefinder\data/trigr_co.paa"};
    };
};

@sullen fulcrum

sullen fulcrum
#

can i just choose whatever name i want for your_pretty_rangefinder ?

jade brook
#
class CfgPatches {
    class My_RangefinderAddon {
        author = "You";
        requiredAddons[] = {"A3_Weapons_F"};
        requiredVersion = 0.1;
        units[] = {};
        weapons[] = {"My_Rangefinder"};
    };
};

class CfgWeapons {
    class Binocular;
    class Rangefinder: Binocular {
        class WeaponSlotsInfo;
    };

    class My_Rangefinder: Rangefinder {
        author = "You";
        ...
        class WeaponSlotsInfo: WeaponSlotsInfo {
            ...
        };
    };
};
#

can i just choose whatever name i want for your_pretty_rangefinder ?
Yes. It has to be your OFPEC tag.

#

Anything you want.

#

The mass of a binocular slot item is defined in WeaponSlotsInfo and not ItemInfo.

#

There, forgot something.

sullen fulcrum
#

alright awesome thanks alot so far

jade brook
#

You can find these names of the base classes in the config viewer or you google for a config dump of the latest version.

sullen fulcrum
#

and these settings goes under class My_RangefinderAddon { ?

#

scope = 2;
scopeArsenal = 2;
displayName = "Rangefinder";
picture = "rangefinder\rangefinder\data/gear_rangefinder_ca.paa";
model = "a3\weapons_f\binocular/rangefinder_proxy.p3d";
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"rangefinder\rangefinder\data/trigr_co.paa"};

#

(how do i add code here?)

jade brook
#

Well most of them are superfluous, since they would be inherited from the vanilla range finder.

sullen fulcrum
#

ah ok

jade brook
#

Like scope or displayName

#

Only what you want to change has to be redefined.

#

The rest is inherited - carried over from Rangefinder

sullen fulcrum
#

alright nice

jade brook
ocean nacelle
#

@jade brook Will try thank!

hard chasm
#

The last Mod in the -mod parameter is generally loaded last. But i don't know if that also causes it's config to be parsed and integrated last(edited)

this is pretty much irrelevant. You are assumeing that because C, is, before, D, or C is alphanumerically less, it gets loaded first, or because it's in a mod it gets loaded last, or because it's wednesday adternoon....
Addons are stalled from loading until all entries in their requiredAddons list have been,

sullen fulcrum
#

so i get: ......encountered "." instead of "=" in line 25

#

class CfgPatches {
class My_RangefinderAddon {
author = "You";
requiredAddons[] = {"A3_Weapons_F"};
requiredVersion = 0.1;
units[] = {};
weapons[] = {"My_Rangefinder"};
picture = "rangefinder\rangefinder\data/gear_rangefinder_ca.paa";
model = "a3\weapons_f\binocular/rangefinder_proxy.p3d";
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"rangefinder\rangefinder\data/trigr_co.paa"};

};

};

class CfgWeapons {
class Binocular;
class Rangefinder: Binocular {
class WeaponSlotsInfo;
Model = "a3\weapons_f\binocular/rangefinder_proxy.p3d";
mass = 15;
};

class My_Rangefinder: Rangefinder {
    author = "You";
};

};

jade brook
#

You have to add these entries to your rangefinder and not your config patch class.

#

Or the vanilla Rangefinder for that matter.

sullen fulcrum
#

im so new at this..

#

right now i have it added in the config.cpp of the mod im making

#

you mean i should add the model, picture and so on to my_rangefinder?

hard chasm
#

of course.

#

it is YOUR rangefinder you are trying to make or alter

sullen fulcrum
#

i already tried that but i still got the same "line 25" error after packing with addon builder

hard chasm
#

the code above looks fine to me.

sullen fulcrum
#

hm

hard chasm
#

(other than it being wrong), but its structured ok

sullen fulcrum
#

lol

hard chasm
#

use the half-and-half again rule

cut out everything exccept the cfgpatches class

#

if that still errors. cut half of it out

#

etc etc

#

at this point you're not interested in it working, you want to locate the cause of the error

sullen fulcrum
#

yeah i guess

#

hm still got the error when removing the CfgWeapons and my_rangefinder part..

hard chasm
#

then it's probably not THE config.cpp that's being packed but some other

sullen fulcrum
#

hm i don't understand why when you pack with addon builder you get both the .bin but also the .cpp and .hpp inside the pbo. am i packing it wrong then?

kindred moss
#

if thats the config you pasted here in the channel then

Model = "a3\weapons_f\binocular/rangefinder_proxy.p3d"; wth /

#

๐Ÿ˜

jade brook
#

\

#

/

kindred moss
#

:p shhhh

sullen fulcrum
#

does that really matter?

kindred moss
#

try and find out, thats the only thing I see wrong with the above ( that might be wrong )

#

windows uses drive:\some\path\somefile.ext nix uses /lib/etc/something so since tools are for windoze you cant use both, you cant use nix paths, but windoze, someone with more technical ( programming ) knowledge might explain better

#

this file path: C:\Documents\Foo translates to this URI: file:///C:/Documents/Foo
^ that I think windoze sees forward slash as link, total different formatting

sullen fulcrum
#

changing \ dont work as expected , anyone who can tell me whats wrong with the code?

kindred moss
#

those two textures dont exist, you need to add your own

#
config.cpp : rangefinder\rangefinder\data\gear_rangefinder_ca.paa
config.cpp : rangefinder\rangefinder\data\trigr_co.paa```
sullen fulcrum
#

i did add my own

#

i just called them the same as the original

kindred moss
#

path...

#

My_RangefinderAddon\texture.paa

#

or\wherever\it\is\in\addon\namespace

sullen fulcrum
#

hm

kindred moss
#

are you dead new at this?

sullen fulcrum
#

yeah man im totally clueless

hard chasm
#

+1 (good advice)

kindred moss
#

but to finish with this, what you wanted to do is quite easy, you just need to understand few thing, actually one basic one
game sees your addon as a file with virtual path which is defined in cfgPatches, as a class
so
class CfgPatches { class myAddon }; will actually produce when packed a file named myaddon.pbo and all the paths to textures or files inside that pbo are actually on the path myAddon\some\path\file.paa

#

but you can read that on those links too, and you need some basic knowledge of how classes and inheritance works in programming, and the rest comes trough a lot of coffee cups and dead brain cells

hard chasm
#

and goats

kindred moss
#

good luck, and dont freak out now ๐Ÿ˜ƒ

sullen fulcrum
#

๐Ÿ˜„

#

thx alot for the links and help ๐Ÿ˜ƒ

kindred moss
#

yvw

hard chasm
#

re: / and \ the rules are:

linux only understands /
windows accepts both (there is no differenece between the two)
bis understand neither:
you have the infamous roadslib=/must/be/speciied/this/way/

picture=str("\must\be\this\\way");

and most other things can/be\mixtures

kindred moss
#

sorry for interrupting mikero, I just wanted to add another thing, and that is a good tool is precious, so for learning, for now, you can play a bit with addon builder, but as you progress, you will need better tools, so I can recommend Mikeros DOS tools, and PboProject for packing... its sadistic set of tools that will make your eyes bleed, until you find and fix that last error you got, but you will LEARN

hard chasm
#

๐Ÿ˜Ž

kindred moss
#

merde... the\path/like\that/works?

hard chasm
#

indeed

#

because, for the most part,, it is a direct feed to the windows os

#

not always, for the most part

kindred moss
#

piss.... mon dieu , poor Tom

hard chasm
#

as usual, playing it safe means \always\lower\case;

kindred moss
#

+1 always

sullen fulcrum
#

Hey maybe someone can point out if im doing something wrong here but

{
    class B_Heli_Light_01_armed_F;
    class B_Heli_Light_01_armed_F_Radar: B_Heli_Light_01_armed_F
    {
        radarType=4;
        LockDetectionSystem=8;
        incomingMissileDetectionSystem=16;
    };
};```
is there anything wrong with this?
#

was just attempting to add pawnee radar

#

nvm lol

#

it added it to co pilot

#

is there a way to swtich that to pilot?

stark gust
#

Warning Message: Config : some input after EndOfFile.

#

How do I find out what causes this other than going through all vehicles/objects 1 by 1

kindred moss
#

you have some or many syntax errors that causes the class tree to end prematurely and thus some tools or the game itself will detect some input after the class closure };

#

common mistakes are missing " ; ะพr };

#
class CfgWeapons
{
  class Rifle;
  class Rifle_Base_F : Rifle
  {
      class WeaponSlotsInfo;
      class GunParticles;
      class Eventhandlers;
  };

  class mytag_weapon_something_base: Rifle_Base_F
  {
  
      scope=1;
      author="Me and Doge"
      magazines[] =
      {
          "mytag_30Rnd_caliber",
          "mytag_30Rnd_caliber_tracer"
      };
  };
};``` thats how classes work and inheritance on example of weapons config
stark gust
#

Yes, unkown mod causes that error

#

I would like to find out which one it is

kindred moss
#

each line is ended with ; or each statement, ofc there are arrays such as magazines[] = { "mag_class_1", "mag class_2" };
where you list classnames under ", separate them with , enclose them in {} and finish statement with ; after the }, and bear in mind that last classname in array should not be ended with ; or separated with , there is nothing after it but you shoudl read more about arrays elswhere
each class definition is enclosed in {} and ended with ;
defining new class by inheriting something from the base game classes is as seen above done by first stating the class tree you inherit from

class Rifle;
class Rifle_Base_F: Rifle
{ class some_subclasses_we_need; };```
and then defining your own class by inheriting from the base one

```cpp
class mytag_newclassname_base: Rifle_Base_F
{ your new stuff here; };
#

ah in that case RPT is your friend, find it by pressing Win+R> type in > %localappdata%\Arma 3\ > and inspect the one with the latest timestamp

#

look for lines that say WARNING or ERROR, use CRTL+F to find it

#

use Notepad++ or Atom or some other advanced text editor

glossy flax
#

Hey guys, I have a script running on a Init via EH "init". Now I want this script to only run once on creation in the editor. (The script assigns a loadout to the unit when its placed down in the editor but sadly it also assigns the loadout yet again when the mission starts. I'm working on a random gear script and this is essentially the last problem I have with the script) Any idea what I could do?

kindred moss
#

configure your function to run postInit?

#

and make sure it only runs on client machine, other than that this is more #arma3_scripting rather

grand zinc
#

a initEH can't be configured to run postInit

#

try to spawn your script in the initEH and sleep for a few seconds

kindred moss
#

that is noguarantee whatsoever and also a bad idea performance wise
you dont configure EH to run postinit you do a function you call from EH, I might be wrong but can try

grand zinc
#

You can't just call a Function and get it to execute postInit. And what I recommended is in no way a bad Idea for performance

kindred moss
#

Actually you might be right but I like to avoid sleep whenever possible

#

For scripts called by the Init Event Handler the first sleep command will suspend the script at the briefing screen at the start of a mission. The script will continue after the briefing screen, when actually "in game".

grand zinc
#

Not applicable here

#

You are not calling sleep in the init EH

#

And actually this effect is just what we need

kindred moss
#

but what he says is a bit contradictory, he says it triggers twice on unit creation in editor and at mission start, I dont quite understand that

#

that is applicable you dont call sleep inside EH but in the script

grand zinc
#

Yeah I only read half of your post before I answered

#

I thought it would say it would freeze the game like sleep in some other init script does

glossy flax
#

Thanks you two, but even if it runs not on init but later (using sleep) wouldn't it still run when its created in the editor and then yet again when the mission starts....just later? (Haven't tried it yet, but thats just what my dumb common sense tells me <--- a thing I can not always rely on xD)

jade brook
#

What do you want to do.

#

Words like "init" and "initPost" are thrown around, but not used accurately.

glossy flax
#

I put it here because this all happens in the faction mod I'm building (Damn, thats the one thing I forgot to mention). Okay I'll explain again:

In my mod (faction) I have a unit that receives a random load out via script. I run that script on an Eventhandler "init" in the config of the unit. The problem stays the same. the script is run once I place the unit in the editor and then again when the mission starts (so the unit has a different loadout than he had in the editor).

Sorry for the confusion. I thought I have added that little detail :3

jade brook
#

So what you want is, that the unit is randomly equipped when placed in the editor and then retains that loadout forever?

glossy flax
#

Yeah that more or less my plan

jade brook
#

I think one could hack something together involving a 3den object attribute for the arsenal loadouts.

#

Basically only run the randomizer script with is3den and then emulate the random loadout as the 3den arsenal loadout somehow.

glossy flax
#

Mhh, that sounds like a plan. I'm gonna give it a try. Thank you ^^

jade brook
#

Urg, the 3den arsenal doesn't use a attribute that can be manipulated with the 3den commands...

#

You'd have to make your own custom attribute with an invisible unselectable control in the editor.

#

Nothing I haven't done before, but it's not straight forward so to speak.

#

OH

#

@glossy flax
Look at this wonderful thing!

#

This could solve this issue quite easily.

glossy flax
#

Mhhh looks promising. Now I just need to see how I use it xD

jade brook
#

You'll need to modify the init script to only run in 3den and when you're done randomizing, you use this command to save the loadout as if the mission maker chose it using the editor arsenal.

glossy flax
#

Okay, so to make it only run in 3den I would use if is3DEN then {...}; to randomly apply the gear I use the variable _unit would I just use save3denInventory [_unit] then? Also where would I put it: Inside {...}; (at the end of it) or outside?

jade brook
#

Yes and everything, including the saveBlah line.

#

You already have the script that randomizes the gear, no?

glossy flax
#

Yes I have

jade brook
#

That goes into the then-block

glossy flax
#

Yeah that I know but what about the saveBlah?

jade brook
#

That goes at the end of the the randomization process.

#

To save it in the mission.sqm

#

So every time you play the mission, the loadout that was chosen when the mission maker placed the unit years ago is applied.

glossy flax
#

Ahhh nice... Gonna test it..

jade brook
#

I've never done this, but I don't see why it wouldn't work like that

glossy flax
#

Sounds logical enough, but then...its arma we talk about xD

#

Awww great, it works.

#

Damn not quite perfect yet

#

The script still always fires when the editor is opened again (e.g. when you load the mission in the editor or when you go bak the the editor from the preview) any idea for that? ๐Ÿ˜…

jade brook
#

hmm, maybe check if the unit has the default loadout and abort the script if it doesn't?

glossy flax
#

True I could give them a default uniform that is not in the uniform pool and if the unit doesn't have that on the script exits. Good idea

jade brook
#

Let's hope the loadout is applied before the init eventhandler runs. Yay for race conditions :S

glossy flax
#

Meh, looks like it doesn't...you think Dedmens idea with the sleep would be an idea?

#

Ohhh wait, I'm dumb. @quaint elbow@

jade brook
#

Huh?

glossy flax
#

I put it in then because I thought "If it has the uniform the script does NOT have to be applied.Yeah, I'm dumbdumb but I survive. Seems to work. Thank you alot :3

jade brook
#

Nice. If that check works, then you might want to get rid of the is3den check.

#

That way your randomizer will also work on units created mid mission using createUnit.

glossy flax
#

Uhh didn't think of that. Nice, thanks once again! xD

jade brook
#

yw

#

These shitty work arounds give me life.

sullen fulcrum
#

anyone know why when i add radar to a certain heli it goes to the copilot instead?

kindred moss
#

does it have new sensor stuff configured? If so it states on BIKI that radartype parameter will not be used
Property is unused if the vehicle uses the new Sensors (Radar, IR...) system.

#

other than that you can try this driverIsCommander = true;

sullen fulcrum
#

@kindred moss tried driverIsCOmmander and no luck

simple trout
#

What's a good armor value for the sides of a wooden ship?

simple trout
#

Can someone tell me what I'm doing wrong with my damage textures? I'm trying to swap out the rvmat but it's not working. For testing purposes I've included the rvmat with both a leading "" and without. https://jpst.it/120LX

solemn steppe
#

Does anyone know where soundEnviron is defined?

untold temple
#

@simple trout hitpoint visual = "###"; selections from your hitpoints config are there in the model and sections[] array of the model.cfg?

simple trout
#

I found out what it is. addon builder wasn't copying over "extra" rvmats so it could never find the destructive rvmats

#

thanks though!

sullen fulcrum
#

Is it bad practice to change stuff in base classes?

grand zinc
#

mostly yes.

sullen fulcrum
#

Say I have CPP CfgSomething { BaseSomething { allow = 1; }; aThing: BaseSomething { allow = 0; }; }; Is it 1 or 0 for aThing?

#

Basically, if I edit something in a base case, will it override said thing in all class that inherit from it?

jade brook
#

I disagree that changing entries in child classes is bad practice.

#

I don't think that was what dedmen meant though.

#

I think he meant changing already established entries in any classes.

#

So not what you posted, unless BaseSomething is a vanilla class with allow = 0 there.

sullen fulcrum
#

Thing is, this makes the mod depend on RHS.

#

I want to remove said dependancy by editing the base class.

#

Is that possible?

jade brook
#

It would work if you have the RHS mods in requiredAddons. Otherwise it's undefined which of these entries would be used as loading order is uncertain.

sullen fulcrum
#

Yes, I know that requiredAddons[] = {"rhsgref_c_airweapons", "rhs_c_heavyweapons", "rhs_c_weapons", "rhsusf_c_heavyweapons", "rhs_c_troops", "rhsusf_c_airweapons", "rhs_c_rva", "rhsgref_c_weapons", "rhsusf_c_weapons", "rhs_cti_insurgents", "rhsgref_c_troops", "rhsusf_c_troops"};.

#

But can I remove the dependancy?

#

I guess no since RHS has their own base classes for launchers? rhs_ammo_atgmBase_base, rhs_ammo_atgmCore_base, rhs_ammo_rpgShell_base and rhs_ammo_TOW_AT.

#

Some launcher classes inherit from vanilla classes, base or not, though.

jade brook
#

But can I remove the dependancy?
No.

#

You could make two addons. One for vanilla and one for rhs.
With RHS you'd load both.

sullen fulcrum
#

Hmm, I guess.

#

If only we could use #ifdef with CfgPatches enteries...

grand zinc
#

Adding some entries that didn't exist before to base classes is nothing bad yes. I expected you meant modifying base classes. Like modifying entries in there.

#

There are apparently still people that don't understand the preprocessor

sullen fulcrum
#

I know it's impossible ๐Ÿ˜›

nimble sequoia
#

Can anyone give advice or point to documentation for class TurnIn {} for Turrets please?
Specifically what does turnOffset = ... do, as I don't notice it doing anything to the proxy direction from turn-in to turn-out.

strange egret
#

you could change proxy direction via model.cfg animations...

#

dont think i ever noticed the turnIn class...

jade brook
#

Just a heads up. Not every entry does something in this game.

nimble sequoia
#

Lol, thanks. :-)
I'm already using proxy direction change via model.cfg, but wondered if there was a more elegant way, and had seen the TurnIn/TurnOut classes, so wondered what they were about.

fast mica
#

Don't suppose anyone has any resources for porting A2 planes into A3 by any chance?

#

Wanting to port the A2 Harrier into A3, ik I can use CUP but I'd prefer to use a standalone version

fast mica
#

Got guns working but in need of sorting sounds, time to dig some moreee

fast mica
#

eyy got mah sounds

fathom thorn
#

Hi guys. How do I remove the "rearm" action on my vehicle when standing beside it?

strange egret
#

isnt that automatic for every thing that has an inventory?

#

But you can remove the accesspoint for the inventory (or move it so that you can't reach it when standing beside it)

#

in vehicle config class:

    supplyRadius = 2;```
#

default name of supplypoint is something in czenglish

fathom thorn
#

thanks @strange egret

nimble sequoia
#

Fighting with TankX physics. What can cause a tank to flip just by driving over a small bush?! Any clues as to where to look will be welcome.
It seems to happen when just one track runs on the bush - driving over it centrally is ok. The vehicle has no problem in other respects, running over rocks with working suspension, physx LOD, complex gearbox, class wheels and all that jazz.

fathom thorn
#

@nimble sequoia
what does your physX lod look like? I tried to make the physX lods quite a bit higher above ground than the geo lod (keeping it from running into small objects). that helped me keeping my mech from flying around

#

did you look at the tank from the samples and see how that is set up?

#

also, do you use mass cubes? I use them to keep my mech on its feet

nimble sequoia
#

Yes, physX LOD is higher than ground - at same level as under chassis and doesn't include tracks, per recommendations.
Yes, looked at sample tank. I've also made other tanks which do not have the issue, but can't spot the difference.
Yes, I use mass cubes in the Geometry LOD, adjusting CoG to be central and relatively low down.
Thanks for the suggestions. Anything else come to mind?

fathom thorn
#

@nimble sequoia
nah sorry. hope you solve it. these things can drive one nuts

stark gust
#
class RscStandardDisplay;
class RscDisplayLoadMission: RscStandardDisplay
{
    onLoad="['onload',_this,'RscDisplayLoading'] call BRM_CookOff_fnc_RscDisplayLoading";
    onUnload="['onUnload',_this,'RscDisplayLoading'] call BRM_CookOff_fnc_RscDisplayLoading";
};
#

Does not work

#

it fails to load the function

#

    onLoad="[""onLoad"",_this,""RscDisplayLoading"",'Loading'] call     (uinamespace getvariable 'BIS_fnc_initDisplay')";
    onUnload="[""onUnload"",_this,""RscDisplayLoading"",'Loading'] call     (uinamespace getvariable 'BIS_fnc_initDisplay')";

default for refference

stark gust
#

my onload does not load at all :9

jade brook
#

BRM_CookOff_fnc_RscDisplayLoading probably doesn't exist at that point. Also, don't overwrite the vanilla one. You probably break something with that.

#
class RscText;

class RscStandardDisplay;
class RscDisplayLoadMission: RscStandardDisplay {
    class controls {
        class BRM_ScriptDummy: RscText {
            onLoad = "[ctrlParent (_this select 0)] call (uiNamespace getVariable 'BRM_CookOff_fnc_RscDisplayLoading')";
        };
    };
};
#

Also A3_UI_F in requiredAddons.

stark gust
#

function was functions library in the same file. , i'll try

jade brook
#

Yes, but a display might or might not be created before preInit, when the mission namespace is empty.

stark gust
#

Ok the uiNamespace getvariable worked, now it uses my function, thanks. getting logs, now I can find out what's what

#

Don't let the filename fool you. it's just bootleg, I'm trying to make it so that the loadingscreen uses an image from mission file instead of the map. this means I get a fullscreen image from mission like in arma 2

stark gust
stoic lily
#

is AI in vehicle in A3 now capable to switch magazines (say HE/HEAT/Sabot), or does one still have to use config workarounds?

stark gust
stoic lily
#

nope

#

AI can only switch between weapons - not magazines (at least before A3)

fathom thorn
#

Hi guys. I'm having some trouble with a tank. In first person view, I'm able to turn the turret around, but not in 3rd person view.
whats going on here? ๐Ÿ˜ช

#

the camera just rotates around the tank..

fathom thorn
#

Freelook is definately off

fast mica
#

Settings >> game. Double check

#

Settings >> game. Double check

fathom thorn
#

its definately off. it works on other tanks

tardy frigate
dull bolt
#

what value would I put in my animationsources class to make an animation wait a set time before starting?

nimble sequoia
#

animPeriod = x; where x is in seconds
then in model.cfg use minValue to set the start time for the animation movement

#

bear in mind that not all animations will be synchronised in a multiplayer environment though

dull bolt
#

isnt animperiod the duration?

nimble sequoia
#

yes

#

if you set animPeriod = 5, then minValue = 4, maxValue = 5, animation starts at 4s

#

and lasts for 1s

#

I think?

dull bolt
#

alright I'll give it a shot

#

do hide animations have the ability to use animPeriod?

nimble sequoia
#

I think so

dull bolt
#

wondering what to do with the hidevalue

nimble sequoia
#

animPeriod = 5;
minValue = 4;
maxValue = 5;
hideValue = 4;
maybe

dull bolt
#

I was able to get my animations to alternate with ```class Animations
{
class littleredman_hide
{
type ="Hide";
selection ="littleredman";
sourceAddress ="loop";
animPeriod = 0;
source ="time";
minValue = -0.50;
maxValue = 0.50;
unhideValue = -0.50;
hideValue = 0.50;
};

        class littlegreenman_hide
        {
            type            ="Hide";
            selection        ="littlegreenman";
            sourceAddress    ="loop";
            animPeriod         = 0;
            source            ="time";
            minValue         = -0.50;
            maxValue         = 0.50;
            unhideValue     = 0.50;
            hideValue         = -0.50;
        };    
    };``` but trying to extend the duration isn't working too well
untold temple
#

"time" source runs in seconds anyway IIRC

#

source value = time in seconds

#

so increasing maxValue etc. makes it last longer

dull bolt
#

I tried -5 and 5

#

and it wouldn't switch at all

untold temple
#

sure -ve time works ingame?

dull bolt
#

yes

#

the time source works

nimble sequoia
#

try a hideValue very slightly less than the maxValue ie. hideValue = 0.49;

dull bolt
#

the values I posted above work

#

changing them to anything else gives me issues

#

like I tried changing from -0.5 to 0, and 0.5 to 1

#

and nothing happens at all

nimble sequoia
#

because of the loop

dull bolt
#

can I only enter values between -1 and 1 for min and max vaule or something?

nimble sequoia
#

have you tried it with an AnimationSource type 'user' and animPeriod set in config.cpp?

dull bolt
#

well the user would never trigger if I were to use that

nimble sequoia
#

You can use an eventhandler / script to trigger your user animation - just wondered whether it's an issue with using time as a source.

dull bolt
#

Its for a house class, map object

#

so I can't do that

#

I just don't understand why changing the maxvaule and hidevalue from 0.5 to 1 would fuck it up

#

should I throw in a min and maxphase?

#

it appears that the time controller isn't too versatile

#

got it figured out

#
            {
                type            ="Hide";
                selection        ="littleredman_2";
                sourceAddress    ="loop";
                animPeriod         = 0;
                source            ="time";
                minValue         = -1;
                maxValue         = 1;
                minPhase        = 0;
                maxPhase        = 1;
                unhideValue     = 0.5;
                hideValue         = -0.5;        
            };
            class littlegreenman_hide_2
            {
                type            ="Hide";
                selection        ="littlegreenman_2";
                sourceAddress    ="loop";
                animPeriod         = 0;
                source            ="time";
                minValue         = -1;
                maxValue         = 1;
                minPhase        = 0;
                maxPhase        = 1;
                unhideValue     = -0.5;
                hideValue         = 0.5;
            };```
#
            {
                type            ="Hide";
                selection        ="littleredman_2";
                sourceAddress    ="loop";
                animPeriod         = 0;
                source            ="time";
                minValue         = -10;
                maxValue         = 10;
                minPhase        = 0;
                maxPhase        = 1;
                unhideValue     = 0.5;
                hideValue         = -0.5;        
            };
            class littlegreenman_hide_2
            {
                type            ="Hide";
                selection        ="littlegreenman_2";
                sourceAddress    ="loop";
                animPeriod         = 0;
                source            ="time";
                minValue         = -10;
                maxValue         = 10;
                minPhase        = 0;
                maxPhase        = 1;
                unhideValue     = -0.5;
                hideValue         = 0.5;
            };```
#

first example is 1 second interval

#

second is 10 second

inland gulch
#

Are the combat patrol units configured differently in any way? Or is it just their loadouts?

kindred moss
#

there is sample mission in the Arma 3 Samples, which you can get from Steam > Tools, also the question is more for #arma3_scripting
as I can see from the sample mission loadouts are untouched, so it uses default one form units ingame, but actual mission now and sample may differ, I havent played it, but if you can choose loadout kits on mission start or respawn, then its scripted in the mission itself
if not previous answer applies

strange egret
#

is writing macros for rvmats possible? Has anybody already done this to save on tiresome repeating of the same bollocks (esp. paths etc)?
It's totally inefficient to write 3 times almost the same thing: one for standard rvmat, one for damaged rvmat, one for destruct rvmat. When suddenly something changes (e.g. specular value), all 3 rvmats have to be manually edited again.

#

also, when smdi will always be smdi, and all relevant textures are in the same folder, it would help only having to write the path and texture name once, and having a macro do the suffixes automatically
@hard chasm ?

untold temple
#

I don't know that buldozer and binarise would know how to process it

strange egret
#

but pboproject possibly might? I know it can work with #include. But i assume that this is a C thing, and the macro is some arma compiler thing?

#

#include is already very helpfull for rvmat, but it could be better (because if you want more granularity, then you need 2-3 extra files... )

warm skiff
#

Can anyone point me in the right direction here? I am extending a weapon (MK200) so it can use different tracer ammo - works in game and is available in Arsenal - but not when editing loadout in the editor. Whats up with that?

#

This is what I have so far '''class CfgWeapons {
class NATO_LMG_Mk200_F : LMG_Mk200_F {
displayName = "Mk200 LMG (NATO)";
descriptionShort = "Light Machine Gun<br />Caliber: 6.5x39mm";
magazines[] = {"200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer","200Rnd_65x39_cased_Box_Tracer_Red"};
modes[] = {"manual","close","short","medium","far_optic1","far_optic2"};
scope=2;
scopeCurator=2;
};
};'''

untold temple
#

I tried something like #define PATH(folder,filename,type) texture="##folder##/##filename##_##type##.paa" with valid paths for the folder and filename variables, and buldozer can't find the textures. And that's even before using #define in the header for the folder and filename variables

#

might work when rapified for loading the .rvmat with setObjectMaterial, but I'm not sure it'll work in baking the paths in to the .p3d

hard chasm
#

is writing macros for rvmats possible?

of course.

here is the universal rule for macro templates:

#define MACRO(a,b,c)
// write all the things that don't change, then...
varA=a;
varB=b;
varC=c

#

12monkey the above "will not work" <<big big hint

untold temple
#

aye, I'm sure I did it wrong. Was basing it on some config macro I had for generating evals

#

but what he's wanting is a macro that will write a single parameter in the format texture="PATH/FILENAME_SUFFIX.paa";

hard chasm
#

typically as follows:

// top of file
#define PBO_PREFIX my\great\addon

.....
model=PBO_PREFIX\elephant.p3d;

#

sound=PBO_PREFIX\sounds\giraffes.wss;

#

#define MODEL(thing) model=PBO_PREFIX\thing

MODEL(widget);

#

is a catenation operator used where an alphanumeric is actulally two, separate, alphanumerics, one, or both of them being subject to macro exxpansion, where the single alphanumeric would not be seen as a macro at all. thus:

class glassnum // might not be the same as

class glass##num

#

both 'glass' and 'num' are potentially defines of some kind

strange egret
#

so i use \ to indicate that the next line also belongs to the macro?

hard chasm
#

what's marvellous about this stuff is you learn it once. bis have been unable to break it or move goalposts for the past 12 years

#

yes X3

strange egret
#

okay thank you

#

do you happen to have a page handy where i can read more about this?

hard chasm
#

i should, but i don't. i'll think about putting it in the rapify docs

#

there IS a related document i in there which explains exec/eval

strange egret
#

so obviously macros will not work with quote in it. The next question is if we even need quote for most file paths?

#

and if not, why are they in quotes most of the time anyway?

hard chasm
#

you NEVER need quotes for file\paths

#

thing= one two three; // and
thing="one two three"; // are 100% identical to the bis compiler

#

except when ' one' or 'two' or 'three' are macros

strange egret
#

hm ok. I like quotes because the notepad highlighting shows it in different color -> easier to see where special input is required

hard chasm
#

exactly

#

you just described the reason why any half decent decoder will always surround strings with "quotes"

#

but they are not necessary

strange egret
#

and what if i want to retain them but still use a macro in it?

hard chasm
#

you can't. period

#

that is the purpose behind a quote!!!!

strange egret
#

๐Ÿ˜ญ ๐Ÿ’

hard chasm
#

it is explictly used to prevent expansion

strange egret
#

the world is so mean

hard chasm
#

it's a beautiful mechanic. because it's set in concrete and bis cannot break it.

viral rapids
#

๐Ÿ˜‚

strange egret
#

Does the compiler ignore leading spaces? if i write " " FILEPATH ? ๐Ÿ™ƒ

viral rapids
#

Can i punch you?

strange egret
#

if you can reach me ๐Ÿ˜„

viral rapids
#

๐Ÿ˜„

strange egret
#

not going to miss the quotes for rvmats, they always look the same anyway and are not complicated. Main configs are another thing...

hard chasm
#

there's no reason why you would 'miss the quutes' except if you use macros or enums

#

since you're the guy using the macro or enum,, you already know what your'e doing.

#

it has a beautiful, secondary, effect, that IF quotes are missing, it's an immediate heads up that something is diffferent.

strange egret
#

at the time i'm doing it - yes. But present me and future me are two different persons, often with highly varying intelect

hard chasm
#

read last sentence. that's the key to it all.

strange egret
#

if i would use macros in main configs, it only make sense if it was used across everything. So that means all quotes are missing - which makes them not stand out anymore

hard chasm
#

scope=public; and
scope="public";
are not the same thing.

strange egret
#

anyway, lets forget about the quotes.

How am i going to use them efficiently for rvmats? I would have to copy paste the big macro block in every thing, as #include macro does not work

hard chasm
#

of course includes work. how could you think otherwise?

#

#include "my\termplate.h"

strange egret
#

no i mean, #include "somefile with defines.h"

hard chasm
#

impossible. and dumb.

strange egret
#

no not dumb when talking about rvmats

#

i have to rewrite (copy paste) the macro in every file, unless there is a way to define multiple rvmats in a single file?

hard chasm
#

#include "standard_macro"

viral rapids
#

^^

hard chasm
#

#include "glass_macro.h"

#

glass(1);
glass(2);

#

glass(909);

#

this is very very very common for hitpoints on windows in buildings

strange egret
#

i thought #defines are ignored for files loaded with #include?

viral rapids
#

Did the same for the Anims

#define GlassSourceAnim(GLASSNUM)\
class glass_##GLASSNUM##_source{hitpoint = "Glass_##GLASSNUM##_hitpoint";source = "Hit";raw = 1;};```
hard chasm
#

can't imagine why

viral rapids
#

Nah, they work X3

hard chasm
#

it's merged into THE main file

#

#include "\x3\macro_libarary\thing.h"

viral rapids
#

I always imagined an Include like an:
"Copy (include) all the stuff inside file bla.h into the file"

hard chasm
#

yes dscha

viral rapids
#

Like a simple Ctrl+C -> Ctrl+V, but in a single line

hard chasm
#

+1

viral rapids
#

=}

strange egret
#

oh ok i missread something. It said it's illegal to
#define path "incl.hpp"
#include path

hard chasm
#

definate

strange egret
#

and i thought it meant you cant use #define in an #include ๐Ÿคฆ

hard chasm
#

i have 'standard' template macros in p:\mikero\common

#

not one of which are ever ever included in a pbo

strange egret
#

yeah totally makes sense... turns out i shouldnt try to read documentation at 1am - if i instead would have done what i planned, i wouldnt have had any problem

viral rapids
#

๐Ÿ˜„

strange egret
hard chasm
#

it's re-written by vbs so will be accurate

#

also anything you find written by mondkalb will tell the truth

strange egret
#

@scarlet oyster the highest praise ๐Ÿ˜ƒ

hard chasm
#

well, i may have mentioned it before, but the great joy of all this is you learn it once, you learn it forever. bis can't move goalposts on you. They've tried very hard to break it with exec eval but you'll never see them because they're coded out in a config.bin.

strange egret
#

vbs page says that macro in ' signs is evaluated - and also highlighted in text editor. Some good reason not to encapsulate macro calls in it?

hard chasm
#

the correct statement is 'double pound signs'

#

can't imagine why you would not use them in macros or the call to a macro

#

they're diffuculkt to read but easy to under##stand

#

it simply means under and stand are two separate words

strange egret
#

no i mean model='PATH\thing.p3d' vs model=PATH\thing.p3d

hard chasm
#

both are identical and subject to macro expansion

strange egret
#

yes, except top one is highlighted - so i'm happy

hard chasm
#

"rabbit ears" are the only text string that "cannot be detected" for macros

#

intentional, and deliberate

#

'quotes' are used when you don't want the awfulness of """"trying to read this""""

strange egret
#

'''''"''much better'''''"'' ๐Ÿ˜„

#

ok more seriours:
if i define

class textVAL1 { someparameter=VAL2;};```
is it legal/readable when i call the macro like this?
``` STUFF(,25)```
hard chasm
#

no

strange egret
#

thought so.

#

how would i go about declaring that this VAL1 is empty?

hard chasm
#

""

strange egret
#

ok

hard chasm
#

or even unused

#

it's just a name

#

STUFF(ignored,25);

#

STUFF(this is a comment,25);

strange egret
#

err... but shouldnt that lead to class name of "textignored " ? the first case that is

hard chasm
#

VAL1 is not used in your macro above

strange egret
#

oh

hard chasm
#

unless you meant ##VAL1

strange egret
#

that i do

hard chasm
#

then you need common sense

#

garbage in = garbage out

strange egret
#

is what i meant

class text##VAL1## { someparameter=##VAL2##;};```
hard chasm
#

the trailing ##'s aren't necessary

strange egret
#

ok

hard chasm
#

you are splitting an alpha##numeric##this##way

strange egret
#

i need it for this:

uvSource=tex##STAGEUVSRC;```
most of the time actual uv source is just "tex" - rarely is it "tex1". So would when input  UVSRC("")
```tex""```be legal input for uvSource parameter in this case?
hard chasm
#

"" is stripped and becomes nothing

strange egret
#

good

hard chasm
#

and you are making the classic mistake of putting a semicolon at the end of the macro, not, at the end of each MACRO(call);

#

you aren't trying to save typing here, you are trying to make it readable

and

THINGY(one) // no semicoion

looks, smells, and screams as a mistake

#

it's a very bad habit to get into

strange egret
#

then i shall not make it so

hard chasm
#

sadly and badly the macro you wrote, and the way you use it will work. it's a very bad habit to get into;

strange egret
#

easy fix at this stage

hard chasm
#

learn this stuff once, you've learned if forever. Even betterer it's a career path that can be used in everything NOT just bis.

#

even an arduino follows the same rules.

strange egret
#

i consider myself enlightened now

hard chasm
#

result=function(one,two,three);

is universal. php, python, perl, c, c++, c#, arduino, rasberryi Pis, microsoft os.

contrast this with sqf shit.

potent mortar
#

ive converted a ghosthawk into a uav, but when a player controls driver/gunner his first person view camera head pos is in the cockpit seat (since no human model?), what do i have to change in cfg to move the camera to where the head is supposed to be?

potent mortar
#

the typical uav driver hud with pitch alt spd, that camera pos is fine
but when you switch views back to the internal cockpit view then your eyes are in your balls

grand zinc
#

eyeballs? ๐Ÿ˜„ ๐Ÿ˜‚

strange egret
#

you propably need to specify an optic view and forceoptic view via config.

potent mortar
#

driverForceOptics = 0; removes the internal cockpit view entirely so all you have 3rd person and the uav hud
driverForceOptics = 1; gives internal but player eyes in testicles

#

memoryPointDriverOptics = "pos pilot dir"; is the normal view when a real person is inside your eyes are where its supposed to be since i think its going by the player model and not something inherit to the vehicle?

#

how do i change memoryPointDriverOptics to?

#

can you change a mem point on the fly like: ["pos pilot dir", [0,0,2]] to give it z + 2 ?

strange egret
#

you also need to forcehide the driver

#

no you cant change mempoints on the fly

#

if you cant access model you are SOL

potent mortar
#

yeah i cant access the model, guess i am a SOL (Such an Obvious Loser)

strange egret
#

shit outa luck...

potent mortar
#

thanks anyways x3, ill just have to remove internal cam all together

strange egret
#

@hard chasm I'm having some smaller issues with my macro:

  1. i want to write texture="#(argb,8,8,3)color(0.5,0.5,1,1,NOHQ)"; with a macro. Apparently i have trouble with the # character
    i tried #define RVSS_DEF_NOHQ\ class Stage1 {\ texture="#(argb,8,8,3)color(0.5,0.5,1,1,NOHQ)";\ uvSource="tex";\ }
    When i unpack the binned addon and debinarize the rvmat, it says
    texture="(argb,8,8,3)color(0.5,0.5,1,1,NOHQ)";
    in notepad++ it is displayed as https://abload.de/img/2017-07-2913_29_07-p_ycs46.png
    i assume this is not right, because when debinning vanilla rvmats, they show the # properly. I assume it interprets the # as special instruction instead of "use as is"?
  2. when using my RVSS_FRES macro, it always complains about missing semicolon, but i can't find the issue. I guess it's also to do with the texture= line. I'm showing the two macros before and after for context
    RVSS_STAGE(5,##RVPATH,##RVFNAME,smdi,##STAGEUVSRC)
    

#define RVSS_FRES(FRESNEL_N,FRESNEL_K,STAGEUVSRC)\
    class Stage6 {\
        texture='#(ai,64,64,1)fresnel(##FRESNEL_N,##FRESNEL_K)';\
        uvSource=tex##STAGEUVSRC;\
    }
            
#define RVSS_ENV(RVPATH,RVFNAME,STAGEUVSRC)\
    class Stage7 {\
        texture=##RVPATH##\##RVFNAME##_co.paa;\
        uvSource=tex##STAGEUVSRC##;\
        useWorldEnvMap="true";\
    }
            ```
when using it like so:
```RVSS_FRES(4.7,1.2,"");```
it says "Expected Semicolon (or eol)" for this line. When uncommenting this line, it binarizes without issue, so it must be this line/macro
hard chasm
#

i don't think i handle single # correctly.

#

it's a low piority fix for me

strange egret
#

so it's not possible to use single # in any form atm for macro?

hard chasm
#

dunno, i don't think addon breaker will handle it either. you could give it a try.

#

you CAN try this

#define HASH #

#

works for me here with the following output

class Stage6
{
texture = "'#(ai,64,64,1)fresnel(4.7,1.2)'";
uvSource = "tex""""";
};

strange egret
#

in problem 2 it now prompts as error "premature EOF"
in problem 1 no change

#

i think my version is outdated though

hard chasm
#

well your unaltered code above works fine, no errors

#

free tools or subscriber?

strange egret
#

free

hard chasm
#

well i have no plans to fix it

strange egret
#

i see

#

thanks for your help anyway, at least now i know it's not something i fucked up.

hard chasm
#

try addon breaker because, if it works, there's still 'errors' in the output. it's not what you wanted and your use of ## is overkill

#

the ' are embedded in the output, and it looks like you can't pass "" as null

strange egret
#

RVSS_ENV has trailing ## yes, haven't removed them yet

hard chasm
#

the missing semicolon btw, is a bug in the rapify code when it's checking for file references, it's not a fault in the macro parsing. that' s working fine. but the final output is being misinterpreted in the free version.

strange egret
#

guess i need to look at the more elaborate preprocessor commands. the "" as empty input was the path of least resistance.

jade brook
#
texture=##RVPATH##\##RVFNAME##_co.paa;\

should be

texture = RVPATH##\##RVFNAME_co.paa;\
#

## shouldn't be used to glue _, no?

#

And yeah, never seen a preprocessor do this: #define HASH #. Probably doesn't work.

strange egret
#

begs the question why procedural textures are always made with # in front. Is it because magic or is it actually just a preprocessor command to put it in strings? Later would make sense... so maybe i dont even need it and can just put it in regular quotes

grand zinc
#

Probably just a identifier... so.. magic.. magic "number". Because # doesn't appear anywhere in a file path

strange egret
#

@jade brook why should i not glue _ ?

strange egret
#

ok so it of course does not recognize procedural textures without # ....
i guess i'm just going to give those a middle finger then and define my own 2x2px default textures...

scarlet oyster
#

No need to use the # instruction in paths. But you do need it to merge it with other bits.

#

= __MYDEFINE1_\__MYDEFINE2##_co;

#

Works fine in .rvmat for me:

#define __MCPATH__    __FOLDERPATH__\__MODEL__##_mc.tga
#define __ADSPATH__   __FOLDERPATH__\__MODEL__##_adshq.tga```
strange egret
#

@scarlet oyster for textures yes, but not for procedural textures

jade brook
#

hmm, I swear that _ didn't need #. But on the other hand, there are macros that do use underscores in their names. Maybe I was thinking of / and \

scarlet oyster
#

Yeh, proc textures kinda have you by the balls here. :/

strange egret
#

i defined my own 8x8 standard default textures... on drawcalls it will have no impact, provided i use it everywhere, and on gpu memory... well i'm sure 1kB is small enough to be insignificant...

scarlet oyster
#

Yeh, these days it is negligable. Same with the 64,64,1 in fresnel. The fresnel actually only needs the first param to define the range.

#

64,1,1 will be just as fine. And 128,1,1 will actually double the accuracy, but its not noticeable. @balmy sable would know the exact details here.

strange egret
#

have you tried it with 8 in fresnel? I wonder if it maybe produces some funky look that could be utilized for special occasions...

scarlet oyster
#

No, never bothered.

balmy sable
#

The ## in __MODEL__##_... would be so that the preprocessor tokenizer recognises it as __ MODEL __ followed by _mask_co.tga rather than __MODEL___mask_co.tga.

scarlet oyster
#

Did you look into the fresenel function? I always was under the impression only the width param of the pp-tex is relevant to define the available fresnel steps/grades.

balmy sable
#

The engine forces it to be a single row even if you define it as 64,64,1.

#

It wouldn't surprise me if the engine forced it to 64 wide too, but I've never tested that.

#

The shader also always just uses a constant y when sampling it:

39: mov r3.y, l(0.500000)
40: sample_indexable(texture2d)(float,float,float,float) r2.w, r3.xyxx, t6.xyzw, s6

#

And it samples it with linear interpolation so I'd imagine you'd struggle to reduce any remaining error to the level that would even change a pixel value. ๐Ÿ˜‰

#

So if you stick that in a graph plotting application you can play with N and K

scarlet oyster
#

Maybe wolframAlpha fully understands supershader....

strange egret
#

well shit... apparently creating a dt map with pure black alpha doesn't work. Its always converted to dark grey (value 60)

jade brook
#

I wonder if one can escape #
\#

strange egret
#

would defining a string help? #define prefix "#(argb,8,8,1)"

#

but then i would have to combine it
texture = prefix##"color(1,1,1,1,AS)" which i'm not sure if it this then gives a legal proc texture name, or if it processes the # regardless (though if i got mikero yesterday correctly, " always make it ignore stuff. nvm, that doesnt change one bit. Original version was with with # in string as well.

hard chasm
#

// texture = "'#(ai,64,64,1)fresnel(4.7,1.2)'";
#define AI(a,b) (ai,a,b)
#define FRESNEL(a,b,c,d) AI(a,b)fresnel(c,d)

texture=#FRESNEL(64,64,4.7,1.2);

voila

sullen fulcrum
#

how to get units to show up on top of tank? got proxies in OB done.

karmic hazel
#

Hi all! any body able to describe to me why this code is not working and suggest a correction please?

class airbrakeOn
{
displayName= "<t color='#ffff00'>Airbrake ON</t>"; //Yellow
shortcut="SeagullForward";
position="pilotcontrol";
radius=3.6;
onlyForplayer=true;
condition= "player in this and this animationPhase ""airbrake"" > 0.1 and player in this";
statement="airbrakeon = 0; [airbrakeon, this]";

        };
        class airbrakeOff
        {
            displayName= "<t color='#ffff00'>Airbrake OFF</t>"; //Yellow
            shortcut="SeagullForward";
            position="pilotcontrol";
            radius=3.6;
            onlyForplayer=true;
            condition= "player in this and this animationPhase ""airbrake"" < 0.1 and player in this";
            statement="airbrakeon = 1; [airbrakeon, this]";
            
        };
strange egret
#

what is this statement supposed to be /to do?

karmic hazel
#

lower and raise the airbrake under the aircraft

hard chasm
#

[airbrakeon, this]
does nothing, means nothing, it's the leadin to a command
[one,two,three] do_something;

karmic hazel
#

ok

#

so I need something behind that?

hard chasm
#

how would anyone know?

#

[a,b,c] make_spaghetti;

nimble sequoia
#

Do you have an airbrake animation defined in AnimationSources?

hard chasm
#

only you know why and what you pass those values to.

karmic hazel
#

yes

nimble sequoia
#

What's it called?

karmic hazel
#

it works fine in BD tested it earlier

#

airbrake

#

brakes actually

nimble sequoia
#

this animateSource ['brakes', 1]

#

although you called it "airbrake" in the condition

karmic hazel
#

ok, nothing behind it, as mikero suggests

#

getting confused a little

#

got ya

nimble sequoia
#

statement = "this animateSource ['airbrakes', 1];";

karmic hazel
#

ok cool I'll try that, thanks

nimble sequoia
#

Spooky, make sure you get the spelling correct in your condition and statements. It's the AnimationSource class name you want to use.

karmic hazel
#

ok mate cheers

#

unless I've made a mistake, it doesn't seem to work at the moment

nimble sequoia
#

post your condition and statement again, plus describe what is wrong

strange egret
#

you know that this is not going to slow down the aircraft, correct?

nimble sequoia
#

animations only slow down the mod development, true fact

karmic hazel
#

ok, would, connecting it to the flaps configuration slow it down at all?

strange egret
#

you cant

#

animations -> what you see, has nothing to do with how the plane behaves. Plane behaviour can controll animations, but not vice versa

karmic hazel
#

understood, so there is no way I can have it work the same way as a normal left or right flap? Surely there has to be something. At the moment I am concerned for getting the animation correct yes, but creating a drag effect on the aircraft, there has to be something I can do that can connect it with the same effect the flaps have on drag.

#

its just an extra flap really

#

class airbrakeOn
{
displayName= "<t color='#ffff00'>Airbrake ON</t>"; //Yellow
shortcut="SeagullForward";
position="pilotcontrol";
radius=3.6;
onlyForplayer=true;
condition= "player in this and this animationPhase ""brakes"" > 0.1 and player in this";
statement = "this animateSource ['airbrakes', 0];";

        };
        class airbrakeOff
        {
            displayName= "<t color='#ffff00'>Airbrake OFF</t>"; //Yellow
            shortcut="SeagullForward";
            position="pilotcontrol";
            radius=3.6;
            onlyForplayer=true;
            condition= "player in this and this animationPhase ""brakes"" < 0.1 and player in this";
            statement = "this animateSource ['airbrakes', 1];";
            
        };
nimble sequoia
#

In the condition you write "brakes" but in the statement you write "airbrakes".
What is the name of the animationSource class?

karmic hazel
#

brakes

#

that goes in the statement?

strange egret
#

no you can stop right there. If you want to have functionality then userActions is totally wrong approach

karmic hazel
#

@strange egret ok calm it!

nimble sequoia
#

The condition is checking the phase of the airbrakes (on or off), and the statement is setting the phase to either on or off. Both cases it refers to the animationsource class name.

strange egret
#

im saving you time...

karmic hazel
#

ok

strange egret
nimble sequoia
#

class airbrakeOff {
...
condition = "(player in this) and (this animationSourcePhase 'brakes' < 0.1)";
statement = "this animateSource ['brakes', 1];";
};

strange egret
#

use "speedBrake" as animationsource in your model.cfg - thats the closest thing you can get

karmic hazel
#

I was told that there is a button apparently for using an airbrake in the Jets DLc, da12thMonkey suggested waitng until that was released before I try and implement it, hence why I am now attempting something. Atm I just want to get the animation working.

strange egret
#

speedbrake worked before jet dlc as well

karmic hazel
#

ok

strange egret
#

they just possibly want to change (not sure) how to controll it.

#

but that has nothing to do with a plane model or animation

#

as long as you use the speedbrake animationsource it will work eitherway

karmic hazel
#

ok.

strange egret
#

CSAT CAS plane has speedbrake behind the canopy

karmic hazel
#

yeah I thought there was one.

karmic hazel
#

thanks guys, I got it to work using the speedbrake. Is there a way I can control a toggle on it?

#

no worries, I worked it out what to do with the controls. It works just how I'd like it to. You just need to combine the speedbrake and the thrust to keep it open.

#

reall happy with that, you guys saved me some time there.

#

thanks

strange egret
#

see? ๐Ÿ˜‰

karmic hazel
#

never even thought of the speedbrake option, I was concerned for a manual control by the player

warm skiff
#

Why can I do "class LMG_Mk200_F : Rifle_Long_Base_F" and it will show the weapon with CfgMagazines changes, but doing the same with "Test_LMG_Mk200_F : LMG_Mk200" does not do anything? Shouldn't a new class be able to inherit from another existing class? Really stuggling with the logic ๐Ÿ˜ฆ

#

All I want to do is add a second version of the MK200 to the game, why the f is that so complicated

hard chasm
#

Test_LMG_Mk200_F : LMG_Mk200

there's no such thing.
there IS Test_LMG_Mk200_F : LMG_Mk200_F

#

class use_this: inherit_that {....}; is not complicated

warm skiff
#

I had Test_LMG_Mk200_F : LMG_Mk200_F in config.cpp, typo here my bad

#

I do understand how inherit works, I did it with the magazines, it's just the weapon where it's not working as desired

hard chasm
#

there shouldn't be too much mystery to it. it's wyswig, except if you attempt to use array[]+=

strange egret
#

"not working as desired" - very vague...

warm skiff
#

Ok - I'll be less vague, you are right. If I do not create a new class from inheritance and simply add the additional new magazine class it works, if I inherit from weapon and create a new weapon from it it DOES appear inGame, but not in the editor - i.E I have to add it through script, cannot see it in loadout editor

strange egret
#

cfgpatches proper?

warm skiff
hard chasm
#

looks fine here, you should have 3 mag types available (unless one of them is protected/private in the inherited class)

#

NATO_MK200
avoid full upper case. it is screaming at most coders that THIS_IS_A_#define

warm skiff
#

Ok

#

Hm - no idea why the inherited weapon does not appear in loadout editor?

hard chasm
#

because it isn't scope=2 and there's nothing in your config to indicate that it would be.

#

it presumes LMG_Mk200_F is public. that might not be the case.

warm skiff
#

Yes I presumed as well ๐Ÿ˜ƒ Ok - well then I'll have to look into that I guess, thank you both!

nimble sequoia
#

LMG_Mk200_F has scope = 2

hard chasm
#

beats me then, your config is fine. check in the rpt in case it gets mentioned as faulty

#

isn't there some other idiot name bis introduced for arsenals or whatever xxxxScope=

nimble sequoia
#

scopeCurator?

hard chasm
#

yeah that crap

grand zinc
#

scopeArsenal

nimble sequoia
#

yeah scopeCurator is Zeus

hard chasm
#

as if there should be a difference. bah.

warm skiff
#

aaaah!

hard chasm
#

so the goalposts moved from clearly understood private vs public, to sorta_kinda_private vs not_really_public.

warm skiff
#

No luck with adding scopeArsenal = 2. I guess I'l need to figure it out another time why it does not appear in the eden panel

#

the modded weapon does work in-game that is what counts for now

warm skiff
#

Found the issue with the inherited weapon! It seems if I inherit from a vanilla weapon, I need to set the "mod" weapon as baseweapon in it's own config. So I did ยดยดยด baseWeapon = "Nato_LMG_Mk200_F";

#

and now it shows up

fathom thorn
#

Hi guys. how can I disable tank engine sounds?

I've tried setting these to empty strings but I still get the sound (also the sound of tracks moving)

soundEngine[] = {"",1,1};
soundEngineOnInt[] = {"",1.2,1.0};
soundEngineOnExt[] = {"",1.2,1.0,200};

rigid token
#

is there a way to keep an addon from creating a dependency? part of my addon removes the NVG overlay and i think that is what causes it but i think it wouldn't cause any issues if it's not synced so would be cool to avoid the dependency somehow

sullen fulcrum
#

how to get action menu(to enter the vehicle) to show everywhere around vehicle? i ve got it only on one side now

#

memoryPointsGetInGunner = "pos cargo";
memoryPointsGetInGunnerDir = "pos cargo dir";

#

does it have to do something with that

fathom thorn
#

put those points on all sides of the vehicle

sullen fulcrum
#

alright