Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

Community Reputation

165 Excellent

About _foley

  • Rank

Contact Methods

  • Website URL
  • Youtube

Recent Profile Visitors

567 profile views
  1. Neat concept 🙂 It seems that _medic1, medic2, etc. are still references to the objects instead of their names in string form. Try replacing the part from _medic1 = _medics select 0; to _medic6 = _medics select 5; with this: _medics resize 6; _medics = _medics apply { if (isNil "_x") then { "unbesetzt" } else { name _x } }; _medics params ["_medic1", "_medic2", "_medic3", "_medic4", "_medic5", "_medic6"]; If it works then you can do the same for the other roles.
  2. It is possible that .50 cal causes so much damage that multiplying it by 0.1 doesn't make enough difference. See this post: You can use something like this to get a better understanding of how it's calculated: systemChat format [ "_selection=%1, _previousDamage=%2, _newDamage=%3, return=%4", _selection, _previousDamage toFixed 4, _newDamage toFixed 4, (_previousDamage + _newDamage * 0.1) toFixed 4 ];
  3. Close but brackets around alive _x are incorrect. Try this: {alive _x && side _x == opfor} count allPlayers This will return number of alive opfor players.
  4. A randomly generated compound or even a town would be cool.
  5. Wow, impressive! I love procedurally generated stuff
  6. I think managing fog in a script is the way to go considering you want to have both a long term fog forecast and an option to dynamically override it. A minimal example (server-side): initialFogIntensity = 0.1; finalFogIntensity = 0.7; finalFogTime = 24 * 3600; // 24 hours overrideFogIntensity = nil; // you can set this in trigger to temporarily overwrite fog intensity, set to nil to use the long-term forecast again 0 setFog initialFogIntensity; [] spawn { while {true} do { private _fogIntensity = linearConversion [0, finalFogTime, time, initialFogIntensity, finalFogIntensity, true]; if (!isNil "overrideFogIntensity") then { _fogIntensity = overrideFogIntensity; }; 60 setFog _fogIntensity; sleep 60; }; }; This example assumes you don't change time multiplier or skipTime. If that's the case, you can use a combination of dateToNumber and missionStart instead of plain time to calculate _fogIntensity. It also assumes you only need to change fog intensity. If you want to control [fogValue, fogDecay, fogBase], then you can use linearConversion three times (once for each value in the array).
  7. If you use setDriveOnPath, AI ignores obstacles
  8. _foley

    [MP] Hot Pursuit

    Hot Pursuit A suspicious truck has been spotted... About Co-op + Civilians Map: Altis Player count: 25 (15 combat roles + 10 civilians) Typical duration: 10 min – 25 min Mod dependencies (load into Arma 3 Launcher) Briefing AAF A suspicious truck has been reported east-bound leaving Altis Intl. Airport where you're based. Description matches a classified project run by CSAT. The truck is currently on the highway, escorted by several light vehicles. Unless we intervene, it will reach the border within 20 minutes. Intercept the truck ASAP and bring it back to base in one piece. Civilians may be active in the area, use caution. Civilians (optional) You will act as a civilian road user. This is a non-combatant role. Refrain from operating weapons and military vehicles. Feel free to explore as you see fit, though it's best to stay near the highway inbetween: Rodopoli - Paros - Delfinaki - Sofia. Playable slots Command Commander Alpha Team Leader Autorifleman Rifleman (LAT) Bravo Team Leader Breacher (Shotgun) Explosives Specialist Charlie Team Leader Grenadier Combat Life Saver Delta Lead Service Engineer Service Engineer Service Engineer Service Medic Hotel Helicopter Pilot Civilians Civilian (BMW) Civilian (Hilux) Civilian (Sprinter) Civilian (Yava Motorbike) Civilian (Civic) Civilian (Golf) Civilian (Ikarus Bus) Civilian (Landcruiser) Civilian (Ural Tow Truck) Civilian (Lada) Scripting highlights Heavily scripted damage handling for the truck to encourage players to stop the truck in order to eliminate the crew. This also reduces the risk of explosion when the truck is rammed by another vehicle. Heavily scripted AI behaviour "Runaway" behaviour intended to make the truck driver extremely stubborn and always moving Escort behaviour intended to keep the convoy in the formation and dismount only when the situation really requires it Adjustments to vehicles Automatically shutting off siren when driver leaves the vehicle (GTA V-inspired) Helicopter locked to pilot slots only Road safety equipment (i.e. cones, barriers, lights) automatically loaded into vehicle cargo (ACE3 feature) Discouraging civilian players from interfering with the AI convoy Selectable escort strength Video Screenshots Links Source code: https://github.com/foley-dev/arma3-hot-pursuit Workshop: https://steamcommunity.com/sharedfiles/filedetails/?id=2948145231 Feel free to use the scripts in your own missions or adapt it to your favourite modset.
  9. It's a wild guess but I think what's happening is that when you call getUnitLoadout in onPlayerKilled.sqf, the player is already missing their main weapon (it drops at the moment of death). I'm sure there was a topic on this, maybe someone can link?
  10. The trouble is that "_canRearm" is a local variable and it's only evaluated once, at the beginning of the script. Try this, first define a function that checks if player can rearm: fnc_canRearm = { _mrkr = "TowerPost1"; _mrkrcolor = getMarkerColor _mrkr; _color = switch (side player) do { case west: { "ColorBlufor" }; case east: { "ColorOpfor" }; case independent: { "ColorIndependent" }; default { "ColorGrey" }; }; (_color == _mrkrcolor) } then in the addAction set the condition to "call fnc_canRearm" instead of "_canRearm". Keep in mind that this condition will be checked on every frame. It's fine in this case but if the function were more complex then it could affect performance.
  11. Did you consider using the "condition" parameter of addAction to check if player can rearm? You can't really update an action, you'd have to delete it and create again when needed but I think using the condition is cleaner.
  12. It sounds to me like you want to store a "preset" of some group types. If that's the case then you wanna use a hashmap: _presets = createHashMapFromArray [ ["sniper_team", ["classname_unit_1", "classname_unit_2"]], ["scout_team", ["classname_unit_1", "classname_unit_2"]], ["fireteam", ["classname_unit_3", "classname_unit_4", "classname_unit_4", "classname_unit_4"]] ]; Then if you want to do something with each preset then you can use forEach: { private _teamType = _x; private _unitClassnames = _y; systemChat format ["Team %1 is made of %2", _teamType, _unitClassnames]; } forEach _presets; This lets you differentiate between "sniper_team" and "scout_team" even though they are made of the same unit types. But again, I'm guessing here. Share some context 🙂
  13. If you run it straight from init and the problem was just alarmToggle then your original version should work fine. In this case remoteExec will do more harm than good.
  14. If that loop runs on server only, then you're almost there. You need to replace: ship1 say3d ["shipAlarm", 500, 1]; with: [ship1, ["shipAlarm", 500, 1]] remoteExec ["say3d", 0, false];
  15. _x != player isn't gonna work, try this instead: !isPlayer [_x]