Search the Community
Showing results for tags 'extension'.
Found 10 results
-
ARMAGO Version 0.3 Hi, good news if you like golang like me, I give you a golang template that allows to quickly create extensions in .dll or .so You can fork : Github ARMAGO Template You can also find a full french article on Nestheat which describes how it works: https://arma409626711.wordpress.com/2018/06/16/arma-creer-une-extension-en-golang/ Edit: Please if you like it, don't forget to rate this topic :)
-
Hey Guys, i hope you can help me to get rid of this error. I hope it is something simple and i'm don't see it. I try to add ACIM (http://www.armaholic.com/page.php?id=27355) to the ACE3 Interaction menü. In Singleplayer / Editor everthing works fine (sorry for the german) But as soon i start it as multiplayer / on a dedicated server i get this erros in my rpt file: To add all the Ace options i use this script: I know this part is very very basic, because i tried to reduce other possible error sources. I hope it is a fucking dump mistake and sorry for my bad english. Download Sample Mission: https://www.dropbox.com/s/hyhqsik17lhrpbx/ACIM-ACE-Extension-Test.Stratis.pbo?dl=0 Thx for reading so far! Greetings Gangolf
-
ACE 3 Extension Mod (Anim & Actions) + (Placeables)
KokaKolaA3 posted a topic in ARMA 3 - ADDONS & MODS: COMPLETE
ACE3 Extension Here is my ACE3 Extension mod! ACE3 Extension (Anim & Actions) ACE3 Extension (Placeables) ACE3 Extension (Gestures)- 142 replies
-
- 10
-
─────── Structure ─────── Motivation Introduction Features Benchmarks Installation Usage Final words Changelog Requirements Download Screenshots ─────── Motivation ─────── Hello there, first I want to talk about why I made this - well there is a pretty simple reason. As a developer and as server owner you always need logs. You need logs to write debug messages, you need logs to make statistics for your squad, you need logs to be able to have a look on who did what when. Logs are awesome, and without them it would take much longer to find an error or to find out who shot who first, or how many players were on your server today. Let us have a look on the game log itself, the rpt log. It provides errors, if you have got some, and gives some debug information about startup and shutdown of the game. However since there are some errors in the game that write a nice little message every 1-2 seconds into the log-file, the rpt gets larger and larger ... and now find the one line you need. Imagine, you are a server owner, and you want to keep track on who connected when on your squad server for you and some friends. Why ? Well you like it to stalk other people, or wanted to play NSA simulator 2016. You could log who connected, with which player-ID and so on ... but where do these logs go? Well I always had to log into the rpt file. Often I search for one line which is between 1000 of other lines. That does not only take time, but it might also happen, that you do not find the line, even if you go through everything 10 times. That is where I had the idea, well ... why not create an extension where you decide where logs are placed, in which format, how they are named, if they should have got a time stamp, if this time stamp should be in 12 or 24 hour format etc. I wanted a simple extension where you setup a config, and then just call a function with content, and maybe optional a name which is used for separation. Simple but fast, with options, so that you can get logs from ArmA just the way you want it. I already made a extension called Arma3Log a while ago but I was new into extension writing, and you could have seen that ... it was slow and not very useful... but I wanted to do better and here we are. ─────── Introduction ─────── A3log is a lightweight logging extension for ArmA III, which allows it's users to write customized log-files with a very high performance. It is very easy to use, and does not require and advanced skills for the setup, or the usage. The log-files are adjustable in nearly every way, you could come up with in case of writing log-files. Even when dealing with a high amount of data, the server will not be slowed down and there is no data loss. As it is still in development, there will be improvements to the speed and the amount of features / settings. ─────── Features ─────── Timestamp inside the logfile Timestamp (Date) within the filename Extend the filename with the minute of creation Changeable timestamp format 12/24H clock Custom directory to place the logs (Full-/Relative path) Choose the name of the file Choose the file-extension Define a unlimited amount of custom log categories Separate each log category as one folder Define path and name of the configuration ini ─────── Benchmarks ─────── 1000 lines with 100 characters each: 0.052 seconds - diag_log 0.0159998 seconds - A3log (with all features enabled at v1.1) Extreme example: 100.000 lines with 100 charaters each: 55,895 seconds - diag_log 15,2 seconds - A3log (with all features enabled at v1.1) Note: The test conditions for the benchmarks were reset for every run. The value in seconds is the middle value of 10 test runs. The time indicates how long it took for ArmA to process the input and output of the extension, so how long the server was under heavy load to send the content to the extension. ─────── Installation ─────── Download the latest version (See download section for that) Extract the @A3Log folder and place it in your server directory Go into the @A3Log folder and make sure the the A3Log.dll is not blocked Edit the A3Log.ini file to fit your personal need -> Save the file Edit your startup file and add @A3Log to your -serverMod / -mod parameter Optional: To specify from where the config should be loaded you can define startup a paramter for the arma3server executable with "-A3Log=Configurations/Mylogs.ini" (Only paths in your arma3server directory are allowed so in this case you would have a folder called Configurations inside of your serversetup and in that you have the config file called Mylogs.ini) - This feature is WIP Remove the A3Log_examples.pbo inside @A3Log/addons, once it worked for you and you got example log files Done ─────── Usage ─────── The A3Log.pbo provides you with the A3Log function, which you can call from anywhere. In addiotion to that there is a serverside PublicVariableEventHandler (sendlogfile) to catch incoming log entries, which may be send via publicVariableServer So an example for serverside use would be: ["I am Superman!"] call A3Log; This one has no category defined, so it goes into the catch all log (See A3Log.ini for this) --- ["I am Batman!","ExampleLog"] call A3Log; This one goes into the ExampleLog.log, or what ever you called it. An example for sending a log from a client / headless client would be: sendlogfile = ["I am Batman!","ExampleLog"]; publicVariableServer "sendlogfile"; You might need to whitelist this in the publicvariable.txt from Battleye with !="sendlogfile" --- Or if you prefer remoteExec ["I am Batman!","ExampleLog"] remoteExecCall ["A3Log", 2]; //2 = send to server only and call is much faster Note: You would need to whitelist A3Log as a function that can only be executed on the server. --- So to describe the usage in general: The function A3Log (Serverside) handles the input and sends it to the A3Log extension. <Paramter> call A3Log; --- <Paramter> is an array [], which you can send up to 2 paramters in. [<text>,<category (This second one is optional)>] call A3Log; Attention! - If you want to rewrite the function that sends the log message to the extension, you need to include the information separator byte, which can be used in ArmA like this: <bla bla text> + toString[31] + <your-cool-category> //This all is from variable type string --- You can use this extension as client mod too, just make sure to disable Battleye, as the dll would get blocked by BE otherwise. ─────── Final words ─────── I will provide some additional usage examples and code snippets inside the A3Log_examples.pbo in the future. This is not a drag and drop everything will be logged for every mission you use addon. You still need to invest some time into the configuration and your setup, what you want to log. Since there are many versions of missions, which all differ in their code like an eventhandler for being killed or something, I can not provide code that fits with just a simple copy and paste. How ever I offer everybody to send me a request on these forums or via arkensor@gmail.com so that I can help him with either the setup or write some lines of code from him. I will expand this extension with my own ideas, and requests you guys might have, and it would be great to have some feedback on this. At this point I would like to thank Killzone_Kid, for making a great documentation and tutorials about extensions, which made me start with extension making for arma3. And thanks to my teammate Maurice for helping me with some magic c++ code! If you want to support me and my work, you can send me a donation via paypal. Thank you very much! ─────── Changelog ─────── v1.7: - [Added] x64 support for Windows and Linux . v1.6: - [Added] Optional console output for Windows. - Formating and preparations for a colored debug output Older versions: ─────── Requirements ─────── Windows: C++ Redistributable 2013 32-Bit - Download -> vcredist_x86 (This should be pre installed on all hosting providers) ─────── Download ─────── Download the release from Github: https://github.com/Arkensor/A3LOG/releases/tag/1.8 ─────── Screenshots ─────── This is my folder where I place my logs at serverdir/@A3Log/Logs: Note: Inside the folders are files which were written as the config had folder seperation enabled. License: If you have got any questions feel free to ask. Help me with your feedback to improve this project! Now have fun with it, and enjoy your clean log files 🙂 Regards Arkensor
-
[CLV] Trigger Debugger (Zeus extension)
FlyingTarta posted a topic in ARMA 3 - ADDONS & MODS: COMPLETE
Trigger Debugger This mod is a little extension to the zeus who with a button on the top right can toogle this tool that allow it to see all triggers on the map, and with right click on it being able to activate it, delete it or just see information about it. Core features See all triggers on the zeus map. See all modules sync to the trigger. See all things sync to the modules. Compatible with Zeus enhanced / Achilles. LOCAL MOD so no need to be installed on the server. How to use: On top right corner you will see this button: After that all triggers will appear on the map, with all syncornized things to the trigger, and modules syncronized to it With right click on the area of the trigger this menu will appear: Known issues Triggers with no area cant be interacted Plan to the future Make Triggers visible on zeus interface Edit Triggers Links Workshop GitHub -
extension Questions about the extension
Bashelion posted a topic in ARMA 3 - ADDONS - CONFIGS & SCRIPTING
Hi everyone! English is not my native language, so I use my little knowledge and Google translator I have 2 questions about arma3 extensions: 1) BE always blocks my extensions, even if you take those that are given on the wiki. At the same time, he warns that he can launch the extension if it does not stop the game process. But apparently it doesn't work that way. Is it possible to do something about this without entering(including) the extension in the whitelist? I'm going to use this extension only on the server. 2) My extension makes a request using libCURL, but during the request, the game hangs(stop) for 2-5 seconds. I read that it's kind of possible to solve this with callbacks. I saw an example on the wiki. But my knowledge of C++ is not so good, could you help me adapt my sample code for a callback. At the same time, so that it works the same as the usual RVExtensionArgs function, returning [result, returncode, errorcode] or [result, returncode]. Shortly example my code: -
The following code can only be used on the server. Do not write it in the task file. It is recommended that you create a separate mod mount to avoid revealing RedIS information Connect to redIS server first after server initialization (connection can only fail once and can be failed multiple times) Parameters: [IP, port, password] Redis has a password: "ArmaMapsExt_x64" callExtension ["connectRedis",["127.0.0.1","6379","123456"]] Redis password free: "ArmaMapsExt_x64" callExtension ["connectRedis",["127.0.0.1","6379"]] Store a string to the RedIS cache server Parameters: [key, value] Cache indefinitely: "ArmaMapsExt" callExtension ["sendMsg",["usename","abc"]] Cache expiration (in seconds): "ArmaMapsExt" callExtension ["sendMsg",["usename","abc","60"]] Gets a cached string from the key parameters:[key] _data = "ArmaMapsExt" callExtension ["getMsg",["username"]] Returns the value if the cache is hit, otherwise returns an empty string Note: the whole process can only be executed on the server! Modules can also only be mounted on the server If you are using client test, please close battleye first, otherwise it will block the load! link: workshop
-
ASCT Server script executing toolset (x32/x64)
mind posted a topic in ARMA 3 - COMMUNITY MADE UTILITIES
General description Arma Server Control Tool can be used to execute SQF scripts on server directly, by using standalone server side application. Idea behind this project is to solve the problem that, in many cases it is hard or straight impossible for server administrator to execute certain scripts on server, also it most likely involves joining server with game client. A lot of times server admins are not able to quickly react to some event on server due to absence of a PC with installed arma nearby. With ASCT all you need to do is to login to your server with remote Desktop or TeamViewer, right click on script.sqf and select ASCT Execute. NOTICE! This application REQUIRE root access to server, you MUST be able to connect to server with remote desktop or TeamViewer. If you have only web access this application is NOT usable. Target audience This tool supposed to be used only on server side. it is made for server admins and developers. Currently this program can be used only on windows platform. Installing 1) Copy paste @asct folder to root of your server alongside with other addons 2) Change your server startup parameters by adding -serverMod="@asct;" 3) Copy paste “asct_console†anywhere you like. At this point you are basically done, you can now use asct.exe as console app. However there are few optional steps to make your life simpler. 4) Optional. If you are running several arma servers on single machine, you should set "instanceID" in order to distinguish arma servers. To do that execute following expression on server init asct_instanceID = “your_idâ€; Select something descriptive as “your_id†but use only a-z,0-9 and _ characters. 5) Optional. When directory for asct.exe selected, run Add_ASCT_to_context_menu.bat, that should be found in same directory. Remember to run it as administrator. This will add “ASCT Execute†option to windows explorer context menu. In case you have several servers on same machine, open Add_ASCT_to_context_menu_instance_yourID.bat file and edit 3rd line. instead of "yourID" type in same instanceID you used in step 4. Save .bat file and execute it as administrator. 6) Optional. For notepad++ users. Copy paste asct.dll from “Notepad++ plugin†folder to “C:\...\Notepad++\plugins\†Use as console application There are several ways to use app. They all have some pros and cons, choose one you like more. For sake of clear examples let`s assume you put asct.exe in C:\asct_console\ folder. As most console apps, this require user to provide parameters. Only one parameter can be used at once. 1) Execute script from file -f <filename> Example: C:\>asct_console\asct.exe -f "C:\my scripts folder\script.sqf" This is simplest method, nothing much to say here, app will read whole file and execute it`s contents. It is also possible to pass only filename, in such case file must be in same folder as asct.exe. This method allow file to have both single line comments // and multiline comments /* */. However, preprocessor directives are NOT allowed (#include, #define, __MACRO__, etc…). SQF files should be encoded as UTF-8. 2) Execute expression -e <expression> Example: C:\>asct_console\asct.exe -e "diag_log \"hello from RPT\";" This method is very straightforward, thus can be useful for only very simple commands. As you can see it require to escape inner quotes and some other technical characters like %, it does not support any comments and must have whole expression in single line. However, it might be useful if you like to use asct in conjuration with some batch, PowerShell, VBS or whatever else scripting methods you like. 3) Execute base64 encoded expression -b <base64code> Example: C:\>asct_console\asct.exe -b ZGlhZ19sb2cgImhlbGxvIGZyb20gUlBUIjs= This one accepts script expression in form of UTF-8 string encoded as base64. What you see in example is basically “literal†representation of bytes of UTF-8 string diag_log "hello from RPT"; This method combine ability to have whole expression in one line, allowing single and multiline comments and accept expression of any complexity. Encode/Decode algorithm borrowed from here http://www.adp-gmbh.ch/cpp/common/base64.html. You can use online services to encode script as base64, google for it. Optionaly, if you have several instances of arma servers, there is also one additional parameter to tell on which server script must be executed. It can be used in conjuration with other parameters. -id <instanceID> Example: C:\>asct_console\asct.exe -f "C:\my scripts folder\script.sqf" -id your_ID You can use this parameter before or after expression parameter. In this way script will be executed on server with given instanceID. NOTE! In windows, applications have limits on length of parameters. At max it is 32768 characters, but command prompt has own limitation of 8191 character. However, there is no limitation for size of script inside SQF file, so first method can be used on very long scripts. Use as notepad++ plugin If you are using Notepad++, you can install asct plugin for it. It will allow you to execute scripts directly from notepad++. After plugin is installed (see Install. step 4) you must specify full path to asct.exe. To do that, on toolbar press Plugins->ASCT->Settings. There you will see input box, write full path to ASCT and press OK. When you have your script ready, press Plugins->ASCT->Execute to run it. Notepad++ allow to have several documents opened at same time, but only content from currently active document, will be read and executed. if you have several instances of arma servers, you should add their instanceIDs to a list in settings menu, once it is done, you will be able to select target server with "Execute at..." pressed. It is also possible to select certain server as default target by selecting instanceID from list and pressing "make default" button, after that, selected instanceID will be used in Execute funciton. By pressing "make default" button with no selected server, instanceID will be "unset". Use as windows explorer context menu You can also execute scripts directly from windows explorer by using right-click context menu. Follow step 5 from installation to get “ASCT Execute†option in context menu. Now navigate to folder with your script.sqf file, right click it and select “ASCT Executeâ€. As with other methods, here you can have direct execution on each of your server instances. Security & Battleye This application does not use any “cheating†methods to do it`s job, no memory reading/writing, no dll injections or anything else like this. All it does is using callExtension command to communicate with asct_ext.dll from which receive and call compile expressions. This application is not meant to be used on client, thus it will be immediately blocked by battleye which is totally intended behavior. On server side, on the other hand, battleye have much less limitations (if any) and allow use any extensions. If you like to use application on client for development/testing feel free to do so with disabled battleye.Similarly, asct.pbo is not signed as it should NEVER be required mod, nor used on clients in actual game. In current implementation, there should be no way for cheaters to exploit application in any way, unless they have root access to server. Web interface Allowing to have asct available in browser on remote PC is something that I am very interested in doing. I realize many server owners have no root access, only some sort of web control panel with limited functionality. It would be amazing to allow use of asct for them as well. However, such a thing would require A LOT of safety considerations, it is direct control of server execution from internet after all. Does not seems to be very SAFE idea. Nonetheless I will consider implementing this as experiment. If you feel like helping me out with ssl and web development, send me a PM. Current version and goals Current version of application is 0.9.0.1. Next version will have bug fixing that hopefully will be found in the course on few next weeks. Once all bugs sorted out there will be final version 1.0. There probably will be no new functionality available in final version. License This application is released under GNU GENERAL PUBLIC LICENSE version 3. If you redistribute this application, please mention author and give link to this forum page. Changelog Download Latest version 0.9.0.1 Google drive (both x32 and x64) Older versions: 0.9.0.0 - Google drive Feel like this tool was usefull for you? You can show your appreciation with small donation, thank you! -
FileXT - File EXTension Introduction With FileXT you can write to files from SQF and read data back from these files. Data is stored in key-value pairs, like in profileNamespace. Usage Please refer to wiki page for usage examples. Limitations 1. Does not work on Linux. 2. String is the only data type available now. However you can work around this by using `str` and `parseSimpleArray` SQF commands. Motivation I made this primarily for our Vindicta mission. It has a custom saving system, however with each save taking up to 10 megabytes in profileNamespace, it is far too inconvenient to store everything in one file, and there was needed a solution which would do one simple thing - plain file data storage without limitations on string size or string content. To-Do - Learn CMAKE to build it for Linux too. - Add support for other data types, perhaps store type information in the file directly. Download... Steam Workshop
-
Hey there, I discovered that all extensions I try to use, or build by myself throw this "error", when I call them the first time: Unable to get file version size: nameofextension.dll And I would like to know, how to fix that, or what to change in the extension code, to resolve that ... The notice in the rpt, has no effect at all on my extension, it work perfectly, but still it wonders me why it produces the error. Mabye someone has got any information on that Thank you very much Regards Arkensor
- 2 replies
-
- Unable to get file version
- dll
-
(and 2 more)
Tagged with: