Jump to content

Search the Community

Showing results for tags 'sqf'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • BOHEMIA INTERACTIVE
    • BOHEMIA INTERACTIVE - NEWS
    • BOHEMIA INTERACTIVE - JOBS
    • BOHEMIA INTERACTIVE - GENERAL
  • FEATURED GAMES
    • Vigor
    • DAYZ
    • ARMA 3
    • ARMA 2
    • YLANDS
  • MOBILE GAMES
    • ARMA MOBILE OPS
    • MINIDAYZ
    • ARMA TACTICS
    • ARMA 2 FIRING RANGE
  • BI MILITARY GAMES FORUMS
  • BOHEMIA INCUBATOR
    • PROJECT LUCIE
  • OTHER BOHEMIA GAMES
    • ARGO
    • TAKE ON MARS
    • TAKE ON HELICOPTERS
    • CARRIER COMMAND: GAEA MISSION
    • ARMA: ARMED ASSAULT / COMBAT OPERATIONS
    • ARMA: COLD WAR ASSAULT / OPERATION FLASHPOINT
    • IRON FRONT: LIBERATION 1944
    • BACK CATALOGUE
  • OFFTOPIC
    • OFFTOPIC
  • Die Hard OFP Lovers' Club's Topics
  • ArmA Toolmakers's Releases
  • ArmA Toolmakers's General
  • Japan in Arma's Topics
  • Arma 3 Photography Club's Discussions
  • The Order Of the Wolfs- Unit's Topics
  • 4th Infantry Brigade's Recruitment
  • 11th Marine Expeditionary Unit OFFICIAL | 11th MEU(SOC)'s 11th MEU(SOC) Recruitment Status - OPEN
  • Legion latina semper fi's New Server Legion latina next wick
  • Legion latina semper fi's https://www.facebook.com/groups/legionlatinasemperfidelis/
  • Legion latina semper fi's Server VPN LEGION LATINA SEMPER FI
  • Team Nederland's Welkom bij ons club
  • Team Nederland's Facebook
  • [H.S.O.] Hellenic Special Operations's Infos
  • BI Forum Ravage Club's Forum Topics
  • Exilemod (Unofficial)'s General Discussion
  • Exilemod (Unofficial)'s Scripts
  • Exilemod (Unofficial)'s Addons
  • Exilemod (Unofficial)'s Problems & Bugs
  • Exilemod (Unofficial)'s Exilemod Tweaks
  • Exilemod (Unofficial)'s Promotion
  • Exilemod (Unofficial)'s Maps - Mission Files
  • TKO's Weferlingen
  • TKO's Virolahti
  • TKO's Rules
  • TKO's Changelog
  • TKO's Help
  • TKO's What we Need
  • TKO's Saint Kapaulio
  • TKO's Cam Lao Nam
  • MSOF A3 Wasteland's Server Game Play Features
  • MSOF A3 Wasteland's Problems & Bugs
  • MSOF A3 Wasteland's Maps in Rotation
  • SOS GAMING's Server
  • SOS GAMING's News on Server
  • SOS GAMING's Regeln / Rules
  • SOS GAMING's Ghost-Town-Team
  • SOS GAMING's Steuerung / Keys
  • SOS GAMING's Div. Infos
  • SOS GAMING's Small Talk
  • SOS GAMING's TS³ Viewer
  • NAMC's Topics
  • NTC's New Members
  • NTC's Enlisted Members
  • The STATE's Topics
  • CREATEANDGENERATION's Intoduction
  • CREATEANDGENERATION's HAVEN EMPIRE (NEW CREATORS COMMUNITY)
  • HavenEmpire Gaming community's HavenEmpire Gaming community
  • Polska_Rodzina's Polska_Rodzina-ARGO
  • Carrier command tips and tricks's Tips and tricks
  • Carrier command tips and tricks's Talk about carrier command
  • ItzChaos's Community's Socials
  • Photography club of Arma 3's Epic photos
  • Photography club of Arma 3's Team pics
  • Photography club of Arma 3's Vehicle pics
  • Photography club of Arma 3's Other
  • Spartan Gamers DayZ's Baneados del Servidor
  • Warriors Waging War's Vigor

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Yahoo


Jabber (xmpp)


Skype


Biography


Twitter


Google+


Youtube


Vimeo


Xfire


Steam url id


Raptr


MySpace


Linkedin


Tumblr


Flickr


XBOX Live


PlayStation PSN


Origin


PlayFire


SoundCloud


Pinterest


Reddit


Twitch.Tv


Ustream.Tv


Duxter


Instagram


Location


Interests


Interests


Occupation

