Search the Community
Showing results for tags 'sqf'.
Found 84 results
-
[RELEASE] TypeSqf Editor - [OpenSource]
engima posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
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- 206 replies
-
- 16
-
conversations kbTell not working on players on Dedicated Server
dive155 posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hello! I've ran into a strange issue with the Conversations system. Here is my relevant code: radio.bikb: class Sentences { class Say { text = "%1%2%3%4%5%6%7%8%9%10"; speech[] = {"%1","%2","%3","%4","%5","%6","%7","%8","%9","%10"}; class Arguments {}; }; }; class Arguments{}; class Special{}; startWithVocal[] = {hour}; startWithConsonant[] = {europe, university}; My script: fn_GetTellArrayLocal = { params ["_receiver", "_fileName", "_subtitle"]; _array = [_receiver, "Say", "radio", ["1", {}, _subtitle, [_fileName]], "DIRECT"]; _array }; zeus_indfor kbAddTopic ["Say", "radio.bikb"]; _tellSub = "Cut the bs, Petrovich. You know exactly why we're here."; _tellArr = [Petrovich, "\rs\petro_j2_real.ogg", _tellSub] call fn_GetTellArrayLocal; zeus_indfor kbTell _tellArr; The problem is, on Dedicated Server it only works if zeus_indfor is an AI. It does not work if zeus_indfor is a player. However it always works fine in Singleplayer or Local Multiplayer, even if zeus_indfor is a player. The strange thing is that this code returns true: zeus_indfor kbHasTopic "Say" Is there some special magic that I'm missing when it comes to using kbTell on players on dedicated servers? -
Respawn Expressions Issue(s)
EveryEmpireFalls posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hello! First | The basic premise of what I am attempting to do is two-fold. A) respawn existing vehicles (of different types - i.e. some jets, some helicopters, some ground vehicles), with the same custom pylons - for the jets/helis - set by the pylon/dynamic loadout editor in 3den. This part works fine thus far (see below). And B) apply unlimited ammo on a delay (i.e. it takes 45 seconds for the ammo to restore) to both the original vehicle and its respawned clone. The main trouble I am having is getting unlimited ammo to work with the new, respawned vehicles. Second | A code dump and summary of what is where: The code below is my unlimited ammo expression in the existing F/A-181 (and other vehicles). Ideally, the missiles & bombs refresh on a delay, hence the {sleep 45} segment. This part works perfectly for my purposes. this addEventHandler ["Fired",{[_this select 0,getNumber (configFile/"CfgAmmo"/(_this select 4)/"explosive")] spawn {if (_this select 1==1) then {sleep 45};_this select 0 setVehicleAmmo 1}}]; This code is present in the expression of a Game Logic and synced to all relevant air vehicles. It works perfectly for my purposes; no errors and functions as intended. [this] call { if (!isServer) exitWith {}; params ["_thisObject"]; _vehs = synchronizedObjects _thisObject; _initScript = { params ["_vehicle", ["_pylons", "none"]]; if (typeName _pylons == typeName []) then { private _pylonPaths = (configProperties [configFile >> "CfgVehicles" >> typeOf _vehicle >> "Components" >> "TransportPylonsComponent" >> "Pylons", "isClass _x"]) apply { getArray (_x >> "turret") }; { _vehicle removeWeaponGlobal getText (configFile >> "CfgMagazines" >> _x >> "pylonWeapon") } forEach getPylonMagazines _vehicle; { _vehicle setPylonLoadout [_forEachIndex + 1, _x, true, _pylonPaths select _forEachIndex] } forEach _pylons; }; }; { [_x] call _initScript; } forEach _vehs; [_vehs, _initScript] spawn { params ["_vehs", "_initScript"]; sleep 1; _respawnlist = []; { _respawnlist = _respawnlist + [[_x, position _x, [vectorDir _x, vectorUp _x], getPylonMagazines _x]] } forEach _vehs; while { true } do { sleep 1; { _veh = _x # 0; _respawnpos = _x # 1; _playerdistance = 200; { if (_veh distance _x < _playerdistance) then { _playerdistance = _veh distance _x }; } forEach allPlayers; if (!alive _veh || (_veh distance _respawnpos > 20 && _playerdistance > 20)) then { _vehType = typeOf _veh; [_veh, _respawnlist] spawn { params ["_veh", "_respawnlist"]; deleteVehicleCrew _veh; _veh lock true; _inSpawn = false; waitUntil { sleep 0.5; _inSpawn = false; { _respawnpos = _x # 1; if ((_veh distance _respawnpos) < 30) exitWith { _inSpawn = true; }; } forEach _respawnlist; _inSpawn || ((speed _veh == 0) && (isTouchingGround _veh)); }; if (!_inSpawn) then { sleep 30 }; deleteVehicle _veh; }; sleep 10; _newveh = _vehType createVehicle _respawnpos; _newveh setPos _respawnpos; _newveh setVectorDirAndUp (_x # 2);[_newveh, _x # 3] call _initScript; _respawnlist set [_forEachIndex, [_newveh, _respawnpos, _x # 2, _x # 3]]; }; } forEach _respawnlist; }; }; }; This is the current code present in the "System Specific - Vehicle Respawn" Module expression (not its Init). It does not work at all. params ["_newVeh", "_oldVeh"]; [_newVeh addEventHandler ["Fired", { [_newVeh select 0, getNumber (configFile/"CfgAmmo"/(_newVeh select 4)/"explosive")] spawn { if (_newVeh select 1 >= 0) then { sleep 5 }; _newVeh select 0 setVehicleAmmo 1 } }]] call BIS_fnc_initVehicle; The Vehicle Respawn Module: It throws the no errors upon mission launch and no errors upon vehicle respawn. My friends and I suspect it is not even executing properly. Here are a few screencaps of the 3den editor of the scene in question if it helps you: // Overview of the whole airfield. The Vehicle Respawn Module on the Right by the center of the airfiled is exlusively linked to ground vehicles. It respawns the vehicles fine but without the unlimited ammo. // The test F/A-181. // The Game Logic. // My two primary test subjects (Left is experimental; Right is the control). As you can see, the left F/A-181 is the primary test subject for the Vehicle Respawn Module, as it is synced to both the Vehicle Respawn and the Game Logic. The right F/A-181 (and all other air vehicles) is synced only to the Game Logic. Both jets initially spawn with the proper pylons/dynamic loadouts and unlimited ammo, as expected vis-a-vis the 3den editor settings. Both jets respawn with the proper pylons/dynamic loadouts. Neither jet respawns with unlimited ammo, currently. I feel close to solving this, but I am blind to what I am missing/adding unnecessarily. I have tried numerous other variations with even less luck. I am sure there is some redundancy between the Vehicle Respawn Module and the game logic, and I would appreciate any simplifications there. However, that is a secondary concern. Thanks for reading this far! Hopefully, you can help me and anyone else who wants to do this. -
Hi im triying to setup a waypoint "on-activation"-script for the task to liberate 3 villages. I want it to check when triggered if there is still enemy units in the trigger area. When there are none left its liberated : which means it should add +1 to liberated villages (3 villages in total). But my script doesnt seem to work. Please i need help. Happy New Year btw ! Screenshots : file:///C:/Users/taras/Downloads/script%20help/problem.PNG Condition : !((count (units group thisList) > 0) && {(side _x == east) || (side _x == resistance)} count (units group thisList) > 0) On activation : _taskName = "Liberate Villages"; _villageName = "Pavlokhov"; if (!(taskState [_taskName, _villageName])) then { taskSetState [_taskName, _villageName, true]; _liberatedVillages = 0; { if (taskState [_taskName, _x]) then { _liberatedVillages = _liberatedVillages + 1; }; } forEach ["Pavlokhov", "Novoshny", "Solnevny"]; hint format ["%1 Villages Liberated! Move on.", _liberatedVillages]; };
-
Revive player over distance with pistol
MinervaArts posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hi guys, I'm currently working on a script that will allow a player to shoot another unconscious player and then revive him immediately. I already have the revive system ready, but I haven't found a way to make it so that only the player who was shot is revived. Do you have an idea how I can make it so that the code is only executed on the player who was hit? I have already tried to rebuild a taser script but didn't really get anywhere. Thanks for your help!- 2 replies
-
- event handler
- scripting
-
(and 2 more)
Tagged with:
-
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: Review Video (Thanks to Instant Arma): Documentation: The documentation is available in the mod folder. You can find the online version here. ⚠ If your input method is set to anything other than English in Windows, some input related features (shortcuts, auto-completion of brackets, etc.) might be broken. I'll try to address this issue in future updates. 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+)
- 44 replies
-
- 27
-
mulitplayer scripting Executing holdAction on a dedicated server
Lukas Lee posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hello guys, I have a strange problem with the following script: tsk = format ["tsk%1", random 100]; [allPlayers, tsk, ["Hack the watchtower to get information about the position of the opposing players!", "Watchtower", ""], laptop, "ASSIGNED", 99, true, "download", true] call BIS_fnc_taskCreate; [laptop, "Activate watchtower", "\a3\ui_f\data\igui\cfg\holdactions\holdaction_connect_ca.paa", "\a3\ui_f\data\igui\cfg\holdactions\holdaction_connect_ca.paa", "player distance laptop < 5", "player distance laptop < 3", {num = execVM "watchtower\durring.sqf";}, {}, {nul = execVM "watchtower\gegner_markieren_v3.sqf", nul = execVM "watchtower\sleep.sqf", [tsk, "SUCCEEDED", true] remoteExec ["BIS_fnc_taskSetState", 0, true], sleep 0.1, [tsk, allPlayers, true] remoteExec ["BIS_fnc_deleteTask", 0, true];}, {["Hacking canceled!"] remoteExec ["hintSilent", 0, true], sleep 1; [""] remoteExec ["hintSilent", 0, true], call{playSound "cancel";}, execVM "watchtower\deletion_sound.sqf";}, [], 15, 0, true, false] remoteExec ["bis_fnc_holdactionadd", 0, true]; With the script I add a holdaction function to a laptop. When I start the mission in the Eden editor in singleplayer or multiplayer everything works as it should. The script is executed by the init.sqf and the holdaction function is displayed on the laptop. When I complete it with the spacebar it disappears again as it should. However, when I host the mission on my dedicated Arma server, the holdaction appears twice for some reason. Once with text and once without. Both run the same code when I use it and then disappear, but reappearing twice when I run the script again. Can any of you help me further? And tell me why this happens? Thanks- 10 replies
-
- holdaction
- arma3
-
(and 4 more)
Tagged with:
-
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. ❤️
- 11 replies
-
- 1
-
- spawning
- headless client
-
(and 3 more)
Tagged with:
-
Server Transfer System v1.0.3 The Server Transfer System (STS for short) is an addon that allows for the transferring of players from one server to another. STS is based off the code KillZone_Kid shared with his final post here. Expanding on KillZone_Kid's work, STS hides the transfer behind an overlay, making a nearly-flawless transition from one server to another. The transfer overlay will eventually allow customization, but currently is simply a black screen with "Please Wait" up top. This addon does not handle the saving, storing, nor transferring of character data. That will need to be handled by the end user. To transfer a client, the server must remoteExec STS_fnc_Transfer. Here is an example: //TIMEOUT = Transfer timeout (time till it gives up on joining the server in seconds) //AUTOJOIN = Automatically load into servers (mission must have joinUnassigned = false; in description.ext) ["IP","PORT",TIMEOUT,"PASSWORD",AUTOJOIN] remoteExec ["STS_fnc_Transfer",-2]; LICENSING + BI Monetization Rights DOWNLOAD AVAILABLE ON STEAM WORKSHOP CHANGE LOG v1.0.3 Now packed and signed with pboProject. Added: Overlay between transfers Bug: You can NOT transfer to the same server you are connected to. Bug: Transfering to a server without -autoinit will lock the game up. v1.0.2 Tweaked: Transfer script broken down into stages Added: Transfer completed script Added: Transfer failed script Fixed: Bug causing players to autoload into all future servers after Transfer is used. Bug: You can NOT transfer to the same server you are connected to. v1.0.1 Added: Autojoin Parameter ( Automatically loads the player into the server ) ( Server Must Have joinUnassigned = false; in description.ext ) Added: CfgSTS Config for managing code that needs to run on display startup ( This is safe to use with other mods ) v1.0.0 - Original Publish
- 16 replies
-
- 12
-
[TUTORIAL, PL/EN] SQF scripting for absolute beginners
Rydygier posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
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).- 10 replies
-
- 12
-
[SOLVED] Vehicle Object to Button Action
AaronZockt posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hello there! I'm trying to pass a vehicle Object to a button action. On vehicles with variable names my current version works perfectly fine, but on vehicles without variable name it isn't... So do you guys have any ideas on how to pass the _vehicle variable to the button? // My current Version buttonSetAction [_idc, format ["player moveInDriver %1;", _vehicle]];- 12 replies
-
Pretty sure I'm stepping through a basic question but, really, I've TRIED hard all this afternoon to find out on my own how to make the forEach understand the array content are trigger variable names already dropped in place via Eden Editor. myTriggersVarNames = [ "myTrg1", "myTrg2", "myTrg3" ]; while {true} do { // Doesn't work: { if (player inArea _x) then { systemChat "Player inside the trigger"; }; } forEach myTriggersVarNames; // Working fine: /* if (player inArea myTrg1) then { systemChat "Player inside the trigger" }; */ sleep 3; }
- 4 replies
-
- triggervarname
- foreach
-
(and 4 more)
Tagged with:
-
Init not working in multiplayer
Jumpinforfred posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hi, i'm working on a mission and i have my init.sqf that seems to crash/stop on the client side if i use waituntil {scriptdone _a} at line 17 (just after the execVM). Single player and host don't have this issue. I'm stuck using the sleep command for it to work but i dont like it since the script that's running before is for a conversations which I haven't quite finished yet so I don't know the exact length. I'm attaching the init and the other sqf i've referenced. I know scripting for multiplayer can be finicky cause of desync and packet loss but this is really quite enraging to be fair 😄 Does anyone have a suggestion to how i could use waituntil and still have it work in multiplayer ? Thanks ! Init.Sqf BriefingDone = false; cutText ["", "BLACK FADED", 1]; [0,0,false] spawn BIS_fnc_cinemaBorder; titleText ["ONI HOSTAGE SITUATION", "plain", 1]; a1 playMove "Acts_B_M03_briefing"; sleep 3; cutText ["", "BLACK in", 1]; _A = execVM "conversation1.sqf"; sleep 28; [1,1,false] spawn BIS_fnc_cinemaBorder; titleCut ["", "BLACK out", 1]; sleep 8; BriefingDone = true; a1 switchMove "amovpercmstpslowwrfldnon"; sleep 8; titleCut ["", "BLACK IN", 1]; conversation1 : player KbAddTopic ["briefing","texts.bikb","",""]; a1 KbAddTopic ["briefing","texts.bikb","",""]; a2 KbAddTopic ["briefing","texts.bikb","",""]; a1 KbTell [player,"briefing","ONI1brief"]; waitUntil { a1 KbWasSaid [player,"briefing","ONI1brief",3]; / }; a2 KbTell [player,"briefing","ONI2brief"]; waitUntil { a2 KbWasSaid [player,"briefing","ONI2brief",3]; }; a1 KbTell [player,"briefing","ONI1brief1"]; sleep 2; -
Issues Calling a SQF from a RemoteExcec
Captinlarry posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Im having issues calling a Sqf through a simple radio trigger using a RemoteExcec call{playsound "JediDown";}; remoteExec ["Scripts\Start.sqf", 2]; The Trigger in Question Bane of my existence Path Scripts\Start List of SQFs Also having some issues with Addactions that activate SQFs. call{this addaction [ "Disable Security Lockdown", { "StarLock.sqf" remoteExec ["execVM", 2];}];} I was Using this ^^ but my Mod guys tell me that will call on every machine, kill frames and crash the server. Any and all help would be apperciated- 4 replies
-
- sqf
- remoteexcec
-
(and 2 more)
Tagged with:
-
Looking for developer / VBS Wildfire project / Job offer
CheyenneAH56 posted a topic in ARMA 3 - FIND OR OFFER EDITING
Hello, we are looking for a confirmed developer on *.sqf language to develop a functional prototype from ARMA3 to VBS. This is a wildfire simulator for firefighting training. Our team is French and open to international. Please contact us by private message for more informations. Regards. -
sqf Activating a trigger through an SQF
Captinlarry posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
https://gyazo.com/641c0226cab80eac03d04a2c5fed444b Above is an SS of my notepad. Trying to activate a trigger through my SQF with triggerActivated TurboBomb; Below are the settings of that trigger. https://gyazo.com/ce586674451bc34a810bb59350bb9817 I tried triggering the E2 setDamage [1, true]; from the sqf itself but that didnt seem to work. -
Calling a Function from a Mission File
Captinlarry posted a topic in ARMA 3 - ADDONS - CONFIGS & SCRIPTING
I had a Function wrote by a friend that I need to call in a MP mission file. The Function is saved in the file already in a sub folder called functions and is called fn_MoveObject.sqf How would I go about calling this function in an SQF? Also is there a better way to call an sqf on a MP mission than "call{Ham addaction [ "Check in with the Sergeant", { "HamTalk.sqf" remoteExec ["execVM", 2];}];};" -
Calling an OOG for players near an Object
Captinlarry posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Trying to call a sound file for players near an Object named Clone1 Clone1 say3D ["Incoming", 50, 1, false, 0]; from say3D [sound, maxDistance, pitch, isSpeech, offset] is the syntax used but I still cannot seem to get it to work. I know the pathing to the sound works because I can hear it with a simple trigger command. -
I'm currently editing my trainings mission with some spawning and admin management stuff and i noticed a new error that pops up when the mission is started. params["_player"]; if (!(isNull (findDisplay 999))) exitWith { closeDisplay 2; }; createDialog "adminMenu"; The code is from my openMenu function and the above mentioned error is thrown at line 3. Can't really tell where the issue lies, i already tried to remove the semicolon at "closeDisplay 2" but the result is the same!
-
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.
-
[Release] Timid Icarus - Contour Flight Script
Rydygier posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
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:- 22 replies
-
- 11
-
Eject all players in my Helicopter but me
dernikkl1 posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
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. -
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!
-
Respawn isn't working for Opfor and sometimes for Blufor
DaRealT posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
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! -
Help - Adding Event Handler to units spawned with JEBUS
GaryTheNoTrashCougar posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
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.- 1 reply
-
- eventhandlers
- sqf
-
(and 3 more)
Tagged with: