genesis92x 810 Posted February 23, 2017 2 minutes ago, celludriel said: Well here are the benefits of having functions Main benefits: Automatic compilation upon mission start into a global variable - no need to remember direct paths to files. Anti-hack protection using compileFinal (see Recompiling for more info) Listing in the Functions Viewer Advanced debugging options Optional immediate execution upon mission start, without need for manual call Potential performance improvements full information is available here: https://community.bistudio.com/wiki/Functions_Library_(Arma_3) --SNIP-- For more information PM me, if I have some spare time maybe we can collaborate That is extremely helpful. For the optimization update I will definitely do this. So it looks like this would work just fine for the script version as well. 2 Share this post Link to post Share on other sites
celludriel 79 Posted February 23, 2017 Just now, genesis92x said: That is extremely helpful. For the optimization update I will definitely do this. So it looks like this would work just fine for the script version as well. Yes it can be used just in the script version, probably also in the mod version just haven't investigated that one. It will help keep your code clean and gives you access to all your functions in remoteCalls as well. I do have to warn it's quite a bit of work though but will make your codebase better maintanable in the end. 1 Share this post Link to post Share on other sites
bolbies 13 Posted February 23, 2017 @genesis92x Yes that's exactly what they do! Share this post Link to post Share on other sites
RizlaUK 4 Posted February 24, 2017 9 hours ago, genesis92x said: Rizla, could you try changing _x setvariable ["VCOM_NOPATHING_Unit",1, false]; to _x setvariable ["VCOM_NOPATHING_Unit",false]; and (Driver _x) setvariable ["VCOM_NOPATHING_Unit",1, false]; to (Driver _x) setvariable ["VCOM_NOPATHING_Unit",false]; Let me know if that removes the error - I am not in a position to look directly at the code so I can NOT remember how I had that variable setup anymore :< Thanks Genesis, that worked. Share this post Link to post Share on other sites
alezil 12 Posted March 1, 2017 Having a problem. I am making a mission, and every time i call an artillery strike (M5 sandstorm, on a position on the sea), the Ai retaliate with a extreme accurate mortar fire. The problem is, no matter what i do, the AI automatically knows my team position and start calling fire on my positions, even if there no enemy close enough to have line of sight on my group. 1 Share this post Link to post Share on other sites
nms 0 Posted March 3, 2017 On 1.3.2017 at 2:43 AM, alezil said: Having a problem. I am making a mission, and every time i call an artillery strike (M5 sandstorm, on a position on the sea), the Ai retaliate with a extreme accurate mortar fire. The problem is, no matter what i do, the AI automatically knows my team position and start calling fire on my positions, even if there no enemy close enough to have line of sight on my group. I just ran into a similar problem. If you are using the scripted version you could try editing the following file "VCOMAI_ArtilleryCalled.sqf" -> replacing target pos (getPos _Enemy) getHideFrom _Enemy like this: private _enemyPos = _Unit getHideFrom _Enemy; if ((_enemyPos isEqualTo [0,0,0])) exitWith {}; And then replace all other occurrences of (getPos _Enemy) with _enemyPos. I just started testing this change, so I'm not sure if it will brake stuff or not, but it seems to work. getHideFrom returns the Position where object (_Unit in this case) believes the enemy to be. Share this post Link to post Share on other sites
BvB1 23 Posted March 5, 2017 Where all in the scripting are possibilities for static weapon/pack deployment defined? Was trying to see what might be needed to get RHS dshk/spg etc working but no success. I found a check in one of the scripts for backpack deployment having staticweapon or weapon bag config parents, but the RHS pieces do have these parents same as the stock BIS bags/weapons :( . Is there an explicit class list used? Would be sooo awesome to have Taliban types hauling around and emoloying Dshk and mortars. Share this post Link to post Share on other sites
JD Wang 352 Posted March 6, 2017 4 hours ago, BvB1 said: Would be sooo awesome to have Taliban types hauling around and emoloying Dshk and mortars. Careful what you wish for, I've got an ALiVE mission where the Taliban have a couple of static mortar positions for the players to hunt. Those mortars will reach half way across takistan and can certainly ruin your day VCOM does a great job of having the AI employ mortars and you really need to kill any enemy around before they'll actually stop Share this post Link to post Share on other sites
Tuntematon 3 Posted March 14, 2017 (edited) I noticed that when i use VCOM_UseMarkers = true. I got some kind of lag whit Zeus/HAL. It take much longer to HAL create waypoints when its true. Also get about 10 fps lower. I did not notice much difference with VCOM_AIDEBUG = 1. With default HAL settings. HAL start after 15s has passed ingame. without Vcom. It take about 45s to HAL finish. About same time when both are off, (Hal did forgot one group for some reason) So lets say it took about ~50s . When AIDEBUG was 1, it took about the same 50s to finish. But when UseMarkers was true, it took about 1min and 4s to finish (and once again Hal did forgot one group for some reason). im bad to explain things. So here is small video. Here is my test mission. More AI groups you add. More "lag" you can notice. https://www.dropbox.com/s/iu6bjp5csa3mwgb/Testi.Altis.pbo?dl=0 I know that these 2 mods conflict with things and stuff. But i love them both so dont make me chose Edited March 14, 2017 by Tuntematon Im bad at english Share this post Link to post Share on other sites
4 40 Posted March 18, 2017 Sometimes when playing missions on my server, all (or almost all) of the AI will be stuck in the "dragging" animation state and are therefore unable to move. Is this a symptom of anything in particular that you are aware of? It's been this way since VCOM 2.7 iirc. Share this post Link to post Share on other sites
DEV614 33 Posted March 21, 2017 Is it possible to only allow units with a certain item or of a certain classname to call in artillery? Share this post Link to post Share on other sites
Khánh Vân Nguyễn Nhật 3 Posted March 28, 2017 Anyone know how to make AI ignore the gunshots from Rifles that use suppressors ? I want to make a stealth mission ! 3 Share this post Link to post Share on other sites
jarrad96 1940 Posted April 10, 2017 Is there a simple way to remove the player supression effect/blurring/speed boost? I tried to go into the userconfig (AIsettingsV2) and set- VCOM_Suppression = false; //How much should suppression impact both AI and player aiming? Default is 5. Normal ArmA is 1. VCOM_SuppressionVar = 1; //Should AI/players be impacted by adrenaline? This provides players and AI with a small speed boost to animations to assist with cover seeking and positioning for a short time. Default = true; VCOM_Adrenaline = false; //How much of a speed boost should players/AI recieve? Default = 1.35; (1 is ArmA's normal speed). VCOM_AdrenalineVar = 1; //How many AI UNITS can be calculating cover positions at once? VCOM_CurrentlyMovingLimit = 6; //How many AI UNITS can be suppressing others at once? VCOM_CurrentlySuppressingLimit = 12; (I also tried 0, no change) But that didn't seem to make a difference. Share this post Link to post Share on other sites
Nichols 243 Posted April 12, 2017 May have a problem with minelaying in the script also; our RPT in our ALiVE is ballooning up to a few hundred MB and a lot of the errors is related to minelaying in the VCOM script. Don't have access to the RPT at the moment but I can put it out here later today for someone to check. 1 Share this post Link to post Share on other sites
Coul 11 Posted April 16, 2017 On 4/10/2017 at 0:04 AM, jarrad96 said: Is there a simple way to remove the player supression effect/blurring/speed boost? Enable Filepatching 1 Share this post Link to post Share on other sites
Montgomery 205 Posted April 21, 2017 @genesis92x I'm trying to make sure I understand how to AI skill settings work. If I take this line: _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))]; And change it to this: _Unit setSkill ["aimingAccuracy",(0.01 + (random 0.05))]; That would mean that the AI has an aimingAccuracy randomly assigned to it between 0.01 and 0.06 right? Also, if all of these values below are the same, how do the units with higher rank get better skills? //AI ACCURACY SETTINGS - You can change these numbers below //Colonel Level AI AccuracyFunctionRank6 = { _Unit = _this select 0; _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))]; _Unit setSkill ["aimingShake",(0.05 + (random 0.05))]; _Unit setSkill ["spotDistance",(0.6 + (random 0.1))]; _Unit setSkill ["spotTime",(0.6 + (random 0.1))]; _Unit setSkill ["courage",(0.7 + (random 0.3))]; _Unit setSkill ["commanding",1.0]; _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))]; _Unit setSkill ["general",1.0]; _Unit setSkill ["endurance",1.0]; _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))]; }; //Major Level AI AccuracyFunctionRank5 = { _Unit = _this select 0; _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))]; _Unit setSkill ["aimingShake",(0.05 + (random 0.05))]; _Unit setSkill ["spotDistance",(0.6 + (random 0.1))]; _Unit setSkill ["spotTime",(0.6 + (random 0.1))]; _Unit setSkill ["courage",(0.7 + (random 0.3))]; _Unit setSkill ["commanding",1.0]; _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))]; _Unit setSkill ["general",1.0]; _Unit setSkill ["endurance",1.0]; _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))]; }; //Captain Level AI AccuracyFunctionRank4 = { _Unit = _this select 0; _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))]; _Unit setSkill ["aimingShake",(0.05 + (random 0.05))]; _Unit setSkill ["spotDistance",(0.6 + (random 0.1))]; _Unit setSkill ["spotTime",(0.6 + (random 0.1))]; _Unit setSkill ["courage",(0.7 + (random 0.3))]; _Unit setSkill ["commanding",1.0]; _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))]; _Unit setSkill ["general",1.0]; _Unit setSkill ["endurance",1.0]; _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))]; }; //Lieutenant Level AI AccuracyFunctionRank3 = { _Unit = _this select 0; _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))]; _Unit setSkill ["aimingShake",(0.05 + (random 0.05))]; _Unit setSkill ["spotDistance",(0.6 + (random 0.1))]; _Unit setSkill ["spotTime",(0.6 + (random 0.1))]; _Unit setSkill ["courage",(0.7 + (random 0.3))]; _Unit setSkill ["commanding",1.0]; _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))]; _Unit setSkill ["general",1.0]; _Unit setSkill ["endurance",1.0]; _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))]; }; //Sergeant Level AI AccuracyFunctionRank2 = { _Unit = _this select 0; _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))]; _Unit setSkill ["aimingShake",(0.05 + (random 0.05))]; _Unit setSkill ["spotDistance",(0.6 + (random 0.1))]; _Unit setSkill ["spotTime",(0.6 + (random 0.1))]; _Unit setSkill ["courage",(0.7 + (random 0.3))]; _Unit setSkill ["commanding",1.0]; _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))]; _Unit setSkill ["general",1.0]; _Unit setSkill ["endurance",1.0]; _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))]; }; //Corporal Level AI AccuracyFunctionRank1 = { _Unit = _this select 0; _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))]; _Unit setSkill ["aimingShake",(0.05 + (random 0.05))]; _Unit setSkill ["spotDistance",(0.6 + (random 0.1))]; _Unit setSkill ["spotTime",(0.6 + (random 0.1))]; _Unit setSkill ["courage",(0.7 + (random 0.3))]; _Unit setSkill ["commanding",1.0]; _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))]; _Unit setSkill ["general",1.0]; _Unit setSkill ["endurance",1.0]; _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))]; }; //Private Level AI AccuracyFunctionRank0 = { _Unit = _this select 0; _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))]; _Unit setSkill ["aimingShake",(0.05 + (random 0.05))]; _Unit setSkill ["spotDistance",(0.6 + (random 0.1))]; _Unit setSkill ["spotTime",(0.6 + (random 0.1))]; _Unit setSkill ["courage",(0.7 + (random 0.3))]; _Unit setSkill ["commanding",1.0]; _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))]; _Unit setSkill ["general",1.0]; _Unit setSkill ["endurance",1.0]; _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))]; }; Thank you! Share this post Link to post Share on other sites
crewt 31 Posted April 22, 2017 @montgomery you are right that would result in a skillrange from 0.01 to 0.06 As for On 4/21/2017 at 8:10 PM, montgomery said: Also, if all of these values below are the same, how do the units with higher rank get better skills? this, they don't, but you have the easy possibility to change the values so your enemys have a wider skillset. 1 Share this post Link to post Share on other sites
Montgomery 205 Posted April 22, 2017 @crewt Thanks for the info. I thought their skills increased in rank by default. Share this post Link to post Share on other sites
Coul 11 Posted April 22, 2017 On 1/24/2017 at 3:23 PM, genesis92x said: In late February or March I will sit down and take a look at converting Vcom to use CBA any news on this? Share this post Link to post Share on other sites
genesis92x 810 Posted April 22, 2017 34 minutes ago, Coul said: any news on this? Hey Coul, I am currently working 90% on Dissension. I have learned my lesson in never giving out dates anymore :) I have began trying to read up on CBA and I am still trying to figure out how to best approach the project, as converting to CBA is much more difficult than initially expected. I would need to ask someone to help me at first and possibly provide an example of converting a function to CBA. Dissension has taken most of my free time. 3 Share this post Link to post Share on other sites
crewt 31 Posted April 23, 2017 @genesis92x What do you need? a specific function? And what exactly is your Goal? Share this post Link to post Share on other sites
JD Wang 352 Posted April 24, 2017 Not sure if I've asked this before, but is there any chance you could add a way to change skill levels via faction? That way if I make an ALiVE mission I can for instance have Russian OPFOR who are higher skilled and more dangerous than the Independent rebel forces. Even if it's a case of a multiplier, eg West = 1 East = 1 Independant = 0.8 or something like that 1 Share this post Link to post Share on other sites
crewt 31 Posted April 24, 2017 11 hours ago, JD Wang said: Even if it's a case of a multiplier, eg @JD WangYou could easily change a 'few' lines of code for that specific purpose: (In the spoiler, that way it's not getting out of hand) Spoiler in the init you can define a global variable for easy adjustment, like... VOM_sidespecskill = [1,1,0.8]; That could stand for [east, east, resistance] Later in the file mentioned above, with the AI Skill: AccuracyFunctionRank6 = { private _Unit = _this select 0; private _multi = switch (side _unit) do { case west : { VOM_sidespecskill select 0 }; case east : { VOM_sidespecskill select 1 }; case independent : { VOM_sidespecskill select 2 }; default { 1 }; }; _Unit setSkill ["aimingAccuracy", ((0.3 + random 0.2) * _multi) min 1]; _Unit setSkill ["aimingShake", ((0.2 + random 0.1) * _multi) min 1]; _Unit setSkill ["spotDistance", ((0.6 + random 0.1) * _multi) min 1]; _Unit setSkill ["spotTime", ((0.6 + random 0.1) * _multi) min 1]; _Unit setSkill ["courage", (1 * _multi) min 1]; _Unit setSkill ["commanding", (1 * _multi) min 1]; _Unit setSkill ["aimingSpeed", ((0.5 + random 0.1) * _multi) min 1]; _Unit setSkill ["general", (1 * _multi) min 1]; _Unit setSkill ["endurance", (1 * _multi) min 1]; _Unit setSkill ["reloadSpeed", (1 * _multi) min 1]; }; Keep in mind that this way It gets kind of hard to track what skill they acc have. additionally It seems wise to me that you would have to forget values higher than 1. 1 Share this post Link to post Share on other sites
Jdownward 33 Posted April 25, 2017 Im prity sure there is a line about not using the values in the vcom ai skills, so you could use alive module to divie the skills to units (i cannot remember if you can do this for different sides or if its a blanket module). Also i see if you use the line Player controlled AI it disable the auto combat, is this used for High command aswell ?? Share this post Link to post Share on other sites
genesis92x 810 Posted April 26, 2017 On 4/23/2017 at 3:14 PM, crewt said: @genesis92x What do you need? a specific function? And what exactly is your Goal? Initially I would just need a good example. So let's say, converting the most hefty function (The finding cover function) into a CBA environment. I have not read enough about it quite yet, but the goal would be to optimize and lessen the impact of such a hefty function. 1 Share this post Link to post Share on other sites