Found 71 results

  1. Advanced Developer Tools by Leopard20 Short description: An addon that adds completely new and revamped developer tools to the game, including a Debug Console with syntax highlighting, Config Viewer with many new features, etc. Long description: If you're a mod/mission maker, then you definitely must've used the Debug Console, the Config Viewer, as well as other in-game tools that can help you test and verify your codes and configs. But when you use those tools, the first thing that strikes you is their clunkiness and a rather user-unfriendly design. For instance, lack of syntax highlighting in Debug Console means that you'll have to actually read every single word of your code in order to make sure you haven't made a typo, etc. That's why most of us use third party code editors such as Visual Studio Code and Notepad++. But this means that you'll have to switch out of the game every time you want to write and test some code. Or let's take a look at the Config Viewer: every time you want to go one level deeper into the config, the whole config viewer must be reloaded! And if you have hundreds of mods loaded, this means you have to spend more time waiting for the Config Viewer to load than actually viewing the config! This is exactly why I made this mod: to make the Arma environment more user friendly to the mod/mission makers. So without further ado, let's take a look at the features! Screenshots: Features: Documentation: The documentation is available in the mod folder. You can find the online version here. Download: Steam Workshop Note: This is a preview release. Please provide feedback regarding the mod features, such as design, what you'd like to see, etc. Thank you! Localization: Interested in translating the mod to your language? Or maybe the translation is not good and you'd like to improve it? Please visit the localization repository on GitHub. Known issues: FAQ: Requirements: None (Arma 3 v2.06+)
  2. I am pretty new to scripting and Arma 3 mission editing in general. I want to create a template mission that I can copy code from and such for future missions, I am currently trying to figure out spawning AI with triggers and have made a separate post on that topic. I want to implement a headless client into this mission to improve performance, I want to avoid using mods if possible and would rather keep everything vanilla. I have looked into the Headless Client wiki page and many videos and guides, however I am still pretty much at square one trying to figure this out. Essentially what I want is for AI spawned via triggers, throughout the mission to be automatically transferred to the headless client if one is available, otherwise to continue normally if there is no headless client available. I would also like to know how to setup the headless client in general, my smooth brain does not understand the explanations given on the wiki page for the Headless Client, a step by step explanation would be very useful to me. Thanks any help is appreciated. ❤️
  3. When using execVM (which I do almost never do) I use the following syntax: someParam execVM "someScript.sqf"; Are there circumstances where you have to do the following with execVM: null = someParam execVM "someScript.sqf"; I ask because today I found someone saying a script would not work without using the latter syntax: https://forums.bohemia.net/forums/topic/189445-exec-or-execvm-call-or-spawn/?do=findComment&comment=3001417 In the past I have played around with scripts that use the latter syntax and changed them to my syntax without any apparent issue. I do appreciate that execVM does return a value (a script handle) that can be used with the scriptDone and terminate commands.
  4. FILE CFS 1.01 (Dropbox, APL-SA license) INTRODUCTION CFS script attempts to guide pointed helicopter along his waypoints using very low altitude similar to contour flight. CFS's control is paused as helicopter approaches current waypoint and resumed, when new waypoint become current. Testing run footage Parameters description: Helicopter - a chopper to be controlled. Desired speed - speed in m/s, that heli will try to maintain most of the time. Default: max config speed. The faster, the more risky flight. Desired altitude - AGL ceiling in meters: controlled heli will strive to maintain that height above the ground as much, as possible. Default: 10. Values below 10 not recommended. Overfly buffer - additional buffer in meters added to calculated minimal height necessary to fly over an obstacle (map object etc.). Default: 2. Values below 2 not recommended. Obstacle detection mode - setting for obstacles detection method. 0 - less CPU hungry, pays attention only to the map objects, ignores editor-placed objects and very few exceptions amongst map objects too (example: Tanoa's sea bridge roadway). 1 - detects non-map objects as well, may cause a bit more bumpy ride, than necessary and recognize as an obstacle also objects, that should be ignored, can be more CPU-hungry. Default: 0 (recommended unless insuffice in certain scenarios). Obstacle detection range - a multiplier of obstacles detection radius. Default: 1, which translates to the bigger of the two: (heli full length + 10) OR 20 meters. Too big radius will eat FPS fast, too low will tend to ignore big objects, that still can be collided with. Emergency pull up - if this is enabled and code would detect, that heli gets dangerously close to the ground, emergency "pull up!" vertical velocity will be added, which often (not always) may help to avoid collision. In such situation it will override sharpness setting. Default: true. Sharpness factor - the lower value, the more smoothed flight, but also more sluggish reactions which increase collision risk. Default: 0.2. Values 0.1-0.2 are risky. Values below 0.1 not recommended. Maximum: 1 (safest, but least elegant). Values above 1 or below 0 may cause weird behavior. Debug mode - added 3D visualisation markers and some numerical data on the screen. Default: false. KNOWN ISSUES & LIMITATIONS CFS was tested with few helicopters (Ghost Hawk, Hummingbird and Huron) and settings along various, demanding paths, but further tests with various settings/on different terrains may still reveal exceptions, where collisions may occur. Although I did, what I could to make it looking as natural, as possible, do not expect fully realistic flight model here. It's simplified, scripted makeshift. CFS will fail, if given map object has its shape bigger, than bounding box. One example found: sea bridges elements (pillars) on Tanoa - manual correction for them included. CFS will not try to pass obstacles sideways nor will try to guide the helicopter below any obstacle even, if possible (high bridges etc.). It will always try to overfly the obstacle instead. CFS guides the helicopter towards current waypoint along the straight line, there's no path preplanning to use terrain, avoid hilltops etc. The code is run per frame to make it fluid and reliable, so it may cause some FPS drops especially over areas with many objects, like forests etc. CODE Initialization: _handle = [heli1] spawn RYD_TI_TimidIcarus;//simple _handle = [heli1,83.3,10,2,1,1,false,0.2,true] spawn RYD_TI_TimidIcarus;//advanced //[helicopter,desired speed (m/s), desired altitude AGL (m), obstacle overfly buffer (m), obstacle detect mode (0/1), obstacle detect range (m), emergency pull up, smoothness factor, debug mode] Ending: removeMissionEventHandler ["EachFrame", RYD_TI_EFEH]; Source:
  5. I'm trying to get this to work in Multiplayer, but getting nowhere so far. I am using beno_83au's MIL_CAS script in my mission. This uses the mouse scroll wheel to call for a Gun Run (guns only) followed by a playsound3D (with custom ogg file) and a 180 second cooldown with the hint to player to wait for the cooldown. This works very well in Singlepayer, but not in Multiplayer. Also having issues with other players in the same team not being able to hear that custom ogg audio at times. initPlayerServer.sqf if (playerunit == JTAC) then { _id = playerunit addAction [ "<t color='#FF0000'>Call for Gun Run</t>", { params ["_target","","_id"]; if (diag_tickTime < (uiNamespace getVariable ['tag_cooldown',-1])) exitWith { hint (format ['CAS Pilots are busy doing runs. Please wait %1 more seconds.',(round ((uiNamespace getVariable ['tag_cooldown',-1]) -diag_tickTime))]);}; _cooldown = 180; uiNamespace setVariable ['tag_cooldown',(diag_tickTime + _cooldown)]; nul = [screenToWorld [0.5,0.5],200,"B_Plane_CAS_01_F",0] execVM "MIL_CAS.sqf"; _soundPath = [(str missionConfigFile), 0, -15] call BIS_fnc_trimString; _soundToPlay = _soundPath + "sounds\radio4guns.ogg"; playSound3D [_soundToPlay,soundSource]; }, nil, 0, true, true, "", "alive _target", -1, false ]; }; btw, my ogg files in description.ext are 100% fine, so I know that is not the issue: class CfgSounds { sounds[] = {}; class gunrun { name = "gunrun"; sound[] = {"sounds\radio4guns.ogg", db+2, 1.0}; titles[] = {0,""}; } Here are all the files in case you'll want to try it for yourself: https://drive.google.com/file/d/10WkdJCVeuuCuxOPJlDkUcVCqV44VUolB/view?usp=sharing And the modlist: https://drive.google.com/file/d/11st38ojvCu_g7yJw3rJoXByvnVIgl9CM/view?usp=sharing
  6. Hello, how do I eject all players from my vehicle (Helicopter) but me, just like in King of the Hill. I know that player action ["getOut", vehicle player; ejects me. But I want it in a forEach loop or something else (depends on what is better) that eject all players but me from the Vehicle. What do I have to put in my forEach loop? Greetings.
  7. Hello again, I'm working on a 1 versus 1 deathmatch mission (There's a closer description in another Forum-Topic). The respawn is working as well as the rest of it. The last thing I want to add is a scoreboard with the remaining tickets but not like the one when you press 'P' (at least in my case). At first I wanted an always shown indicator like in Tom Clancy's - Rainbow Six Siege at the top middle of the screen. After a while I found this script (Steam-Source). It's not a permanent indicator (which I would prefer) but it shows at least after every respawn a count. This is for the client and this is for the server It could be my mistake but I didn't manage to get this to work and I find the following problem: A dead player is always seen as an civilian. Because of that the script just always runs the "else" path. So the scoreboard shows not the real remaining tickets. As a "fix" of this I found this on steam (Steam-Source) but I didn't manage to do this. Can someone help me fixing the bug for the scoreboard I found? Or is someone able to script a scoreboard like the one in Rainbow Six? Thank you very much for your help!
  8. Hello everyone. I could use some help because I really don't know what might be the problem. I'm editing a MP-Mission with a respawn-module for Blufor and one for Opfor (Settings - Typ: Infantry, Side: Opfor/Blufor, Show to: Only the side). I've also placed a respawn-ticket-module set to five for Blufor and Opfor. At least I connected both respawn-modules with the ticket-module. So. What works fine is the ticket system. After more than five deaths the mission ends. But that's not the problem. In the multiplayer settings I set "Respawn on Custom Position" with the settings 'show respawn counter' and 'subtract tickets upon death'. I also activated the scoreboard, the manual respawn and a respawn delay of 10 seconds. So actually I expect the following to happen: After you get killed you see the scoreboard for ten seconds. After this countdown you will automatically spawn at your (Blufor or Opfor) respawn. What really happens: Opfor is spawning at his point of death while Bluefor is mostly spawning at the respawn point but not always. I was testing this with an Opfor and an Blufor Assault Rifleman playing on both sides but also with a friend who was playing the other side. What do I fail to see? I would really appreciate if someone could help you. Thank you!
  9. TypeSqf Editor 1.08 by Engima Overview The TypeSqf Editor is a script editor for Arma 3. The most important features are: Syntax Highlighting Syntax Checking Auto Completion Folding Object Oriented Scripting (SQX Syntax) CPack Service (like nuGets in Visual Studio) Description The TypeSqf editor is a developer's tool for scripting in Arma 3. Besides using it to write SQF code with syntax highlighting and auto completion, it analyzes your syntax in real time, alerting you if something is erroneous or suspicious. Object Oriented Scripting The editor comes with an optional extended functionality for SQF syntax, called SQX. In a convenient way, and with as many similarities to SQF as possible, SQX enables object oriented scripting (classes) and adds type handling. Classes may contain a constructor, fields, properties and methods. It works because the .sqx files are compiled into corresponding .sqf files before executed by Arma 3. The CPack Service The CPack Service is a service for sharing content with other script editors as well as to organize your own code. In short a CPack is a content bundle (a .zip file) that you upload and label with a name and a version number. Then they are very easy for anyone to download and include in any mission. Download Download at Official TypeSqf Site. Installation / Usage 1. Open the zip file and run the installer. 2. Run TypeSqf from the start menu. (See the video "Getting started with the TypeSqf editor" below.) Code Code is shared at Github: https://github.com/XEngima/Apps-TypeSqfEdit Media: Getting started with the TypeSqf editor. Creating and using an SQX Crowd class in Arma 3 using the TypeSqf Editor. More videos: TypeSqf Features Part 1 - Getting started with TypeSqf TypeSqf Features Part 2 - Main Features TypeSqf Features Part 3 - The Power Of CPacks TypeSqf Features Part 4 - The CPack Console There's more. You can find all videos here. Feedback and error reports I will gladly receive any feedback. Please tell me good things, bad things, errors, whishes etc. Please use this forum thread for comments, but email all error reports to typesqf@outlook.com. Thanks to Josef - The main man on auto completion for script commands and the search and replace dialog. Changelog Version 1.08 -Added bracked highlighting (thanks Josef!) -Added context menu for undo, redo, cut, copy, paste and replace (thanks GHSid!) -Support for multiline strings in SQF. -Fixed: The CPack Manager sometimes added non existing file nodes in the project tree view. -General fixes and improvements. -SQX: Support for multiline strings. Version 1.07 -It is now possible to rename files and folders in the project tree view. -Fixed: Addressed some stability issues (thanks Josef!). -Minor fixes and improvements. Version 1.06 -Added support for all script commands up until Arma 3 version 2.00 (ScriptCommands.xml). -Fixed: General stability issues in CPack manager. -Fixed: Settings file not updated with new project when a new project is opened. -SQX: Updated the SQF/SQX analyzer and compiler to version 1.06. -SQX: Fixed: Analyze of multiple class inheritence levels sometimes resulted in faulty error messages. Version 1.05 -Improved the syntax highlighting. -Fixed: Editor crasching when analyzing files that do not belong to current project. -Fixed: Intellisense sometimes contained multiple identical private variables. -SQX: Fixed: Analyzer does not forget about file content in files that are being removed. Version 1.04 -Added menu item "Rebuild project" to perform a full reset, reanalyze and build of the project. -Added support for all script commands up until Arma 3 version 1.98 (into ScriptCommands.xml). -Made the project root node expanded from start when opening a project. -General improvements. -SQF: Now possible to use "#" instead of "select" when selecting from a list (allowed in Arma 3 since version 1.82). -SQF: Now possible to have empty string literals in params. -SQX: Refactor of SQF/SQX analyzer and compiler (speeded up the build times a lot). -SQX: Now possible to declare typed variables on a single assignement line (private Scalar _number = 0). -SQX: Now possible to declare typed variables using new SQX keyword 'var' (var _number = 0). Version 1.03 -Added intellisense when using keyword "override" in a sub class. -Updated analyzer and SQX compiler to version 1.03. -SQX: Fixed: Strange behavior regarding negation symbol (e.g. "return -1;"). -SQX: Fixed: No warning when sub class tries to override a method that does not exist in base class. -Fixed: Help menu link to SQX forum not working. Version 1.02 -Added support for all script commands up until Arma 3 version 1.96 (into ScriptCommands.xml). -Added status bar that shows replaced occurrences on the replace dialog (thanks Josef!). Version 1.01 -Fixed: Crasch when performing search and replace in text selection (thanks Josef!) -Updated analyzer and SQX compiler to version 1.01. -SQX: Added checks for when a sub class is missing call to explicit base constructor. Version 1.0 -Updated analyzer and SQX compiler to version 1.0. -SQX: Fixed: Debug logging in implicit constructors missing. -SQX: Fixed: Error when defining an interface with the same name as a class. -SQX: Added error message explaining that type Number that has changed to Scalar. Version 0.70 -Added search and replace functionality. (Big thanks to Josef!) Version 0.69 -Added support for all script commands up until Arma 3 version 1.96 (into ScriptCommands.xml). -Updated dependency to .NET to 4.6.2. Requirements Microsoft Windows. Other releases The SQX Script Language (Object Oriented SQF Scripting) TvT/PvP Campaign Framework (TvTCF) Campaign - Operation Shoe Lace Engima's Traffic Engima's Civilians Engima's Simple Tasks
  10. I have a kill notification script that displays kill type HUD messages (Enemy Killed, Headshot, Long Range Kill, Point Blank Kill, Explosive Kill, Friendly Kill & Suicide), score values & adjusts player rating based on the kill types. The script works with units placed in the editor but I'm struggling to make it work with AI units spawned & respawned using JEBUS, which I think recreates the units placed in the editor. The part which doesn't work is the HitPart Event Handler I'm using to detect explosive kills. I'm guessing 'allUnits' doesn't apply to the units created by JEBUS. Kill_Type.sqf {_x addEventHandler ["HitPart", { (_this select 0) params ["_target", "_shooter", "_projectile", "_position", "_velocity", "_selection", "_ammo", "_vector", "_radius", "_surfaceType", "_isDirect"]; if (_target isKindOf "CAManBase") then { if (!isPlayer _target) then { if (isPlayer _shooter) then { if (_isDirect == true) then { killType = "HEADSHOT "; } else { if (_isDirect == false) then { killType = "EXPLOSIVE KILL "; }; }; }; }; }; }];} forEach allUnits; Other script that calls this script: Kill_Reward.sqf player addEventHandler ["Handlescore", {false}]; execVM "Kill_Reward\Kill_Type.sqf"; killMessage = { _messages = _this; _ratingScore = 0; _messageContent = "<t align='right' size='1.25'>"; { _scoreName = _x select 0; _ratingScore = _ratingScore + 200; _messageContent = _messageContent + format ["<t font='PuristaSemibold'>%1</t>%2<br/>", _scoreName]; } forEach _messages; _messageContent = _messageContent + "</t>"; if (_ratingScore >= 0) then { _messageContent = _messageContent + (format ["<t align='right' color='#ffff00' font='PuristaBold' size='1.4'>+%1</t>", _ratingScore]); }; [ parseText _messageContent, [safezoneX, safezoneY + safeZoneH * 0.55, safezoneW * 0.62, safeZoneH * 0.57], nil, 1, 0.7, 0 ] spawn BIS_fnc_textTiles;}; headshotKillMessage = { _messages = _this; _ratingScore = 0; _messageContent = "<t align='right' size='1.25'>"; { _scoreName = _x select 0; _ratingScore = _ratingScore + 250; _messageContent = _messageContent + format ["<t font='PuristaSemibold'>%1</t>%2<br/>", _scoreName]; } forEach _messages; _messageContent = _messageContent + "</t>"; if (_ratingScore >= 0) then { _messageContent = _messageContent + (format ["<t align='right' color='#ffff00' font='PuristaBold' size='1.4'>+%1</t>", _ratingScore]); }; [ parseText _messageContent, [safezoneX, safezoneY + safeZoneH * 0.55, safezoneW * 0.62, safeZoneH * 0.57], nil, 1, 0.7, 0 ] spawn BIS_fnc_textTiles;}; LRheadshotKillMessage = { _messages = _this; _ratingScore = 0; _messageContent = "<t align='right' size='1.25'>"; { _scoreName = _x select 0; _ratingScore = _ratingScore + 300; _messageContent = _messageContent + format ["<t font='PuristaSemibold'>%1</t>%2<br/>", _scoreName]; } forEach _messages; _messageContent = _messageContent + "</t>"; if (_ratingScore >= 0) then { _messageContent = _messageContent + (format ["<t align='right' color='#ffff00' font='PuristaBold' size='1.4'>+%1</t>", _ratingScore]); }; [ parseText _messageContent, [safezoneX, safezoneY + safeZoneH * 0.55, safezoneW * 0.62, safeZoneH * 0.57], nil, 1, 0.7, 0 ] spawn BIS_fnc_textTiles;}; CQBheadshotKillMessage = { _messages = _this; _ratingScore = 0; _messageContent = "<t align='right' size='1.25'>"; { _scoreName = _x select 0; _ratingScore = _ratingScore + 275; _messageContent = _messageContent + format ["<t font='PuristaSemibold'>%1</t>%2<br/>", _scoreName]; } forEach _messages; _messageContent = _messageContent + "</t>"; if (_ratingScore >= 0) then { _messageContent = _messageContent + (format ["<t align='right' color='#ffff00' font='PuristaBold' size='1.4'>+%1</t>", _ratingScore]); }; [ parseText _messageContent, [safezoneX, safezoneY + safeZoneH * 0.55, safezoneW * 0.62, safeZoneH * 0.57], nil, 1, 0.7, 0 ] spawn BIS_fnc_textTiles;}; longRangeMessage = { _messages = _this; _ratingScore = 0; _messageContent = "<t align='right' size='1.25'>"; { _scoreName = _x select 0; _ratingScore = _ratingScore + 250; _messageContent = _messageContent + format ["<t font='PuristaSemibold'>%1</t>%2<br/>", _scoreName]; } forEach _messages; _messageContent = _messageContent + "</t>"; if (_ratingScore >= 0) then { _messageContent = _messageContent + (format ["<t align='right' color='#ffff00' font='PuristaBold' size='1.4'>+%1</t>", _ratingScore]); }; [ parseText _messageContent, [safezoneX, safezoneY + safeZoneH * 0.55, safezoneW * 0.62, safeZoneH * 0.57], nil, 1, 0.7, 0 ] spawn BIS_fnc_textTiles;}; CQBMessage = { _messages = _this; _ratingScore = 0; _messageContent = "<t align='right' size='1.25'>"; { _scoreName = _x select 0; _ratingScore = _ratingScore + 225; _messageContent = _messageContent + format ["<t font='PuristaSemibold'>%1</t>%2<br/>", _scoreName]; } forEach _messages; _messageContent = _messageContent + "</t>"; if (_ratingScore >= 0) then { _messageContent = _messageContent + (format ["<t align='right' color='#ffff00' font='PuristaBold' size='1.4'>+%1</t>", _ratingScore]); }; [ parseText _messageContent, [safezoneX, safezoneY + safeZoneH * 0.55, safezoneW * 0.62, safeZoneH * 0.57], nil, 1, 0.7, 0 ] spawn BIS_fnc_textTiles;}; addMissionEventHandler ["EntityKilled", { params ["_killed", "_killer"]; _headDamage = _killed getHitPointDamage "HitHead"; _distance = _killer distance _killed; _minDistance = 100; _cqbDistance = 2; if (isNull _instigator) then { _instigator = _killer }; if (_killed isKindOf "CAManBase" && {((side group _killed) == east)}) then { if (isPlayer _killer) then { if (_distance >= _minDistance && ({_headDamage >= 1;})) then { player addPlayerScores [1, 0, 0, 0, 0]; player addRating 100; [[killType, _ratingScore]] call LRheadshotKillMessage; } else { if (_distance <= _cqbDistance && ({_headDamage >= 1;})) then { player addPlayerScores [1, 0, 0, 0, 0]; player addRating 75; [[killType, _ratingScore]] call CQBheadshotKillMessage; } else { player addPlayerScores [1, 0, 0, 0, 0]; player addRating 50; [[killType, _ratingScore]] call headshotKillMessage; }; if (isPlayer _killer && ({_headDamage < 1;})) then { if (_distance >= _minDistance) then { player addPlayerScores [1, 0, 0, 0, 0]; player addRating 50; [["LONG RANGE KILL ", _ratingScore]] call longRangeMessage; } else { if (_distance <= _cqbDistance) then { player addPlayerScores [1, 0, 0, 0, 0]; player addRating 25; [["POINT BLANK KILL ", _ratingScore]] call CQBMessage; } else { player addPlayerScores [1, 0, 0, 0, 0]; [["ENEMY KILLED ", _ratingScore]] call killMessage; }; }; }; }; }; }; }]; friendlyKillMessage = { _messages = _this; _ratingScore = 0; _messageContent = "<t align='right' size='1.25'>"; { _scoreName = _x select 0; _ratingScore = _ratingScore + 1000; _messageContent = _messageContent + format ["<t font='PuristaSemibold'>%1</t>%2<br/>", toUpper _scoreName]; } forEach _messages; _messageContent = _messageContent + "</t>"; if (_ratingScore >= 0) then { _messageContent = _messageContent + (format ["<t align='right' color='#ea0000' font='PuristaBold' size='1.4'>-%1</t>", _ratingScore]); }; [ parseText _messageContent, [safezoneX, safezoneY + safeZoneH * 0.55, safezoneW * 0.62, safeZoneH * 0.57], nil, 1, 0.7, 0 ] spawn BIS_fnc_textTiles;}; addMissionEventHandler ["EntityKilled", { params ["_killed", "_killer"]; if (isNull _instigator) then {_instigator = _killer}; // player driven vehicle road kill if (_killed isKindOf "CAManBase" && {((side group _killed) == west)}) then { if (!isPlayer _killed) then { if (isPlayer _killer) then { player addPlayerScores [0, 0, 0, 0, 0]; [["FRIENDLY KILLED ", _ratingScore]] call friendlyKillMessage; }; }; }; }]; suicideMessage = { _messages = _this; _ratingScore = 0; _messageContent = "<t align='right' size='1.25'>"; { _scoreName = _x select 0; _ratingScore = _ratingScore - 200; _messageContent = _messageContent + format ["<t font='PuristaSemibold'>%1</t>%2<br/>", toUpper _scoreName]; } forEach _messages; _messageContent = _messageContent + "</t>"; if (_ratingScore >= 0) then { _messageContent = _messageContent + (format ["<t align='right' color='#ffff00' font='PuristaBold' size='1.4'>+%1</t>", _ratingScore]); }; [ parseText _messageContent, [safezoneX, safezoneY + safeZoneH * 0.55, safezoneW * 0.62, safeZoneH * 0.57], nil, 1, 0.7, 0 ] spawn BIS_fnc_textTiles;}; sleep 0.5; addMissionEventHandler ["EntityKilled", { params ["_killed", "_killer"]; if (isNull _instigator) then {_instigator = _killer}; // player driven vehicle road kill if (_killed isKindOf "CAManBase" && {(isPlayer _killed)} && {(isPlayer _killer)}) then { player addPlayerScores [0, 0, 0, 0, 0]; [["SUICIDE ", _ratingScore]] call suicideMessage; }; }]; If anyone can help me with this probably very simple issue, I'll send you a cookie.
  11. Here is my Simple Auto-Gate or SAG 😉 The script is meant as a self contained system for creating automatic gate opening of bar-gates. The script works with pre-placed bar-gates, like on some of the CUP based maps, but will work just as well with bar-gates placed in the Eden editor. It has been tested with both the ArmA 3 standard bar-gates and the CUP ones. Just place a trigger using the editor so that the centre of the trigger is close to the bar-gate you want to control. Set the 'Name' of the trigger and set its size and orientation as required, the rest of the trigger parameters will be set by the script. Create a folder called 'Scripts' in your mission directory and copy the 'sPK_autoGateInit.sqf' file to the directory. You will need an 'init.sqf' file in the root directory of your mission with the following in it: This example sets the system for GATE_NORTH and GATE_SOUTH triggers to control the vanilla bar-gate. if ( isServer ) then { [ [ GATE_NORTH, "Land_BarGate_F" ], [ GATE_SOUTH, "Land_RoadBarrier_01_F" ] // No comma on the last entry. ] call compileScript["Scripts\sPK_autoGateInit.sqf", true]; // true - compileFinal. }; The if ( isServer ) block is to stop warnigns about running it on a player client when connecting to a dedicated server. The compileScript is a replacement for compile preprocessorFile[LineNumbers] command. Job done. The system has an additional feature where you can call the script without the bar-gate class name. In this case it will display the class of the object nearest the trigger in a 'hint' and in the report file. Search for "GateClass:" in the report file: [ [ GATE_NORTH ], [ GATE_SOUTH ] ] call compileScript["Scripts\sPK_autoGateInit.sqf", true]; The output will look like: 10:35:14 "GateClass:GATE_NORTH:Land_BarGate_F" 10:35:14 "GateClass:GATE_SOUTH:Land_RoadBarrier_01_F" Enjoy, S For the record, gate classes: Land_BarGate_F – Vanilla bar-gate class. Land_RoadBarrier_01_F – Metal frame bar-gate from Contact DLC. Land_Zavora – CUP bar-gate class. Land_zavora_2 – CUP bar-gate class, fractionally bigger and taller. This is a link to a simple VR mission demonstration: https://1drv.ms/u/s!AnX2_vGoXf5F911_Kg9MmzpPJQb8?e=ChpdqP sPK_autoGateInit.sqf:
  12. I edited FAR revive script in GREUH Liberation so AI can revive players and be reivived by players. but a problem happed with players reviving another player this is what is executed on the unit revivng another: FAR_HandleStabilize = { params ["_target", "_healer"]; if (alive _target) then { _healer playMove "AinvPknlMstpSlayWrflDnon_medic"; //if (!("Medikit" in (items _healer)) ) then { //player removeItem "FirstAidKit"; //}; _target setVariable ["FAR_isStabilized", 1, true]; sleep 6; }; }; this is what is excuted on the unit injured: while { !isNull _unit && alive _unit && _unit getVariable "FAR_isUnconscious" == 1 && _unit getVariable "FAR_isStabilized" == 0 && (FAR_BleedOut <= 0 || time < _bleedOut) } do { hintSilent format[localize "STR_BLEEDOUT_MESSAGE" + "\n\n%2", round (_bleedOut - time), call FAR_CheckFriendlies]; public_bleedout_message = format [localize "STR_BLEEDOUT_MESSAGE", round (_bleedOut - time)]; public_bleedout_timer = round (_bleedOut - time); sleep 0.5; }; when a unit stabilize another unit, "FAR_isStabilized" variable of the injured unit is set to 1 so the while loop has to terminate these script run without any problem when AI revive players and AI are revived by players but don't work when a player is reviving another player. when a player tries to stabilize another player, it does the action "AinvPknlMstpSlayWrflDnon_medic" but that while loop doesn't finish so I think there is something wrong with _target setVariable ["FAR_isStabilized", 1, true];in the FAR_HandleStabilize function and _unit getVariable "FAR_isStabilized" == 0 in condition of the while loop full codes: https://github.com/lululala22/JLD_Liberation_Dev/tree/master/far_revive
  13. Hello, i am trying to make script for restricting view on my dedicated server. What i trying to make - 1) When player on foot inside trigger he can use 1st and 3rd person view, but when outside trigger he can only use 1st person 2) When player inside any vehicle ( ground / air / sea ) he can use any type of view ( 1-3 ) and regardless trigger effect from 1st point of topic I am using thats script in my initPlayerLocal.sqf It works correct for my 1st point of topic, but 2nd dont work. Can some one help me pls. P.S. Sry for bad eng.
  14. I would like to do this array objArr = ["_object0","_object1","_object2"]; {_X enableSimulation false;} forEach objArr; at the end of a code which is used to spawn shit load of objects. Is there a way to make this array go from _object0 to _object99 for example, without typing out every single one of them? if not, is there any other way to solve this issue? Situation: I have an sqf code from Zeus Enhanced to spawn shit load of objects, I want to add a code at the end of it to make them all have disabled simulations.
  15. Good day everyone! Week ago i started learning SQF and made some little experience to build light dialogs. So i decided to add image in my dialog but anything i found at Bohemia forum and Wiki is how to add image to hints. I'll be glad if someone can explain me how can i do this with .hpp language. Thanks in advance!
  16. One day I decided to test my... "teaching skills" (not sure, if I have any though, beware...) and created a scripting tutorial for absolute beginners. There are some good sources in English, but seems hard to find something like that in Polish, hence Polish and English editions. Here it is: Polish: https://skryptysqf.blogspot.com English: https://sqfscripts.blogspot.com It's short, 4 chapters, still I tried to cover important basics of scripting craft (my way of practicing it at least). The main goal is to lower as much, as possible the entry treshold for those, who want to begin the adventure with Arma scripting, but have no clue, how to. Therefore this tutorial tries to provide also informations usually omitted, assumed as known/obvious. From my experience - nothing is obvious at the start, such assumptions, as I recall, was pobably the biggest obstacle for me. It is written from non-programmer perspective, without any programming experience assumed in the audience (I hope). Chapter 1 (PL/EN) explains preliminary topics like the role of the scripts in general, the sources of them, the basic way to use them in the game. Chapter 2 (PL/EN) focuses on the learning metodology, knowledge sources, basic terms and concepts required during the work. Chapter 3 (PL/EN) describes in detail a complete process of writing working SQF script example, from the bare concept description through the algorithm synopsis, collecting required commands, line-by-line walkthrough, syntax pitfalls... to the trial run footage. Chapter 4 (PL/EN) is all about the art of debugging (how I do it).
  17. Hi everyone i have an issue making a simple money script / function in my mission. I'm finding the syntax of SQF and SQS difficult to understand or comprehend in comparison to languages like java and C#. I used this sample below as a baseline but the guy who responded didn't tell the OP of that forum how edit the value of your "Bank" right now I've created a object of money with an add action that adds money to my Currency variable, but now i want to extend that to the death of 'X' unit and i came up with this. To some this code might be laughable but i don't understand why this doesn't work when executed via a units init. Any input is appreciated. _man = _this select 0; while {alive _this} do { if (!alive _this) then { //GoldCurrency = GoldCurrency + 1000; hint"DEAD"; }; }; Many Thanks -Irish
  18. When a player is in the driving position in a vehicle, it's easy to find out that he is the driver: // assuming player is in driving seat assignedVehicleRole player; // returns "driver" However, when you're the commander or gunner you get an array that's the "turret path" of what turret you're in: // assuming player is in commanding turret (assignedVehicleRole player) select 1; // returns [0,0] often, but the commander turret can vary depending on vehicle, especially modded vehicles If the commanding turret were always [0,0] I could use that to detect if the player is in the commanding position. However sometimes it's [0,1], and on modded vehicles it can [5] or [6]. I thought that (allTurrets [_this, true]) select 1// [[0],[0,0]] might have been the answer. That the last entry in the array it returns was always the commanding turret. This is not the case, again, often not on modded vehicles. Basically I'm about to go ahead and hard code every single vehicle name in my script with a reference to which turret path is the commanding position. However, before I do that, is there a cleverer way to find out if the player is in the commanding position? The moveInCommander command always moves the player to the commanding position, so there must be a way to query the vehicle and for it to give the commanding position / commanding turret path, right?
  19. Greetings esteemed Arma scripters! I humbly come to you with a problem I'm hoping someone can solve. So, I'm working on a mod for my unit to have individual supply boxes for each unit member. The objects are available in the mission editor and are also Zeus placeable. That I've got without problems. The hangup comes in when someone crashes. When they go back to their supply box the things they previously took out are gone, because they crashed. My solution is to add "reset" addAction, which is a sqf to clear the box and then addItemCargoGlobal to refill the box. These boxes are also not local to the mission file, but are created with a pbo in the modpack. To sucessfully code it into the config.cpp I use this code in the box's cfgVehicles class: class EventHandlers: EventHandlers { init = "(_this select 0) addAction [""<t color='#ffffff'>Reset</t>"", ""\Gearboxes\scripts\frostbox.sqf"",[],1,false,true,"""",""_this distance _target < 3""];"; }; In the header of the sqf I use the following (with an example item added): if (! isServer) exitWith {}; _crate = _this select 0; clearItemCargoGlobal _crate; _crate additemcargoglobal ["acc_flashlight_pistol", 1]; All of this works as intended in local and local multiplayer. The config adds the addAction to the box and the script removes all of the items and them reloads the desired items. The issue is the box doesn't clear or reload on a dedicated server. The addAction is present but there is zero effect. The purpose of this project is to use it on a dedicated server, so it's a problem that needs solving. If I change "_this select 0" in "_crate = _this select 0;" to a variable assigned to the box then it works fine. Example "_crate = frostbox;" So I think that's the bit of code I need to change to get this to work without having to assign variables to all of the boxes and to align the sqf's to match. Anyone have an idea?
  20. 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!
  21. SQF-VM The SQF emulator A fully working, open-source Virtual Machine for the scripting language of the ArmA Games. Links GitHub Repository Discord Invite Discord Bot Authorization Panel (for adding to your server) FAQ How to use this thing? To start using the SQF-VM, you just have to double click the executable. What can it be used for (examples)? Most obvious example is: you are using a laptop while traveling and wanna test some SQF code. More advanced users might even use this for unit-testing their code. Are there command line parameters available to eg. use this for unit-testing? Yes, there are. To get all, start the tool via command line and the parameter -? How to use the debug interface? There is documentation available on the github page inside of Documentation/Debugger. What is supported? To check what currently is supported and what is not, you can use the `help__ "name"` command. If it outputs proper descriptions, the command is fully supported. If it does not, then the command is not yet implemented sadly. I found a bug, what shall i do now? Try to narrow down the problem as much as you can and then head over to the github issues section to report the bug. I got a question that is not answered in here, what to do? Ask your question in this thread or in the discord channel and i might add it to this list 🙂 Downloads All releases can also be found inside of the releases section of the github repository. 1.0-RC1 Alpha 0.1.4 Alpha 0.1.3 Alpha 0.1.2 Alpha 0.1.1 Alpha 0.1.0 Changelog 1.0-RC1 -/-
  22. FILE PLS 1.01 (Dropbox, APL-SA license) INTRODUCTION Lately had fun with some procedural maze/labyrinth algorithms, let others have fun too! PLS script takes as input a position, dimensions, wall segment class and used algorithm. Four algorithms implemented: Randomized Kruskal's: fast, somewhat biased towards short dead ends ("kruskal"). Randomized Prim's: also fast and biased towards short dead ends ("prim"). Wilson's: slow, but unbiased/uniform results ("wilson"). Randomized Pseudo Prim's: Prim's with distinctive bias towards long open diagnonals due to additional condition not present in the original algorithm ("pseudoprim"). WIKI article CODE Initialization: [(player modelToWorld [0,10,0]),120,120,"Land_PillboxWall_01_6m_round_F","kruskal"] call RYD_LAB_ConfusedMinotaur; //[Bottom left corner position, x dimension (final dimension will be matched up to wall segment's bounding box real dimension), y dimension (ditto), wall segment class, used algorithm ("kruskal", "prim", "pseudoprim" or "wilson")] Source:
  23. Hello, Every week my 10 friends and I play the Antistasi Scenario on a custom server of mine. We unfortuantly playing the wrong version but are too far along to start over. what im wanting to do is edit the Arsenal (Virtual Armory) and remove some specific weapons from it, Ive got the variable name of the crate but every time I run the code, nothing is happening, Ive searched High and Low and can't find a solution, even tried the examples off the wiki. [ caja, ["arifle_MXM_F"], true ] call BIS_fnc_removeVirtualItemCargo; I have 4 of those rifles in the Aresnal, I want them all gone. But Im running that above script and its not working. I know it's the correct variable name because I can move it around with that variable name. some help would be very appreciated 🙂
  24. Hey there, I'm trying to get an object to provide a whitelisted player with the option to purchase ammunition once in close proximity. So far, I've written the following into the object's init: if (getPlayerUID player in _UIDList) then { this addAction ["Buy STANAG mag $100","purchasestanag.sqf"]}; The mentioned _UIDList simply reads as follows under init.sqf: _UIDList=["76561198090900291"]; Is there something crucial I'm forgetting to include? I'm very fresh to coding, so do excuse my ignorance. Any pointers are much appreciated.
  25. Arma IntelliJ Plugin Current version: 2.0.2 (Released June 21, 2018) Index 1. Introduction 2. Features 3. Feature Spotlight 4. Planned Features 5. Download and Installation 6. Source Code 7. Donate 8. Wiki, Bug Reporting, Discord 1. Introduction Arma Intellij Plugin is a plugin developed by K-Town (me) for Intellij IDEA. Intellij IDEA is a Java IDE developed by Jetbrains and offers many amazing API's for creating support for custom languages to be used inside the Intellij editor. Intellij is free, but I recommend reading the license agreement regardless. 2. Features Arma Intellij Plugin has many features with more on the way. The plugin currently has: Syntax checking for Header files (*.h, *.hh, *.sqm, *.ext, *.hpp) and SQF files Description.ext Function lookup (See feature Spotlight a.) Documentation 'tags' which can link to command wiki documentation without opening the browser. Finding usages of variables and commands Syntax highlighting Rename refactoring for functions and variables Auto-completion (ctrl + space) Wiki documentation on commands and BIS functions via ctrl+Q Complete type checking (including arrays) Full preprocessor support for Header/Config files Partial preprocessor support for SQF Files 3. Feature Spotlight a. Auto-completion (more detail here) b. Syntax Checking c. Documentation Tags - detail here 4. Planned Features Automatic code formatting for SQF and Header Creating new mission files from scratch More code inspecting functionalities Other secret features ;) 5. Download and Installation Download: IntelliJ IDEA: Jetbrains Website Plugin (Optional download. See Install from JetBrains Plugin Repository below): GitHub: https://github.com/kayler-renslow/arma-intellij-plugin/releases JetBrains Plugin Repo: https://plugins.jetbrains.com/idea/plugin/9254-arma-intellij-plugin NOTE: both GitHub and JetBrains Repo include the same .jar files. You only need one plugin jar from one of the repositories to install. Install: To install the plugin, you do one of the following: Install it from disk with the .jar plugin download (see Plugin download above). Step 1: In Settings Dialog, click on "Plugins", click Install plugin from Disk. Step 2: Locate the "Arma Intellij Plugin.jar" (file name may have version info like v1.0.7) Step 3: Click OK button when you located the plugin jar and then Restart IntelliJ IDEA Step 4: You're good to go! Install it from JetBrains Plugin Repository. Step 1: In Settings Dialog, click on "Plugins", click Browse Repositories. Step 2: Search for "Arma Intellij Plugin" Step 3: Click Install and then Restart IntelliJ IDEA Step 4: You're good to go! 6. Source Code This project is open source. The plugin and it's creator (K-Town) aren't affiliated with Jetbrains or Bohemia Interactive. This project (the plugin code) is licensed under the MIT License. You don't need to contact me if you want to create derivatives or publish the project elsewhere. You can download and view the source here: https://github.com/kayler-renslow/arma-intellij-plugin 7. Donate I am accepting donations, but please only donate if you can afford it because I will not give refunds. Donate here. 8. Wiki, Bug Reporting, Discord The Wiki for the plugin is available. If you have been using the plugin already, you may still find something you don't yet know. Also, please report bugs at the Github repo. It's easier to manage than the forums and is specialized towards reporting bugs. You can report bugs here: https://github.com/kayler-renslow/arma-intellij-plugin/issues I have created a Discord server for Arma Dialog Creator and Arma IntelliJ Plugin. Here is the invite (remove the spaces in the link - they are to prevent bots): https://discord.gg/K d u 8 c q e
×