#arma3_tools

1 messages Β· Page 35 of 1

vague shard
#

nah. it seems to ask always for more regardless what you offer

#

anyhow does binarize still use a temp folder, or is the date check done differently now?

#

-always binarize even if not necessary based on timestamps

#

cant see any temp folder read/written via procmon

#

in the past it was p:\temp\YOURTAG

rancid relic
#

@vague shard hm, I noticed it's now rebinarizing everything regardless if p3d was changed or not

#

perhaps something is broken. is it working for you?

vague shard
#

i am still testing, but yeah it seems even without -always it seems to rebin all
that said i dont have past experience using binarize directly. was always going via pboproject

rancid relic
#

hm, seems description of -always is bit misleading

#

in code it seems to be more for texture conversion

vague shard
#

i see πŸ™‚

vague shard
#

10:12:11: Cannot read registry HKEY_LOCAL_MACHINE/Software\BIStudio\BinMake

#

when running binarize64 with a wrp

#

the actual one is

HKEY_CURRENT_USER\Software\bohemia interactive\binmake

#

seems they forgot to update the reg path?

vague shard
#

10:47:30: Creating process: "C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\BinMakebinMake.exe" -C P:\ "a3\data_f\penetration\wood.bisurf" "p:\temp\a3\data_f\penetration\wood.bisurf"
10:47:30: Cannot run binMake.exe. Error 2: The system cannot find the file specified.
(aka path needs trailing slash - unlike to current binmake definition in HKEY_C_U)

scenic canopy
#

Perhaps use proper path functions instead of string concatenation πŸ˜›

dawn palm
#

-always binarize even if not necessary based on timestamps
binarise itself does not check datestamps for assets it does not binarise itself. instead, it relies on the externally invoked tool itself (cfgConvert for rvmats eg) to honor that option. Why you would invoke a tool 1,000 times for 1,000 rvmats only for that tool to discover it wasn't needed 1,000 times is an odd way of coding.

the option itself is/was only relevant for the 64 bit version. The 32 bit version looks at the wrong filedate in the file (there
are four of them) and almost inevitably gets it wrong. With the wrong filedate check, you get both scenarios btw. You get a file that's always binarised no-matter-what, and files that are never binarised, no-matter-what. So, if you're tearing your hair out why your texture hasn't changed no matter how many times you re-pack it. take a guess.

in any case the wrong registry (hkcu) is used, being a throwback to arma2 registry settings, an since these tools, ignore all errors, you end up with plain jane rvmat files (eg) in your pbo because it wasn't binarised at all.

in addition to above, these external tools, (chiefly rapiefiers and png convertors) are invoked via binmakeRules.txt,. which, more often than not, points to the O:\ drive, not P: because that's the drive that is/was used by vbs

#

and yes, the missing \ in the registry setting is, again, an old arma 2 mistake

#

the temp folder has nothing to do with binarise, it is a function of the calling program where to dump output files

#

because of this, pboProject does not allow bis binarise to get anywhere near these files, and prevents it from looking anywhere else on the workspace:\ drive\folder\project. Left to itself it will wander over the entire drive, and crash if ANY file it finds (and should NOT look at anyway) is faulty.

sly skiff
#

@vague shard bit of offtopic but thanks for reminding me to add those BiStudio\Binmake reg entries after new system install.

dawn palm
#

remind yourself to alter bimmakerules.txt too.

sly skiff
#

what do I want to remember to update there? @dawn palm

dawn palm
#

one out of four tools updates, sets binmakerules.txt to use the O:\ drive

sly skiff
#

Seems like I dodged that bullet

dawn palm
#

