Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

Everything posted by mind

  1. 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 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 Google drive (both x32 and x64) Older versions: - Google drive Feel like this tool was usefull for you? You can show your appreciation with small donation, thank you!
  2. Hi all, I have been away from ARMA recently. There is a certain project which i probably will not be able to finish... Point is, there is asset in this project that i want to share even thought the whole project is not done. This asset is hiqh quality map of Altis and Stratis. I dont know if someone will find this usefull, but i hope so. Maps were made from inside game by making screenshots, I suppose it is not against EULA. I will remove download links if it is against EULA. Both maps have following parameters: - Resolution is 32768x32768 pixels (higher is not possible for JPG coz I wanted to keep resolution as power of 2) - Both satelite and height map variants available - No watermarks Also, both maps were cut to tiles, so it can be used in tile map engines. Leaflet in my case. Here are some sneak pics. Single JPG maps: 1) Stratis (satelite + height map) download - 129 MB 2) Altis (satelite + height map) download - 199 MB Tiled maps. 8 Layers. Resolution 256x256. Format PNG. 21845 files. 1) Stratis - height map download - 606 MB 2) Stratis - satelite download - 748 MB 3) Altis - height map download - 845 MB 4) Altis - satelite download - 811 MB
  3. OVERVIEW CompoT is a toolset designed for mission/addon makers to place and manipulate objects. CompoT is integrated directly into Eden mission editor, allowing you to place most ArmA 3 buildings and objects seamlessly, while normal mission making. To play mission made using CompoT, players do not need to have addon installed, everything is stored in mission.sqm and/or ct_projects.sqf. Addon is needed only for mission making process. CompoT have powerful GUI tools to utilize objects added by other addons, as example it is natively compatible with CUP objects, which is 3500 additional objects. CompoT`s cornerstone is randomization. With CompoT, mission/addon makers are able to significantly increase replayability and overall variability of their missions, by adding certain level of battle field randomization. CompoT is aiming to support as much of community tools and utilities as it possibly can. If you like to have CompoT`s functionality in your own project/addon/what-ever-you-are-doing, please don’t hesitate to contact me, I will be happy to help integrate CompoT in your project. CompoT is open source, it is found on GitHub, feel free to fork and/or pull request. Stable branch v0.2 github Dev branch github (latest updates and issues ^_^) KEY FEATURES Solid connection to Eden Editor Powerful object browser tool, with searching. Can be used to place objects from any mod or addon. Does not need mod to be installed for playing mission. Can be used virtually in any kind of missions, including persistent MP missions like DayZ. Flexible means of randomization. Object library with more than 4.5 k entities, all categorized and have screenshots. SHOWCASES If you would like to see CompoT in action, consider playing RTDM - Randomized Team DeathMatch. This game mode build around randomization of battlefield, looting and round based - one life - team death match. You can directly connect server with IP address Or search new server browser for "RTDM" In order to play you don`t need any mods. Please join the fight and call your friends! TS server available on same IP as server, password: rtdm INSTALLATION To install the Composition tool you should use modfolders to keep it seperate from the official game content to prevent issues. With Arma 3 you can use different ways to set up your modfolders to use custom content you have downloaded. STABLE 0.2 Armaholic Workshop DEVELOPMENT Armaholic Workshop Dev build have all the latest features and new bugs. It is updated as frequently as new features or fixes added. This is same as github`s CompoT->dev, but packed and sighned. MEDIA TUTORIALS Please see tutorials on official youtube channel. You will find all tutorials in this playlist. If you have tutorial request, let me know in this thread, i will try and make it for you. CONTACT If you like to contribute to project, have suggestions, want to add support for your objects addon or just talk about Composition Tool. Feel free to contact me via one of the following methods. Hate typing like me? Like to have voice conversation? Join discord PM me on this forum CHANGE LOG Changes mentioned from oldest to newest
  4. Hehe, dunno mate, dunno. Let me know if you like the tool.
  5. It was a challenge for me, to develop automated mechanism of making screenshots, keep best resolution, and also have map look identical to how it looks in game (in KK`s post resulting image is somewhat different from ingame map. Maybe old version? dunno...)
  6. @kman _(kya) although i stopped developing compot, it is still working somewhat fine. There are no dll so no problem in this regard
  7. mind

    Magazines models

    Yeah, that`s what i eventually did, i used arma 2 freely available MLOD`s.
  8. Hi all, Can any one point me to addon where magazines have real models (not mag_univ.p3d)? I remember in A2 DayZ a lot of magazines had custom models. Also, i wonder how simple is that to rip magazine from weapon`s p3d. Is it even possible? I am not modeler, so have no clue.
  9. Sorry for delay... Here you go, x64 update. Only one file added "asct_ext_x64.dll" everything else (plugin, exe, bats...) stay same. See download section for x64 version.
  10. mind

    Magazines models

    Yeah, like this. Unfortunately it is almost not usable.
  11. BIS, please take a look at this problem, it does not look like too big of a problem. Is it?
  12. Hi, Posting here coz cant get in new feedback tracker :( VERSION: Public (non-dev) 1.62.137494 DESCRIPTION: I noticed following problem when using setUnitLoadout command. When more than 1 magazine have same number of bullets (but less than maximum magazine capacity), this command will not set given bullet count, instead added mags will be fully loaded to its maximum capacity. REPRODUCTION Try execute following player setUnitLoadout [[],[],[],[],["V_Chestrig_rgr",[["30Rnd_556x45_Stanag",15,3]]],[],"","",[],["","","","","",""]] This command should give 3 mags with 15 bullets each. It will give 3 full mags instead. HOWEVER!!!!!! Adding one magazine will work fine. player setUnitLoadout [[],[],[],[],["V_Chestrig_rgr",[["30Rnd_556x45_Stanag",15,1]]],[],"","",[],["","","","","",""]] ALSO: There is also a nasty workaround player setUnitLoadout [[],[],[],[],["V_Chestrig_rgr",[["30Rnd_556x45_Stanag",15,1],["30Rnd_556x45_Stanag",15,1]]],[],"","",[],["","","","","",""]] This will give two semi-filled magazines. But this is not very usable, because getUnitLoadout will combine similar mags with same ammo count. Hopefully this command will be fixed, as it is THE VERY BEST item handling command ever!!! I personally love, how this command handles wrong input and empty arrays, so much more flexible from addMagazine, addItem and others. Great work BIS! :)
  13. Hey, Small topic for those who love to play around with randomness. Have you ever tried to find random point in circle? Let`s try find a random point around player in 1000 meters radius. So we can write something like. player getRelPos [random 1000, random 360]; And here we go, seems cool right? No it is not. Let`s try do that 5000 times, and put a marker for each resulting position. for "_i" from 0 to 5000 do { _pos = player getRelPos [random 1000, random 360]; _markerstr = createMarkerLocal [str random 100,_pos]; _markerstr setMarkerShapeLocal "ICON"; _markerstr setMarkerTypeLocal "hd_dot"; }; Here what we gonna have. As you can see it is not random at all. Dots are concentrated towards center. So how can we have unified distribution? We can write following: for "_i" from 0 to 5000 do { _radius = 1000; _randomValue = random _radius; _distributedValue = _randomValue; if ((1-(_randomValue/_radius)) > (random 1)) then { _distributedValue = (_randomValue + (random (_radius - _randomValue))) }; _pos = player getRelPos [_distributedValue, random 360]; _markerstr = createMarkerLocal [str random 100,_pos]; _markerstr setMarkerShapeLocal "ICON"; _markerstr setMarkerTypeLocal "hd_dot"; }; So here is what we gonna have as result Basically what we do here is: As smaller the random value we get as bigger the chance that we will add to this value a bit. (In simple words ;p) Have a good day
  14. Tnx KK, indeed, simpler. But harder to understand from pure logic point of view. Not like I knew that solution before , so, yeah i guess i became a bit smarter
  15. Hi all, I encountered rather strange and very dangerous bug. Following code will execute, but will ignore structure elements like IF blocks. Resulting in both lines written. _action = ' if (true) then { hint "This line MUST print" } else { hint "This line MUST NOT print" } '; _button buttonSetAction _action; Pressing this button will result in printing both lines with no errors, it is if like there were no IF block or it`s evaluation skipped. However following code will execute as expected _action = 'if (true) then {hint "This line MUST print"} else {hint "This line MUST NOT print"}'; _button buttonSetAction _action; It looks like newlines and tabs, causing this strange behaviour. P.S. Other workaround for buttonSetAction is using calling global function.
  16. I have another tiny update for you guys. it is for notepad++ plugin only, so I figure out i will silently "replace" version`s "asct.dll". So is latest version, download link updated. So this update allow executing only portion of text from currently opened file. As with "Execute" command, "Execute segment" will use default instanceID. If you have some text selected, you can then press Plugins->ASCT->Execute segment. And if you have nothing selected, the whole line where your caret currently is, will be executed
  17. @KeyCat, you are welcome! ;) New version ( added. Now there is support for multiply arma servers. See updated instructions in first post. Download link to newer version added.
  18. Thats a brilliant quastion, thank you. I actually have an idea how to make it possible to send code to a specific instance of arma. For now though, you are right, one instance only.
  19. @KK, Larrow is talking about objects drug and droped in eden editor. It looks like inside eden "simulation" (which is not same as mission simulation) there are, engine side implemented, means to paint "simple" objects. While in actual mission it is impossible to do so, because, apperently, mission simulation use setObjectTexture/setObjectTextureGlobal mechanics to do the job. Those commands (mechanics behind them) are not working for simple objects in mission simulation yet, but BIS already implemented a way to paint simple objects, in eden. So I am sure, soon, setObjectTexture/setObjectTextureGlobal will be updated and will be able to paint simple objects. P.S. it is not only arrows (helpers). Nothing, created with createSimpleObject, is paintable. Try this for example. obj = createSimpleObject ["A3\Signs_F\Signs_Ad\SignsAd_Sponsor_F.p3d", getPosASL Player]; obj setObjectTexture [0, "#(rgb,8,8,3)color(0,1,1,1)"];
  20. @pierremgi, thanks but, this is troubleshooting report, i just inform BIS about semi-broken command. However, this script clearly show how complicated loadout manipulations are at the moment. several commands for each item slot, multiply addMagazine commands introduced from OFP to A2:OA. Hopefully, we will have get/setUnitLoadout as primary gear manipulation method. By the way, notice how classic addMagazine used to add empty mag. This is in fact one of very few ways to add empty mag to players inventory. Other way is setUnitLoadout. BIS, please make this command as simple as possible. Please do not overextend with command`s input control, it is better to have less protection then less flexibility.
  21. Dear ArmA community! For past several months i was developing gamemode called RTDM. RTDM stands for Randomized Team DeathMatch, there are several key features in this gamemode. Vanilla A3, no mods allowed/needed. Game divided into rounds of limited lentgh. All players evenly divided into RED and BLUE teams. Each player have only one life per round. Forced 1st person view. Buildings and objects are generated semi-randomly each round. Weapons and gear are randomly spawned across battlefield. No levels, currencies or start advantages for players. Rating system connected to persistent database. Shooting range, to practice shooting skill. Own team spectate mode for died players. and more... This project is mostly complete and playable, however more testing required. So, here i ask for help of great ArmA community to test this game mode, find its weaknesses and enhance strengths. If you would like to help, all you need to do is basically join game and play. Currently i run dedicated server in Germany, it is up 24/7. For direct connect use IP Adress: port: 2302 or search for server name: RTDM - Randomized Team DeathMatch - vanilla ArmA3 Remember to switch off mods Feel free to contact me via one of following ways TeamSpeak3 - - no password Steam - vitaly 'mind' chizhikov - Finland Or PM here on forum Thank you! Any help is appreciated!
  22. Hi Icebreakr, First of all thank you for awesome maps you are making! Can you please give us few words about overall progress on Isla Abramia? Maybe some estimates?