Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

Community Reputation

7 Neutral

About bi_mg

  • Rank
    Private First Class

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hello to all, I hope I am right here. First of all, I use Oracle VirtualBox 6.1. on Linux Mint 22.20 for the Game My Setting for VM: Base Memory: 4096MB (of 8196MB) Processors (2.40GHz): 4 (of 4) Video Memory: 256MB (of 256MB) Graphics Controller: VBoxSVGA Acceleration: enable 3D Acceleration My OS Windows 10 Pro x64 everything is fine after the installation of Arma 3 until I run the game. After mod initialization, the game switches into a black screen, normal. But after that, an error occurs that says DirectX10 is not supported by your adapter I had run the game before succesfuly with ~3fps ingame ๐Ÿคฎ. I had only the default settings of the VM that is lower than my actual VM settings above. Don't get me wrong: My aim is not to play game, but to script the game in runtime as my hobby. So it is very ok when I scale down the graphics to the minimum. I don't need the highest performance. I've installed the newest DirectX 11. Than restart the VM an run the game again but every time occurs this error. I have Direct11 installed not 10! I am very confuse ๐Ÿ˜–! I need help to solve this problem Thanks MB
  2. Hello Arma friends, I just upload my files on github wgich is called a3-lib-checks. It is not what was expected but a piece of it this thread. I present it on this thread: You all are welcome to use my libraries and test it ๐Ÿ™‚๐Ÿ‘. Best regards, MB
  3. Hello mission builders, scripters and developers, I like to introduce my project that is called a3-lib-checks on GitHub. I realy hope it useful for some of you. It is a kind of a BETA VERSION! Your tests in mission runtime envionment are very welcome ๐Ÿ™‚. Link to Repository: https://github.com/DevMBeyer/a3-lib-checks Link to Unit tests: https://devmbeyer.github.io/a3-lib-checks/reports/index.html (supplement) TABLE OF CONTENT What these Libraries do The Usage of my libraries My Intension to write these libraries Why I used macro functions My research My conclusion Loops Conditions Lazy Evaluations Declarations Scopes Brackets Copy not everything How do I develop Unit Tests My Problems Test Cases Common Naming's Upload my Repository Website Entrypoint Bugs Feedback Apologizes CONTENT What these Libraries do This project contains several libraries with macro functions in it to enhanced data validation in Arma 3 scripts. The Macros are very system performance developed and should be easy to use. The functions in libraries are thematically and technically ordered. The aim of this project is to make data validation easier for other scripters and myself. Some Macros are a little confusing for you on how to work with them e.g. MB_IS_NIL( ARG ) which is nothing but isNil {ARG }. Nothing really useful but it has to be in the list of structure of macro functions for formality in my opinion. The Usage of libraries They are extremely useful for debugging a script or for conditions in mission runtime in my opinion. It should pull down the system performance in very little, so it is a good thing I guess. It depends on macro of course. My Intension to write these libraries While I was working on my SQF Scripts, I was often stuck with a bunch of errors. So I decided to developed a validation functions, which cost less system performance. As I said, it depends on the function of course. Why I used macro functions Macros must be imported from scripts, they canโ€™t be present itself as script functions. But complex Macro functions are little faster as they are imported as code and not as a reference to the extern code. Later before the release, I will extract the string characters which are not functional like spaces between expressions. Therefor it runs little little little bit faster I hope. My research I tested with diag_performCode every single command or code construct I will work with, which is the fastest. My conclusion It is only my very personal conclusion below on the results of diag_performCode Loops I do not use for-, while- forEach-Loop. forEach loops brings more variables with them like _forEachIndex for example and decrease the system performance. In nearly all cases I don't need to use these variables, so findIf is the goal I found out. It only brings _x with it. It is really faster but it is really confusing because of the complexity. E.g. /* CODE */ \ private _copy = +ARR; \ ( ( _copy findIf { \ private _elem = ARR deleteAt 0; \ !( \ ( TYPES findIf { \ /* CONDITION */ \ } ) isEqualTo -1 \ ) \ } \ } ) isEqualTo -1 ) \ /* CODE */ \ Conditions The if-then-else should be slower than if-exitWith-expression. But both condition constructions do the same thing. // slower if ( CONDITION ) then { STATEMENT_1 } else { STATEMENT_2 }; // faster if ( CONDITION ) exitWith { STATEMENT_1 }; STATEMENT_2 Lazy Evaluations https://community.bistudio.com/wiki/Code_Optimisation#Lazy_evaluation The complex nested conditions are much faster than any other condition constructions like ifs, switch-cases. It depends on how to use them of course. false and true and true and true // slower false and { true and { true and { true } } } // faster Declarations I used as less declarations as possible and found out which the best performance is on declaration is โ€“ I guess. [] params [ [ "_foo", 0 ],[ "_bar", 0 ] ] // is little slower private _foo = 0; private _bar = 0; // is faster scopes The declaration private [ "_fnc" ]; _fnc = {}; is slowest as private _fnc = {} but if you declare this recursive function 10000 times, it is really useful and faster when you combine needed function scope to check n nested array as an argument. If the condition is matched in this function with the call 1000 times, the function just breaks out with the return and will not needto level up 1000 times to the first function call. But I am not sure of the results: private [ "_fnc" ]; scopeName "recursive"; _fnc = { /* CODE */ if( (CONDITION) call _fnc ) exitWith { true }; false breakout "recursive" }; ARG call _fnc; this function does not do anything but I hard coded to show what I means. Brackets I used brackets anywhere to enclose an expression like (_a+_b). The interpreter should like brackets, because he mustnโ€™t search were the expression ends and prioritize which expression gets first. Again, it is my conclusion on the test results. ARR select 0 select 1 isEqualTo 0 // slower ( ( ( ARR select 0 ) select 1 ) isEqualTo 0 ) // faster Copy not everything I referenced not all Macro functions because they are sometimes dumplicates on commands in both functions so I must develop by foot e.g. MB_COMPARE_ARRAY_SIZE( ARR, 1 ) or { MB_COMPARE_ARRAY_SIZE( ARR, 2 ) } It is compact and more readable but both functions checks nil and array first, and thatโ€™s exaggerated. So Iโ€™ decided to solve this way on foot. !isNil{ARR} \ and { \ ( ARR isEqualType [] ) \ and { private _cnt = count ARR; \ (_cnt isEqualTo 1) \ or { _cnt isEqualTo 2 } \ } \ } \ I want only show what I mean. How do I develop I used my tag `MB` nearly everywhere in the code, therefore shouldn't be any name conflicts in the namespaces. I adopted BI Code Comments style in general with individualities I used K&R Code style My code should be well documented so far (if you leave out my grammar). Therefore the script comments should be understandable. Unit Tests I've written test cases and tested them with simple Unit Tests for every single macro function. Every Test Results from unit tests is generated as a report. You can see the reports of test results which were generated in html code. Unit test case arguments were changed, deleted, or expanded throughout the test by me. The reason: I have to correct individual test cases to show the differences in the individual test results. My Problems Test Cases I have optimized test cases and test arguments, while I tested each macro function to each test case. Meanwhile between past and now there are partly different and extended test arguments in unit test cases. It can be seen in the different unit test files and reports. I didn't write the test arguments to test the test arguments but to test the macro functions. So it is ok I think ๐Ÿ‘. Common Naming's Partly it is very hard to choose the right name of each definition to show what the definition stands for regardless if function variables or constants. Upload my Repositorry I used Git of course for my project a3-lib-checks. when I started to upload there was an error occurred. Something with ssh I need to use and not TSL as the standard. So I Website Entrypoint I set the entrypoint of GitHub webpage. Nothing happes. I'm on to get thing done! Bugs As I said, the project is a BETA VERSION so there could bugs occurs, regardless of units tests! Iโ€™m just one person in the Project! Please email me or contact me in this thread or write a PN to me in this platform if there is any bug displayed with my macros if you include correctly of course ๐Ÿ˜‰. Feedback Feedback is very welcome ๐Ÿ™‚. It is useful for me to get feedback on my macros and my project. You can Criticism me, regardless if positive or negative. Every feedback is useful if the feedback is objective. Apologizes English is not my mother tongue. I hope, it can be understandable if someone reads my scrip comments I am just a Developer with amateur experience on Arma coding. I'm a greenhorn in https://github.com/. It is completely new to me. So I hope everything is clear by now ๐Ÿ˜ฌ๐Ÿ™„ . Enjoy Coding ๐Ÿ˜Š Best regards MB
  4. Ihe definet scalar IDD_DISPLAY3DEN is unknown without including "\a3\3DEN\UI\resincl.inc" in UIs from 3DEN Addon I guess, but I do not know. I'm, not familiar with RSCs, yet. Sry.
  5. solved!!! I copied in 3den Editor this code snippet and changed a bit. #include "\a3\3DEN\UI\resincl.inc" // Code ... if ( !is3den ) then { "The function can run only in Eden Editor workspace!" breakOut "#all"; }; uiNameSpace setVariable [ "Display3DENCopy_data", [ "Test Functions", str __results ] ]; ( finddisplay IDD_DISPLAY3DEN ) createdisplay "Display3DENCopy"; // Code ... It worked in 3DEN Editor only. Thank ou anyway ๐Ÿ™‚๐Ÿ‘ mb
  6. Sry, Thread doublicate ๐Ÿ˜ฌ. My mistake!
  7. Hello Arma Developers, Coders and Fans, I finished a script to test each arguments and expected result for functions and its diagnostic results in very easy way. e.g: // ---- PROCESS ---- [ [ "Test Datatypes", [ // ---- TEST NIL [ "MB_IS_NIL( VAR )", [ [ "should be nil", { true }, { nil } ], [ "should not be nil", { false }, { _typeBoolNull } ], [ "should not be nil", { false }, { _typeBoolContent } ] ], { MB_IS_NIL( _this ) } ], // ---- TEST BOOL [ "MB_IS_BOOL( VAR )", [ [ "should be boolean", { true }, { _typeBoolNull } ], [ "should not be boolean", { false }, { _typeSclNull } ], [ "should not be boolean", { false }, { _typeSclContent } ] ], { MB_IS_BOOL( _this ) } ] ] ], 10000 0 ] call MB_fnc_testFunctions; All worked fine. Now I need a simple way to display in RSC format the output array is like this [ _header, [ _desc, _args, _expect, _return, _result, _diag ] ] "Display3DENCopy" I like to use, but I realy do not know how to use the BIS defined RSC and could I use it anyway??? I look forward for asweres :
  8. thank you very much!!! That will help ๐Ÿ‘. See you then in my first presentation of my first Arma 3 DEV FW - in Dec/Jan I hope ๐Ÿ˜ฌ.
  9. Hi Larrow, thank you very much. I will test it and reference it to your FW, if I use it or parts of your code. can you list up builtin simple BIS script functions as I asked please? I'm very sure you are professional in this case, simply because wrote your actionMenu FW, no doubt ๐Ÿ˜‰. My intention is that my framework should contain as few external scripts as possible and rely on builtin script functions. So you can simple use It on Arma 3 Core. That is why I asked. good night
  10. Hello Arma 3 developers, scripters and gamers, What I'm doing: I'm develope a framework to validate datatype subjects like pairs, indices, unit vectors, unit intervals, rgb colors, paths and so on. It will display in a simple message at gameplay in different code colors, if an validation message ocurre. I developed a dynamic tiny template engine for this FW. The version of Arma 3 must be at least 1.82+. Right now I develope test cases. What I need: I need - as the topic sais - a navigable interactive action menue in form of a GUI Menue. My Question: Are there BuitIn BIS Scripts do to that? thanks, mg PS: In the future, I will finish the development of a FW that can import and export compositions with random items, 3D positions, appearance and other attributes. But first this FW to develope that FW that.
  11. Postscript: The Tokens (like {{#VAR:%x}}) I created must be displayed in formated text. // Subject(s) UNIT VECTOR(s) in the UNIT CIRCLE to validate in an associative array // UNIT VECTOR = [ 0, 1, 0 ] means azimut 0ยฐ (degree) as the object direction [ 'UNIT_VECTOR', [ localize STR_MB_sub, // "{{#VAR:%1}} with the value {{#VALUE:%2}}" localize STR_MB_prd_be, // "must be" localize STR_MB_obj_type// "of the type {{#TYPE:%3}}" ] ]
  12. Hello Arma 3 Scripters, What I've done I wrote a simple advanced validation script framework to validate Datatypes, Objects, Data behaviours and soon in develompent for Mission Builders. The Framework is used by another project I developed and its not finished becouse of this descripted framework where-upload-custom-scripts-for-general-use What I want I search for necessary BIS scripts to help me to present my work ... ...to Mission Builders ...in interactive dialogs (kind of UnitTests) ...in Gameplay ...with the help of BIS Scripts Personally I look around in EDEN Editor and in this BIS Wiki for necessary BIS Functions which i'm searcht for. I found GUI Functions, Debugging Functions, but it would took me weeks - nearly months - to use them in the right way and I woun't start another script Framework to solve this described problem. I aim to a fast way. Doese anyone have experienc of the problem I stuck in or solved it in a comfortable way with BIS Functions? thanks! lgmb
  13. I'm very sorry! I found out by now, that the script command vectorModelToWorld with the parameter PositionRelative "seems" to do what I exacly needed. I don't need the rottion matrix anymore, because it is all in the described script command. I'm realy sorry for bother. mg
  14. Hi killzone_kid, yes I did, long ago. The combination do what I expect. But it is a combination of two script commands. Because of the script that does it, there will be a loss of performance, for sure. I've not benchmark the combination in script, sry. I wish for one script command that does the rotation for better performace in the mission runtime and not in the mission inititialization, as I said. I developed Rotation Matrix with the use of vectorWorldToModel and shrinked and expand unit circle vector. trigonoetric commands sin, cos and so on and the rotation is integrated in the command vectorModelToWorld. I think it is a better way with the given commands by now, but I'm really not sure as a user not as an Arma 3 Developer ๐Ÿ˜‰. PS: It's a shame that I never lerned eulers angles and rotation matrix ๐Ÿ˜ญ, only awesome Curve sketching and Integrals in detail ๐Ÿ‘ and superficial vectors and matrices ๐Ÿ™„.