#arma3_tools
1 messages Β· Page 35 of 1
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
@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?
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
hm, seems description of -always is bit misleading
in code it seems to be more for texture conversion
i see π
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?
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)
Perhaps use proper path functions instead of string concatenation π
-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.
@vague shard bit of offtopic but thanks for reminding me to add those BiStudio\Binmake reg entries after new system install.
remind yourself to alter bimmakerules.txt too.
what do I want to remember to update there? @dawn palm
one out of four tools updates, sets binmakerules.txt to use the O:\ drive
(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)
π€Ώ
fun stuff in Armaland
though packing is so fast now anyway I cant see any difference xP
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
I saw it back in a2 but never knew what it was for, couldn't see that it ever did anything
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 could be related to serverLatitude/Longitude values - https://community.bistudio.com/wiki/Arma_3_Dedicated_Server#Arma3.cfg
We have implemented a server geo location in this release, so that we can improve the server browser experience in the future. The coordinates should be save in the server ArmA2OA.cfg file in serverLongitude / serverLatitude values (read only, no need to attempt to change the...
@karmic niche ^
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 π
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
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.
Where do you set it in A3, server cfg?
arma3.cfg, so machine config
serverLatitude=52;
serverLongitudeAuto=0;
serverLatitudeAuto=52;
same file as network config
the country/language server flag could be based on the Long+Lat values
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
makes sense considering dayz servers used server-local-time ingame
would be useful to have the info sent through STEAMWORKSquery as there is already a field for it (and some other unused ones)
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
you could still expose the information for community tools and services
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.
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
the tech allowed to set yourself the long-lat as server admin
which the remaining 3% probably did π
Don't quote me on those 97%, I just looked at what the console barfed and concluded that it looks like more than 95% π
doesn't sound unreasonable as it's part of the example cfg and some might set it
is it known in what order the arma preprocessor processes the different prerproc commands?
Top to bottom I'd assume. Do you have clues for a different behavior? π€
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
No simply the order they occur in the file
I don't think there is any precedence going on in the preprocessor
this would mean stuff in includes wont get processed, right?
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.
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.
@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
@sick verge my point was your statement was incorrect
includes must be processed first
No
They are processed when encountered
Why would they have to be processed first? π€
Empty line followed by a line with X
so after some reading i think to understand this is how it works (havent found the exact description tho):
- it scans line by line
- if it finds a macro definition/define, it will store it in some mapping
- when a new line is read, it checks for matching macro in the mapping and applies a macro if there is a match
- 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
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 π€
Yeah that's C. But the Arma preprocessor is not the C preprocessor. So dunno how Arma handles it π€·
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
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
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
I will fix my code to accept the following:
#define oranges "apples.h"
#include oranges```
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 ^^
time to test it
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.
I'd guess your depbo version (or some of the other dependencies) are not in sync
@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.
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.
Thanks Mikero, didnt think I had files with no content. π€·ββοΈ
Fair enough ^^
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"
whats the best place for armake support these days? ACE slack or a different place?
well HEMTT have their own discord now, but they dont maintain armake, do they?
don't think so
didnt you have your own armake2 clone? can only find https://github.com/KoffeinFlummi/armake2
and was armake to work with wrp/terrains, and support appId parameter for binarize?
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
i see
binarize is not (fully) working with wrp: https://feedback.bistudio.com/T76760
one has to manually move data into temp to work
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?
alright. ive reached out to BI to advise how to run BI binarize "correctly"
that would be easier than trying to rewrite all of it in armake style
AddonBuilder doesnt seem to support appId either. hence one has to call binarize directly
I don't care much about AddonBreaker, since pboProject is a thing.
no longer working
and older version does neither
so i am looking for alternatives
filename in first/last line of that screenshot btw
already told mikero about it?
it seems to take old/wrong parameters from registry, but couldnt find it
use procmon, it'll tell you exactly which registry entries it accesses
good idea. worth a try
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.
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
@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
i tried various combos
however also had issues with several commands not working from command line stated in the doc. so dunno
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.
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.
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).
as far as i am aware bis still have to fix a problem they're having with signed files.
@fickle void what if you try to build with BI's addon builder manually and see if it makes any difference?
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
the new signatures do check some contents
there was a recent bug with armake/hemtt concerning signing
if the 20byte sha is faulty at the end of the pbo it will only make it apparent when loaded in game.
it was fixed in latest hemtt, not sure if armake got the fix too, armake is in a half-abandoned state yet again
any tool that is standalone (i.e. build just from our content) that works currently? that i can use on CI?
armake 1 and make old version signatures? ^^
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
have you checked on the hemtt discord? maybe that'll get fixed
yeah not hearing anything from them, it also seems abandonned..
wut
or at least not in a rush
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.
HEMTT's GitHub is updated almost every week too, doesn't look inactive at all
but standard dssignfile on CI might be prob
pboPro uses cmd line
does pboPro have its own implementation for V2 signatures?
i thought it needed P: or something, there was some reason why it couldn't work easily on CI setup
@fickle void armake 1 or 2?
pboProject
dssign does not need P drive nvm you meant pboproject
i didn't use it
I am not suggesting you use my tools. i am saying dsSignfile can be used
oh okay thanks
I'm building TFAR on CI with pboProject.
I just set pdrive path to C: and put the files there, works fine
dssignfile works fine yeah
yeah it worked woo! thanks for the help
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
Imho it would be easiest to do it as some js based webpage with either vue or react.
or break the files into smaller ones in the SQF source π
No, users are having a trouble with finding more than one config file. We don't need more. :D
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@neon flax
Webpages can be hosted for free these days
Especially no backend static, js only ones :P
Gonna take a look at that then 
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
Hm yeah something like that could work if I go with the Webpage idea
(you could even do it in Arma π )

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
hm yeah
just create a github repo, make it a github.io page and you can a HTML/CSS/JS site for free
use github actions to get free webpack builder into separate github pages branch
Or netlify
@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
I have some other projects I want to finish first but I'll make sure to look into GitHub.io
pboProject update:
fat fingerz caused an error attempting to makepbo. Important fix available with version 2.68
mea culpa. apologies. (credit Dahlgren)
thanks for the fix
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.
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
I really really want to use it
last breakage was when BI added script caching, but that only broke my debugger/profiler/SQF-Assembly because they are so in-depth
I'll check what the cause for the last update was
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
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
my main concern is that it can be broken beyond repair, or that fixing can be a massive job
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?
yeah that is somewhat reassuring
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
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
intercept-database π
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
Probably not
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
You need insider knowledge to do this?
If you want to talk more about Intercept, we have a slack: http://slackin-intercept.idi-systems.com/
altho I hate slack cuz history limit... ffs
@glossy inlet then pay :)
Or
Use discord
or use slarck
Or use IRC 
you guys dont use FAX?
I just talk to people...
Ewwww ... get out πͺ
@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.
Just built my first addon using pboProject... i can agree with the sense of humour
At least, it works after you are done screaming at it π
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
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
require('greenworks')
ah, sorry, you specified two greenworks files
local files, not in node_modules folder, should use the relative syntax like your example
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' ]```
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')
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
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
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?
@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
.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
ultimately I am looking to query number of players on a server. Their names as well if possible. Greenworks was my first result
@wind coral you can use this node library instead which is intended to query game servers including arma 3, https://github.com/sonicsnes/node-gamedig
we've used it for 6 years, works fine for arma 2 oa and 3
Thank you
just poke me if you need any help with it
@dawn palm any insight on my message above? https://discordapp.com/channels/105462288051380224/105464579600977920/676288407579918346
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.
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)
@nocturne basin does it also happen if you do not compile for CLR?
cannot do as it requires managed code
the base project, sqf-vm, compiles fine and without any complaints
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 ...
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?
Next up is LNK2020 - then you're up-to-date :P
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.
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
Btw. fixed my issue by magic
aaaand this is the result:
https://www.youtube.com/watch?v=wo38Yi4-Qb4
My SQF-VM IDE Integration test works
theese unpleasently large previews are pretty intrusive ... would wish there was an option to make them only appear if requested ...
Nice video! Keep it up! Would you like to be YouTube friends? :)
And gj on the editor π
@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
never noticed that actually
Hehe you made the same mistake I always make as well: Forgetting about that do in these kind of statements xD
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
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 Uuh I extracted the zip folder and tried double clicking the exe. Just a warning from windows (which I ignored) and then nothing?
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)
which dot net do I need?
At best latest
But if you normally can run dotnet executables you should be fine
What was the error you got?
No error just nothing happened
Something along the lines of "This computer was protected by Windows bla bla". I chose "Execute anyway"
π€ π€ very weird
running the exe now doesnt ask the question anymore
Something running in the background maybe?
task manager doesnt show anything new
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
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
shouldnt running as admin work anyway?
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)
You should not run it as admin @blazing needle
But nah... If you double click it now, nothing happens?
ah when i start it there is an entry in the task manager for a second which disappears farily fast
*fairly
Yeah... Probably some issue thanks to some Bug π π
Gonna fix in a few mins
Currently watching TV with girlfriend
priorities man π€ π
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)
WIP integrating ADE into Visual Studio Code:
https://youtu.be/Ou2M-iZjE78
@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.
Alright, thanks.
@dawn palm are mission files exempt from the project drive requirement?
Arma.Studio -SQF-VM integration works great btw:
[Preview] Arma.Studio - Rewrite - Callstack, Variable-Watch, Runtime Marker and more
https://www.youtube.com/watch?v=0qAp81eGjLs
π
Hey X39, could you add pixel related commands to your GUI tool? Thatβll be very handy
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))
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.
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
Wasnβt sure if you were still working on it. I figured Iβd ask before making my own tool.
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
That donβt have pixel related stuff either.
or redefine the base classes
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
@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.
desc.ext is Pdrive sensitive. in which way?
description.ext can contain mission relative paths. I guess "uses internal filesystem" == "pdrive sensitive"
Includes to A3 headers
which don't work reliably in description.ext anyway unless you preproc it pre-pack. Which mikero doesn't do
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
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
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
mission desc.ext cant include from addons/mods (except if its a mission addon/mod), can it?
I'd say not reliably.
Something wrong with eden export, I think manual packed pbo might work still
i think .. i archived it
Arma.Studio can be used, for actual SQF-Coding
with full SQF-VM integration
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?
@smoky halo you can also use this as reference for data structs and where to call what etc. It's C# but it should be easy enough to understand that and rewrite it in what ever language your need: https://github.com/BytexDigital/BytexDigital.BattlEye.Rcon
aight, thanks a ton!
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.
Do you also handle the special syntax to get sound files from addon space within description.ext?
VSCode SQF Debugger v0.1:
https://youtu.be/Y24N-dJmZh4
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
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
negative
Would you be able to π ?
able time-wise no
Okay here is the first usable version of the Visual Studio Code SQF Debugger: https://marketplace.visualstudio.com/items?itemName=billw2011.sqf-debugger
Thanks to @glossy inlet for ADE, and SkaceKamen for the work this implementation is based on.
@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.
Hello, do you have a good 3D car model site for arma 3 please ?
@Fullzy_#9486 there is no such thing.
... 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.
He left the discord shortly after posting that question. He doesn't read any of this
What are you trying to do
? A small explanation would be good @atomic flax
i'm trying to learn how to make extensions in c# (this is the continue of #arma3_scripting discussion)
You should try the Wiki example, it shoud work
also tried that but nothing
output filename is firsttry_x64.dll ?
you only have a firsttry.dll in there, but I assume you run x64 arma
yes is exported in 64bits then i renamed it
Where is your dll placed?
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
then i renamed it
ending with_x64.dll?
is placed inside a mod
what does that mean
hm thats correct
I don't know mac's stuff, I just know that the guide on wiki works
mac's stuff?
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");
}
...
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
Sorry. Maca's stuff, not Mac's
https://github.com/alezm00/arma-3-ext pushed the real first try with the standard tutorial
idk maybe am i doing somethin wrong in the build of the dll
Are you sure the dll is even loaded in hte first place?
no errors in RPT?
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
idk
did you disable battleye?
yep
does azmextarma work?
nope
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
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 π
π
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#)
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
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
π
has anyone written or attempted to write an sqm merge tool?
merge? as in simply merge (and remove) the #includes?
hmm
mission.sqm file merge
that will correct all the eden generated auto names etc
ah.
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
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
well, while it sounds reasonable, but all such attempts generally end in tears because bis move the goalposts.
mission.sqm format is not likely to change anymore tho
there have been attempts?
i would like to see them!
this is exactly what i am asking for
probably not in that specific.
so what were you referring to?
and if you read above, it probably is not worht the effort. it will break within a month or so.
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?
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
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
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
I'd just not store it as the sqm, I'd convert into a different data format.
Yeah true
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
yeah good idea
can give things real ids then, i expect i can tag the editor objects with them
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
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.
Not talking about tb here.
i am, and he's talking about two or more people editing a map
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
ah.
yeah sorry my lingo is not in place, definitely talking about the mission.sqm
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.
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
and from memory bushlurker and wolle used it to 'candify' the insides of buildings with flower pots and picture frames.
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
ahh
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.
what about just using git and a non-binarized mission sqm?
git-diff should work fine with pretty much everything
Won't work as I stated above
nah cos it re-numbers everything it doesn't use any kind of guid, just numbered objects
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
yeah ... forgot about that weird "count" crap π€¦ββοΈ
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
Yes it will renumber
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...
@fickle void be careful as entity ids can act as references
like with WPs or triggers
so you need to retain that relations
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
and load it with SQF as mikero suggested
And thats gonna help collaborative editing, and merging outside of Arma... how?
no mission sqm
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).
yaml :u
uhm ... xml does work great with git diff π
using it everyday
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
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).
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
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.
@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
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
@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
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?
do you really need unique id though?
if you want robust merge then yes
its always a continuous numbering
its easy to test - just delete one object and diff vs the previous sqm state
yeah ids are not changed only the class names are changed
(i deleted an item for comparison)
How to do file patching?
For all those people who find it more convenient to bother you with their question rather than search it for themselves.
π
I did this, then I went to Youtube, and found nothing so I came here
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.
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.
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)
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
if you're using the cmdline to start arma3, the magic is @mod=\where\ever\your\mod\is
It's a hard link to P:\x\matv
well that's just adding complications when you can't yet crawl let alone run
Junction* sorry
p:\x\matv is a perfectly fine mod reference. no junction required
And for the namespace?
namespace has different meanings, depending on who's talking
the 'namespace' of a pbo is contained in it's prefix baked into the pbo
The $PBOPREFIX$ is x\matv\addons\matv_engine right?
ACE way of doing stuff is not noob friendly
is this a mission.pbo or a mission addon with a config.cpp?
This would be a mod, I'm trying to add an interactable cab to the hunter
that's not what i asked
It's not a mission
to use makepbo 'properly' you need to say:
makepbo drive:\where\the\config\folder\is (space) destination\folder
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
no
What's wrong?
anthing\addons is where your mod folder lives
@mod=MyMod
MyMod\addons contains the pbos
So I shouldn't put the unpacked with the pbos?
paste a screenie pls of the folder that has your config.
and it'd be pretty dumb to put pbos in your source\folder
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?
You want the content of the config?
no, we need a full\drive\to\config paste
I'm sorry, my English level is not the highest
np
So if I were to put the unpacked files into P:\x\src\ModName\AddonName would it be better?
Did I understand right?
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?
Yes
ok, p:\x\matv is now the name of your mod. understand?
it is
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
I have P:\x\matv\mod.cpp with the mod name
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
Even though the source files are in the same folder as the pbos?
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
My bad, so the source would be in P:\x\matv\src\... or P:\x\matv\Addons\src\...
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"
I made an src\ into the mod's root folder and I moved them there
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\
So for good practice, the source shouldn't be connected to the mod's folder right?
correct
Thank you very much
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.
besides the source, does the structure allows me to recompile my files in-game?
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.
Alright, I'll figure that out later.
Id put the filepatch stuff into the Arma install folder.
since the game folder also represents the game filestructure root
@fickle void hu? ofc the id numbering will stay, yet the items will be reordered. aka an item will not keep its id
- -filePatching
- load pbo with all files inside you want to live tweak
- symlink junction your p drive namefolder/folder to arma3 game folder (p:\xxx => arma3\xxx)
- modify files during runtime (p3d needs resetShapes, model rvmat need unbinned p3d loaded, etc)
@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
Newest makepbo wont leave config.cpp unbinarized
whaa
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
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.
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
the file is binarised before use
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
this, i did not know and i find that wierd.
filepatching is only applied for a matching existing file inside a pbo like dedmen says
I'm using config file patching without config.cpp being in pbo
It's first time I hear about .cpp being required in pbo for file patching configs
@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.
ItemNN is linear sequential. All 'items' from (what was) Item11 onwards would have been re-indexed. There's nothing strange here.
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
I agree
Well when you say theres "nothing strange", obviously you mean other than the whole way arma data is structured π
haha
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
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.
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?
ah okay, well we don't use them π
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
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
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.
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
Maybe I can check next week how the id is generated/used, then I could tell you for sure if its static
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
how are you going to detect deletions?
it would just be a bunch of lines disappearing right?
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)
ummmmm, populating a vehicle is done by crew= and frendz so I misunderstand you @scenic canopy
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)
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
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
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
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
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
Just normal default git diffing
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
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.
to what end? the point here is to get seamless merging automatically by normal git workflow
which, as you've discovered, can't be done.
there are programs about (winedit.exe) being one of them will will produce diff, and can be applied.
yeah of course
or just decide on a workflow that fits with built in mission merger π
There is no workflow that works with the built in merger
Well not one I consider reasonable
of course there are, otherwise the feature wouldn't be there π
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
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
it somewhat feels weird to launch arma projects like one would do in any normal IDE ...
Hopefully it won't feel that way anymore with DayZ and A4 and their new tools
well
can tell ya that i got a lil bit closer to bringing that feel to the arma world using arma.studio
We can talk about that once you integrated modelling, texturing, animating, VFX into Arma.Studio π
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 π )
pretty much π
especially because everything in the rewrite of Arma.Studio now is a plugin
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?
You can set per-application volume in the windows audio mixer
@wanton fable there's an option for it in settings
(it's intended for long running builds such as terrains)
which settings? all i see right now is "setup"
and there doesnt seem to be a sound option
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.
the latest version of pboProject has re-arranged setup-> to be a little more obvious.
@dawn palm What does this error mean when packing a terrain? Wrp: compression error makepbo failed with error code 41
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
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
All types of ponds present at all times?
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?
steamguard?
doesn't work with steamguard
so disable it whil installing?
ye
Arma.Studio is making progress: https://www.youtube.com/watch?v=8Hbwy2QJ0oA (Preview of Properties Panel & File Creation. For those who did not saw it, the UI editor also may be new)
Hi my friends. I should have formatted my disk. And now I can't make Buldozer work. This error "Eternal viewer: Unable to create viewer", following the configuration steps of this link https://community.bistudio.com/wiki/Buldozer_Manual#Buldozer_configuration, you know why this error is due ?
@lone sleet use PMCwiki guide on how to set up the tools and Pdrive in easy and near foolproof way.
(includes buldozer)
arma3p π
https://github.com/ArmA-Studio/Arma.Studio/releases/tag/AppVeyor-118-280fadd641a373b7668f17dd4c1df49c4bb8afe1
Who asked for a new UI-Editor that is able to parse existing UIs? (New Feature in Arma.Studio)
(note that the supported scope is extremly limited as of now and that this just supports CT_STATIC)
preproc? external classes from vanilla?
combined with sqf-vm and a aio config from vanilla that should be trivial to add right?
π 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)
which is basically standard
well ... yeah π
probably will do that tomorrow ... simply forgot about it while crafting the whole thing π
safezone support also landed now*
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```
But do you have that file at the correct location on your P Drive?
Uhm.... The files on the screenshot have different names as the error is showing
p3d's don't take relative paths
so leading slash or not doesn't matter, path is always global
Ok, so in that case it shouldn't matter right?
File exists so opboProject should see it.
So P:\k\bsfm\addons\weapons\tacsat\bsfm_sat_phone_proxy.p3d file is there?
Can't see drive on your screenshot
"P:\k\bsfm\addons\weapons\TACSAT\BSFM_SAT_PHONE_Proxy.p3d"
That's the copy as path result from windows - yes file is there.
try deleting cache (P:\temp) and rebuild
First thing i tried π¦
β¬ββ¬ γ( γ-γγ)
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.
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
@kindred pike wgat version of pboProject
Were both using 2.71
π
@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?
https://i.gyazo.com/bb5d4431d446e3ebfe9de293d1bea99b.png is what pboProject looks like for me
crunching....
so it will actually tell you stuff π
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
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
pboprefix contains
@sly skiff hmm proxy path should start from same place - it does in Object Builder anyway.
you got the backpacks folder inbetween the weapons and tacsat?
That's all gone now.
the path for proxy still has it
@maiden drift doesn't have the latest file.
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
the \ is inconsequential, and my tools are not known to mis report missing files
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
test any other project you have lying around that uses proxies.
Same project other stuff uses proxies just fine.
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
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.
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.
Ok will try that.
and, if you're using a $pboPrefix$.txt, can be another source of errors.
k\bsfm\addons\weapons that's the total content of pboprefix
Same error when manually typing the proxy when renaming.
paste a screenie pls of pboProject's gui
are there some bad control character or space in the path?
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.
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)
We have a top level cfg then sub folders have their own cfg defining the addonrootclass.
k, so you have multiple addons in a single pbo
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
@glossy inlet I know, and did it to copies of the original files to preserve. Was definitely a last resort.
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.
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 ...
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
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
news to me, they're using $STR_ ?
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.
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
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.
@dawn palm updates not yet on bytex/mikero updater?
not yet, sattelite went down. another 2 hrs
π‘ π°οΈ
bugger. more delays. have another 'undocumented feature' i want to fix.
Don't fix it, just document it and release as a 'documented feature'! π
you can fool half the people half of the time
you can't..............
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
@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
ahah think he sorted it out, he had to install a older version of visual studio code, Thank you tho @scenic canopy
vcredist is included with visual studio and visual studio code
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.
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?
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?
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...
there is a reason default textures are 2k π
they are converted to .paa?
how many MBs is a single file?
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
like one normal of 4096 could be up to 20mb
sounds about right yes
then you will just need to split it
also there are no vanilla pbos that large
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
yea but when textures get binarized arent they smaller than the original?
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
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
4Kx2K would then become 2Kx1K
yes and it would be half the size but look half as good
yes for sure thx for the info/help
π
there is no pbo in the universe, bis, or otherwise, that is larger than 2gig
there is no pbo in the universe, bis, or otherwise, that is larger than 2gig
I disagree π
2.1 gig! π HAH
π
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
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
is your Steam open?
Yeah
@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.
Yes
i pretty much like wren
however, i could not find anything about interfaces or multi-inheritance on the page
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.
@neon flax