(notice also that it's trying to re-binarise)

#

perversely, if you don't fix above, your crunching will happen faster because pboProject has already made them (when appropriate)

sly skiff
#

🀿

#

fun stuff in Armaland

#

though packing is so fast now anyway I cant see any difference xP

vague shard
#

LongLat - position of the server

#

did BI break this in A3/with Steam?

#

this used to work with A2:OA, didnt it?

#

pretty sure to remember that Suma/Ondrej implemented this, was asking for feedback and even gave an override option via server.cfg if i am not mistaken

glossy inlet
#

I saw it back in a2 but never knew what it was for, couldn't see that it ever did anything

narrow bough
#

possibly some steamworks thing that was never implemented. i do recall seeing those (latitude/longitude) in a server.cfg guide someplace

#

steam used to have a filter option in the server browser to filter by region, I guess it could be related to that.

#

need to poke Dwarden, he added the Steamworks stuff to the wiki so would know more.

vague shard
narrow bough
#

yeah, iirc the server autofills them.

#

at least in A2 it did

vague shard
#

@karmic niche ^

narrow bough
#

I don't know if they are still used for anything in A3, the steam and arma 3 launcher both work off of steam master-list and ping.

#

could be a lgeacy item nobody touches because it just works πŸ™‚

karmic niche
#

In practice, these values are set to (-2147483648, -2147483648) for 97% of the servers. Some servers seem to have set it correctly, for some reason, but it's really a small small minority. I checked this 5 minutes ago.
@vague shard @narrow bough

smoky halo
#

I set our ones by hand. I seem to recall there is an icon in the server listing that gives a country flag for its location, I have seen such a thing and it being wrong at some point in the past. No idea if any of that is still the case.

neon flax
#

Where do you set it in A3, server cfg?

scenic canopy
#

arma3.cfg, so machine config

#
serverLatitude=52;
serverLongitudeAuto=0;
serverLatitudeAuto=52;
#

same file as network config

vague shard
#

the country/language server flag could be based on the Long+Lat values

scenic canopy
#

correct

#

some might do their own IP lookup though

plush shard
#

when I remember correctly - that long/lat stuff was implemented and used during the rise of the dayz-mod
I think it was used with the gamespy query to limit the returned servers to those located near the querying client, i.e. the server browser query contained something like client-long - X < server-long < client-long +X , and same for lat

glossy inlet
#

makes sense considering dayz servers used server-local-time ingame

vague shard
#

would be useful to have the info sent through STEAMWORKSquery as there is already a field for it (and some other unused ones)

plush shard
#

BI was using some subscription based IP-location-service - I would expect that the lookup was removed / the subscription has ended already a long time ago

vague shard
#

you could still expose the information for community tools and services

narrow bough
#

values are set to (-2147483648, -2147483648) for 97% of the servers. Some servers seem to have set it correctly
those are int32 min values, so I guess something is not working as intended given it appears to work on some servers - perhaps manually set values.
if it's not working for 100% of servers then exposing it for any tool/service would end up with the majority of servers country-less and relying on ping, as they do now.

karmic niche
#

What 4d4a5852 means is that there is probably no information to expose because that information relied on a subscription-based service that ended and is not available anymore

vague shard
#

the tech allowed to set yourself the long-lat as server admin

scenic canopy
#

which the remaining 3% probably did πŸ™‚

karmic niche
#

Don't quote me on those 97%, I just looked at what the console barfed and concluded that it looks like more than 95% πŸ˜›

scenic canopy
#

doesn't sound unreasonable as it's part of the example cfg and some might set it

vague shard
#

is it known in what order the arma preprocessor processes the different prerproc commands?

sick verge
#

Top to bottom I'd assume. Do you have clues for a different behavior? πŸ€”

vague shard
#

what order do you refer to? the BIKI page?

#

does someone has also issues with mikero tools since recent updates?
for one of our members makepbo no longer processes all folders - without any error

the other thing is the building became way way slower. i suspect this is due to it doing always file ref checks now

sick verge
#

No simply the order they occur in the file

#

I don't think there is any precedence going on in the preprocessor

vague shard
#

this would mean stuff in includes wont get processed, right?

onyx helm
#

Has anyone seen the "Encountered an improper argument" error on Object Builder before? I dont know whats caused it and I've done nothing to change my install between now and when it last worked a few days ago.

onyx helm
#

Okay, if anyone else runs into the above, it was related to using the Direct3D Renderer in OB. I had it set to be enabled by default. Disabling that resolved my issue.

sick verge
#

@vague shard of course it gets processed. Include basically works as "copy the whole content of that file and replace the include statement with it". And then it proceeds processing the included stuff...

#

If included stuff wouldn't be processed, then including a file with macro definitions wouldn't work

#

The important part in an include is that the preprocessor is "pointing" at the beginning of the included material and not the end

vague shard
#

@sick verge my point was your statement was incorrect

#

includes must be processed first

sick verge
#

No

#

They are processed when encountered

#

Why would they have to be processed first? πŸ€”

vague shard
#

#define STUFF X
#include file.x
//file.x
STUFF

#

what does the RV engine return?

sick verge
#

Empty line followed by a line with X

vague shard
#

so after some reading i think to understand this is how it works (havent found the exact description tho):

  1. it scans line by line
  2. if it finds a macro definition/define, it will store it in some mapping
  3. when a new line is read, it checks for matching macro in the mapping and applies a macro if there is a match
  4. if an include is encountered, it first "merges" the content if that file and then continues to go line by line and applies macro mappings

now 4 may first also look in the macro mapping for a replacement as in C one can do
#define filename "test.txt"
#include filename

#

how exactly a macro match inside a macro gets processed i am not sure, but it does happen somehow

sick verge
#

The expansion of macros happens iteratively. If a macro is encountered, the body of that macro (its definition) is processed in the same way and if there's another match for a macro it expands that one and so on

#

What happens with your example of including a file defined in a macro, I actually don't know πŸ€”

sick verge
#

Yeah that's C. But the Arma preprocessor is not the C preprocessor. So dunno how Arma handles it 🀷

nocturne basin
#

The trick you listed there i have used in the past to make "generic lists" in C πŸ˜„

#

though ... should be checked what happens with the arma preproc

#
#define TEST foo
#define TEST_EXEC TEST
TEST_EXEC
#undef TEST
#define TEST TEXT_EXEC##bar
TEST_EXEC

if this yields foo in arma, the preproc should handle everything from top to bottom

dawn palm
#

neither convertFilechange, nor my tools iterate a macro thru the filename.h. reason being a leading " or < is assumed to be part of the formalised syntax before macro expansion can take place.

#

#include "anything.... // immediately prevents macro expansion

#

but I do accept it is in fact wrong, as outlined by Raven & Q

nocturne basin
#

Order of execution is still interesting
the above would yield bar with GCC for example



bar


bar```
#

SQF-VM would yield:



foo


TEXT_EXECbar```
#

Arma: good question, not installed RN

#

Mikeros Tools: See reason why no Arma result

dawn palm
#

I will fix my code to accept the following:

#define oranges "apples.h"

#include oranges```
sick verge
#

Well is this actually a fix? Or is it just some special behavior that Arma doesn't also support? In my preprocessor I took the same approach as Mikero, but I too don't know if that's how Arma dies it ^^

nocturne basin
#

time to test it

split stratus
#

Having an issue with makepbo, cant figure out what’s causing it. makepbo failed: DLL unknown throw error

#

I’m using the latest version, some of my pbo’s pack, a couple don’t.

scenic canopy
#

I'd guess your depbo version (or some of the other dependencies) are not in sync

dawn palm
#

@split stratus
fixed. It was caused when you have a file of zero content. Perfectly legal to have that, my previous update suffered from fat fingerz.

dawn palm
#

Well is this actually a fix?
@sick verge Yes. I don't let bis binarise anywhere near paramfiles, nor do i let plain jane text hit the engine when there's a binarised equivalent. If you're using my tools you are, more-often-than-not, unaware of the difference. Binarise can't handle exec/eval arrays, crashes on trailing commas in arrays, gets upset with spurious semicolons, can't handle #ifndef inside a #ifdef, makes a mess of the += operator....... it's a rather long list, and all are transparent to the user.

split stratus
#

Thanks Mikero, didnt think I had files with no content. πŸ€·β€β™€οΈ

sick verge
#

Fair enough ^^

elfin oxide
#

Arma does not support defines for includes.

#

The #include command does not unpack nested preprocessor commands first. It expects the argument to be <> or "". Unless it's something like that it will fail

#

Telling you "could not find file DEFINE_NAME"

vague shard
#

whats the best place for armake support these days? ACE slack or a different place?

glossy inlet
#

ace slack tools channel

#

but that's mainly hemtt support now

vague shard
#

well HEMTT have their own discord now, but they dont maintain armake, do they?

glossy inlet
#

don't think so

vague shard
#

and was armake to work with wrp/terrains, and support appId parameter for binarize?

glossy inlet
#

armake 1 clone in c++ with more implementation for model binarization

#

afaik it never did anything wrp, besides calling Arma 3 tools binarize on it

vague shard
#

i see

#

one has to manually move data into temp to work

glossy inlet
#

Not sure if I'll be involved in tools dev. If yes then we might get that fixed, and get a parameter to set appid
But I'd say probably end of the year or so

#

Mh

#

How about a binarize "mod" ?

#

a addon to binarize that fixes issues like the above, and adds appid support and such?

vague shard
#

alright. ive reached out to BI to advise how to run BI binarize "correctly"

glossy inlet
#

that would be easier than trying to rewrite all of it in armake style

vague shard
#

AddonBuilder doesnt seem to support appId either. hence one has to call binarize directly

glossy inlet
#

I don't care much about AddonBreaker, since pboProject is a thing.

vague shard
#

no longer working

#

and older version does neither

#

so i am looking for alternatives

glossy inlet
#

filename in first/last line of that screenshot btw
already told mikero about it?

vague shard
#

it seems to take old/wrong parameters from registry, but couldnt find it

glossy inlet
#

use procmon, it'll tell you exactly which registry entries it accesses

vague shard
#

good idea. worth a try

dawn palm
#

well the above screen shot says it all. my tools will no longer accept -N wyswig mode where no error checking occurs, and now insists on file reference checks for similar reasons (half the features of pbo packing like rebuilding req addons, ensuring land classes are baked into the wrp, matching model.cfg's agianst their p3d, rely on it). And not have proper datestamps and version numbers for arma3 is a no-no. Arma2 you could get away with it, for A3, and especially dlc iD's you're in instant trouble.

#

my tools embed a watermark in the pbo, which, essentially says, this pbo got the green light. So lack of proper error check is not going to happen. Especially since it spends around 25% of it's processing crunch checking that binarise actually made the p3d and wrp correctly. It should no longer surprise you that around 10% of p3ds made by binarise are actually broken (most of the faults are silently corrected). The figure for wrp is higher.

as for broken pipelines. very few large teams (generally using python as their base) have rarely, if ever had and issue. But when you bend the rules to breaking point, that's exactly what happens.

vague shard
#

we use pboproject for initial binarization. so all checking active

#

however we store binarized p3d and wrp separately to allow fast repacking

#

this is no longer possible

#

among compatibility pbos from other namespaces

#

so if you are to support only very narrow usage and dont allow flexibility, so be it

#

and you can be sure that all large teams have issues with this very restrictive and inflexible approach

#

most teams to use old versions as long as possible is a testament to that

#

anyhow the param call seems hardcoded
"10:36:10.5121987 AM","pboProject.exe","13428","Process Create","C:\Windows\system32\cmd.exe","SUCCESS","PID: 13412, Command line: C:\Windows\system32\cmd.exe /c ""echo ""MakePbo.exe ""-PsgD"" ""-X=thumbs.db,*.txt,*.h,*.dep,*.cpp,*.bak,*.png,*.log,*.pew, *.hpp,source"" ""-@=WW2\TerrainsWW2_Jegor\Oderbruch_w_Source"" ""P:\temp\WW2\TerrainsWW2_Jegor\Oderbruch_w_Source"" ""T:\addons\Addons"""" >>""P:\temp\Oderbruch_w_Source.packing.log"""""

#

so not even our fault

scenic canopy
#

@vague shard you need to provide config path etc if they are stored separately. See pboproject GUI settings

#

We had some issues with that initially for the sfp worlds

vague shard
#

i tried various combos

#

however also had issues with several commands not working from command line stated in the doc. so dunno

dawn palm
#

which has nothing to do with dahlgren's comment, and is covered in the documentation. you need to specify where the wrp config.cpp actually is in $pboPrefix$.txt (when it's not adjacent to the wrp). you can also do it on a per pbo basis via the setup panel, or by command line. but most folks find that tedious.

#

the above prevents bis binarise wandering all over your hard drive in a desperate hunt for land classes (and generally crashing)

#

So it too is very restrictive and inflexible but explained well enough why it needs to be like that, in the docs. Get used to the fact that it's not a free for all where you can do it your way.

dawn palm
#

lack of datestamps has gone. it and the version number are required for appID. That's not my rules, that's bis, if that too is inflexible get used to it, you should be using proper tools like tortoise svn to check your source code hasn't altered. Expecting my output to never change is saying I can't re-order the files in a pbo to make them load faster, or shrink the pbo by a several hundred bytes with better algorithms for fear of upsetting you.

fickle void
#

Trying to build a project with armake, it appears to build and sign correctly, but my client complains about one of the pbos only not being signed. any hints as to where to look for the problem? We have 8 pbos, only this one complains (its the mission one with sqm).

dawn palm
#

as far as i am aware bis still have to fix a problem they're having with signed files.

cinder meteor
#

@fickle void what if you try to build with BI's addon builder manually and see if it makes any difference?

fickle void
#

yeah can do, trying to see if i am missing something

#

afaik signing shouldn't matter the file contents right?

#

so if it works for 7/8 files i don't understand something

glossy inlet
#

the new signatures do check some contents

#

there was a recent bug with armake/hemtt concerning signing

dawn palm
#

if the 20byte sha is faulty at the end of the pbo it will only make it apparent when loaded in game.

fickle void
#

arg 😦

#

kk thanks

glossy inlet
#

it was fixed in latest hemtt, not sure if armake got the fix too, armake is in a half-abandoned state yet again

fickle void
#

any tool that is standalone (i.e. build just from our content) that works currently? that i can use on CI?

glossy inlet
#

armake 1 and make old version signatures? ^^

fickle void
#

hemtt didn't work for me as it wouldn't build our mission pbo sadly!

#

hmm okay if i can work out how, i didn't see a version setting

#

thanks

glossy inlet
#

have you checked on the hemtt discord? maybe that'll get fixed

fickle void
#

yeah not hearing anything from them, it also seems abandonned..

neon flax
#

wut

fickle void
#

or at least not in a rush

glossy inlet
#

hemtt seems very active to me

#

atleast weekly talk about it in ace slack

dawn palm
#

i am unaware of pboProject having any issues with this. none have been reported, and all it does, is use the standard dssignfile. so you might try that manually.

low gyro
#

HEMTT's GitHub is updated almost every week too, doesn't look inactive at all

glossy inlet
#

but standard dssignfile on CI might be prob

fickle void
#

i will have a look thanks

#

oh

dawn palm
#

pboPro uses cmd line

glossy inlet
#

does pboPro have its own implementation for V2 signatures?

dawn palm
#

no

#

dsBlah, all the way

fickle void
#

i thought it needed P: or something, there was some reason why it couldn't work easily on CI setup

scenic canopy
#

@fickle void armake 1 or 2?

fickle void
#

pboProject

cinder meteor
#

dssign does not need P drive nvm you meant pboproject

fickle void
#

i didn't use it

dawn palm
#

I am not suggesting you use my tools. i am saying dsSignfile can be used

fickle void
#

oh okay thanks

glossy inlet
#

I'm building TFAR on CI with pboProject.
I just set pdrive path to C: and put the files there, works fine

scenic canopy
#

dssignfile works fine yeah

fickle void
#

yeah it worked woo! thanks for the help

rancid anvil
#

Okay I need your peeps help with some ideas for a GUI's design, I've been tinkering around with making a KP Lib gui preset builder for quite a while now but I've been having problems with coming up with a nice and intuitive design for the Blufor preset part of it.
So the blufor presets have arrays in this style:

    ["B_Soldier_GL_F",25,0,0],                                          // Grenadier
    ["B_soldier_AR_F",25,0,0],                                          // Autorifleman
    ["B_HeavyGunner_F",35,0,0],                                         // Heavygunner
    ["B_soldier_M_F",30,0,0],                                           // Marksman
    ["B_Sharpshooter_F",40,0,0],                                        // Sharpshooter
    ["B_soldier_AT_F",50,10,0],                                         // AT Specialist

With the Syntax being:
["vehicle_classname",supplies cost,ammunition cost,fuel cost],
And I just cant figure out a good GUI for this, What I've been playing around with until now is a first Window which has text boxes that the user enters the classnames into
(something like this, ignore that its the one for opfor :http://prntscr.com/qxl26d )
and then I've been thinking of making a second window open up which grabs the entered classnames box by box and lets the user enter the costs
(something like this, very early mock-up: http://prntscr.com/qxl2q9 )
but I dont know how intuitive this is for the user and after some testing around with it I havent quite gotten it to work yet.
Any chance that anyone has an opinion to share on wether this is somewhat intuitive for the user and/or has an idea on a better way of doing it?

#

also sorry for the big message

neon flax
#

Imho it would be easiest to do it as some js based webpage with either vue or react.

scenic canopy
#

or break the files into smaller ones in the SQF source πŸ˜›

neon flax
#

No, users are having a trouble with finding more than one config file. We don't need more. :D

rancid anvil
#

Imho it would be easiest to do it as some js based webpage with either vue or react.
I've been doing java for about a year now, I dont think I'm at the stage of hosting a webpage yet nor do I have the money for it heh @neon flax

neon flax
#

Webpages can be hosted for free these days

#

Especially no backend static, js only ones :P

rancid anvil
#

Gonna take a look at that then bongocat

low gyro
#

Maybe something like that: https://i.imgur.com/vLvraqp.png
Where you have all your vehicles and you can bulk select them, then you add some sort of add button somewhere you anchor it and the bottom of the window but don't make it move with the list?

#

And ofc add a search option

rancid anvil
#

Hm yeah something like that could work if I go with the Webpage idea

low gyro
#

(you could even do it in Arma πŸ™‚ )

rancid anvil
low gyro
#

But yeah, I think it would be the best method, and I've seen that you have different categoires of vehicles so add a little tab on the top for these. User shouldn't feel too lost like that

rancid anvil
#

hm yeah

tawny island
#

just create a github repo, make it a github.io page and you can a HTML/CSS/JS site for free

scenic canopy
#

use github actions to get free webpack builder into separate github pages branch

neon flax
#

Or netlify

glossy inlet
#

@rancid anvil

I've been doing java for about a year now, I dont think I'm at the stage of hosting a webpage yet nor do I have the money for it
If you want I can give you a arma3.io subdomain and some webspace for it. A small js thingy shouldn't be a problem for my servers

just create a github repo, make it a github.io page and you can a HTML/CSS/JS site for free
and that. Then you also get the easy route of having others potentially help you

rancid anvil
#

I have some other projects I want to finish first but I'll make sure to look into GitHub.io

dawn palm
#

pboProject update:

fat fingerz caused an error attempting to makepbo. Important fix available with version 2.68

mea culpa. apologies. (credit Dahlgren)

sly skiff
#

thanks for the fix

fickle void
#

I have a question about intercept: Does it get broken by arma updates? The documentation I have read so far doesn't really mention this, but it seems like it would be easily broken when the exe is recompiled, and not fixed until someone rediscovers the memory patterns. Also of course function call signatures themselves could change also breaking the specific functions until both intercept and the clients code is updated.

glossy inlet
#

it could potentially get broken yes

#

But the last version of my core build was pushed on 4th may last year. so.. Intercept core rarely gets broken

fickle void
#

I really really want to use it

glossy inlet
#

last breakage was when BI added script caching, but that only broke my debugger/profiler/SQF-Assembly because they are so in-depth

fickle void
#

So core has never broken?

#

Or it broke may last year?

glossy inlet
#

I'll check what the cause for the last update was

fickle void
#

Ideally I would like to rebuild a large portion of our SQF logic in C++ cos its too slow atm

#

But I can't end up in the position where its all wasted because intercept is broken beyond repair, or for a month or whatever

glossy inlet
#

may last year was API version update because I added support for compound types

#

last build marked as fix was december 2018, because 1.86 update broke something

#

actually no, 1.86 broke something, that was unused anyway, just forgot to comment that stuff out in the prior release

fickle void
#

my main concern is that it can be broken beyond repair, or that fixing can be a massive job

glossy inlet
#

core basically never breaks.
Plugins sometimes do, but recompiling these is easy for you. Just need to update the submodule to get the fixes

#

You know A3 development has largely been wound down?

fickle void
#

yeah that is somewhat reassuring

glossy inlet
#

And I will know of API breaking changes beforehand, so I should be able to fix intercept accordingly

#

intercept breaking isn't really a concern I'd say, I'll be able to fix anything within a day or two.. if i have free time and will

fickle void
#

cool okay well i will use it just for a simple case to start with, i want to write our saves outside of vars file and not to sql, just to files

glossy inlet
#

intercept-database πŸ‘€

fickle void
#

I'll be able to fix anything within a day or two.. if i have free time and will
Question is if you don't, will i be able to

glossy inlet
#

Probably not

fickle void
#

Thanks for the vote of confidence!

#

Why not?

glossy inlet
#

ofc depends on the kind of issue, the recent script caching thing. I assume no.
Some changed syntax on a script command, thats easy AF

fickle void
#

You need insider knowledge to do this?

glossy inlet
elfin oxide
#

@glossy inlet then pay :)

nocturne basin
#

Or
Use discord

glossy inlet
#

or use slarck

elfin oxide
#

Or use IRC Kappa

native kiln
#

you guys dont use FAX?

tawny island
#

I just talk to people...

elfin oxide
#

Ewwww ... get out πŸšͺ

dawn palm
#

@fickle void , if you look at @glossy inlet 's professional attitude to his tools, and his consistent record of maintaining them, i don't think you have a worry in the world about him dropping the ball. The history of sqf is littered with corpses of shiny new tools appearing for a few months, then it all gets too difficult and the author runs away screaming, or simply gets bored. Chalk and Cheese. As for bis, they are unable to break the core constructs of sqf (or configs) because they'd actually notice it no longer works.

glossy inlet
#

mh

#

┬─┬ γƒŽ( γ‚œ-γ‚œγƒŽ)

wicked oak
#

Just built my first addon using pboProject... i can agree with the sense of humour

wind elm
#

At least, it works after you are done screaming at it πŸ˜‰

dawn palm
#

mikero tools update

+fixed environ path for win10 system
+removed detex from pboProject, it is now within the dll and operates transparently on any makepbo
+fixed potentential slowness with bis binarise if using a drive other than P:
+improved some bottlenecks in the dll to improve throughput (5...15% faster) (i hope)

+rapify now accepts

#define apple "orange.h"
#include apple

+auto conversion of wav/wss to ogg has been disabled for the time being.This too will migrate to the dll

Enjoy

wind coral
#

Quick question to anyone who has node JS experience on Win10. I am running a JS script locally for a discord bot. I want to get greenworks as a module to run, but it halts when requiring the module

var greenworks = require('./greenworks');
#

greenworks.js is located in the same directory as the script bot.js

#

greenworks js node file is in botjsdirectory/node_modules/greenworks/grenworksnodefileblah

scenic canopy
#

require('greenworks')

#

ah, sorry, you specified two greenworks files

#

local files, not in node_modules folder, should use the relative syntax like your example

wind coral
#

ok

#

Ok, so here is what my folder looks like:
node_modules,
auth.json,
bot.js,
greenworks.js,
package.json,
package-lock.json,
greenworks\greenworks-win64.node

#
  requireStack: [ 'c:\\Users\\Bryce\\Desktop\\badmodule\\bot.js' ]```
scenic canopy
#

if you have a folder named greenworks in the directory it will prefer that one to greenworks.js if you just do require('greenworks')

#

it will look for greenworks/index.js first

#

you can make your require more specific with require('./greenworks.js')

wind coral
#

Ok, so we're perfectly clear here. in the binary download it includes two files: greeenworks.js and the greenworks.node file.

#

I have a folder named greenworks whom greenworks node is a child to

#

greenworks.js seems like just function definitions with calls to API

scenic canopy
#

sounds like you've unpacked it wrong

#

there should be greenworks.js and lib/greenworks-win64.node

#

don't forget all the steam libraries as well

split stratus
#

Seems that using a source directory outside of the project drive with makePbo causes files to be missing. Was the ability to use makePbo outside of the project drive removed?

wind coral
#

@scenic canopy I dont really have a great understanding of how node works with modules. As I've never really ran JS outside a website page. Are the .node files supposed to be in named folders in /lib or /node_modules . I assume that they serve the same function

scenic canopy
#

.node files are binary dependencies that are platform specific

#

usually dependencies are shipped as prepackaged node modules so you don't have to worry about it

#

the usage of lib folder is hardcoded in the greenworks.js file, you can see it at the top of the file

#

greenworks releases are really out of date though

wind coral
#

ultimately I am looking to query number of players on a server. Their names as well if possible. Greenworks was my first result

scenic canopy
#

we've used it for 6 years, works fine for arma 2 oa and 3

wind coral
#

Thank you

scenic canopy
#

just poke me if you need any help with it

split stratus
nocturne basin
#

I think i just archived some sorta milestone with both my SQF-VM project and the Arma.Studio IDE i currently (slowly) rewrite ...
i actually have executed SQF code from within the editor and have been able to pause, etc.

nocturne basin
#

Anybody here ever had compiled things in C++/CLR and faced fancy issues like theese with the compiler?

1>ClrVirtualmachine.obj : error LNK2028: unresolved token (0A0017AC) "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall sqf::virtualmachine::preprocess(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,bool &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?preprocess@virtualmachine@sqf@@$$FQAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V34@AA_N0@Z) referenced in function "public: class System::String ^ __clrcall sqfvm::ClrVirtualmachine::PreProcess(class System::String ^,class System::String ^)" (?PreProcess@ClrVirtualmachine@sqfvm@@$$FQ$AAMP$AAVString@System@@P$AAV34@0@Z)
elfin oxide
#

@nocturne basin does it also happen if you do not compile for CLR?

nocturne basin
#

cannot do as it requires managed code

#

the base project, sqf-vm, compiles fine and without any complaints

nocturne basin
#

Got rid of the LNK2018 issues i have

#

now i just need to figure out how to fix the linking errors that to me make no sense ...

nocturne basin
#
1>wrapper.obj : error LNK2019: unresolved external symbol "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall sqf::virtualmachine::preprocess(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,bool &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?preprocess@virtualmachine@sqf@@$$FQAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V34@AA_N0@Z) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall SqfVm::wrapper::preprocess(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,bool &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?preprocess@wrapper@SqfVm@@$$FQAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V34@AA_N0@Z)

anybody having an idea?

sick verge
#

Next up is LNK2020 - then you're up-to-date :P

hollow plaza
#

Any ideas what im doing wrong? Im trying to export model from blender to p3d (and open in Object Builder). Everything seems to be fine, except one thing, model. In my case, model is rotate by -90 deg. on X axis and is much bigger that model in blender, which looks normal.

#

I'm using Arma Toolbox for Blender for exports. I also notice that models from ACE acts fine, both in blender and Object builder.

sly skiff
#

you have not applied scale and rotation to the exported object in Blender

#

scale and rotation have to be 0 or the exporter resets the changes

#

it is adviceable to do rotations and scaling only in edit mode

#

or make a big note for remembering to apply them

nocturne basin
#

Btw. fixed my issue by magic

#

theese unpleasently large previews are pretty intrusive ... would wish there was an option to make them only appear if requested ...

blazing needle
#

Nice video! Keep it up! Would you like to be YouTube friends? :)

#

And gj on the editor πŸ‘

plush shard
#

@nocturne basin wrap the link in <> to prevent the preview - or remove the previews after posting with the little x next to the right upper corner of the preview

nocturne basin
#

never noticed that actually

sick verge
#

Hehe you made the same mistake I always make as well: Forgetting about that do in these kind of statements xD

nocturne basin
#

Yeah... Worse, the changes I made to logging broke the error highlightinh πŸ˜… πŸ˜… πŸ˜‚

#

So not even saw it

#

Plus some issues in the actual vm parser now

#

That still need fixing

nocturne basin
#

got some goody for anybody interested πŸ˜‰
some in-development version of arma.studio with SQF-VM integration (breakpoints, step, leave scope & start-stop-pause included)
only thing you need to take care of is not "readding" the fake-files from the solution exporer (in-dev, soooo .. yeah .. no real files yet ... but it works to show of the latest capabilities of SQF-VM as a script engine with diagnostics features :P)
~~https://x39.io/Files/ArmAStudio/20200216-Arma.Studio-Rewrite.zip~~ https://x39.io/Files/ArmAStudio/20200216-2-Arma.Studio-Rewrite.zip Updated

nocturne basin
#

I think... The link is the wrong one though πŸ€” πŸ€”

#

Yup.

#

Fixed*

blazing needle
#

@nocturne basin Uuh I extracted the zip folder and tried double clicking the exe. Just a warning from windows (which I ignored) and then nothing?

nocturne basin
#

Have you dot net installed?

#

Or maybe Windows defender killed it off... Not using any certificates and the zip needs to be explicitly allowed since a few Versions (right click, properties and then in the bottom there should be something like "allow execution)

blazing needle
#

which dot net do I need?

nocturne basin
#

At best latest
But if you normally can run dotnet executables you should be fine

#

What was the error you got?

blazing needle
#

No error just nothing happened

nocturne basin
#

"Warning from Windows"

#

What Warning?

blazing needle
#

Something along the lines of "This computer was protected by Windows bla bla". I chose "Execute anyway"

nocturne basin
#

πŸ€” πŸ€” very weird

blazing needle
#

running the exe now doesnt ask the question anymore

nocturne basin
#

Something running in the background maybe?

blazing needle
#

task manager doesnt show anything new

nocturne basin
#

Could also just be some Bug... Been some time since I started on a "clean" Installation
Maybe some Files are just not created and it silently crashed

#

Gonna check in a few mins

karmic niche
#

This computer was protected by Windows bla bla
That's probably windows defender blocking access to executables downloaded from the internet that have not built a reputation for being not-malicious (aka new executables)

#

People had the same issue with my launcher. The problem fixed itself within a few weeks AFAIR

blazing needle
#

shouldnt running as admin work anyway?

karmic niche
#

I remember that I bought a Code signing certificate to mitigate the issue, but I'm not 100% sure if that worked (that was a few years ago)

nocturne basin
#

You should not run it as admin @blazing needle
But nah... If you double click it now, nothing happens?

blazing needle
#

ah when i start it there is an entry in the task manager for a second which disappears farily fast

#

*fairly

nocturne basin
#

Yeah... Probably some issue thanks to some Bug πŸ˜… πŸ˜…

#

Gonna fix in a few mins

#

Currently watching TV with girlfriend

blazing needle
#

priorities man πŸ€” 😁

nocturne basin
#

Problem source for @blazing needle is probably the dotNet version (Arma.Studio requires 4.6.1)
Fixed by just enabling all DLLs (Windows Blocks executables & libraries downloaded from the Web)

fickle void
dawn palm
#

@split stratus
sorry for the delay i was with out computers for an entire week!!!
Was the ability to use makePbo outside of the project drive removed?

definitely. too many people were using the wyswig option to ignore all errors and warnings. ... And THEN ask in forums 'why doesn't it work' when the answers were in front of them. To make matters worse, people who tried to help them assumed the last possible place the error could be was in a crap pbo because it passed all the savagery of my tools.

split stratus
#

Alright, thanks.

narrow bough
#

@dawn palm are mission files exempt from the project drive requirement?

nocturne basin
split stratus
#

Hey X39, could you add pixel related commands to your GUI tool? That’ll be very handy

nocturne basin
#

the ArmA-UI-Editor?
that one is literally dead from my end
planned to implement it into Arma.Studio ... but ... that also is kinda on hiatus as SQF-VM was more important πŸ˜…

#

can recommend loads of other tools for that

#

((+ arma is not really doing well with pixel-based UIs))

split stratus
#

When make a dialog in the GUI editor, and use safezone, it does not scale very well at all with UI scales and different resolution. I do it with pixelGrid and PixelH/W it seems to scale lovely. πŸ€·β€β™€οΈ

#

I stopped making dialogs outside of the 4:3 grid, and just use absolute in the 4:3 grid.

nocturne basin
#

for keeping the scale it indeed is useful

#

however, as said, the tool is out of support and i recommend to use one of the other (plenty) tools available

split stratus
#

Wasn’t sure if you were still working on it. I figured I’d ask before making my own tool.

blazing needle
#

using pixelGrid values is only viable if you are also planning to use the corresponding ctrlXXX base classes. Otherwise you will find yourself with mixed coordinates which will not work

split stratus
#

That don’t have pixel related stuff either.

blazing needle
#

or redefine the base classes

nocturne basin
#

well ... i am kinda, but not on that one
and the one i started also needs to be dumped as i got some "prefabs" to replace what is there already

dawn palm
#

@narrow bough , mission.sqms never contain file references. so they're ok.
i have zero interest in sqX so don't check it when that crap is >>inside sqf files<<<

desc.ext is Pdrive sensitive.

and mission addons are not the same thing of course as mission.pbos, so they are Pdrive sensitive too except as noted above.

dusky dune
#

desc.ext is Pdrive sensitive. in which way?

glossy inlet
#

description.ext can contain mission relative paths. I guess "uses internal filesystem" == "pdrive sensitive"

scenic canopy
#

Includes to A3 headers

glossy inlet
#

which don't work reliably in description.ext anyway unless you preproc it pre-pack. Which mikero doesn't do

grand burrow
#

Anyone know how to change the profile on a TADST Server, it appears to lock to the file location, not to the Vars profile, making it impossible to run persistance over restarts

dusky dune
#

description.ext can contain mission relative paths. I guess "uses internal filesystem" == "pdrive sensitive"
Yes but this doesn't make sense to me, that feels like a different thing. If you pack a "mission folder" everything in that folder is the root, everything outside of it you don't really use, unless you go the hacky way of A3 headers which never worked for me anyway

grand burrow
#

It could be that its already running and im not waiting long enough,, going to play for a half hour then restart and see what happens

vague shard
#

mission desc.ext cant include from addons/mods (except if its a mission addon/mod), can it?

glossy inlet
#

I'd say not reliably.
Something wrong with eden export, I think manual packed pbo might work still

nocturne basin
#

i think .. i archived it
Arma.Studio can be used, for actual SQF-Coding
with full SQF-VM integration

smoky halo
#

hey, I know there's an Arma RCON tool, but say I don't want to utilize that but directly send rcon commands to the server through my own program/script/cronjob, is there any documentation I could use to get started?

elfin oxide
smoky halo
#

aight, thanks a ton!

dawn palm
#

mission desc.ext cant include from addons/mods (except if its a mission addon/mod), can it
I may well have given bad info here. @vague shard and I spent nearly a week trapping as many possible variations of file access for what would be best described as 'mission space' versus 'addon space'. The rules change for missions versus campaigns, and change again on engine versions (arma1 -> arma3). For campaigns eg, there are implied, never stated, folders such as sounds, which change again, if a given mission has it's own desc.ext too.

All in all such a pile of inconsistencies that i don't / can't check all variations.

glossy inlet
#

Do you also handle the special syntax to get sound files from addon space within description.ext?

fickle void
dusky dune
#

Tabs as identation

#

🀒

#

But very cool!

sick verge
#

Tabs > spaces

#

Aaaand fight! 🧨

fickle void
#

yeah i prefer spaces myself but its not my project to convert πŸ˜„

#

don't worry next time i will turn off white space rendering for you

#

i already managed to fix my first impossible to track down bug using this, hopefully it can go on VSCode repo for everyone by the weekend

shadow trail
#

Hey @glossy inlet, Concerning a web-based tool for making stringtables with the new languages (your old tool was scrapped because of errors) did you ever get round to finishing it? I asked a while ago but have gotten round to doing this feature again and need a good tool ha

glossy inlet
#

negative

shadow trail
#

Would you be able to 😏 ?

glossy inlet
#

able time-wise no

fickle void
dawn palm
#

@glossy inlet
Do you also handle the special syntax to get sound files from addon space within description.ext?
yes. but the rules change if there's a description.ext in the primary folder of a campaign. In the next release i'll be scrapping all file-reference checking inside a desc.ext as the various namespaces that could be employed are longer than a piece of string and not worth the time spent in keeping up with it.

tiny sky
#

Hello, do you have a good 3D car model site for arma 3 please ?

sly skiff
#

@Fullzy_#9486 there is no such thing.

dawn palm
#

... and anything you might, possibly, and maybe find on ebay is guaranteed to have been stolen. The thief doesn't care because he'll get your money, but you, my friend get banned from (most) servers.

#

which again, might not fuss you at all, but gain that reputation and the modding community won't lift a finger to help you, or reply to you, when you inevitably, have a problem with the game in general. Theft of other people's models is the only area where everyone gets seriously upset.

glossy inlet
#

He left the discord shortly after posting that question. He doesn't read any of this

atomic flax
#

here is it

rancid anvil
#

What are you trying to do FoxBlepDerp ? A small explanation would be good @atomic flax

atomic flax
#

i'm trying to learn how to make extensions in c# (this is the continue of #arma3_scripting discussion)

low gyro
#

You should try the Wiki example, it shoud work

atomic flax
#

also tried that but nothing

glossy inlet
#

output filename is firsttry_x64.dll ?

#

you only have a firsttry.dll in there, but I assume you run x64 arma

atomic flax
#

yes is exported in 64bits then i renamed it

low gyro
#

Where is your dll placed?

atomic flax
#
You might need to install UnmanagedExports. You might also need to additionally set WIN64 and WIN32 in project properties. Go to: Project->Properties->Build tab->Conditional compilation symbols, add WIN32 for your x86 platform and WIN64 for your x64 platform. Save. Rename resulting WIN64 dllname.dll to dllname_x64.dll

#

is placed inside a mod

spiral forge
#

then i renamed it
ending with _x64.dll ?

atomic flax
#

yep

glossy inlet
#

is placed inside a mod
what does that mean

atomic flax
glossy inlet
#

hm thats correct

#

I don't know mac's stuff, I just know that the guide on wiki works

atomic flax
#

mac's stuff?

low gyro
#

Can confirm, also it seems like things are missing compared to the wiki:

namespace firsttry
{
    public class firsttry
    {
        [ArmaDllExport]
        public static string Invoke(string input, int maxsize)
        {
            return input;
        }
    }
}

vs

using System.Text;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using RGiesecke.DllExport;

namespace RegEx
{
    public class DllEntry
    {
        #if WIN64
            [DllExport("RVExtensionVersion", CallingConvention = CallingConvention.Winapi)]
        #else
            [DllExport("_RVExtensionVersion@8", CallingConvention = CallingConvention.Winapi)]
        #endif
        public static void RvExtensionVersion(StringBuilder output, int outputSize)
        {
            output.Append("0.1");
        }
...
atomic flax
#

Can confirm, also it seems like things are missing compared to the wiki:

namespace firsttry
{
    public class firsttry
    {
        [ArmaDllExport]
        public static string Invoke(string input, int maxsize)
        {
            return input;
        }
    }
}

vs

using System.Text;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using RGiesecke.DllExport;

namespace RegEx
{
    public class DllEntry
    {
        #if WIN64
            [DllExport("RVExtensionVersion", CallingConvention = CallingConvention.Winapi)]
        #else
            [DllExport("_RVExtensionVersion@8", CallingConvention = CallingConvention.Winapi)]
        #endif
        public static void RvExtensionVersion(StringBuilder output, int outputSize)
        {
            output.Append("0.1");
        }
...

@low gyro
https://youtu.be/MXRBckxwqEw

glossy inlet
#

Sorry. Maca's stuff, not Mac's

atomic flax
#

idk maybe am i doing somethin wrong in the build of the dll

low gyro
#

Are you sure the dll is even loaded in hte first place?

glossy inlet
#

no errors in RPT?

atomic flax
#

Are you sure the dll is even loaded in hte first place?
@low gyro yep when i call it in game then i can't delete the file so i think that arma loads it

#

no errors in RPT? nope

#

no errors

#

neither the output.Append("Test-Extension v1.0"); result

scenic canopy
#

ArmaDllExport is only 32bit?

#

or is that fixed?

atomic flax
#

idk

scenic canopy
#

did you disable battleye?

atomic flax
#

yep

scenic canopy
#

does azmextarma work?

atomic flax
#

nope

scenic canopy
#

and you placed it where?

#

I think you chose wrong project

#

it should not be net standard

#

that's the correct one

#

last person here with problems had picked standard as well

atomic flax
#

i'll try this

glossy inlet
#

prolly need to edit wiki to explicitly say not net standard

#

Yes that

atomic flax
#

prolly need to edit wiki to explicitly say not net standard
@glossy inlet yes

#

ok thx for the help now i'm starting a mission with my clan i'll try later πŸ™‚

scenic canopy
#

πŸ‘

atomic flax
#
Severity    Code    Description    Project    File    Line    Suppression State
Error        The "DllExportAppDomainIsolatedTask" task failed unexpectedly.
System.ArgumentException: Requested value 'Version47' was not found.

Server stack trace: 
   at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument)
   at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
   at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
   at RGiesecke.DllExport.MSBuild.ExportTaskImplementation`1.<>c__DisplayClass8.<GetGetToolPathInternal>b__7(Version version, String toolName) in c:\Users\rober_000\Documents\Code\unmanaged-exports\RGiesecke.DllExport.MSBuild\ExportTaskImplementation.cs:line 568
   at RGiesecke.DllExport.MSBuild.ExportTaskImplementation`1.TryToGetToolDirForFxVersion(String toolFileName, Func`3 getToolPath, String& toolDirectory) in c:\Users\rober_000\Documents\Code\unmanaged-exports\RGiesecke.DllExport.MSBuild\ExportTaskImplementation.cs:line 725
   at RGiesecke.DllExport.MSBuild.ExportTaskImplementation`1.ValidateToolPath(String toolFileName, String currentValue, Func`3 getToolPath, String& foundPath) in c:\Users\rober_000\Documents\Code\unmanaged-exports\RGiesecke.DllExport.MSBuild\ExportTaskImplementation.cs:line 698
   at RGiesecke.DllExport.MSBuild.ExportTaskImplementation`1.ValidateFrameworkPath() in c:\Users\rober_000\Documents\Code\unmanaged-exports\RGiesecke.DllExport.MSBuild\ExportTaskImplementation.cs:line 680
   at RGiesecke.DllExport.MSBuild.ExportTaskImplementation`1.ValidateInputValues() in c:\Users\rober_000\Documents\Code\unmanaged-        
