#arma3_tools

1 messages ยท Page 13 of 1

dawn palm
#

pboProject had an 'undocumented feature' ๐Ÿ˜ท

wind elm
#

"feature" ๐Ÿ˜„

dawn palm
#

actually, it was such a glaring error I am surprised it took this long. only way it survived is that no-one seems to want to use anything else except P:\

wind elm
#

Worked in version 1.72 ๐Ÿ˜„

#

~6-7Months ago

orchid shadow
#

Finally soon I can reenable the pbo Delta patching

meager falcon
#

what?

orchid shadow
#

What?

ornate wasp
#

Minor update of "Visual Studio Code: SQF Language", includes fixes for the latest VS Code release.

tame monolith
#

I programmed an Extension in Visual Studio C++ and it worked perfectly fine. I used the wiki entry ( https://community.bistudio.com/wiki/Extensions ) as a reference. Now I want to switch to an other IDE (CLion from JetBrains) which workes with CMake and the MinGW GNU compiler. I cannot get any code to work with Arma. It seems like the interface is not set up correctly, because when I try to load the extension in Arma, the .dll is locked (I cannot delete the file). But I cannot get any response out of the Extension. [My set up: Win7, 64 bit but Arma + DLL still at 32bit] Has someone Experience with stuff like that?

hallow rapids
#

well, what does the interface look like?

#

did you statically link libstdc++? If not, did you place the libstdc++ dll in path?

karmic niche
#

Always use an external program to load your dll manually and check if it loads and works correctly. It really helps and is about 20 lines of code!
It's really astonishing so few people do this...

hallow rapids
#

well, everyone has that tool, it's called arma3.exe ๐Ÿ˜

#

1/2 j/k

sinful crescent
#

probably just missing the leading underscore of _RVExtension@12 because of the different function decoration of mingw

tame monolith
#

Thx to you all, I solved my problem. @sinful crescent you were exactly right. I already thought it might have something to do with the decoration but I couldn't figure how to fix it.

pliant lynx
#

if I missed someone elses tool(s), please let me know and they will get added promptly.

wide cedar
#

@pliant lynx thanks man

nocturne basin
#

bloody crap ... anybody knows why i get Application load error Q:0000065432 when ArmA gets started from visual studio? need to debug my extension and being too lazy to start it by hand all the time ...

karmic niche
#

My guess is that it's some steam protection (a very weak one, if that's really a protection because of the workaround).
Workaround: run Arma (Ctrl+F5) and then attach with the debugger.

nocturne basin
#

yup ... after some time googling now ... it seems to be ...

#

but the "fix" seems to be that dump ...

karmic niche
#

You can install the ReAttach plugin for Visual Studio which then makes things even easier:
You do a: Ctrl+F5, Ctrl+R, Ctrl+1 in quick succession and you are already debugging

nocturne basin
#

sigh ... fuck you steam ...

karmic niche
#

What do you mean "that dump"?

nocturne basin
#

was suggested that "start as admin" could solve the prob

#

did not

karmic niche
#

Been there, done that :P
Really, use ReAttach and it works like a charm. Ctrl+[F5, R, 1]

glossy inlet
#

build an intermediary extension that forwards the commands to your extension. So you can unload/load yours as you wish.
Build an application to debug the extension instead of doing that in Arma.
I've got a .exe compile of my extension that i use to test. Otherwise i attach after Arma started

nocturne basin
#

no need actually
CTRL+F5, F5 and changing debug options is enough @karmic niche

#

now just need to solve why my dll is getting ignored

#

which is probably (or most likely) me being stupid

karmic niche
#

If your DLL is ignored, first check it with Dependency Walker and then try to load it by an external 20-line C program.

#

Once THAT works, troubleshoot by debugging with real Arma

nocturne basin
#

ye ... think i will just grab some old extension project and rip it apart

karmic niche
#

You may be surprised but that will actually be faster than starting Arma over and over again ๐Ÿ˜›

nocturne basin
#

do not want to speak too much about what i plan as i am not yet sure if i will follow up and do not want to make hopes ... but just need a very basic command set to get working
it essentially is right now just "callExtension" returning an empty string that i need

#

great ... it is the same ... gah -.-'

elfin oxide
#

@nocturne basin I would suggest you use a dedicated server instead of the client, put in a emtpy mission just with a init.sqf to make the calls to your extensions and fetch results etc

#

That way you can test every 30 seconds or so, that should be short enough, and you dont need to think about battleye

nocturne basin
#

just to close at least that possible problem ... the location of the DLL is supposed to be at "@<AddonName>\MyDll.dll" ... right?

elfin oxide
#

yes

karmic niche
#

It will also work if the DLL is in the same directory as Arma 3, as far as I remember

#

Not for production use, of course ๐Ÿ˜‰

elfin oxide
#

Stacks suggestion with a simple c program that hooks up the dll and executes it is the better way in development btw

#

saves alot of time, and can make some problems visible that arma won't tell you

karmic niche
#

...or not? ๐Ÿ˜•

elfin oxide
#

it is

#

its all there to start, thx to killzonekid

karmic niche
#

Nope, I see no LoadLibrary in there...

nocturne basin
#

ok ... to note why that is no solution (would do it exactly like so) is fairly simple: i started thinking about debugging SQF with proper break points ETC.
to do that, i need to hook the script engine
as that bloody issue fucks up not only visual studio but also my x64dbg, i cannot find the ptr of the function handling the script execution that easy ...
--> it is no option to write a sub-tool for testing

karmic niche
#

Yes, but you were saying that you cannot make your DLL work at all

#

So first you try to load your DLL with an external program and once that works, you fix all the other problems, including ending world hunger ๐Ÿ˜ƒ

elfin oxide
#

Agreed, and @karmic niche i meant have the dll code there in the wiki, not a techbench to run it sry ๐Ÿ˜‰

nocturne basin
#
#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>
extern "C"
{
    __declspec (dllexport) void __stdcall RVExtension(char *output, int outputSize, const char *function);
}

void __stdcall RVExtension(char *output, int outputSize, const char *function)
{
    //https://github.com/intercept/intercept/blob/4360bf568d401614b45fed477a97e858dbfaad7b/src/host/intercept_dll/intercept_dll.cpp#L80
    uintptr_t game_state_addr = (uintptr_t)*(uintptr_t*)((uintptr_t)output + outputSize + 8);
    strcpy(output, "foobartest");
}

BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved)
{
    switch (fdwReason)
    {    }
}``` wanna double check?
#

there is nothing inside litterally

#

but the basic RV hook and a single file containing the DLLMain

glossy inlet
#

For my hacky stuff I always just inject the DLL using an injector. Would also work if it would be loaded via RVExtension. But I also don't depend of the Stack from the RVExtension call

elfin oxide
#

you can remove the dllmain btw, since you dont use it at all

nocturne basin
#

not yet @elfin oxide

elfin oxide
#

ok ๐Ÿ˜‰

karmic niche
#

@nocturne basin Why don't you do it in small steps? First make an echo extenstion. Check that it works and then try other stuff

elfin oxide
#

ohhh intercept you want to use your dll that way

nocturne basin
#

nope
just got the ptr from there

elfin oxide
#

echo will work fine

nocturne basin
#

checked intercept if it was possible with it
gave up after 3 hours

#

it is right now a simple echo extension @karmic niche

#

maybe it is the name ๐Ÿค”

karmic niche
#

The big intercept comment fooled me. So that code is not working for you?

nocturne basin
#

there is nothing working yet
dll never gets callen

#

never gets bound

#

maybe it is the name ... checking right now (RVExtension.dll)

elfin oxide
#

huh lol

#

So you have you dll, it should work, but it does not at all?

nocturne basin
#

exactly

elfin oxide
#

No sign it attaches, and you don't get a result either

karmic niche
#

Seriously...

glossy inlet
#

Whats your filename and whats your script callExtension line?
Check Dependency Walker

elfin oxide
#

Check your rpt, if arma tried to attach it ti should contain a: unable to get version file for <name>.dll

nocturne basin
#

"RVExtension" callExtension "asd" @glossy inlet

karmic niche
glossy inlet
#

Also open in Dependency Walker and check if the DLL exports are correct

karmic niche
#

@nocturne basin If you're refusing to check the most basic things, I will have to start refusing to help you

nocturne basin
#

when did i refused to check? Oo

karmic niche
#

Did you check with dependency walker? No

nocturne basin
#

want to get it working so i can continue
just that i am not able to perform 7000 tasks at once

karmic niche
#

Did you check with a custom program? No

nocturne basin
#

custom program: can write you one in 2 seconds
will work

depencendy walker: never heard of it, you just posted the link and raged about me not testing with it

karmic niche
#

The link is for the custom program actually ๐Ÿ˜ƒ

glossy inlet
karmic niche
#

Easy!

#

will work are you sure? :>

nocturne basin
#

noticed that too right now ๐Ÿ™ˆ

karmic niche
#

Will you bet 1000$ on that it will work with your current compiler settings? :>

glossy inlet
#

Btw MulleDK19 already built a realtime SQF debugger. Maybe he can help you with that ^^

nocturne basin
#

i know
though, i am borred and UI-Editor gone insane mode a little @glossy inlet :3

glossy inlet
#

So you have experience in reverse engineering yeah? Because you will need that to make something like that. From what i read your C++ knowledge is not that high.. But whatever ^^ none of my business

nocturne basin
#

well ... we will see
as i said, do not know if i will get this working at all or not

#

if i do, i successfully REed something

glossy inlet
#

๐Ÿ˜„ Have fun then. RE is always an adventure

nocturne basin
#

tried once already ...
IDA ran the whole day

#

and was never finished with analyzing

#

and in the end i lost interest :3

#

the dependency checker shows up some missing libraries for whatever reason ... not really familiar with the tool too though ...
just opened the dll

glossy inlet
#

Close all tree entries. If you only see WIndows kernel stuff youre fine. Check the Exports section on the Right. It should have _RVExtension@12

nocturne basin
#

_RVExtension@12 yes ...

#

gah ... plan b ...

#

ohh .. well ... plan b works
for whatever fucking reason -.-'

glossy inlet
#

Arma engine already has a very nice script debugger builtin btw. But I would guess its disabled in release builds

#

just call ScriptVM::SetBreakpoint with file and line and a unique breakpoint ID and..... Youre basically done

#

When that breakpoint is triggered you can step through the script and anything ๐Ÿ˜„ But there are probably some external tools required to use that to its full extent

nocturne basin
sick verge
#

@glossy inlet is there some docs on that?

glossy inlet
#

BI has a debug DLL that uses that whole interface. So they basically have a fully dll accessible Script debugging system.
If you can get at BIDebugEngine.dll (which i can probably) maybe that will even work in the diag build. But I'm very confident that BI disabled that in all Public builds

#

no

sick verge
#

meh

#

what a shame

glossy inlet
#

Ask BI if they could #define SCRIPTVM_DEBUGGING in the diag build. If you get them to do that then I'll build a dll to access that interface. Have fun.
The calls that load the debug engine dll are available in the prof build. but SCRIPTVM_DEBUGGING is not defined in prof build. Don't have access to the real arma3diag.exe right now
You can even step per Line, Statement or Instruction! It would be so beautiful if People had access to that.
This ofcause can't be enabled in Release build. Because performance and hackers and stuff. But I don't see any reason to not enable that in a diag build. But i guess if arguing like that they could also disable JNI in the diag build :D
You can try creating BIDebugEngine.dll in the Games workdir and check if it is being loaded at startup. There is some fun to be had with that ^^

glossy inlet
#

And if they enable It I'd be happy to provide the documentation for all of that
@prisma dragon Any chance to see that happening? Opening the Script debugging stuff in a diag build? Don't care about performance in a diag build anyway. And alsoi don't think the performance impact of the script debugger is that heavy.
Scripters would be veryyyy happy about that I think.

hallow rapids
#

I've seen a SQF editing tool thing that had breakpoints working and all

#

haven't used it but there's some video floating around of it

nocturne basin
#

yes i know

glossy inlet
#

Yeah.. MulleDK19's one. Afaik he is hooking the script engine. Which I could also implement. Basically redefine all the disabled Debugging functions. But why do all that if BI can just set one define at compile time and make it all accessible
Just saw diag.exe can't MP. Thats not that nice but I think people can manage

nocturne basin
#

because BI wont do

hallow rapids
#

I guess it's more about their internal tools than the interface thing

#

(for disabling it)

rotund rampart
#

@ornate wasp have you seen my PR?

vague shard
#

is there a way to read out the model mass via some tool or o2scripting?

#

for the latter i found only

        <loper>mesh</loper>
        <lopertype>ObjectData</lopertype>
        <roper>index</roper>
        <ropertype>Number</ropertype>
        <returntype>Number</returntype>
        <description>Gets vertex's mass. Mass is valid only for Gemometry Level</description>
        <example>_mesh getMassPoint 10;</example>```
