Jump to content

Search the Community

Showing results for tags 'spawn'.



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
    • Arma Reforger
    • 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 Green Sea
  • TKO's Rules
  • TKO's Changelog
  • TKO's Help
  • TKO's What we Need
  • 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
  • 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
  • Tales of the Republic's Republic News
  • Operazioni Arma Italia's CHI SIAMO
  • [GER] HUSKY-GAMING.CC / Roleplay at its best!'s Starte deine Reise noch heute!
  • empire brotherhood occult +2349082603448's empire money +2349082603448
  • NET88's Twitter
  • Mercurious Brotherhood +2347063372861's +2347063372861>> I WANT TO JOIN OCCULT FOR MONEY RITUAL
  • 123betcasino01's Topics

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 109 results

  1. Idea- MP Lone survivor mission (VIP). One player tries to survive at a dangerous location, the rest of the players' job is to get there in time to save the survivor. Must- Survivor must spawn at his placed location. All others have respawns available at a set location (FOB) and spawn there at the beginning. Problem- When starting an MP mission, the survivor is automatically forced to respawn at the same spawn as the other players, as opposed to what I want, which is for them to just take control of the existing AI OR spawning at his already placed position, WITHOUT "Enable AI" being checked in the MP settings. Solution- Either a way to set up a spawn position that only the survivor can see OR Disabling the survivor's ability to respawn hopefully causing them not to just outright die but spawn at the spot with no lives. Tried- player addMPEventHandler ["MPRespawn", {[14716.65, 9175.446, 0]}]; player addMPEventHandler ["MPRespawn", {[here]}]; (In player INIT as well as Spawn INIT with variable name) Deselect "Select Respawn Position" (Causes all players to spawn on death location) if ( player isKindOf "B_Officer_F" || player isKindOf "O_Officer_F" ) then { player setPosATL getMarkerPos format[ "VIP_Respawn_%1", side player ]; }; if ( player isKindOf "B_Officer_F" || player isKindOf "O_Officer_F" ) then { [ player, format[ "VIP_Respawn_%1", side player ] ] call BIS_fnc_addRespawnPosition; }; Plez help
  2. Here is what the debug is giving me when i run the script. SCRIPT (E): Virtual Machine Exception Reason: NULL pointer to instance. Variable 'm_SpawnLogic' Class: 'SCR_PlayerDeployMenuHandlerComponent' Function: 'OnPostInit' Stack trace: Scripts/Game/Respawn/Menu/SCR_PlayerDeployMenuHandlerComponent.c:62 Function OnPostInit SCRIPT (E): Virtual Machine Exception Reason: NULL pointer to instance. Variable 'm_SpawnLogic' Class: 'SCR_PlayerDeployMenuHandlerComponent' Function: 'OnPostInit' Stack trace: Scripts/Game/Respawn/Menu/SCR_PlayerDeployMenuHandlerComponent.c:62 Function OnPostInit SCRIPT (E): Virtual Machine Exception Reason: NULL pointer to instance. Variable 'm_SpawnLogic' Class: 'SCR_PlayerDeployMenuHandlerComponent' Function: 'OnPostInit' Stack trace: Scripts/Game/Respawn/Menu/SCR_PlayerDeployMenuHandlerComponent.c:62 Function OnPostInit //////////////////////////////////////////////////////////////////////////////////////// Here is the string of code: { super.OnPostInit(owner); SCR_RespawnSystemComponent rsc = SCR_RespawnSystemComponent.GetInstance(); if (!GetGame().InPlayMode() || (rsc && !rsc.CanOpenDeployMenu())) return; World world = GetOwner().GetWorld(); m_DeployMenuSystem = DeployMenuSystem.Cast(world.FindSystem(DeployMenuSystem)); m_DeployMenuSystem.Register(this); m_RespawnComponent = SCR_RespawnComponent.Cast(owner.FindComponent(SCR_RespawnComponent)); if (!m_RespawnComponent) { Print(string.Format("%1 could not find %2!", Type().ToString(), SCR_RespawnComponent), LogLevel.ERROR); } m_PlayerController = SCR_PlayerController.Cast(owner); if (!m_PlayerController) { Print(string.Format("%1 is not attached in %2 hierarchy! (%1 should be a child of %3!)", Type().ToString(), SCR_PlayerController, SCR_RespawnComponent), LogLevel.ERROR); } m_PlyFactionAffil = SCR_PlayerFactionAffiliationComponent.Cast(owner.FindComponent(SCR_PlayerFactionAffiliationComponent)); m_RespawnComponent.GetOnRespawnReadyInvoker_O().Insert(OnRespawnReady); m_RespawnComponent.GetOnRespawnResponseInvoker_O().Insert(SetNotReady); m_SpawnLogic = SCR_MenuSpawnLogic.Cast(rsc.GetSpawnLogic()); SCR_ReconnectSynchronizationComponent reconnectComp = SCR_ReconnectSynchronizationComponent.Cast(owner.FindComponent(SCR_ReconnectSynchronizationComponent)); if (reconnectComp) reconnectComp.GetOnPlayerReconnect().Insert(OnPlayerReconnect); SCR_WelcomeScreenComponent welcomeScreenComp = SCR_WelcomeScreenComponent.Cast(GetGame().GetGameMode().FindComponent(SCR_WelcomeScreenComponent)); if (!welcomeScreenComp) SetWelcomeClosed(); } ANY HELP WOULD BE MUCH APPRECIATED AS I AM NOT THE SMARTEST.
  3. Spawn civilian hostage with init, and problem with addAction. The addAction does not work, I have tried several calls like... _x, _this, this, leader CIV_REHEN_NAMUVAKA_1... and nothig. Helpme please and thanks. //nul = [] execVM "spawns\CIV_REHEN_NAMUVAKA_Loop_1.sqf"; //while {true} do { [west, ["Task_CIV_REHEN_NAMUVAKA_1B"], ["Protect the hostages. - Proteja a los rehenes.","Protect the hostages. - Proteja a los rehenes."], none, "CREATED", 2, true] call BIS_fnc_taskCreate; systemchat "CIV_REHEN_NAMUVAKA_1"; CIV_REHEN_NAMUVAKA_1 = [getPos player, civilian, ["C_Man_formal_4_F_tanoan"]] call BIS_fnc_spawnGroup; //{_x doMove ASLtoATL getPosASL PenBLU_OTANDESERT_MEN_Obj_1; _x allowFleeing 0; _x setCombatMode "RED"; _x setskill ["courage",1];_x setUnitPos "UP"; } forEach units CIV_REHEN_NAMUVAKA_1; //{ _x setCombatBehaviour "SAFE"; [group _x, getPos _x, 10] call BIS_fnc_TaskPatrol; } forEach units CIV_REHEN_NAMUVAKA_1; { _x disableAI "PATH"; _x setCaptive true; _x setUnitPos "MIDDLE"; // Add rescue action _x addAction [":: Rescue - Rescatar :: ", { ["Task_CIV_REHEN_NAMUVAKA_1","succeeded"] call bis_fnc_tasksetstate; {_x setCaptive false; _x enableAI "PATH"; _x setUnitPos "AUTO"; {[_x] joinSilent group player;} forEach units CIV_REHEN_NAMUVAKA_1; } ]; } forEach units CIV_REHEN_NAMUVAKA_1; waitUntil {({alive _x} count units CIV_REHEN_NAMUVAKA_1) < 1;}; ["Task_CIV_REHEN_NAMUVAKA_1B","CANCELED"] call bis_fnc_tasksetstate; //};
  4. CSWR is an Arma 3 script that allows the Mission Editor to spawn AI units and vehicles (by ground or air paradrop) and makes those groups move randomly to waypoints forever in life, where spawn-points and waypoints are easily pre-defined by Mission Editor through Eden marker's positions. CSWR accepts faction loadout customization, including additional customizations for sniper teams and paratroopers. CSWR almost doesn't change any original Arma AI behavior, saving server performance and Arma 3 integrity. Creation concept: bring life to the mission through non-stop units' movements with some level of unpredictability without losing control of server performance and what AI units can do. Special thanks: To the old (but gold) "T8 Units" script for the inspiration over the years. How to install / Documentation: https://github.com/aldolammel/Arma-3-Controlled-Spawn-And-Waypoints-Randomizr-Script/blob/main/_CSWR_Script_Documentation.pdf What to expect from the CSWR script: No dependencies from other mods or scripts; Manually define which markers the faction can use as spawn-points; Create unlimited different types of spawn-points: Common spawn: for units and ground vehicles; Vehicle spawn: exclusive for ground vehicles; Heli spawn: exclusive for helicopters; Paradrop spawn: for units and ground vehicles; Sectorized spawn: all spawn types can be sectorized to be available only for specific groups/vehicles inside a faction; Spawn-points can be triggered by: Mission starts: right after the mission gets started; Timer delay: a down count; Trigger delay: when some editor's trigger is activated; Target delay: when a specific unit or vehicle or building is killed/destroyed; Once the spawn-points are created, the script will spawn the groups randomly through their faction spawns; There is no re-spawn. Death is death for units and vehicles spawned by CSWR; 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 markers will be used as one types of destinations (waypoints) for AI units and vehicles; Create unlimited different types of destinations: Move: groups will move randomly through your predefined move-markers; IMPROVED! Watch: sniper groups will search for the best high position to cover one of your predefined watch-markers; Hold: soldiers, civilians, or ground vehicles (mainly tracked ones) will set position facing a specific direction predefined by you with hold-markers; IMPROVED! Occupy: soldiers and civilians will search for a building around a predefined occupy-marker, and will go there, get in, and stay; IMPROVED! Sectorized destination: all destination types can be sectorized to be available only for specific groups/vehicles inside a faction; Once the destination markers are created, CSWR 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 group type, and even ground vehicles and helicopters; Add or remove Night-Vision-Goggles and Flashlights for one or more factions, easily through "True" or "False" management; There are 7 infantry templates and 8 vehicle templates to customize (with modded or vanilla things) for each faction; Define easily how many AI groups are in-game, what squad types they belong to, and their behavior: safe, aware, stealth, combat, chaos. For more details, check the documentation; IMPROVED! Available white and blacklist for buildings and ruins when groups are using Occupy movements; All vehicles and units spawned by CSWR can be (ON/OFF) editable by Zeus; Set if the CSWR should wait for another script load first on the server; Debugging: friendly error handling; Debugging: hint monitor to control some AI numbers; IMPROVED! Debugging: full documentation available. . Video demo: Check the file above on GitHub. Check the file above on GitHub. Link on this post header. (Above) Editor set if all one side can use night vision goggles (or just parachuters, or only sniper teams), or only flashlights, or both gears or none. If flashlights are available they need to be on all the mission long or just when each AI decides. (Above) WATCH destination (specific for sniper groups) is working much better with high natural terrains, regardless of whether the map is an official one. (Above) Group executing OCCUPY destinations can get in high towers with better distribution positions inside. (Above) Group executing OCCUPY, if they select an acceptable ruin/destroyed building, the group will always get in a crouch in this kind of position. (Above) Even heavy ground vehicles can be paradropped. (Above) All groups paradropped, when touched the ground, they will focus on regrouping with their squad leader before starting their missions. (Above) Helicopters automatically identify where all safe and not busy helipads are to land if they need to rearm, repair, refuel, or heal their wounded crew. 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: Tanks & Helicopters (light): https://steamcommunity.com/sharedfiles/filedetails/?id=2424050518 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: Apr, 14th 2024 | v6.5.2: news, fixes and notes. Known issues: - Watch > Sniper groups still not considering buildings when no natural highlands to take a position for overwatching; - Occupy > If you hide a building and the building can be occupied, the groups will consider that hidden building as a regular place to occupy; Paradrop > When parachuters are civilians, they're crouched right after landing and stay like this forever. - Move Hold > Sometimes tracked vehicles are not facing exactly the marker direction configured by the editor; - - - - - - - - - - - Video tutorials:
  5. Hiho Gentlemen, for the past weeks I have been looking into improving the FPS impact my Vandeanson's Apocalypse mod has on missions. What does the mod do? (all the below happens server side only, fyi) 1. []spawn "Position finder function": find well suiting locations to spawn sites of interest (small sized composition of structures, things and AI, e.g. a banditcamp) based on a random players location 2. []spawn "Site spawner function":mark that location (as set in #1.) and starts "waituntil {code to check for condition}" with condition that ANY player gets close to the site 3. create the site, enable dynamic simulation, start despawn timer 4.a [] "spawn hideobjectglobal function" that will hide the objects of a site once no player is near that site, but the despawn timer (item. 5 below) has not run out yet 4.b [] "spawn un-hideobjectglobal function" that will UNhide the objects of a site if a player is near again 5. wait for despawn timer to run out (minimum up-time of a site) 6. start "waituntil {code to check for condition}" with condition that no player is near the site 7. delete the site/AI 8. start at #1. I hope its somehow recognizable, that this should allow for a dynamic environement, with least possible performance impact due to the "waituntil" gating. Sites are only up if really needed e.g. a player is nearby to actually see the site. If the sites and AI are spawned, dynamic simulation is enabled. The performance gains compared to previous versions (where assets where spawned in and FPS was only saved by dyn. simulation) are already quite considerable. The performance saving actions happen through distance checks, waituntil, dynamic simulation, hideobjectglobal and despawn of sites that are no longer needed (e.g. noone within 4k meters proxy) However, the question that is bugging me currently is about the performance impact of having multiple (possibly 100+) waituntil and spawn threads up sametime. waituntil: the mod spawns about 10 type of sites, each sites may be spawned up to 10 times. Each creates an own "waituntil" thread. I seem to understand that these waituntils are continuisly eating up performance until the "condition" is met. Until then, the condition is checked every frame. In my case, these are way to many "check" iterations than needed. A check every 5 seconds is fine as well. Hence I changed the waituntil to waituntil {sleep 5; ...code..}; Question: am I correct that this shold have a "considerable" positive impact on performance of waituntil usage? I got this from forum posts so it should atleast have some hand and feets. [] spawns: most functions need to be spawned in a separate thread, I can not use "call" as the calling script can not be halted until the function returns true and since suspension (waituntil) is not allowed for called functions. Where i can use "call", i do that. Hence, in additiona to a lot of waituntils, I also have multiple spawn threads run more or less complex code sametime. I believe that if i put in sleep timers between each bulk of complex code that should help with performance (e.g. first all bandit camps are spawned, then the next site may start to spawn in). Question: this, if the sleep timers are set right, should put additional ease on cpu. Correct? Also, if I place small sleep timers throughtout spawned code, I should ease possible stutters/lags when spawning stuff. I could also add condition checks (uff, more waituntils) between major functions spawns, that only return true once the previous site/code bulk is done. I hope it is somehow understandable what I am trying to do and what the challenges are that I am worried about. A playable test version of the mod can be found here FYI: (it does not include ALL of the performance saving actions yet, but it should give you a fair picture). Why this post? I would like to understand if: - my thought process is correct - if the issues I am looking into are actual issues worth looking into - if more experienced people would take a similar approach or if I am missing knowledge and the issue could be taken on in better ways. The changes I made already show positive results, but I am sure that there are things that I dont know yet. The above conclusions are based on the last 2 years of coding various projects and reading up various topics online (KK's blog, forum posts, code optimisation guides...) I have no professional coding background, hence I might lack basic knowledge. End of wall of text. I appreciate any feedback, input, source of information and so on that I can get;) Thanks! Cheers VD
  6. 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.
  7. all vehicles are glitching into the ground slightly. can watch a vics bottom part of tracks disappear into the ground and then pop back up over and over again. when the track glitches into ground you are not able to get in it until it pops back up above the ground. after a while the vehicles are all damaged .
  8. Hello everyone, I've created this 2 scripts/functions because I was bored to find (for an hour) and kill the last enemy in a sector to get control of it, even though I had a hundred allies in it. I recommend to use both scripts as functions and not scripts, because both can be called multiple times and having functions can be a lot more handy if you guys are scripting. Does it work in multiplayer? Yes, MultiPlayer and SinglePlayer. What does this script/function do? This script accepts 2 parameters: - Position (center position of the sector) - Range (Ellipse range in meters) It calculates (by counting infantry of each side inside the sector) which side is owning the given sector and returns it as text. How does it calculate the infantry inside? It calls a second script which is getUnitsCount. This script can be also called by itself if you need it somewhere else, it accepts 3 parameters: - Position - Range - Side → of which you want to get the units count inside the area. If AI vehicles are inside the area, crew will be calculated. getUnitsCount returns the sum of the units, therefore an integer value. Return values - "west" → If BLUFOR are owning the sector; - "east" → If OPFOR are owning the sector; - "independent" → If Independents are owning the sector; - "civilian" → If no-one is owning the sector, which means not a single west, east or independent unit is inside the area, therefore civilians own it or it's currently contended (same units for each side) How do I call the script? [_positionParameter, _rangeInMeters] execVM "getCurrentOwnership.sqf"; How do I use it in a trigger? Simply put a trigger with the following condition, obviously on the right hand side instead of west you can use civilian, independent or east if you'd like to check if the given side has ownership of the area. It can be also called from other script if you like to do so. Make sure the trigger is ServerOnly!!!!! ([_positionParameter, _rangeInMeters] execVM "getCurrentOwnership.sqf") == "west" ----------------- SCRIPTS ----------------- getUnitsCount.sqf //Uncomment following if using as function //params [ "_position", "_distance", "_side" ]; //Uncomment following if using as script _position = _this select 0; _distance = _this select 1; _side = _this select 3; _infantrycount = 0; _countedvehicles = 0; _vehiclecrewcount = 0; _infantrycount = _side countSide ( [ _position nearEntities [ "Man", _distance],{ !(captive _x) && ((getpos _x) select 2 < 100) }] call BIS_fnc_conditionalSelect ); _countedvehicles = [ ( _position nearEntities [ ["Car", "Tank", "Air"], _distance] ), { ((getpos _x) select 2 < 750) && count (crew _x) > 0 } ] call BIS_fnc_conditionalSelect; _vehiclecrewcount = 0; { _vehiclecrewcount = _vehiclecrewcount + (_side countSide (crew _x)) } foreach _countedvehicles; //Return value (_infantrycount + _vehiclecrewcount) getCurrentOwnership.sqf (updated 08 march 2023) //Uncomment following if using as function //params["_position","_range"]; //Uncomment following if using as script _position = _this select 0; _range = _this select 1; _westCount = [_position, _range, west] call OFF_fnc_getUnitsCount; _eastCount = [_position, _range, east] call OFF_fnc_getUnitsCount; _indeCount = [_position, _range, independent] call OFF_fnc_getUnitsCount; _result = 0; if (_westCount > _eastCount && _westCount > _indeCount) then { _result = "west"; }; if (_westCount > _eastCount && _westCount < _indeCount) then { _result = "independent"; }; if (_eastCount > _westCount && _eastCount > _indeCount) then { _result = "east"; }; if (_eastCount > _westCount && _eastCount < _indeCount) then { _result = "independent"; }; if (_indeCount > _westCount && _indeCount > _eastCount) then { _result = "independent"; }; if (_indeCount > _westCount && _indeCount < _eastCount) then { _result = "east"; }; _result;
  9. What does this script do? This script creates a minefield with a random number of mines and IED, positioning them in a random way inside the given area. Does not include APERSTripMine (mines with cable) Does it work in multiplayer? Yes, it works in MultiPlayer and SinglePlayer Parameters _area → Marker → Set a marker area with the size you like in editor _minMinesCount → int → Minimum number of mines you want in the area _maxMinesCount → int → Maximum number of mines you want in the area How do I call the script? Just get into your init.sqf and place it like this, has to be server only. If you have multiple minefields you have to add multiple lines with each marker and number of mines. if (isServer) { ["MarkerName", 10, 30] execVM "randomMinefield.sqf"; }; Next improvements - Will use marker position and specified range manually instead of marker size which is not very handy. randomMinefield.sqf (thanks to Hypoxic125 for the error feedback) //Uncomment following if used as function //params["_area", "_minMinesCount", "_maxMinesCount"]; //Uncomment following if used as script _area = _this select 0; _minMinesCount = _this select 1; _maxMinesCount = _this select 2; _minesArray = ["ATMine","APERSBoundingMine","APERSMine","IEDLandBig_F","IEDUrbanBig_F","IEDUrbanSmall_F","IEDLandSmall_F"]; _minesCountInArea = random[_minMinesCount, _maxMinesCount/2, _maxMinesCount]; _areaDimensions = getMarkerSize _markerArea; _minesPositionRange = _areaDimensions select 0; //Creating random position and spawning mines for "_i" from 0 to _minesCountInArea - 1 do { _randomPos = [[_markerArea], []] call BIS_fnc_randomPos; _randomPos set [2, 0]; createMine[selectRandom _minesArray, _randomPos, [], 0]; }
  10. Hi, is there any code or other way to get textures path to a vehicle, so I can use setObjectTextureGlobal when I spawn it? I have found this on internet but even I can say its deeply wrong _vehicleType = typeOf cursorTarget; _textureSets = "true" configClasses (configFile >> "CfgVehicles" >> _vehicleType >> "TextureSources"); _availableTextures = []; _textureSets apply { _colorName = configName _x; _textures = [_x , "textures", []] call BIS_fnc_returnConfigEntry; _availableTextures pushBack [_colorName, _textures]; Gives me error "Missing }" when used in debug console.
  11. NightOps - Arma Platform Modding Project www.NightOps.de One month after the early access release of Arma Reforger, we are happy to announce the NightOps modding project officially. We provide frameworks and custom gamemodes in Arma Reforger for everyone to use. This makes creating a coop or solo scenario very easy for mission makers. No workbench experience yet? Don’t worry, our first tutorials and documentation will lead you through it! And the best thing, it’s already published! The team made several released the last weeks but we feel now ready, to announce this project to the public. You can either use just one framework as a dependency or the whole package with a lot of useful features for creating custom missions. A showcase what features and mechanics are included can be already played in the NightOps - Everon 1985 mini-campaign and we will release custom PvE and PvPvE gamemodes in the near future. What is already done and can be used right now by everyone: Custom Modes Framework (provides ready-to-use Coop gamemode prefabs and some mighty custom trigger for mission design) Dynamic Task Framework (provides a dedicated server working task manager with a lot of custom task trigger) Dynamic Spawn Framework (provides a system to dynamically spawn and de-spawn groups, vehicles and objects and can even use a dynamic faction system to change the spawning units depending on mission header configuration) Everything is covered in a great basic tutorial written by Herbiie and documented well on our website. And more deep dive guides will follow soon about every framework. Next to that, Zeal published a small tutorial about Additional Script utilizing the frameworks in a more specific way about topics, people were asking lately alot. It’s part of our philosophy to make the project open-source sharing everything we learned for the community. So you can either just download the dependencies in the Ingame workshop or review the sourcecode repositories on GitHub. And finally, I want to share a overview about our roadmap for the near future: While we are working already on bigger gamemodes in the background, we are happy to tease the NightOps DYNAMIC COMBAT PATROL mode which will be released soon. We will offer a immersive and persistent combat patrol experience for Arma Reforgers Everon map. And mission makers can use the gamemode out of the box to add it to other custom terrains easily. Ofcourse, that will be covered by another tutorial when it's done. So don’t miss an update and follow us on Twitter. We are looking for your feedback and issue reports. And if you need support, you can always tag us in the official Arma discord server, on the Enfusion Discord or in our own NightOps discord. So enjoy the mods, feel free to critize what's buggy right now (and we expect that you find the bug's we aren't aware of) and stay safe!
  12. Hello! im trying to make a script that spawns 1-3 helicopters on a random location on a map and they starts to patroling. what i have so far is this : _vehicle = createVehicle [ "B_Heli_Light_01_F", player getPos[ 100, getDir player ], [], 0, "FLY" ]; createVehicleCrew _vehicle; this is spawning it in the air but i cant seem to find anything that makes it spawn random, this makes it spawn over the player head. i know that BIS_fnc_randomPos exists but cant seem to get it to work. i also need the script to add " [group _unit, getPos _unit, 1000] call BIS_fnc_taskPatrol; " to the helicopters init field to make it start patroling. and maybe if we are pushing it, maybe having to loiter a little around each waypoint i feel like i got almost all the pieces to the puzzle but have lost my glasses so i cant put it together... i hope you guys can help.
  13. Hi everyone, I need little help with spawning defender/garrison/static units into my mission. My question is if this is the right way to do this? What I do is open new mission on the same map as my main mission, carefully and precisely place all defender units (units that will stay on one position) save and export to SQF. I paste the code in "someTown.sqf" and then use this to spawn it in the main mission: ["someTown.sqf", "BIS_fnc_execVM", false, false] call BIS_fnc_MP; Probably there is more up to date and efficient way to do this via remoteExec but I cannot understand how to do it ... please help. Coding every static gun or defender position and heading is much slower and consumes much more time ...
  14. Hello guys, thanks for taking the time. I am working hard on an experience for some people that I am going to entertain as Zeus and mission maker, but gotten to a point where I have not manage to find any module, mod or other script that meet my specific needs. My friends during their adventure through a map, will come and go to different locations, and return to the same ones again potentially. Each time they do, I want to be able to spawn in AI units, under specific classnames, in very specific location like a marker or trigger. Maybe one AI of one type of classname stands at a gatehouse, and another AI of another type of classname is standing outside in the rain. But each time they go there, they will spawn in into the same spot or markers. And if they leave, they will despawn again, in order to save on performance for the server. I have seen many population scripts out there, but they generally populate areas and houses, they do not place them into very specific manual locations, or i can choose which classname will be placed down to the detail. I am also looking for the option that if I spawn a third guy by the guard house, he starts to patrol in a small radius when he has appeared. I can easily create this by placing down NPCs, but it is going to tax the performance if I have so many different locations populated all at once. It would be better if they despawn on leaving, and respawn on approach. It would also be useful if there are specific enemy classnames in an area they can attack, they will respawn later in case they want to go back and do the same attack over again. Anyone has any ideas or suggestions? Much appreciated!
  15. Hi all i have this script i use to spawn a heli, and it land at my location like planed But how do i make so that a trigger fires when i get inside the heli. i have tried with COND: BOB in P3REndHeli. also COND: BOB in EndHeli. but no joy, anyone got some ideas. Cheers Play3r private _P3REndHeli = createVehicle ["B_Heli_Transport_03_F", getMarkerPos "HeliSpawn", [], 0, "FLY"]; createVehicleCrew _P3REndHeli; _P3REndHeli setVehicleVarName "EndHeli"; systemChat str _P3REndHeli; private _LandingPad = "Land_HelipadEmpty_F" createVehicle position player; _waypointPickup = group driver _P3REndHeli addWaypoint [position _LandingPad,0]; _waypointPickup setWaypointType "SCRIPTED"; _waypointPickup setWaypointScript "A3\functions_f\waypoints\fn_wpLand.sqf";
  16. Hi guys, I am bashing my head with something very easy (hopefully 🙂). I want to make a script to fill some buildings (sorted by classname or random) with enemies in given location (town, village, etc.). The old way I used before was just making a trigger next to every big building in the location and pasting this in on activation: private _group = createGroup [WEST, true]; _unit1 = _group createUnit ["CUP_B_US_Soldier_OEFCP",(nearestBuilding thisTrigger buildingPos 1),[],0,"CAN_COLLIDE"]; _unit1 disableAI "PATH"; _unit1 setUnitPos "UP"; _unit2 = _group createUnit ["CUP_B_US_Soldier_MG_OEFCP",(nearestBuilding thisTrigger buildingPos 2),[],0,"CAN_COLLIDE"]; _unit2 disableAI "PATH"; _unit2 setUnitPos "UP"; _unit3 = _group createUnit ["CUP_B_US_Soldier_GL_OEFCP",(nearestBuilding thisTrigger buildingPos 3),[],0,"CAN_COLLIDE"]; _unit3 disableAI "PATH"; _unit3 setUnitPos "UP"; _unit4 = _group createUnit ["CUP_B_US_Soldier_OEFCP",(nearestBuilding thisTrigger buildingPos 4),[],0,"CAN_COLLIDE"]; _unit4 disableAI "PATH"; _unit4 setUnitPos "UP"; _unit5 = _group createUnit ["CUP_B_US_Soldier_MG_OEFCP",(nearestBuilding thisTrigger buildingPos 5),[],0,"CAN_COLLIDE"]; _unit5 disableAI "PATH"; _unit5 setUnitPos "UP"; _unit6 = _group createUnit ["CUP_B_US_Soldier_GL_OEFCP",(nearestBuilding thisTrigger buildingPos 6),[],0,"CAN_COLLIDE"]; _unit6 disableAI "PATH"; _unit6 setUnitPos "UP"; Its terribly tedious and I want to change it to a proper script executed by the server. Any ideas?
  17. What I began on my current AR project is to create a tool class with methods that make me some things easier. In this case I show how to create an easy to use CreateVehicle and a DeleteVehicle method with overloaded argument lists. Which just means that you can have different parameter syntaxes as known from various Arma 3 commands. I created a new script file in the newly created folder MyProject/scripts/GameCode/Tools according to the AR directory structure as I understand it^^. I named the file SaRo_Tools.c - this file will contain the class with my tools methods. What do I have to do when spawning a vehicle without that tools class? Something like this: Now instead of doing this we create our tools class which does most of this automatically: Now you have 2 easy methods to spawn a vehicle: IEntity vehicle1, vehicle2; //1st method using resource name and spawn position vehicle1 = SaRo_Tools.CreateVehicle("{DD774A8FD0989A78}Prefabs/Vehicles/Wheeled/M998/M1025_armed_M2HB_MERDC.et", Vector(1288.93, 0, 766.7)); //2nd method using resource name, an existing entity and a position vector relative to that entity vehicle2 = SaRo_Tools.CreateVehicle("{DD774A8FD0989A78}Prefabs/Vehicles/Wheeled/M998/M1025_armed_M2HB_MERDC.et", someEntity, Vector (0, 0, -15)); //spawns 15m behind someEntity Maybe I did some mistakes in this post because I did write it out of my mind partially. But I ll validate, expand and edit it if Im at home... Deletion methods will be done then as well EDIT: to get this done, I also added 2 entity deletion methods to the tools class. I just post those 2 methods and not the CreateVehicle methods from above again although they are in that class: Now you have 2 easy methods to delete an entity: //1st method delete using the entity ID SaRo_Tools.DeleteVehicle ( SaRo_BMHQ01MenuBaseClass.camoNetID ); //2nd method delete using the entity itself SaRo_Tools.DeleteVehicle ( someEntity ); Now YOU know how to build an own tools library class and you also know how to overload class methods. Its your turn to create more methods that way to get things a bit easier for you...
  18. Hi, there. I am trying to make two "factories" in my mission - one producing fuel and the other vehicle ammo points. Both factories should produce a box filled with fuel and "ammo points" respectively. The fuel and ammo points use ACE3 framework. For the fuel factory I made these script and it works perfectly (executed via initServer) : while {true} do { sleep 1800; _fuel = "CargoNet_01_barrels_F" createVehicle [4694.33,9483.27,0]; [_fuel, 1000] call ace_refuel_fnc_makeSource; _marker = createMarker ["Fuel Produced!", [4697.51,9475.91,0]]; _marker setMarkerType "loc_Truck"; sleep 300; deleteMarker "Fuel Produced!" }; Every half hour it produces one barrel with 1000 fuel (ACE). I tried to make the same thing with ammo points for vehicle rearming but no success. I am trying to implement ACE3 Rearm framework code (taken from https://ace3.acemod.org/wiki/framework/rearm-framework.html) : while {true} do { sleep 600; _ammobox = "CargoNet_01_box_F" createVehicle [5058.03,6888.37,0]; _ammobox = setVariable ["ace_rearm_isSupplyVehicle",true]; [_ammobox, 1200] call ace_rearm_fnc_setSupplyCount; _marker = createMarker ["Ammo Produced!", [5056.13,6886.58,0]]; _marker setMarkerType "loc_Truck"; sleep 300; deleteMarker "Ammo Produced!" }; But it doesn't spawn anything, it doesn't show any error and I have no clue why isn't working. Big thanks to everyone who wants to help a big script nOOb like myself.
  19. Hi. There's a two issues I'd like some help with for a KP Liberation mission I've created for the Chernarus 2020 map: 1) I want to add an oil rig as a factory. I've added the factory marker in the editor as below where I've experimented with changing its height. However, when I play the mission on the server and enter the capture zone, the bar just fills up blue with no AI spawning. I've only managed to spawn AI twice: once in mid-air where one died and the others vanished and another where a BTR-80 was in the water. Would I need a separate script that kicks in just for spawning OpFor AI on the oil rig? In the second screenshot there's respawn positions that came with the composition which I normally delete before saving. Can they be used instead? 2) I'd like to have active/dynamic playermarkers back just like in this thread. If you unPBO the mission, there's a GREUH_playermarkers.sqf file which I gather must be what I'm after. However, in the Parameters screen it's something that's only available under the GREUH player menu not KP Player Menu but GREUH doesn't work. How do I enable it for KP Player Menu? I know this can cause issues but for my mission I'm not using the Steam Workshop version and instead using the mission.sqm and all the folders/files in Missionframework from the GitHub site. I have also asked on the Discord channel (KP DEVELOPMENTS -> # kp-liberation) but unfortunately no one could help. Although someone did suggest because it's a composition rather than a single 'asset' (i.e. a house) I'm using and/or being on the water this might be what's causing the first issue? I have asked on the KP Liberation thread as well as the Discord server but unfortunately no one's being able to help so far. Thanks in advance!
  20. Hello i am newbie to scripting and arma3 editing and i can't find an answer to this: I spawn a group of AI infantry and a truck (will be 2 IFVs when i get it to work) then set the waypoint so the AI infantry group board the truck. I had no success yet. The AI infantry group move then stand still near the truck and do nothing. I would be glad if anyone can tell me what i am doing wrong. This is the code for the truck: And this is the code for the infantry group:
  21. What does this script do? This script spawns random reinforcements (group from 4 to 10 men) of the desired faction at the given position, and they will automatically redirect to players position (at the moment of script call, as Last Known Position). Does it work in multiplayer? Yes, it works in MultiPlayer and SinglePlayer Parameters _faction → String → Faction (see below) _sideReinforcements → Side → Side of reinforcements of which can be → west, east, independent _spawnPosition → Position → Center position of where you want to spawn reinforcements _rangeOfSpawn → int → Range of spawn from spawnPosition (if you like to narrow spawn just set this as 1) _addVehicle → Bool → Add a support vehicle Do you think side can be redundant? Maybe, but faction has been added secondly as I didn't want plain CSAT reinforcements when I'm playing on Livonia with Specnaz units, you know? I know not all RHS units have been added, I probably will, no guarantee. If you do script, you can.. Just look at the code, it's easy. Supported Factions SUPPORTED VANILLA FACTIONS: BLU_F NATO (standard) OPF_F CSAT (standard) IND_F AAF (standard) BLU_T_F NATO (Apex, pacific) OPF_T_F CSAT (Apex, pacific) IND_C_F Syndikat (Apex) BLU_W_F NATO Woodland (Contact) OPF_R_F Specnaz (Contact) IND_E_F LDF (Contact) SUPPORTED MODS FACTIONS: rhs_faction_usarmy_d RHS USAF (USA Army D OCP) rhs_faction_usarmy_wd RHS USAF (USA Army D UCP) rhs_faction_usmc_d RHS USAF (USA Army D MARPAT) rhs_faction_usmc_wd RHS USAF (USA Army WD MARPAT) rhs_faction_msv RHS AFRF (Russia MSV EMR) rhs_faction_vdv RHS AFRF (Russia VDV DES) rhssaf_faction_army RHS SAF (KOV Digital) Tban EricJ Taliban Units Edit: Added Syndikat faction IND_C_F (26/02/2022) How do I call the script? Let's say I am a BLUFOR player and I call for reinforcements, just put the following line in a activation trigger line: ["BLU_F", west, getMarkerPos "spawnMarkerPoint", 1, true] execVM "reinforcements.sqf"; Let's say RHS AFRF (Russians) enemy called reinforcements instead, those reinforcement will proceed to my position to engage: ["rhs_faction_msv", east, getMarkerPos "russianReinforcementsSpawnMarker", 1, false] execVM "reinforcements.sqf"; reinforcements.sqf //Uncomment following if used as function //params["_faction","_sideReinforcements","_spawnPosition", "_rangeOfSpawn","_addVehicle"]; //Uncomment following if used as script _faction = _this select 0; _sideReinforcements = _this select 1; _spawnPosition = _this select 2; _rangeOfSpawn = _this select 3; _addVehicle = _this select 4; _unitsArray = []; _vehicleArray = []; _unitsArrayToSpawn = []; _counter = 0; //Parsing factions switch (_faction) do { //Vanilla case "BLU_F": //NATO (standard) { _unitsArray = [ "B_Soldier_SL_F", "B_Medic_F", "B_Soldier_GL_F", "B_Soldier_F", "B_HeavyGunner_F", "B_Soldier_LAT_F", "B_Soldier_M_F", "B_Soldier_AR_F", "B_Soldier_LAT2_F", "B_Soldier_UAV_F" ]; _vehicleArray = [ "B_MRAP_01_hmg_F" ]; }; case "OPF_F": //CSAT (standard) { _unitsArray = [ "O_Soldier_SL_F", "O_Medic_F", "O_Soldier_HAT_F", "O_Soldier_GL_F", "O_Soldier_F", "O_HeavyGunner_F", "O_Soldier_F", "O_Soldier_M_F", "O_Soldier_AR_F", "O_Soldier_UAV_F" ]; _vehicleArray = [ "O_MRAP_02_hmg_F" ]; }; case "IND_F": //AAF units { _unitsArray = [ "I_Soldier_SL_F", "I_Medic_F", "I_Soldier_GL_F", "I_Soldier_F", "I_Soldier_AR_F", "I_Soldier_F", "I_Soldier_AT_F", "I_Soldier_AA_F", "I_Soldier_M_F", "I_Soldier_UAV_F" ]; _vehicleArray = [ "I_MRAP_03_hmg_F" ]; }; case "IND_C_F": //Syndikat units { _unitsArray = [ "I_C_Soldier_Para_1_F", "I_C_Soldier_Para_2_F", "I_C_Soldier_Bandit_7_F", "I_C_Soldier_Bandit_1_F", "I_C_Soldier_Para_5_F", "I_C_Soldier_Bandit_6_F", "I_C_Soldier_Bandit_5_F", "I_C_Soldier_Bandit_4_F", "I_C_Soldier_Para_6_F", "I_C_Soldier_Para_3_F" ]; _vehicleArray = [ "I_C_Offroad_02_AT_F" ]; }; case "OPF_T_F": //Chinese CSAT (Apex) { _unitsArray = [ "O_T_Soldier_SL_F", "O_T_Medic_F", "O_T_Soldier_HAT_F", "O_T_Soldier_GL_F", "O_T_Soldier_F", "O_T_HeavyGunner_F", "O_T_Soldier_F", "O_T_Soldier_M_F", "O_T_Soldier_AR_F", "O_T_Soldier_UAV_F" ]; _vehicleArray = [ "O_T_MRAP_02_hmg_ghex_F" ]; }; case "BLU_T_F": //NATO Pacific (Apex) { _unitsArray = [ "B_T_Soldier_SL_F", "B_T_Medic_F", "B_T_Soldier_GL_F", "B_T_Soldier_F", "B_T_HeavyGunner_F", "B_T_Soldier_LAT_F", "B_T_Soldier_M_F", "B_T_Soldier_AR_F", "B_T_Soldier_LAT2_F", "B_T_Soldier_UAV_F" ]; _vehicleArray = [ "B_T_MRAP_01_hmg_F" ]; }; case "BLU_W_F": //NATO (Contact) { _unitsArray = [ "B_W_Soldier_SL_F", "B_W_Medic_F", "B_W_Soldier_GL_F", "B_W_Soldier_F", "B_W_HeavyGunner_F", "B_W_Soldier_LAT_F", "B_W_Soldier_M_F", "B_W_Soldier_AR_F", "B_W_Soldier_LAT2_F", "B_W_Soldier_UAV_F" ]; _vehicleArray = [ "B_T_MRAP_01_hmg_F" ]; }; case "OPF_R_F": //Specnaz (Contact) { _unitsArray = [ "O_R_Soldier_SL_F", "O_R_Medic_F", "O_R_Soldier_LAT_F", "O_R_Soldier_GL_F", "O_R_JTAC_F", "O_R_JTAC_F", "O_R_JTAC_F", "O_R_Soldier_M_F", "O_R_Soldier_AR_F", "O_R_JTAC_F" ]; _vehicleArray = [ "O_T_LSV_02_armed_F" ]; }; case "INF_E_F": //LDF (Contact) { _unitsArray = [ "I_E_Soldier_TL_F", "I_E_Medic_F", "I_E_Soldier_GL_F", "I_E_Soldier_F", "I_E_Soldier_AR_F", "I_E_Soldier_F", "I_E_Soldier_AT_F", "I_E_Soldier_AA_F", "I_E_Soldier_M_F", "I_E_Soldier_UAV_F" ]; _vehicleArray = [ "I_E_Offroad_01_covered_F" ]; }; case "rhs_faction_usarmy_d": //RHS USAF (USA Army D OCP) { _unitsArray = [ "rhsusf_army_ocp_squadleader", "rhsusf_army_ocp_medic", "rhsusf_army_ocp_grenadier", "rhsusf_army_ocp_rifleman", "rhsusf_army_ocp_autorifleman", "rhsusf_army_ocp_rifleman", "rhsusf_army_ocp_javelin", "rhsusf_army_ocp_marksman", "rhsusf_army_ocp_aa", "rhsusf_army_ocp_uav" ]; _vehicleArray = [ "rhsusf_m1025_d_m2" ]; }; case "rhs_faction_usarmy_wd": //RHS USAF (USA Army W UCP) { _unitsArray = [ "rhsusf_army_ucp_squadleader", "rhsusf_army_ucp_medic", "rhsusf_army_ucp_grenadier", "rhsusf_army_ucp_rifleman", "rhsusf_army_ucp_autorifleman", "rhsusf_army_ucp_rifleman", "rhsusf_army_ucp_javelin", "rhsusf_army_ucp_marksman", "rhsusf_army_ucp_aa", "rhsusf_army_ucp_uav" ]; _vehicleArray = [ "rhsusf_m1025_w_m2" ]; }; case "rhs_faction_usmc_d": //RHS USAF (USMC D) { _unitsArray = [ "rhsusf_usmc_marpat_d_squadleader", "rhsusf_navy_sarc_d_fast", "rhsusf_usmc_marpat_d_grenadier", "rhsusf_usmc_marpat_d_rifleman", "rhsusf_usmc_marpat_d_autorifleman", "rhsusf_usmc_marpat_d_rifleman", "rhsusf_usmc_marpat_d_javelin", "rhsusf_usmc_marpat_d_marksman", "rhsusf_usmc_marpat_d_stinger", "rhsusf_usmc_marpat_d_uav" ]; _vehicleArray = [ "rhsusf_m1025_d_s_m2" ]; }; case "rhs_faction_usmc_wd": //RHS USAF (USMC WD MARPAT) { _unitsArray = [ "rhsusf_usmc_marpat_wd_squadleader", "rhsusf_navy_sarc_wd_fast", "rhsusf_usmc_marpat_wd_grenadier", "rhsusf_usmc_marpat_wd_rifleman", "rhsusf_usmc_marpat_wd_autorifleman", "rhsusf_usmc_marpat_wd_rifleman", "rhsusf_usmc_marpat_wd_javelin", "rhsusf_usmc_marpat_wd_marksman", "rhsusf_usmc_marpat_wd_stinger", "rhsusf_usmc_marpat_wd_uav" ]; _vehicleArray = [ "rhsusf_m1025_w_s_m2" ]; }; case "rhs_faction_msv": { _unitsArray = [ "rhs_msv_emr_sergeant", "rhs_msv_emr_medic", "rhs_msv_emr_grenadier_rpg", "rhs_msv_emr_rifleman", "rhs_msv_emr_arifleman_rpk", "rhs_msv_emr_rifleman", "rhs_msv_emr_rifleman", "rhs_msv_emr_aa", "rhs_msv_emr_LAT", "rhs_msv_emr_marksman" ]; _vehicleArray = [ "rhs_tigr_sts_msv" ]; }; case "rhs_faction_vdv": { _unitsArray = [ "rhs_vdv_des_sergeant", "rhs_vdv_des_medic", "rhs_vdv_des_grenadier_rpg", "rhs_vdv_des_rifleman", "rhs_vdv_des_arifleman_rpk", "rhs_vdv_des_rifleman", "rhs_vdv_des_rifleman", "rhs_vdv_des_LAT", "rhs_vdv_des_aa", "rhs_vdv_des_marksman" ]; _vehicleArray = [ "rhs_tigr_sts_3camo_msv" ]; }; case "Tban": { _unitsArray = [ "TBan_Fighter6", "TBan_Fighter5", "TBan_Fighter4", "TBan_Fighter3NH", "TBan_Fighter2NH", "TBan_Fighter1NH", "TBan_Fighter3", "TBan_Fighter2", "TBan_Fighter1" ]; _vehicleArray = [ "Tban_O_Offroad_01_F" ]; }; case "rhssaf_faction_army": { _unitsArray = [ "rhssaf_army_m10_digital_sq_Lead", "rhssaf_army_m10_digital_medic", "rhssaf_army_m10_digital_gl", "rhssaf_army_m10_digital_rifleman_m70", "rhssaf_army_m10_digital_mgun_m84", "rhssaf_army_m10_digital_rifleman_m70", "rhssaf_army_m10_digital_rifleman_m70", "rhssaf_army_m10_digital_spec_aa", "rhssaf_army_m10_digital_spec_at", "rhssaf_army_m10_digital_sniper_m76" ]; _vehicleArray = [ "rhssaf_m1151_olive_pkm" ]; }; }; _groupSize = [4,10] call BIS_fnc_randomInt; _unitsArray resize _groupSize; //Random position around given position _randomSpawnPosition = [_spawnPosition, random _rangeOfSpawn, random 360] call BIS_fnc_relPos; //Spawning group _spawnedGroup = [_randomSpawnPosition, _sideReinforcements, _unitsArray] call BIS_fnc_spawnGroup; _waypoint = _spawnedGroup addWaypoint [position (allPlayers select 0), 0]; _waypoint setWaypointBehaviour "AWARE"; _waypoint setWaypointCombatMode "RED"; _waypoint setWaypointSpeed "FULL"; _waypoint setWaypointType "MOVE"; _waypoint setWaypointStatements ["true",""]; _spawnedGroup setCurrentWaypoint [_spawnedGroup, 0]; //Spawning vehicle if (_addVehicle) then { _vehGroup = [_randomSpawnPosition, _sideReinforcements, _vehicleArray] call BIS_fnc_spawnGroup; _wp = _vehGroup addWaypoint [position (allPlayers select 0), 0]; _wp setWaypointBehaviour "AWARE"; _wp setWaypointCombatMode "RED"; _wp setWaypointSpeed "FULL"; _wp setWaypointType "MOVE"; _wp setWaypointStatements ["true",""]; _vehGroup setCurrentWaypoint [_vehGroup, 0]; };
  22. 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];
  23. Hey, I'm new to coding and mission editing in Arma, so please go easy on me. I'm attempting to create a template of sorts to build future missions out of, I want to have a clean, easy & modular spawn system that can be easily tweaked for different scenarios, I also want to do this without mods. I am aware of 2 main ways of handling spawning AI, "createUnit" and "BIS_fnc_spawnGroup" I'm not exactly sure what is best for my specific use case, and I'm not entirely sure how to use either of them properly. Essentially what i want to do is have a trigger spawn multiple units of my choice on a marker and then have the units move towards another marker, I also want to be able to modify the behavior of these units (ex. start on limited speed.) I have tried a few different methods to achieve this, these are the issues I'm having with each: With "createUnit" the only way i have found to spawn multiple units is to repeat the code over and over, I'm sure there's a better way to do this and if so I'd love to know. Also with my current setup i have to repeat the domove code for each individual unit, I would also like to know if there is a better way to do this. Here is the code located in the triggers "On activation" field: With "BIS_fnc_spawnGroup" I'm not entirely sure how to order the units spawned within to move towards a marker, I would like to know how to do this, and I also read somewhere that the group will not be automatically deleted when all units are dead so I added a line at the end, I have no idea if it works though. Here's the code for that from the triggers activation field: I read that createUnit is better for performance when paired with the sleep command, however i have no idea how that works, and I also have my doubts, at-least with my current code repeating the same lines over and over for each unit seems very inefficient, the BIS command seems much cleaner however i don't know how to issue a move order with it which is my main problem. Additionally i would like to setup a headless client but that's a whole different topic and I don't want to draw this out any further, though if you feel like you have some useful advice on that please do share. Thanks and any advice & methods is appreciated. ❤️
  24. Hi all, Here is a new module in MGI Advanced Module addon, for spawning any groups you want, any time... (done) This module allows: - to spawn any group, even customized, on any side, - spawning on multiple possible areas (triggers) - with a wide randomized choice or a very specific group. You can place several modules on the map, each of them have their own parameters; 1. Choose the side (applies to all groups spawned from a module, no matter the initial vanilla side). So civilian units can be aggressors. 2. decide if you want to spawn: * at total random (so the groups are picked in cfgGroups, but for the side you chose (normal limitation) * at randomized or specific faction(s) . They must exist in cfgGroups (not all factions from cfgFactionClasses are available for groups). All factions (cfgGroups) are available so not depending, here, on the final side * You can filter these first possibilities by the type(s) of groups. For example, "infantry" and/or "motorized" and/or "armored"... But, these types must exist in the cfgGroups. * you can choose to spawn a specific group (from cfgGroups).. or even an array of units, vehicles... or even an edited group (with all customized textures, pylons, loadouts...) * linked group(s) on module, customized or not, will be candidates for spawning. That's fine for spawning not existing groups such as air or sea patrols. 3. Choose the attitude: behavior, combat mode, formation... 4. choose the repeat sequence (limitation and delay) 5. decide on what condition groups module can spawn (not only at start, but any time!) 6. decide for a simple task (or not). Chase players, enemies, defend... 7. run a code for each group (useful for specific task) MODULE(S) IN 3DEN - Position/ area of the module(s) if no synced trigger area. Direction of the module, in 3den, is the direction of the group (if no synced trigger area) SYNCED TRIGGER AREA(S) - The position, area and direction of the module doesn't matter any more. The group(s) are spawning at randomized positions in randomized trigger area(s), with the direction of the trigger area. SYNCED UNIT(S) - In 3den, you can place (customized or not) group(s) with the module(s). No matter if you synced one (leader or not) or several units of a group, with the module. The group will be candidate for spawning. PARAMETERS SIDE - Definitely the side of your group(s) for this module. No matter the choice you did (edited group, chosen faction(s), or type(s) of group or group(s)..) What ever you spawn we belong to this side. --> But, if you let the module at full random (no synced group, no, faction, no type, no group), in this case, the randomized group is picked among the native possibility from cfgGroups. So, if you just select a side (say EAST), you'll spawn randomized groups(s) from OPFOR. HOW MANY GROUPS - The number of group(s) to be spawned at each occurrence. Randomization will depend on the possibility of what you want to spawn, so your choice) Min 1 max 12 (limited for performance saving when spawning heavy customized groups. Feel free to add other modules) NOTE: The modules works with edited groups or existing configs/classes of groups in cfgGroups (see config viewer from console). So, scripted groups have always the architecture: configFile >> "cfgGroups" >> "side" >> "faction"* >> "type of group" >> "group" ... then units/vehicles for each group Example: side like "Indep" , faction like "IND_E_F", type like "infantry", group like "I_E_InfSquad" FACTION(S)* - If empty, no filter about them. If filled without any more details (type(s), group(s) ) all available factions in cfgGroups can be used to spawn any child type, then any child group. But ⚠️ all current faction names can't work. Some existing factions in cfgFactionClasses are not present in cfgGroups. For example: "CIV_IDAP_F" (IDAP civilian faction has no group) or even "OPF_V_F" (Arma Viper) can't work in the architecture of cfgGroups. (for Viper, the only group defined in: configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "SpecOps" >> "OI_ViperTeam" exits. So at faction level, there is nothing to do). You can fill the parameter with a working class like: "OPF_F" , or the config (configfile >> "CfgGroups" >> "East" >> "OPF_F"), or an array of these possibilities. Not case sensitive. TYPE(S) - if more a filter about what you want to spawn. That should be simple as "infantry" or " motorized or mechanized" or "armored". That doesn't. Even in Arma vanilla, you can find exotic classes as "motorized_MTP". Any dev has his own mind to sort the groups by types. The reason is probably the way you can find sorted groups in 3den's right panel. But, it's just impossible (or needs an updated list of hundreds of names) to filter groups easily. You have to do that job, if you want to do so, writing a config or a class or an array of that, for filtering the type(s). Not case sensitive but do not make typo's error! If wrong, there is no more filter. You can fill the parameter with a working class (not the config) like: "specops", or an array of these possibilities. SPECIFIC GROUP(S) - a step more for less randomization. You are at the group level. As factions, you can fill it with class (of group) or config or an array of these possibilities. Much more, you can add arrays of units/vehicles class(es). That's also a way to customize some groups, but one the contrary of synced edited ones, you'll not able to define appearance for vehicles or pylons payload at this moment. RADIUS AREA - radius of the module area, so the spawn area if no synced trigger areas. Useless if any trigger area synced. GROUP(S) DIRECTION - orientation of the module in 3den (shift mousse drag) . Do not write anything on field (it's a result, not an entry). Useless if any trigger area synced. GROUP(S) SKILL - As 3den, skill for whole group, with +/-10% randomized on each units. ENABLE DYNAMIC SIMULATION - As in 3den. See Biki for detailed explanation (recommended) CONDITION FIELD - checked every 2 seconds. So, much more convenient than a simple condition of presence at start! Feel free to do what you want but return a boolean. Examples: * spawning only at night : sunOrMoon < 0.5 * strengthening weakened side : INDEPENDENT countSide allGroups < 3 * waiting for more players : count allPlayers > 2 * even checking for 1000 m distance at least from any player: private _possAreas = _logic getVariable "possAreas"; (count allPlayers > 0 && allPlayers findIf {private _plyr = _x; _possAreas findIf {_plyr distance _x#0 < 1000} == -1} == -1) but that will not despawn or hide or disable the groups! See the dynamic simulation instead. REPEAT OCCURRENCE - the added times for re-spawning the same groups (not at the same place) . 0 means no more occurrence. -1 means infinite repeat. So if you want to spawn 3 times a group, set it to 2 (1 shot + 2 added) INTERVAL FOR REPEAT - A delay between 2 consecutive spawns , if the condition are met. If not, the spawn will wait for condition to be TRUE, then spawn, then wait for interval duration, then check for condition... min 30 sec max 2 hours. FORMATION OF THE GROUP - As usual. Sometimes this setting is reinitialized to default wedge. I didn't identify why. So check twice before OK button and save scenario. BEHAVIOR - (or behaviour, sorry) Same as usual COMBAT MODE - same as usual SPEED MODE - As usual. same little problem as formation. Check twice. INSIGNIA - I hope that works fine everywhere... CODE FOR GROUP - Blank of any code (without {}). Passes parameters are <group> <<leader>, <vehicles of the group> . For example, just write: params ["_grp","_lead","_vehs"]; private _wp = _grp addWaypoint [<aPosition>,0]; _wp setWaypointType "MOVE"; _lead forceFlagTexture "\A3\Data_F\Flags\Flag_red_CO.paa"; {_x setFuel 0.2} forEach _vehs No bracket, just like this. BASIC TASK - can be: * Do Nothing (the preferred one of dumb AIs) * Attack nearest known enemy. So the group will start after an enemy knowledge acquisition. Not before. I hope I managed air assets for chasing air assets... I can't imagine infantry running after a jet. * Chase nearest enemy. Same as above but the position of nearest enemy is known (for spawning attack waves for example) * Attack nearest Player (known enemy) . The group must acquire the detection of a hostile player. * Chase nearest player (enemy). The group will start the hunting on player's (updated) position. * Defend this area. some SAD waypoints in the area of the group(s). known difficulties - Mods like Unsung or CUP or RHS (all in fact) requires a sharp attention for the name of the factions/groups but also Types... of groups. You can't imagine hundreds of names for stupid things like "infantry" "armored" "mechanized" ... That should be normalized, but not! - Too many mods, even non used by mission, but just loaded on server (so ticked), will affect the randomization for nuts, and lead to unwanted results like Arma or CUP units during Unsung play. know bugs all corrected so far To do list: - respawn without delay on whole group death - add a filter for mods... A lot of work. Enjoy! All feedback welcome. [RELEASED]
  25. Hello everyone! I haven't been active for a very long time. Now I am back and I need your help. I have downloaded a ready MP/Coop Mission - Rush Redux on Tanoa by OPTiX. Since we are a small community on a private server, I need to make this mission better playable and it needs to be agains AI soldiers, so my friends and I can fight them and still finsih the main mission by completing the objectives. This is possible by destroying the MCOM's when playing on the OPFOR side because if you spawn as a BLUFOR player, the enemies will simply show up, fire upon you and your squad mates and not attack the objective. So the gameplay would be pretty boring. That's why I am going to remove the BLUFOR playable units. I have tried using THIS example with the script in the description, including my own config lines of the enemy soldiers, but it didn't work, showing me that ")" was missing on a line in the main script: { if (_Spawntarget distance _x˃_Deletedistance) then {deleteVehicle _x;}; } forEach units _EditGroup; } foreach (allGroups select {side _x == _Spawnside && (_x getVariable ["spawned",true])}); And because it didn't work I tried with A.E.S (Ambient Enemy Spawner), but the enemy soldiers spawn around me very rare and too late, and it's always laggy as hell. I have tried different options in the main module, but I wasn't satisfied with the results. Other than that, I would like to use a simple script, may be like the first one above, in order to place down custom AI units, not only Vanilla, so I can put enemies from any mod I would like to use, and I need to make a stable version without any lagg while playing. What would you recommend me to do? May be put some units around the map and automatically spawn them on me when I start playing, but the thing is that the player always starts on a different random location and can spawn in the HQ or in a vehicle. If I want to use custom enemy units I guess I will have to use a config line to get them working. Please, give me some advices, scripts or suggestions how to accomplish this task. I want the enemies to hunt down the players. Thank you in advance!
×