#arma3_config
1 messages ยท Page 74 of 1
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
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 ?).
thanks a lot.
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.
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
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 ๐
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!
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.
Understood - thanks!
btw why when you inherit the class , the author value isnt inherited which is annoying
#define AUTHOR author="Blah";``` cause macros but I do agree its dumb to write it thousand times in the config
@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.
well then the author unknown is quite famous
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.
again. Why have a macro for something that never changes and is only one line?
easier to write just AUTHOR rather than author=$STR_AUTHOR?
personal preference in the end
Doesn't matter when it's all entered by pressing ctrl+v
ยฏ_(ใ)_/ยฏ
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.
I think no. I read something about that a while back
Thanks Dedmen.
How can I deal with a tracked APC that has:
- an open hatch in front of the driver when turned in (so visible to external viewers)
- a driver turned out position through an overhead hatch (so can't make the interior position 'turned-out')
- 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?
does it have hideproxyincombat = 1; as well?
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.
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
you're testing on dev Branch, yeah?
because AFAIK the viewDriverInExternal parameter is still only on dev at the moment
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.
engine support for it was added July 3rd on dev https://forums.bistudio.com/forums/topic/140837-development-branch-changelog/?do=findComment&comment=3208689, but no mention of it in the 1.72 hotfix, so assume it's just a remnant of transfering data to the hotfix
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?
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
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 ๐
the pts we have is a tank with a visible driver, but it's because he's permanently turned-out
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...
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
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
"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"```
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?
Is it possible to reference config values across classes?
Not like you did, no.
Thanks @kindred moss
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?
There is a list of all animation sources on the wiki. If something is not in there, it most likely does not exist.
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
Thx - was gonna have a look at wiki after work
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"};}
};
};```
@hard chasm ?
after the .paa
y
it is from the recently here posted exile config thingy
reworking arma.studio linter and discovered that
Well. Then it apparently doesn't hurt. but ; are used to end entries/values. Should not appear in the middle of an array entry
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 ๐
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
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)
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
Does anyone know any good tutorials on making scopes?
making - define making.
how to figure out the values or how to config it in principal or what is it that you are after?
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.
"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?
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.
ok. thank you!
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
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
yea I am just looking to hide/unhide an emissive selection
just added them to backLights selection because I didn't find a good source other then time/hour
what about those collision light ones? maybe those are good. no full info on them though
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";
};
hideValue = "0.2";
be careful with quotes for this, it can be misinterpreted as a string
@wise fog rpm is probably so you can't turn the lights on while the engine is off
Makes sense
Say I have a display, and I want it to appear forever. What's the largest number I can put in duration = N;?
I don't know, but 1E6 would mean it's shown for 11 days already.
So 1E6 should be enough already.
Thanks.
radius for userActions is in meters correct? Does it even work?
y
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
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.
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)
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
that might be it
setting it to "pos driverpos" usually works, no?
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?
@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.
ahh ok thanks for the heads up
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.
Probably not.
Although you can lower the muzzle velocity and that would increase scatter too.
I think.
OK - thanks!
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
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
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
Nice! hf
what does the CfgPatches entry fileName = ""; do exactly?
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
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
class CA_Throttle: RscText
{
idc = 205;
...
};
part of RscUnitInfoAirPlane controls[] group
Thanks found it, think i need to update p drive. Think i behind afew versions
Recommend using the AiO config dumps people do, for convenience https://forums.bistudio.com/forums/topic/191737-updated-all-in-one-config-dumps/ rebelvg usually keeps them fairly up-to-date soon after major patches
what could prevent a weapon from being shown in editor?
(the weapon itself when spawned by command is working totally fine)
nvm found it
anybody had anyluck with subitems on helmets ?
Anybody have any idea how the field manual configuration works? Can't seem to find any docs or config entries on it
Disregard last
Disregard last
Well, I posted how it's done in the Bundeswehr mod.
@jade brook Yep yep, thanks. I'll take a look
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?
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.
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
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.
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
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.
and that is the mistery ofc
cfg patches is prebuild and it traverses it (besides the dependecies) alphabetically
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.
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
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.
loading the mod as last in line doesnt help /facepalm
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
it does write chit in rpt, its loaded last allright
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 ?
Found this in ACE: https://github.com/acemod/ACE3/blob/master/addons/fonts/CfgFontFamilies.hpp
But I don't see it used anywhere.
Maybe it's hard coded and you can't add custom fonts?
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
Well if you already implemented two other fonts, then just do the same thing again.
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"
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
Well it can't be the same config, because at least the filenames and the addon name have to change.
yeah I know these tutorial
see the cfgPatches class? That is your addon filename
Why not?
I got a config.cpp where Im including these cfgs and im using a cfgpatches
and a prefix
THe path is correct
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
No , im telling you, thats not the problem, if you want , i can give you the pbo and you will see , thats all fine
I already asked for the PBO
\Folder\Fonts\CrayonHand\CrayonHand6 is your pbo named Folder.pbo?
packing with PboManager
the what, and the why?
wrote it in the same time
Sounds suspiciously like the problem is with CfgPatches.
The font name has to be unique, sure. But so has to be the CfgPatches name.
Im not even sure pbo manager can handle includes and whatnot
If it doesn't then Arma will
Also, is there an error message in the RPT log file?
will look
is pbo manager even updated lately, that thing is very old
try packing with free mikero tools, or addon builder
namely pboProject
I doubt the tool is the problem tbqh.
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
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
aye thanks, used it long time ago, but packing with PboProject now, cause I like the sadistic part of it :p
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?
@grand zinc
There is no config.cpp in A3S_assets.
Wtf are you doing ๐ You are saying that you are adding new Weapons in your CfgPatches
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
im not adding it , I reconfig it
Yeah and
magazines[] = {};
ammo[] = {};
look weird too. Where do these come from?
that is not the fintprobleme
That's what you say, but what if it is?
You shouldn't put the weapon in Cfgpatches if you just modify it afaik. You should put it in there if you add it.
Yep.
If you know exactly what's not the problem why do you need our help then
Good way to break things too.
I put it in , to reconfig some weapons, why its to bad to add ammo[] = {}; ?
Because you shouldn't add config entries willy nilly.
As I said. You shouldn't put that in if you reconfig weapons. Only if you add new ones
class A3S_client {
...stuff
};
};``` and then you have ```
class SitkaText {
fonts[] = {
"\A3S_assets\Fonts\....```
if you cant see it...
I don't see any error here. What is it @kindred moss?
UH
// Required addons, used for setting load order.
Sorry jaska :x typo
dadman
so if i didnt put these pbo in there, my pbo can load first
For some reason Discord recommends you when I type @Ja instead of Jastreb
but that is not the pronblem ๐
the class of cfgPatches says its A3S_client.pbo the path to font is \A3S_assets.... @grand zinc
Hungry, you sound confused.
@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? ^^
That is why we need a RPT file...
there is no probleme with the configs or cfgpatches or what ever...... thanks
I think there is
must be in the .paa files
Disagreed.
RPT file please?
@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
2 of 4 fonts work. So it works partly
isn't roboto already in the game though?
Yes it is.
So you are adding Fonts that the Game already has.
it was taking out
And you know that the Fonts that the Game already has work and the others don't.
robotoblack
Roboto was not taken out of the game. It's the font used in the main menu.
๐ค
I would use roboto
and there was a error
that told me
roboto isnt a font
It would be easier if you test your mods without loading a ton of other addons.
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
The point is something doesn't work and you ask for help but deny every idea we have because "that can't be it"
Who knows which of these originate from your font mod and which are from the other 20 mods.
If you build it for me.
and try to add the font , you will see , it dont work, I can change the roboto to roboto2 and it will work
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
If there is no error in your config why are you asking in #arma3_config ?
If the addon has vanilla weapons in the weapons[] array, then there is at least one error in the config.
yeah thanks commy
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
- retest with only the fonts addon
- upload RPT
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;
I'd say some of your paa's have a size of 1x1
Maybe didnt read it, anyway thanks for your help.
@grand zinc so I need to delete these files ?
I guess. In TFAR I removed all but the highest resolution Font. Because I have no need for most of the small Font sizes
ok , i will try it
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
@grand zinc is there a way , to edit .fxy files ?
yeah, but i want to delete the path to the 1x1 files
Just remove the batch of files that contain the 1x1 files
You can't remove just one file of a batch
anyone have an easy way of packing to .bin?
Arma 3 tools binarize.exe
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?
@grand zinc contain all
There is no "how to binarize" you just binarize
I think it's enough to just drag&drop your config onto binarize
same directory as cpp I guess
doesn't in my case
Just use Addonbuilder to build your pbo. It will automatically binarize your config
i tried that too but Addonbuilder doesn't react to pressing "pack"
i will move to troubleshooting i guess
Anyone knows what's "canHideGunner" parameter do into a CargoTurret class? There is no references at all or undocumented
I think it enables the hatch?
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
That is basically the hatch logic appropriated for the person turret / FFV stuff.
Hmm.. the task is, it may not fire when "in" and get a normal sit position animation and when "out", animate a hatch which will rotate the proxy of the appropiate gunner to turn out and get a stand up position and able to fire.. But I get a stand up position when in and able to fire and, when out able to fire and stand up position
When "in"
https://i.gyazo.com/6fe4370a2065a19489c02e08fd9d66ea.png
When "Out"
https://i.gyazo.com/c763924ce5cf20d4ce5140adc8d28e3f.png
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}};
};
};
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?
No space, no newline.
class blah {
};
wait, I'm learning it as you read ๐
@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?
@jade brook its just a test, i only made a test retexture
It's better to make your own classname and inherit from the Rangefinder of the base game instead.
could you tell me how to reference the base classes?
Yes, wait.
nice
class cfgWeapons
{
class Rangefinder;
class your_pretty_rangefinder : Rangefinder
{
blabla
bla bla
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"rangefinder\rangefinder\data/trigr_co.paa"};
};
};
@sullen fulcrum
can i just choose whatever name i want for your_pretty_rangefinder ?
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.
alright awesome thanks alot so far
You can find these names of the base classes in the config viewer or you google for a config dump of the latest version.
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?)
Well most of them are superfluous, since they would be inherited from the vanilla range finder.
ah ok
Like scope or displayName
Only what you want to change has to be redefined.
The rest is inherited - carried over from Rangefinder
alright nice
@ocean nacelle
https://git.koffeinflummi.de/bwmod-team/bwa3-public/blob/master/bwa3_eagle/CfgVehicles.hpp#L898-927
This is what Bundeswehr does. Maybe it helps you.
@jade brook Will try thank!
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,
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";
};
};
You have to add these entries to your rangefinder and not your config patch class.
Or the vanilla Rangefinder for that matter.
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?
i already tried that but i still got the same "line 25" error after packing with addon builder
the code above looks fine to me.
hm
(other than it being wrong), but its structured ok
lol
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
yeah i guess
hm still got the error when removing the CfgWeapons and my_rangefinder part..
then it's probably not THE config.cpp that's being packed but some other
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?
if thats the config you pasted here in the channel then
Model = "a3\weapons_f\binocular/rangefinder_proxy.p3d"; wth /
๐
:p shhhh
does that really matter?
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
changing \ dont work as expected , anyone who can tell me whats wrong with the code?
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```
hm
are you dead new at this?
yeah man im totally clueless
+1 (good advice)
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
and goats
good luck, and dont freak out now ๐
yvw
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
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
๐
merde... the\path/like\that/works?
indeed
because, for the most part,, it is a direct feed to the windows os
not always, for the most part
piss.... mon dieu , poor Tom
as usual, playing it safe means \always\lower\case;
+1 always
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?
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
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
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
Free tool : https://atom.io/ plus https://atom.io/packages/language-arma-atom
Somewhat free ( nagging sometimes ) https://forums.bistudio.com/forums/topic/155514-poseidon-advanced-text-editor-for-scripts-configs/
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?
configure your function to run postInit?
and make sure it only runs on client machine, other than that this is more #arma3_scripting rather
a initEH can't be configured to run postInit
try to spawn your script in the initEH and sleep for a few seconds
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
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
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".
Not applicable here
You are not calling sleep in the init EH
And actually this effect is just what we need
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
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
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)
What do you want to do.
Words like "init" and "initPost" are thrown around, but not used accurately.
Also this is more of a #arma3_scripting thing, no?
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
So what you want is, that the unit is randomly equipped when placed in the editor and then retains that loadout forever?
Yeah that more or less my plan
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.
Mhh, that sounds like a plan. I'm gonna give it a try. Thank you ^^
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.
Mhhh looks promising. Now I just need to see how I use it xD
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.
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?
Yes and everything, including the saveBlah line.
You already have the script that randomizes the gear, no?
Yes I have
That goes into the then-block
Yeah that I know but what about the saveBlah?
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.
Ahhh nice... Gonna test it..
I've never done this, but I don't see why it wouldn't work like that
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? ๐
hmm, maybe check if the unit has the default loadout and abort the script if it doesn't?
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
Let's hope the loadout is applied before the init eventhandler runs. Yay for race conditions :S
Meh, looks like it doesn't...you think Dedmens idea with the sleep would be an idea?
Ohhh wait, I'm dumb. @quaint elbow@
Huh?
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
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.
Uhh didn't think of that. Nice, thanks once again! xD
anyone know why when i add radar to a certain heli it goes to the copilot instead?
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;
@kindred moss tried driverIsCOmmander and no luck
What's a good armor value for the sides of a wooden ship?
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
Does anyone know where soundEnviron is defined?
@simple trout hitpoint visual = "###"; selections from your hitpoints config are there in the model and sections[] array of the model.cfg?
I found out what it is. addon builder wasn't copying over "extra" rvmats so it could never find the destructive rvmats
thanks though!
Is it bad practice to change stuff in base classes?
mostly yes.
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?
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.
I'll just rephrase the question without obscuring any details (disclaimer: not my code), right now I've this in a mod: https://gist.github.com/Neviothr/2d0721e939f4aa25cc446146469f9682
Thing is, this makes the mod depend on RHS.
I want to remove said dependancy by editing the base class.
Is that possible?
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.
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.
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.
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
I know it's impossible ๐
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.
you could change proxy direction via model.cfg animations...
dont think i ever noticed the turnIn class...
Just a heads up. Not every entry does something in this game.
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.
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
Got guns working but in need of sorting sounds, time to dig some moreee
eyy got mah sounds
Hi guys. How do I remove the "rearm" action on my vehicle when standing beside it?
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
thanks @strange egret
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.
@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
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?
@nimble sequoia
nah sorry. hope you solve it. these things can drive one nuts
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
my onload does not load at all :9
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.
function was functions library in the same file. , i'll try
Yes, but a display might or might not be created before preInit, when the mission namespace is empty.
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
Thanks a bunch again
http://i.imgur.com/gj6uYu4.jpg
is AI in vehicle in A3 now capable to switch magazines (say HE/HEAT/Sabot), or does one still have to use config workarounds?
https://community.bistudio.com/wiki/CfgAmmo_Config_Reference#cost
maybe this is what you are looking for
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..
Freelook is definately off
what value would I put in my animationsources class to make an animation wait a set time before starting?
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
isnt animperiod the duration?
yes
if you set animPeriod = 5, then minValue = 4, maxValue = 5, animation starts at 4s
and lasts for 1s
I think?
I think so
wondering what to do with the hidevalue
animPeriod = 5;
minValue = 4;
maxValue = 5;
hideValue = 4;
maybe
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
"time" source runs in seconds anyway IIRC
source value = time in seconds
so increasing maxValue etc. makes it last longer
sure -ve time works ingame?
try a hideValue very slightly less than the maxValue ie. hideValue = 0.49;
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
because of the loop
can I only enter values between -1 and 1 for min and max vaule or something?
have you tried it with an AnimationSource type 'user' and animPeriod set in config.cpp?
well the user would never trigger if I were to use that
You can use an eventhandler / script to trigger your user animation - just wondered whether it's an issue with using time as a source.
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
Are the combat patrol units configured differently in any way? Or is it just their loadouts?
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
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 ?
I don't know that buldozer and binarise would know how to process it
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... )
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;
};
};'''
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
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
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";
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
so i use \ to indicate that the next line also belongs to the macro?
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
okay thank you
do you happen to have a page handy where i can read more about this?
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
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?
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
hm ok. I like quotes because the notepad highlighting shows it in different color -> easier to see where special input is required
exactly
you just described the reason why any half decent decoder will always surround strings with "quotes"
but they are not necessary
and what if i want to retain them but still use a macro in it?
๐ญ ๐
it is explictly used to prevent expansion
the world is so mean
it's a beautiful mechanic. because it's set in concrete and bis cannot break it.
๐
Does the compiler ignore leading spaces? if i write " " FILEPATH ? ๐
Can i punch you?
if you can reach me ๐
๐
not going to miss the quotes for rvmats, they always look the same anyway and are not complicated. Main configs are another thing...
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.
at the time i'm doing it - yes. But present me and future me are two different persons, often with highly varying intelect
read last sentence. that's the key to it all.
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
scope=public; and
scope="public";
are not the same thing.
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
no i mean, #include "somefile with defines.h"
impossible. and dumb.
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?
#include "standard_macro"
^^
#include "glass_macro.h"
glass(1);
glass(2);
glass(909);
this is very very very common for hitpoints on windows in buildings
i thought #defines are ignored for files loaded with #include?
Did the same for the Anims
#define GlassSourceAnim(GLASSNUM)\
class glass_##GLASSNUM##_source{hitpoint = "Glass_##GLASSNUM##_hitpoint";source = "Hit";raw = 1;};```
can't imagine why
Nah, they work X3
I always imagined an Include like an:
"Copy (include) all the stuff inside file bla.h into the file"
yes dscha
Like a simple Ctrl+C -> Ctrl+V, but in a single line
+1
=}
oh ok i missread something. It said it's illegal to
#define path "incl.hpp"
#include path
definate
and i thought it meant you cant use #define in an #include ๐คฆ
i have 'standard' template macros in p:\mikero\common
not one of which are ever ever included in a pbo
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
๐
@hard chasm this is what i found https://community.bistudio.com/wiki/PreProcessor_Commands https://resources.bisimulations.com/wiki/PreProcessor_Commands , for future ๐ like me
it's re-written by vbs so will be accurate
also anything you find written by mondkalb will tell the truth
@scarlet oyster the highest praise ๐
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.
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?
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
no i mean model='PATH\thing.p3d' vs model=PATH\thing.p3d
both are identical and subject to macro expansion
yes, except top one is highlighted - so i'm happy
"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""""
'''''"''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)```
no
""
ok
err... but shouldnt that lead to class name of "textignored " ? the first case that is
VAL1 is not used in your macro above
oh
unless you meant ##VAL1
that i do
is what i meant
class text##VAL1## { someparameter=##VAL2##;};```
the trailing ##'s aren't necessary
ok
you are splitting an alpha##numeric##this##way
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?
"" is stripped and becomes nothing
good
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
then i shall not make it so
sadly and badly the macro you wrote, and the way you use it will work. it's a very bad habit to get into;
easy fix at this stage
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.
i consider myself enlightened now
result=function(one,two,three);
is universal. php, python, perl, c, c++, c#, arduino, rasberryi Pis, microsoft os.
contrast this with sqf shit.
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?
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
eyeballs? ๐ ๐
you propably need to specify an optic view and forceoptic view via config.
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 ?
you also need to forcehide the driver
no you cant change mempoints on the fly
if you cant access model you are SOL
yeah i cant access the model, guess i am a SOL (Such an Obvious Loser)
shit outa luck...
thanks anyways x3, ill just have to remove internal cam all together
@hard chasm I'm having some smaller issues with my macro:
- 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"? - 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
so it's not possible to use single # in any form atm for macro?
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""""";
};
in problem 2 it now prompts as error "premature EOF"
in problem 1 no change
i think my version is outdated though
free
well i have no plans to fix it
i see
thanks for your help anyway, at least now i know it's not something i fucked up.
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
RVSS_ENV has trailing ## yes, haven't removed them yet
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.
guess i need to look at the more elaborate preprocessor commands. the "" as empty input was the path of least resistance.
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.
https://community.bistudio.com/wiki/PreProcessor_Commands#.23
so # actually is an instruction.
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
Probably just a identifier... so.. magic.. magic "number". Because # doesn't appear anywhere in a file path
@jade brook why should i not glue _ ?
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...
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```
@scarlet oyster for textures yes, but not for procedural textures
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 \
Yeh, proc textures kinda have you by the balls here. :/
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...
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.
have you tried it with 8 in fresnel? I wonder if it maybe produces some funky look that could be utilized for special occasions...
No, never bothered.
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.
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.
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. ๐
The fresnel function mentioned here:
https://community.bistudio.com/wiki/Super_shader
Is 100% identical to what's actually used in the super shader.
So if you stick that in a graph plotting application you can play with N and K
Maybe wolframAlpha fully understands supershader....
well shit... apparently creating a dt map with pure black alpha doesn't work. Its always converted to dark grey (value 60)
I wonder if one can escape #
\#
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.
applying detail map with 50% everything (which should not be visible) creates weirdo lines
https://youtu.be/0c0syU4XL5M
// 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
how to get units to show up on top of tank? got proxies in OB done.
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]";
};
what is this statement supposed to be /to do?
lower and raise the airbrake under the aircraft
[airbrakeon, this]
does nothing, means nothing, it's the leadin to a command
[one,two,three] do_something;
Do you have an airbrake animation defined in AnimationSources?
only you know why and what you pass those values to.
yes
What's it called?
this animateSource ['brakes', 1]
although you called it "airbrake" in the condition
statement = "this animateSource ['airbrakes', 1];";
ok cool I'll try that, thanks
Spooky, make sure you get the spelling correct in your condition and statements. It's the AnimationSource class name you want to use.
post your condition and statement again, plus describe what is wrong
you know that this is not going to slow down the aircraft, correct?
animations only slow down the mod development, true fact
ok, would, connecting it to the flaps configuration slow it down at all?
you cant
animations -> what you see, has nothing to do with how the plane behaves. Plane behaviour can controll animations, but not vice versa
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];";
};
In the condition you write "brakes" but in the statement you write "airbrakes".
What is the name of the animationSource class?
no you can stop right there. If you want to have functionality then userActions is totally wrong approach
@strange egret ok calm it!
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.
im saving you time...
ok
these are the animationsources available, which are tied to gameplay functionality
https://community.bistudio.com/wiki/Model_Config#Animation_types
class airbrakeOff {
...
condition = "(player in this) and (this animationSourcePhase 'brakes' < 0.1)";
statement = "this animateSource ['brakes', 1];";
};
use "speedBrake" as animationsource in your model.cfg - thats the closest thing you can get
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.
speedbrake worked before jet dlc as well
ok
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
ok.
CSAT CAS plane has speedbrake behind the canopy
yeah I thought there was one.
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
see? ๐
never even thought of the speedbrake option, I was concerned for a manual control by the player
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
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
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
there shouldn't be too much mystery to it. it's wyswig, except if you attempt to use array[]+=
"not working as desired" - very vague...
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
cfgpatches proper?
Not sure - tbh first time I've ever attempted something like that. https://pastebin.com/B5EUArds
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
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.
Yes I presumed as well ๐ Ok - well then I'll have to look into that I guess, thank you both!
LMG_Mk200_F has scope = 2
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=
scopeCurator?
yeah that crap
scopeArsenal
yeah scopeCurator is Zeus
as if there should be a difference. bah.
aaaah!
so the goalposts moved from clearly understood private vs public, to sorta_kinda_private vs not_really_public.
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
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
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};
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
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
put those points on all sides of the vehicle
alright