#

as i am not familiar with model structure and such not sure if i get this right.
does one have the loop through all points the geo lod, and add up the mass assigned to each point (with most having none)

glossy inlet
#

Well the MLOD has a mass variable. For the whole p3d file. But you'd need a parser I think

vague shard
#

hm from what i know o2/OB shows the total mass in the bottom or so. however actually its just the sum of all mass "boxes" distributed over the model, is it not?

wind elm
#

Not sure if you mean that but:

does one have the loop through all points the geo lod, and add up the mass assigned to each point
Ctrl+A -> Set the mass -> Mass will be evenly distributed
If you select one vertice of it and set the mass -> Mass will be increased by that point by Mass X and X will be reduced by all the non-selected points. (i hope its understandable)

vague shard
#

we want to read out the information to make an overview about vegetation to know what are sensible values

#

(context is despite setting same range of value of armor geo property, cars and tanks can drive them over with no/less resistance compared to BI vegetation)

wind elm
#

Oh, okay.

#

And ingame (by Script) is too expensive/sophisticated ?

dawn palm
#

in ofp times geolod armor= value was respected. no idea if that remains true.

vague shard
#

ingame needs first classes for all vegetation..

dawn palm
#

kju, if there is no config class for the object, the engine takes it;s armor value from the p3d

wind elm
#

@vague shard One big nearObjects with "sorting"out (pushback the filename/path to a "black/AlreadyCheck"-list) function should do it.

#

Wait, aint we talked about mass?

dawn palm
#

yes indeed,

wind elm
#

Me is pretty confused

dawn palm
#

but kju is mentioning the ability to crush (say) a tree or bush

wind elm
#

wasn't it defined by the Mass?

#

Or is it a mix of both?

#

(wich i assume, when i think about it)

dawn palm
#

mass== 'bouncability' armor= value before damage= is affected

wind elm
#

Can you define the Armor Value inside a Model? I am not sure, seeing it anywhere.

dawn palm
#

i only know, as mentioned, ofp.

wind elm
#

(or does it take StandardValues, when there is con config for that model?)

dawn palm
#

but i do mention it, because many/most of the characterstics of ofp remain in the game, and have been forgotten/unused.

wind elm
#

true

dawn palm
#

in any case, there's one hell of an easy way to find out. ๐Ÿ˜Ž

wind elm
#

Blow it up?

vague shard
#

@wind elm armor=10000 to be defined in geo lod as named property

dawn palm
#

1000 = infinity

vague shard
#

nope

#

BI settings for trees:

6    armor=1500
1    armor=3000
1    armor=5000
15    armor=10000
7    armor=15000```

bushes:
```20 armor=700
11 armor=800
1 armor=1500```
dawn palm
#

I must be thininking of accuracy= then.

wind elm
#

Rly? Okay. Never seen/noticed it before.

vague shard
#

accuarcy = 1000 => type is not shown, use parent

dawn palm
#

the obvious point there kju is to set it to some large enough value to expect a difference when a car smacks into it.

wind elm
#
dammage or damage for ArmA
Usage: Geometry LOD. This setting defines what happens to object after it is destroyed.

Please note that armor value can be set via config.cpp.```
https://community.bistudio.com/wiki/Named_Properties#Named_Properties

"can", hmm.. should it?
vague shard
#

damage = effect

#

like fall over, etc

dawn palm
#

sorry my bad.

vague shard
#

can = when sth isnt supposed to have a class then you have to use named properties

#

in other words BI introduced this workaround

#

they say class for vegetation and some other things would degrade performance

wind elm
#

Would explain, why there is none for all trees/bushes

#

(i mean, its a 10min thing to add them all to classes)

dawn palm
#

the above would be obvious, it's 'faster' to react to the p3d which is, after all, being read anyway, than process a config 'somewhere'

wind elm
#

Yeah, instead of "searching" for the Class -> Values -> blaa.

dawn palm
#

and they weren't 'introduced' geolod properties were even present in the models for ofp demo

#

classed objects are over-rides of the default game mechanics

ornate wasp
#

@bux Sure, will be merged. However you'd have to enable CBA commands/functions via settings.

dawn palm
#

small update to the dll:p3d to account for minor changes at 1.67 dev release of the game.

smoky halo
#

@dawn palm what changed?

limber garden
#

He'll probably be along later to explain it more, but he told me sourceaddress=mirror now has different min and max phases.

dawn palm
#

tanoa_map_objects.1.03.pbo released with more objects. The extras goodies are somewhat redundant as bis have now released the same extras as pbo. but, there you have it,

narrow bough
#

thanks @dawn palm

thin rose
#

Don't know where this community would be without Mikero.

dawn palm
#

the parasites and thieves wouldn't agree with you ๐Ÿ˜Ž

shy salmon
#

When I attempt to execute make.py with the specified commands, pboproject then opens and tells me that the source folder is not apart of the workspace (P:)

#

Sorry for bothering you, I was unsure of who else to inquire to so I figured I would ask you because your tools are part of the process

dawn palm
#

if you want to build a pbo, the folder of that pbo must be in the same 'virtual addressing space' as everything else. Eg, since all your other files are (presumably) on p:\ (items like p:\a3) then your pbo folder must be there too in the 'correct' location.

shy salmon
#

Okay. Thank you for the response. Unfortunately, now it's simply telling me "Cannot open source folder. Packing failed"

dawn palm
#

well it aint where you said it was.

#

p:\some\where

#

you presumably already have p:\x and p:\z (part of ace3 setup)

#

other than that i don't know very much about this mod.

shy salmon
#

I think I may have discovered my mistake. Hold on.

#

Ah yes, silly me. I was pointing it to the wrong direction

#

Hmm

#

Still did it wrong apparantly

#

I don't understand. Why is it failing to open the source folder? I'm executing the make.py command from the source folder

dawn palm
#

and I don't understand why your're asking me. I know almost nothing about ace3 or it's setup.

shy salmon
#

I figured since they're your tools that are a part of the process that you may have an idea. I apologize for bothering you, hopefully I can figure it out on my own.

dawn palm
#

i'd assume one of the ace devs is here and will reply as and when

shy salmon
#

Hopefully. Your tools are very useful though and I know you probably already hear it a lot, but, they're very much appreciated

dawn palm
#

thank you.

pearl beacon
#

I suggest you get on our Slack @shy salmon more people there to help you, I am on phone atm so can't do much.

shy salmon
#

@pearl beacon Okay, will do!

vague shard
#

has anyone looked deeper into the binarized wrp format?

i am trying to rebuild a terrain made for A1/A2 in with A3 tools,
yet i am getting different results using eliteness to compare them (namely no clutterMask and extFlags)

glossy inlet
#

I planned to but didn't get to yet.

orchid shadow
vague shard
#

2.1.4.6 [Fixed]Rewrote several core functions. speed++ [Added]Reimplemented pbo delta patching [Added] New icons for window toolbar [Fixed] Issue with window menu icons with high DPI screens [Fixed] SPDs are dead!. .. and much more..

sick verge
vague shard
#

@sick verge such efforts are always much appreciated ๐Ÿ‘ looks pretty decent and well presented :)
will load in my game mode code as "torture test"

sick verge
#

Glad to hear that :)

#

Can't wait to get the feedback :D

vague shard
#

Formatter: A mechanism that puts the code into a proper pre-defined format (indenting and newLine-management) to increase the readability of (your) code.
did you consider to do this with a 3rd party tool, or does eclipse have good functionality for that itsef?

#

Logger: A logger that will get notified when something went wrong so that potential errors/bugs can be isolated and solved
how does this relate to the rpt?

#

Debugger: A debugger that lets you execute your code step by step and that lets you see and manipulate the content of your variables during runtime. No more endless print-statements to find out where the problem in your code is!
this is quite ambitious - i believe someone else is trying to get this tackled too

sick verge
#

Actually I thought about writing the formatter myself... But I must admit that I have not yet looked into it too deep...

#

The logger is meant to be logging the Plugin problems and nothing ArmA related...
Yeah I know... That's why the debugger is pretty much the last point on my todo list

vague shard
#

ive used this one: https://sourceforge.net/projects/uncrustify/
mainly for configs, but to some extent it worked also for sqf

sick verge
#

Oh yeah I already have... He gave me access to the source code of ArmADev but I think it's almost more complicated to strip something out of it than actually writing it myself

#

Okay I'll look into it when I'm approaching this feature... Thanks :)

wide cedar
#