#
exports\RGiesecke.DllExport.MSBuild\ExportTaskImplementation.cs:line 396
   at RGiesecke.DllExport.MSBuild.ExportTaskImplementation`1.Execute() in c:\Users\rober_000\Documents\Code\unmanaged-exports\RGiesecke.DllExport.MSBuild\ExportTaskImplementation.cs:line 264
   at RGiesecke.DllExport.MSBuild.DllExportAppDomainIsolatedTask.Execute() in c:\Users\rober_000\Documents\Code\unmanaged-exports\RGiesecke.DllExport.MSBuild\DllExportAppDomainIsolatedTask.cs:line 241
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Microsoft.Build.Framework.ITask.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()    provaext    
#

now with the correct project version i'm getting this (i'm not familiar with c#)

scenic canopy
#

Too new version I guess

#

try with 4.5

#

there are alternative libraries with support for newer framework versions

#

but unless you really need some fancy stuff it's probably easier to just downgrade to 4.5

atomic flax
#

ok ill try

#

yep compiled

#

14:07:07 CallExtension loaded: provaext (E:\GITS\azm_admintool\@AZM_AdminTool_all\provaext_x64.dll) [Test-Extension v1.0]

#

love u guys ❀️ ❀️

#

thx for help

scenic canopy
#

πŸ‘

fickle void
#

has anyone written or attempted to write an sqm merge tool?

dawn palm
#

merge? as in simply merge (and remove) the #includes?

fickle void
#

hmm

#

mission.sqm file merge

#

that will correct all the eden generated auto names etc

dawn palm
#

ah.

fickle void
#

e.g. so two people can branch, modify, then merge a map

#

seems obvious thing thats missing unless i overlooked some existing tool, or reason why its basically impossible

glossy inlet
#

kind-off

#

ah no, that was p3d

#

there is just lots of stuff to keep in mind, like these stupid kinda-useless count variables that HAVE TO match the count.

#

3DEN editor itself can merge missions, so its certainly possible

dawn palm
#

well, while it sounds reasonable, but all such attempts generally end in tears because bis move the goalposts.

glossy inlet
#

mission.sqm format is not likely to change anymore tho

fickle void
#

there have been attempts?

#

i would like to see them!

#

this is exactly what i am asking for

dawn palm
#

probably not in that specific.

fickle void
#

so what were you referring to?

dawn palm
#

and if you read above, it probably is not worht the effort. it will break within a month or so.

fickle void
#

i actually didn't know that eden does it, that solves the problem for me 50% at least

#

it does it properly? or just overlays the entire contents of one mission onto the other without resolving conflicts?

glossy inlet
#

it probably is not worht the effort. it will break within a month or so.
as I said, it most likely won't

#

it does it properly? or just overlays the entire contents of one mission onto the other without resolving conflicts?
It takes all the objects from the second mission you are merging, and places them down in the editor. If the sqm's contain the same stuff, afaik you'll just get duplicate of everything

fickle void
#

well i wouldn't be put off by conjecture like that anyway if no body actually attempted it so no worries, but if eden does it as correctly as possible already it solves the issue for me for now

#

oh so it doesn't do it properly πŸ˜„

#

yeah in that case i will try it myself

glossy inlet
#

Its not that hard to make a merger though I guess, but for stuff like git, I'd just not store it as the sqm, I'd convert into a different data format.
Instead of count entry, and the Entry1, Entry2, Entry3 stuff, just store it as array in json for example, or yaml (which would look neater)
And then always re-generate the sqm, out of that stuff, and when merging/diffing use your custom format

fickle void
#

I'd just not store it as the sqm, I'd convert into a different data format.
Yeah true

glossy inlet
#

that's what the p3d mlod thing does too, it converts the entire binary p3d, into a easily mergable text format
and then always re-generates the p3d from that

fickle void
#

yeah good idea

#

can give things real ids then, i expect i can tag the editor objects with them

glossy inlet
#

if you want to, you can add any number of entries to the config, the editor doesn't care about extra entries. But I assume it will remove stuff it doesn't know, on saving
Should be tested tho, maybe it keeps them

dawn palm
#

if i were doing this, i'd work only on merging the import exports out of tb and forget about the game editor. many people prefer to use buldozer for object placement.

glossy inlet
#

Not talking about tb here.

dawn palm
#

i am, and he's talking about two or more people editing a map

glossy inlet
#

We're talking about 3DEN mission.sqm's

#

A mission, not a map

#

People often call missions map, even though they are very different things

dawn palm
#

ah.

fickle void
#

yeah sorry my lingo is not in place, definitely talking about the mission.sqm

dawn palm
#

perhaps then you could consider placements via sqf. that way two people could work on same mission, different areas.

#

we used that techique in cwrX to place (static) vehicles.

nocturne basin
#

don't get me wrong but ... isn't mission merging exactly what that merge button always has been for?
never actually used it ... but to my understanding, that should do the job πŸ€” otherwise that is a bug

dawn palm
#

and from memory bushlurker and wolle used it to 'candify' the insides of buildings with flower pots and picture frames.

glossy inlet
#

don't get me wrong but ... isn't mission merging exactly what that merge button always has been for?
Yes it is, it merges two missions into one.
But, if you already have a mission, split it between multiple people, they edit different parts, you merge it back together.
You now have all the stuff that was in the starting mission, duplicated. Because the missions you merged in also have that stuff placed down

nocturne basin
#

ahh

glossy inlet
#

Not sure if 3den takes care of duplicated stuff, never tested that.

#

But it also has no conflict resolution. User1 moves Unit1 to the left, User2 moves Unit1 to the right. Now merge both.

nocturne basin
#

what about just using git and a non-binarized mission sqm?

#

git-diff should work fine with pretty much everything

glossy inlet
#

Won't work as I stated above

fickle void
#

nah cos it re-numbers everything it doesn't use any kind of guid, just numbered objects

glossy inlet
#

Both users add a unit.
now both sqm's have a count=2 and Unit2 entry. Now merge these together.
You need to end up with count=3, and one Unit2 renamed to Unit3

nocturne basin
#

yeah ... forgot about that weird "count" crap πŸ€¦β€β™‚οΈ

fickle void
#

actually am i correct that it can renumber all objects? e.g. if you delete one that will rename all others after it in the list right?

#

i.e. the cardinal sin for mergability

neon flax
#

Yes it will renumber

fickle void
#

whelp every entity already has an id so that makes it easier

#

could just rename every item to use its ID instead of number and commit like that...

vague shard
#

@fickle void be careful as entity ids can act as references

#

like with WPs or triggers

#

so you need to retain that relations

fickle void
#

certainly it crashes arma if you rename the items and try to load it πŸ˜„

#

i just found out

#

i will just make up my own format instead of trying to hack the existing one probably

nocturne basin
#

use XML

#

and load it with SQF as mikero suggested πŸ˜›

glossy inlet
#

and load it with SQF as mikero suggested
And thats gonna help collaborative editing, and merging outside of Arma... how?

nocturne basin
#

no mission sqm

fickle void
#

You have a problem and decide "I know I'll use xml!". Now you have two problems.

#

and xml sucks for merging line based

#

My intent is to make a format that will merge well with standard git merger, then get converted to and from sqm, therefore i don't need to write a merger only a converter. Best mergable format for data has separate entry on each line, with a deterministic sort key, and does not add from the bottom (as all additions then result in conflicts).

glossy inlet
#

yaml :u

nocturne basin
#

uhm ... xml does work great with git diff πŸ˜…
using it everyday

fickle void
#

does git diff understand when an xml block is moved inside another one in one branch, but moved up in another?

#

i.e. semantics?

#

we might have different definitions of "sucks"

#

I'm thinking something like:
Mission.Entities.Item(id=1232).name="Player Units",modified=26022020132132

dawn palm
#

csv as written above is far easier to work with than the ridiculous bloat of xml. for the effort involved in interpreting it, you might just as well stick with the sqm. You're also introducing two primary error sources, the translation of sqm to/from something else. I haven't followed all the conversation above, but not sure why you don't use sqm directly for the merge. The syntax of sqm is rigid and easy'ish to follow (as is it's binarised equivalent which is even easier to parse).

fickle void
#

because the editor will automatically rename massive chunks of it if you delete an item

#

that is catastrophic for merging

#

what was Item321 is now Item320 in your branch, then someone else moves it in their branch, and now you have conflict from hell

#

or even worse it wouldn't conflict and would just move the wrong thing

dawn palm
#

a well written merger app would detect these discrepencies by matching the id with the model's classname. any changes are, exactly that. All you are doing is merging two, separate, sqms and detecting any alterations.

#

I can't see any way you could use an off-the-shelf merger.app no matter which way you jump.

#

I have bullet proof code that reads/writes mission.sqms but i don't have the time available to help you here.

#

all i can offer you is an api interface into my dll so that you don't have to fuss over semi colons, braces, and typos. However, the learning curve would be as tuff as you doing it yourself in the first place. Like most things, it only pays dividends when you use the api again for something else.

vague shard
#

@fickle void index should not be reliable as Eden adjusts it if you delete an item in between
you could try position+type as key

glossy inlet
#

Hm. How about using binaried sqm's and binary diffing them. Not sure if they still have the count entry and stuff....

#

There should be no typos in a 3DEN generated sqm
Parsing/Generating binary might be easier

#

Also, nested structures in csv? What

vague shard
#

@fickle void you might also look into X-Cam (approach) with layers and projects, export-import (and one master version in the end) - may work better than trying to have sync one version across multiple people

fickle void
#

Also, nested structures in csv? What
Just a flattened tree.

@fickle void index should not be reliable as Eden adjusts it if you delete an item in between
you could try position+type as key
If this is true its pretty annoying, but are you sure the id field changes? I thought only the index embedded into the name changes?

glossy inlet
#

do you really need unique id though?

fickle void
#

if you want robust merge then yes

vague shard
#

its always a continuous numbering

#

its easy to test - just delete one object and diff vs the previous sqm state

fickle void
#

yeah ids are not changed only the class names are changed

#

(i deleted an item for comparison)

noble wagon
#

How to do file patching?

sly skiff
#

πŸ˜›

noble wagon
#

I did this, then I went to Youtube, and found nothing so I came here

dawn palm
#

google is your friend.
and videos aren't worth a damn, because they're all about "look how clever I am" not teaching how to do it.

noble wagon
#

The ACE3 wiki says the pbo's need to be packed with makePbo, but when I start the game, it doesn't even register my addons.

dawn palm
#

well that won't have anything to do with the pbo if it's been made. my guess is you haven't assigned the mod folder.

#

(or perhaps haven't noticed makepbo had an error)

noble wagon
#

assigned means loaded?

#

It's definitely a mistake on my end, just can't figure out where it is

#

And it's surely very obvious

#

I'm probably in the wrong chat too

dawn palm
#

if you're using the cmdline to start arma3, the magic is @mod=\where\ever\your\mod\is

noble wagon
#

I use x\MyMod

#

As the wiki said to do

dawn palm
#

paste a screenshot of x\mymod folder

#
  • it should be drive:\x\mymod
noble wagon
#

It's a hard link to P:\x\matv

dawn palm
#

well that's just adding complications when you can't yet crawl let alone run

noble wagon
#

Junction* sorry

dawn palm
#

p:\x\matv is a perfectly fine mod reference. no junction required

noble wagon
#

And for the namespace?

dawn palm
#

namespace has different meanings, depending on who's talking

#

the 'namespace' of a pbo is contained in it's prefix baked into the pbo

noble wagon
#

The $PBOPREFIX$ is x\matv\addons\matv_engine right?

dawn palm
#

get rid of $pboPrefix$

#

nuke it

sly skiff
#

ACE way of doing stuff is not noob friendly

noble wagon
#

Will I be able to recompile my functions in-game

#

@sly skiff I see that πŸ˜…

dawn palm
#

is this a mission.pbo or a mission addon with a config.cpp?

noble wagon
#

This would be a mod, I'm trying to add an interactable cab to the hunter

dawn palm
#

that's not what i asked

noble wagon
#

It's not a mission

dawn palm
#

to use makepbo 'properly' you need to say:

makepbo drive:\where\the\config\folder\is (space) destination\folder

noble wagon
#

It gives me

MakePbo Version 2.04, Dll 7.46 "JR_mrap_engine"
------args---------
P:\x\matv\addons\JR_mrap_engine
P:\x\matv\addons
-------------------
<adding entries:...>
    config.cpp :compiling...<rebuilding units[]= and friends>...
    functions\can_start.sqf :scanning
    functions\setup.sqf :scanning
</end entries>
/*Creating ArmA prefix pbo:*/
Prefix = x\matv\addons\JR_mrap_engine
<writing header entries>
...</end header>
Writing data blocks...
...
Writing sha '02590F47E82253B5CD74179F20CFC50D15FB6812'
File written to P:\x\matv\addons\JR_mrap_engine.pbo

Press the ANY key
dawn palm
#

no

noble wagon
#

What's wrong?

dawn palm
#

anthing\addons is where your mod folder lives

#

@mod=MyMod

MyMod\addons contains the pbos

noble wagon
#

So I shouldn't put the unpacked with the pbos?

dawn palm
#

paste a screenie pls of the folder that has your config.

#

and it'd be pretty dumb to put pbos in your source\folder

noble wagon
dawn palm
#

since that's telling any packer to pack pbos it finds in there as well into a single pbo. which makes no logical sense at all

#

you're not serious pasting the above.

#

how can anyone tell where it is or what you've got in there?

noble wagon
#

You want the content of the config?

dawn palm
#

no, we need a full\drive\to\config paste

noble wagon
#

P:\x\matv\addons\JR_mrap_engine\config.cpp

#

Is this what you mean?

dawn palm
#

excellent

#

that's fine

noble wagon
#

I'm sorry, my English level is not the highest

dawn palm
#

np

noble wagon
#

So if I were to put the unpacked files into P:\x\src\ModName\AddonName would it be better?

#

Did I understand right?

dawn palm
#

no. give me a moment....

#

if you say:
makepbo P:\x\matv\addons\JR_mrap_engine

you will get a JR_mrap_engine.pbo in
P:\x\matv\addons

ok so far?

noble wagon
#

Yes

dawn palm
#

ok, p:\x\matv is now the name of your mod. understand?

noble wagon
#

it is

dawn palm
#

this is not a good (clean) way to do things, but it's ok.

#

you now need to create a cfgmods so the engine knows what it's looking at.

#

you can do this in one of two ways

#

+create a mod.cpp in p:\x\matv
OR
+create a class cfgmods in the config.cpp

noble wagon
#

I have P:\x\matv\mod.cpp with the mod name

dawn palm
#

excellent. you should, in theory, now be ok with
@mod=P:\x\matv

#

I need @sly skiff to take over from here, because he's much more knowledable

noble wagon
#

Even though the source files are in the same folder as the pbos?

dawn palm
#

they aren't

#

they are in a subfolder and the engine will ignore them

#

in future pls use the term 'source', not 'unpacked'

#

'unpacked' means the extracted files of a pbo

noble wagon
#

My bad, so the source would be in P:\x\matv\src\... or P:\x\matv\Addons\src\...

dawn palm
#

not necessary

#

a better idea perhpaps, but not necessary

#

your current 'source' is P:\x\matv\addons\JR_mrap_engine
JR_mrap_engine\ is your source folder, and alltho confusing, is "ok"

noble wagon
#

I made an src\ into the mod's root folder and I moved them there

dawn palm
#

they have no relationship to a mod folder. that is the primary cause of confusion.

#

your customers are NOT going to have a mod in\the\same\place\as\you

#

for starters, it will be in their cdrive:\some\where

#

there is NO connection between the destination of pbos and their source\

noble wagon
#

So for good practice, the source shouldn't be connected to the mod's folder right?

dawn palm
#

correct

noble wagon
#

Thank you very much

dawn palm
#

but it won't matter to get you up and running

#

typically, your source folder would most likely be called
P:\JR_mrap_engine

#

where you put the pbo is an entirely separate issue.

noble wagon
#

besides the source, does the structure allows me to recompile my files in-game?

dawn palm
#

that,, again, is a separate issue. but the answer is yes

#

you would simply point the filepatch to:

P:\JR_mrap_engine\config.cpp (as an example)

#

dont fuss over this, let's get you running in game.

noble wagon
#

Alright, I'll figure that out later.

sly skiff
#

Id put the filepatch stuff into the Arma install folder.

#

since the game folder also represents the game filestructure root

vague shard
#

@fickle void hu? ofc the id numbering will stay, yet the items will be reordered. aka an item will not keep its id

#
  1. -filePatching
  2. load pbo with all files inside you want to live tweak
  3. symlink junction your p drive namefolder/folder to arma3 game folder (p:\xxx => arma3\xxx)
  4. modify files during runtime (p3d needs resetShapes, model rvmat need unbinned p3d loaded, etc)
glossy inlet
#

@noble wagon
You put your mod into your Arma folder like normal, load it via -mod like normal.
And then have a SteamApps/common/Arma 3/x/matv/addons/JR_mrap_engine folder, with your config.cpp and others inside.
I personally use symlink to my dev folder, but junction/hardlink should work to afaik.
The reason they say makePbo and not normal pboProject, is that makePbo leaves the configs unbinarized, meaning it'll load your config.cpp, which it will then also load from your unpacked files. Otherwise it would load config.bin, which you don't have unpacked, ignoring any config changes you did, and making every config change require a pbo repack, instead of just a game restart.
It will only load unpacked files, which ALSO exist in a pbo that is loaded. It'll just prefer unpacked over the in-pbo file if a unpacked file exists at the right location.

You can safely ignore anything mikero told you, apparently he didn't understand what your actual problem was

#

If you want function recompile, it depends on how your functions are compiled, if using the CBA system you want the cba cache disable optional pbo loaded.
if you use CfgFunctions you need to set the recompile flag.
Otherwise your functions are cached, and not recompiled

scenic canopy
#

Newest makepbo wont leave config.cpp unbinarized

glossy inlet
#

whaa

dawn palm
#

since i don't know what i'm talking about, it's probably not worth mentioning that the engine always binarises a paramfile before using it in any way what so ever. It doesn't actually matter whether the file >name< itself is called cpp or bin, it is assumed that either of them could actually be text and are converted before use. The only difference between the two from the engine perspective is that if BOTH cpp and bin are in the folder it will ignore the 'bin' and work with the cpp. And even in that case, the cpp itself can, already, be pre binarised anyway. If only a bin file exists, it does not mean it's actually binarised. It mostly is, but need not be.

#

unusual deflections, yes, but this mechanism has been present since cwc.

#

file patching involves the replacement of the new bin file (which ever way it's produced) into the master config.BIN built at engine load time. The same mechanism exists for rvmat bisurf and mission.sqm. The difference here if course, is there's only one type of file.ext

dawn palm
#

It's also quite possible that filepatch requires a text input, only because bis forgot about the underlying i/o handler, but it won't change the fact that binarised data is used by the engine.

glossy inlet
#

it's probably not worth mentioning that the engine always binarises a paramfile before using it in any way what so ever.
Doesn't matter here, as the file is loaded from disk BEFORE its binarized.
And loading from disk is whats important for filePatching

dawn palm
#

the file is binarised before use

glossy inlet
#

Yes, but that doesn't matter at all.

#

As I.. just said.

#

if you have a config.cpp in your pbo, it will also attempt to load the config.cpp via filepatching.
If you have a config.bin in your pbo, it will NOT attempt to load a potential config.cpp via filepatching

dawn palm
#

this, i did not know and i find that wierd.

scenic canopy
#

filepatching is only applied for a matching existing file inside a pbo like dedmen says

rancid relic
#

I'm using config file patching without config.cpp being in pbo

rancid relic
#

It's first time I hear about .cpp being required in pbo for file patching configs

fickle void
#

@fickle void hu? ofc the id numbering will stay, yet the items will be reordered. aka an item will not keep its id
@vague shard What? that sentence is contradictory, the id numbering staying IS an item keeping its id. The item class names themselves change to reflect re-indexing when you delete or add items:

class Item67 
{
  id=102;
  pos=[1,2,3];
};
class Item68
{
  id=207;
  pos=[4,5,6];
};

some Item10 is deleted leads to:

class Item66 
{
  id=102;
  pos=[1,2,3];
};
class Item67
{
  id=207;
  pos=[4,5,6];
};

This is the ids staying the same, and is what appears to happen.

dawn palm
#

ItemNN is linear sequential. All 'items' from (what was) Item11 onwards would have been re-indexed. There's nothing strange here.

glossy inlet
#

Noone said that there is anything strange here.
I think kju was confusing the classname with the id.
I didn't even know that there was a ID inside the classes

dawn palm
#

I agree

fickle void
#

Well when you say theres "nothing strange", obviously you mean other than the whole way arma data is structured πŸ˜„

dawn palm
#

haha

vague shard
#

my point was the itemXXX get reindexed and thus makes diffing/merging more complex

#

the id can also get changed if the reference get changed

#

depends what its linked to

dawn palm
#

yes

#

a good merge program would (effectively) ignore classnames, re-indexing them itself as it would have to, and simple compare against identical content.

#

where there's a difference in pos, it would have to take it from the file with the 'better' filedate

#

if it's wrong, too bad.

fickle void
#

my point was the itemXXX get reindexed and thus makes diffing/merging more complex
@vague shard Sure but that is literally the entire point I am making, to merge robustly we need a tool that solves this problem πŸ˜„

#

the id can also get changed if the reference get changed
@vague shard This is interesting, what does reference mean? Can you give an example I can test please?

scenic canopy
#

Waypoints

#

Synced modules, triggers, units and waypoints

fickle void
#

ah okay, well we don't use them πŸ˜„

vague shard
#

markers too, and objects

#

anyhow thats why i suggested pos plus class name as key

#

its probably most reliable unless you have a lot of micro pos tweaking to happening

fickle void
#

hmm wouldn't really be enough but yeah it would of course make a reasonable fallback heuristic

#

so you think id of a placed unit would change if I link it to a waypoint or module correct? just so i know i'm testing the right thing

dawn palm
#

i think 'id' is the only reliable indicator that the rest of the data is potentially altered, not added. The only other indicator i can think of is side= (and that wouldn't be enough to detect an addition of same side)

#

if the id changes you can throw the baby out with the bathtub

#

vehicle= won't help with humans because a soldier can and often is altered to some other specialty.

fickle void
#

yeah i can't make id change with sync to module or link to unit

#

dunno how to attach to waypoint, but adding waypoints doesn't cause a problem

#

even regrouping units doesn't change their id

#

which is pretty cool

glossy inlet
#

Maybe I can check next week how the id is generated/used, then I could tell you for sure if its static

fickle void
#

so actually i would change my previous data to instead record parent of an item as a property and thus mergable, instead of using full path

#

tbh its robust enough for me as is, I don't need further convincing πŸ˜„

#

if there is a problem with it then it would just need to fall back to something heuristic anyway

#

so e.g.
item(id=10).parent=item(id=3),timestamp,whatever
then regrouping is just a change in that one line

dawn palm
#

how are you going to detect deletions?

fickle void
#

it would just be a bunch of lines disappearing right?

scenic canopy
#

I wonder what happens when a unit is moved inside a vehicle πŸ˜›

#

or outside

fickle void
#

oh true mike with the timestamp it wouldn't work, i'm confusing two different systems

#

probably i would start with simple one without timestamp, such that delete would literally just be delete

#

make sure line order is deterministic (group same id together)

dawn palm
#

ummmmm, populating a vehicle is done by crew= and frendz so I misunderstand you @scenic canopy

glossy inlet
#

make sure line order is deterministic (group same id together)
Or just keep order from mission.sqm? That should be good enough, as other users will have the same order.
And the order in sqm doesn't change, just the index (elements removed, still same order of existing elements)

fickle void
#

nah it changes order when you regroup

#

also this format doesn't really map to ordering in sqm at all

#

group encloses units in sqm, but in this format group is its own separate object

glossy inlet
#

I don't really see the need to include id and timestamp and stuff.
I'd literally just rewrite the sqm in yaml, and instead of count= and Item66 stuff, just do it as an array
A simple text diff should work fine with that

fickle void
#

well it has to have the ids because they are what identify objects for reference elsewhere

#

and theres no benefit to using yaml that i can see, csv is easier to parse, no library needed

#

and also as i said, the relations are represented as a hierarchy in the actual text, which is terrible for merging. if you ungroup a bunch of units then regroup them for instance, and someone else just moves them you will get a conflict in sqm or yaml, but in my system you just get a change of the group id from one person, and a change of the unit positions from another, merging seamlessly, with no conflict

glossy inlet
#

well yeah you need to store them, just like all the other data.
But I don't see how they really "help" the diffing, or are required for it.
If you do simple line based diffing

fickle void
#

they are what tell you if something actually is a conflict or two adds

#

or a move

dawn palm
#

thinking out loud here, each author needs a diff comparitor on the changes (s)he's made to the original. and those diffs are passed to each other author.

#

hell, that's sounding very svn...

#

...but in theory, those diffs would end up with two authors having the same result

glossy inlet
#

Just normal default git diffing

fickle void
#

not sure what you are thinking out loud about but to clarify I am suggesting the primary format is the line based one, and only sqm is generated locally, edited, then converted back for commit

dawn palm
#

well, it wouldn't matter what you diff on. csv, yaml, or sqm. the differrences between two authors could be handled by diff transfer to each of them.

fickle void
#

to what end? the point here is to get seamless merging automatically by normal git workflow

dawn palm
#

which, as you've discovered, can't be done.

fickle void
#

no no

#

it can be done with line based format i am suggesting

dawn palm
#

there are programs about (winedit.exe) being one of them will will produce diff, and can be applied.

fickle void
#

yeah of course

scenic canopy
#

or just decide on a workflow that fits with built in mission merger πŸ˜›

fickle void
#

There is no workflow that works with the built in merger

#

Well not one I consider reasonable

scenic canopy
#

of course there are, otherwise the feature wouldn't be there πŸ˜›

fickle void
#

riiiiight

#

that logic totally follows cos ppl don't make mistakes

#

but anyway i did clarify that i don't see one i consider reasonable

scenic canopy
#

I've used it all the way back to OFP at least πŸ˜„

#

as long as you remembered which of the missions that has all non-mission.sqm assets such as sqf, images etc it's quite convenient sometimes

#

but for more reusable stuff I generate parts of the missions with external tools / sqf

#

like mod specific versions

#

Eden compositions replaced some of the use cases though

nocturne basin
#

it somewhat feels weird to launch arma projects like one would do in any normal IDE ...

karmic niche
#

Hopefully it won't feel that way anymore with DayZ and A4 and their new tools

nocturne basin
#

well
can tell ya that i got a lil bit closer to bringing that feel to the arma world using arma.studio

glossy inlet
#

We can talk about that once you integrated modelling, texturing, animating, VFX into Arma.Studio πŸ˜„

karmic niche
#

Isn't this the precise moment when a person is usually told to stop complaining and to submit a Pull Request, instead? πŸ˜‰ (yes, I'm aware of the irony of my statement πŸ˜› )

nocturne basin
#

pretty much 😜

#

especially because everything in the rewrite of Arma.Studio now is a plugin

wanton fable
#

oi people. i updated my os to win10 because i'm a dum-dum. i've reconfigured all my a3 tools to make them work again, but now pbo project is playing music on error / successful compile. anyone knows how i can disable that?

glossy inlet
#

You can set per-application volume in the windows audio mixer

scenic canopy
#

@wanton fable there's an option for it in settings

#

(it's intended for long running builds such as terrains)

wanton fable
#

which settings? all i see right now is "setup"

#

and there doesnt seem to be a sound option

scenic canopy
#

yes

wanton fable
#

ok, i didnt check for any submenus

#

ok, works. thanks. need a break now. setting up all that stuff is never a matter of minutes.

dawn palm
#

the latest version of pboProject has re-arranged setup-> to be a little more obvious.

hard locust
#

@dawn palm What does this error mean when packing a terrain? Wrp: compression error makepbo failed with error code 41

dawn palm
#

not seen that before. it means one of the five compression tables in the wrp weren't done correctly (by bis binarise)

#

if you're using the free tools there may be a bug in my code. not sure

#

that error message no longer exists in any of my code, you must be using something ancient

hard locust
#

Yeah I'm on the free version.
All I did was add some ponds, which pack fine themselves. But if all of them are on the map it won't pack, turn off a few random ponds and it packs πŸ˜•
I'll upgrade the tools next week, could do with the p3d tool anyway lol

sly skiff
#

All types of ponds present at all times?

blazing needle
#

Okay got a problem: I am trying to use the Game Updater from A3 tools but when I press update it stops at the message

[08.03.2020 10:25:38] Logging in user '*steamaccount*' to Steam Public ...
```. All the login info is correct, firewall access is granted. Can anyone help?
glossy inlet
#

