Jump to content

genesis92x

Member
  • Content Count

    924
  • Joined

  • Last visited

  • Medals

Community Reputation

782 Excellent

About genesis92x

  • Rank
    First Sergeant

Recent Profile Visitors

7171 profile views
  1. genesis92x

    Mounting and dismounting ai loop

    Not without some more intricate coding. I believe using the "TR UNLOAD" waypoint type will make any AI in cargo slots disembark and not attempt to enter the vehicle again...So making vehicles do this during combat will prevent AI from entering in repeatedly
  2. genesis92x

    [CTI,TvT,CooP] Dissension

    Currently on steam I believe.
  3. I apologize, I have not. I have been slammed with multiple requests and projects at the moment. I will have to dig it up - I did not realize that code is actually missing from the current version! It essentially was very similar to how AI deployed static weapons, it looked at the classname of the backpack and created the vehicle that the bag was supposed to assemble. Mostly right! I would remove the // from that line. To make sure the difficulty gets set, I would make sure to put that code at the end of the init.sqf, after VCOM is loaded. So it will correctly override the settings. If you are using the script version (and do not have file patching enabled) I would change the defaultsettings.sqf file. located inside the vcom folder somewhere
  4. genesis92x

    FSM vs SQF

    Thanks for explaining it, instead of just linking to the wiki! There isn't much documentation on it 🙂
  5. genesis92x

    FSM vs SQF

    I'm no expert, but isn't it a little more complicated than that? FSM condition evaluation is on each frame and unscheduled. Do you mean that they somehow run on a 3ms schedule, but the code contained within the FSM is executed in an unscheduled environment? You are not allowed to use sleep/waituntil in an FSM.
  6. genesis92x

    Adding cargo to vehicles

    Should almost be treated like one. When I began scripting long ago - I found it rather silly and the 'helpful' applications of it seemed to be outweighed by the helpful applications of it. Much easier to just create a little script to handle unit init's instead of editor based init's
  7. genesis92x

    Adding cargo to vehicles

    Keep in mind (unless this has been fixed?) that if you add that command to a units init, it will execute everytime a player joins. So if you have a JIP mission, take that into consideration. It might help to name the units and add those commands into the init.sqf inside a if (isserver) then {};
  8. I have generally stayed away from AI boats due to terrible experiences I have had with them. With that said, off the top of my head, there may be some things that (could) help? I'm at the office here, so I can't test anything. On the init of the vehicle, you could try a limitspeed command this limitspeed 10; Sure it won't make the boat "zoom" around, but it may give them just enough "control" to not beach their boat? You could try splitting the driver/gunners into two separate groups and give the driver careless behavior, or possibly settings the whole group to careless and looping a suppressivefire command once they detect the players. Worst comes to worst, you can make the boat not take damage, and occasionally check if the boat is beached with issurfacewater, and then setvelocity back into the water or setpos it.
  9. The move command fails in MP most likely due to the helicopter1 group not being local to the computer that is executing the command. In mulitplayer/ a dedicated environment you will want to use remoteexec to assure the unit gets his movement order correctly - or have the addaction call a function that is ran server side that will run all the code you need.
  10. genesis92x

    [Release] Enhanced UAV Intel

    What a cool idea 🙂 Thanks for sharing this
  11. Gen_VirtualCargo Hey all, I made this simple function in about ~2 hours for a mission of mine and thought the community as a whole might get some use out of it. It is a lightweight, mod compatible, easy-to-use, virtual cargo system that allows vehicles to "carry" objects/other vehicles around and deploy them dynamically across the battlefield. Including ammo crates and etc. The function pulls how much each vehicle can hold from it's config. A simple but intuitive UI. It also allows for dynamic placement of objects into the world. Features - Store objects into vehicles - Deploy objects from vehicles using a line-of-sight system - Prevents using objects to "punt" or destroy other objects (restrictive placement system) - Light weight - Easy to mod - Supports modded vehicles - Keeps inventories and damage states of transported objects. - avoids using attachto due to FPS hit by attachto Bugs I made it in ~2 hours, there will be a few bugs. How to use? Usage is fairly simple. Download the folder below, and copy the description.ext into your mission and the folder Gen_VirtualCargo. Place this code in the init for any vehicle you wish to be affected by this script. if (isServer) then { [ [CargoVehicle1], { if !(hasInterface) exitWith {}; params ["_Veh"]; _Veh addAction ["Cargo Access", {params ["_target", "_caller", "_actionId", "_arguments"];[_target] spawn GEN_fnc_VirtualCargo;},[],0.5,false,true,"(alive _target)"]; } ] remoteExecCall ["BIS_fnc_call",0,CargoVehicle1]; }; Have fun! https://www.dropbox.com/s/vywsoaixcr4ihyo/Gen_VirtualCargo.7z?dl=0
  12. genesis92x

    RemoteExec on a global scale

    You're right. It's not a magic bullet. It's a valuable tool that requires some practice in using. I will definitely take the time in figuring out how to use remoteexec in the most efficient ways - it's a great solution for missions for resolving a lot of locality issues. Keep in mind, depending on the magical circumstances of the ArmA 3 engine, remoteexec may not be 100% precise in executing the code. remoteexec is also great for a quick solution for JIP addactions, as you can tie it to the object the addaction is added to - and upon deletion of that object it removes itself from the JIP list.
  13. Stupid question here, what purpose does "force force" do? Here is the default CBA config and userconfig from Vcom, they look different - perhaps the issues can be found there [] spawn { sleep 1; waitUntil {!(isNil "CBAACT")}; if (CBAACT && VCM_USECBASETTINGS) then { [ "VCM_ActivateAI", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "Vcom Active", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true, // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_ActivateAI = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; //VCM_USECBASETTINGS = true; If CBA is enabled on the host, use the CBA default settings. If false, use the filepatching settings instead. [ "VCM_USECBASETTINGS", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "Use CBA-Vcom Settings?", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true, // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_USECBASETTINGS = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_Debug", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "Enable Debug Mode. Mostly systemchat messages.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. false,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_Debug = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_SIDEENABLED", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "LIST", // setting type "Sides impacted by Vcom.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [[[west,east,resistance],[west,east],[west],[east],[resistance],[resistance,west],[resistance,east]],[["West, East, Resistance"],["West, East"],["West"],["East"],["Resistance"],["Resistance, West"],["Resistance, East"]],0], // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_SIDEENABLED = _this; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_ARTYENABLE", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "Enable AI use of Artillery", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true, // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_ARTYENABLE = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_ARTYSIDES", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "LIST", // setting type "Sides that will use VCOM Artillery", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [[[west,east,resistance],[west,east],[west],[east],[resistance],[resistance,west],[resistance,east]],[["West, East, Resistance"],["West, East"],["West"],["East"],["Resistance"],["Resistance, West"],["Resistance, East"]],0], // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_ARTYSIDES = _this; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_CARGOCHNG", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "Vcom handling of disembark/embarking for AI?", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_CARGOCHNG = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_TURRETUNLOAD", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "Disembark from turret positions?", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_TURRETUNLOAD = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_DISEMBARKRANGE", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "SLIDER", // setting type "Distance AI disembark from the enemy?", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [50,1000,200,0], // data for this setting: [min, max, default, number of shown trailing decimals] true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_DISEMBARKRANGE = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_StealVeh", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "AI steal empty/unlocked vehicles?", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_StealVeh = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_ClassSteal", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "Class restriction for stealing vehicles", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_ClassSteal = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_ForceSpeed", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "Enforce AI Speed 'FULL'?", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_FullSpeed = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_ADVANCEDMOVEMENT", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "AI generate new waypoints to flank.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_ADVANCEDMOVEMENT = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_FRMCHANGE", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "AI change formations based on location.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_FRMCHANGE = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_SKILLCHANGE", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "AI impacted by Vcom skill settings.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_SKILLCHANGE = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_AIDISTANCEVEHPATH", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "SLIDER", // setting type "Distance AI will steal vehicles from.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [0,1000,100,0], // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_AIDISTANCEVEHPATH = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_RAGDOLL", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "AI Ragdoll when hit?", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_RAGDOLL = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_RAGDOLLCHC", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "SLIDER", // setting type "Chance for AI to ragdoll when hit.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [0,100,100,0], // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_RAGDOLLCHC = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_HEARINGDISTANCE", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "SLIDER", // setting type "Distance AI can hear gunfire.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [0,10000,1200,0], // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_HEARINGDISTANCE = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_WARNDIST", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "SLIDER", // setting type "Distance AI will call for reinforcements from.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [0,10000,1000,0], // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_WARNDIST = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_WARNDELAY", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "SLIDER", // setting type "Time (seconds) AI wait before support called.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [0,10000,30,0], // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_WARNDELAY = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_STATICARMT", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "SLIDER", // setting type "Time (seconds) AI stay on unarmed Static Weapons", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [0,10000,300,0], // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_STATICARMT = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_MINECHANCE", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "SLIDER", // setting type "Chance for AI to place a mine, once in combat.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [0,100,75,0], // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_MINECHANCE = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_ARTYDELAY", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "SLIDER", // setting type "Delay before artillery requests. SIDE BASED.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [0,5000,30,0], // data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_ARTYDELAY = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_AIMagLimit", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "SLIDER", // setting type "Mag count AI begin to look for additional mags.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. [2,10,5,0], // data for this setting: [min, max, default, number of shown trailing decimals] true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_AIMagLimit = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_AISNIPERS", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "Special marksman/sniper AI", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_AISNIPERS = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_AISUPPRESS", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "AI attempt to suppress enemies more, and at a further range.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_AISUPPRESS = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "VCM_ADVANCEDMOVEMENT", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "AI generate new waypoints to flank.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; VCM_ADVANCEDMOVEMENT = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "Vcm_DrivingActivated", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "Experimental Improvements to AI driving.", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. false,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; Vcm_DrivingActivated = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; [ "Vcm_PlayerAISkills", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting. "CHECKBOX", // setting type "Player AI recieve unique skill settings", // Pretty name shown inside the ingame settings menu. Can be stringtable entry. "VCOM SETTINGS", // Pretty name of the category where the setting can be found. Can be stringtable entry. true,// data for this setting: true, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer { params ["_value"]; Vcm_PlayerAISkills = _value; } // function that will be executed once on mission start and every time the setting is changed. ] call CBA_Settings_fnc_init; }; diag_log "VCOM: Loaded CBA settings"; }; Defaul userconfig settings Vcm_Settings = { /* ADDITIONAL COMMANDS (group this) setVariable ["VCM_NOFLANK",true]; //This command will stop the AI squad from executing advanced movement maneuvers. (group this) setVariable ["VCM_NORESCUE",true]; //This command will stop the AI squad from responding to calls for backup. (group this) setVariable ["VCM_TOUGHSQUAD",true]; //This command will stop the AI squad from calling for backup. (group this) setVariable ["Vcm_Disable",true]; //This command will disable Vcom AI on a group entirely. (group this) setVariable ["VCM_DisableForm",true]; //This command will disable AI group from changing formations. (group this) setVariable ["VCM_Skilldisable",true]; //This command will disable an AI group from being impacted by Vcom AI skill changes. */ Vcm_ActivateAI = true; //Set this to false to disable VcomAI. It can be set to true at any time to re-enable Vcom AI VcmAI_ActiveList = []; //Leave this alone. Vcm_ArtilleryArray = []; //Leave this alone //VCOM ARTILLERY. Only one kind of advanced artillery can be used at a time. VCM_ARTYENABLE = true; //Enable improved artillery handling from Vcom. VCM_ARTYLST = []; //List of all AI inside of artillery pieces, leave this alone. VCM_ARTYDELAY = 30; //Delay between squads requesting artillery VCM_ARTYWT = -(VCM_ARTYDELAY); VCM_ARTYET = -(VCM_ARTYDELAY); VCM_ARTYRT = -(VCM_ARTYDELAY); VCM_ARTYSIDES = [west,east,resistance]; //Sides that will use VCOM/FFE artillery VCM_AIMagLimit = 5; //Number of mags remaining before AI looks for ammo. VCM_Debug = false; //Enable debug mode. VCM_MINECHANCE = 75; //Chance to lay a mine VCM_SIDEENABLED = [west,east,resistance]; //Sides that will activate Vcom AI VCM_RAGDOLL = true; //Should AI ragdoll when hit VCM_RAGDOLLCHC = 100; //CHANCE AI RAGDOLL VCM_FullSpeed = true; //Enforce full speedmode during combat (Does not reset after combat end) VCM_HEARINGDISTANCE = 1200; //Distance AI hear unsuppressed gunshots. VCM_WARNDIST = 1000; //How far AI can request help from other groups. VCM_WARNDELAY = 30; //How long the AI have to survive before they can call in for support. This activates once the AI enter combat. VCM_STATICARMT = 300; //How long AI stay on static weapons when initially arming them. This is just for AI WITHOUT static bags. They will stay for this duration when NO ENEMIES ARE SEEN, or their group gets FAR away. VCM_StealVeh = true; //Will the AI steal vehicles. VCM_ClassSteal = true; //If true, crewmen are required to steal tracked vehicles. Pilots are required to steal aircraft. false = anyone can steal any vehicle. VCM_AIDISTANCEVEHPATH = 100; //Distance AI check from the squad leader to steal vehicles VCM_ADVANCEDMOVEMENT = true; //True means AI will actively generate waypoints if no other waypoints are generated for the AI group (2 or more). False disables this advanced movements. VCM_FRMCHANGE = true; //AI GROUPS WILL CHANGE FORMATIONS TO THEIR BEST GUESS. VCM_SKILLCHANGE = true; //AI Groups will have their skills changed by Vcom. VCM_USECBASETTINGS = true;//If CBA is enabled on the host, use the CBA default settings. If false, use the filepatching settings instead. VCM_CARGOCHNG = true; //If true, Vcom will handle disembarking/re-embarking orders instead of vanilla. This is with the intention to prevent the endless embark/disembark loops AI are given. VCM_TURRETUNLOAD = true;//If true, AI will automatically disembark turret positions in vehicles, if the vehicle is badly damaged. This is to prevent AI leaving a tank, when the tracks are damaged. VCM_DISEMBARKRANGE = 200; //How far AI will disembark from their enemies. If the vehicle is damaged, they will disembark. VCM_AISNIPERS = true; //Special sniper AI VCM_AISUPPRESS = true; //AI will attack from further away with primary weapons to suppress enemies Vcm_DrivingActivated = false; //AI will use experimental driving improvements. Vcm_PlayerAISkills = true; //AI in a group, that a players leads, can have their skills changed separately. //AI SKILL SETTINGS HERE!!!!!!!!!!!! //LOW DIFFICULTY //VCM_AIDIFA = [['aimingAccuracy',0.15],['aimingShake',0.1],['aimingSpeed',0.25],['commanding',1],['courage',1],['endurance',1],['general',0.5],['reloadSpeed',1],['spotDistance',0.8],['spotTime',0.8]]; //MEDIUM DIFFICULTY VCM_AIDIFA = [['aimingAccuracy',0.25],['aimingShake',0.15],['aimingSpeed',0.35],['commanding',0.85],['courage',0.5],['general',1],['reloadSpeed',1],['spotDistance',0.85],['spotTime',0.85]]; //HIGH DIFFICULTY //VCM_AIDIFA = [['aimingAccuracy',0.35],['aimingShake',0.4],['aimingSpeed',0.45],['commanding',1],['courage',1],['endurance',1],['general',0.5],['reloadSpeed',1],['spotDistance',0.8],['spotTime',0.8]]; //SIDE SPECIFIC VCM_AIDIFWEST = [['aimingAccuracy',0.25],['aimingShake',0.15],['aimingSpeed',0.35],['commanding',0.85],['courage',0.5],['general',1],['reloadSpeed',1],['spotDistance',0.85],['spotTime',0.85]]; VCM_AIDIFEAST = [['aimingAccuracy',0.25],['aimingShake',0.15],['aimingSpeed',0.35],['commanding',0.85],['courage',0.5],['general',1],['reloadSpeed',1],['spotDistance',0.85],['spotTime',0.85]]; VCM_AIDIFRESISTANCE = [['aimingAccuracy',0.25],['aimingShake',0.15],['aimingSpeed',0.35],['commanding',0.85],['courage',0.5],['general',1],['reloadSpeed',1],['spotDistance',0.85],['spotTime',0.85]]; //PLAYER SQUAD SPECIFIC VCM_PSQUADW= [['aimingAccuracy',0.25],['aimingShake',0.15],['aimingSpeed',0.35],['commanding',0.85],['courage',0.5],['general',1],['reloadSpeed',1],['spotDistance',0.85],['spotTime',0.85]]; VCM_PSQUADE= [['aimingAccuracy',0.25],['aimingShake',0.15],['aimingSpeed',0.35],['commanding',0.85],['courage',0.5],['general',1],['reloadSpeed',1],['spotDistance',0.85],['spotTime',0.85]]; VCM_PSQUADR= [['aimingAccuracy',0.25],['aimingShake',0.15],['aimingSpeed',0.35],['commanding',0.85],['courage',0.5],['general',1],['reloadSpeed',1],['spotDistance',0.85],['spotTime',0.85]]; VCM_AISIDESPEC = { private _Side = (side (group _this)); switch (_Side) do { case west: { { _this setSkill _x; } forEach VCM_AIDIFWEST; }; case east: { { _this setSkill _x; } forEach VCM_AIDIFEAST; }; case resistance: { { _this setSkill _x; } forEach VCM_AIDIFRESISTANCE; }; }; }; VCM_CLASSNAMESPECIFIC = false; //Do you want the AI to have classname specific skill settings? VCM_SIDESPECIFICSKILL = false; //Do you want the AI to have side specific skill settings? This overrides classname specific skills. VCM_SKILL_CLASSNAMES = []; //Here you can assign certain unit classnames to specific skill levels. This will override the AI skill level above. /* EXAMPLE FOR VCM_SKILL_CLASSNAMES VCM_SKILL_CLASSNAMES = [["Classname1",[aimingaccuracy,aimingshake,spotdistance,spottime,courage,commanding,aimingspeed,general,endurance,reloadspeed]],["Classname2",[aimingaccuracy,aimingshake,spotdistance,spottime,courage,commanding,aimingspeed,general,endurance,reloadspeed]]]; VCM_SKILL_CLASSNAMES = [ ["B_GEN_Soldier_F",[0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1]], ["B_G_Soldier_AR_F",[0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1]] ]; */ VCM_AIDIFSET = { { private _unit = _x; _unit setSkill 0.9; _unit allowFleeing 0; { _unit setSkill _x; } forEach VCM_AIDIFA; if (VCM_CLASSNAMESPECIFIC && {count VCM_SKILL_CLASSNAMES > 0}) then { { if (typeOf _unit isEqualTo (_x select 0)) exitWith { _ClassnameSet = true; _unit setSkill ["aimingAccuracy",((_x select 1) select 0)];_unit setSkill ["aimingShake",((_x select 1) select 1)];_unit setSkill ["spotDistance",((_x select 1) select 2)];_unit setSkill ["spotTime",((_x select 1) select 3)];_unit setSkill ["courage",((_x select 1) select 4)];_unit setSkill ["commanding",((_x select 1) select 5)]; _unit setSkill ["aimingSpeed",((_x select 1) select 6)];_unit setSkill ["general",((_x select 1) select 7)];_unit setSkill ["endurance",((_x select 1) select 8)];_unit setSkill ["reloadSpeed",((_x select 1) select 9)]; }; } foreach VCM_SKILL_CLASSNAMES; }; if (VCM_SIDESPECIFICSKILL) then { _unit call VCM_AISIDESPEC; }; } forEach (units _this); }; diag_log "VCOM: Loaded Default Settings"; if (VCM_USECBASETTINGS) then { [] call VCM_fnc_CBASettings; }; };
  14. I can take a look at this sometime next week - a busy week for me unfortunately currently they go idle at where they were called IF they have 8 waypoints already, they will switch to combat mode and will not generate/switch to new waypoints - as long as another script does not interfere. Vcom kicks in as soon as the squad is in combat mode - so while they won't generate new waypoints, they may still seek cover in buildings/deploy static/place mines, and etc. looks like some kind of CBA error with the vcom settings. I would double check the installation, I have not encountered this yet
  15. Could you post your groups framework?
×