things are starting to look right

rotund rampart
#

Nice!!!

fallen stone
#

๐Ÿ‘

pliant lynx
#

armake progress with virtual arsenal image, I dont understand the context?

wide cedar
#

all those models are binarized with armake

#

p3d conversion is becoming usable

pliant lynx
#

ah I see, good job then! ๐Ÿ˜ƒ

wind elm
#

and this is usefull for? (no offense, i rly got no clue)

wide cedar
#

being able to completely build mods without any bi tools (on linux, on continuous integration etc.)

wind elm
#

Ah, nice.

onyx lion
#

anyone feels helping out in a small coding project?

to optimize the LITE creation process (resizing textures) a small tool would be handy that makes sure only change files are "rebuilt"
comparison based on "create/updated" file stamp

glossy inlet
#

"LITE creation process" ?
Which language and windows/Linux?

vague shard
#

basically resizing texture (can be also more)

#

windows for now, yet to have for both would be neat (linux for automated build process uses)

#

the basic probably would be:

  1. read input and output path as parameter
  2. if file does not exists on input, return false
  3. if file does not exist on output, return true
  4. if file in input is newer than in output, return true
  5. otherwise return false
glossy inlet
#

C++

bool shouldCreate(std::string inFile, std::string outfile) {
    HANDLE inputFileHandle = CreateFileA(inFile.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (!inputFileHandle) return false; //If I can't open the input File I also can't convert it.
    HANDLE outputFileHandle = CreateFileA(outfile.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (!outputFileHandle) return true; //If output file doesn't exist I'll create it.
    FILETIME LastWriteTimeInputFile;
    FILETIME LastWriteTimeOutputFile;
    if (!GetFileTime(inputFileHandle, NULL, NULL, &LastWriteTimeInputFile)) return true; //If we can't get time just convert it anyway
    if (!GetFileTime(outputFileHandle, NULL, NULL, &LastWriteTimeOutputFile)) return true;
    //If input file was lastEdited after output file
    if (
        _ULARGE_INTEGER{ LastWriteTimeInputFile.dwLowDateTime, LastWriteTimeInputFile.dwHighDateTime }.QuadPart
        >
        _ULARGE_INTEGER{ LastWriteTimeOutputFile.dwLowDateTime, LastWriteTimeOutputFile.dwHighDateTime }.QuadPart
        ) return true;

    return false;
}
wide cedar
#

if you're on linux you could just use make

vague shard
#

@glossy inlet looks good ๐Ÿ˜ƒ do you mind building an exe for cmd line use to have a test with it please?

glossy inlet
#

uggghhhhh :/ I hate command line parsing with spaces and crap

wide cedar
#

docopt is love

#

docopt is life

wind elm
#

"life"

glossy inlet
high path
#

So if I'm making an arma extension for 32 bit linux in C then it should have the signature
"extern void RVExtension(char *output, int outputSize, const char *function)"
correct?

karmic niche
#

From what I can see, you're missing __stdcall

high path
#

It's a linux library, __stdcall doesn't exist.

karmic niche
#

Are you sure? I mean, sure, it's not used in linux but Arma will probably call it with that convention anyway as it's a Windows program ported to linux.

#

There is __attribute__((stdcall)) in gcc I think

dawn palm
#

you don't need an exe for the above simple need. a bat file is more than sufficient:

if exist thingy then exit/b 1
etc etc

#

including bash btw

karmic niche
#

Actually, I never wrote extensions for Arma that were used on linux so I can't tell. Try your code as it is and if that fails, add the stdcall attribute to see if that fixes it

high path
#

gcc was unhappy with it.

karmic niche
#

So you're probably safe if you omit it.

#

However, I'd got with the cross-platform way if I were you ๐Ÿ˜ƒ (ifdef)

high path
#

Well, I'll just add the ifdef anyways. Also, are extensions loaded at mission start or at server start?

karmic niche
#

From my (small) experience, on first extension call.

#

So if you want to fail early in case of issues, make some kind of init routine that returns "OK" so you know that it has been loaded and it works

#

And you call that as soon as you can

high path
#

I'm just making it echo back what it gets as arguments, just so I can get the loading process ironed out.

dawn palm
#

#if(n)def _WIN32 is a universal define for micro$oft including 64bit compiles

karmic niche
#

just so I can get the loading process ironed out
Even after that stage it's good to have a safety check put in place.
Let's say it works on your computer and you give it to your community members but then BattlEye blocks the extension. You will be wondering why X doesn't work. Of course that doesn't apply if you're doing a server-only extension but I always prefer to stay on the safe side, check things and fail early while I still can.

dawn palm
#

+1

high path
#

is it possible to execute code when arma loads the extension as opposed to when it gets called?

karmic niche
#

Hmm... dllmain for windows. I don't remember what is executed on linux.

#

Make a C++ constructor ๐Ÿ˜ƒ

high path
#

sigh all this just so I can just write to a file

karmic niche
#

If you want to open a file on start you can use a static variable in your function that will hold the file handle opened on first call of that function

high path
#

no, no I actually have an extension I'm trying to use, but I can't get arma to recognize it, so I'm trying to determine what is wrong with it.

#

I'm trying to get https://github.com/mistergoodson/OCAP working. By default it comes with a .dll version. Someone made a pascal version which nobody can get to compile, then that same person made a very simple C version that I can get to compile, but can't get arma to recognize.

karmic niche
#

Have you written a program that opens your dll/so and calls your extension manually and why did't you do that? ๐Ÿ˜›

high path
#

well I can see what my so has in it using readelf or nm

#

but I have nothing to compare it to

#

Also checking, I'm using the debug console to execute my callExtension on the server. This shouldn't cause any problems related to security protections or anything, right?

#

ha ha!

#

I forgot I was working on a 64 bit linux, but 32 bit arma

dawn palm
#

for those who aren't aware of this (because i'd forgotten too) dep3d +Fx will automatically remove P:\ from file references which are sometimes wrongly inserted by object builder.

scenic canopy
#

@dawn palm I've been getting some crashes with makepbo lately, most of the times it works just fine but sometimes it just crashes once or twice and then suddenly works fine without any changes to the source. makepbo is started by pboproject, both are latest subscriber version. any logs I can send you?

dawn palm
#

define 'crash' please. genuine crash to desktop is verboten

#

it sounds like a memory error of some kind.

scenic canopy
#

yeah, I'd guess so too. it's an actual crash where the Windows Crash Report is shown

karmic niche
#

<rant>
Context: For the last two years I've been working on a torrent installer/launcher (yes, because I like to pointlessly redo the same work that has already been done by others) that can be used to make your own custom looking launchers and this guy turned-up. We've been talking for a few hours when I was trying to help him with setting the launcher up, and then he drops this...

#

...aha... can't upload images to this channel ๐Ÿ˜•

#

veeeeeeryyyyyy looooong siiiiiigh

#

</rant>

scenic canopy
#

aww

sick verge
dawn palm
#

Windows Crash Report

it's almost a certainty, that assuming nothing's changed in what's being packed/compiled that you have either dodgy memory, video card or hard drive, in that order of frequency.

#

my own experience is that memory faults turn out to be video cards (or drivers) anyway.

#

My tools are well known for their stability (which is not the same as saying they are bug free). It's almost, but not quite, impossible for them to cause a ctd.

scenic canopy
#

same error occurs both locally and on our CI server

#

I'd guess it's something fishy with that specific addon we're building since it only happens for that specific folder, not the others

dawn palm
#

if it's not too large i'd like to look at it. ctd's are never acceptable.

scenic canopy
#

That could probably be arranged, the addon folder is just some configs and sqfs. It might have dependencies on quite a lot of models, I'll need to check that and if it's reproducable with or without them. If they aren't required I could just email you the troublesome addon folder, it's just a megabyte or so.

dawn palm
#

yes pls. I can cripple file reference checks. my guess is i've done something dreadful with sqf

chilly breach
#

How come that the promising "intercept" project lays dead on git?
It feels like the holy grail of arma scripting, what's stopping you (the pros) pursuing it any further?

glossy inlet
#

"the pros" are currently 2 people. Me and Nou. Nou has a new job and no time for Intercept. And I am working on TFAR and a couple other projects. So.. free Time is stopping us
I'm planning to work more on it once TFAR is done. And my other projects pile get's a little smaller

chilly breach
#

it is hard to believe that there are only two arma modder capable and interested in working on the project.

glossy inlet
#

ยฏ_(ใƒ„)_/ยฏ

elfin oxide
#

I only read though it before I left to my vecation right now. But it got a bookmark so I will revisit it and if I find something to suggest or work on I will create a pull requuest if there is a public git :) I am working on a siries of extensioms atm, also a major rewrite of A3Log, but after that this is on my list.

#

If I got things correctly this is indeed a very interesting idea.

karmic niche
#

if there is a public git :)
Is Github not public enough? ;P

elfin oxide
#

could have been that the cuttent dev build is located somwhere else, as I often do.

#

But if the up to date files are on github thats fine ๐Ÿ˜‚

glossy inlet
#

Currently biggest thingymabob on Intercept right now is reworking the Memory allocator. I'm already half way done with that. I think current code on Github is 1.66 compatible. So people could run it if they wanted to

chilly breach
#

latest git version crashes after trying the example files.

#

*the game crashes (obviously) although I had problems compiling the example so they might be older versions.

elfin oxide
#

Might be a dumb question to ask but I never had the feeling that an extension would need its own mem alloc. What are the reasons you would use it? For and against it?

glossy inlet
#

Because... Intercept is not just an extension. We need it so we can use the refcounted classes that the engine gives us without implementing our own cache and crap.

smoky halo
#

extdb uses memory alloc, because mysql c connector wants memory preallocated for results when you use prepared statements.
A single column in a result with medium text data type will require 16mb.

So it helps avoid some memory fragmentation issues depending on usage / query's / dB scheme.

fallen stone
#

16mb o.o

smoky halo
#

LongText is 4GB ๐Ÿ˜‰

glad mesa
#

i was ... reading that. ๐Ÿ˜„

nocturne basin
smoky halo
#

lol i need some coffee + proof reading crap before i post ;P

wind elm
#

@nocturne basin won't work

#

"thenasd" ๐Ÿ˜„

#