steamguard?

blazing needle
#

code entered

#

acutally

#

it doesnt ask me to enter anything?

glossy inlet
#

doesn't work with steamguard

blazing needle
#

so disable it whil installing?

glossy inlet
#

ye

nocturne basin
lone sleet
sly skiff
#

@lone sleet use PMCwiki guide on how to set up the tools and Pdrive in easy and near foolproof way.

#

(includes buldozer)

scenic canopy
#

arma3p πŸ˜„

nocturne basin
glossy inlet
#

preproc? external classes from vanilla?

#

combined with sqf-vm and a aio config from vanilla that should be trivial to add right?

nocturne basin
#

πŸ˜‰ it was

#

the problem though is that the other types require their very own "frontend" elements

#

and i just did not had the time to craft any of them

#

though ... one thing i should mention ...

#

the UI-Editor, as of now, will not accept strings for the config values (like x, y, w, h)

glossy inlet
#

which is basically standard

nocturne basin
#

well ... yeah πŸ˜…
probably will do that tomorrow ... simply forgot about it while crafting the whole thing πŸ˜…

nocturne basin
#

safezone support also landed now*

kindred pike
#

Has anyone come across pboProject refusing to pack because it's finding a leading \ in a path but in object builder/ hex editor there is no reference to that at all? @dawn palm

#

Example:

BSFM_SAT_COM.p3d : \k\bsfm\addons\weapons\tacsat\bsfm_sat_phone_proxy.p3d```
But all paths are listed in model as:
```k\bsfm\addons\weapons\tacsat\bsfm_sat_phone_proxy.p3d```
tawny island
#

But do you have that file at the correct location on your P Drive?

kindred pike
#

Yep right next the original model.

tawny island
#

Uhm.... The files on the screenshot have different names as the error is showing

kindred pike
#

Ah copied from wrong log file.

#

Same error still applies.

glossy inlet
#

p3d's don't take relative paths

#

so leading slash or not doesn't matter, path is always global

kindred pike
#

Ok, so in that case it shouldn't matter right?

#

File exists so opboProject should see it.

glossy inlet
#

So P:\k\bsfm\addons\weapons\tacsat\bsfm_sat_phone_proxy.p3d file is there?

#

Can't see drive on your screenshot

kindred pike
#

"P:\k\bsfm\addons\weapons\TACSAT\BSFM_SAT_PHONE_Proxy.p3d"
That's the copy as path result from windows - yes file is there.

glossy inlet
#

try deleting cache (P:\temp) and rebuild

kindred pike
#

First thing i tried 😦

glossy inlet
#

┬─┬ γƒŽ( γ‚œ-γ‚œγƒŽ)

kindred pike
#

If i pack the pbo using a different tool and launch up the model and proxy both work too haha.

#

What makes it worse is this is repeatable on 2 of the team's PC's.

maiden drift
#

Yep - can confirm I get the same issues, pboProjects error is:

Missing File Summary
BSFM_SAT_COM.p3d : \k\bfsm\addons\weapons\tacsat\bsfm_sat_phone_proxy.p3d
sly skiff
#

@kindred pike wgat version of pboProject

maiden drift
#

Were both using 2.71

sly skiff
#

πŸ‘Œ

#

@kindred pike if you want I can try it too. dont need anything else but the p3d, can create placeholders for the rest

#

also are you running full build?

#

also is pboPrefix files involved?

maiden drift
sly skiff
#

tick the full build

#

and noisy to Log

maiden drift
#

crunching....

sly skiff
#

so it will actually tell you stuff πŸ˜„

maiden drift
#

Still got the same error

  TACSAT\BSFM_SAT_COM.p3d :validating...BSFM_SAT_COM.p3d: missing \k\bfsm\addons\weapons\backpacks\tacsat\bsfm_sat_phone_proxy.p3d

    TACSAT\BSFM_SAT_COM.p3d.dep :excluded
    TACSAT\BSFM_SAT_PHONE_Proxy.p3d :validating...
    TACSAT\BSFM_SAT_PHONE_Proxy.p3d.dep :excluded
    TACSAT\CfgMovesBasic.hpp :excluded
    TACSAT\config.bin :scanning
    TACSAT\Data\Anim\bsfm_sat_cargo.rtm :scanning
    TACSAT\Data\Anim\bsfm_sat_cargo.rtm.dep :excluded
    TACSAT\Data\backpack1.rvmat :compiling...
    TACSAT\Data\backpack1_co.paa :scanning
    TACSAT\Data\backpack1_co.tga :scanning
    TACSAT\Data\backpack1_nohq.paa :scanning
    TACSAT\Data\env_chrome_co.paa :scanning
    TACSAT\Data\pdw2000_ti_ca.paa :scanning
    TACSAT\Data\Proxies\coil1.p3d :validating...
    TACSAT\Data\Proxies\coil1.p3d.dep :excluded
    TACSAT\Data\Proxies\coil2.p3d :validating...
    TACSAT\Data\Proxies\coil2.p3d.dep :excluded
    TACSAT\Data\Proxies\coil3.p3d :validating...
    TACSAT\Data\Proxies\coil3.p3d.dep :excluded
    TACSAT\Data\Proxies\coil4.p3d :validating...
    TACSAT\Data\Proxies\coil4.p3d.dep :excluded
    TACSAT\Data\Proxies\coil5.p3d :validating...
    TACSAT\Data\Proxies\coil5.p3d.dep :excluded
    TACSAT\Data\Proxies\coil6.p3d :validating...
    TACSAT\Data\Proxies\coil6.p3d.dep :excluded
    TACSAT\Data\Proxies\coil7.p3d :validating...
    TACSAT\Data\Proxies\coil7.p3d.dep :excluded
    TACSAT\Data\sat.rvmat :compiling...
    TACSAT\Data\satphone_co.paa :scanning
    TACSAT\Data\sat_as.paa :scanning
    TACSAT\Data\sat_co.paa :scanning
    TACSAT\Data\sat_nohq.paa :scanning
    TACSAT\Data\sat_smdi.paa :scanning
    config.bin :scanning
</end entries>
Missing File Summary
BSFM_SAT_COM.p3d : \k\bfsm\addons\weapons\backpacks\tacsat\bsfm_sat_phone_proxy.p3d


#

ah gonna rerun with noisy

sly skiff
#

this seems to be the folder structure it works in

#

so reduce the proxy path to start from same place

#

Id wager its pboprefix issue

maiden drift
#

pboprefix contains

kindred pike
#

@sly skiff hmm proxy path should start from same place - it does in Object Builder anyway.

sly skiff
#

you got the backpacks folder inbetween the weapons and tacsat?

kindred pike
#

That's all gone now.

sly skiff
#

the path for proxy still has it

kindred pike
#

@maiden drift doesn't have the latest file.

sly skiff
#

xD

#

oh dear

kindred pike
#

He should do its in the repo.

maiden drift
#

Latest version of the repo (Oops) I still get the same error:

Missing File Summary
BSFM_SAT_COM.p3d : \k\bfsm\addons\weapons\tacsat\bsfm_sat_phone_proxy.p3d
dawn palm
#

the \ is inconsequential, and my tools are not known to mis report missing files

maiden drift
#

I think both myself and @kindred pike just keep hitting a brick wall with this πŸ˜‚

#

We've double checked all the paths and the proxy model is 100% in the correct location

#

@dawn palm We're not trying to blame the tools, we're just wanting some help trying to figure out why we can't get this working

dawn palm
#

test any other project you have lying around that uses proxies.

kindred pike
#

Same project other stuff uses proxies just fine.

dawn palm
#

well HG is most likely correct, the prefix is mangled

#

p:\k Is a quite unusual address to start in

#

it's normally p:\mytag

#

it wont cause errors, it's just unusual enough to be suspicious

kindred pike
#

k was the team bsfm the project

#

just separate out personal stuff from team stuff.

#

Unusual sure, but I didn't think it would cause any harm.

dawn palm
#

it won't.
i can only repeat that missing file checking has never been known to be wrong.
it could be what you're actually reading is not what's actually there. p3d properties for instance often contain trailing spaces or newline characters (which of course you can't 'see')
wipe the current proxy name out in all lods using it and retype it.

kindred pike
#

Ok will try that.

dawn palm
#

and, if you're using a $pboPrefix$.txt, can be another source of errors.

kindred pike
#

k\bsfm\addons\weapons that's the total content of pboprefix

#

Same error when manually typing the proxy when renaming.

dawn palm
#

paste a screenie pls of pboProject's gui

kindred pike
#

Ok

#

I know key isn't set right now too.

scenic canopy
#

are there some bad control character or space in the path?

kindred pike
#

We've manually typed it, copied and pasted etc. Even opened the p3d's in hex editors and tried replacing all paths that way too.

dawn palm
#

get rid of $pboprefix$.txt it serves no purpose

#

based on your pboProject's panel, you're making multiple pbos

#

OR, the only config.cpp you have is in addons\weapons

#

(in which case you should point to that directly since nothing before it can go into a pbo)

kindred pike
#

We have a top level cfg then sub folders have their own cfg defining the addonrootclass.

dawn palm
#

k, so you have multiple addons in a single pbo

glossy inlet
#

Even opened the p3d's in hex editors and tried replacing all paths that way too.
very bad idea to fish around in file formtas you don't know

kindred pike
#

@glossy inlet I know, and did it to copies of the original files to preserve. Was definitely a last resort.

kindred pike
#

Don't know what was wrong but I went right back to the original P3D removed proxies. Used moveObject then manually added the correct proxy.

elfin oxide
#

you can replace the paths if their length remains the same. As in c/something can be renamed to c/somethink but not to c/stuff. I know i am late to the party ...

dawn palm
#

mikero's dos tools version 7.60

dll:
general:
implemented killswitch fixes for linux
slow crunch times now improved considerably
lzo compression (see depax for a compiler fault)

p3d module: added specific filenames to many error messages, 'duplicated lod' eg.

derap and rap moudules:

enums no longer work as advertised in bis binarise for arma3. This mostly affects the heavily used scope= and destrtype=. so...

debinarised output for scope=protected,public, and private is without quotes to distinguish them as NOT strings.

rap module

hardwired detection of "protected","public", and "private" with or without quotes to be treated equally as enum (CaseInSensitive)

case sensitive true and false (while not enums) are also hardwired constants

depax module: fixed buffer overruns when lzo compressed mipmaps are corrupted (microsoft compiler won't generate an exception for them and causes code to return good status, leaving you none the wiser that you have bugz)

makepbo module:

texheaders.bin is now generated internally in the pbo as the final file of the pbo after all relevant paa have been packed. Detex.exe remains a tool for your interest but the textheaders.bin FILE (from anyone's tool) is ignored.

There are multiple reasons for this, but the major is: only the contents of paas in pbos are relevant. scanning an external folder tree is not. (and, of course, bis binarise ignores all errors in it's version, causing texture flickering on the bad ones and you have no clue why)

obfuscated: major fixes. credit rksla (arma3) & ammo (dayz)

for dayz, obfuscatd or otherwise, compression requires rvmats to be excluded (from compression). this because there's a bug in the healthsystem[]= array. bis can't read compressed files because they forgot how to. All previous, related issues have been fixed.

Enjoy

glossy inlet
#

Hey Mikero, what about handling scope="string to be evaluated at runtime"
some mods use it to dynamically make a CfgPatches lookup and depending on that show/hide entries, which does actually work suprisingly well, but pboProject says no because scope has to be a number dangit!
._.
But all the mods that I know are using it, are currently moving away from pboProject anyway, too many restrictions, like the forced filecheck, and removal of WYSIWYG

dawn palm
#

news to me, they're using $STR_ ?

glossy inlet
#

no

#

searching

dawn palm
#

i have no sympathy for folks who think they know better, by avoiding filechecking, and wyswig is most definately not going to happen for similar reasons. They're free to use other tools. no loss to me.

glossy inlet
#

Well its kinda inefficient for a remote CI server to need all the stuff that it doesn't need. ACE now filled in dummy files as temp workaround

scenic canopy
dawn palm
#

under the covers file referencing does a lot more that simply verify a file exists. just one example is p3ds need to be examined when map building to generate, or at least check, for land class configs. similarly roadslib.cfg, same for model.cfg when the model is inappropriate, similar (some aspects of texheaders bin needs to analyze the paas. this latter is a bad example)

#

If people just want to pack a pbo and get on with it, they don't need me.

#

as for scope= i agree there's a problem i'll look into, but it's a fundamental error for many folks that they don't know why scope= is not working becuase they haven't added the relevant, nebulous #includes or defines. Hard to balance the general public vs a genuine need too.

scenic canopy
#

@dawn palm updates not yet on bytex/mikero updater?

dawn palm
#

not yet, sattelite went down. another 2 hrs

scenic canopy
#

πŸ“‘ πŸ›°οΈ

dawn palm
#

bugger. more delays. have another 'undocumented feature' i want to fix.

karmic niche
#

Don't fix it, just document it and release as a 'documented feature'! πŸ˜‰

dawn palm
#

you can fool half the people half of the time
you can't..............

dawn palm
#

further small fixes to the tool exes
exes
general:
a cleanup of duplicated error messages.
a cleanup of some tool syntax display to make them more readable.

depax: fixed erroneous message about 'missing pbo'
see nasty compiler bug above that left you thinking the paa was 'ok' (credit Red)

extractpbo(dos): fixed erroneous 'invalid file' if used mistakenly in bat files that formerly used the extractpbo in registry shortcuts. (the # character) (credit HG)
Arrowhead:
a reg file is provided in the bin folder when you install the dll which makes DsUtils (arma2 version) usable again. The bis package was not provided with registry settings so no tool from anyone could figure out where-the-hell they were installed. It is only relevant to arma2 development, so the registry is NOT automatically altered by my tools. Do it manually, when required. (Credit Manuuk)
Enjoy

mental torrent
#

@dawn palm hey my buddy is having a issue when trying to use your tools, he has tried reinstalling already

#

not sure if you know what the solution is to this error

mental torrent
#

ahah think he sorted it out, he had to install a older version of visual studio code, Thank you tho @scenic canopy

scenic canopy
#

vcredist is included with visual studio and visual studio code

dawn palm
#

ahah think he sorted it out, he had to install a older version of visual studio code
i doubt that. Microsoft sprang this on just about all developers with an update to their dll. It's affecting lots of published apps now which in the course of events get updated with their own improvement and fixes, but require this new dll for thier customers.

lesson learned for me here. don't update visual studio if what you have is working fine.

#

a genuine case of if it aint broke, don't fix it.

pastel oak
#

Hello all was just wondering and this is super important when it comes to folder structure and how i will need to set my whole mod up. What are the limitations size wise for a single pbo when it comes to textures or models or just total flat out size?

I had just run into an issue with pbo proj saying that it cant pack more than 2 gigs which is devastating because i will most likely have to redo my entire folder structure now.. I also investigated this a bit and saw that there are other standard a3 pbo files that are much bigger than 2 gigs and they seem to work fine. Any thoughts on this?

sly skiff
#

2gigs is the limit

#

if you have more than that in single PBO id seriously reconsider just what you are packing in there

#

are you perhaps including source files too?

pastel oak
#

its just textures

#

no there all custom textures

#

no source files of anythingf

sly skiff
#

2+gb of textures?

#

so thousands of files?

pastel oak
#

for sure yea there high quality and there's 150 of them lots of them 4096x4096

#

its not a lot of files at all there are texture packs that have thousands i have 150...

sly skiff
#

there is a reason default textures are 2k πŸ˜‰

#

they are converted to .paa?

#

how many MBs is a single file?

pastel oak
#

yes they are paa and i thought the default size was smaller and actually most of them are not 4096 only a few of them are now that im going through them

#

depends on size its really the normal maps are taking up a huge amount of space

sly skiff
#

how much

#

a number

pastel oak
#

like one normal of 4096 could be up to 20mb

sly skiff
#

sounds about right yes

#

then you will just need to split it

#

also there are no vanilla pbos that large

pastel oak
#

but why are there a3 files that have source files that are much bigger than 2 gigs for example structures_f_enoch is 4 gb in size unless that is split somehow and the actual pbos are broken down

#

look at structures_f_enoch thats 4 gigs

#

in pdrive

sly skiff
#

its the final size

#

thats limited to 2GB

#

some filetypes pack better than others

pastel oak
#

yea but when textures get binarized arent they smaller than the original?

sly skiff
#

some

#

but 4K HQ normalmaps dont compress much from that

#

option A downscale to the normal 2K

#

or B split

#

4K does not work for most people anyway since it only works on ULTRA quality

pastel oak
#

i mean i could just take my 4ks and down size since i dont have many of them i have a lot of 4k by 2k tho which is smaller thatn 4x4 so maybe i could down size those also

sly skiff
#

4Kx2K would then become 2Kx1K

pastel oak
#

yes and it would be half the size but look half as good

sly skiff
#

you have your options

#

both work and have their advantages

pastel oak
#

yes for sure thx for the info/help

sly skiff
#

πŸ‘

dawn palm
#

there is no pbo in the universe, bis, or otherwise, that is larger than 2gig

glossy inlet
#

there is no pbo in the universe, bis, or otherwise, that is larger than 2gig
I disagree πŸ˜„

#

2.1 gig! πŸ˜„ HAH
πŸ™ƒ

nocturne basin
#

Anyone here having neat scripting languages to recommend?
Currently building a small "game" for my own and am in need of some
Requirements are pretty much: inheritance, interfaces (or multi inheritance), oop

smoky halo
#

I doubt this is the best place to ask this... but it's the closest one

#

My CfgConvert just stopped working out of nowhere

#

Arma 3 Tools seems to work fine

#

I have verified its files

#

And reinstalled it

#

But CfgConvert seemed to have just randomly stopped working for no reason

#

It launches, but when I input the path etc it just doesn't do anything

#

I've even tried debinarizing .bin files I have in the past

#

And it just stopped working

#

Anyone know why? I made no changes to the tools' folder or anything

glossy inlet
#

is your Steam open?

smoky halo
#

Yeah

keen owl
#

@nocturne basin Assuming you mean something not Lua.. There is the recent Wren which more traditional class based OOP and has decent performance (closing with Lua, but faster than Python).. I was always intrigued by Io (stupid name for Google), it is pure OOP (no classes) Smalltalk/Self inspired, thought its performance is not great it is super easy to make scripts look like DSLs.

nocturne basin
keen owl
#

Yes

nocturne basin
#

i pretty much like wren
however, i could not find anything about interfaces or multi-inheritance on the page

keen owl
#

Yeah my bad. Does not look like Wren supports multiple base-types.. Since you can "fake" it in Lua, I would guess Io supports it too.. But since they are all dynamic languages the need for Interfaces itself is only really useful for static type checking.. For actual multi-inheritance the only language at the top of my tongue is Python.

nocturne basin
#

yeahhh ... no πŸ˜„

#

rather would grab mono for C# support