Jump to content

thy_

Member
  • Content Count

    279
  • Joined

  • Last visited

  • Medals

Everything posted by thy_

  1. The solution was proposed by a respected user in the forum (+3000) so this is why I am using that: to manipulate many different units (including vehicles) working together and executing the same type of movements in the field forever until death. When the function call itself, some small tasks are finished mandatorily in the "old" thread like "cancel a position booking" meanwhile the unit executes the basic movements through the new function thread. You can check this (file on GitHub) function line 4744 where it calls itself in certain specific situations: I got total control over what is been done with each new thread to simulate a loop. My question was about performance.
  2. The PAC actions logic is here: https://docs.google.com/spreadsheets/d/1Z4jw8JdhHcWa0fmUkFGDEoOVuT_dzLkfXVEgRr7VNlI/edit?usp=sharing
  3. 🙂 PAC is a script for ARMA 3 that provides a full solution to control the map limits for players in multiplayer (Coop, PvP, TvT), preventing players from leaving the mission area. Creation concept: to be super easy to implement and customize, compatible with any mainstream mod, and functional for all types of servers: coop missions, PvP, and TvT. How to install / Documentation: https://github.com/aldolammel/Arma-3-Playable-Area-Control-Script/blob/main/_PAC_Script_Documentation.pdf What to expect from PAC script: No dependencies from other mods or scripts; PAC functions are in server's side (run once), but the checking (looping) is on the client's side; Easy installation: the playable area is defined by one named trigger added on the Eden Editor; The editor has the option to allow or not air vehicles (including drones and parachuters) to be tolerated when outside the playable area and on air; The editor has the option to allow or not minimum speed restriction if there's air-tolerance out of the playable area; The editor has the option to allow or not to notify the player about rules if they break some; Full documentation available. Video demo (old): Check the file above on GitHub. Check this data frame. Dependencies: None 🙃 Download: From Github: https://github.com/aldolammel/Arma-3-Playable-Area-Control-Script From Steam Workshop (no respawn): https://steamcommunity.com/sharedfiles/filedetails/?id=2835758829 From Steam Workshop (with respawn): https://steamcommunity.com/sharedfiles/filedetails/?id=2835759780 Missions running it: All my missions - - - - - - - - - - - Changelog: Nov, 30th 2023, v1.7: changelog Known issues: None. Feel free to bring some.
  4. The script and its information in the main post have been updated! 😎 **Oct, 30th 2023 | v1.7** - Added > Air tolerance ON > Parachuters fly out of playable area; - Added > Air tolerance ON > Jet pilots can eject out of playable area; - Added > A list of vehicle types that can be enterally ignored by PAC rules; - Improved > If player has an AI unit under their command and player order it to leave the playable area, the AI will be under the PAC rules if player leaves the area too; - Improved > Lots of improvements regarding performance; - Documentation updated.
  5. Hey there, tudo bem com você? 😄 Just sharing with you all my configs for Visual Studio Code (VS Code), a simple and feasible coding tool for Arma 3, even in 2023 where, if you already tried to use some available extensions, may be frustrating. If you got some smart stuff to VS Code, please, be kind and share it here 😉 VS Code here on my end: VS Code > tool download (free): https://code.visualstudio.com/download (Win/Linux/Mac) VS Code > Essential extensions for Arma 3: SQF-VM Language Server by SQF-VM https://marketplace.visualstudio.com/items?itemName=SQF-VM.sqf-vm-language-server SQF Language Updated by blackfisch https://marketplace.visualstudio.com/items?itemName=blackfisch.sqf-language SQFLint by SkaceKachna https://marketplace.visualstudio.com/items?itemName=skacekachna.sqflint SQF Wiki by Eelis Lynne https://marketplace.visualstudio.com/items?itemName=EelisLynne.sqf-wiki VS Code > extensions recommended: Theme: Atom One Dark Theme https://marketplace.visualstudio.com/items?itemName=akamud.vscode-theme-onedark VS Code > My customs to help for ARMA: Ctrl + Shift + P (Not working for you? Troubleshooting down below) Type "settings.json" (no quotes) and select "Open USER settings (json)"; Adapt the code below for your like: { "workbench.colorCustomizations": { "editor.selectionBackground": "#E5FFE6", "editor.selectionHighlightBackground": "#E5FFE6", "editor.findMatchBackground": "#818181", //Current SEARCH MATCH "editor.findMatchHighlightBackground": "#818181" //Other SEARCH MATCHES }, "sqf.enableCBA": true, "sqf.enableACE3": true, "workbench.iconTheme": null, "workbench.colorTheme": "Atom One Dark", "editor.minimap.enabled": false, "breadcrumbs.enabled": false, "editor.renderWhitespace": "all", "workbench.activityBar.visible": false, "zenMode.hideLineNumbers": false, "security.workspace.trust.untrustedFiles": "open", "editor.wordWrap": "on", "diffEditor.wordWrap": "on", "files.autoSaveDelay": 5000, "editor.tokenColorCustomizations": { "[Atom One Dark]": { "variables": "#eb54de", "functions": "#ff9b58", "numbers": "#49f5b3", "strings": "#70fa20", "keywords": "#fc6620", "comments": "#505050", "types": "#0004ff", "textMateRules": [ { "scope": ["constant.other"], "settings": { "foreground": "#1400c4" } }, { "scope": ["support.function"], "settings": { "foreground": "#fff5cb", "fontStyle": "italic" } }, { "scope": ["keyword.operator"], "settings": { "foreground": "#7ee9fc", "fontStyle": "bold" } }, { "scope": ["variable.language"], "settings": { "foreground": "#a13140" } }, { "scope": ["meta.function-call"], "settings": { "foreground": "#fc6620" } }, { "scope": ["punctuation.terminator"], "settings": { "foreground": "#ffffff" } }, ] } }, "editor.semanticHighlighting.enabled": true, "editor.semanticTokenColorCustomizations": { "[Atom One Dark]": { "enabled": true, "rules": { "*.declaration": { "bold": true } } } }, "files.associations": { "*.json": "jsonc", "*.sqf": "sqf" }, "C_Cpp.autocompleteAddParentheses": true, "sqflint.checkPaths": true, "files.autoSave": "afterDelay", "settingsSync.ignoredSettings": [ ], "workbench.startupEditor": "none", "explorer.confirmDelete": false, "explorer.confirmDragAndDrop": false, "sqflint.warnings": false, "cmake.parseBuildDiagnostics": false, "editor.inlayHints.enabled": false, //"window.menuBarVisibility": "toggle", "editor.hover.delay": 2500 } Share your thoughts and exp 😉 - - - - - - - - - - - Troubleshooting > Can't find out the settings.json? Go to Preferences, pressing Ctrl + , (control + comma) Scroll to "Files: Associations" Add both items down below: Try again the Ctrl+Shift+P. If not working yet, let's try this: Go to Preferences again, pressing Ctrl + , (control + comma) Type "Theme"; In the result list, find out "Edit in settings.json". Now you are ready to customize the VSC colors.
  6. Included in the main post the line below that prevents the VS Code from showing annoying label hints with each variable: "editor.inlayHints.enabled": false,
  7. Just to remind you Arma 3 is a f#### awesome platform and all of the things that I have learned about programming in these last 2 years come from Arma SQF stuff and what you all share with me, guys. Thanks, folks.
  8. The script and its information in the main post have been updated! Oct, 25th 2023 | v6.0: Added > Markers scan > Now CSWR knows how to sectorize spawns and destinations, so the Editor can define which groups and vehicles must consider those sectors or not; Added > Vehicles > When a vehicle's lost but its crewmen survive, if allies are close, the crew will join them, taking their mission to themselves; Fixed > Paradrop > Civilian parachuters are landing without stuck in a crouched position (panic); Fixed > Debug > Small fix about marker message's examples; Fixed > Occupy > Vehicles configured to use Occupy-move markers were able badly to try to occupy a building; Improved > Helipcoter > Besides the regular move to the waypoint, now helicopter has 33% of chance to approach the current waypoint with Seek & Destroy style; Improved > Hold > Small improvement during the hold maneuver validation when solid objects around and group leader is out of the vehicle; Improved > Hold > Civilian tracked-vehicle cannot be booked center marker position anymore as a tank or trackedAPC; Improved > Destinations > All infantry and vehicles are able to restore their waypoints (doing a new search) if they are accidentally deleted; Improved > Markers scan > Small improvements; Documentation has been updated. Now, you can force one or more groups to spawn in a specific region of the map (sectorizing the spawnpoint options) and force them to move only (or not) to a specific sector-zone too (sectorizing the destination options): Above, Eden markers' names. Above, the list of vehicles and groups of BluFor in fn_CSWR_population.sqf file.
  9. So a good practice here in BIS forums is to set "[SOLVED]" at the beginning of the topic title. Cheers!
  10. When I create blufor units in the air, and make them use parachutes to touch the ground safely, everything runs fine, but if I do the same with civilians, the civilian units get panic (guess)! The same happens if I use ZEUS to throw the civilian in the air. Their parachute is opened and, when they touch the ground, they're crouched. What I want: That civilian parachuters when on land, walk normally, in the "UP" position. My snippet: Right before the CIVILIAN unit is created in the air, falling down from 1km altitude with a parachute bag: _grp setBehaviourStrong "CARELESS"; _grp allowFleeing 0; { _x setBehaviour "CARELESS"; _x disableAI "FSM"; } forEach units _grp; After landing: { // Wait the own unit (_x) touch the ground if not yet: waitUntil { sleep 3; (getPos _x select 2) < 0.2 || !alive _x }; sleep 2; _x enableAI "FSM"; _x switchmove ""; _x setUnitPos "UP"; //_x setUnitPosWeak "UP"; } forEach units _grp; The bad result: always the civilian units are walking in a crouch, even if there's no opfor, blufor, or independent on the map. Commands I'm using: https://community.bistudio.com/wiki/setBehaviourStrong https://community.bistudio.com/wiki/allowFleeing https://community.bistudio.com/wiki/disableAI https://community.bistudio.com/wiki/setUnitPosWeak https://community.bistudio.com/wiki/setUnitPos https://community.bistudio.com/wiki/switchAction
  11. Solution: Before to landing: nothing! //_grp setBehaviourStrong "CARELESS"; <<----------------- Not needed! //_grp allowFleeing 0; <<-------------------------------- Not needed! //{ //_x setBehaviour "CARELESS"; << -------------------- Not needed! //_x disableAI "FSM"; <<----------------------------- Not needed! //} forEach units _grp; Right after landing: { // Wait the own unit (_x) touch the ground if not yet: waitUntil { sleep 3; (getPos _x select 2) < 0.2 || !alive _x }; // Restart the unit animation, forcing them to be "UP": _x switchmove ""; } forEach units _grp; It works well even civilian parachuter is under fire. 😉
  12. The unit just ignores the setUnitPos and the setUnitPosWeak. Super wierd but I understand the civilian gets panic when is falling down. Even with Zeus in vanilla if you trow the civilian, the behavior is the same.
  13. The script and its information in the main post have been updated! Oct, 11th 2023 | v5.5: Added > Spawn for helicopters can be set over the ship floors or platforms in water. Check the documentation; Added > All infantry soldiers and paratroopers can get easily flashlights on their rifles when the editor desactivates their night-vision-goggles; Improved > All CSWR markers are invisible since the Briefing screen (init.sqf file has been included in project); Improved > New method (more feasible to performance) to check if destinations and spawn-points are busy before accept new groups/vehicles, avoiding accidental explosions; Improved > Loadout > New method to build custom loadouts (more flexible and intuitive); Improved > Loadout > The global options to force apply backpack and/or vest for all units now will ignore civilian faction; Improved > Hold > New method to turn the tracked vehicle to hold-marker direction even more accurate and safe (against vehicle bounces); Improved > Hold > When in debug-mode-global is TRUE with debug-hold-mode is also TRUE, now the hold-markers and its direction are visible to the Mission Editor in-game; Improved > Spawn delay > from now the spawn delay timer is configured in-minutes and not in-seconds anymore, making the Mission Editor's life easier; Improved > Loadout > Now it's possible to turn On or Off which faction will get nightvision and what nightvision device model (supports NVG from mods too); Improved > Loadout > Ue the "RANDOM" command in civilian uniform slot in loadout file to gives a random outfit for each CIV unit created by CSWR; Improved > Debug > Marker error handling has been improved; Fixed > Paradrop > If editor added a custom nightvision for paratroopers, they received it duplicated; Fixed > Paradrop > Infantry Sniper groups when got the paratroop speciality and had their backpack "REMOVED", they weren't receiving parachutes; Fixed > Loadout > When editor used the global loadout settings (CSWR_isBackpackForAllByFoot and CSWR_isVestForAll) civilians get army gears too; Fixed > Watch > Sniper group's killed before to reach their spot to watch a location, CSWR kept waiting for them inappropriately; Fixed > Helicopters > They weren't spawn in the same direction defined through the Eden spawn-markers; Fixed > Wheeled APC and tracked APC crewmen were not receiving custom crew helmet; Removed > Civilian faction cannot move to anywhere ("_move_ANY" instruction) like a soldier, from now it's been limited to public markers ("_move_PUBLIC"); Documentation has been updated. Now, to set night-vision-googles or flashlights for one or more faction is easier: Units with flashlights if they are not allowed to use night-vision-goggles: Documentation even more detailed: All loadout customization has been reworked:
  14. What's Zeus airdrop parachute classname? By the way, even checking the "config" prompt in-game, I couldn't find any clue about this huge static chute classname. Looking only at the official Arma 3 content, I got only the small one (Steerable_Parachute_F). I have checked the A3_jets functions to figure out some but nothing was found. If you can explain how works your investigation to find this kind of asset, it would be very much appreciated. EDIT: the answer is "B_Parachute_02_F" This effect happens when you, in-game, drap a vehicle and drop it in the air with Zeus allowed.
  15. ❤️ Unit parachutes (working fine): NonSteerable_Parachute_F Steerable_Parachute_F Doesn't work (anymore?): B_Parachute <---------------- No visible parachute and whoever is using it will get stuck in the air. (???) B_B_Parachute_02_F <---------------- No visible parachute and whoever is using it will get stuck in the air. (???) B_I_Parachute_02_F <---------------- No visible parachute and whoever is using it will get stuck in the air. (???) B_O_Parachute_02_F <---------------- No visible parachute and whoever is using it will get stuck in the air. (???) blablabla_example_invalid_classname <---------------- No visible parachute and whoever is using it will fall down. Vehicle parachutes (working fine): B_Parachute_02_F <---------------- This one is exactly what I was looking for. I_Parachute_02_F <---------------- This one is exactly what I was looking for. O_Parachute_02_F <---------------- This one is exactly what I was looking for.
  16. Included the line below (already in the main post) setting a good delay to avoid at most (without losing the feature) that pop-up with a lot of info when we hover a variable with the mouse. "editor.hover.delay": 2500 // default is 300.
  17. HOTFIX! Main post updated! Sep, 18th 2023 | v5.1 Fixed > CRITICAL > In CSWR v5.0, all AI groups were stuck after the first waypoint to be completed; Fixed > Hold > In CSWR v5.0 the tracked-vehicles accidentaly stopped to execute correctly the hold-maneuver; Improved > Performance > BIS_fnc_spawnGroup method has been replaced by a saver server performance method; Improved > Performance > BIS_fnc_spawnVehicle method has been replaced by a saver server performance method; Improved > Paradrop > Paratroopers are executing the paradrop with much more space among each other (visual realistic); Improved > Paradrop > Paratroopers are regrouping with their leaders after the landing and before the first mission move on the field; Improved > Loadout > Paratroopers can receive helmet and nightvision customization separately from the regular faction loadout; Improved > Vehicles > Now it's possible turn off the Electronic Warfare Resources for vehicles of each faction in fn_CSWR_management.sqf file; Improved > Vehicles > UAV vehicles are blockers too if around the helipads if some helicopter will spawn; Documentation has been updated.
  18. The script and its information in the main post have been updated! Sep, 13th 2023 | v5.0: Added > All factions can spawn helicopters (cswr_spawnheli_faction_1); Added > All factions can be spawned by Air Paradrop, including vehicles (cswr_spawnparadrop_faction_1); Added > Special customization for AI units executing the Air Paradrops; Added > Exclusive Spawns for helicopters have automatic insertion of helipads (ON/OFF); Improved > Each spawn-point-type has a list of AI group-type allowed to spawn there; Improved > Hold-move markers now delete all small stones around them to preserve tracked-vehicles maneuver integraty; Improved > Loadout customization received deeper and friendly debug messages; Improved > Vehicles will spawn facing super accurate the same direction set in their spawn-markers in Eden; Fixed > Main CSWR script folder name on GitHub was accidentaly named as .VR instead of .STRATIS; Fixed > A faction group shouldn't spawn in another faction spawn-points if the Mission Editor would force it; Fixed > If snipers didn't find out spots to prone, the WATCH_MOVE wasn't restarting properly; Fixed > Since the last update (v4.5), loadout customization stops to recognize the "removed" instruction when in lowcase; Fixed > Debug > Hold-move should have [1800,3600,7200] as minimal range of time, and not [1800,7200,10800]; Fixed > Debug > Watch marker minimal range should be 1000, and not 500; Documentation has been greatly updated. Now there are Paradrop spawns for soldiers and vehicles: And another news is the possibility to spawn helicopters. The light classes will fly by default at 150 meters high. The heavy classes will fly over 300 meters: Enjoy!
  19. thy_

    Parachute classname

    Hey you from the future, if you are like me that want the parachute (activated/opened) classname itself = "Steerable_Parachute_F" And even more options: Almost 10 years later 😉 Cheers.
  20. Guys, dudes, folks, Can you help me to make my function a little bit more elegant to save server performance? I feel my snippet is not even a good way to do this: I want to call a function that will check an array of a couple of classnames (it should be only vehicles BUT mission editors can make mistakes). So, to verify this, the function will analyze if each classname corresponds to some of those object types. Calling: _itShouldBeOnlyVehiclesClassnames = ["B_G_Offroad_01_armed_F", "B_Soldier_F", "B_Heli_Light_01_dynamicLoadout_F"]; _isValid = [_itShouldBeOnlyVehiclesClassnames, ["Car", "Motorcycle", "Tank", "WheeledAPC", "TrackedAPC", "Helicopter"]] call TAG_fnc_is_valid_classnames_type; if _isValid then { /* a lot of things happen! */ }; The function itself: TAG_fnc_is_valid_classnames_type = { // This function checks if each classname in an array is one of the classname types allowed to be valid. // Returns _isValid. Bool. params ["_classnames", "_allowedTypes"]; private ["_isValid", "_classnamesOk", "_classnamesAmount", "_eachAllowedType"]; // Initial values: _isValid = true; _classnamesOk = []; // Declarations: _classnamesAmount = count _classnames; // Main function: { _eachAllowedType = _x; { // If the classname is an allowed type, include this valid classname in another array: if ( _x isKindOf _eachAllowedType ) then { _classnamesOk pushBack _x }; } forEach _classnames; } forEach _allowedTypes; // If there's difference between the size of both arrays, it's coz some classname is not an allowed type: if ( count _classnames isNotEqualTo count _classnamesOk ) then { // Update the validation flag: _isValid = false; }; // Return: _isValid; }; Small challenge: Print out an error message indicating exactly which classname(s) is/are not part of the "allowed type of objects".
  21. @jandrews one of your requests is done! Enjoy! The script and its information in the main post have been updated! 🙃 Sep, 5th 2023 | v4.5: Added > Now the spawn points can be triggered by Timer delay, Trigger delay, and Target delay; Fixed > Occupy and Hold debug messages had a wrong trigger for the minimal value message alert; Fixed > When using Occupy-move the units had their speed behaviors badly replaced by the waypoint speed (always as "normal" instead of editor choices); Improved > If Occupy or Watch moves are used with vehicles (not allowed), now the vehicles and their crewmen are correctly deleted, leaving a warning message for the editor; Improved > Many debug improvements to fn_CSWR_population.sqf feedbacks and auto-fixing; Documentation has been updated (Tomorrow, actually)! Aug 2023 / @aldolammel / thy 😜
×