#arma3_tools
1 messages ยท Page 15 of 1
Maybe not tomorrow... https://gist.github.com/dedmen/75ae1319d9a958c6492e44b734fdb609
"functions": { ๐ญ
Thanks a lot!
Thank Arma.Studio for that ๐ WIthout it I would have never written that code
RVExtensionVersion is documented on https://community.bistudio.com/wiki/callExtension. Incase anyone is looking for
Welcome to Hell.
pboProject updated to stop, cease and desist, if bis binarise lists errors in it's log.
warnings are warnings. Errors are stop.
pboProject now checks worldname = nameOfWrp = cfgWorlds.NaneOfWrp = cfgWorldsList=NameOfWrp. If not, your save games won't.
MinForestSquares and friends fixed by specifically looking for the appropriate config. If pboProject can't find it, it's up to you to tell it where it is.
pboProject now fills the binlog from bis binarise regardless of 'noisy'
generally, only a full build will reveal p3d errors with bis binarise
Cutscenes if present in a wrp pbo are 'warnings-are-errors'. You condemn your map to only work when these 'vehicles' are available.
๐
if bis binarise lists errors? So that will break TFAR builds. Because Default bis binarize also binarizes the configs and fails on all my macros and throws an error. But Mikeros preprocessor works just fine on them. And binarize is only used for the models anyway but for some reason also tries to preproc configs...
binarise dies a death with nested #ifdef/ndefs. Been broken since ofp. I have changed 'errors' in the binlog to warnings-are-errors in the dll. I may have got a little too enthusiastic with this, forgetting who I was dealing with.
Problem is binarise is reporting these errors that really are no errors. Because it's processing files that it shouldn't even process. If that will cause pboProject to consider the whole packing process as failed because of that. It would become useless for me.
My preference would be to just don't let binarise preprocess the config. Because that message box that pops up also breaks my CI builds
my preference too.
caught in that traditional rock and a hard place. if I only warn of errors the user simply will not fix them. preferring instead to fill forums with 'why doesn't it work'
I've pretty much prevented binarise looking anywhere else other than the project folder when making maps. I wasn't aware of it reading any config.cpp at all when packing p3ds. previously it did not, if the bin was a later date
Hey @glossy inlet, do you know whether the functions' precedence are available in the binaries you sent me the other day? e.g. https://foxhound.international/precedence-arma-3-sqf.html rules are far from complete.
yes
Isn't that in my dump? should be
only operators have it
But you could probably do them manually.. There are only a few
Oh yeah.. It's not in the dump
๐
I asking because one thing is to have them manually, another is to have a systematic way of building them. The latter is easier to maintain
I'll rebuild the list.. Gimme a min
awsome. Thanks a lot. If you have a link to the script that you use to build it, let me know so I add to my source code, so the steps are reproducible by others.
this awful language has no precedence 'rules' you can stick to.
a op b op c op d op f
depends entirely on what op is, and to a lesser extent what a,b,c, are. you have to know in advance if an op is a binary or unary operator, and bis will add new ones when it suits them. which is why, with a lexical parser, you need to constantly maintain and update a 'dictionary' of verbs.
Could also do that with Intercept if you modify it a little
There are only a few operators that have higher priority than the rest
having said that, i agree with dedmen's url above
it's not a question of higher, it's a quesiton of discovering if a verb, eg an op, is a binary or unary.
since bis can add them and do, at any time that suits them, you are permanently in deep doo doo trying to keep up.
Except if your Parser has access to a Debugger that can give the parser all that information from my dumps at startup ^^
But that's really just integrated self updating
a op1 ; // unary
a op2 b // possibly binary
@dawn palm, the problem of the gramar/verbs is solved long ago. I'm already at the point of finding errors in mods (e.g. Exile), and fine-tune the analyzer for edge cases (like unknown precedences)
fun fact.
a op2 b // possibly binary is always binary for Arma. a is evaluated at runtime whether it's a variable or a nular
(mostly thanks to @glossy inlet full list of words)
that' s true
Which is a several months old performance bug report that didn't get much attention yet.. Same as the thing about recompiling eventhandlers before every execution...
Got the feeling BIS is like never touch a running system about the SQF backend. It worked well since OFP so why touch it? ^^
well, the thing is, when bis introduce a new command (operator/verb) called 'apples', what can a lexical parser do about it?
obviously the parser has to be updated with new functions. That is true for any programming language... supportInfo allows to get that list; Dedmen is able to compile the return types and precedences
no, it's not true.. you don't have to 'know' what a command/verb/operator is to understand in c that result= function( .....)
eg you can create a reasonable lint checker. which is what it's all about.
that is because the operator = has a very low priority. If apples has lower priority than =, then you do not understand result = 1 apples 2
the point being: knowing precedence is a necessary condition for a good checker
indeed. and the precedence rules change with bis each time they introduce something new. it can mean pi , rad+60, or var select 3
so , you need a dictionary of what each 'verb' is, starting with 'and' and ending with 'zebra'
sure, but BIS functions are also affected by a change, and they need to be changed accordingly. Thus, BIS needs to be very careful when decide to change anything in SQF, or risk breaking their own code.
bis? carefull ? are we on the same planet?
obviously the parser has to be updated with new functions
which, more or less is the story of Squint. sbsmac got tired of updating it every single week.
I'm in a luxurious position, that bis are unable to break verbs that produce constants (and can't change the rules on me)
I am missing your point: are you persuading us to not pursuit this? are you telling us that your approach will work forever? That BIS breaks things a lot?
but you don't have to update it every single week, just on big updates, and all that can even be automated
i'ts good to see people making any attempt to tackle this.
'my approach' has no relevance outside of exec evals in paramfiles (desc.ext, config.cpp, bisurf)
pboProject/makepbo/dll
Bis Binarise is now prevented from ever reading a config.cpp (except for a rarely used wrp option)
The days of ctd's from legal, trailing commas in arrays, legal, superflous semicolons, and screwed up ifdef/ndef pairs are over.
Infamous 'error 3' and 'error 23' can no longer happen.
You can now safely write 'proper' configs without risk or annoyance.
The sqf parser/linter/analyzer is now available on pip: pip3 install sqflint. Support for sublime and atom is available (see https://github.com/LordGolias/sqf)
very nice. congrats.
There is still a minor issue with precedence, but already checks the full source code of Exile with only one false positive for a bunch of true positives (mostly missing privates). It helped finding a wrong while () do {} in Exile's source code, so it was already helpful for a community.
indeed. And, have you corrected the many mistakes in the desc.ext?
notably, the mis-use of a config.cpp ?
the obsolete (potentially dangerous) array[]={one;two;{three;};};
one other howeler that i can't remember at moment, but it's present in about 40 lines of code
I am not following, @dawn palm; this only parses sqf code.
ok.
it's good stuff. exile mod is one of the better ones, but suffers from some nasty mistakes in it's coding. your work is important.
I'll run the linter through ACE3 and ACRE2's code @forest trellis in a bit or tomorrow
what do you use to run through all the SQF files in specific folder?
welcome to hell:
pboProject now correctly binarises NON human rtm (anim files). It also checks that binarise can, in fact, produce binarised rtm for any unbinarised. If not, you have some_work.cfg to do ๐
@dawn palm i dont quite understand. was it broken before or just not done? (we have all our rtm already binarized, so dont have much experience with that)
prebinarised is not affected. yours come from ifa directly and they were binarised during that development. You can, if you wish, convert these back to plain jane, from their existing arma2 binarised format and then rebinarise them to the greatly improved (read faster) arma3 format, using deRtm (gui)
what pboProject wont, now, tolerate is UNbinarised rtm in the output pbo. It's a clear indication of some seriously wrong input.
you've already been partly thru this cycle, because your original ifa binarised rtms were unusable in a3 due to the 'wrong' skeleton. So you used deRtm to make them usable in a3 by stripping the head bones.
it would have taken a leap of imagination from bis to call the new skeleton ofpTHREE_manskeleton and solve all problems that they caused for themselves, let alone us.
cheers ๐
@scenic canopy @versed kernel @sonic geode @glossy inlet
have you guys looked into the new Jenkins release "Blue Ocean 1.0" yet by chance?
https://jenkins.io/blog/2017/04/05/say-hello-blueocean-1-0/
https://jenkins.io/projects/blueocean/
nope
hm jonpas said a while ago ACRE uses jenkins, so does it not (no longer)?
the old way still works
our pbo builds are using the "old" freestyle builds and invoke our gradle build pipeline
but our ingame autotests uses the new pipeline build but also invokes our gradle pipeline
both are shown in the new "blue ocean"
an example jenkins pipeline build in blue ocean https://i.imgur.com/48aO9Kr.png
an example jenkins freestyle build in blue ocean https://i.imgur.com/Bx5F7wp.png
since we have our entire pipeline in gradle it doesn't matter for us how we start them as long as all dependencies are present
we also tested using teamcity
@pearl beacon
Blue ocean thingy
Idk, we don't use that yet afaik, can check later
Since you're talking about AppVeyor - Does anyone know of a trick to "merge" two artifacts for a concrete build set?
I can make two zipfiles that contain:
- PBO files + x86 DLL (x86 build artifact)
- PBO files + x64 DLL (x64 build artifact)
And I would like AppVeyor to produce me a zip file containing:
- PBO files + x86 DLL + x64 DLL
Is this possible at all or do I have to postprocess AppVeyor artifacts?
I thought about using AppVeyor permanent storage to keep dlls between builds (since x86 and x64 builds are done separately) but the order of the builds is not deterministic, so doing that would not be safe, I think
I'm using custom buildscript. And just build x64+x86 in one build
@vague shard thanks for the tip, will investigate
doing x64+x86 build in one go? CMake or not?
you can't do 32 and 64 bit builds in one go
but you can have a script that does one after the other ๐
and he said "I'm using custom buildscript" before that ๐
ah I see what he meant now
Good thing that I already understood what he meant before you guys started to "help" ;P
https://ci.appveyor.com/project/dedmen/task-force-arma-3-radio The blue lines are my build script. ezpz
1.-1.0 version xD
Shit, Jenkins Blue Ocean looks really good
nasty error introduced for pboProject in 1.98. it can corrupt your config.CPP. fixed @1.99
(credit, eggbeast and TeTet)
missing file summary (at end of job) now lists rapify missing files too. it should have, it didnt'. (credit lappihuan)
bisign names, produced correctly (again). Credit Tetet.
I hate them all. ๐
thanks ๐
mikero in pboProject.Fixes.txt you have 1.98 listed twice ๐
WoW
@dawn palm Wow Mikero, get your head in the game mayun.
600+ revisions to the dll over 12 years ain't a bad effort. ๐ That averages 1/week
Wow, that's actually pretty fucking good.
or sad, depending on your point of view
ยฏ_(ใ)_/ยฏ
Need some help: in the SQF parser, I am planning to parse #include by visiting the file and parse it. However, I am not sure what is the search strategy.
Specifically, in a file /addons/x/fnc/t.sqf with a statement #include "include.hpp", where will the engine search for "include.hpp"?
in the local/relative folder
you can use proc mon and filter for arma3.exe to see what locations it tries to access/read from
@forest trellis
there is also
include "subfolder\file.ext"
include "\absolute\path\to\file.ext"
in the same folder is the answer
as Q haas said, the lack of a preceding \ means it's relative to the <current dir>
A3 also includes ..\[path\]file.ext since 1.49
https://community.bistudio.com/wiki/PreProcessor_Commands#.23include
i saw that <grin>
desc.ext includes (probably not sqf includes) are also subject to some insane crap where if it's a campaign, the relative path also searches for a ~\sounds folder, and all missions can look for a path relative to ~arma3.exe
ok. Let us look an example: https://github.com/acemod/ACE3/blob/master/addons/advanced_throwing/functions/script_component.hpp
we read #include "\z\ace\addons\advanced_throwing\script_component.hpp"
first things first. because it's in an addon (not a mission.pbo). standard rules, standard conventions apply. that's a \hard\address in the pbo prefix name space.
in fact. (kju might correct me on this point, we went thru this nightmare together) , any \hard\address, is a \pbo\prefix
mission.pbo's do not have prefixes
mission addons do have prefixes.
welcome to hell.
ok, so the path changes depending on whether it is a mission or an addon. That is not good news for me since from the path of the script I would have to guess whether it is a mission or addon
Will have to think about this; anyway, thank you all for the help!
basically, you have to maintain two dir references. where you came from (former dir), and where you are now (current dir). Each time you get an include (and end the include) you have to update them.
you're fairly safe using standard relative vs hard\addressing calculations. (accounting for things like dot/slash and ../)
for the idiotic phantom 'default' places like ~arma3.exe\ and ~sounds\ i just wouldn't bother. If they want to use your lint-checker, then they can stick to the rules you impose.
@forest trellis mission root: http://killzonekid.com/arma-scripting-tutorials-mission-root/
in regards to desc.ext sounds and images are most relevant
https://community.bistudio.com/wiki/Description.ext#CfgSounds
https://community.bistudio.com/wiki/Description.ext#loadScreen
there is also dialogs. maybe best to ignore desc.ext for now
nice find Q. nice url, but it doesn't account for alternat default locations such as arma3.exe\think_if_wednesday. or IsCampaign? desc\sounds : !isAddon? sounds : nul
MikeRo thanks his goat god, that he never goes near this stuff.
All that is thrown towards the mission config i believe.
I believe its compiled in scheduled or something
not really. it's generally a precompiled, binarised, mission.sqm that's inside a pbo. Except bis managed to break it in addons, so that mission.sqms in addons must be plain text.
the 'scheduler' (for want of a better word) concerns itself with pause and spawn and wait, for sqf loops. and sqf isn't anything to do with mission.sqms which behave like config.bins, in as much they are baked in concrete at game start.
(which is why you can pre-binarise the damn things)
Where can I currently get Mikero's tools for linux right now?
https://dev.withsix.com/projects/mikero-pbodll/files is throwing HTTP 502 at the moment.
Cool, thank you. You may want to update the wiki with the current links
๐
aww did withsix kill their dev thing? ๐ฆ
doubt it, but it seems to be very unreliable, which is the reason why I moved my files to Maverick, who, btw, have been excellent.
Which part of site is "yours", @dawn palm ?
Only /MikerosDosTools or the whole armaservices subdomain (with those obfusqf, etc...)
Optix and Arkensor run that page.
@karmic niche Only the mikero page
Broadly speaking, obfusqf is server based and mine are addon based. We share our technologies where they are mutually beneficial.
Of the two I would say obfusqf serves the needs of mission makers 'better' whearas mine concentrate as an entree into good coding practices.
Talking about standards, lets talk about pbo headers :)
relevant xkcd: https://xkcd.com/927/
hey @dawn palm , the last update of pboproject stops crunching after it checks for the cfgworlds, do i need to do something different in the config because it doesnt give a error or warning
if nothing else works, read the documentation ๐
header of all the tools
unless @dawn palm did not update yet ๐ฎ
i have read the documentation and im still stuck. my config is next to my wrp. in the docu it says that when thats the case "this setting is cleared automatically". But it looks like it clears over the rest of the procedure too because it doesnt give a answer in the logs it just stops.
name of wrp = class name in cfgWorlds = class name in cfgWorldsList
I just updated, I get this error there is class map_test.wrp in cfgworlds. think @slow epoch was getting same error
think I'll leave packing my main map for the moment
@hard locust thats right im having same issue
I downgraded, while we find out how to fix it. you should have the old installer in Program Files (x86)\Mikero\DePboTools\downloads if you want to do same
@hard locust THANKS will do
yeah, half our islands builds fails with same error since update
@hard locust I will also do that thanks
@dawn palm
Anyone here messed with making extensions for arma?
Just ask your question, there are some ppl reading here ๐
Make a small program to load your dll or use Dependency Walker to see why your extension doesn't want to load ๐
I'm still in planning phase of making a mod. Basically what I'd like to do is send player data like positions, kills, shots fired...etc.. to a web server. Now I need some way of sending the data from the game server to the web server. I figured I'd do that with sending either data in a post request or opening a web socket.(still didn't completely figure it out, as I said still in planning phase)
My question is would it completely lag the game server if I did let's say send an update to the web server every second?
no.. If you do it right it won't cause any noticable lag
Meaning doing it asynchronous
Alright, wanted to make sure it's even possible before starting. Will come back here once again when I get stuck somewhere. Thanks for the help.
Windows or Linux server?
Current game server we have is on windows, web server is on linux.
@delicate plinth Depending on how hardcore you would like it to be done, my guess is that the "state of the art" way would be to dump this data somewhere locally (mysql/sqlite or a queue system like rabbitmq) and then have a worker that would then send this data elsewhere completely independently.
But that may be waaaaay overkill for a small project ๐
or possibly a premature optimization ๐
I'd like it to be able to run on a rented server where people don't have root access to the game server.
Premature optimization is the source of all goodness in the world ๐
@delicate plinth if you want to keep if very simple, you can try making HTTP calls directly in SQF, without the need for any extension
dafuq
I'm not an SQF guy, though, so you should probably ask in #arma3_scripting
take a look (or use) extDB 3 for Database stuff.
@karmic niche Honestly I like C# so I think I'll go with an extension.
Dscha I'll take a look. Thanks
Might be better, than writing your own (why reinvent the wheel. ExtDB works fine)
As you wish. It's just that I remembered that my group made a simple "APEX checker" that was checking some classes to deduce whether the player had APEX or not and then called http://ourserver/apex/yes.html if it had it or no.html if it did not.
Simple and effective, and done in 5 minutes.
Then we were parsing the server logs to make statistics.
Yes, this should make any normal programmer cry, but we just needed to get it done quick, at the time :).
I don't need to do it quick, it's more of an learning experience to me.
we offload all our AAR events to a queue in the extension and send them in batches
to limit the number of concurrent requests
@scenic canopy How do you send them? Sending a POST to a web api or somehow else?
Thanks
here's the source code, https://github.com/Anrop/AAR-Addon
and backend, https://github.com/Anrop/AAR-Rails
and a lot faster backend which we only use for reading data currently, https://github.com/Anrop/AAR-Go
here's another open source project doing about the same thing, https://github.com/alexcroox/R3
and another, https://github.com/mistergoodson/OCAP
@scenic canopy since you're here, could you tell me if your AAR solution handles players changing sides during the game?
yeah, they will get updated side value
here's all our missions, https://aar.anrop.se
about 20GB of data
I'm asking because we have everyone starting as independent and then have a script that assigns players to the right side (round-robin or opposite side than last game played if player played last round)
does it update the side property of the unit?
Uhh... I don't really know, actually. I haven't coded that. I'll ask the guy that has made it.
Thanks alot for the links, I'm sure it will help quite a bit.
our focus was to make sure it worked with both linux and windows, both compiling (to both targets) and running
the sqf code is quite messy sadly ๐ฆ
I need to learn SQF some day. I will hate myself for doing that, though...
yeah, I did the backend and one of our members did the arma parts a few years ago
but no one really wants to improve the sqf parts ๐
no-one puts 'sqf' on their CV's when looking for a job.
they'd ask you "what's sqf?"
You mean Intercept?
but that only works with windows currently
yeah ๐
and breaks when the game get's patched sometimes
the only change we've really needed to do was to compile a x64 lib version ๐
@dawn palm I've got a strange issue with your linux version of makepbo (makepbo x64Version 1.97, Dll 6.18)
I'm trying to pack a mission and makepbo hangs on mission.sqm :scanning for about 35 seconds. After that it returns with an error, but I don't know if it's related at all because it shouldn't hang at all.
If I strace makepbo, it's stuck in a select(1, [0], NULL, NULL, {0, 1000}) = 0 (Timeout) loop.
If I build the same mission on windows, on makepbo x64UnicodeVersion 1.92, Dll 5.66 it seems to build fine (does not hang and produces no errors)
I'm not sure if the error is related at all because on gitlab's CI environment I "just" get the error, without hanging.
The error is:
`In File /home/####/tmp/missions_overflo/Frontline/FL_Hedgerow.Colleville/description.ext: Line 47 Cannot include file
</end entries>
Rap lintchecking error`
The line in question is:
#include "cfg\cfgBaseSettings.hpp"
Which I think points to a valid file (looks like it is here)
I can provide the full strace as well as the mission, if needed.
i'll pass the 'hang' over to killswitch. he makes the linux compiles.
fixed embarrasing error in pboProject when crunching wrp pbo's. (credit Lappihuan)
ideal, thanks for the speedy fix!
@Ghost#4782 @slow epoch it's fixed, just tested it
@dawn palm thank you mikero for the quick fix
@dawn palm @hard locust thanks
big thanks, all our issues resolved ๐
well, part from being little too klever and introducing an 'undocumented feature', all the frustrating issues with crunching maps have gone away, for ever. you can no longer get:
1)land class errors
2)missing icons on maps
3)no forests (or rocks)
4)the pernicious worst fault of all, binarising crashing due to a totally unknown config.cpp some\where on your Pdrive.
5)inabiity to select the map in the game editor.
6)savegame crashes
and lotsa warnings for you folks who put cutscenes in the pbo
I regret spending money on arma, more than I do on your tools ๐
in addition, this update also means the following frustrating 'errors' in any config.cpp on your pDrive no longer exist:
-
you can have as many extra, spurious, semi colons as gives you a thrill. They were frequently generated by badly thought out #defines. But they are accepted in the C language for what they really are. Whitespace. Binarise can no longer report the infamous 'error 3' and crash.
-
you can now have trailing commas in arrays. this is standard stuff in C when you are using a C code generator. It too is treated as whitespace in standard C. Binarise can no longer report 'error 23' and crash.
-
you can now use as many ifdef/ndef pairs as you might want. biarise threw error21 (and crashed) on certain combos of nesting.
all of these have gone away because i never let binarise 'see' a config.cpp
๐ binarize
amazing @dawn palm ๐
@karmic niche Include processing in the Linux 6.18 build is indeed broken. Mikero should be able to set you up with a 6.24 build which should work better.
uploaded and done.
@surreal wolf Nice to know. I spent three hours (after midnight) yesterday, trying to figure out what I was doing wrong ๐
@dawn palm Just tested the new version and it seems to work (builds the PBO).
Just a note: it looks like you have removed the Line XX part of the error message. Any reason for doing so? I realized yesterday that I has a case issue in one of the included filenames, thanks to that.
Finding it was really easy using the old version - it told me the line that causes the problem and I immediately noticed the case problem. Right now, it just says :
File .../description.ext: Cannot include file
Now, go figure what is the cause! ๐
I'm fine with undocumented features as long as there are undocumented switches to turn them off ๐
haaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
๐
I need some help from someone who makes C# extensions. I'm making an AAR system and I'd like to use websockets for communication between the extension and a web application. I'd also like to keep that connection alive trough the whole mission. I'm wondering if I initialize a class that is holding the connection can I reuse it? As it wont try to reconnect each time I do a callExtension?
It should work fine but you will have to watch out for timeouts.
Yep will do a check before every transaction so I don't accidentally loose any data. Thanks.
There was also a thing about freezing the thread that called callextension after the call so my python background threads were frozen and were not working, but I should double check that...
Please do, any help is appreciated. :)
I'm on mobile right now so I can't really type much but I've run a cpython interpreter as my extension and noticed that Python threads were working as long as the main function called by callextension->cpython was running. As soon as that one was finished, the whole Python interpreter was paused and the background threads stopped executing until the main function was called again
But I'm not sure yet how that is implemented so I don't really know the cause. I suspect that creating a separate thread for running the python interpreter might fix that but if not tried that yet
I'll start off with trying and making everything async. If I get problems I'll go with making background worker threads.
you can retain variables between calls to callExtension
here's an example in C# where we reuse data between calls, https://github.com/SwedishForcesPack/EdenEditorAssetPreviews-Extension/blob/master/EdenEditorAssetPreviews/DllEntry.cs
haven't bothered implementing threads for that one but we had no apparent issues when using threads in C++
Awesome thank you. That's how I started doing my project, with static classes. The only difference is instead of using split I am using regex to divide stuff.
my own sad experience, over the years, is that static classes and structs have come back to bite me only after my product is released to the public. There are exeptions to every rule, but i make it a rule, to avoid them.
@dawn palm, what are the pros of static classes?
No need to fiddle around with passing pointers that don't change anyway
yep. less memory is used because with pointer-> a copy of the original has been placed in memory (generally the heap) for each and every 'instance' of that class. The disadvantage is any multithreading, any condition where two of your functions might access the same struct / class will inevetitably, and worse, randomly, produce inexplicable results
struct thingy
{
int some_val;
void clear(){some_value=0;} //2nd thread
void printme(int value)
{
some_val=sqrt(value);
printf("%d\n",value); // oops
};
};
undeclared identifier ๐
traditionally these 'accudents' were catered for with:
{
....
while (lock) ;
lock++;
do stuff()
--lock;
}
i am wondering why a BIS heli model has 93 sections
with the majority of them not being deifferent
cut 'n pasta
they do similar (I suppose we all do) with properties. Errors such as untrimmed white space in 'LodNoShadow ' = just keep propogating.
well you cannot copy and paste sections in OB, I guess
probably they forgot to sort the parts out ๐
that's the thing. the faces are sorted. but for some reason binarize seems to split it into way too much sections
@vague shard any plans to update the cmb repo or did you stop maintaining it? โค
@hallow rapids plans to move it to github yes
when we are done with IFA3 Airborne update (1st June)
awesome ๐
anyone good with dos/batch cmd? ๐ฌ (or can recommend easy alternatives)
trying to dynamically mlink multiple git repositories (folders) into each others to have one merged that is easier to work with
this is what i came up with so far: http://paste.ubuntu.com/24625103/
but cant get the set variables to work properly within the for loop ๐
basically the proccess is meant to be:
- detect all relevant folders based on filters
- get the relative path
- merge that with the target folder
- create the mlink (and folder tree first if necessary)
- add path to gitignore
welcome to hell
been there since 15 years or so - cant get worse i guess ๐
or can recommend easy alternatives
BASH and/or Python ๐
and why echo.!_str1! and not echo !_str1!?
I guess new line but maybe it's causing whatever is happening ^^
or Python
i use perl. amounts to same thing. anything is better than !~dps to get current dir and other such made up, arbitrary, nonsense.
you might try perl under cygwin Q. it might be something you can deal with.
bash, ash, cash, and sh, aren't much of an improvement over bat script. they're all the same family.
PWD=$(pwd) vs !~dps etc ๐
yeah, true. an improvement of sorts.
but kinda true, batch and the bash likes are best used for simple stuff
oh PowerShell is another option
and for that reason they are bloody excellent, when kept simple.
perl is my preferred poison because it's so close to c, that i don't have to 'learn' a bazillion new functions.
when I got into Linux as a kid I was told to not even touch it with a stick ^^
internet ๐
.py is as you say another good choice, but a) it's too far off the bare metal for me, and b) needs to be compiled?
What is str2???
Python is the obvious choice :p
But then as mikero has no python experience, I have no perl experience (although as much as I know about it I don't want to either)
import os
import subprocess
from fnmatch import fnmatch
source = 'p:\\ww2\\assets_t'
target = 'p:\\ww2\\assets_t_merge'
os.chdir(source)
for (root, dirs, files) in os.walk(source):
for directory in filter(lambda d: d.startswith('I44'), dirs): # Or lambda d: fnmatch(d ,'I44*')
full_path = os.path.join(root, directory)
target_path = os.path.join(target, directory[:16])
print('Creating link to: {}'.format(full_path))
subprocess.check_call(['mklink', '/J', full_path, target_path])
#os.symlink(full_path, target_path) # linux
# pause <= raw_input()
# echo <= print('obviously...')
Maybe not as concise as bat files, but a lot more extendable
Actually, if you're using python 3.5 you could replace the double for loop with something like for filename in glob.iglob('**/I44*', recursive=True): but I've never checked it that it worked
it does work
at least something like what you wrote
as for cross-platform you can use sys.platform
btw. I've seen a few (disclaimer: not all!) setup.py files for some arma projects and it pains me they are all in one big function and everyone seems to be copying that function and using it as a template for their mods ๐ฆ
I can't really afford to look at this one in detail right now and also maybe only the copycats were badly written, but I remember I had issues with bad error handling when running those scripts.
eh, who cares, it's a tiny setup script, and if you don't follow the ACE dev setup instructions you are calling for errors anyways ๐
Also I'd move the whole subprocess...mklink to a function for future portability, etc...
But I don't want to feel like an armchair general now ๐
as I said such tiny script not worth investing too much time into
and any script in the world could use improvements always ๐
While true, I guess I'm the one calling for errors - I don't have any P drive on my computer and I'm routinely running stuff on linux (CI and general automation)
that too
we already have CI prepared for armake ^^
just that this @wide cedar guy is a lazy ass
So that's why I'm generally ticked off when I see things like mklink and winreg "hardcoded" into one main function ๐
@pearl beacon your mklink in that setup.py will fail silently. You should use check_call if you want it to raise an exception on an error
Btw. you are re-raising the exception here so you will never print anything
except:
raise
print("Something went wrong during the link creation. Please finish the setup manually.")
return 6
This code will never execute anything below the raise line (unless you do some crazy monkey patching)
If you've seen the message, then someone must have removed that line in the code you executed
Then we are not looking at the same line :p
@forest trellis parsing ifdef is hard? Oo what?
text processing on that level is blindly simple
doing it so that the rest of the chain will not completly blow off in text possition ... that is a different story
yeah, that. Finally finished implementing the parser that builds the lexical tree with #ifdef, oh boy it did hurt.
the wrestling with if(n)def is detecting it's else/endif pair. it means the 'code' between the two isn't dead and still has to be parsed, looking for further, nested if(n)def pairs. All quite logical, but not five minutes work.
macro expansion is way more complicated if you would ask me
the simple "hiding" of code can be done in seconds
even 100% like arma does it ๐ (nested #if foo takes maybe 2 seconds)
actually, arma doesn't 'do it' if you mean bis binarise. it crashes to desktop for certain combos of nested ifndefs
it's one of the most pernicuous errors available since there's no indication of which file is causing the problem accross the entire pDrive when binarise goes hunting for land classes and cfgWorld entries
nor does it matter if that file isn't actually used in anything. if it's "there", binarise will find it, and, faithfully crash.
but yes, for sure, expansion of defines can be a huge## ##task##
(and surprisingly, bis do a very good job of that)
A long time ago pboProject would fail on some of ace's macros, so we ran our configs through CfgConvert twice to get a demacroed version.
Of course AddonBreaker failed with ace, but their macro handling was good ๐
Ace and Acre and Cba keep me honest. But it's been a long time since you guys managed to give me any heartache ๐ I normally rely on Varanon to give me hell.
pboProject no longer lets binarise 'see' any config.cpp, nor does it let binarise wander anwhere on the pDrive at all. so the #ifdef issues have been solved in that way. As for macro expansions, i'm always learning some new trick.
Hey there, anyone else having issues with last version of mikero paid tools
(especially pboproject p3d binarization) ?
I already contacted mikero but maybe if i'm not alone we can find the issue quicker
From someone in ace's slack
Anyone using the latest mikeros tools having an issue with it being overly sensitive on model configs?. Its saying cannot find inherit class , but everything is inheriting correctly, as it used to pack fine on the old tools
important update for pboProject (model.cfgs) . Sorry for the 'undocumented feature' folks, I don't normally get it this badly wrong.
@dawn palm not sure if this is related in any way but I am having an issue where my models simply won't work in game for seemingly no reason. My older models work just fine, it's just when I add a new one, it doesn't appear in game, no error messages or anything. I have even copy pasted a working model and renamed it and tried spawning it with createSimpleObject and it doesn't work, while the original model appears just fine. I posted more details in the model makers chat if it helps. I am at a loss as to what the cause of this issue could be, so hopefully you can provide some answers
@dawn palm Thanks for the update! Solved just the issue I was just about to ask about. ๐
@smoky halo did you cancel your odol converter hosting/tool? I get a 502 proxy error
just checked, get 502 aswell
@normal wigeon it's up again
On the off chance anyone makes a extension which uses OpenSSL & ran into issues with linuxserver.
Linux Server in 1.70 has updated OpenSSL to 1.1
does arma dliber the libs for it?
I used to do stuff with openssl, but always needed to deliver my own openssl libs
Its statically compiled in armaserver, if you statically /dynamically link openssl 1.0 in an extension. You get a segfault in OpenSSL. Didn't trace down fully the issue
@dawn palm I am having some trouble with the P:./source popup using pboproject - tried quite a bit, restarted my computer and ran pboproject alone but it still pops up saying it might be open still any tips on what to try?
https://www.reddit.com/r/arma/comments/6dy7vg/lua_scripting_in_arma/ I was bored again.
@tiny path P:\.source exists, move it to the actual destination and remove the dot
+1
I love the "but why?" type of comments :D
btw stack, lastest releases of my tools fix that annoyin gmissing line# in rapify
Oh, cool, thanks :)
@smoky halo is it supposed to be in the main dir of p drive? Is it a hidden folder? I wasn't seeing it at all anywhere or I would have done it
not sure how windows handles it, but . in linux is hidden
and yes pboPro moves your source dir to P:\ and renames it to .source to hide it from binarize
if binarize or pboPro crashes it could remain there, this is why pboPro refuses to pack while such a P:\.source exsists
you might want to check your explorer settings on hiding files/dirs
Ff
Thats probably my problem
It did crash when binarizing my map but i do have hidden folders enabled
Ill try again when im at my computer
Thx
http://i.imgur.com/TCLIzpE.png - no clue how to tackle this pboproject error except probably wait
check if something is still open in the Background (TaskManager)
@wind elm ill try again tomorrow after a fresh restart, but I was able to place them in TB but not binarize everything
If addon breaker half worked I would try that but nah
Wow.. Battleye just whitelisted my script debugger. Which hooks into the script engine and could manipulate any running script. GG Battleye
@glossy inlet I heard you needed some money ( อกยฐ อส อกยฐ)
what? always.
No. They whitelisted it themselves. Probably autowhitelist because so many people tried to load it over a long period of time
As most people just leave the debugger in their Arma directory and trust on Battleye to block it from loading.
Maybe someone else sent an E-mail or something though.
I don't know where but I already heard that the extensions are whitelisted by themselves, after a period of time. So this seems to confirm that.
In theory, this would make sense: they probably assume that if someone is using an extension to cheat, someone is going to report the guy rather sooner than later. And if no one reports him, the extension is probably benign.
Of course, as with any method, there are always false-positives ๐
But this suggests that Intercept could get whitelisted too, if enough people start using it!
Yeah. Already thought about Intercept ^^ But I think just asking to get it whitelisted might be faster. If they don't want to. We'll just wait
Lol, add Intercept along with a callExtension('ping') call to all your other releases, so that it builds a reputation in a parasitic manner ๐
If addon breaker half worked I would try that but nah
what you mean is, you'd prefer to use a tool that doesn't tell you about any errors, but can't, because it deosn't tell you anything about errors!
I remember someone on the forum saying about pboproject, gives them errors on their terrain, but addon builder didnt. So it was better to use that! ๐
@dawn palm im unsure if the error is due to the object being from argo and brand new or if it was my end ๐ thats why I wanted to see if the other worked
So if you have any pointers, but the error doesn't exactly give me any direction to go in ๐
the baked in model.cfg in that p3d is faulty. since it's a binarised p3d, you can't do anything to fix it. so, simply. don't use it.
faulty binarised p3d's are few and far between, but when they are faulty, they are accidents waiting to happen, in game. and you and your map get the blame for it.
Doesn't make sense though, its an official BI asset from argo and they all throw the same error
I would say @dawn palm just thinks that this is faulty although it is probably valid ^^ ๐
probably minValue and minPhase is not equal (that's how I interpret the error message) but imo this is not an error
@smoky halo yea you are correct there - the minValue and minPhase are different in animations for door locked rotations
Are the objects from the dev channel? I saw them in there, just didnt add them to my terrain
yea they are, in pbo format as well @hard locust
Then I shell put off adding them to my terrain till it's fixed lol
haha yea no kidding ๐
@tiny path
fixes:
dll 6.05
dep3d:
model.cfgModel: minmax phase is now different to minmax value when decoding on release 1.63 of dev game
when different it is shown in the model.cfg decode
the free tools consider it an error
yea they are, in pbo format as well
where? I'm on dev and cannot see any 'pbo', only structures_f_exp EBO
@dawn palm the malden objects are pbo but in sitrep today it says "This change will become active with Update 1.72, but Dev-Branch players can already benefit from it right now."
not sure if that means pbo update hasn't pushed yet or if they will stay EBO objects or what really
Malden objects are in Argo -> Addons -> Structures_f_argo
oh
ok. these are NOT apex objects as per those placed on the original map
but thanks for the heads up
no they are not
but the apex objects on original tanoa, will be?
thats what sitrep seems to hint at
it hasn't happened yet, and has only happened, because people are using origami
pretty much all stemmed back to you, kudos to that ๐
making these objects available 'so that people without the dlc', can use the communty map. is an inevitable by product of providing pbo for people WHO DO HAVE THE DLC. Bis aren't being generous here, it's just a consequence. The real deal is, bis are just officially letting dlc owners to finally make maps with dlc assets!
you'd have to ask where the logic was in providing a much more IP sensitive weapons.pbo ages ago. but locking everone out of making maps.
but that's the reason why they are making those objects available
I can totally see this being a thing that just slipped through when they were packing and no one really thought about it
that's what is confusing me Jonpas, i cannot see any evidence of anything slipping thruu.
argo assets are not tanoa assets
well that's right, so I;m confused by spurious reports about them making a mistake.
what is EBO are Tanoa objects right now, and those will be PBO in 1.72, because they realized people want to use that on community terrains without Apex, they could've just said "well you need Apex", so they are being rather generous
they probably just packed the new Malden stuff into PBO as it's simpler for dev-branch updates, as they will make Tanoa ones PBO as well
so why bother with EBOing and huge downloads ๐
that makes sense
that's at least what I gather from the SITREP + what's on dev-branch
so I guess we read correctly if we agree ๐
I don't think it's a bad practice to get some income from it and then make it "public" later
feels good to me ๐
that's how they handled karts and marksman, i think every one 'accepts' that.
mhm ๐
but, there's been misinformation fkying around in forums and skype/discord channels that the tanoa structures have been released as pbo. this is wrong, it's argo assets.
,,, and now, it seems tanoa will be unlocked.
well @rancid relic mentioned that all the APEX assets will be part of vanilla once 1.72 hits
yep, but that's a different story to the original misleading, misinformation, that the community has been spouting.
ahh gotcha
yea the only thing is argo assets are pbo, tanoa will be open later for all in next stable
^
welcome to hell:
6.31 changelog
made further improvements to rapify
rtm: better throw error messages (credit kju)
fixed write lzo compression when stripping bones (credit kju)
makepbo: (credit kju)
c:>
makepbo d:\some\where placed pbo in some\where, not some
makepbo: now automatically places a version= in header of pbo (if not over-ridden by pboprefix.txt)
the last mentioned is an important bonus for you folks.
you will always be able to track WHICH version of your pbo is being used, whenever you get a complaint.
the value produced is equvalent to what you see for bis addons in the rpt file.
So it writes the version to RPT at game start? That's neat :3
no the engine reports the version at game start ๐ค
providing you keep a note of the version on each release, your 'customers' can no longer lie to you.. In gerneral terms, to swear on bibles they are using the latest.
What does "the engine reports the version" mean? Where can it be seen?
@glossy inlet in the rpt (under "Loaded addons") the pbo name (with full/rel. path) and version (if available in the pbo header - else: unknown) is listed
Thanks. I hope as many addon makers as possible use that then... A lot of people don't have any version inside their pbo or in their bisign name. So even I sometimes don't know what version of something I have
sadly that part of the rpt is missing on linux servers
does that mean we have to manually add version to every single pboprefix though?
otherwise it will be different from what is in CfgPatches?
never mind
I properly read it now
it is for example 15:59:48 addons\3den.pbo - 114846
great, we already do that in CBA/ACE/ACRE through our build scripts (commit ID), will be good to see it basically being forced for everyone to have some form of identification
yes. cba use the hash of the git repository, bis use the svn rev number, i use checksum, and a datestamp would be the same sweet smelling rose.
๐๐ป
What is the length limit for the version information?
it's as long as a oiece of string
strings can be long..
%s can be any length. windoze Cstrings are limited to 32k
as for what bis do, don't do, change their mind, break, and above all don't document anything. the answer is yes.
for instance, the engine is built round utf8, but bis don't know that so mistakenly list pbo properties as winansi
properties are of custom type RString which basically is a char array
all based on std:string which they all are. But for eurpean languages the actual nChars is around 10% less than the nBytes used to encode them in utf8
so max len is a little problematic.
it's not based on std:string
oh, tha's a surpsie, i looked, and assumed it was, don't know why. saw something that told me it was. obviously wrong.
the code always feels like they wrote everything themselves. math, strings, file system... everything is custom
That was the C++ style de jour when the engine was written though.
Using the STL was often problematic because C++ compiler implementations of templates were very poor.
And the underlying semantics of std::string (that relate to performance) have only been specified in recent C++ specifications.
my ignorance of templates is deep since i won't create them in any of my code and limit my use of outside ones to CStrings which are bad enough. Seems like 50% of the world still 'prefers' to use #defines to achieve similar.
Feels like 50% of the world is still on C++98 ^^
why wouldn't you create templates in your code, rather writing same functions multiple times, cool I guess -.-
While I'm on the "use templates" team, the answer to your question is that some people don't like to read 1.5GB of error messages ( https://tgceec.tumblr.com/ )
why wouldn't you create templates in your code,
<<be><<cause><t><eyre>><unread<<a>>ble>
Good thing they're making them more and more readable with each C++ standard
yes. i agree that they're improving
using becauseTheyreUnreadable = <<be><<cause><t><eyre>><unread<<a>>ble>
my biggest beef with them, is i don't want hintlines with func(<burble>)
i want func(float)
func(float*)
func(double)
I dont really see the point in using templates since std::variant .. usually templates arent even used for that many different types
std::variant is a template though ๐
but "nicer"
it atleast gives you and insight in whats going on in 300 line error messages
I was too lazy to write it, so I found this that describes exactly what I wanted to ๐ https://stackoverflow.com/a/622722
not wanting to write <> is just a silly argument
not wanting to READ meaniingless gibberish is not so silly
except it's neither, so just not wanting to read? XD
i want my hintlines to make sense.with specific variants on what parms can be passed.
i also do not want six versions of some quirte comlex code exposed to the outside world. and I don't want to force a recompile of all the sources that use that template because i've made a change to it's inner workings.
i also don't waant my complier wading thru 300 lines of template each time it needs to select one of the variants.
templates are like #defines, they're very neat to write and look clever and efficinet until you come back to them two months later and try andfigure out what the hell they actually do.
and that's where proper use of templates comes in
they can be used in a very ugly and retarded way
templates are sometimes very useful sometimes not.
You can code a template to do a 100 different things. But you can also code 100 classes that are all similear named and do basically the same thing..
Not going for the template is just horrible code
Like.. Implementing dozens of variants for an array or map container just because one doesn't like templates.. just no.
๐๐ป
yep agreed
How would you roll back arma 3 tools? putting in "Arma3Legacy168" for the beta code doesnt work...?
arma3p updated to extract argo
for those of you with headless servers, there's a headless switch at top of file so that you guys get no pausing
depbo.dll updated to polll once/day looking for updates
@dawn palm โค
could you add some parameter to enable the headless mode? then I don't have to remember to change it after each update ๐
the same for full extract would also be appreciated
never thought i'd think of cmd script as being worse that bis script.
i now know better
!\usr\bin\perl please Mr Goat God
๐
Pft, templates are wonderful. They're often the only way to write very abstract modular code that can be statically compiled down to monolithic high performance code (e.g. see AGG/Anti-grain geometry).
And to crypting error messages with templates.. just put some static_assert's in there. If you're error messages are still to crypting make better static_assert's
haaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
like #defines which I've also come to detest because my code is riddled with them, i no longer remember how the define or the template actually worked.
i've used templates (and defines()) for the reasons you point out Ian, and come to regret it whenever i have to debug. I acknowledge their usefullnes, their versatility, but it's a personal choice that I now avoid them. I am not alone. There will be a group who swear by them, and can use them succesfully and properly, i acknowledge that too. But this dog is too old to learn new tricks which turn out to be re-invention of the wheel.
I also have no use for c# and it's friends, but reccomend to anyone starting out that they go straight to c# and avoid c++ because it's not that useful to them. Because of that, <templates> have probably taken on a better usage in C# and it's friends, than I have knowledge of.
Hello, so i am trying to use PBO project to obfuscate a file, but i keep getting obfuscation is disabled, makepbo failed. i have installed everything in the mikero tools updater, and it has no errors in the view outputs
You are using the subscriber tools right?
yes
the free tools must be totally replaced with new ones. use the maverick updater to do so.
Hmm, I think my install location is different for the newer ones, could the old ones being installed somewhere else be the problem?
Yes, it because the old tools were installed somewhere else, all working now, thank you
I ALWAYS OBSFUCATE MY WORK BECASUE IM SO GOOD AT MODDING
Ehh.
I mean, cool stuff i like stuff.
@dawn palm what was the update on the armaA3p ? is it a must to re run ?
Btw. What is the reason that you still need a P drive? Mikeros tools can unpack PBO's. Mikeros tools also know where Arma is installed. Why not just grab the files needed directly from Arma pbo's ?
never understood the need for PDrive at all tbh ...
never had one (or more: removed it when it appeared on my system)
never wanted one
the whole idea of the PDrive is screwed anyway
for scripters it has usually no meaning
but as soon as you work with models or terrains you appreciate it
neither for anybody else
it is just waste of a sym link
piling up shit on your system
and you have to relink in case your HDD fails where the PDrive is linked to
at least i do
the technology we use for ages is called "File System"
and PDrive is nothing else but a virtual HDD linked to a folder in that ...
yea it simulates what the engine sees in a unpacked form
which is absolut waste of a drive letter
Only experience I ever had with Arma 3 Tools pdrive was recurring bluescreen on boot that I could only fix by editing the registry from a linux boot stick. Because Arma 3 workdrive doesn't properly clean up and fucked up my ramdisk driver
clean project space and lookup table
no idea about BI tools, a simple virtual drive and arma3p works since ages for me
I'm using a ramdisk as pDrive right now. Works fine for me. But I really don't see the need that a tool that can unpack or read PBO's itself needs PBO contents pre-unpacked.
i see no need for a PDrive ... there is litterally no difference to setting a root dir path
afaik pboPro does not need it, it's just the design of it that it requires you to have the files in place to check if it could find them ingame aswell
True. It needs them to either check if they are really there. Or it needs Headers that you include in your configs.
i think binarize requires some stuff but from what i read mikero is locking that away as much as possible
yes binarize needs access to a lot of models when converting terrains
and I think binarize does not read from pbos
it does not
rvmat are merged into p3d by binarize - another sample why unpacked data is needed
virtual drives help to separate different projects
mikero's tools have been made to ignore other data, so is not longer necessary for them, but thats not true for BI tools
ALL file addressing in the bis engine, it's rvmats. it's p3ds, it's configs. it's wrps, begin at \
there is no such thing as a C:\ a d::\ and certainly not a c:\my documents in the bis universe.
ALL addrssing begins at \
this means, translated to the windoze world, ALL objects in bis start from
drive:\one\common\folder
the file reference inside an rvmat (or any other file) has no knowledge of \one\common\folder. It's world begins at \
as a sheer convenience to people's sanity this is shortened to a 'p' drive. not necessarily P:\ but the beginnig of the windoze world and engine's world have a common point of origin.
-
you don't have to use this sanity if you don't want to. pboProject is just as happy to work within a '<workspace>'
-
pbos are not relevant to any discussion here, they are not part of the DEVELOPMENT, they are part of the end result.
there's no eathly point trying to find out which pbo contains a spotted\girrafe when that girrafe hasn't even been packed yet
but you do need a pbo for development, just not binarized or anything so you can make use of filePatching
yes, sure. but that's nothing to do with crunching he stuff. which is what P: is all about.
yes indeed
p:\ or Q:\ or Z:\ is the common meeting point, it garantees, that no matter how many differern pbos and mods you make, they all sing from the same song sheet, they all use the one, common, extracted a3, they all use the one, common, just made pbo, and they all use the one, common, E76\roads from some\other\mod
yes. you can achieve the same miracle, by always using the c:\same\common\folder. But how long do you think that bit of discipline will last?
the point of confusion here is for mission makers and scripters who rarely use \addon\addressing. their world starts and ends at the description.ext boundary (for campaigns), and rely on nebulous calls to named classes (eg cfgvehicles) and named functions, not,the files themsleves. Mission pbos's are not addons and don't have prefixes .
But the moment they say loadfile \x\cba\bla,. they are subject to the p: drive.
...and it is a foolish foolish mission maker who assumes that file exists and is spelt correctly.
can someone please upload a .sql file for arma 3 lakeside the sql file im trying to execute for my DB is failing
when i try to execute my sql file it fails
@boreal night If you don't know how to use a Database and SQL. Why do you have a Server that uses a Database and SQL then?
๐
regarding "p drive", it is possible to mount the pbo files as a virtual file system that can be used as "p drive"
takes away the need to recreate it when a new patch is released
and wastes no space
just a drive letter
I built on on top of https://dokan-dev.github.io/
@scenic canopy Thank you very much. I've needed something like that for a looooong time
probably not updated to the latest release of Dokany
uses quite a bit of ram for all arma 3 pbos ๐
should be up to date now
haven't finished implementing search in the virtual file system
With that I can probably build PBO's live from my C++ code and let Arma think they are just normal pbo files :3 A lot of fun to be had
nice share ty @scenic canopy
as i do not want to install ArmA right now, anyone knows if there is a "PID" file for arma3 to check if it is running already?
and while we are on that topic, does anybody by chance knows the registry key that says where the arma key is?
Don't think so and.. yes. searches
"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Bohemia Interactive Studio\ArmA 2 OA", "main"
"HKEY_LOCAL_MACHINE\SOFTWARE\Bohemia Interactive Studio\ArmA 2 OA", "main"
You can translate that to A3 yourself ^^
ty
arma3 uses hkcu, arma2/1 use hklm for the tools at least.
arma3p looks for arma3 registry in one of several places at very top of the bat file.
syswow is only relevant to a2 scribbling into hklm
I'd imagine there is a PID somewhere, since the Arma 3 Launcher knows when you have the game open. @smoky halo might be able to provide more information.
@nocturne basin -pid=<filename> is you're start the instance yourself; otherwise you've to do it the old fashion way ๐ฆ
meh ...
need to detect users arma3
hoped for not being in need to do that via process list
If the Debugger is there you can detect the Named Pipe opening
Actually, the registry entry for A3 is:
software\bohemia interactive\arma 3 (main)
(without the "studio" part in the name)
not for everyone. there is no 'main' in my registry. I use dwarden script which sniffs at steam (valve)
for /F "Tokens=2* skip=2" %%A In ('REG QUERY "HKLM\SOFTWARE\Wow6432Node\Valve\Steam" /v "InstallPath" 2^>nul') do (set _ARMA3PATH=%%B\steamapps\common\Arma 3)
if defined _ARMA3PATH goto found_A3
welcome to hell
the full list of regkeys (6) of where it might be on a person's pc is in the top lines of arma3p
bis progressiively moved it's setting from arma3 alpha,beta,to present day
all credit for above info to Dwarden.
a dialog prompting the user might also be doing it ๐
You have no main? Huh? How is it possible? That entry should be created by Arma launcher...
The only"issue" I've ever had with my custom launcher was that checking integrity on steam deleted those entries, but as I said they were recreated as soon as Arma launcher was run afterwards
main value in there registry is created either by Steam install script or the game when it starts, Launcher only uses the value when it is available. Otherwise what you S(O) said is true, Steam has it's moments and deletes the existing entry.
Hmm... I'm not really qualified to say what program does what but, at least from an end user perspective, the launcher (or maybe just steam?) recreates those registry entries.
I've got a workaround that when the registry entries are not found, it launches [steam_exe_path, '-applaunch', '107410'], waits until the entry appears, kills any arma3launcher.exe process that may have spawned and continues its regular work.
Since I've implemented it, I don't think I've received any complaint about "arma not found"
Steam creates the Bohemia\Arma 3\main entry on first start
Atleast starting once in Steam creates them
Btw. now that I had the time to look at your script, mikero, this is only going to work if you installed Arma in the default Steam location. If you create another store on another drive, it's not going to be found, obviously.
In case someone would like to go the Steam library way, they have to parse libraryfolders.vdf located at the default library location to find all available steam libraries and then look inside those for somethinh/something/Arma3.exe:
https://stackoverflow.com/questions/34090258/find-steam-games-folder
I've never had a reason to use arma launcher. But as wizard says, it's a reader not a scribbler (I assume). In my case, neither steam, nor the game itself write 'main' to the registry. (arma2 did). It could simply be that because i do have an arma 3 KEY in all the right spots, it doesn't check that I have a token pair called 'main'. This might be caused by some historical hiccup from the days of alpha pre-releases ( eg when all sound files were wav).
As for the above dwarden script not working: there would be a conservative 10,000 copies of arma3p out there. It has never been reported as not found. One of the six registry keys seems to yield a result. (but i also agree you can phool the steam entry)
correction to above. prior to dwarden supplying the above script which added the valve scan, some arma3p's did fail.
putting foot in mouth and hazarding a guess, someone at bis discovered that steam does not reliably write the 'main' token pair to the registry, so came up with this fix.
Heh, that would be quite probable ๐
So, I took a look at arma3p, and basically, you're looking at HKLM\SOFTWARE\Bohemia Interactive\ArmA 3 (+the Wow6432Node which is a "subregistry" for 32-bit applications, AFAIK) and also at HKLM\SOFTWARE\Bohemia Interactive Studio\ArmA 3.
Now that I think of it, I actually remember that I had one case with a person having the arma keys in the second location but as it was only once, I dismissed it as him doing funny stuff with his computer.
yes to above stack (notably syswow comment). There are actauly 3 variants:
hklm vs hkcu
bI vs bi studio
software vs syswow\software (poetic license used)
you can see this progression better in bis personal tools 2.5.1 versus the steam tools equivalent. Not, of course relevant to where a3.exe is, but a better understanding of where the variants come from.
@glossy inlet @nocturne basin
- did you guys measure packet size/traffic of pV vs setVar vs remoteExec?
- does your IDE/tool set have the capability (or plans for it) to measure/calculate/estimate MP traffic?
No. No.
We can't really know who might at some point in time call a script that might depending on external conditions potentially send a variable whose contents we don't know over the Network.
Intercept is getting an external Networking Plugin though. So you can share Variables and other Data through a seperate Network pipe detached from the Game itself.
sure of course. yet you could log outgoing and incoming traffic (and if you can break that down to the specific source, one would have excellent detail already)
Arma network stuff is encrypted. And undocumented.
like BI did a simple variant with mpStatistics.log
well the leaked source should give some idea, does it not?
in regard to encryption - forgot about that.. can you not inject your code at the right place to intercept/sniff the traffic (probably hard though)
at least back in the day the internal exe was writing the traffic type in mpStatistics.log instead of the ids - maybe BI is open to share the mapping finally..
They probably obscured it to protect themselves from Hackers.
But as I said a few months ago I could write a deobfuscator for that.
well let me rephrase it - is there any insights currently on pV vs setVar vs remoteExec use in terms of optimization?
No.
The debugger could detect which variables are being publicVariabled. and what is remoteExec'ed. Won't help you much in Optimizing your code. But will help on finding Problems
well (good) statistics is the/a first step to real optimization
Dunno if its even possible to differentiate between pV, setVar, remoteExec and normal traffic
I could however setup a small test envo in which a HC is the only connected "player" on the server and let the server send a specific amount of variable of a certain size (lets say numbers, because they are all 32bit), measure the cause traffic over time and substract the a default traffic usually cause over this amout of time
the problem is: Thereby I can only measure the amount of overhead each type is causing (and how much traffic it actually causes) but not how fast each on is and wether the order is the same
and only overhead is quiet useless
@vague shard there is lots of space and adding a plugin that would allow such a thing is no magic
if there is a way to gather that data, we can display it using ArmA.Studio
depbodll update
a few small bug fixes of no real consequence, but a very nice fix to the 1024 char limitation when setting the environ path. This annoying 'feature' where you sometimes had to do it manually has gone away forever. A nasty bug in the windoze setX command was the cause.
small cosmetic changes to eliteness to make your lives easier.
for those who like to know about such things, my tools are now fully HKCU, HKLM is no longer used for anything.
@dawn palm any idea what this error means http://i.imgur.com/BCGWQV3.png I re-upped my subscriber tools and now have this error popping up with the new install of tools
not sure what changed but they worked before, now they don't and I don't have anything that is named class 1
its on a ported a2 datsun as well, model.cfg works in OB fine + no changes besides tool upgrade
made me giggle http://i.imgur.com/2tDzIPS.png
I don't have anything that is named class 1
you don't but the 'master.cfg' found in a root parent class does
reinstalled/updated + cleaned out temp folders seemed to have fixed it
so not sure what was up
but its working now lol
@dawn palm Reference the discussion from a few days ago about registry entries and Arma3p, I've just had the issue on my PC during a reinstall that non of the 6 entries in the cmd file were valid. I had to edit your code to set the path to arma3 manually. I believe the problem may be related to having multiple Steam libraries (on different drives), and Arma is not residing on the default Steam installation drive.
you will be 100% correct about that. stack has advised me of that issue and am scratching head trying to resolve it. Have to say, the problem you faced is rarely encountered. All previous occurences were genuinely bad installs, but yours isn't. Thank you for the heads up
Unsurprisingly, if you run bi's steam tools 'diagnostic' which produces thousands of lines good quality info, not even bis know or list where arma3.exe 'is'.
anyone know of a linux RCON->SQF bridge? found both ASCT and sqf-rcon, bbut they are windows only. looking into how to compile a .so to make a linux version of sqf-rcon but that'll be a long journey at my current skill level
Would it be possible within Arma3p.cmd for it to detect the path automatically, as at present, but then ask the user to confirm if it is correct, and if not, to enter the path manually?
path not found > ask user to enter manually
path found > ask user to confirm correct Y/N > if N then enter path manually
yes. it would
i don't need confirmation if the path is correct. only when i can't find one.
there's no point them telling me the path is wrong, because it means their installation is wrong.
BUT, there's always shades of grey in this.
Because it couldn't find the correct arma installation (multiple steam library), it went on to use the default Steam installation folder, but arma isn't located there.
yep. that's my error for sure.
You probably can't always guarantee that an auto discover is correct, so a chance for the user to over-ride might be worthwhile.
I agree with that. i have some truly excellent py code from stack overflow (bless him), just have to tweak it for my own needs.
Excellent. By the way, many thanks for your tools, they're superb. Especially the error reporting from pboProject.
thank you for that. I do give my best.
There's a phase shift that's occured over the past 12 months where, previously, if i reported an error, i'd get complained at that the user had some work to do. Nowadays it seems to have been accepted that it's far far better to fix the problem than pack, load game, find a fault, pack, load game, find a fault, pack......
Definitely. Having all the errors pointed out, along with which file and even the line numbers has been brilliant.
The only dissapointing thing is fully 40% of my processing crunch is spent checking what bis binarise screwed up.
That's how you make the big bucks though ๐
๐
This may have been asked here before - what causes Buldozer to stop showing textures? Sometimes we install and get textures, other times not. Some people have 'fixed' it by moving buldozer + dll's to P:, but it's not 100%.
talking about Object Builder buldozer
...and other people have 'fixed' it by using the only buldozer you have on your pc. it's called arma3.exe
That's what I'm using. Arma3.exe no textures
if you're talking object builder , not t/b. you haven;t fully extracted all game files.
I used arma3p. Anything else I should have done after that?
never run as admin.
always use a shortcut (never start from bis tools)
'play' steam tools once.
that's the mantra, laid down by bushlurker among others from the very begiinnig of ALPHA arma3. bis may or may not have fixed each issue, but that's the mantra.
OB is run by double clicking .p3d's. Not running it as admin. Steam Tools was run once. Same process as I used last time when I had textures. I think there's something else aside from the 3 mantra points, no idea how to figure it out as there's no errors in the buldozer rpt.
are you viewing a p3d you made with your textures?
could be your path to the textures are wrong
also make sure to set the options in OB for texture path prefix
Textures show fine in Object Builder itself. They're tga's and no errors on paths.
I have a texture path prefix, but not sure if it is correct. I tried a few, lol.
it's p:\
Will quickly try p:\ again, although think I already did.
unless you really really want to go back to the days of arma2 where you had to copy the enture contents of the p drive into each p:\project you made (if you were silly enough to use binpbo)
P:\ didn't fix it. Still all white objects.
Textures show fine in Object Builder itself.
yes
how does that reconcile with "Still all white objects."
When viewing the object in Buldozer, it loses it's textures.
it depends what they screwed up in binmakerules.txt
and really, you have no good reason for using tga at all.
it's just a lag monster and time waste
The reason is that it shows the textures in Object Builder, really useful when editing.
And no apparent slow down that I've noticed.
a paa can't show the same thing?
BIS use tga's too.
no. they do not. there's no driver in the bis engine that 'shows' tga
pac/paa is a direct feed into directX
.paa's don't show textures (at least for me, or any one else in our team)
When you build the project it auto-converts the tga's into paa's, which is what gets packed into the pbo.
(lol, talking like I'm an expert...just an enthusiastic amateur)
Tga can be used in OBS viewport when using directx, buldozer should automatically convert tgas to paas as the engine does not read tga
i do that yes, and i treat pac.paa.bmp and tga as born equal. i also alter the p3d' to say 'paa' and the configs and the rvmats, and if i 'discover' tga i automatically call pal2pace without disturbing you.
bis binarise never 'sees' tga
Did you try to pack the addon yet to see if pboPro catches any issues with your data?
good point
Yes, it packs fine with no errors. These are mods we have released. Yesterday buldozer showed textures. Today's install doesn't. Another person with the same mod sees textures.
To be clear, I'm only talking about textures in Buldozer, run from OB. In game all is fine.
my imho opinion is if you can't use paa as mutually equivalent, something is screwed at your end.
check if your pdrive is visible by opening "File > Open..." in OB
Yes, p drive is visible from File>Open.
if you can't use paa, you can't convert to paa, hence, white textures.
make sure the dll folder in OBs options is set to your a3 tools path > object builder
It is.
i use these startup options for the arma3.exe in the external viewer option:
-buldozer -nologs -name=Buldozer -window -exThreads=0 -noAsserts -cfg=buldozer.cfg
do not use the x64.exe for OB only for TB
mikero, if you open an object in OB, and switch on solid view, do you see textures when they are .paa? We never have. Only when using tga in directx.
^ only tga
oh that;s interesting lappi. never knew that.
Using arma3.exe, not the 64bit version for buldozer.
then i'm out of ideas :S something is weird with your pdrive to be sure
the issue for you Apolllo is you're using tga, and you're praying bis get it right.
buldozer automatically converts tgas that do not have a newer paa version on buldozer startup
it opens a cmd
It's worked for well over a year of modding. Reinstalled, now not working. Defo something 'wrong' my end, accepted, but as with others with the same issue, we don't know what.
you will end up with a tga and a paa of each texture in your project anyway, pboPro will take care to oply include the paa into the pbo
damn right
on v large projects such as cwr exceeding 9gig of source we removed all references to tga from svn repositories. It was just too damn painfull otherwise.
We at 3CB have a VERY large GIT. Shh, don't tell.
haha
They're necessary though because .paa is compressed, and the compression gets worse on each edit.
we chose not to keep them on svn, just one of the reasons was binarise got confused about file dates.
btw, I just converted a small object to use paa's in OB, and still no textures in buldozer
converting stale png or tga, and ignoring fresh ones.
Yes, that is an issue. When you edit the tga, it's necessary to delete the associated paa so that it reconverts it. Bit of a pain.
9gig of pain
no pain, no gain ๐
re your texture point it to something pre-existing in the a3\folders and check the result.
doesn't matter if it's blue black or green with pink spots.
gotta run to a exam, good luck with buldozer ๐
thanks for the help Lappihuan
repointed texture to blue/pink spots texture from a3 (took ages to find it), no texture in buldozer
I have to head off too. Thanks for your help too Mikero, much appreciated.
I may have missed if this was mentioned, but in your OB options do you have "Path for textures" set to P:\ ?
Buldozer texture issue solved... for good reasons which escape me at the moment (need @vernal cosmos for that), we (3CB) do our development within a sub-folder on P:. Inside this subfolder (P:\UK3CB) we have a symbolic link for the a3 folder.
So no, our OB texture path reference was set to P:\UK3CB\ . However, changing it to P:\ didn't help either during tests earlier, presumably because it broke the path to texture.
What I have found does fix the issue is to copy the P:\bin\ , P:\core\ and P:\dta\ folders into our P:\UK3CB\ folder. Presumably these can be symbolically linked too, will need to check that.
Thanks to those that helped. Now I've found a 'fix', we can decide how to optimise our work environment. I've typed it all out here, in case any other groups have similar issues with what is probably a non-standard set-up.
Hello there, did someone get the same error as I do ? When I convert .png files on .paa, they aren't the same color...
Like in this post https://forums.bistudio.com/forums/topic/157041-wrong-color-with-paa-files/
They are :/
picture for reference : http://i.imgur.com/hfo3e5Q.jpg
Doesn't he need to add the correct extension to the file name for the conversion process? ...insignia_co.paa or ...insignia_ca.paa
I don't see how a file name could possibly influence colors ?
Allright, I just need to rename it or reconvert with the new _ca or _co suffix ?
Yes.
Change the name of your tga to ...insignia_co.tga. Then convert it to .paa with TexView2.
Even if it is .png files ?
As far as I understand it, at some point your image will get converted to .paa for packing in the pbo, and at that point it has to have the relevant suffix.
Thanks @sour hedge
But still no changes.
Did you try bringing the object to the top of the stack?
@sour hedge why would you have a3 symlinked in your project dir?
a3 needs to ve referenced via P:\a3 otherwise your references wont work ingame
And if you decide to do a full pack of your namespace by crunching P:\UK3CB you will repack the whole a3 data into your namespace
Yes, apparently we don't need to use a project subfolder with symbolic links anymore. I've moved the mod dev into the root of p:\ and all is well once again with the universe.
@sour hedge What do you mean by Did you try bringing the object to the top of the stack?
Select the object with the insignia texture. Faces > Move Top.
mod.cpp also has some color parameters, and CfgMods I think
we don't need to use a project subfolder with symbolic links anymore.
this brilliant piece of logic was caused by binpbo for arma 2. which required a copy of (most of) the p: drive to ALSO be in your\project
arma2 wasn't at fault here, binpbo was never fixed by bis.
Arma2p (not arna3p) created a WRP_OBJECTS folder that you had to copy into every single project you worked on because at that time mklink wasn't easily obtainable for the os.
pboProject came into being specifically to get rid of that bullshit because bis couldn't.
and the same perverted logic persists to this day with bis binarise which requires a duplication of almost everything on p:\ into p:\temp.. But since this is managable by coding, most of you don't notice that pboPro silently does that for you.
and along comes addon breaker from the same company that gave you above ๐ค
arma3p update:
- headless operation now achieved by patching as before OR command line
arma3p/Z
will automatcally extract to the Z: drive
if you don't have a z: drive, that's your problem. you are supposed to know what you're doing if you don't want prompting.
-
shortcut and icon now placed on desktop (optional)
-
good bye bis registry coz you keep moving goalposts.
I now use Stack (overflow)'s heavily modified Py script to achieve the impossible. Thank you thank you thank you.
arma3p will now correctly locate your game on non-standard steam installs.
๐
Well I still didn't find a solution to the blue/green tint when converting .png or .tga files in .paa format...
http://i.imgur.com/hfo3e5Q.jpg
I tried using 24bits, _co suffixes... no changes
x^2 is usually the problem for theese things @candid scroll
Ratio 2:1 or 128x128, 256x256 have been tried too.
8bit?
Maybe should I mention the point it to get a custom texture in orbat viewer : https://community.bistudio.com/wiki/ORBAT_Viewer
The thing is the picture is loading with good colors somewhere else like in the insignia part, really weird : http://i.imgur.com/EGX5RBV.png
edit: not a SF fanboy, just proof of concept
@candid scroll thats because the ORBAT screen adds blue to a certain degree
those flags you see there, their texture actually is gray
some config entry decides which color they will have
no tool issue but #arma3_config related problem ๐
wat. I just spent 6hours looking to find out. So I should let it go
you should have asked ๐
Is this just... random then ? I can't choose my color ? Jeeeesus
you do can
there should be some config entry which decides that stuff
can game binarization (on load) handle model.cfg merges if you have them in same structure on P drive and file patching enabled? or can only pboProject do that?
well assuming your model in-game is an mlod, i think the answer is yes, and the reason i say that is because buldozer must look at your config.cpp/bin to activate doors. (am scratching head whether it looks at model.cfg too)
whether it will reload with alterations via file patching is in the laps of the Bis Gods
i suspect models are not re-applied
BUT you can, in fact answer it yourself via the config browser. cfgSkeletons and cfgModlels are built as the game loads just like configs
not really interested in file patching it
but just using a higher-level model.cfg to be merged into like pboProject does
is what I mean
ah ok
again, i think the answer is yes, on the assumption that buldozer would behave similarly
hmh, in that case I am doing something wrong or the answer is indeed no
haha
in truth i've never tried to put doors anywhere but the adjacent config.
but pboPro/binarise will, unconditioanally 'work' properly if they're in a parent folder.
no.it only checks it.
what' you're 'seeing' is the result of a test-verify, not the finished result to binarise. which does it's own thing.
building master.cfg from \...\model.cfg
adding \...\model.cfg
that's checking then?
yes
hmh k
and model.cfg is an invention of bis binairse. it actually uses a different rapifier. it's highly probable, that the engine knows nothing about how that mechanism works. if it 'sees' class rotation; it expects it to be in the config.BIN
in reality you have to see model.cfg's as a series of hidden and implied
#include "../model,cfg"
the engine itself knows nothing about that unless they coded it to know. and i think we all know the answer to that.
well, it has to conform to bis binarise
it's a very clever piece of tooling that some guy at bis 'invented' but as usual they don't follow thru fixing the wrinkles.
yes, but game won't go searching for a model.cfg that's not in that pbo already
not quite right there jonpas. there's nothing stopping it looking ..\back thru it's virtual file system
but yes, it implies the parent model,.cfg is indeed in another pbo with a shorter\prefix\string
yeah, I'll try hacking that tomorrow
would save me a lot of time if game would just binarize it instead of clicking back and forth
why would you want to impose the lag penalty of the game binarising anything?
because it's faster to allow the game to do it and do something else during that time instead of clicking back and forth to binarise the whole thing
i definitately don't understand where you're coming from there. not arguing with you, just can't see the logic.
anyone ever had issues when opening object builder and it crashes and closes arma tools? w10, fresh install
opening binarized model?
opening nothing, the tool itself doesn't launch and crashes arma tools as well
- 'play' steam tools once
- never run as admin
- always use a desktop shortcut, never from steamtools
these are the mantras since the beginning of arma3 alpha when there were hardly any tools for it at all.
tyvm
welcome to hell:
pboProject now checks when making maps that cfgSurfaces, surfaceChars, and cfgWorlds.clutter are syncronised correctly (no missing or mispelt classnames)
This check can currently be turned off in Setup->, in case i've made a booboo.
Tweaked: The diagnostics executable should now crash earlier in case of invalid memory addressing. Please report all crashes, especially when the "Forced crash: array access out of range" message appears in the RPT file. We hope to use fixes of such crashes to make Arma 3 more stable in the long run, but need these more drastic measures to track them more effectively.
thoughts?
Couldn't they just create a crashdump. Show a message. And continue running?
@dawn palm is there anything that can be done about using #include "..\blahblah"
inside a cpp/hpp it gives In File ..\ADT\ADT_Defines.hpp: Line 5 drive: specifiers can't be placed in pbo, and have no context in linux servers but works fine in pbomanager without obf
that sounds like an 'undocumented feature' to me, lookin now.
pboProject
was remiss in not giving bludclot and friends the credit for cfgSurfaces et al. Thank you folks.
new version 2.16 fixes an embarrasing (but minor) ctd.
@dawn palm if its an #include in an sqf for macros its works, just ..\ in cpp or hpp
k
@dawn palm headless arma3p works perfectly, big thanks!
@mental terrace ../../ fixed
how this glaring error has survived so long is just one of those mysteries.
Thanks ๐
welcome to hell:
dll:rapify now supports EXEC/EVAL(selectRandom ....); for description.ext only
this produces a non-constant, which can only be used in above file
pboProject now validates source\layers.cfg and checks cfgSurfaces and frendz have stated the probability array correctly
wlecome to hell:
prepare for more hair loss
pboProject now validates roadslib.cfg
all hate mail to Uro please
Thanks @narrow bough
lol
@dawn palm damnit, I spent the entire yesterday fixing issues on our Islands ๐พ
burp. send all hate mail to Uro & frendz
Hehe, big thanks for the new checks ๐ค
yep. they come as some surprise. Don't they. the inter<>connection between layers.cfg ->cfgSurfaces->chars->clutter, is all obvious in hindsight. it's getting there without typos and mistaken classes, that takes awhile.
Good to hear tho that I haven't made any howling mistakes. so thank you.
where did you get the list of valid values for the road map type?
Uro (and from biki re geolod map=)
'road'
'track'
'main road'
technically you could have any of the other types. rock, house, view-tower
but the above 3 are the only road map types
cool
noticed both in our and in others maps the usage of path, hide etc
I guess those just won't show on the map
i'm not entirely confident of that document, even tho i had a hand in writing it.
at least I managed to fixed a couple of invalid types in our layers.cfg
very nice ๐
yeah. layers.cfg is not explained at all, in any of the major map making tutes. Just examples shown, with a wish-and-pray-it-works.
a 'better' document for map= because it's accurate and up to date is:
https://community.bistudio.com/wiki/Named_Properties
but i now have my doubts that there's any real correlation because you have to state map= main(space)road in roadlsib but 'mainroad' in the p3d
so you've reminded me that i too have seen 'path' and it is probably acceptable.
did anyone ever consider to decode the TB file format?
the benefit would be 1) to potentially avoid TB completely at least for certain use cases and 2) to have a working object import for scale and tilt
You mean the tv4p or whatever fileformat?
I've always considered that vbs file formats don't need fixing, compared to mistakes made in odol.p3ds and wrps eg. Perhaps naive, but that's the reason i've had no reason to analyze them.
Considering the upcoming BTT from miro which makes TB obsolet i don't think its woth the effort
and any problems with BTT will be acknowledged and (good heavens) fixes will be attempted.
think i'llhave to go and have a lie down before I faint from amazement.
well once BTT is here, it may change matters - for now it doesnt exist and given the history to rely on it seems risky
damn. balloon punctured.
hopes deleted ๐ค
people were able to survive TB without the X and Y rotation import for over 3 years now ๐
last time talked with miro he was pretty optimistic about a release soon (tm) ๐
well TB is not fun to work with people say
especially the crashing and occausional freezes
therefore being able to do pitch and scale in MB/X-Cam would be a BIG relieve
the freezes seem to occur only on win8 and win10 and seem to be fixable with compat mode set to win7 or xp
Is it possible to do scaling of objects in game yet?
i've seen 1 guys in the terrain_makers channel that couldn't fix it with that iirc it was @violet hare , did it get better since then?
@scenic canopy scaling of objects is not possible via sqf afaik, the only thing possible is scaling particle p3ds
Yeah, that would help too ๐
MB and xcam get around this by scaling the displayed bounding box of the object
but there are to many limitations for such tools to be a real replacement for buldozer
can you give some examples of those please @smoky halo
@smoky halo mine works great after about 1-2 minutes of maybe freeze maybe not, I have another friend who freezes on start and can't recover ever
he already gave up arma modding
Either you break ArmA or ArmA breaks you
@smoky halo yep
too many limitations for such tools
@vague shard
first and biggest for me is edit heightmap, constantly ajust the heightmap while placing objects (switching between HM brush and object placer in BD)
no visual representation of object scaling (other than the boundingbox)
no road shape drawing
the need to export it to TB and boot up bd to actually see what you get (why not use bd in the first place?)
and obviously no X and Y rotation
i agree the TB/bd combo is quite oldbaked and limited in features aswell such as brushes, but i prefer it over these ingame editors
some stuff might be just my opinion/preferation
i guess adjusting heightmap is becoming more important with the lower cell size
i guess one could do some object visualization via particles or such (but limited and not great either)
isnt road shape usually done first/before object placement?
depends on workflow, you might need to change some streets to ajust your city layout while you pump it down
why do you need BD to see what you get? ingame should show you want you have/get - or is this about the slope preview for example?
X and Y rotation could be done when an import would be available, no?
regarding the heightmap editing, just even leveling the heightmap for buldings, if you place it in xcam and later in bd level the heightmap you can pretty much redo the house composition
yes, X and Y would be possible if the transofrmation matrix wouldn't be such a bitch ๐
regarding what you get, lets say you place something and you scale it, how can you place objects around/in/on it unless you really see the object scaled
so what you need to do is export it to txt import to TB now either bake it into a wrp or boot up bd
why not just do it in bd where the only place is WYSIWYG
oh and i forgot another one, TB/bd works mostly with boundingbox to position the object while the game works with [0,0,0] pos in the p3d, that might be solvable but afaik neither xcam nor MB account for that
@smoky halo thanks for the insights ๐
TB/bd works mostly with boundingbox to position the object while the game works with [0,0,0] pos in the p3d, that might be solvable but afaik neither xcam nor MB account for that
umm umm umm.
visitor 3 was totally, 100% accurate in it's placement of objects, and used centre of gravity of the p3d. There are disceprencies in how mb/xcam export that information, or much more likely, how t/b imports that info, but it's placement in t/b using the 2d editor is 100% accurate because it's visitor3 based.
as we've come to expect from bis, there are more wrinkles added to sqf functionality to get 'real position' and 'real bounding box size' whatever that means, but the above is factual.
put another way, t/b does not use bounding box to place objects. it uses cog.
bounding box is used to calculate the dimensions of the icon which has no bearing on the axis point of the object relative to the absolute sea level (and slope) of the terrain
whatever mess bis have made of this and will NEVER fix, they've been unable to break the above.
what do you exactly mean by center of grav?
since when you extend the bounding box of a p3d it shifts the object on the terrain
hence why i expected it to position them based on the bb
no. there's a setting in the binarised p3d that's centre of gravity of the object, plus it's offset from one of the corners of the bounding box. i don't know and keep forgetting what it's called in oxygen/object builder
t_t keeps reminding me, but it doesn't stick.
typically, for a building it's central to the bounding box but the height is typically above ground level to account for foundations or basement.
hmm center of bb would make sense to me, which also explains why it shifts on extending the bb
for roads, it's typically at the lower left corner. it is the position around which an object will rotate or tilt
it's not center of BB, it can be, but it's a different measurement.
damn, you'd think after all this time, i'd get the name right.
center of gravity is not relevant here ^^ that is the point in a model where the mass is evenly distributed to all sides
as always ๐