throw[ff

#

you noooob

dawn palm
#

due to the way the microsoft os allocates it's memory: you can only rely on 25% of total ram in the pc to be available for any given linear block. 16gig ram? 4gig or less is garanteed. anything more is randomly not available.

#

it is not available simply because another app was placed, or is placed, dead centre of two chunks.

nocturne basin
#

Was something to Show The linter is working und @wind elm

smoky halo
#

There a cmdline version of linter or built into editor?

nocturne basin
#

No cmd line available but you could build one easily

#

It is all inside a single DLL

smoky halo
#

Kinda bugs me that
test = parseSimpleArray "[1,2]" select 1; (0.33 10000 iter)
Is faster than
test = call compile "2"; (0.45 10000 iter)
Just might be useful for someone doing extensions.

meager falcon
#

yep
and its even better with the new callExtension syntax which saves you all the param formatting

glossy inlet
#

I was just optimizing a function. And formatting all params into a string to send to the extension takes 0.02ms. Horrible! Desperatly awaiting callExtensionArgs

smoky halo
#

Really wish they didn't mess with the return format from an extension ๐Ÿ˜ฆ

exotic ice
#

@smoky halo Hey I have a quick question re: your tool, is it OK if I Discord direct message?

elfin oxide
#

@Dedmen why are you waiting? Its already there ... Also on dev is the new return too

#

@smoky halo you mean did not mess with it again? Since they changed it to ["stringdata",returnCode,ErrorCode ] already

#

Order might be different, look at the callExtension page its all told there

smoky halo
#

I mean to support 2 callExtension methods to be back compatiable.
Means documenting 2 different return methods, especially if you take advantage of the returncode

elfin oxide
#

Uuuhm I think its just fine now. They wont change the system they just came up with

#

callExtension string - string

#

callExtensionArgs Array - Array

#

They could speed up the input transmission though ... Its takes for arges when much data is processed

#

Ages aka 0.01 ms or so but still its bugging me

smoky halo
#

Its not really returning an array though ;)
Its a number and string you return not as useful as array. Its just wrapped in an array.
Would have perferred just a string

elfin oxide
#

Yeah ok I see the point. Still if you use the codes it is better that splitting the string again at output.

#

And with parseSimpleArray an array return is impletmemted

#

Its a typical duc tape solution from BI again but still i appreciate it

meager falcon
#

they could have implemented a callback eventhandler.. that would have been nice

#

so that the dll can actually offload stuff and directly call back when its ready..
the whole async way in sqf really bugs me

nocturne basin
#

@meager falcon would create nasty problems

meager falcon
#

If it only triggers a eventhandler, with the return of the Extension (and the extensionname) as param?
Not sure what problems that could cause

elfin oxide
#

I this wont work too well ... callExtension performs the loadLibrary command c++ side and if you would async that you could get real problems with instanceing and sorting which return goes where. If you wanna do something async make a queue and do a smart sqf side. Its barley even 50 lines of sqf to have a real good async implementation. I will publish a framework for that soon to use it or learn from the approach, you might look into that then

smoky halo
#

@exotic ice sure

meager falcon
#

I already know the async way, its more about saving te performance of permanent requests.
The LoadLibrary on the c++ side is btw only once performed, when the callExtension is first performed, after that the dll is attached to the ArmA3 process

So my Idea was basically to have a certain c++ function to be called (just like RVExtensionBack or something..) that only triggers the ingame EH with given params. It would have the same restriction as we have now with a single call
So its more like an Interrupt approach, instead of busy waiting

#

This would actually make larger scale calculations possible which are performed by the dll only (given the fact we can multithread)

elfin oxide
#

I dont see how that should work, as you cant just say the dll ok call me again whwn you are ready ... Some point of arma must wait

#

You execute the funtion of the dll which is exportet, and that execution is sync

meager falcon
#

You actually can:
callExtension -> createThread from the DLL and the callExt is ended
Dll is done -> call the "Interface" of the game.exe -> trigger EH

#

the sync part is done, when the output is set (RVExtension function end)
You can however create new Threads within the RVExtension function which are still executed, when the call has already finished

#

KK made a tutorial for this

elfin oxide
#

I know about mutli treading and the async approach, but your idea would rewuire the dll to call an endpoint inside the game for trigger the EVH

meager falcon
#

Thats what I said

elfin oxide
#

I mean sure its possible, but I don't think would do that

meager falcon
#

Yeah it was more like a wish.. like I said

#

it would free up alot of Script engine capacity if you do alot of Extension work in an async way

elfin oxide
#

This would be a nice thing, but honestly you can so mutlithreaded async on your own. My extensions to be released soon all feautre a framework for it which keeps the processing time down to nearly nothing, so just input in output out

#

So as this already possible, BI wont work on jt, as they most likely break their game by doing so

#

Remeber the engine is old, and they barely even tough it anymore

nocturne basin
#

how it comes that non of you thought about the SQF stack yet?

#

armas "async" mechanism is not real async for a reason

#

not to mention all those race conditions when you would like to update a game objkect in the main thread

#

deadlocks incomming

meager falcon
#

what are you refering to by "SQF stack"

nocturne basin
#

script stack

#

vm stack

#

script vm stack*

elfin oxide
#

All scripts you execute are acually staked

nocturne basin
#

though ... not actually sure if it does work with a stack

#

but it is the most common thing

#

you should not forget that arma is designed in the way we love & hate it for reason

#

and if they could not get away those things ... i highly doubt that it would be "just quickly" implemented

#

not to mention that the whole crap of script engine would most likely break when you operate async on it (+ the game in some aspects)

meager falcon
#

Well would the callBack triggering the EH not only be another item to add to the stack then?

nocturne basin
#

you add it async
you would need to regulary check the async EH stack for such things

#

and all that just because some ppl want async dlls?`

#

race conditions and deadlocks would be the result ... probably ...
because somehow for some reason somebody finds a way to "abuse" or at least manipulate that stuff enough

meager falcon
#

isnt one allowed to dream ๐Ÿ˜…

nocturne basin
#

no ๐Ÿ˜›

meager falcon
#

ok then back to setting up a local server, gameupdater/steam client broke >.<

orchid shadow
#

X39, why would you get deadlocks?, the EH would return at some point in the script stack.

DLL callback would be put on the callback stack and then each item would executed on the end of the frame or whenever.

#

Its not like it would instantly interupt whatever the engine is doing at the moment.

meager falcon
#

^ this

nocturne basin
#

speculation is everything we can do in the end due to lack of code

elfin oxide
#

That deadlock showcase was so beatutiful <3

glossy inlet
#

Best solution IMO when the callback is executed add a new onEachFrame handler that executes he Callback SQF function and then removes itself as eventhandler. Would only have to make the addEventHandler threadsafe so it doesn't crap out the engine when it tries to add that EH in exactly the moment the EH's are processed

fiery hemlock
#

If a deadlock is created it's because of user code... there's no reason you couldn't create a deadlock in SQF... just like there's no reason you couldn't implement this RVCallback properly without deadlocks. The extension generated event can simply be dispatched to the main thread and handled at a later time

nocturne basin
#

If a deadlock is created it's because of user code dat

#

nothing else to be said

#

it is pretty much what i wanted to say the whole time

orchid shadow
#

So basically not what you were saying but if you pretend that was what you were saying suddenly its all true and you don't look like a idiot.

#

Yea, no you were still wrong.

#

Callbacks woulden't have deadlocks because you easily engineer around it.
If the code on the other side eg the "modder" side deadlocks that a whole other problem and is a user issue and not really anything to do with the feasability of a callback trough the exstensions.

dawn palm
#

hte engine has a 1 mscec abort timer. deadlocks are killed.

#

no sqf process of which, even t handlers are part, and call extensions, since what else do you think you can code in? are subject to the 1msec rule.

#

this is buried so deep in the orginal ofp code that bis have been unable to break it.

meager falcon
#

be BI
try to fix the engine
cant fix it
making a new engine

However, atleast some of you understod my idea of having the ability to call back to the SQF engine

verbal oar
#

Hi all. I'm trying to make own extension and I have 1 problem: arma doesn't see my dll from @mod folder, but from root directory it works fine. Why?

limber garden
#

When you had it in the @mod folder did you launch with that mod?

verbal oar
#

yes, of course

smoky halo
#

[2:13 PM] Torndeco: @verbal oar Statically link your extension
[2:13 PM] Torndeco: If you dll is dynamically linked the other dlls. They need to be in arma3 root directory or system dll path.

verbal oar
#

Thanks, I'll try

orchid shadow
#

@dawn palm I was referring to C++ code in the exstension.

#

Anyway X39 is a idiot and should just shut up about thing he dosent know about

dawn palm
#

mikero subscriber tools website is down until tuesday 7th march

pliant lynx
#

what does that mean, only updates are unavailable (MikeroUpdate) but tools still work normally?

dawn palm
#

Tthey work as intended., no updates however are available till further notice.

wind elm
#

Anything happend? (like Goat eating Servermachine)

dawn palm
#

was relying on someone else to pay the server costs.

wind elm
#

gg

dawn palm
#

had done so for some years now, i forgot.

#

anyway, am looking for an automatic host that will recieve the paypal and issue the password right there, right then.

#

I think optix offered. maybe.

smoky halo
vague shard
#

did you build the app yourself to test? in the forums he said its still WIP but wants to have somehow out soon

smoky halo
#

(@vague shard) No, there's a video of it.

fiery hemlock
dawn palm
#

that's such an old version of the dll i'd say almost certainly. but i'llcheck your #defines when I have time, and get back to you.

fiery hemlock
#

@dawn palm if you wouldn't mind checking this one as well ```#define CAT_I(a,b) a ## b
#define CAT(a,b) CAT_I(a,b)

#define STR_I(x) #x
#define STR(x) STR_I(x)

#define HASH #

STR(CAT(HASH,X)) // "#X"```

dawn palm
#

k

dawn palm
#

@fiery hemlock

1st example:

bis: "1 space space 2"
me: "1 space 2"

2nd example

bis: "space space X"
me: error because i won't ignore # and won't accept it

fiery hemlock
#

@dawn palm so both BIS' and yours still fail in both cases? ๐Ÿ˜†
as for the last comment, do you mean you don't intend for it to work? if so then how do you produce "#X" from X ?
also on an unrelated note, does your preprocessor have a predefined symbol like __MIKERO__ or __DEPBO__ and does it handle nested control structures? as i understand, the BIS' one does not, at least not the A2 one, though i haven't checked in A3.

dawn palm
#

bis can't handle nested # ifndef, i can, and do

#

nested hash ifdef works for bis, ndef does not

hallow rapids
#

is the preprocessing part of binarization?

fiery hemlock
#

i'd say no

#

it's preprocessing

dawn palm
#

it's just a fancy word for handling #defines

fiery hemlock
#

a preprocessor takes text with some directives and outputs processed text

#

it does not build a binary representation of anything

#

so no binarizing

dawn palm
#

.... or doesn't compile certain sections of code.

hallow rapids
#

I get what a preprocessor does I'm just wondering why @dawn palm has to do it

dawn palm
#

