Voyager-NO- 1 Posted July 11, 2012 (edited) ArmA2Ext 1.0.1 Extends standard ArmA2 scripting capabilities. See callExtension and Extensions for details. ArmA2Ext is an engine that will allow you to develop your own extensions and create derivative works. Download http://game.vgrsoft.com/download Features Allows to create custom extensions that you need High performance of ArmA2Ext's engine Developing on the fly without ArmA2 restarting Supports .NET Framework 2.0/3.0/3.5/4.0 Syntax string = "ArmA2Ext" callExtension "Command"; object = call compile ("ArmA2Ext" callExtension "Command"); Recommended Command format: Namespace.FunctionWithArgs Args passed to the Call function and can be parsed as you want. ArmA2Ext commands "Reset" - reloads all ArmA2Ext extensions on the fly "Version" - returns ArmA2Ext version "Clr" - returns the CLR version "Init" - initializes the library (optional, first initialization can be used in init.sqf for preventing [url="http://en.wikipedia.org/wiki/Lazy_initialization"]Lazy initialization[/url]) Install ArmA2Ext installs as Addon Mod. Copy @ArmA2Ext into your ArmA 2 installation directory. Add @ArmA2Ext mod folder into startup parameter "-mod": "C:\Program Files\Bohemia Interactive\ArmA 2 Operation Arrowhead\Expansion\beta\arma2oa.exe" -beta=Expansion\beta;Expansion\beta\Expansion -mod=@ArmA2Ext -showscripterrors You can enable .NET 4.0 support in ArmA2Ext.ini Structure ".\@ArmA2Ext\ArmA2Ext.ini" - configuration file for ArmA2Ext ".\@ArmA2Ext\Bin\" - binary assemblies ".\@ArmA2Ext\Sources\" - source code ".\@ArmA2Ext\SDK\" - files used to compile assemblies "c:\Users\<user>\Documents\ArmA 2\ArmA2Ext\Cache\" - cache folder for assemblies compiled from sources "c:\Users\<user>\Documents\ArmA 2\ArmA2Ext\Logs\" - logs folder Requirements Requires .NET Framework 3.5 Service Pack 1 or .NET Framework 4, ArmA2 1.61. You can download ArmA2 latest beta patch, I used 91138. Microsoft Visual C++ Redistributables are not needed. Changelog 1.0.1 * New: Added support for .NET Framework 4.0 * New: Configuration file ArmA2Ext.ini * New: Commands: "CLR" 1.0.0 * First public release Information for developers Extensions can be developed in Notepad or in Visual Studio (you must include files from ".\@ArmA2Ext\SDK\"), ArmA2Ext supports both variants of use. Binary assemblies should be placed into ".\@ArmA2Ext\Bin\" directory, source codes into ".\@ArmA2Ext\Sources\". Examples See Missions folder in ArmA2Ext.zip. Licensing ArmA2Ext is a closed source project. See License.txt for details. Edited July 13, 2012 by Voyager[NO] Share this post Link to post Share on other sites
ysandro 2 Posted July 11, 2012 (edited) Cool tool, Voyager! One example of use. Suppose I want to record the coordinates of the unit. Initially, when you load the mission in the file Init.sqf (Init.sqs), write _initialized = ("ArmA2Ext" callExtension "init"); hint format ["Init: %1",_initialized]; Next, somewhere in the script call a=call compile ("ArmA2Ext" callExtension format["MyExample.SavePath %1",_path]); where in _path - point array (formatted looks like "[[1,2,3],[1,2,4]]"). MyExample.SavePath looks like this: //@ArmA2Ext\Sources\SavePath.cs using System; using System.Collections.Generic; using System.Text; using System.IO; using ArmA2; namespace MyExample { public class SavePath: IExtension { public string Call(string args) { StringBuilder builder = new StringBuilder(); builder.Append(args.Trim());// trim whitespaces from " [[1,2,3],[1,2,4]]" builder.Append(";\n\n"); File.AppendAllText(@"e:\temp\path.txt", builder.ToString());// @ needed or write double slash "e:\\temp\\path.txt" return builder.ToString().Length.ToString(); } } } File SavePath.cs may lie in any folder inside the @ArmA2Ext\Sources\ - engine will find it by namespace in file (MyExample). Arrays of coordinates will be found in the file e:\temp\path.txt Edited July 11, 2012 by YSandro Share this post Link to post Share on other sites
armatech 8 Posted July 12, 2012 any chance of getting a Open Source version of the dll Share this post Link to post Share on other sites
Voyager-NO- 1 Posted July 13, 2012 (edited) YSandro, thx for example! any chance of getting a Open Source version of the dll ArmA2Ext is a closed source project (I use some technologies in my other projects). For more information about syntax and using see callExtension and examples. Edited July 13, 2012 by Voyager[NO] Share this post Link to post Share on other sites
conKORD 10 Posted July 15, 2012 Great work. It will be very useful while developing addons. I'm surprised that Extended Dll miss interested by community. Share this post Link to post Share on other sites
kremator 1065 Posted July 15, 2012 Unfortunately I'm not skilled enough to use it! I'm certainly watching it closely however to see what you coding gurus can do ! Share this post Link to post Share on other sites
Patriot123 1 Posted October 9, 2012 Good tools! But if I run thread or realtime function in constructor class - arma 2 is freezing. Because of this, I can not keep a constant connection to the database in the class.:( How fixed it? Share this post Link to post Share on other sites
Armitxes 36 Posted February 25, 2014 Awesome! Works even with the newest frameworks and os unlike Arma2NET :) thanks a lot! Share this post Link to post Share on other sites