#arma3_tools
1 messages ยท Page 14 of 1
it doesn't exist is why.
Eh, the protection is pretty pointless anyway.
ah beautiful, just when I though this conversation reached its end... mikero throws usual wrench into the picture HEHE ๐
<grin>
unfortunately snakeman, it's not really helping in the initial quetions about what bis has gone and broken now.
They should enforce standards for pbos too.
Just to cut the noise levels down, i'll reiterate them here:
it appears that 3rd party ebos can no longer be signed correctly
much much much more significant, they've appear to a have broken 'no prefix' addons
this has consequences for folks making small project pbos. ones not containing lots of folders. No prefix addons don't appear to be able to be signed at all. so it's all down to the genius who changed that particular code in dsSignfile (probably)
Missions have no prefix right.
missions do not need to get signed, we talk about addons here
The previous explanation seemed to imply something else.
goes back to work crying
thank you. he's a damn pest with his commonsense.
Considering you edited your response after i posted mine.
It was not very clear that you were talking about signing the pbo, it sounded more like it was a issue loading them.
Thus my query makes a lot more sense.
so is dsSignfile creating broken signatures for those files or no at all, or are they not accepted anymore by the game (even existing ones)?
existing bisign files appear to be ok.
how was the signing of ebos even working - I always expected you had to use the signature of the corresponding pbo?
you do indeed. you need the unique 20 byte sha as a minimum.
it;s generating new sigs that seems to be the problem.
correction: depending on the method of encryption a sha isn't required (vbs use non-sha encryption,) and i assume bis 'simply' encoded the entire pbo (past tense). they've moved goalposts, * I think*.
I don't have an axe to grind here, i'm not interested in ebo. I just want it confirmed that these two items won't, now, produce usable bisigns and adjust my own tools accordingly.
If my users can no longer produce no prefix addons , i need to do something about that.
They made some fix in the bisign algo thingy. Someone reported a bug and Dwarden said they'll roll that fix back. Could very well be that that bug was connected to pbos without prefix. They rolled it back in Game but not in the Tools.
nice info. thanx dedmen
Ryeng - 03/10/2017
Same over here. Data verfication failed. Both server and client running v20.
Dwarden - 03/10/2017
ok @ Valthos @ ElmoBlatch @ PabstMirror @ Ryeng ... narrowed this to 3D editor missions guess we need revert of the sig crash fix until figured out
@dawn palm no problems here and i am fairly certain we have some no prefix pbos
i would ask for the contrary - where is a sample of a no prefix pbo making problems
thats news to me
BI only broke something with -checkSignatures and bikeys not in A3\keys
thats completely unrelated to prefix or none though
unrelated or not, aren;t you having trouble with no prefix addons?
not that i am aware of
Is this chat dedicated only to third party tools? where to ask questions about BIS Tools?
it is called tool MAKERS
BIS Tools you can use forums, there is whole section for them
ok, @dawn palm since your tools page is offline, I have to stick with BIS Tools, and I have not found better place to ask
Arma3P updated (again!) to account for potential incompatibility with Win10 (thank you kju)
also swallowed kju's advice and no longer extract 'useless' layer pbos ๐
nice
@dawn palm it leads me to dev-heaven page, which is offered for me for sale of $530
finally it opened! thanks!
arma3p required some fix as well to get working
thank you for that feedback. the forum topic has been updated.
more info please re arma3p
(I reckon that simple bat file hates me)
shiny new maverick updater for those of you subscribed to same. Thank you Optix
very shiny
you'd have to ask optix/arkensor about that.i I don't think anyone does. There's a ticket area on the maverick website but buggered if i can find it.
I we do not send any confirmation mails etc atm. If you log in and see the download section and not the purchase button everything worked out for you. We will be sending such mails in the future though
@dawn palm would it be too much to ask for a silent parameter or so for arma3p that just runs and extracts to p:/some specified drive like the other tools? it's a bit tiresome to editing after every update for our headless servers ๐
Arma language support for Atom has been updated 2 days ago, for anyone that missed it, changelog at https://forums.bistudio.com/forums/topic/185849-arma-languages-support-for-atom/?page=2#comment-3167189
@vague shard Happy? https://youtu.be/l1TgP24p3K0
my god, that would be annoying dahlgren. i'll either provide a cmd line /s or a silent=no at the top of the file, next release. i prefer the latter so that a noob can't avoid fixing his errors.
@MulleDK19#3770 very happy ๐
@dawn palm โค
pboProjects -Islands command line parameter does not work?
unknown option: 'Islands=p:\ca,p:\test'
Command line parms are bad. See documenation for syntax
press the any key
(pboProject 1.94.6.4)
looking....
I'll correct the documentation later. island paths are no longer necessary and were dropped. pboPro determines the land classes itself.
I needed to set that option (at least in the free tools) for my project to build successfully.
i moved my odol converter to http://odolconverter.t-db.de/
if you find bugs pls let me know ๐
@versed kernel. the free tools will use whatever has been saved in the registry from the last gui session. eg, provide them via setup->
I know, but I need to set it in batch mode
(Jenkins). I know how to edit registry values from cli, but then I cant run multiple jobs at the same time
I have no plans to update the free tools anytime soon.
I just subscibed ๐
in which case, you won't need paths at all.
still need it unfortunately
they are only used for bis binarse to develop land classes. Now, I do it instead.
The have no other purpose.
I no longer 'permit' binarise to wander all over the Pdrive.
OfotViking: all the terrains I have binarized with pboproject, I have had no use for this "islands" setting, I dont even know what it does.
your subsriber version 'does' what binarise tries todo, but frequently fails, and as frequently, crashes to desktop.
specifically, it forces binarise to bake land_NameOfp3d into the wrp..
any p3d with geolod class=house must have a corresponding land class config to go with it.
if allowed to, binarise serches all over the Pdrive in a desperate hunt for a config.cpp containing that class.
It causes the most pernicous of all bis errors. it will crash to desktop if ANY config, any config at all any\where contains errors.
And you have a snowball in hell's chance of discovering which one that might be.
It can be a piece-of-shit config that you've tucked away in my\unused\folder to fix later.
binarise unerringly finds it.
when you've torn your hair out, smashed three keyboards and drowned a mouse. you find the problem and carry on. Only to find out IN GAME that binarise could not FIND a land class so it ignored the problem.
Your doors wont open and windows can't without a land class baked into a wrp..
3 more keyboards and two mice later, you become a subscriber and the problems go away. forever.
@dawn palm do you happen to know if binarise allows macros inside include paths?
cool. then i can just resolve includes myself and then hand the result to cpp
i'm not dealing with all that crap anymore
i merge 'em all and don't actually store hpp/h in the pbo (unless told to)
well i wrote my own preprocessor and it keeps fucking up in weird edge cases and the thing is a mess anyways
so i'm throwing it all out and figuring out a way to use gcc's (even though i'm not sure how to yet)
your code is quality stuff. i would not blame you.
that way they handle the error reporting too, which is really good, especially since 6.x
BUT if you're dealing with mission.sqm , you need a dozen goats.
sorry, i meant desc.ext
there are at least five different relative addresses that bis use for desc.ext includes.
depends if it's a campaign, and depends what they break.
i'll cross that bridge when i get to it, now i need to figure out how to properly include gcc's libcpp without breaking everything on windows
lower case is the holy grail for me.
I have had no problems with linux at all except case.
correction. killswitch has had no problems <grin>
most of the fixes i had to make to projects when testing building on linux were case changes
it's especially maddening when there are two versions of the same folder (like UI and ui), which git seperates, but on windows no one notices because it just merges them
ouch
welcome to hell.
I of course, refuse to let git occur anyhwere on my island. svn all the way.
๐ฌ
all git traffic is blocked.
Why use svn? Isn't CVS enough for your needs? ๐
haaaaaaaaaaaaaaaaaaaaaaaaaaaa
@wide cedar the only thing linxu/versus windoze you must pay attention to, and especially with bis, is filenames. They must be utf16le for windoze, and they must be utf8 for the penguin. I have trap exceptions for all file calls that convert<>one way to the other.
It's sounds logical but you'll rue the day you let fopen("fred",....); out the door. It will come back and bite you.
ArmA.Studio received an update
details in #production_releases
christ, how can you live with SVN
git develepment was funded by micro$oft because they couldn't make money from svn. But if you believe in the tooth fairy, they did it because they like you. Like any crime, look for the motive. We now have githubs and cloud servers and all manner of marvellous money making ventures. They are actually useful. but the underlying protocol s worse than dogshit.
yep
Microsoft funded git?
in the meantime so does svn, and it's around 50% svn/git. that will change as git takes over.
Git already took over
at least majorly in open-source, can't really say much about closed-source stuff if you don't know what is there
git develepment was funded by micro$oft (...)
Errr... so what? Windows development was funded by micro$oft as well and I don't see you criticising 99% of Arma players for using that OS :).
Git works okay. It allows branching and merging much better than svn (at least used to) and that's why it's great to me.
And the distributed nature of it, while it requires you to clone the entire repo in order to start working on it really does wonders if you don't want to connect to the remote server every time you want to perform an action that actually matters
I am not sure where the information that MS funded git came from
MS was not even touching Git since just a few years ago, were they?
in terms of adding support and whatnot
@woeful cliff looking good. out of interest how do you make it run/check the same fps/cycle time/speed as it does in arma - or do you get events from Arma essentially?
uh, check the same cycle speed?
is this that reliable? nice
@vague shard I don't understand your question
if you have something checked per frame, you need to read out fps, dont you? and then sync exactly
@vague shard I don't. I hook into the game's script execution directly. The game doesn't continue execution until it gets a go from my debugger. The visualization is essentially an automatic stepping feature of my debugger
i see. thats cool ๐
lol
git funded by MS
What dogshit right there
I mean it was Linus Torvalds who wrote , same guy who wrote hte linux kernal...
And if i remembered he wrote it becasue the tools they used were abandon or were made to cost money or something.
heh indeed.
they had to switch from BitKeeper since they revoked Linux free licenses after they reversed the protocol
microsoft's product manager for TFS shifted focus to git after releasing TFS 2012, announcing that both TFS and VS would start supporting git features and contributing support for windows to core git libraries such as libgit2
So bottom line mikero little rant is hilariously wrong in so many ways.
well, they are funding a lot of git development so it's not wrong
Well what gigantic tech companies are not funding git related stuff?
well, facebook switched to mercurial
Hmm, its still not wrong, what Mikero wrote, tbh.
I'm still not sure that windows funding git is anyway some kind of conspiracy because windows couldn't make money from SVN
I would wonder if not.
Because:
They can.
I mean, why does Google has his Hands in Independent cars?
Because they can.
From what i understand they helped write libgit for windows since they wanted to implment it into TFS.
Microsoft ยฏ_(ใ)_/ยฏ
git existed for windows before microsoft started pouring resources into it
it's just better integrated into visual studio now as a first class source repository like TFS
they also offer hosted git through TFS
Sure it did.
And once again we come back to the thing that mikero statement is pure bullshit.
Wich?
mikero: git develepment was funded by micro$oft because they couldn't make money from svn. But if you believe in the tooth fairy, they did it because they like you. Like any crime, look for the motive. We now have githubs and cloud servers and all manner of marvellous money making ventures. They are actually useful. but the underlying protocol s worse than dogshit.(รคndrad)
He can make himself look silly without your help Dscha. Do what most do, and ignore him.
what was the tool again to catch arma rpt/log output? (some old windows 3rd party tool)
why would you need one Q? if the rpt's being written anyway? or are you trying to get at the rpt, not the folder of rpts?
Thank you head for making clear I am not not completely wrong about git history :p
@vague shard baretails?
@dawn palm can be useful to have a window next to the arma one showing the incoming spam (that one i am searching for had some filters ofc too)
ah a ha!
@hallow rapids BareTail looks at least similar. ty
there are a couple of rpt viewers, but these are all file based instead of stderr or to whatever the game streams it to
@vague shard. if you're thinking arma2, it only had to keep looking at THE rpt. now there's a different one, each game start. Am guessing what you want, isnt avail.
no reason why not, it just has to monitor for create( any .rpt) and go from there.
@pearl beacon ๐๐ฟ
@vague shard try SnakeTail instead, it's able to monitor the folder for new files and automatically replaces the old with the new file
Not long @vague shard and that can be done within arma.studio
what editor are you using, there is a high chance there is already some plugin for it ๐
I'm using baretails If I need to watch RPT. But I very rarely need that :x The game doesn't stream much to stderr or stdout
@vague shard SQDev has a built in RPT-Viewer ๐
thanks for the suggestions everyone. does any of these have regex based filtering?
(its not so much for myself, yet for our less technical team members)
My Server Management tool has Regex based filtering ๐ But you can't view RPT with that
xD
Hey there, we are working on a rcon library and server management tool in golang. There is still quite some work to do but check it out: https://github.com/PlayNet-Public/GoRcon-ArmA/tree/develop
@thorn hawk Restart server over RCon?
Yeah, was the first attempt by my collegue helping out... As I want the RCon feature to be optional for people just using the schedule I already got a branch here that sends a graceful sigterm to arma
The whole Go Conformity is also very bad yet, but I had too much to do getting the rcon connection working... Such documentation, such a good protocol ๐
BE Rcon is not good protocol ;P
Couldn't agree more
Doesn't respond to PING commands, doesn't complain when it receives packets outof order just silently ignores them.
Although you could keep sending the same packet number last i messed around with it, to avoid the outof order issue (just had the odd sideeffect)
It really should just be a TCP Protocol, not like there will be many rcon connections at once (i.e not much overhead).
Thats why we are trying to offer a nice and extensible REST API with one of the future versions...
The most 'fun' thing I had while building the rcon lib was when i wanted to build reconnects... If the Server is up to fast (meaning in the start up process) it responds to the udp socket with timeouts and not with connection refused messages... This means that the udp socket is thinking "Hey all is fine, it's UDP he just has nothing to talk" but in fact the connection is dead and when the server is fully up both ignore eachother....
The so called workaround is now to count keepalive packets and received ack packes (0 data) and when a certain mismatch is reached the udp does a reconnect... Took me way too long to find this...
I could tell you a udp joke, but you might not get it...
Looks nice, i would recommend an quick guide for users how to get it run windows + linux. Then throw up a forum post on arma forums
thats a bad joke ๐
Yeah, but first I want to fix some last issues... Had one test session with a server yesterday and on windows it somehow messed up starting the mods (ignoring that my guess is their server was messed up) and I also still need some better approach for streaming the events and chats to the console...
But yes post and manual are wip... The Build Server is also building a debian package and pushing it to a repo so the setup on linux is no more than an apt install
@scenic berry yeah, this whole thing made me google same more bad udp jokes ๐ But sadly we needed a working rcon interface to proceede with our BanList Project :/
Ban list project?
One of the projects we are working on is a more sophisticated and state of the art platform for multi game ban and whitelist management. There is a german project which is implemented very bad and very disliked for its politics and so on but we aim for a better and more community driven solution
Imagine it as a server management interface with the ability to share and import bans from others based on a nice query language
The dream of a self regulating system where no single instance is deciding who is good or bad
haha ๐ dont trust arma ๐
Games in focus are minecraft, gmod, some wip games that are in discussions with the developers and of course arma/dayz
I never did ๐ just dreams and visions
oh and #recruiting ๐
Will you have some kind of server reputation system so that a bad admin that is having a bad day and banning everyone on his server doesn't impact those players on all the other servers?
Bad admin or a hijacked admin account
I think ppl should only get the "global ban status" when they are banned on two independent server...
Easy. Just run 2 servers and ban everyone on both of your servers ๐
Independent? Okay, I can buy a cheap VM somewhere for 3eur/month just for the sake of "confirming" my bans
Maybe checking the steamID of the admin as well?
Nope, no global status... There are BanLists and you could import from them via a query language, we plan one global list where verified server can add but the system is you got your list and ban, if some other server makes his list public you can include it... Servers may also colaborate on lists but we don't want one central system deciding who is banned everywhere... We also got a "revision" system in our plan where players can 'fight' their bans and use the platform to discuss their bans etc... as is said, community driven
But then, when you have 1000 of servers in your um... community (?), you can't whitelist or blacklist every admin manually. You need to have an autmatic reputation system
Seems legit ^^
imo shared ban lists across communities dont work. Different communities have different rules and a ban on one doesnt mean ban on another. And then theres the "bad admin bans" and the management needed to lift these bans,
I just tried to describe the system in here, but it exceeded a reasonable message length...
But for the rules problem... This system is thought for hackers, script kiddies, cheating etc... and one dedicated section for stream snipers... but if a ban is about a certain rule break it should remain server internal (non published).
Of course there are always bad admin decissions etc... this is why there is a server/banlist verifiaction level... Servers need to ensure certain things before reaching certain levels and of course bans, servers and players can be rated by both others and an internal system doing risk analysis etc...
Meaning banlist imports usually only import bans based on a certain "quality rating" and if there is a server very badly rated with bans not true or not following the rules it might not be imported into other lists
and as I said, a player is always able to fight his ban, discuss it with admins and also open a ticket through this process if no solution is found
who was using again Jenkins for arma projects - ACE, RHS(?) - anyone else?
ACRE
ACE doesn't
it'll all be a lot easier when armake is done...
don't even need jenkins then, travis will be enough ๐
loads of tools
all together we can create great things
we're using Jenkins for SFP (Swedish Forces Pack); linting, packing and in game tests
That's mostly just config though, right?
configs, islands, lots and lots of models, a bunch of scripts
Yeah
armake has a lot of potential
a decent PAA tool that works on non Windows platforms is really nice to have for starters
or as a library for other tools
+1
there are a lot of different tools today but not that many libraries to use
so the fact that armake is open source is really nice
and as it's written in C it should be quite easy to use as a library if you're creating a tool, regardless of what languages or frameworks being used
for 8 years my dll and it's source code was freely available on dev-heaven. So there's no argument here.
The manw contest changed all that, and a3lifers re-inforced it.
yeah, I still find references to it sometimes ๐
would've been nice to have the derapify functionality for my virtual pbo fs, haven't tried to interface the dll files directly yet
but the performance is not good enough yet for our build server usage anyway so I'm not puting that much effort into it
but it's quite nice not having to unpack all arma 3 data every time arma 3 dev changes for local development ๐
i can provide you the api to hook into the dll any time you want it. free/subscriber compatible.
I might take you up on that offer some day ๐
I still have a copy of mikeros tools source from back then :3 That stuff get's rare with time
fyi it's not strictly true to refer to paa, it's paX. paa, and pac are treated identically by texview (and binarise) _except pac indexes which can only occur in pac. They are seldom used but exist. Pedantic yes, but tga->paa isn't the end game.
yeah, lots of pac files when dealing with ofp
it wouldn't matter muchly. but .pac is the defautl extension for textures.
what is default in that context?
thingy=\some\file;
all files in configs eg have default extensions. wss for sound pac for textures p3d for models
which is where you get interesting ingame errrors such as can't findi sound..wss.wss because the engine assumes you've left off the extension so adds it.
ditto texture.paa.pac
the original and stil used file handler was a one stop shop, all file reqeusts went thru it, thus all files were compressible, all paramfile text was automatically binarised (if not binarised), all extensions had defaults applied to them. over time, the devs have short-circuited this mechanism, opening files directly. Thus you get mission.sqms that can't be binarised if in an addon, but work fine in mission pbo's because they still use the universal handler.
i c
I think pac and paa was there ofp mechanism for textures with and w/o alpha
I assume that a stands for alpha and c for color
nowadays we have _ca, _co and a lot more
Yeah, as you mentioned it..
we agreed on tht when we both analyzed pax for 'can't remember name'. you wrote most of the biki. well the parts which were right, anyway.
in the source code a paa just sets IsAlpha property to true. otherwise there is no difference afaict
agreed. and the pac extension itself can contain the above content regardless.
eg simple rename, 'works' the same.
but _ca, co etc wouldn't be relevant to this. that's a function of the text table in tools\some\where (the thing that defines how to construct nohq eg)
true
i think a lot of that kind of baggage can be discarded
i haven't seen someone use a pac in a project ever
We (AEF - 2004) used one .pac ๐
Rest was .paa
(Yeah, i just downloaded the old files, to check it)
yeah, BIS source code has a lot of old baggage to carry
for generating new paX yes, it could be ignored, but backward compatibility is important to me, and there's that odd quirk of default fle extension which doesn't matter muchly.
that's true, decoders should ideally support all possible format variations
we had zero choice in the matter when creating cwr1 & 2
i'll probably wait with implementing more image codecs in my paa decoder until someone complains :p
haaaaaaaaaaaaaaaaaaaaaaaa
i want to come and live on the same planet as you, with NO complaints starting with' why doesn't it work', followed by your tool is ratshit.
๐
that's where the beauty of open source comes in. just tell them to make a pull request ๐
so they can fix it themselves....
I guess that also depends if you want people to use your tool too ๐
I sure as hell wish some people didn't.
well, that might get rid of naggers, that's true ๐
yeah, i've black listed tim dittmar, who shall remain nameless, but he finds ways round that.
the bugger keeps finding 'undocumented features'
and his sense of humor is awful. he keeps pasting me c# code, knowing full well, i can't read it.
๐คฆ
I blame his mother.
๐ there!
yes. it's "there" in eliteness subscriber and free
k
- dep3d -Es or -Em
want to check the quality ๐
shit
you do not do CfgModels?
can't imagine why you think that i don't
or only if there are anims?
i looked at a model with bines but no anims. that's why I did not get CfgModels
but I still get CfgSkeletons if there is nothing so...inconsistent!
๐
not in the subscriber version. no skeleton = no cfgSkeleton
mkay
bridges eg, can have a skeleton, but typically no cfgModel class (Planck or Mondkalb's bridges eg) (lights)
how does it get baked in then? CfgModels contains the p3d name
I mean I know a way but do you? ^^
class NameOfModel
{
// nada
};
class cwr3_most_stred30
{
sectionsInherit="";
skeletonName = "cwr3_Noe_bridge_skeleton";
sections[] = {};
class Animations {};
};
.. and typically in a config.cpp
class Destruction
{
animations[]=
{
{THIS_PBO\rtms\most_pad_01.rtm,0.2,17},
{THIS_PBO\rtms\most_pad_02.rtm,0.2,17},
{THIS_PBO\rtms\most_pad_03.rtm,0.2,17},
{THIS_PBO\rtms\most_pad_04.rtm,0.2,17},
{THIS_PBO\rtms\most_pad_05.rtm,0.2,17}
};
};
heh, regarding having libraries in C, https://daniel.haxx.se/blog/2017/03/27/curl-is-c/
Any one familiar with these little web injection fu***rs
Looks like we might need to build a solution against this before they get online...
That method of hack been online for abit already. If you look at thier twitter feed, it appears BE already been banning people using it
I also got reports of people using that getting banned
Be has been banning them, Bi knows about it since its frist day of launch. There is nothing to take care of on our side anyway. Networking is way out of our hands. Also posting a link to their website is a nice promotion for them. @thorn hawk >.>
But if someone has problems with them ,just get anything to detect vpns, there are apis for it and tools to block them off. That beats its user afaik
I wouldn't say it is completely out of our hands, i could think of several aproaches to fight this... As you said detection mechanisms that are already out there and talked about in several scientific papers...
The thing I want to say, if we want to mess with these people we got to find good solutions that can be easily used and distributed to others...
A community solution, OpenSource and built in collaboration at best.
It seems the popular web injector at the moment is detected, and moving over to a private cheat
Two detections in two weeks. Didn't last long
Yeah, I was surprised too but somebody just told me about that and I needed to ask if somebody is already on this... Couldn't think of BE Detection (sorry guys ๐ )
I've released tabler v0.7.0:
https://forums.bistudio.com/forums/topic/170780-tabler-arma-3-translation-helper/
You're absolutely right
very nice initiative. sorely needed.
And there it is
Yea well, I search 2 hours about my (grave) mistake and then Visual Studio tells me after 3 seconds of debugging the A3 process -.-' https://armitxes.net/media/VS2017DebugArmiNET.PNG yet some kind of amazing ๐
That's what debuggers are for...
What's that project you're working on?
Weird question, but has anyone made a program for making dialogs ?
Editor -> Esc -> GUI Editor -> gl hf
Externals, no clue. @nocturne basin started doing one, but abandoned it.
Not abandoned @wind elm
That is what arma.studio actually evolved from
Was supposed to get the new version
But cleaned up
@scenic canopy ohh this is spicy
Is it possible to open Altis life Hpp in this tool?```
lulz
update to subscriber dll
nice little fix to variants of $pboPrefix$.txt You use this file to bake more properties into the pbo (and it's the only way you can make a genuine arma 3 pbo).
credit: vipermaul
Man you really need to stop teaasing thnis shit and release it ;D
does it have a vim mode? :p
pretty nice gameplay too ๐
doesnt help with his productivity i guess
@pearl beacon I know, right? https://www.youtube.com/watch?v=GVQoozk_FIE 0:10 to 0:46 xD
@vague shard Actually, it does
@wide cedar Vim mode?
i was being facetious, but i was referring to something like evil mode in emacs or any of the various plugins for eclipse, that allow you to use vi(m) controls to edit text
@woeful cliff Is this a different program than the "ArmA.studio" X39 is developing?
Yes
Okay... I was a little confused because of the name xD
I realize you can't always merge two programs into one but it's still sad to see two people working on roughly the same thing... separately
Yeah true that
Generally there are way too many seperate attempts to achieve this (me included)
Would be awesome if we all could work together on that
But the problem is that there is no universal way to specify the functionality so it will work in every environment (either as a plugin or Stand-alone) so as everyone prefers a different editor everyone has to code it himself...
I also don't really like the decision to name our project almost the same as one already existing but not my decision. I'd also prefer there to be one universal tool.
And Arma Studio is aiming to be that tool. Either X39's or MulleDK19's. But I was waiting for over a year for ARMA STUDIO 2016 to get released and usable.
As I found out that I and X39 could build the same and make it open-source and available within a few weeks I didn't want to wait any longer.
Additonally when we started with ArmA.Studio MulleDK19 has been quiet for about a year and no trace that ARMA STUDIO 2016 was still in development.
ahh that explains things.. was quite confused that there weren't any commits by MulleDK19 on X39's repo yet he was showing all kinds of stuff ๐
from A3 tools settings.ini
; Use the diagnostic executable to install Buldozer? (development branch of the game only)
P_DriveDiagExe=0
did anyone check if using the diag.exe has any relevance for Buldozer?
@orchid shadow It's not ready for the public just yet
Teaseing
ohh my... why does callExtension stringify strings once more -.-'
?
@meager falcon But it doesn't
I assume you mean str esacping quotations.
the args array of the new syntax gets aditional quotations if a string is in there
the quotation marks are escaped and added just like str(_string) does
i don't know much about sqf but it would make sense to me if
hello "there" widget
gets transformed to
"hello ""there"" widget"
or alternatively
"hello 'there' widget"
which (in my understanding) is fair enough. you are quoting quotes
and this makes no sense due to the args are listed in an array
ok. i follow that too.
I mean, if you get a quoted string this would be all fine (as you already said), but yeah.. this just adds "" around each string
the purpose of doing so is to prevent a "label" being misinterpreted by a #define, or alternatively as a command.
again, in my ignorance, i would say that "init" itself is wrong to start with.
just an example
dunno if you got that wrong, its:
_string = "1234";
callExt ["blah",[_string]] ;
cout << args[0] will return: "1234" instead of just 1234
and thats not because it suddenly gets a number
its the very same string, just always wrapped in extra ""
I would assume (since that the behavious of str) the args are just str(args) delete "[" and "]" then splitstring ","
well, I'll just go with the old syntax
i hope you meant args[1] ๐
callExt ["blah","1234",1234] ;
args[0] should be "blah"
args[1] should be "1234"
args[2] should be 1234
Aleast that how it should work ;P
But i have avoided it for now
they will indeed be as described above, it's a question here of how cout<< behaves. and it's behaving literallly.
there are only three types of var in the bis world, a numeric value, a string , or an array name
1234 gets parsed and stored as a numeric for subsequent processing. all others are text, and quotes ensure, text
#define blah 98765
callExt ["blah".... ensures that define is never 'seen'
Problem is there would be no other way to distinguish between strings and numbers if you would remove the quotes. So the quotes are required. I see your problem. I would also prefer it without the quotes as in the end you don't want the quotes anyway. But BI has decided to implement such a "simple" system instead of passing a variable type and a generic pointer like
struct {
enum {
string, number,isThereEvenAnythingElse
} type;
union {
const char* string;
float number;
} value;
}
Which I would have preferred but it's too late now.
Added a simple obfuscation button. 'cause why not? lol
original:
_a = (1+2+3+4+5);
_b = (5+4+3+2+1);
_c = _a + _b;
_d = str _c;
hint _d;```
obfuscated:
```sqf
_ca1={3}else{4};
_ca2={5}else{"TROLLOLOLOLOLOLOLOL"};
_ca0={1}else{2};
_ = (call{call{call{call{(call (_ca0 select 0)) + (call (_ca0 select 1))} + (call (_ca1 select 0))} + (call (_ca1 select 1))} + (call (_ca2 select 0))});
__ = (call{call{call{call{(call (_ca2 select 0)) + (call (_ca1 select 1))} + (call (_ca1 select 0))} + (call (_ca0 select 1))} + (call (_ca0 select 0))});
___ = call{_ + __};
____ = call{ str ___};
call{ hint ____};```
I prefer Mikeros PBO obfuscation.. It atleast doesn't kill performance
Well, clearly, it's not meant for performance
@woeful cliff Just say it increases performance by -20%
and everyone will think thats good
haaaaaaaaaaaaaaaaaaaaaaaaa
no other way to distinguish between strings and numbers
it gets far far better than that.
"text" defeats all subsequent processing (parsing). consequently
say player
and
say str(player)
are two different animals
i've discounted _variables and introduced str() to illustrate it's value
the reason why "hello ""this"" world" looks so strange to the eye, is the bis parser treats it as three separate chunks, (in this case, text)
"hello " // do not alter +
"this" // do not alter +
" world" // do not alter
note above, that the double rabbits ears ("") dissapear and make much more contextual sense.
@dawn palm nah thats not the right syntax
the new syntax would be:
string1 callExtension [string2,array]
where string2 is the function param
and array is really an array of anything which get converted to strings
string2 and array are then available in the extension by
const char *function, const char **args
which is why I referred to args[0]
ok.
so if array looks like this: ["1234"], in the extension you will get this [""1234""]
or in general
so if array looks like this: [anything1,anything2,anything3], in the extension you will get this [str anything1, str anything2, str anything3] (in terms of sqf)
sorry for my kinda unclear explaination above
well it was me misinterpreting where you were at.
no problem
however, since this adds the need for checking each param for "" in the start/end, it kinda ruins the gains in the first place ^^
my opinion, for what it's worth is if the array element itself contains ""anything"" it's plain wrong.
well the conversion to strings would be easy enough, dunno why the made this autoconversion
they could have just stated array of strings
a passed value into a c call should be raw data. it's up to c, to handle it how it wants.
I assume everyone who works directly with extensions to be smart enough to get this
ahhh yes, ok.
the declaration is (char * , char *)
but really that seems dumb to be, it would make sense to be void* void*
second one is actually char ** ๐
yes.. sorry, thinking out loud
no problem
I mean this could even be checked on a script level, so I dont get the point of the autoconversion
or at least the string autoconversion
well char * is just a label, it isn't necessarily a string at at all, as evidenceed by the function name, so i don't see the point either.
it must be something to do with how they have to build the array before they pass it to you.
[mikero is way out of his depth]
^^
i dont even follow the logic of why "blah" has to be quoted.
and i would never be able to follow the logic if the following happened:
_string=hello;
and arg[0] was NOT "hello" as a result
ok. then it doubly doesm't make sense to dblQuoute what can only be a string!
[mikero remembers why he won't go near this stuff]
Yep.. stuff like this really makes you happy
The double quations is because they use str
str "ape" is ""ape""
Should properly have read the entire thing.
Since it was already brought up.
๐
Clap yourself ๐๐ฟ
๐ ?
โ !
If only we could stop.
๐ต
Does anyone know about the lastest version of arma 3 tool deleting the SVN feature in TB
Or is there a way to get the feature back or of any alternatives
the SVN feature?
The ability to save a TB build onto a server in a diffrent directory. Excellent for github
Or multiple people working ojn one file
a TB?
Terrain builder
Yeah for Terrain Builder, Since the update this afternoon its stopped working and says its not there anymore.
So... The game's preprocessor doesn't support nested directives. Well, that makes it a whole lot easier for me
Hmpf. It's even more half assed than I thought. If a definition is not defined in an #ifdef it removes what's inbetween, without adding line directives, so whatever is after will report incorrect line numbers on error
lawl, if you include a dummy file after the #endif, that inclusion will add a correct #line directive that'll allow you to see the correct line numbers
If you have a #include after a multiline comment it will also forget that comment was there when doing the #line directives. Thats why a ton of CBA and ACE scripts report wrong line numbers for errors :/. That may be influenced by the content of the included file. I only checked with the CBA macro include
@glossy inlet It sure could use an update
Original:
// Nested test.
#define ONE
#define TWO
#ifdef ONE
#ifndef TWO
hint "EXCLUDED";
#endif
#endif
hint "INCLUDED";```
Game's preprocessor
#line 1 "C:\Users\mulle\Documents\Arma 3\missions\ARMAStudioPreprocessing.Tanoa\NestedDirectives.sqf"
hint "INCLUDED";```
My preprocessor
#line 10 "C:\Users\mulle\Documents\Arma 3\missions\ARMAStudioPreprocessing.Tanoa\NestedDirectives.sqf"
hint "INCLUDED";```
The game's preprocessor puts the hint on line 8, while it is in fact on line 10
actually, it works with #ifdef #ifndef
the other way around, it outputs an empty string
yeah ok. some combinations do, some dont' and I long ago threw it out the window
even was naive enough to raise a ticket. when i was young and stupid
I wrongly assumed bis gave a sh*t
needless to say, my tools handle it correctly, but under some circumstances, that's not particlarly useful.
that's probably the part that works
The preproc is back from OFP times so.. Yeah.. could use a rework
Dont fix whats not broken, especially not OFP stuff
But.. It is broken
if it was just about that we would have AI actually driving on roads, going through doors instead of walls and so on
Dont fix whats not broken, especially not OFP stuff
fortunately, they don't understand that part of the code, so don't code near it.
thats exactly the reason why I said it ^^
@dawn palm What does that mean?
no config found in pbo!!!```
Does the Pbo you're packing have a config? :X
of course
guess I found the error. I had a rapwarning in the log file. A typo in a path to a .paa file. After fixing the typo the build worked
that error isn't a very descriptive one
(to me at least)
Is there a way to get older versions of binarize.exe?
a specific or just an older one?
I have a backup of 1.63.137490
@rotund rampart. the wording was changed in subscriber versions with more detail
๐
when you have the manifestid you can use steamcmd to download old versions from steam - manifestids for the arma 3 tools depot: https://steamdb.info/depot/233801/manifests/
@sinful crescent is this true for any steam data? or what are the restrictions or limitations?
@vague shard I've only used it for the arma 3 tools, arma 3 linux dedi binary and the arma 3 digital langs depots - but I guess it's enough when you own one of the packages the depot is included with and when you know the specific manifestid (and appid & depotid) - encrypted ids (e.g. for passworded branches) won't work - so probably dlc won't work neither
@sinful crescent thanks! any idea how the PW protected legacy branches play into this - are they new ids or just older with pw applied or different altogether?
@wide cedar it would be nice if sudo make install for armake would default to /usr/local/bin/ instead of /usr/bin/
not a big deal but you know, specs ๐
yeah, that's on my list
@vague shard I have no idea
What constitutes a veteran?
constelation of stars, my mood and good roll on dice "my" being Dwarden
So basically.. it means absolutely nothing
means you can get away with a little bit more fuckup and got access to other discord stuff like embedded links or voting
i can vote or create votes?
you call that voting?
upvoting a post for example
you also can pick any other emojie you like
that is something non-vets are not able to do
per default, however, this is enabled on all discord servers (just like embedded links are)
Yep, Dwarden big fun sponge ๐
@nocturne basin That's one of the things I hate about this server. It takes away all the things that makes Discord better than IRC
Yeah, what a shame
A goup that makes your name blue? God dammit I can not live without it. Dwarden plz fix
anyone tried to analyze arma crash files (mdmp) with WinDBG or VisualStudio yet? is it pointless to try or some chance to get meaningful info from that?
you need the source code to do step and trace (and breakpoints)
@onyx lion from what I know only BI employees with access to the overall RVEngine src can track down what happended there. But Dwarden seems to always be exited if you can give him crash dumps from one of his performace executables >.> ๐
Already send, dang stuff
well BI is getting to much crashes with the 64 build, so they decided to deflect some on "its the mod" fault ๐
^^
yes they are
https://cdn.discordapp.com/attachments/279194352490905600/298746133113733120/unknown.png hey guys im having trouble opening mikeros pbo project, i keep getting this error, ive reinstalled it + the vc redists multiple times but no avail, any ideas? also im not sure if this the right thread so if not sorry ๐
You hid the good stuff.
@rugged needle mismatch of dll and exe version i think
like the not legal version of Win7 notification ๐
"This copy of Windows is not genuine" tztztz
Like all them "legal" games on the desktop
hehe
Also what @vague shard said
๐ 95% of those apps are legit lol but ill admit yeah windows isnt so im guessing its thats the problem.... sigh time to actually buy windows haha
Win7 Ulti - often 15-20โฌ
be a student, get it for free ๐
i bloody wish i was a student the amount the amount of stuff they get for free, well serves me right for being a dirty pirate thanks anyway guys
Either you are a student and get it for free, or have a job and you can buy it :p
im buying it now, im just lazy
:p
ive reinstalled it + the vc redists multiple times but no avail
as others have noted, you have a mistmatch with a dll from god-knows-where, and the exe you were trying to use. again, from some other godfosaken hole in the ground.
vc redists are no longer necessary (but do no harm)
just simply grab the bundle of free tools with self installaers from here:
anyone with insights or experience with rewriting git's commit history? more specifically i want to move the AIO and extracted A3 data to github, preserved its history but drop everything else from the repo
i guess a smarter approach is to get all revisions of the desired folder tree, check them out one by one and apply them to a new repo in an automated process
I think you can delete all the unwanted files and wipe them from history
or this http://dalibornasevic.com/posts/2-permanently-remove-files-and-folders-from-a-git-repository
Overriding Git history and permanently removing files and folders from Git repository.
wouldn't mind the smaller size since it's 1.3gb at the moment ๐
unpacked that is
I can analyze Arma crashdumps.. But it's tedious and takes a lot of time. I'm basically doing everything manually what the PDB and Debugger would resolve for me.
Basically.. It takes maybe 20 seconds for a BI dev. And an hour for me to get the same information
Unpacked A3 data on Github? I hope you only mean scripts and configs ๐ฎ
Cuz Textures and Models would be bad
@orchid shadow Too n00b friendly? http://i.imgur.com/CftO2YA.png
There you go! Finally a first working demo of GoRcon-ArmA (a RCon tool and Server Watcher/Scheduler built with Golang): https://asciinema.org/a/ad2cfxrvfx75bar9ie5udfhdf
You have alooooooot of commands to write snippets for ๐
@fallen stone Are you talking to me?
Yeh ๐ @woeful cliff
@dawn palm could you possibly add an error check for already binarized rvmats into pboproject? currently it just gets stuck on bis binarize without any logs or anything
ah yes, binarise isn't smart enough to detect the thing's already binarised. Worse, it's too damn stupid to know that i've already provided the output into p:\temp. Originally binarise checked datestamps and ignored the earliest, but bis managed to break it.
It will take some work to code in rvamt removals. eg like p3ds and rtms, i'll have to temporarily move them out of the way so that binarise can't see them..
My code already spends about 40% of it's crunching power checking on things binarise will screw up.
I have updated my SQDev plugin to version 0.7.2 which further improves the live SQF-Syntax-Check
added PMC Editing Wiki mirror for Mikero free tools:
http://pmc.editing.wiki/doku.php?id=arma3:tools:mikero-tools
Hey! Iยดve just continued working with blender. My problem is that the Export to .p3d with Mikeros Toolbox isnt working no more. I got the current Blender (Steam Version 2.78) installed, also reinstalled the current Toolbox again. Still not working with the following error :/ AttributeError: "NoneType" object has no attribute "armaMatProps" Aswell as the following ones. http://fs5.directupload.net/images/170410/ryskwmej.png Thanks for helping! (Also hoping i got the right channel) ๐
Also, I think Ive had the same error before, simply cant remember how i solved this one. (I restarded my PC aswell as Steam and as Ive already mentioned reinstalled the Toolbox)
What I forgot to mention, the error only appears on one file, others are working just fine...
contact Alwarren via DM or this forum thread
it's Alwarren's toolbox, not mikero's ๐
hey! I never mind taking the credit for some-one else's hard work.
Oh man really? Iยดve actually just visited his page 5min before writing the post... Sorry @severe lava , hope you can still forgive and take a look on the problem ๐ You may had that one before... Thanks again! MfG. Benno
@smoky halo This might happen if no material is assigned to the object, I think. I haven't got this version around anymore, there has been a metric shit ton of changes in the meantime. I'll try to get a new version of the Toolbox released in the course of the week, it still has some quirks but it should solve quite a number of problems people are having witht the old one.
You meant the Arma Toolbox Material Settings right? Poorly doesnt work, will probably have to stick to my other models. ๐
heavily improved api interface for depbo64.dll
applied killswitch fixes for linux
fixed nasty ctd if using #include "somedrive:\some\where"when rapifying text
I added Model Config extraction to https://odolconverter.t-db.de/
it's a first version so please report any errors
axis entries are left out for now, as this is sort of problematic
๐
I probably will also rework the mesh distortion
it distorts too much on small objects
oh ok. will check that
ok. thx mike
Deploy_finX
selection="fire"; // ???????
?
class Deploy_fin3
{
type="rotation";
source="inittime";
selection="fire"
i would assume the bone (named selection) is fin1,2,3,4
oh god sorry, the nlaw_rocket.p3d
hmm, selection seems to be very bugged ^^
weapons_f \somewhere. i'll find the dam address. moment..
Q:\a3\weapons_f\Launchers\NLAW\
sorry t_d. should have said that.
dont worry. I appreciate your feedback
i appreciate quality tools from anyone. we can never have enough
should be fixed now
did they delete my forum thread?
@smoky halo which one?
about my ODOLConverter https://odolconverter.t-db.de/
pretty ignorant if they a) did, b) don;t know your reputation and c) couldn't read what's in front of their face.
I did not even get a notice. That's what bugs me.
@prisma dragon do you know the reason?
if they did that to me, after putting in the serious hard work that you did, ....well, you already know what my response would be.
and on the other hand this is on armaholic http://www.armaholic.com/page.php?id=32668
๐คฆ๐ป
@pearl beacon BI seems ok with that, see #ip_rights_violations
very lame to delete the thread ๐
T_D: can you summarize what was said as I dont even see you talk in that channel in few pages scrollback?
you mean about DLC Unblocker?
oh you mean bis is ok with the armaholic link?
I wanted to know what happened to your odol converter topic.
it is gone. without a word
roger. yeah the armaholic link doesnt interest me, I thought you meant answer for your topic being gone was said the other channel. heh.
yeah I was referring to the armaholic link
@dawn palm I would like to say thank you for all your hard work, people may reverse your work like nothing and be scummy, but I for one value your work as it helped me get afloat and take my baby steps in the Arma community
๐
@smoky halo 's thread is back ๐
magic
@orchid shadow What do you mean?
eople may reverse your work like nothing and be scummy
Well obfuscation obviously, thing else is there to reverse. Has happend, will always happen, no one should care really ...
Some will always try hard
The obsfucation is pointless anyway.
Not to mention i think it goes against modding.
But i am from a time where modding was free but now its soopoused to make you money and shit
I happen to agree with you. Most people do. And, those who use obfuscation also agree with you. They are trying to prevent thieves making money off their hard work.
I<<< make money selling a quality tool set, of which, obfuscation would be around 0.01% of the code, and a subject i'm not particularly interested in.
If you want to be constructive for a change, direct your anger at thieves SELLING other peoples work (of which p3d's are far more valubale than missions), and suggest of ways to get rid of them.
@dawn palm Ever since updating to DePbo.6.16.0.14, I get this error in pboproject makepbo: reqaddons. could not find a cfgpatches for (some) file refs. If I downgrade to v6.15, the terrain builds fine and works in A3 ๐
you can, if you prefer, disable rebuild in setup.
it's probably more efficient in 6.16 and finding a genuine missing cfgpatches for one or more p3d's
the pbo that was built in 6.15 works totally fine simply because the objects it needs are 'there' in other pbos. But you can't assume that will always be the case. (eg your user didn't install E76 roads pbo , i give that only as an eample)
dll 6.18 released to address several issues with makepbo, rapify, derapify, and notably rebuild required addons
new version of eliteness places p3d's map= and class= geo properities at the top of the tree for quicker referencing by map makers
just updated, terrain is building fine on new version! thanks for fix
I'm writing scripts that automates a complete build process (with Jenkins). Is it possible to run 'workdrive.exe /purgeGameData /extractGameData' and skip the warning that pops up? https://cdn.discordapp.com/attachments/215792656163405825/306375097038536704/unknown.png
@versed kernel do you want extract the game data again and again on each (nightly) build?
also why use workdrive in the first place?
https://imgur.com/a/dPWc1 <-- ArmA.Studio release 0.2. gets closer
You don't really see all the backend changes on a screenshot ^^
@nocturne basin Thanks. not using powershell but can use that.
@vague shard Only after updates by checking the date in appmanifest_107410.acf. ArmA3p asked too many questions
@versed kernel not easier to simplify arma3p?
Nope. More to maintain. Dont know if I can publish modified version of it
394 lines of code vs 1 line of code
ArmA3p asked too many questions
people have been modifying arma3p (and are free to do so) for headless servers.
394 lines of code vs 1 line of code
A magnificient feat to compare file dates via an acf file all in one line, AND extract it AND convert most binaries back to plain jane. Well done.
My scipt is currently 15 lines. was thinking of Arma3P.cmd vs "workdrive.exe /purgeGameData /extractGameData"
I welcome any and all tools that help people. And I welcome your efforts.
At worst, it will be a great learning curve for you, and at best, it will be a very useful tool for the end users.
mikero has spoken \[T]/
does anyone know how to obfuscate a mission correctly? And is this even allowed? greetings
no obfuscation will stop someone from extracting it if they want to
as long as the game is still able to read it (which it has to be), everyone else is too
๐๐ป
the same comments can be made for encryption.
depends. if by encryption you mean drm (program on user's machine has to be able to read it, but user shouldn't be), then yes. that's doomed to fail as well - albeit quite a bit harder.
the signiicant difference between the two is that encryption (as implemented), once cracked wiith a key , opens every ebo and puts everthing in plain view. With obfuscation, extracting mangled binary data and filenames that 'the engine can read' doesn't help a thief use that data in a pbo of his own. The intent is to frustate, mislead, and confuse, not stop, a parasite.
At the same time this will annoy the shit out of those people who are interested in fixing shit one has fucked up and dropped support later down the line
agreed
๐
...the same thing occurs when a p3d or seven can't be altered because the author ran away.
my free toolset is now avaialble at Maverick (as well as dev-heaven,Julien Bis, and snakeman pmc)
https://armaservices.maverick-apps.de/Products/MikerosDosTools/FileBrowserFree
thank you Optix
paid tools are better. just sayin. ๐
^ agreed
@dawn palm ๐
@dawn palm How can I use MakePBO on right click?
never seen it done. there's too many variables to consider
use pbo project instead
you can extractpbo on a rightclick, but not makepbo.
There WAS a time, where you were able to do that
I used that to pack missions
iirc it was some of your tools @dawn palm
One day ~2-3 Years ago, you removed that option ๐
If I use PBO Project, can I get that on right click? @dawn palm
you're looking for a tool where you don't have to do any work.
Can always fiddle with the context menu if you so wish
nothing stopping anyone applying an association reg key with all the parameters they usually use.
Wasn't there an program which did exactly this with doing it on the right click menu? ๐
pbomanger
I know that, but made a program which worked with setting mikeros tools on right click?
@elfin oxide
FYI, the args array of the new dll syntax gets overwritten with every function call -.-'
You need to copy the args if you want to use them "later"
Quick question, what would be the fastest way in C/C++ to deep copy a const char ** (array of char arrays)
currently using the std::vectorstd::string (args, args+size) constructor
the args array of the new dll syntax gets overwritten with every function call
Sure they do, where would be a reason to not change it with every call? @meager falcon
For not fu**ing around with async dll calls
No this is not how tings work ... you can not expect the input to stay the same if you async
That is pretty obvious
The extensions is 1 instance
every dll call uses the very same pointer (address), thats my only problem
If you are having this kind of issues you asked the wrong questions in the past ... yes sure you need to make a copy of your input that instant when you get it intoside your __std_call
std::vector<std::string>seems fine to me
just loop over the arguements and save all of them as string, since they are strings anyway
And @meager falcon remember, that as long as you do not return a value the dll is the only thing active, so it can not be overwritten in the man time actually
yeah, just doing that surely is no problem, thing is, copying takes ages D:
So just take your time and make a copy of it and then return any value so that arma can continue doing its work
there is no 'fastest' way with char** because each array is of indeterminate length and has to be strcpy'd separately. the above is the most 'efficient'
on the other hand
char *[fixed_lengths] is a very different story
copying takes ages no idea what you are doing but i have a whole shit load of things my dlls do with the new interace, including parsing the input for types etc, and it takes a very very small fraction of a ms!
yes of only fractions of a ms but copying in my case takes the most time of the call (nearly 50% of the time used by the dll is just said thing)
it's because each instance of a string must be malloc'd eg strdup
exactly
Well your cpu can't do magic it needs some time to perform such "simple" task which is actually very complex
i know, thats why i was complaining about the need of copying it ^^
Sounds for me like, why do i even need to breathe ... its such a waste of time lol
why can't i store my air for ever
I know very good about what actually needed/happening when copying memory blocks
Honestly as long as you are under 3ms you are fine anway
Arma has alot of tick rates in that 3ms area like max script running time etc
I know
sooo everything below is "blazing" fast anyway
and I still am, yet the faster the better
so why shouldnt I ask about how to squeeze the last few ns out of my dll
I think, I will just go back to the old syntax, it surely is faster to only convert a single chararray to a std::string
๐
Its that voice inside my head that screams: "You need to go FASTER!!!!1!!"
A car is only as fast as the driver ๐
I may remind you we are inside the armaverse, my head only screams: Please dont break in the next arma update and run anything like stable
I should probably never drive a racecar then
but yeah
Have you actually looked into the elapsed time? Nanoseconds?
yes, but not exactly on the time the copy takes
I'd imagine you're looking on that scale, which is negligible when you're calling it from the SQF side
BoGuu - Today at 3:20 PM
A car is only as fast as the driver :wink:```
๐คฆ
the thing is, if you run the test 1000 cycles straight, you will endup with enormous times since the mem alloc stacks up
so to speak
Define enormous
It's also hugely dependent on the number of elements you're passing
if you run 10-100 cycles you are in the range of 10^-5 s, over 1k cycles takes you to 10^-4 or worse
always the exact same args
yes I did
^
What stops you from caching them ext side?
its actually faster ^^
no, but faster than the actual dll call
Eh
i do not thing so, but im not 100% sure either
the SQF part to fetch all data takes roughly 0.00004s
So over 100 times slower
means 0.04 ms
Yeh and 40k ns
the dll cal takes (at worst) 0.92 ms
uSecs
0.92ms?
1 dll call = 0.92ms then you are doing something wrong
And that's purely a call with an instant return?
That's massive
Arkensor and I ran extensive tests with the args syntax with huge input
And we never hit that, ever
^
Maybe over 1000's of cycles
40k ns = 40 uSecs
thats one dll entry copy all args to an std::string vector attach it to some object and back
milli, micro, nano
sounds like something has borked
I will test it outside of arma, just to make sure
We were passing a large set of data, parsing it, and returning a large set in magnitudes less
Copying stuff is kinda fast. Allocating is not. Preallocate your buffers to a size that probably fits your data in a seperate thread.
can't. each pointer, points to an indeterminate length string.
TFAR can do mutex lock - copy to shared memory - mutex unlock - set off Event- in 0.007ms 7us so copying is really not much work
yeh kinda or not, not that slow ๐
Well.. Just preallocate 8192 ^^ The string will sure fit
you can since you are using the old syntax getting only one string of a max size at a time
If it doesn't you pay the reallocation. But better than nothing
Well max size for old RVExtension syntax is several MB... That's a bit much to prealloc
it doesn't help dedmen, because the pointer to each 8192 block must change from the original
just memcopy/strcopy then
yes, but thats what the buffer is made for
you end up with the same issue, each * of ** must be a new address
queue<std::vector<char>> buffers;
otherThread {
buffers.pushBack(std::vector<char>());
buffers.back().reserve(8192);
//Do for as many you need
}
RvExtension {
buf = buffers.pop();
buffers.resize(functionLength);
memcpy(buffers.data(),function,functionLength);
}
yes, but only if using the new syntax, otherwise its char *
and strcpy btw is generally deadly, since the code must spend extra time checking for no overlap
there is no overlap in this case, but the compiler can't asssume that
yeah, strncopy then
doesnt strncopy take a length param?
but for that to operate, there must be no overlap
then the compiler would know
you can safely use memcpy if you know the length
or std::copy... Because you don't need to write C in C++
indeed, and that's exactly what a strcpy function does if it detects overlap
otherwise, it uses asm code
good to know, thanks :)
but the strXXXX function itself, cannot know in advance, that there is. is not, overlap
std::copy btw, ultimately devolves to strcpy
... because all compilers try and use the inbuilt hardware of the pc, specifically designed for this kind of transfer and operates in nanoseconds
...but, you can't get round the need to strdup each individual string of indeterminate length.
But that's not that easy when doing Arma stuff... I enabled SSE2 in TFAR and within 2 weeks I got reports from some guys that had CPU's without SSE2 support
yep
in my code (the dll) i solved all issues <grin> by transparently converting every strcpy to a memcpy.
including of course std: blah
microsoft are actually quite good at detecting this stuff, but gcc is not so agile.
Off this subject. Complete noob with pboProject. Tried packing an addon earlier, the includes were visibly being processed (stdout), however, no merging was actually done. Include lines were left in the source file and the includes deleted (per the excludes). Am I being silly?
Win to add. Latest ver (off mav)
seriously doubt you were silly
I gave it a test run with a single file (with a single include) (and mission.sqm), same issue
description.ext or ?
Yeh, content: #include "test.hpp"
test.hpp contained a bare CfgFunctions
test.hpp was deleted, and the include left (although appeared to be processed in stdout), no errors
what you were seeing in the stdout of description.ext was LINT chekcing
desc.ext cannot be binarised
and ergo, the includes must remain at the end of the day
What stops the includes being merged (even w/o bin)?
consequently, the includes themselves have to be packed into the pbo
Np. Thought it was odd that it removed the include files themselves, rendering it useless
you have choices in setup
-Xclude from pbo, by default, will remove all (dot)h, and (dot)hpp
people explicitly choose to 'allow' *.h or *.hpp as part of their workflow
Will do. thanks. I'm assuming it'll still remove the non-desc.ext includes from the proj? After merge
regardless of the setting
only if you make those 'non-desc.ext' different extensions to one's used in desc.ext
Sure, makes sense, ta ๐
it's twisted logic, but.....
http://image.prntscr.com/image/0161cff295c1479c8e767b4d9ce6f577.png Intercept is not dead.
effort was worth it I think:
0.00000976s (0.00976ms) at 5 cycles
0.00014s (0.14ms) at 100 cycles
0.0004s (0.4ms) at 1000 cycles
0.00118s (1.18ms) at 10000 cycles
including the time of sqf
I can finally sleep well again
@glossy inlet hows the ingame syntax working?
What you mean?
Just registering my own SQF functions. you can specify name argument types return type and description. And then the registered SQF function will call your C++ function
registerSqfFunction("interceptEvent",GameType::Array,GameType::Array,GameType::String,"description",_interceptEvent);
funcName, leftArg, rightArg, Return, description, function
more like how is that "interceptEvent" defined ingame?
Macros? or how does it not throw errors of doom
M8, they edit arma via the memory, nothing like sqf or marcos ...
ahh, yeah see, thats what I wanted to know
Have a look at their git repos if you want to find our more i guess
Battleye is not involved serverside anyway, and on the client it will preven the dlls from loading if the dev team does get it whitelisted
But that is with every dll out there
Battleye shouldn't care. We are not editing any memory manually. And yeah no.. We don't edit Arma via memory ^^ Atleast not really
just one more question that I couldnt really find out in the wiki
If I set up intercept, does the normal ingame sqf still work? @glossy inlet
@meager falcon yes,of course
PublisherCmd.exe :
- Started
- CopyingToTempDirectory
- CopyingFile (d:\jenkins\workspace\CUP_Terrains_pbo\Addons)
Errors occured while publishing:
! Not enough space available on disk 'C:\'. Available space 7855923200 B, required space 13976295331 B```
Where do i set 'TempDirectory'? its not `Arma 3 Tools\Publisher\Publisher.exe.config` or in `%localappdata%/Bohemia_Interactive\Publisher.exe_Url_4ygeumi3ocjlhalgldtdqcxud30rm4ep\1.5.140.985\user.config`
I think only 7gig left of a (probably) terrabyte drive you've used up 99.3% of available space. You've got bigger issues that just wanting to publish something. Free some space up or choose a different drive.
its a VM. on precious ssd-raid space ๐
welll, it's basically a contradiction to use ssd for a crazy amount of data transfers, rather than what it's designed for: to speed up cpu and video processing. There's very little justification in holding addons on these devices, the game reads the damn things into ram anyway. And there's enormous justification building the pbo's on ssd.
video processing - I never really understood why that was the case. Isn't video data read sequentially anyway, so the random access time advantage of SSDs wouldn't apply here?
that's a good point actually. a very good one.
But I've seen people on video forums swear that switching to SSDs made their video encode faster, so I'm... perplexed
it probably does, Stack, but it doesn't negate your comment.
my point was, when you have limited amount of ssd available, you are forced to make choices. And archived material such as pbos are an excllent canditate for removal. Of course there will be a performance hit, but not quite as slow as starting again because you've run out of space.
๐
@versed kernel You can't change the temporary folder that at the moment I'm afraid, command-line Publisher always uses the user's temporary folder as specified by the system. You can hack it at that system level by changing it system wide; this is how Publisher locates the temp folder:
- The path specified by the TMP environment variable.
- The path specified by the TEMP environment variable.
- The path specified by the USERPROFILE environment variable.
- The Windows directory.
All 4 of them? I tried to move TMP and TEMP, did not work
Seems like Jenkins/Cygwin does not use the windows environment variables. Got it published in powershell. Thanks! ๐
SQF parser and static analyzer released. It essentially helps finding all kinds of bugs in SQF: https://forums.bistudio.com/forums/topic/204193-sqf-parser-and-static-analyser/
In case you know SQF idioms that are plainly bad, let me know that I add them as warnings to be shown to the developer
back in arma2 era I used Sqsmacs Squint, how does yours compare to it, I mean does with work the same way?
@pliant lynx never tried it. This one can do these type of things: http://imgur.com/a/1vLXm
looks pretty good, will have to try it out.
pm me if you need help installing it. It was already used to fix several bugs in Epoch, e.g. https://github.com/EpochModTeam/Epoch/commit/c1cfc3d29709635da7b2585ae43b61c71e14cf51
OMG, someone else is using Python :O!
BSD license, cool! I don't see the need to use your library in my python code right now, but i'll keep an eye on it, for sure.
๐ The python is the backend. The frontend is an Atom plugin
You should make a Sublime plugin (they use python) ;)
@pearl beacon I can try. Essentially, we need to write an extension to SublimeLinter 3 for SQF
from the backend side, the problem is solved. There is only missing the thin interface for sublime
@pearl beacon is there already a code highligher for sublime?
good, so I can just focus on the linter.
ArmA.Studio 0.2.6331.26237 got released
you will be prompted when you start ArmA.Studio if you are not up to date (unless you disabled Auto-Updating)
Open panels will appear empty due to internal changes, just reopen those
Changes:
- Rewrote whole lot of the backend
--> Solution now supports separate projects from different pathes
--> Fixed a whole lot minor and major issues
- Added German Localization
- Added Plugin System
- Added Workspace History (displays the last X workspace pathes and makes them selectible)
- Added simple image viewer (no PAA currently)
- Added properties page for Solution-Project
- Added Search (& Replace)
- Added Temporary documents (will be received by the debugger so that debugging unknown code is possible)
- Breakpoints now are in a separate file with separate extension
- Images wont upscale anymore```
Special Thanks goes out to @vabene1111#5492 and `trdwll` for this update
link: https://x39.io/projects?project=ArmA.Studio
Wow nice, that was fast @forest trellis !
I will try it out this evening and we can look into submitting it to the Sublime package repo :)
the README is rough though.
I can make some PRs later haha
@nocturne basin @forest trellis you guys are doing the Arma gods work ๐
@nocturne basin did you ever release your GUI editor your showed a while back?
Hey, does anyone knows of a complete list of reserved keywords of SQF segmented in terms of constants (e.g. player), unaryOperators (e.g. position), and BinaryOperators (e.g. max)?
@smoky halo that is great. Thanks a lot!
you're welcome
Anyone know if RVVersion extension interface is going to be in 1.70 ?
the hell is the RVVersion interface?
Kinda obvious, version info returned to the engine.
Means linux servers rpt output will have extension version etc in the rpt output. Really should been done that way to begin with
ah ok, i though it would have anything more fancy that just outputting the version .. as for now i just followed the guideline for the version command, but a version interface would be nice indeed. Never heared of it somewere before. Where did you get the info that there should be a interface like it?
Could someone run {diag_log _x} forEach supportInfo "" in the editor and paste the log on the internet (e.g. in https://pastebin.com/) ? I am coding the SQF analyser but have no access to my tower and really need that info for some cool stuff.
@smoky halo ah I see, i stoped reading it after nothing worth to mention was posted there for ages ... but yeah if they put it in now onto dev branch then it will be in 1.70 for sure
Stuff that is added into dev can could miss the feature freeze for the next version, i.e it might end up in 1.72. Thats why i asked if anyone knew ๐
Or tested it
@onyx lion thanks a lot!
also, the above info does not tell you the functions that produce constants, which was the way I read your original message. items like pi, rad+100 sqrt 6 etc.
only constants can be used in exec/eval statements in configs, since the config itself is a constant. This info is available in the documentation for pboProject/MakePbo and the dll itself.
thanks @dawn palm. So far all the variables (i.e. non-keywords) without _ are being treated as valid code without a type, thus so far that is not an issue. This is because most globals are not defined within a single piece of code, which is what so far the analyser checks. It would be possible to write an analyser to analyse whole directories, but that requires knowing how to analyse #include and #define, which so far is not implemented.
you could do worse than look at sbsmac's "squint". it was the creme de la creme of analysers. I have not seen it's equal in arma3. Yours can end up better, but it's a great place to start, to 'see' how the statements were analysed and what he looked for.
some of us still use squint to analyse o2script, the sister language to sqs/sqf. Addon Breaker from bis is, or was, written in o2script
you analyse o2script? ^^
squint analyses o2script
I asked mac to add the small differences to syntax, notably the @ operator, and he did.
anyone looked into the undocumented startup parameters of the arma3(diag).exe?
http://paste.ubuntu.com/24506585/
Some of them. the j* stuff is obviously the java scripting thingy.
d3d stuff is nothing interesting
debugCallExtension looks relativly new
just found this lil beauty in my auto-reports:
<?xml version="1.0" encoding="utf-8"?>
<root>
<version>0.2.6331.26237</version>
<report><![CDATA[I tried saving a fucking file. fix your shit software]]></report>
<stacktrace><![CDATA[...]]></stacktrace>
<trace />
</root>```
remarkable beautiful
lol ๐
๐
For anyone who hasn't noticed yet. Intercept is alive again!
https://github.com/intercept/intercept/pulls
Registering your own SQF commands. Performance Improvements and updated to 1.68.
is this like Fusion?
Fusion?
Somewhat. Not so well organized and Intercept only has the same functionality as scripts have. So.. Can only do stuff that a script could also do.
If script can't cuz of lacking command then Intercept also can't
k
@smoky halo tough me that the supportInfo function allows to get the signature of every default function of Arma. Does anyone knows how to get their return type?
signature => argument types
e.g. str -> STRING
|| -> BOOL
๐ฎ What black magic is th..... burn the witch!!!!
@glossy inlet how can I get that for every function?
๐
Wait for me to have time to create a full dump.. Which is maybe tomorrow. Or grab a dev build from my debugger and send a undocumented command over the named pipe
i don't think he wan'ts that dedmen (nice code btw). he just wants the return value type of the function (if any), not the typeOf a variable.
Well. It includes the types of arguments and return values
That data is directly from engine
oh? let me look again.
how would i use that to find out what 'select' or ' player' return ?
""retT": [
"ANY"
]"
got it. thank you,
You can't find out what exactly a function returning ANY might return
Because can't have the arguments and their types in a static file
well the return of a select can be any, so i understant that bit.
yes. That is fine. Arma is dynamically typed, so that makes sense
but often functions have just one return type, and the engine may have that info.
especially constants.
(which is what @dawn palm was saying, that he can dump that)