it's part of the c languagge and part of bis config.cpp's

hallow rapids
#

ah so it's basically just done for checking / parsing the configs

fiery hemlock
#

heh i wonder too, why is everyone rolling their own, whats wrong with existing tools? they come with every C/C++ compiler ๐Ÿ™„

dawn palm
#

huh?

#

I don't have MIKERO but ARMA is used to expliclity binarise to arma rather than ofp. ditto OFP is an explicit compile switch

#

above italics should have underlines.

#

if so then how do you produce "#X" from X ?

buggered if I know. bis don't accept it as presented. neither do I.

#

and even if it were accepted, it would not produce #X me: # space X and bis: # space space X

#

define CAT_I(a,b) a ## b

you _probably wanted:

define CAT_I(a,b) a##b

wide cedar
#

@fiery hemlock i would prefer using cpp or something similar in armake, but since includes work differently due to the whole prefix system it's not that easy

dawn palm
#

have i lost the conversation here? what have includes or even cpp have to do with it? what am i missing?

#

aah. do you mean a separated parser?

wide cedar
#

cpp = the gnu c preprocessor, not c++

dawn palm
#

there's a difference in macros between c and c++ ???

wide cedar
#

naming isn't their strong suit i think

fiery hemlock
#

i think there's some standard differences though don't quote me on it

#

@dawn palm i'm just thinking in terms of C/C++ preprocessors here. do you mean that the spaces in the expansion of a ## b are intentional? if so, shouldn't there be 2 spaces like in the BIS' PP output you showed?

dawn palm
#

probably

#

but it seems to me you haven't tested this stuff at all to get the outcome you wanted.

fiery hemlock
#

Heh i did test it but when the output was "1 ""2""" on a simple catenate+stringize i didn't feel like testing further would make any difference. Admittedly this was an older version of your tools but hey i'm here to decide whether the new versions are worth spending money on. And since there are no trials or refunds as far as i can tell, what else is one to do?

dawn palm
#

you ask here as you did do. it makes sense to me you asked.

fiery hemlock
#

all these homebrew preprocessors don't much impress me though. why shouldn't i just use say msvc and get far better results

wide cedar
#

maybe i'll use that

wide cedar
#

update: it's shit, acre murders it

fiery hemlock
#

cl /EP config.cpp >> config.i

glossy inlet
#

To save Flummi from writing that. Most already available preprocessors would need to be modified to respect Prefixes in #include. And as it is on the semi todolist that armake will also be able to load header files from inside packed pbos one needs to be able to make a custom #include resolve function. Which you can't with closed source preprocessors.

fiery hemlock
#

are you talking about SQF preprocessing?

#

also you can just use /I whats the problem?

#

only thing a C/C++ PP can't do is __EXEC __EVAL but i don't really know why you would want to use those anyway

glossy inlet
#

let's say #include "z\ace\addons\common\script_macros.hpp You have a folder called ACE3\addons\common which contains script_macros.hpp and a $PBOPREFIX$ that contains z\ace\addons\common How would cl know that it has to read that PBOPREFIX to know what folder it is currently in.

fiery hemlock
#

Whats the benefit of doing that? ACE3 vs z/ace

glossy inlet
#

No need for a P drive and symlinking everything to replicate a artifical prefixed directory structure

fiery hemlock
#

But why do you want z/ace/... and not ace3/... ?

glossy inlet
#

because the ingame preprocessor uses the PBOPREFIX paths.

fiery hemlock
#

So change the pboprefix path?

glossy inlet
#

facepalm forget it...

fiery hemlock
#

No seriously whats the benefit of using a different pbo prefix?

glossy inlet
#

It's just CBA/ACE/TFAR standart way of doing it. It's better for organization thingys

fiery hemlock
#

Ok so your source code is organized as ace3/xyz and pbo contents as z/ace/xyz? Whats preventing you from using the same path for both?

#

so basically some twit decided to be fancy and used โœง๏ฝฅ๏พŸ: *โœง๏ฝฅ๏พŸ:PBOPREFIX:๏ฝฅ๏พŸโœง*:๏ฝฅ๏พŸโœง and now it's too late for y'all to change it?

glossy inlet
#

Some twit being BI....

fiery hemlock
#

they made cba/ace/tfar whatever the hell those are?

wide cedar
#

if you symlink ARMA/z to your p-drive, the /z/MOD/addons stuff allows you to use filepatching with all your project files on the p drive

#

also, the prefix in general allows you to "root" the paths of any arma config regardless of location, allowing you to use absolute includes like \PREFIX\path.cpp

#

and as long as the binarizer finds the file, it doesn't matter where it is

fiery hemlock
#

you can't link %arma%/mod to p:/mod ? or %arma%/mod/addons/x to p:/mod/x ?

wide cedar
#

you can, but the system was introduced by people working on more than one mod with the same system ๐Ÿ˜‰

#

lazyness always prevails and 1 symlink > n symlinks

fiery hemlock
#

automation > manual labor

wide cedar
#

i agree

fiery hemlock
#

because you see.. laziness prevails

wide cedar
#

i don't even use filepatching, and the majority of modders probably don't either

#

also, since these projects are now open-source, ease of entry is more important than comfort for the core devs

#

that's why building your mod shouldn't be dependant on things outside of the project folder

fiery hemlock
#

you could just link P:/z to P: though couldn't you

wide cedar
#

honestly, i would prefer just pretending no one ever invented the p-drive

#

it's horrible and needs to die

fiery hemlock
#

i don't see what difference it makes

wide cedar
#

it's just ass backwards. compare building a mod to building a c or cpp project

#

all it should take is $ make, not "start by creating a new drive letter"

fiery hemlock
#

well sure but the whole discussion was about whether or not you can use a C/C++ preprocessor to preprocess arma configs or not.. and i don't see why not

#

sure if you've got some magic pbo prefixes you might have to make some symlinks

wide cedar
#

because the fact is the prefix system was invented and now mods use it, so preprocessors for mods need to support it. so if you have cba in one folder, and ace in the other. and your preprocessor is trying to find "/z/cba/addons/main/whatever", you'll need to implement some kind of prefix support, whether that works by just putting a "P:" in front (bad) or searching supplied folders (good)

#

since the path /z/cba/addons shouldn't HAVE to exist

#

that's my reason

#

i can't speak for others of course

fiery hemlock
#

/Ix/cba/.. #include <cba/somefile> that's what you get for using them pboprefixes i guess now all your clients hardcoded the path and you're fucked forever

wide cedar
#

but i didn't come up with pboprefixes, BI did. it's even hardcoded in the PBO file format

#

and ideally mods that can be built with official tools should also be buildable with mine

fiery hemlock
#

GCC is open source... grab libcpp and build a little pboprefix thing around it ;D

dawn palm
#

you keep saying pbo prefix when what you really mean is \hard vs relative\ #includes

#

the choices are to use '\current\drive' for includes (P:\ does not come into this) or use a series of include file paths to search in. The latter being somewhat impractical for the purpose.

#

there's nothig mysterious about a linux file system using \hard\addressing based on the \ root folder tree and gcc compiles would understand that quite readily.

#

in the microSoft world that translates to (current drive)\

#

if ace / cba choose to trick the folder system by taking advantage of the bi engine's pbo prefix, that's up to them.

fiery hemlock
#

Cool. Now add a switch to your tools to use gcc cpp and i'll buy it in a heartbeat

dawn palm
#

i would never accept your payment.

#

use steam tools, they are better suited to you.

fiery hemlock
#

Hows that?

pearl beacon
#

Untelo, you seem to know everything, why don't you just make a pbo packer with gcc cpp then?

dawn palm
#

you don't want 'klunky' software like mine, so use the official ones.

#

you don't want exev eval? write your own

#

you don't want sqf processi and lint checking, write your own or use steam tools. but above all, just go away.

fiery hemlock
#

Damn aren't we hostile...

#

@pearl beacon there's no need to write a packer. One could easily enough preprocess files before feeding them to an existing one

dawn palm
#

koffien explained it quite well, and he does a damn good job in his code catering for ace's use of symlinks

#

before feeding them to an existing one

so go ahead and do so.

smoky halo
#

sry for interupting ^^

hallow rapids
#

#403

dawn palm
#

haaaaaaaaaaaaaaaaa

fiery hemlock
#

As for exec/eval i've never really used those so i don't know how useful or not useful they are, but personally i have far more experience with C/C++ macros which is why i would like to be able to use those. Different people, different preferences

dawn palm
#

if you bothered to read my documetation accompanying my tools, you'd understand how to use them and why.

#

but since you know so much about gcc and friends, use a precompiler of your choice and stop the nonsense.

hallow rapids
#

__EVAL seems useful if you need some data from the engine ๐Ÿ˜ƒ

dawn palm
#

dynamic data, which can only be known (obviously) at start of game time.

#

they serve no purpose at all in a config.cpp that has been binarised, but in a descroptioon.ext they are essential.

hallow rapids
#

got some example where __EXEC would be useful?

#

just out of curiosity

fiery hemlock
#

Sqf processing / lint checking i've no experience with though i think i've seen some of that obfuscated sqf, and i don't mean to offend here, but it didn't seem that useful to me

dawn palm
#

_exec(var=var+1);

