Search the Community
Showing results for tags 'automatic'.
Found 6 results
-
sandbox [Release] Controlled Spawn And Waypoints Randomizr
thy_ posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
What's up, folks. CSWR is a simple and limited script that spawns AI units once right before the mission starts and makes those units move randomly to waypoints forever in life, where spawn points and waypoints are pre-defined by Mission Editor through Eden marker's positions. CSWR is able to spawn also ground vehicles with their crewmen, and accept pretty well unit loadout customization. CSWR doesn't change any original AI behavior after the spawn*. (*) Except in the case of vehicles with turrets, the CSWR forces its gunners to stay in the turrets, shooting to death, without ever disembarking. How to install / Documentation: https://github.com/aldolammel/Arma-3-Controlled-Spawn-And-Waypoints-Randomizr-Script/blob/main/controlled-spawn-and-waypoints-randomizr.VR/CSWRandomizr/_CSWR_Script_Documentation.pdf What to expect from CSWR script: Manually define which marks the faction can use as a spawn point. You can create a lot of spawn points for one or more factions. Once the spawn points are created, the script will spawn the groups randomly through the faction spawns. There is no re-spawn. Death is death. Vehicles with turrets spawned by CSWR, when damaged, their gunners never leave the vehicle, doing the last standing in combat until death. Manually define which marks will be used as waypoints. There are 2 types of destinations: those that can be visited by everyone; and those that only a specific faction can go to. Once the destinations are created, the script will take care of taking (or not) the groups there, randomly. Manually set the number of soldiers, who they are, their loadouts, who belongs in each squad, and even vehicles. There are 3 infantry and 3 vehicle templates to customize for each faction: light squad; regular squad; heavy squad; light vehicle; regular vehicle; and heavy vehicle. Manually define how many groups, what type of groups if they will spawn calm or already aware, running, etc. It does important you as editor set the movements through the field each group can consider randomly. All vehicles and units spawned by CSWR are editable by Zeus if this skill is allowed. Video demo: Initial config: Creating the unit groups and how many of them must be spawned: Customizing the loadouts: Dependencies: None 😉 Download: - On GitHub: https://github.com/aldolammel/Arma-3-Controlled-Spawn-And-Waypoints-Randomizr-Script - On Steam Workshop: https://steamcommunity.com/sharedfiles/filedetails/?id=2740912514 Missions using it: Escape from Kherson: https://steamcommunity.com/sharedfiles/filedetails/?id=2878171355 Ukrainian ATGM Team: https://steamcommunity.com/sharedfiles/filedetails/?id=2847369831 Fake SDF in Syria: https://steamcommunity.com/sharedfiles/filedetails/?id=2728537885 Tanks Theater: https://steamcommunity.com/sharedfiles/filedetails/?id=2160397214 ISIS VBIED: https://steamcommunity.com/sharedfiles/filedetails/?id=2732654349 - - - - - - - - - - - Changelog: Oct, 18th 2022 | v2.7: news, fixes and notes. Known issues: - No issues tracked. -
collision [SOLVED] Vehicle spawn (collision issues)
thy_ posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hello there, I am facing some challenges to implement the findEmptyPosition and avoid collision among vehicles those spawn in the same spot. Some help to fix it will be very much appreciated. Here below is my code working pretty fine, except for the collisions in some rounds. If you prefer, here is for download: https://drive.google.com/file/d/1NIdU2pLEjl41M3Vlc0dVANRvuK3PFCqd/view?usp=sharing // SIDE SPAWNS // Spawnpoints for each faction. Only the specific faction can spawn. _bluAllSpawns = ["bluSpawn01","bluSpawn02","bluSpawn03","bluSpawn04","bluSpawn05","bluSpawn06"]; _opAllSpawns = ["opSpawn01","opSpawn02","opSpawn03","opSpawn04","opSpawn05","opSpawn06"]; _indAllSpawns = ["indSpawn01","indSpawn02","indSpawn03","indSpawn04","indSpawn05","indSpawn06"]; // ................................................................................................................................................ // SHARED DESTINY // Waypoints where any faction can go. _goToSharedDestiny = ["destinoComum01","destinoComum02","destinoComum03","destinoComum04"]; // SIDE DESTINY // Waypoints where only the specific faction can go. _goToDestinyBlu = ["destinoBlu01","destinoBlu02"]; _goToDestinyOp = ["destinoOp01","destinoOp02"]; _goToDestinyInd = ["destinoInd01","destinoInd02"]; // ANY DESTINY // Use _goToAnywhere for the group to consider going to both shared destinations and those of all factions. _goToAnywhere = _goToSharedDestiny + _goToDestinyBlu + _goToDestinyOp + _goToDestinyInd; // ................................................................................................................................................ // BLUFOR GROUPS // Number of soldiers and type of faction squads. _bluSquadLight = ["B_Soldier_TL_F", "B_soldier_AR_F"]; _bluSquadRegular = ["B_Soldier_TL_F", "B_soldier_AR_F", "B_soldier_AR_F", "B_soldier_AR_F"]; _bluSquadHeavy = ["B_Soldier_TL_F", "B_soldier_AR_F", "B_soldier_AR_F", "B_soldier_AR_F", "B_soldier_AR_F", "B_soldier_AR_F"]; _bluVehLight = ["B_Quadbike_01_F"]; _bluVehRegular = ["B_MRAP_01_hmg_F"]; _bluVehHeavy = ["B_MBT_01_cannon_F"]; // OPFOR GROUPS // Number of soldiers and type of faction squads. _opSquadLight = ["O_Soldier_TL_F", "O_soldier_AR_F"]; _opSquadRegular = ["O_Soldier_TL_F", "O_soldier_AR_F", "O_soldier_AR_F", "O_soldier_AR_F"]; _opSquadHeavy = ["O_Soldier_TL_F", "O_soldier_AR_F", "O_soldier_AR_F", "O_soldier_AR_F", "O_soldier_AR_F", "O_soldier_AR_F"]; _opVehLight = ["O_Quadbike_01_F"]; _opVehRegular = ["O_MRAP_02_hmg_F"]; _opVehHeavy = ["O_MBT_02_cannon_F"]; // INDEPENDENT GROUPS // Number of soldiers and type of faction squads. _indSquadLight = ["I_Soldier_TL_F", "I_Soldier_AR_F"]; _indSquadRegular = ["I_Soldier_TL_F", "I_Soldier_AR_F", "I_Soldier_AR_F", "I_Soldier_AR_F"]; _indSquadHeavy = ["I_Soldier_TL_F", "I_Soldier_AR_F", "I_Soldier_AR_F", "I_Soldier_AR_F", "I_Soldier_AR_F", "I_Soldier_AR_F"]; _indVehLight = ["I_Quadbike_01_F"]; _indVehRegular = ["I_MRAP_03_hmg_F"]; _indVehHeavy = ["I_MBT_03_cannon_F"]; // ................................................................................................................................................ // BLUFOR STRATEGY // All faction groups and destinations. _bluGroup01 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluSquadLight,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _bluGroup01 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _bluGroup02 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluSquadLight,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _bluGroup02 addWaypoint [getmarkerpos (selectRandom _goToDestinyBlu), 0]; _bluGroup03 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluSquadRegular,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _bluGroup03 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _bluGroup03 addWaypoint [getmarkerpos (selectRandom _goToDestinyBlu), 1]; _bluGroup04 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluSquadHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _bluGroup04 addWaypoint [getmarkerpos (selectRandom _goToAnywhere), 0]; _bluGroup04 addWaypoint [getmarkerpos (selectRandom _goToAnywhere), 1]; _bluGroup05 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluVehHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; //This one will hold position (no waypoint). _bluGroup06 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluVehHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _bluGroup06 addWaypoint [getmarkerpos (selectRandom _goToDestinyBlu), 0]; // ................................................................................................................................................ // OPFOR STRATEGY // All faction groups and destinations. _opGroup01 = [getmarkerpos (selectRandom _opAllSpawns), OPFOR, _opSquadLight,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _opGroup01 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _opGroup02 = [getmarkerpos (selectRandom _opAllSpawns), OPFOR, _opSquadRegular,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _opGroup02 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _opGroup02 addWaypoint [getmarkerpos (selectRandom _goToDestinyOp), 1]; _opGroup03 = [getmarkerpos (selectRandom _opAllSpawns), OPFOR, _opSquadHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _opGroup03 addWaypoint [getmarkerpos (selectRandom _goToDestinyOp), 0]; // ................................................................................................................................................ // INDEPENDENT STRATEGY // All faction groups and destinations. _indGroup01 = [getmarkerpos (selectRandom _indAllSpawns), INDEPENDENT, _indSquadLight,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _indGroup01 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _indGroup02 = [getmarkerpos (selectRandom _indAllSpawns), INDEPENDENT, _indSquadRegular,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _indGroup02 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _indGroup02 addWaypoint [getmarkerpos (selectRandom _goToDestinyInd), 1]; _indGroup02 addWaypoint [getmarkerpos (selectRandom _goToDestinyInd), 2]; _indGroup02 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 3]; _indGroup03 = [getmarkerpos (selectRandom _indAllSpawns), INDEPENDENT, _indSquadHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _indGroup03 addWaypoint [getmarkerpos (selectRandom _goToDestinyInd), 0]; _indGroup04 = [getmarkerpos (selectRandom _indAllSpawns), INDEPENDENT, _indVehHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _indGroup04 addWaypoint [getmarkerpos (selectRandom _goToDestinyInd), 0]; -
Automatic eject via vehicle's init line
evokerzz posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
I created a vehicle init script a few months ago with the purpose of automatically making the plane auto-eject pilots when the damage to the plane exceeds a certain threshold while limiting the damage to .9 for a few seconds preventing it from blowing up instantly. After a recent arma update however the script stopped working so I'm hoping that maybe someone more experienced in arma scripting can help me out with it. My current revisions (seperated with a line) of the vehicle init with comments: https://pastebin.com/XSyXyES1 I'm trying to avoid using seperate script files to make this a simple copy-paste solution for everyone who isn't that familiar with mission editing. -
[SCRIPT] Automated Doors 2.5 - doors open and close automatically
Heeeere's johnny! posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Automated Doors - v2.5 Download v2.5 from Armaholic What? For each player on the map, this script creates and removes triggers on nearby buildings which open the door if a player intends to walk through it and closes it again, when he walks away. This script is configurable and customizable on both server and client side. Features: all doors open and close automatically usable in Singleplayer (client side) or in Multiplayer (server side only) support for dynamic locations where this script should only work support for side specific locations, where this script only works for players of the respective side actions for the following features: enable/disable automatically closing doors enable/disable "Automated Doors" completely irreversibly* remove all actions related to "Automated Doors" globally force doors to stay open, no matter what the player's actions say can be terminated and restarted without trigger-leftovers or action-leftovers minimized server load due to need-based dynamic object management available as script and as addon *) Actions will be available again, if you rejoin the server (MP) or restart ArmA (SP) respectively Supported maps: Altis/Stratis (combined in one file) Chernarus Takistan Zargabad Utes Why? At some point, I got annoyed of having to walk really close to a door and sometimes even having to scroll, if my default action is something different, to get the right action to finally open it. Maybe there's some people out there feeling similarly. How? Download the script here. (Armaholic, same link as above) execVM "automatedDoors.sqf" If you use Automated Doors on a map which is not listed above, but has buildings from one or more of these maps or if you want to override the script's default behavior, paste the respective map name(s) as parameter into the script like this: [["Altis", "Chernarus", "Takistan"]] execVM "automatedDoors.sqf" If you don't do so, the script will automatically take into account all maps. Singleplayer: Using the script: Execute the above line once upon mission start - that's it. Using the addon: Start ArmA 3 with startup parameter -mod=@automatedDoors - that's it. Multiplayer: Execute this script server side once upon mission start. Client side execution is prevented by "isServer" check. After joining a mission running this script, it might take a few seconds until it actually works for you as new player, because the sever runs the "scan loop" regularly, not taking into account JIP or just spawned players. Further Information "Automated Doors" has two optional parameters: maps -> (optional, default: "all") defines the buildings to be taken into account by this script -> e.g. ["altis", "chernarus"] means, all buildings from Altis and Chernarus will be taken into account doorsStayOpen -> (optional, default: false) global definition of door closing behavior - if true, doors will have to be closed manually, player action "Don't keep doors open" has no effect - if false, doors will close automatically, player action "Keep doors open" has an effect You can easily customize important values, like the size of the area of the door triggers, the time between each scan for surrounding buildings or the area to scan on each loop. Do that by changing the defines at the beginning of the file (after the comment block). Define locations: If you want this script to only work in certain areas, create locations of type "Name" and set their name with the prefix "doors". This script will check on each scan loop if such locations exist. If so, it will only manage these areas. If all "doors" locations are deleted, this script will handle the whole map again. Side specific locations: If you create a location as described above and setVariable ["locationSide", any side here] to it, the doors inside that location automatically open and close only for players of that side. Have a nice Play! Changelogs: -
Check if unit has a machine gun or automatic rifle
beno_83au posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
So, as title'd I need to determine if a unit has a machine gun/automatic rifle. At the moment I'm running with: _machineGuns = [ "MMG_02_base_F", "arifle_MX_SW_F", "LMG_Mk200_F", "LMG_Zafir_F", "MMG_01_base_F" ]; _gunCheck = {(primaryWeapon _unit) isKindOf [_x, configFile >> "CfgWeapons"]} count _machineGuns; if (_gunCheck != 0) then { //Code }; It works, but it would potentially require an edit to _machineGuns for any mod MGs, which detracts from it's user-friendliness. This is as basic as I was able to work out, so is there a better way? Please take note that I'm checking the weapon, not the unit. As an example, this is what I'm trying to achieve (script taken from VBS3): if ([configFile>>"CfgWeapons",(primaryWeapon _unit),"vbs2_mgun"] call fn_vbs_isKindOf) then { //Code }; So, in the example it's very convenient that "vbs2_mgun" covered everything, and thus requires no editing on the user's part. Cheers. -
Automated Doors - v2.5.a2 - doors open and close automatically
Heeeere's johnny! posted a topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
Automated Doors - v2.5.a2 (ArmA 2 version) Download v2.5.a2 from Armaholic What? This is a backport of Automated Doors for ArmA 3 to ArmA 2. For each player on the map, this script creates and removes triggers on nearby buildings which open the door if a player intends to walk through it and closes it again, when he walks away. This script is configurable and customizable on both server and client side. Features: all doors open and close automatically usable in Singleplayer (client side) or in Multiplayer (server side only) support for dynamic locations where this script should only work support for side specific locations, where this script only works for players of the respective side actions for the following features:enable/disable automatically closing doors enable/disable "Automated Doors" completely irreversibly* remove all actions related to "Automated Doors" globally force doors to stay open, no matter what the player's actions say can be terminated and restarted without trigger-leftovers or action-leftovers minimized server load due to need-based dynamic object management *) Actions will be available again, if you rejoin the server (MP) or restart the mission (SP) respectively Supported maps: Altis/Stratis (combined in one file) Chernarus Takistan Zargabad Utes Why? At some point, I got annoyed of having to walk really close to a door and sometimes even having to scroll, if my default action is something different, to get the right action to finally open it. Maybe there's some people out there feeling similarly. How? Download the script here (Armaholic, same link as above). You need at least the following files: automatedDoors_a2.sqf or automatedDoors_a2oa.sqf removeAllActions.sqf setVariable.sqf one or more file(s) starting with "doors..." Execute one of the following lines depending on which file you're using: execVM "automatedDoors_a2.sqf" execVM "automatedDoors_a2oa.sqf" If you use Automated Doors on a map which is not listed above, but has buildings from one or more of these maps or if you want to override the script's default behavior, paste the respective map name(s) as parameter into the script like this: [["Chernarus", "Takistan", "Zargabad"]] execVM "automatedDoors_a2oa.sqf" If you don't do so, the script will automatically take into account all maps. Singleplayer: Execute the above line once upon mission start - that's it. Multiplayer: Execute this script server side once upon mission start. Client side execution is prevented by "isServer" check. After joining a mission running this script, it might take a few seconds until it actually works for you as new player, because the sever runs the "scan loop" regularly, not taking into account JIP or just spawned players. Further Information Note that there are two files, one compatible with ArmA 2 v1.06 or later and another one compatible with ArmA 2:OA v1.63 or later. The ArmA 2 version also works with OA, but not the other way around. Be aware that the version for OA is more efficient (faster) than the one for ArmA 2, so I'd recommend to use the version for the "normal" ArmA 2 only if necessary. "Automated Doors" has two optional parameters: maps -> (optional, default: "all") defines the buildings to be taken into account by this script - e.g. ["altis", "chernarus"] means, all buildings from Altis and Chernarus will be taken into account doorsStayOpen -> (optional, default: false) global definition of door closing behavior - if true, doors will have to be closed manually, player action "Don't keep doors open" has no effect - if false, doors will close automatically, player action "Keep doors open" has an effect You can easily customize important values, like the size of the area of the door triggers, the time between each scan for surrounding buildings or the area to scan on each loop. Do that by changing the defines at the beginning of the file (after the comment block). Define locations: If you want this script to only work in certain areas, create locations of type "Name" and set their name with the prefix "doors". This script will check on each scan loop if such locations exist. If so, it will only manage these areas. If all "doors" locations are deleted, this script will handle the whole map again. Side specific locations: If you create a location as described above and setVariable ["locationSide", any side here] to it, the doors inside that location automatically open and close only for players of that side. Changelogs will be posted in the original thread. Have a nice Play!