Jump to content

TedHo

Member
  • Content Count

    152
  • Joined

  • Last visited

  • Medals

  • Medals

Everything posted by TedHo

  1. In Our Time by ted_hou Fully voiced Arma 3 SP campaign with a focus on story and immersion. Bell Tolls, the sequel to In Our Time is now available! Big thanks to anyone who waited for the sequel. If anyone is interested in voice acting and would like to help I would appreciate it! Description: 'In Our Time' is a short, single-player campaign consisting of five connected, well-written, story-driven missions that occurred on the same day, during which the situation deteriorated fast for NATO peacekeeping forces stationed on Altis. The plot is unfolded in the eyes of Cpl. 'Nomad' Walker, who would soon need to adapt to the changing situations... Features: Voiceacting: Featuring 10 professional voiceactors with a variety of American, British and Greek accents. Story: A compelling story told with well-scripted cutscenes. Gear persistence: Player weapons/gear/health is inherited throughout the campaign. Failing to pack mission-critical equipmentcould have consequences later on in the campaign. Choices: Choices on how to complete missions. Optional tasks that are risky but provide reward later on. Music: Carefully placed music tracks. Mission content: Mission 01 - Checkpoint Alpha (Defence) Mission 02 - Up Cadillac (Recon) Mission 03 - Altis Airways (Defence) Mission 04 - Caught In A Trap (Combined Assult) Mission 05 - No Grave (Stealth) Changelog: v1.05 Fixed an issue in mission 4 where the player is ordered to disembark the little bird as soon as he boards.[/li] Enabled debug console for mission 4, this should allow dev branch users to board the little bird using the console command "player moveInCargo Bee2".[/li] Various bug fixes and improvements.[/li] Credits & thanks: Morgenstern (morgensternproductions.weebly.com) Cliff Thompson Peter Reynolds (peterreynoldsva.com) David Botcher Joel Leigh Deakin Anthony Ingruber (www.imdb.com/name/nm3452021) Mathieu Abdi Lucas Boggie Jonathan Bullock Enrique Gurule Jr. Armaholic Download: - Armaholic Extract the .pbo file(s) to your Steam/SteamApps/common/ArmA 3/Campaigns folder. Steam Workshop: - Subscribe Enable the addon "[sP] In Our Time" in you ArmA 3 Launcher. Make Arma Not War entry: - Vote
  2. Bell Tolls by ted_hou Bell Tolls is a story about revenge. John Hawkins has fought alongside the guerrillas for two years to see the death of the man responsible for murdering his fallen brothers. Already too much has been sacrificed in the name of vengeance, how much further is he willing to go? *Bell Tolls follows after the events of In Our Time. This is something I have been working on for 3 months. Now it's ready! A big thanks to anyone who played In Our Time and waited for the sequel. Hope you enjoy! Features: Story: A compelling story told with cutscenes and scripted-events. Guerrilla warfare: Fight against an organized conventional army with crude weaponry and equipment. Campaign features: A BIS styled campaign with hub missions, optional skirmish missions, armory, persistent gear plus more custom features... Consequences: Decisions matter. You will have to make hard decisions. Campaign ending has 2 branches with 6 possible outcomes. Atmosphere: Custom music, custom sound effects and scripted events to improve game experience. Optional mod support: Play vanilla or play with mods. Modded content is seamlessly incorporated into the game. (See below for a list of supported mods) Voice acting: Full voice acting! 400+ lines from 5 dedicated voice actors. Huge thanks to voice actors Mathieu Abdi, Morgenstern, Cliff Thompson, Cary Reese, and Lucas Walkowicz! Special thanks to Jonathan Cross for editing the script and including proper British army procedures and slangs. Mod compatibility: Although no mods are required, the following mods are supported and should not affect gameplay. Gameplay mods ACE - @ace_explosives and @ace_hearing items will be provided where needed. JSRS/Blastcore/... - Go for it. (ACE/Blastcore might cause performance drop, consider disabling for slower machines). Weapon mods: Load any combination of the following mods and player/AI will start using custom weapons. A weapon tier system ensures the guerrillas are not overpowered. RHS: Escalation (v0.37) - Adds m16a4/m4/aks74/m136/rpg and a small number of accessories to guerrillas. HLC weapon packs - AK/G3/FAL/M60/M14/MP5/SAW packs. Adds low-tier weapons to guerrillas. RobertHammer weapons - RH M4/RH Pistols/RH Acc weapons and attachments are added to the guerrillas. TF47 Launchers AI mods bCombat AI - Set the following parameters within "bCombat\config.sqf" Want to see support for a certain mod? Talk to me! Known issues: (01/14/2015) In Blinded Eyes loading an earlier save could break disguise status even when player is in cognito. In Empire of Dirt, vehicles may drive crazy (it's just A3). ASR_AI mod causes issues with the AH-6 in "Hidden Agenda" (thanks to Cpl_Davis for reporting). KIMI's HMD mod breaks mission "Hidden Agenda". (thanks to ineptaphid for reporting) Credits: Morgernstern Productions (http://morgensternproductions.weebly.com/). -- Kerry, Yusuf, and misc Greek voices. Mathieu Abdi -- John Hawkins and Alexis Stavrou. Cliff Thompson -- O'Connor and misc Greek voices Cary Reese -- Miller and misc Greek voices Lucas Walkowicz -- Misc Greek voices. Jonathon Cross -- Script proofreading, conversion to British military lingo. Changelog: (06/03/2015) v0.99 Added: Voice acting! 400+ lines from 5 dedicated voice actors. Huge thanks to voice actors Mathieu Abdi, Morgenstern, Cliff Thompson, Cary Reese, and Lucas Walkowicz! Special thanks to Jonathan Cross for editing the script and including proper British army procedures and slangs. Fixed: Mod support for latest HLC weapons pack, RH m4/pistol packs, and RHS:AFRF and RHS:USAF. Fixed: Game crashes on loading "Blinded Eyes". Fixed: Some tasks not marked as complete in "Clear Skies". Fixed: Plastic container in hub mission did not store items. Download: - MEGA (v0.99) - Armaholic (v0.99) Extract the .pbo file to your Steam/SteamApps/common/ArmA 3/Campaigns folder. - Steam Workshop (v1.00 Addon version)
  3. ArmA 3 UnitCapture/UnitPlay functions for Infantry Units I was frustrated with the fact that the BIS unitCapture/unitPlay functions do not work well with infantry units. They would simply slide across the ground without any animation. I decided to make an improved version that also records and plays back infantry animations along with movements and weapon firing. HLF_fnc_infUnitCapture and HLF_fnc_infUnitPlay allows infantry movement, firing and animation data to be captured and replayed on a player or AI infantry unit. Instructions 1. Capture data To capture player movement, call function "HLF_fnc_infUnitCapture". (If you are using it in your own mission, make sure to define the function in your "description.ext"). Function parameters: Unit - Unit to capture movement data from Duration - Duration to capture for OPT:FPS - OPTIONAL: Frames recorded Per Second (default 20). Limit is 1 - 100 OPT:Firing - OPTIONAL: If true, will record the input unit's weapon fire data as well OPT:StartTime - OPTIONAL: Starting time offset for the frame time Example: [player, 60, 20, true, 2] spawn HLF_fnc_infUnitCapture; Once recording starts, you can move, change stances, fire weapons, etc... Hit "ESC" to stop recording. Then hit "F1/F2/F3" to copy infantry unit movement, firing and animation data to clipboard. 2. Save data Save the movement/firing/anim data to three separate variables in an .sqf file. For an example, refer to "captureData.sqf" in the example mission. 3. Playback To preload the captured data, add the following line to your mission "init.sqf" (assuming you stored your captured data in "captureData.sqf"): call compile preprocessFile "captureData.sqf"; To make a unit called "joe" play back your recorded movements/firing/animations, run the following code. {joe disableAI _x;} forEach ["ANIM","MOVE","FSM","TARGET","AUTOTARGET"]; [joe, HLF_moveData] spawn BIS_fnc_UnitPlay; [joe, HLF_fireData, true] spawn HLF_fnc_infUnitPlayFiring; [joe, HLF_animData, true] spawn HLF_fnc_infUnitPlayAnim; Example mission To see an example of the playback effects, run the example mission in mission editor and execute: [joe] execVM "play.sqf"; The AI named joe should repeat what I did and recorded in "captureData.sqf". Known Issues 1. Due to issues with the A3 engine, when playback is forced on an AI instead of a player, animations can appear laggy when BIS_fnc_UnitPlay and HLF_fnc_infUnitPlayAnim are run simultaneously. 2. Infantry actions that do not trigger an animation state change (e.g. Weapon switching, reloading, leaning, head movements...) do not get recorded. (Will fix these in the future). 3. Initial animation not recorded. Will fix in the future. If you find more issues/glitches or features you wish to be included in future versions, feel free to leave a comment. Update Log v0.1 - Initial release. Allows for infantry unit movement/animation/firing events to be recorded and replayed. Download Link MEGA
  4. With the new Marksman DLC platform update, players can deploy bipods/rest weapons. Is it possible to have AI units scripted to rest/deploy weapons?
  5. THE RED BANNER by ted_hou With the amount of high-quality mods out there I decided to start working on a single-player campaign featuring the soviet union's war in Afghanistan in the 1980s. Player will be part of a platoon assigned to 201st Motor Rifle Division, 149th Guards Motor Rifle Regiment, 2nd Motorized Infantry Battalian, 4th Company, which was stationed at Kunduz and took part in multiple offensive/defensive operations between 1980 and 1988. The last soviet vehicle to leave Afghanistan was a BTR-60PB from the 149th Motor Rifle Regiment (Citations needed?). I will do as much as I can to make sure the equipment, tactics are historically correct, and stories/characters will be a mixture of actual events and imagination. Planned Features: Realistic cold-war era soviet equipment and weapons (with assets from VTN, RHS, Leights Opfor Pack) Realistic motor rifle platoon/squad structures, equipment Realistic motor rifle doctrine tactics (dismounted infantry supported by BTR/BMPs) achieved through AI scripts. Historically accurate/semi-accurate ORBATs, callsigns, vehicle number decals Characters/stories inspired by actual events and persons Voice acting (will be in English). Current Mod List: CBA_A3 Veteran Mod (VTN): Realistic Afghan-era weapons and equipment. (Current version 0.4.2 build 1450) RHS:Escalation: Vehicles and aircrafts. (Current version 0.4.0.1) Leights Opfor Pack: Mujihadeen apparel and some retextured RHS assets. (Current version 1.7.1) Community Upgrade Project - Terrains Complete(Terrain): (Current version 1.0.1) Kunduz(Terrain): Kunduz terrain used in mission 1. (Current version 1.08) Tora Bora(Terrain): Terrain used in mission 2. (Current version 1.6) IOT_AFG: Mod pack custom-made for this campaign. Contains some re-textured RHS items. Disables VTN medical system and FOV changes. Made relevant RHS assets compatible with VTN standards. (Included in download) (Optional) ShackTac User Interface: Supported but optional. All characters are named and assigned to color teams to support this. Mission 01 Beta: Note: This is a WIP released for testing purposes. No voice acting as of now. If you've bothered to test it, I would appreciate any feedback. Install guide: Extract and put both folders ("Campaigns" & "@IOT_AFG")under your Arma3 installation directory. Make sure the following mods are loaded when you launch the game.@CBA_A3; @VTN; @RHS:Escalation; @LeightsOpforPack; @CUP_Terrains; @Kunduz; @ToraBora; @IOT_AFG; Changelog 1/27/2016 M02 Release Added mission 02. Updated mod requirements. Make sure you have the latest version of required mods. Restored weapon zoom, which was disabled by VTN. 12/05/2015 M01 Beta Hotfix Fixed black-screen issue on mission start. Updated unit gear classnames and config values for latest VTN update Download (Contains campaign files and @IOT_AFG addon): Dropbox
  6. I'm sorry to hear that but now that 3DEN has come out I don't think this will be useful anymore.
  7. Zeus Editor, Streamlined (ZES) Zeus Editor, Streamlined (ZES) is a short script that allows you to place/adjust objects in the Zeus editor, and then selectively export objects to SQF code by hitting [Ctrl+C]. I built this thing to help myself build forts/bunkers/camps in-game and quickly export them to clipboard. I never intended to use it to build full missions - some things are just easier via scripting. I thought this might be helpful to other mission builders and so decided to share it. If people actually do find this useful I might consider including more functions. If you are having issues getting it to work I'll be more than happy to help out. What ZES does: Export objects selected in the Zeus interface to SQF code. Offers streamlined key-binds within the Zeus interface. [Ctrl+C] Export objects selected in the Zeus interface (either by clicking on an object or dragging the mouse cursor to select multiple objects). [Ctrl+A] Export all Zeus-editable objects to clipboard. [Ctrl+Shift+E] Make nearby objects editable by Zeus. [Ctrl+S]/[Ctrl+Shift+S] Toggle simulation ON/OFF for selected objects. Currently only supports object/unit classnames, position, direction (vectorDirAndUp), and enableSimulation true/false. Does Future plans: [Ctrl+Z]/[Ctrl+Y] - Undo/Redo. Not sure if there is any performance-friendly way to do this. But it would be extremely helpful. Support for markers and waypoints. More info for objects/units. Stance/Animation state, behaviour, combat mode... If people actually find this How to use: 1. Set up a basic zeus mission. Place a Zeus module in your editor. Name the module ZE_Zeus, make sure player has access to it. 2. Run the following code either via execVM or spawn. (Though I recommend putting it in a .sqf file and execVM it in "init.sqf") //NOTE: Make sure Zeus module is named ZE_Zeus //Export function ZE_ExportEntities = { ZE_ObjectsExport = []; _mode = toLower (_this select 0); //Register objects to export switch (_mode) do { case "all": { { _obj = _x; _class = typeOf _obj; _pos = getPosATL _obj; _vec = [vectorDir _obj, vectorUp _obj]; _sim = simulationEnabled _obj; _grp = group _obj; _pack = [_class,_pos,_vec,_sim,_grp]; ZE_ObjectsExport = ZE_ObjectsExport + [_pack]; } forEach (curatorEditableObjects ZE_Zeus); }; case "sel": { { _obj = _x; if (typeName _obj == typeName objNull) Then { _class = typeOf _obj; _pos = getPosATL _obj; _vec = [vectorDir _obj, vectorUp _obj]; _sim = simulationEnabled _obj; _grp = group _obj; _pack = [_class,_pos,_vec,_sim,_grp]; ZE_ObjectsExport = ZE_ObjectsExport + [_pack]; }; } forEach (curatorSelected select 0); }; }; //Compile _compiledTxt = "//Exported with ZE"; { private ["_addTxt","_codeSpawn"]; _objArr = _x; _class = _objArr select 0; _pos = _objArr select 1; _vec = _objArr select 2; _sim = _objArr select 3; _grp = _objArr select 4; if (isNull _grp) Then { _codeSpawn = format [" _object = createVehicle [""%1"", [0,0,0], [], 0, ""CAN_COLLIDE""];",_class]; } else { _side = side _grp; _codeSpawn = format [" _object = createGroup %2 createUnit [""%1"", [0,0,0], [], 0, ""NONE""];",_class,_side]; }; if (_sim) Then { _addTxt = _codeSpawn + format [" _object setPosATL %2; _object setVectorDirAndUp %3; ", _class, _pos, _vec]; } else { _addTxt = _codeSpawn + format [" _object enableSimulation %4; _object setPosATL %2; _object setVectorDirAndUp %3; ", _class, _pos, _vec, _sim]; }; _compiledTxt = _compiledTxt + _addTxt; } forEach ZE_ObjectsExport; copyToClipboard _compiledTxt; }; //Enable editing function ZE_AddCuratorObjects = { _nearObjs = (getPos curatorCamera) nearObjects 25; ZE_Zeus addCuratorEditableObjects [_nearObjs,false]; }; //Handle Object simulation ZE_ObjectSimulation = { _mode = toLower (_this select 0); switch (_mode) do { case "enable": { {_x enableSimulation true} forEach (curatorSelected select 0); }; case "disable": { {_x enableSimulation false} forEach (curatorSelected select 0); }; }; }; //Key Stroke Handler key_ctrl = 29; key_shift = 42; key_c = 46; key_a = 30; key_e = 18; key_s = 31; pressed_ctrl = false; pressed_shift = false; pressed_c = false; pressed_a = false; pressed_e = false; pressed_s = false; //Add Keystroke EH ZE_AddKeyStrokeEH = { ZE_keyDownEHId = findDisplay 312 displayAddEventHandler ["KeyDown",{ if (_this select 1 == key_ctrl) then {pressed_ctrl = true;}; if (_this select 1 == key_shift) then {pressed_shift = true;}; if (_this select 1 == key_c) then {pressed_c = true;}; if (_this select 1 == key_a) then {pressed_a = true;}; if (_this select 1 == key_e) then {pressed_e = true;}; if (_this select 1 == key_s) then {pressed_s = true;}; }]; ZE_keyUpEHId = findDisplay 312 displayAddEventHandler ["KeyUp",{ if (_this select 1 == key_ctrl) then {pressed_ctrl = false;}; if (_this select 1 == key_shift) then {pressed_shift = false;}; if (_this select 1 == key_c) then {pressed_c = false;}; if (_this select 1 == key_a) then {pressed_a = false;}; if (_this select 1 == key_e) then {pressed_e = false;}; if (_this select 1 == key_s) then {pressed_s = false;}; }]; ["ZE_KeyStroke", "onEachFrame", { if (pressed_ctrl && pressed_a) ExitWith { ["ALL"] call ZE_ExportEntities; hint ""; ["CuratorAddAddons",["ZEUS objects copied to clipboard."]] calL BIS_fnc_showNotification; pressed_a = false; }; if (pressed_ctrl && pressed_c) ExitWith { ["SEL"] call ZE_ExportEntities; ["CuratorAddAddons",["SELETED objects copied to clipboard."]] calL BIS_fnc_showNotification; pressed_c = false; }; if (pressed_ctrl && pressed_shift && pressed_e) ExitWith { [] call ZE_AddCuratorObjects; ["CuratorAddAddons",["Nearby objects ENABLED for Zeus."]] calL BIS_fnc_showNotification; pressed_e = false; }; if (pressed_ctrl && pressed_shift && pressed_s) ExitWith { ["DISABLE"] call ZE_ObjectSimulation; ["CuratorAddAddons",["DISABLED simulation for selected objects."]] calL BIS_fnc_showNotification; pressed_s = false; }; if (pressed_ctrl && pressed_s) ExitWith { ["ENABLE"] call ZE_ObjectSimulation; ["CuratorAddAddons",["ENABLED simulation for selected objects."]] calL BIS_fnc_showNotification; pressed_s = false; }; }] call BIS_fnc_addStackedEventHandler; }; //Remove Keystroke EH ZE_RemoveKeyStrokeEH = { findDisplay 312 displayRemoveEventHandler ["KeyDown",ZE_keyDownEHId]; findDisplay 312 displayRemoveEventHandler ["KeyUp",ZE_keyUpEHId]; ["ZE_KeyStroke", "onEachFrame"] call BIS_fnc_removeStackedEventHandler; }; //Handle enable/disable of EH on Zeus start/end [] spawn { while {true} do { waitUntil {sleep 0.1; !(isNull findDisplay 312)}; [] spawn ZE_AddKeyStrokeEH; waitUntil {sleep 0.1; isNull findDisplay 312}; [] spawn ZE_RemoveKeyStrokeEH; }; }; 3. Enter Zeus interface ([Y]) and build your fortress. 4. Select the objects you want to export, then hit [Ctrl+C]. 5. Paste the exported script to a .sqf file. Done! Update Log: v0.2 Initial release. Pretty decent for object placement. This work was inspired by austin_medic's Zeus Mission Builder, which does a wonderful job of exporting Zeus-created missions to SQM code.
  8. You should be able to see all servers regardless of what mods you or the server has.
  9. Try using "ModuleExplosive_DemoCharge_F" instead of "DemoCharge_F".
  10. you could use disableAI "MOVE" on the driver, then re-enable it after the tank it takes fire (handleDamage EH).
  11. I would generally recommend against using ACE in SP missions unless the author specifically made the mission ACE-compatible. Some of the scripts in ACE can be mission-breaking since ACE medical changes since ACE medical changes the damage model (which can lead to essential units dying when they're not supposed to), and ACE explosive can mess with missions that require you to use explosives. Also, ACE eats up quite a bit of your CPU which can be troublesome for some missions.
  12. You can try all of that but I doubt any of the above will work, because assignCurator (which I assume is the command used to initialize the zeus module) only takes type:OBJECT as input. I would just do something like this: 1. In the editor, name your zeus module, something like: CuratorObj 2. Define a function that allows you to assign on the fly a player as zeus by UID. Note: this only works when executed on server. (Put this in initServer.sqf or init.sqf) fnc_assignCuratorByUID = { params ["_uid", "_curatorObj"]; //_uid param should be type STRING; { if ((getPlayerUID _x) == _uid) exitWith {_x assignCurator _curatorObj}; } forEach playableUnits; }; 3. Execute the function like this. Note that this command only takes effect when execute on server so there is no point in executing it on clients. (You could put it into initServer.sqf, or into init.sqf with an "if isServer then {}" check.) ["5645645645646456", CuratorObj] call fnc_assignCuratorByUID;
  13. They should still be their as long as your modset didn't change. The categorization may be different so it might be difficult to find them. I would recommend using the search field (found above the asset list).
  14. 4 fps is not good. Consider spawning less AI at one time, and only spawn AI in a zone when players are close. Even with headless clients having more than 100+ AI at once can be dangerous. And it gets worse the more players you have.
  15. So... to sum up, Eden settings are currently bugged. You would have to define respawn settings in description.ext.
  16. Another option is to edit mission.sqm with a text editor (make sure not to binarize it when you save scenario), and copy/paste the stuff related to your virtual arsenal to other vehicles. Everything will be done inside mission.sqm.
  17. The while loop will continue as long as either "the player is alive" OR "the map is open". In this case you need to kill the player AND close the map for the loop to end.
  18. format["%1", _group] will return something like "B: Alpha-1-1". I believe str _group has the same behavior. You can convert vehicle/unit variable names into string using vehicleVarName, so a workaround would be. format["(group %1) call test", vehicleVarName ((units _group) select 0)]
  19. One issue I see is you used many onMapSingleClick event handlers. Problem is that there can only be one onMapSingleClick active at one time. In order to stack multiple onMapSingleClick's, use BIS_fnc_addStackedEventHandler instead. As a matter of fact you should always use BIS_fnc_addStackedEventHandler instead of onMapSingleClick to ensure compatibility with other scripts. To remove the EH, you should be using BIS_fnc_removeStackedEventHandler instead of using onMapSingleClick "".
  20. That looks great. I am actually surprised you got it working. Making AI move straight from point A to point B consistently is almost as difficult as landing on the moon. If you're going for cinematic effect, you could [a] script continuous suppression fire. It would also be possible to script the gun/coax to aim at the infantry and then fire. Useful commands include: fireAtTarget, forceWeaponFire. (Try both and see which one works. In my experience fireAtTarget works well for vehicle guns/static weapons and forceWeaponFire works for infantry). To make sure the gun is aimed at a target before it fires you would also need doWatch and aimedAtTarget, perhaps something like this: _tank doWatch _target; waitUntil {_tank aimedAtTarget [_target] > 0}; _tank fireAtTarget [_target]; fireAtTarget will only make the gun fire once. To force the tank to use the coax MG and fire in bursts, you need to designate the weapon to be used, and write a for loop for continued fire: _weaponName = "something"; //change "something" to weaponName for the tank coax MG (You can get the current weaponName and muzzleName with weaponState) _weaponMuzzleName = "something"; //change "something" to muzzleName for the tank coax MG, this might be the same as muzzleName. _tank doWatch _target; waitUntil {_tank aimedAtTarget [_target, _weaponName] > 0}; //A loop for burst fire for "_i" from 1 to 5 do { _tank fireAtTarget [_target, _weaponMuzzleName]; sleep 0.1; }; If any of these is confusing I also have a working script for making static MGs fire at targets in a trigger area. It should be easy to convert that for a tank coax gun. I'll see if I can find it later.
  21. TedHo

    Change squad name

    This has been asked before but no solution was found. Unless BIS makes some changes to the engine code I don't think it's possible.But an easy workaround is to write the group name into unit descriptions for each unit in group. Eg. "Squad One AR" instead of "AR".
  22. bull_a did provide a valid solution. I'll add two more that requires a bit of modding: 1. Use Dslyexci's ST Nametags mod. It displays setName/setIdentity name as well as groupID. This also works for player names in multiplayer. 2. The names you're refering to (Rifleman, Team Leader, Miller, Stavrou, etc.) are defined in "CfgVehicles" >> [vehicle class name] >> "DisplayName". You can create additional CfgVehicles entries with unique displayNames. You would however, need to build your own mod for this.
  23. Nope. Not possible. Unless you take command of the tank and drive it yourself (this makes sense for a mission admin in a MP mission, not for SP). There is no perfect solution for this. But try the following: _unit disableAI "FSM"; _unit disableAI "AUTOCOMBAT"; _unit disableAI "SUPPRESSION"; _unit setSpeedMode "FULL";
  24. TedHo

    Making AI use sandbags.

    I'm not sure if any such script/mod exists. It's tricky for the following reason. With buildings, a bunch of positions in the interior of the buidling (buildingPos) is defined in the config file, and MCC most likely makes use of that to spawn units inside buildings. The thing with sandbags is that there's no interior/exterior so defining fixed positions relative to the sandbag object can be a little tricky. It's easy to imagine AI units spawning on the wrong side of the sandbag. 1. You can still do some config editing and try to define buildingPos for sandbag objects (look at config entries for existing buildings for reference), but make sure you place sandbags in the correct orientation before spawning units with MCC. 2. A way to do this via script and without addons is to using modelToWorld to get relative positions from the sandbag object. Again you need to make sure sandbags are placed in the correct orientation. 3. You could also manually define a list of absolute positions for units to occupy/spawn at. And then randomly select from these positions when you spawn units. 4. You could also manually place everything, this should be a lot easier since Eden release.
×