_eval (class watsit##var)

#

very useful for the six million class hitglass accomanying a building

#

i've used poetic licence for above btw

hallow rapids
#

hmm I guess that makes more sense than the example on the BIKI

#
__EXEC(cat = 5 + 1; lev = 0)
...
_cat = parsingNamespace getVariable "cat"; //6
dawn palm
#

biki examples are mission.sqm centric

#

where the descripton.ext (unlike config.bin) is compiled each time every time at game time

#

thus making it invaluable to pick up items like nPlayers, nameOFserver and etc

#

these things are 'normally' fed into things like rscDisplays

#

exec and eval can't exist in a config.BIN they are processed out. which is why, when you extract bis pbo's, you'll never see one.

#

ace make clever use of exec/eval in one single config.CPP which is not binarised.

pearl beacon
#

uh we do?

#

I don't see any ๐Ÿ˜›

dawn palm
#

yep or did.

pearl beacon
#

possibly

dawn palm
#

your packer specifcally excludes using my tools for one, single, config.cpp

pearl beacon
#

that was not for that

#

that was for fonts and something else

#

because your tools didn't copy the files ๐Ÿ˜›

dawn palm
#

burp

pearl beacon
#

same thing in ACRE with custom sound files

#

ยฏ_(ใƒ„)_/ยฏ

dawn palm
#

will fix, as you would expect me to, any time i'm told about a problem.

pearl beacon
#

uh, I did tell you about it when I was setting up the toolchain for ACRE

#

you said you won't ๐Ÿ˜›

dawn palm
#

ouch ๐Ÿ˜Š

hallow rapids
#

lol ๐Ÿ˜

dawn palm
#

anyway (moving right along) exec and eval mean sqx processing. which, of course, isn't known by a standard c(++) compiler.

#

exac and eval are implict in model.cfg

angle = rad+60;

pearl beacon
#

oh just to clarify, it only happens due to binarizing, for some reason your tools do it differently

#

and we get around it by just having those things in separate pbo which doesn't get binned

dawn palm
#

moment jonpas, looking something up in my code.

pearl beacon
#

ooh yeah I remember now, if a p3d is contained in the component, then it will throw away the unknown files and never copy them

hallow rapids
#

I've seen those variables all over the configs I think

dawn palm
#

no they aren't sqx statements (which is what exec/eval is)

#

these 'variables' are;

hard wired in the engine. in which case they will always be initialised in bin\config.bin OR

looked at by sqf event handlers.

#

sqf modules, sqf anything.

#

but no, they aren't anything to do with exec eval

hallow rapids
#

alright, so similarly the safeZone things aren't related either. I guess that kinda makes sense

dawn palm
#

again correct. safezone is hardwired

#

hard wired doesn;t mean it's a constant. it means, the engine looks for that 'name'

hallow rapids
#

yeah

dawn palm
#

where they can, bis try not to use hard wired names, instead, relying on the ever expanidng sqf modules.

#

one of the best examples because it's easy to understand how it gets at a config.BIN is gaia's very brilliant jukebox sound system for playing music tracks.

hallow rapids
#

got a link? A quick search doesn't really show anything relevant

dawn palm
#

need a few minutes for jonpas

hallow rapids
#

sure ๐Ÿ˜ƒ

dawn palm
#

@pearl beacon

productversion

one of your configs is checking the version number (array element 3) to see how to 'compile' the resulting config.

#

all exec evals must produce constants. and this one is known only at game time.

pearl beacon
#

ACE or ACRE?

dawn palm
#

not sure sorry.

pearl beacon
#

I only see one in ACE and that's for Linux DLLs

#

not in effect though

dawn palm
#

it's obviously not right, but for me ace and acre mean same thing. for mikero it means 'pay attention'

#

ditto cba

pearl beacon
#

well I don't see anything checking what you are saying

dawn palm
#

I can only remember finding productversion in an exec eval and rejecting it as not PRE compilable. I then checked the pipeline packer of ace or acre, and spotted THAT config.cpp as being passed thru, unmolested.

pearl beacon
#

I am not sure what you are looking at then ๐Ÿค”

dawn palm
#

k. i'll move on to this sound file business.....

pearl beacon
#

any file

#

I looked up what the problem was

#

say you have a component with a p3d

#

and some eg. .aba files (ACRE antenna files)

#

your tools will pick that up and binarize the p3d, ignoring any files with unkown extension (such as .aba)

#

however if you remove the p3d (or move those files to another pbo), which then won't trigger the p3d binarization, it will pack it just fine

buoyant compass
#

used the tools last week and everything was fine up until now after a reboot.

#

it won't let me create or use keys at all

dawn palm
#

i have never,. ever seen that msg

#

it's pure bis DsSignFIle

#

all pboProject does is use that exe as a convenience to the user having to do it themselves (and get it wrong)

#

my very best guess is you have a corrupted bikey

buoyant compass
#

Well I thought the same, so I created one on my home desktop and put it on the other desktop I am remoting to and still the same issue. It doesn't even like to create new keys. Going to just try reinstalling a3 tools.

dawn palm
#

good move, imho

#

if it doesn't like creating keys that's pure dsCreateKey.exe. nothing less.

#

your tools will pick that up and binarize the p3d, ignoring any files with unkown extension (such as .aba)

ok!

i'm in a rock and hard place with that one due to people having all sorts of genuine crap in their folders.

#

I'll have to think on how to implement this, while maintaining keep it simple, stupid.

pearl beacon
#

I'd be ok with a param to makepbo with allowed extensions or even just disable ignoring

dawn palm
#

yep. understood jonpas. and thank you as always for your support.

#

anyone needing updates from my subscriber tools needs a new way of doing so. My current web provider has gone awol, and i have had to move to a different one. I thought it was a bill payment and was wrong. They're awol and hacked. Contact me on skype, discord or an email

sorry for the unavoidable pain. it hurts here too.

buoyant compass
#

If this helps at all with my problem, 2017-03-07 05:45:53,248 [INFO]: ===================================================================== 2017-03-07 05:45:53,250 [INFO]: == P:\DSSignFile\DSUtils.exe == 2017-03-07 05:45:53,258 [INFO]: Version: 0.5.* 2017-03-07 05:45:53,259 [INFO]: ===================================================================== 2017-03-07 05:45:53,259 [INFO]: System/Current dir: P:\DSSignFile 2017-03-07 05:45:53,260 [INFO]: System/Command line: "P:\DSSignFile\DSUtils.exe" 2017-03-07 05:45:53,261 [INFO]: System/OS Version: Microsoft Windows NT 6.2.9200.0 2017-03-07 05:45:53,262 [INFO]: System/OS 64bit: True 2017-03-07 05:45:53,263 [INFO]: System/Process 64bit: False 2017-03-07 05:45:53,268 [INFO]: System/Personal dir: C:\Users\Admin\Documents 2017-03-07 05:45:53,270 [INFO]: System/Local App Data dir: C:\Users\Admin\AppData\Local 2017-03-07 05:45:53,271 [INFO]: DSUtils Started 2017-03-07 05:45:56,709 [INFO]: Create new authory: testname; Destination dir: D:\A3PDrive\DSSignFile 2017-03-07 05:45:56,998 [ERROR]: Missing file: D:\A3PDrive\DSSignFile\testname.biprivatekey 2017-03-07 05:45:57,000 [ERROR]: Missing file: D:\A3PDrive\DSSignFile\testname.bikey 2017-03-07 05:46:00,018 [INFO]: DSUtils Exited

#

Thats what I get after trying to create a key.... idk why it is saying missing file, and I even reinstalled the whole p drive and anything that should be associated with it.

#

DSUtils was unable to create the authority.

dawn palm
#

could be a mismatch running AsAdmin versus mere mortal, and no tools of any kind should ever be on your data drive:

#

that's asking for trouble for two reasons. bis consider the tools folder to be theirs and will delete the entire contents if they feel like it. secondly, bis binarise, in a desperate search for land classes when building maps will wander all over your drive and get very upset with garbage.

#

the latter is one of the most pernicous crash to desktops you can achieve. because you have no hope in hell of discovering what binarise is upset about.

buoyant compass
#

wouldn't it do the same on the c drive then to? The d drive on this system only has an arma server and a3tools folder for the p drive.

#

only reason I have a pdrive on the server is because my internet would take ages to upload back and forth.

dawn palm
#

the p drive for an admin versus mere mortal, are different, the same. or non-existent

#

and based on above, you don't seem to have a reason to have a 'p' drive

#

an armatools folder some\where, but P seems to be redundant

#

Am fairly sure Tom, (Julien) from bis, now prevents tools being placed on p:\

#

wouldn't it do the same on the c drive then to

no. bis binarise only wanders over current drive, which is normally p:

#

in a dos console i browsed to where i have dscreatkey

i typed the magic words

dscreateKey fred

and got a fred.bikey

#

perhaps you should first check you can do that simple thing in p:\dsSignfile folder

buoyant compass
#

CPAquireContext failed

dawn palm
#

we know that. but doing what?

#

ssh to remote server or local p: ?

buoyant compass
#

my local pc workes perfectly fine, its the remote server that is having a problem and I am using RDP.

dawn palm
#

ok

#

i'm not familiar with rdp. i'll google it so we're on same page

#

ah yeh, ok, then you should be able to simply navigate to the exe and somehow type dsSignfile fred

#

or a bat to do same.

buoyant compass
#

yeah I just get "CPAquireContext failed" when doing it from cmd

#

Thanks for the help anyways, might just submit a feedback tracker report and see what comes of it and wait until I can find the actually problem/solution.

vague shard
#

p:\z was used 1) was its the last character (folder ordering) and 2) most likely unique (so you can easily type the path/select the folder with keyboard)

dawn palm
#

Thanks for the help anyways

well at least you've narrowed it down to the specific cause of the pain and suffering.

smoky halo
#

@buoyant compass after a quick google search: it seems you do not have access to all files and subfolders in C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys on your server

#

solution seems to be to delete those files

viscid verge
#

A question on object builder: I have an import for FBX, but a member of Unsung doesn't see it. Is this possibly an outdated version or some setting somewhere?

narrow bough
#

I had that, make sure he has FBX.dll in the object builder directory and its not blocked by windows

#

I put it down to a glitch in the matrix

smoky halo
#

i recall something like steam needs to be running aswell

buoyant compass
#

@dawn palm it ended up being a permission issue with the account; for some reason the other person on the box messed with some stuff after a reboot.

narrow bough
#

@viscid verge also get them to make sure the DLL Folder path is defined within OB's options - \SteamLibrary\steamapps\common\Arma 3 Tools\ObjectBuilder

viscid verge
#

ok, thx, fwd

#

@narrow bough that seems to fixed it, though the fbx model seems to be corrupted. neverending story it suddenly becomes. Thanks for your help!

narrow bough
#

hehe np

buoyant compass
#

@smoky halo Thanks, I was incorrect about the permission issue, seems to be the CryptAcquireContext created an keystore during the crash, the store somehow got corrupted, now the application tries to open the broken store and the app failes, because it doesn't catch the errors correctly.

smoky halo
#

Fixed: The shortcuts of FSM Editor were not usable on some computers

#

That bug has been driving me nuts, had to keep an old version of FSM editor. Thanks

glossy inlet
meager falcon
#

really, like can I use the Del button finnally ? xD

vague shard
#

@glossy inlet looking good! made in relation to what?

glossy inlet
#

Made from my script debugger

vague shard
#

cool ๐Ÿ˜ƒ you mentioned that project a while ago. do you want to feed it into a 3rd party tool?

#

(the callstack)

glossy inlet
#

X39's new Script tool thingy will integrate it. In the end it should look similear to the Visual Studio debugger.

nocturne basin
#

linting is now working โค

hallow rapids
#

nice ๐Ÿ˜ƒ

#

I guess it's a C# project?

#

and will it end up as an open source project and/or will the linter be shipped as a separate binary?

nocturne basin
#

linter is just inside its own DLL

#

using it still requires accessing it

#

maybe will put it in separate tool later

hallow rapids
#

cool ๐Ÿ˜ƒ

nocturne basin
#

next things on the list for that tool: properties dialog ๐Ÿ™ˆ

hallow rapids
#

was really thinking about doing my own linter but if this plays well with mono then I probably won't ๐Ÿ˜ƒ

nocturne basin
#

mono was up to 4.5 right now?

hallow rapids
#

no clue, probably

nocturne basin
#

should work then

hallow rapids
#

4.6 apparently

#

there's also the java linter but meh.. java

nocturne basin
#

the current linter still needs to be type processing though ... but that can come later on the road
basic syntax linting is enough for now (ohh ... and it still needs to implement a preprocessor ... but that is some other topic ๐Ÿ™ˆ )

fallen stone
#

Aslong as it beats the TypeSQF linter atm..

#

I wrote one line in an SQF file and it complained I had no semi colon ๐Ÿ˜ฆ

dim phoenix
#

semi colons are overrated. You can replace them all* with commas and it still works the same.

jade zinc
#

Looks way cleaner is you use semi colons for specific delimiters tho, and commas another

native kiln
#

@dim phoenix I like @ more

dim phoenix
#

Are we still talking SQF?

nocturne basin
#
[] call foo @``` yep commy
native kiln
#

Yes

#

myvar = 5@

wide cedar
#

โ˜ญ

elfin oxide
#

^

dawn palm
#

@ is a reserved symbol in 02script. it means the nth value of an array similar to the select keyword

ar@3 // the 4th element

02script is sqf on steroids because it has it's own file io and display controls

hallow rapids
#

they really make an effort to avoid industry "standards" ๐Ÿ˜›

#

why not just use python or whatever

nocturne basin
#

python ... please no

#

industry standard would be lua btw.

karmic niche
#

You typed "please do" wrong ๐Ÿ˜‰

pearl beacon
#

what do you have against python

glossy inlet
#

It's dangerous ๐Ÿ

pliant lynx
#

especially reticulated pythons.

meager falcon
#

why should lua be industry standard?

#

Thought it was C/C++ for any larger scaled projects (like games) (as well as C#)
Java for platform independency

HTML/PHP combined with MySQL for webprogramming

#

has anything moved past me?

glossy inlet
#

They were talking about scripting languages not General Programming languages

meager falcon
#

ahh ok my bad

ornate wasp
rotund rampart
#

๐Ÿ˜˜

nocturne basin
#

https://www.youtube.com/watch?v=R4Q79bpeA10 and slowly integrating the debugger (credit to dedmen) further and further
if anybody is interested in testing, feel free to ask how to build the sources yourself ๐Ÿ™ˆ or ask me for some in-dev release

dawn palm
#

can i have the music track with the code please?

nocturne basin
dawn palm
#

๐Ÿ˜

woeful cliff
#

@nocturne basin Copy cat

nocturne basin
#

it is callen competition @woeful cliff
not to mention that i started a week after my last contact try (roughly a month ago) on this properly as IDE for ArmA

woeful cliff
#

@nocturne basin You couldn't at least made the name original?

nocturne basin
#

why should i?
my ui editor was named ArmA-UI-Editor
the studio is named ArmA.Studio

#

could also call it ArmA.IDE ... but that is a horrible namespace name in c#

elfin oxide
#

let the better arma studio maker win ... honestly i would like to use something like that. I was disappoinent (no offend) @woeful cliff that there was no news coming though about your stuff. i looked into the videos on your channel often, as i was hoping to see a new version ๐Ÿ˜ฆ

#

Soooo @nocturne basin if you do something please stick to it to the end

woeful cliff
#

Well, at least it removes the pressure from my shoulder, not having to focus on a public release anymore

nocturne basin
#

not to note that ...

woeful cliff
#

What? Rephrase

nocturne basin
#

@elfin oxide you already can get a WIP build but it is currently still lacking some important features
alpha release will be as soon as the base features are inside
a week or two maybe

#

youre IDE was in fact: dead
nobody heared anything from you

woeful cliff
#

Is Valve talking about Half Life 3?

elfin oxide
#

Allrighty @nocturne basin will have a look until a apha release

#

i guess battleye disabled right ๐Ÿ˜‰ ?

nocturne basin
#

better you do ๐Ÿ™ˆ

#

still will contact him if it somehow is possible to tell battleeye to just kick instead of ban when somebody forgot to disable

woeful cliff
#

Someone once said "When you tell people your goals you donโ€™t achieve them"

elfin oxide
#

if you play around with memory directly from arma BE will ban you for mem hacking for sure

#

if you have got a dll that handles the exchanges and memory stuff maybe he can whitelist that or at least be will prevent it from beeing executed, as it is not whitelisted

#

im not too far into that, because Bastian refuses to whitelist any of my extensions, even though he know they do not contain anything harmful. So i dont know what is possible

woeful cliff
#

If you're debugging the game, you shouldn't be in a public server anyway. And if you need to debug a private multiplayer session, disable BattlEye. Whitelisting it is not really important

karmic niche
#

Would it be possible to somehow detect BE being run (process name?) and refuse to attach to arma in that case?

#

As a safety check

elfin oxide
#

the studio can detect arma3battleye.exe for sure in the process list

#

that would be a nice solution to prevent idiots from loosing their arma accounts

nocturne basin
#

lazy idiots like me ๐Ÿ™ˆ

elfin oxide
#

and me

#

i will disable BE completly anyway on my dev VM then

woeful cliff
#

Well, if they were smart enough to install an IDE for scripting, you'd think they'd be smart enough to not get banned

karmic niche
#

People make mistakes. Always. No exceptions.

elfin oxide
#

I would not agree with that. I often do alot of dumb things when i did not get too much sleep or think scripting while beeing drunk makes creative

karmic niche
#

@elfin oxide could you give some details about those extensions that bastian refises to whitelist?

#

I'm asking because I'm mainly interested in knowing how do they relate to Intercept

elfin oxide
#

A3Log

#

various ones for my server, including macas radio dll etc

#

all not harming, included with their source

woeful cliff
#

Time to format C:

elfin oxide
#

however something like killzonekids make_file dll is whitelisted

#

even worse some dlls that allowed injections are allowed right now

karmic niche
#

Soooo... it's more of a lottery, actually?

elfin oxide
#

Yes

#

ACE guys get their stuff whitelisted in minutes

#

if Basitan likes people he will take the time to have a look or even not that and whitelist it

#

if he does not know him / her and or does not want to read more than 10 describing words about it, forget about a whitelisting

karmic niche
#

Time to recruit myself to BattlEye then ๐Ÿ˜„

woeful cliff
#

At least BattlEye isn't as bad as EasyAntiCheat

#

EAC will ban for the ability to cheat, not just cheating itself

elfin oxide
#

Oh it is not? well ok its capable of copying and stealing company data from drives it was not alllowed to go into yes ...

#

and the world of bypassing it is so large, it got at least two dedicated forums build around it

#

BE was fine for a long time, and is better then nothing and better than some other anticheats, but by far not one of the good ones

woeful cliff
#

@elfin oxide At least it won't ban you for just having tools that can be used for cheating

#

unlike EAC

elfin oxide
#

sorry but that is not correct. BE bans you if you have got cheatengine process open, or a process that is called cheatengine. yes BE searches the process table string based for keywords

woeful cliff
#

No. I've confirmed that with them. They don't ban for running tools

elfin oxide
#

also there have been alot false posivtes around installed but not used programms as well

karmic niche
#

In all honesty, why would you have a process named CheatEngine running while you're connected to a BE-protected server?

woeful cliff
#

@karmic niche I use CE a lot for debugging. With several monitors I can't gurantee that I remember to close it every single time, which means it may still be running in the background

#

I specifically asked the support team whether they ban for having Cheat Engine running in the background, but not attached to the game.

No, we don't issue bans for that. 
Your BattlEye Support Team```
karmic niche
#

MulleDK19: Well, if they were smart enough to install an IDE for scripting, you'd think they'd be smart enough to not get banned
๐Ÿ˜„

elfin oxide
#

i get your points, but still I can say BE could be much better at what it is doing right now. Also i think this is not the place to discuss further ...

#

Your BattlEye Support Team -> best one man team ever

karmic niche
#

It's ok, I understand. I was just teasing you with your quote ๐Ÿ˜‰

woeful cliff
#

EAC won't even respond to support requests of any nature

karmic niche
#

Ah, that good old Ida 6.8 ๐Ÿ˜‰

woeful cliff
#

IDA 6.9*

karmic niche
#

Chapeau bas!

woeful cliff
#

Best buy ever

#

So glad I'm a billionaire

#

actually, get on their asses

karmic niche
#

Meh, they said they were starting a closed beta on January IIRC. And... nothing

woeful cliff
#

not closed

#

private

karmic niche
#

But they "unveiled" the software at RECON 2016. At that pace, I'm not even sure they will release anything by the time RECON 2017 starts ๐Ÿ˜•

woeful cliff
#

Wouldn't it just be awesome when it does come out, and it's revealed it's not free?

woeful cliff
#

Not everyone likes my choice of coding font http://i.imgur.com/RYawOdH.png
But having used Consolas for years, I've found it a nice change. It's a lot less depressing to code in

glossy inlet
#

I will disable the whole Debugger backend when BE is loaded. But. BE might still let the Debugger dll Load... Have to test that. And if BE later sees that a dll considered a hack is loaded. It will ban. Even if that dll is not doing anything.

hallow rapids
#

@woeful cliff that font isn't too bad to be honest ๐Ÿ˜›

#

couldn't hurt if it would be monospaced though ^^

glossy inlet
hallow rapids
#

very nice ๐Ÿ˜

nocturne basin
#

still very WIP @hallow rapids
but not much is needed before some alpha release

hallow rapids
#

unfortunately I have plenty of time since I'm on Linux ๐Ÿ˜›

karmic niche
#

Nice work, guys!

woeful cliff
hallow rapids
#

whoever made that dialog, you're trying to show too much information at the same time

#

IMO, just a little feedback ^^

smoky halo
#

If anyone manages to get linux extension to work on latest arma3server linux.
Please give me a shout. Updated an extension with both exports, no luck

elfin oxide
#
    {
        void  RVExtension(char *output, int outputSize, const char *function);
        int  RVExtensionArgs(char *output, int outputSize, const char *function, const char **args, int argCnt);
    };

    void RVExtension(char *output, int outputSize, const char *function) {
        strncpy(output, "Please use the Array Input Variant", outputSize--);
    }

    int RVExtensionArgs(char *output, int outputSize, const char *function, const char **args, int argCnt) {
        return 1337;
    }```
#

in case someone needs it

smoky halo
#

Workaround for linux extensions in server_linux

dawn palm
#

arma3p has been updated to account for released tanoa content. Credit: Scott UK
both free and subscriber have the latest version.

buoyant compass
#

Thanks Scott โค

dawn palm
#

It needed someone who cared to call this mod something original like 'tanoa'. Instead you folks can wonder what an 'expansion' mod is. They've probably broken the Keys and Mission folders that should also be in there, or forgotten how to use them.

#

for map makers you still need tanoa_map_objects.pbo

orchid shadow
#

Can you like stop updating the obsfucation, its just starting to get annoying now.

#

Its so fucking dumb anyway.

dawn palm
#

the dep3d component of the dll has been updated to work considerably faster in checking for errors. Especially for map making. dep3d +Fx will now fix points flag errors in binarised p3ds.

orchid shadow
#

Truely amazing.

#

How much cash did they shove in your mouth before you wrote the obsfucation?

smoky halo
#

@dawn palm what kind of point flag errors?

dawn palm
#

the old arma1 'obsolete flags' Tim.

#

from the ushort points table.

#

Kju;s put a lot of work into re-creating ifa for arma3, and those 'flags' were causing issues when trying to upgrade.

smoky halo
#

i c

pearl beacon
#

@dawn palm "failed to create P:\expansions.txt"

dawn palm
#

urrrrrrrgh

pearl beacon
#

happened at the very end, I assume before extracting Tanoa stuff

dawn palm
#

murphy bit me

wind elm
#

noob =}

dawn palm
#

yep

#

fat fingers too

wind elm
#

my bad.

dawn palm
#

fixed at version 1.38

#

available in dev heaven free tools OR
standard mikeroupdater

#

i can't get thru to the Maverick server at moment.

wind elm
#

Avira is crying to me about Virus again (arma3p.138 blablabla)

dawn palm
#

as if.

#

it's plain text for god's sake.

wind elm
#

Avira ยฏ_(ใƒ„)_/ยฏ

#

I always have to disable that stuff, when updating the tools ๐Ÿ˜„

dawn palm
#

ahhhh, when u install. that's different

wind elm
#

Nah, Update

#

Ah, yeah. When installung Update

dawn palm
#

some virus checkers are a little too enthusiastic. i have same on Kapersky

split stratus
#

@dawn palm I thought i found a bug, then i was like, let me check if mikero updated, you did, so i downloaded it, and the bug went away ๐Ÿ˜„ โค

wind elm
#

(i wonder, is anyone still using Norton AV crap?)

pearl beacon
#

thanks @dawn palm

dawn palm
#

well, embarrisnhgly, the thanks are from me for finding an 'undocmented feature'

#

i also stopped extracting 97 squillion gigabytes of useless dubbing.pbo's

wind elm
#

thx, i was just about to mention that, if this is rly needed.

#

same for the Video pbo

#

(where the f is that damn thing)

#

"missions_f_epa_video" in A3\addons

dawn palm
#

illl add it some other time. the majors (dubbing* and missions*) are out of the way.

wind elm
#

Or at least optional?

dawn palm
#

agreed. you get to choose at start of a3p

wind elm
#

like a Q in the end:
"You wanna waste some more additional Space with dubbing and Missions? Y / N"

dawn palm
#

the Q has already been asked at top of file.

wind elm
#

rly? Okay, i must have ignored that.

hallow rapids
#

enter enter enter GO!

vague shard
#

@dawn palm what about skipping layers from Altis and Tanoa at least?

narrow bough
#

+stratis

dawn palm
#

what about skipping

nope, suddenly there's no end to it with a shopping list a mile long of 'unnecessary' pbos. What's already done is more than reasonable to improve the speed to something acceptable.

#

yours is a good idea kju, but there's no end to it.

narrow bough
#

very true, if people dont want/need extra stuff on their hdd I guess they can just remove them manually

vague shard
#

well these add ten of thousands of useless files

#

why skip dubbing and not layers - makes no sense

dawn palm
#

so edit the bat file to do so.

hallow rapids
#

I think goo.gl and/or bit.ly don't preview and don't spoil it with the url ๐Ÿ˜›

#

not sure if they are frowned upon though

fallen stone
#

@wind elm <insert link in between these for no preview>

wind elm
#

Thx @fallen stone

#

@hallow rapids Nah, i personaly just don't like the previews, they toooo big.

hallow rapids
#

just in case, meant url shorteners not memes ^^

smoky halo
#

@icy urchin Sorry but already have a bf :P

fallen stone
#

eh

hallow rapids
#

intriguing ๐Ÿค”

woeful cliff
vague shard
#

๐Ÿ‘

hallow rapids
#

pretty cool ๐Ÿ‘

elfin oxide
#

Well if it gets ever released yes ...

meager falcon
#

before sqf gets dropped

orchid shadow
#

@woeful cliff looking good man

hallow rapids
#

@smoky halo it seems that the publisher doesn't detect the bitness of .NET dlls correctly

#

we have the _x64 suffix but the workshop is still reporting it as 64-bit incompatible

smoky halo
#

@hallow rapids could you please send me the file?

hallow rapids
smoky halo
#

@hallow rapids I'll release an updated Publisher in a minute, the portion of code that sets the flags in entirely missing

pearl beacon
#

It was in one of the dev branch publisher releases btw

hallow rapids
#

niceeee ๐Ÿ˜›

#

thanks ๐Ÿ˜ƒ

hallow rapids
#

sweet, I'll pass it on to our steam dude ๐Ÿ˜

nocturne basin
#

also some cosmetic changes are yet to be implemented ๐Ÿ™ˆ

#

((variables view currently looks & feels horrible))

wind elm
#

just like you โค

#

(tbh, they look okay)

#

Maybe another Color, instead of black (i am used to blue)

pliant lynx
#

@wide cedar I tried armake the other day to convert png to paa, used this cmd line: ```
armake_w64 img2paa -t DXT1 filename.png filename.paa

when I load the DXT1 converted paa file with texview2 it is very dark, looks nothing like original png. is that texview2 issue or am I missing something?
wide cedar
#

That seems to be an issue with the stb_dxt encoder. I was thinking about maybe just applying a little colour correction, since i don't want to write another dxt encoder myself

pliant lynx
#

ah darn, ok thanks for the info.

woeful cliff
vague shard
#

neat

woeful cliff
#

Alright, I knew I hadn't committed for a while, but dayum, 322 changes to commit

vague shard
#

you like to walk on the edge eh?

native kiln
#

Living a dangerous life

woeful cliff
#

As much as I love the new C# 7 features, I fucking hate they didn't add Edit & Continue support for them

#

And it's not just the statements that contain the features you can't edit, no it's the entire method they're used in

pearl beacon
#

XAML Edit and Continue is handy though

woeful cliff
#

@pearl beacon Oh, yea

pearl beacon
#

but that's a VS17 feature ๐Ÿ˜›

woeful cliff
#

Although, it's kinda half finished

#

Like sometimes you have to remove an element then readd it, before it'll accept the change

pearl beacon
#

haven't used it much

#

heh

#

I have to make a basic text editor for a uni project, that's the only reason I know anything about it

woeful cliff
hallow rapids
#

nice, congrats ๐Ÿ˜ƒ

vague shard
#

@woeful cliff would you mind adding a little context please (meaningful title or short description). ty

woeful cliff
#

@vague shard uh?

vague shard
#

to your demo videos

dawn palm
#

well it appears that bis have moved goalposts again:

  1. it looks like 3rd party ebos can no longer be signed.
  2. it looks like bis either forgot, or deliberately broke, 'no prefix' pbos

can anyone else confirm either of these?

pliant lynx
#

what is 3rd party ebo? (I know what ebo is but are you referring to pboroject obsfuscation as 'ebo'?)

dawn palm
#

nope. people use 3rd party encyrption tools to create genuine ebos

pliant lynx
#

cunter ๐Ÿ˜ƒ

dawn palm
#

I deliberately crippled pboProject's ability to do same (greyed out) because i didn't trust bis enough.

pliant lynx
#

wait what, you removed obfuscation?

dawn palm
#

read carefully. if you weren't aware of the greyed out check box, you're missing nothing.

pliant lynx
#

crippled, greyed out... ok, read carefully. still coming to same conclusion "you removed obfuscation". but I guess I'm wrong then heh.

dawn palm
#

i guess you are.

pliant lynx
#

yep no problem, I dont do stolen content Life mods so I have nothing to obfuscate ๐Ÿ˜ƒ

dawn palm
#

well if you're able to confurm either of above, that would be helpful.

orchid shadow
#

Nice if they fucked ebos.

native kiln
#

@pliant lynx mikero disabled the ability to create encrypted pbos with pboProject

#

Obfuscated pbos can still be created

pliant lynx
#

huh?

native kiln
#

"wait what, you removed obfuscation?"

#

He didn't

pliant lynx
#

ok(?)

native kiln
#

You asked that

pliant lynx
#

whats the difference between encryption and obfuscation then?

native kiln
#

It's something completely different

pliant lynx
#

I only seen myself and have heard people talk about obfuscation, never even heard of Mikero Tools Encryption before now.

native kiln
#

You do know what encryption is though, right?

#

RSA, AES, stuff like that

pliant lynx
#

no, can you please explain it to me? SIGH of course I know <insert rolling eyes smiley here>

native kiln
#

Your text sounded pretty serious

#

And given the average knowledge here I didn't doubt it

pliant lynx
#

ok one sec I'll rephrase...

#

better?

native kiln
#

Yes

#

It really sounded like you didn't know what encryption was lol

#

Basically ebos are pbos but encrypted with a key

#

That is hardcoded into the game

#

Some months ago someone dumped the key from the engine and thus was able to create ebos

pliant lynx
#

my confusion comes from mikero tools obfuscation vs mikero tools encryption.

#

yes youtube whisky drinker UnCunter guy

native kiln
#

Why the confusion?

pliant lynx
#

well ok correction again, UnCunter was to unpack ebo's but I heard he (or someone?) released the cunter to create ebo's.

#

why? like I said before your words I never even heard of mikero tools encryption, only obfuscation tick box in the pboproject GUI.

native kiln
#

It's been a thing for some time now ^^

#

Bohemia is weird though, they don't give the tools to their community to create encrypted content

#

Yet they make it themselves

#

*seld

#

God damn it

#

Smartphone keyboard

pliant lynx
#

so if encryption == ebo, then obfuscation == ?

native kiln
#

Encryption ebo

#

Obfuscation pbo

#

Nothing pbo

dawn palm
#

just download the latest set of subscriber tools snake.

pliant lynx
#

oh ok so is obfuscation really the OFP era garbling the pbo header so normal pbo tools cant open it?

dawn palm
#

except for reasons best known to Bis, the can partially extract them.

#

as they can protect themselves,, we're not supposed to.