Guest User

Untitled

a guest
Sep 15th, 2017
50
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. VCOMAI_Func =
  2. {
  3. //Variable for enabling/disabling skill changes for AI. True is on, False is off.
  4. VCOM_AISkillEnabled = false;
  5. //Variable for finding out which config was loaded.
  6. VCOM_AIConfig = "Mission Folder";
  7. //Turn this on to see certain debug messages. 1 is on
  8. VCOM_AIDEBUG = 0;
  9. //Turn on map markers that track AI movement
  10. VCOM_UseMarkers = false;
  11. //Turns off VCOMAI for AI units in a players squad
  12. NOAI_FOR_PLAYERLEADERS = 1;
  13. //Will AI garrison static weapons nearby?
  14. VCOM_STATICGARRISON = 1;
  15. //How far can the AI hear gunshots from?
  16. VCOM_HEARINGDISTANCE = 500;
  17. //Should AI be able to call for artillery. 1 = YES 0 = NO
  18. VCOM_Artillery = 1;
  19. //What should the dispersion be for AI artillery rounds? In meters.
  20. VCOM_ArtillerySpread = 600;
  21. //What is the delay between firing artillery rounds? In seconds.
  22. VCOM_ArtilleryCooldown = 300;
  23. //Should we let AI use flanking manuevers? false means they can flank
  24. VCOM_NOPATHING = false;
  25. //Should AI use smoke grenades? Besides default A3 behavior?
  26. VCOM_USESMOKE = true;
  27. //Chance of AI using grenades
  28. VCOM_GRENADECHANCE = 60;
  29. //Should the AI lay mines?
  30. VCOM_MineLaying = true;
  31. //Chance of AI to lay a mine.
  32. VCOM_MineLayChance = 10;
  33. //AI will automatically disembark from vehicles when in combat.
  34. VCOM_AIDisembark = true;
  35. //How low should an AI's mag count be for them to consider finding more ammo? This DOES NOT include the mag loaded in the gun already.
  36. VCOM_AIMagLimit = 2;
  37. //Should the rain impact accuracy of AI? DEFAULT = true;
  38. VCOM_RainImpact = true;
  39. //How much should rain impact the accuracy of AI? Default = 3. Default formula is -> _WeatherCheck = (rain)/3; "rain" is on a scale from 0 to 1. 1 Being very intense rain.
  40. VCOM_RainPercent = 3;
  41. //Should AI and players have an additional layer of suppression that decreases aiming when suppressed? Default = true;
  42. VCOM_Suppression = true;
  43. //How much should suppression impact both AI and player aiming? Default is 5. Normal ArmA is 1.
  44. VCOM_SuppressionVar = 1;
  45. //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;
  46. VCOM_Adrenaline = true;
  47. //How much of a speed boost should players/AI recieve? Default = 1.35; (1 is ArmA's normal speed).
  48. VCOM_AdrenalineVar = 1.25;
  49. //How many AI UNITS can be calculating cover positions at once?
  50. VCOM_CurrentlyMovingLimit = 8;
  51. //How many AI UNITS can be suppressing others at once?
  52. VCOM_CurrentlySuppressingLimit = 12;
  53. //The distance a unit needs to be away for Vcom AI to temporary disable itself upon the unit? The AI unit will also need to be out of combat.
  54. VCOM_DisableDistance = 2400;
  55. //How many AI can be checking roles/equipment/additional commands at once? This will impact FPS of AI in and out of battle. The goal is to limit how many benign commands are being run at once and bogging down a server with over a couple HUNDRED AI.
  56. VCOM_BasicCheckLimit = 25;
  57. //How many squad leaders can be executing advanced code at once.
  58. VCOM_LeaderExecuteLimit = 15;
  59. //How low should the FPS be, before Vcom pauses simulation. This will not disable simulation on AI - they will run default Bohemia AI.
  60. VCOM_FPSFreeze = 10;
  61. //Should the AI consider stealing/using empty ground vehicles?
  62. VCOM_VehicleUse = true;
  63. //Should the AI notice IR lasers?
  64. VCOM_IRLaser = true;
  65.  
  66. //The longer an AI's target stays in 1 location, the more accurate and aware of the target the AI becomes.DEFAULT = [WEST,EAST,CIVILIAN,RESISTANCE];
  67. VCOM_IncreasingAccuracy = false;
  68. //VCOM_SideBasedMovement- Remove sides from the array below to force that specific AI side to not execute any advance movement code. (I.E. Moving to reinforce allies, being alerted by distant gunshots and etc). AI with this will still react normally in combat. DEFAULT = [WEST,EAST,CIVILIAN,RESISTANCE];
  69. VCOM_SideBasedMovement = [WEST,EAST,RESISTANCE];
  70. //VCOM_SideBasedExecution- Remove sides from the array below to remove that specific AI side from executing any of the VCOMAI scripts at all. DEFAULT = [WEST,EAST,CIVILIAN,RESISTANCE];
  71. VCOM_SideBasedExecution = [WEST,EAST,RESISTANCE];
  72. //Distance AI will respond to call of help from each other
  73. VCOM_Unit_AIWarnDistance = -1;
  74. //Distance the AI will attempt to flank around the enemy. I.E. How far off a waypoint, or around the enemy squad, the AI are willing to go in combat.
  75. VCOM_WaypointDistance = 300;
  76. //Switching this to true will enable side specific skill settings. Side specific skills get added IN ADDITION TO the normal ranked skill.
  77. VCOM_SIDESPECIFIC = false;
  78. //Switching this to true will enable classname specific skill settings. VCOM_SIDESPECIFIC and VCOM_CLASSNAMESPECIFIC can both be true, however any units in the VCOM_CLASSNAMESPECIFIC array are given priority over everything else.
  79. VCOM_CLASSNAMESPECIFIC = false;
  80. //Here you can assign certain unit classnames to specific skill levels. This will override the AI skill level above.
  81. VCOM_SKILL_CLASSNAMES = [];
  82.  
  83.  
  84. /*
  85. EXAMPLE FOR VCOM_SKILL_CLASSNAMES
  86.  
  87. VCOM_SKILL_CLASSNAMES = [["Classname1",[aimingaccuracy,aimingshake,spotdistance,spottime,courage,commanding,aimingspeed,general,endurance,reloadspeed]],["Classname2",[aimingaccuracy,aimingshake,spotdistance,spottime,courage,commanding,aimingspeed,general,endurance,reloadspeed]]];
  88. VCOM_SKILL_CLASSNAMES = [["B_Crew_F",[0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1]],["B_soldier_AAT_F",[0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1]]];
  89. VCOM_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]]];
  90.  
  91. */
  92.  
  93.  
  94.  
  95.  
  96. //The following commands are to be left alone, except under rare circumstances.
  97. MarkerArray = [];
  98. VcomAI_UnitQueue = [];
  99. VcomAI_ActiveList = [];
  100. ArtilleryArray = [];
  101. Vcom_EastArtCooldown = true;
  102. Vcom_WestArtCooldown = true;
  103. Vcom_ResistanceArtCooldown = true;
  104. //End
  105.  
  106.  
  107.  
  108. //AI ACCURACY SETTINGS - You can change these numbers below
  109. //Colonel Level AI
  110. AccuracyFunctionRank6 =
  111. {
  112. _Unit = _this select 0;
  113. private _ClassnameSet = false;
  114.  
  115. if (count VCOM_SKILL_CLASSNAMES > 0) then
  116. {
  117. {
  118. if (typeOf _Unit isEqualTo (_x select 0)) exitWith
  119. {
  120. _ClassnameSet = true;
  121. _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)];
  122. };
  123. } foreach VCOM_SKILL_CLASSNAMES;
  124. };
  125.  
  126. if !(_ClassnameSet) then
  127. {
  128. _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))];
  129. _Unit setSkill ["aimingShake",(0.05 + (random 0.05))];
  130. _Unit setSkill ["spotDistance",(0.6 + (random 0.1))];
  131. _Unit setSkill ["spotTime",(0.6 + (random 0.1))];
  132. _Unit setSkill ["courage",(0.7 + (random 0.3))];
  133. _Unit setSkill ["commanding",1.0];
  134. _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))];
  135. _Unit setSkill ["general",1.0];
  136. _Unit setSkill ["endurance",1.0];
  137. _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))];
  138.  
  139. if (VCOM_SIDESPECIFIC) then
  140. {
  141. private _USide = side (group _Unit);
  142. if (_USide isEqualTo West) exitWith {_Unit call VCOM_AISKILL_WEST;};
  143. if (_USide isEqualTo East) exitWith {_Unit call VCOM_AISKILL_EAST;};
  144. if (_USide isEqualTo Resistance) exitWith {_Unit call VCOM_AISKILL_RESISTANCE;};
  145. };
  146. };
  147. };
  148. //Major Level AI
  149. AccuracyFunctionRank5 =
  150. {
  151. _Unit = _this select 0;
  152. private _ClassnameSet = false;
  153.  
  154. if (count VCOM_SKILL_CLASSNAMES > 0) then
  155. {
  156. {
  157. if (typeOf _Unit isEqualTo (_x select 0)) exitWith
  158. {
  159. _ClassnameSet = true;
  160. _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)];
  161. };
  162. } foreach VCOM_SKILL_CLASSNAMES;
  163. };
  164.  
  165. if !(_ClassnameSet) then
  166. {
  167. _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))];
  168. _Unit setSkill ["aimingShake",(0.05 + (random 0.05))];
  169. _Unit setSkill ["spotDistance",(0.6 + (random 0.1))];
  170. _Unit setSkill ["spotTime",(0.6 + (random 0.1))];
  171. _Unit setSkill ["courage",(0.7 + (random 0.3))];
  172. _Unit setSkill ["commanding",1.0];
  173. _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))];
  174. _Unit setSkill ["general",1.0];
  175. _Unit setSkill ["endurance",1.0];
  176. _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))];
  177.  
  178. if (VCOM_SIDESPECIFIC) then
  179. {
  180. private _USide = side (group _Unit);
  181. if (_USide isEqualTo West) exitWith {_Unit call VCOM_AISKILL_WEST;};
  182. if (_USide isEqualTo East) exitWith {_Unit call VCOM_AISKILL_EAST;};
  183. if (_USide isEqualTo Resistance) exitWith {_Unit call VCOM_AISKILL_RESISTANCE;};
  184. };
  185. };
  186. };
  187. //Captain Level AI
  188. AccuracyFunctionRank4 =
  189. {
  190. _Unit = _this select 0;
  191. private _ClassnameSet = false;
  192.  
  193. if (count VCOM_SKILL_CLASSNAMES > 0) then
  194. {
  195. {
  196. if (typeOf _Unit isEqualTo (_x select 0)) exitWith
  197. {
  198. _ClassnameSet = true;
  199. _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)];
  200. };
  201. } foreach VCOM_SKILL_CLASSNAMES;
  202. };
  203.  
  204. if !(_ClassnameSet) then
  205. {
  206. _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))];
  207. _Unit setSkill ["aimingShake",(0.05 + (random 0.05))];
  208. _Unit setSkill ["spotDistance",(0.6 + (random 0.1))];
  209. _Unit setSkill ["spotTime",(0.6 + (random 0.1))];
  210. _Unit setSkill ["courage",(0.7 + (random 0.3))];
  211. _Unit setSkill ["commanding",1.0];
  212. _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))];
  213. _Unit setSkill ["general",1.0];
  214. _Unit setSkill ["endurance",1.0];
  215. _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))];
  216.  
  217. if (VCOM_SIDESPECIFIC) then
  218. {
  219. private _USide = side (group _Unit);
  220. if (_USide isEqualTo West) exitWith {_Unit call VCOM_AISKILL_WEST;};
  221. if (_USide isEqualTo East) exitWith {_Unit call VCOM_AISKILL_EAST;};
  222. if (_USide isEqualTo Resistance) exitWith {_Unit call VCOM_AISKILL_RESISTANCE;};
  223. };
  224. };
  225. };
  226. //Lieutenant Level AI
  227. AccuracyFunctionRank3 =
  228. {
  229. _Unit = _this select 0;
  230. private _ClassnameSet = false;
  231.  
  232. if (count VCOM_SKILL_CLASSNAMES > 0) then
  233. {
  234. {
  235. if (typeOf _Unit isEqualTo (_x select 0)) exitWith
  236. {
  237. _ClassnameSet = true;
  238. _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)];
  239. };
  240. } foreach VCOM_SKILL_CLASSNAMES;
  241. };
  242.  
  243. if !(_ClassnameSet) then
  244. {
  245. _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))];
  246. _Unit setSkill ["aimingShake",(0.05 + (random 0.05))];
  247. _Unit setSkill ["spotDistance",(0.6 + (random 0.1))];
  248. _Unit setSkill ["spotTime",(0.6 + (random 0.1))];
  249. _Unit setSkill ["courage",(0.7 + (random 0.3))];
  250. _Unit setSkill ["commanding",1.0];
  251. _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))];
  252. _Unit setSkill ["general",1.0];
  253. _Unit setSkill ["endurance",1.0];
  254. _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))];
  255.  
  256. if (VCOM_SIDESPECIFIC) then
  257. {
  258. private _USide = side (group _Unit);
  259. if (_USide isEqualTo West) exitWith {_Unit call VCOM_AISKILL_WEST;};
  260. if (_USide isEqualTo East) exitWith {_Unit call VCOM_AISKILL_EAST;};
  261. if (_USide isEqualTo Resistance) exitWith {_Unit call VCOM_AISKILL_RESISTANCE;};
  262. };
  263. };
  264. };
  265. //Sergeant Level AI
  266. AccuracyFunctionRank2 =
  267. {
  268. _Unit = _this select 0;
  269. private _ClassnameSet = false;
  270.  
  271. if (count VCOM_SKILL_CLASSNAMES > 0) then
  272. {
  273. {
  274. if (typeOf _Unit isEqualTo (_x select 0)) exitWith
  275. {
  276. _ClassnameSet = true;
  277. _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)];
  278. };
  279. } foreach VCOM_SKILL_CLASSNAMES;
  280. };
  281.  
  282. if !(_ClassnameSet) then
  283. {
  284. _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))];
  285. _Unit setSkill ["aimingShake",(0.05 + (random 0.05))];
  286. _Unit setSkill ["spotDistance",(0.6 + (random 0.1))];
  287. _Unit setSkill ["spotTime",(0.6 + (random 0.1))];
  288. _Unit setSkill ["courage",(0.7 + (random 0.3))];
  289. _Unit setSkill ["commanding",1.0];
  290. _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))];
  291. _Unit setSkill ["general",1.0];
  292. _Unit setSkill ["endurance",1.0];
  293. _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))];
  294.  
  295. if (VCOM_SIDESPECIFIC) then
  296. {
  297. private _USide = side (group _Unit);
  298. if (_USide isEqualTo West) exitWith {_Unit call VCOM_AISKILL_WEST;};
  299. if (_USide isEqualTo East) exitWith {_Unit call VCOM_AISKILL_EAST;};
  300. if (_USide isEqualTo Resistance) exitWith {_Unit call VCOM_AISKILL_RESISTANCE;};
  301. };
  302. };
  303. };
  304. //Corporal Level AI
  305. AccuracyFunctionRank1 =
  306. {
  307. _Unit = _this select 0;
  308. private _ClassnameSet = false;
  309.  
  310. if (count VCOM_SKILL_CLASSNAMES > 0) then
  311. {
  312. {
  313. if (typeOf _Unit isEqualTo (_x select 0)) exitWith
  314. {
  315. _ClassnameSet = true;
  316. _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)];
  317. };
  318. } foreach VCOM_SKILL_CLASSNAMES;
  319. };
  320.  
  321. if !(_ClassnameSet) then
  322. {
  323. _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))];
  324. _Unit setSkill ["aimingShake",(0.05 + (random 0.05))];
  325. _Unit setSkill ["spotDistance",(0.6 + (random 0.1))];
  326. _Unit setSkill ["spotTime",(0.6 + (random 0.1))];
  327. _Unit setSkill ["courage",(0.7 + (random 0.3))];
  328. _Unit setSkill ["commanding",1.0];
  329. _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))];
  330. _Unit setSkill ["general",1.0];
  331. _Unit setSkill ["endurance",1.0];
  332. _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))];
  333.  
  334. if (VCOM_SIDESPECIFIC) then
  335. {
  336. private _USide = side (group _Unit);
  337. if (_USide isEqualTo West) exitWith {_Unit call VCOM_AISKILL_WEST;};
  338. if (_USide isEqualTo East) exitWith {_Unit call VCOM_AISKILL_EAST;};
  339. if (_USide isEqualTo Resistance) exitWith {_Unit call VCOM_AISKILL_RESISTANCE;};
  340. };
  341. };
  342. };
  343. //Private Level AI
  344. AccuracyFunctionRank0 =
  345. {
  346. _Unit = _this select 0;
  347. private _ClassnameSet = false;
  348.  
  349. if (count VCOM_SKILL_CLASSNAMES > 0) then
  350. {
  351. {
  352. if (typeOf _Unit isEqualTo (_x select 0)) exitWith
  353. {
  354. _ClassnameSet = true;
  355. _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)];
  356. };
  357. } foreach VCOM_SKILL_CLASSNAMES;
  358. };
  359.  
  360. if !(_ClassnameSet) then
  361. {
  362. _Unit setSkill ["aimingAccuracy",(0.05 + (random 0.05))];
  363. _Unit setSkill ["aimingShake",(0.05 + (random 0.05))];
  364. _Unit setSkill ["spotDistance",(0.6 + (random 0.1))];
  365. _Unit setSkill ["spotTime",(0.6 + (random 0.1))];
  366. _Unit setSkill ["courage",(0.7 + (random 0.3))];
  367. _Unit setSkill ["commanding",1.0];
  368. _Unit setSkill ["aimingSpeed",(0.5 + (random 0.1))];
  369. _Unit setSkill ["general",1.0];
  370. _Unit setSkill ["endurance",1.0];
  371. _Unit setSkill ["reloadSpeed",(0.7 + (random 0.3))];
  372.  
  373. if (VCOM_SIDESPECIFIC) then
  374. {
  375. private _USide = side (group _Unit);
  376. if (_USide isEqualTo West) exitWith {_Unit call VCOM_AISKILL_WEST;};
  377. if (_USide isEqualTo East) exitWith {_Unit call VCOM_AISKILL_EAST;};
  378. if (_USide isEqualTo Resistance) exitWith {_Unit call VCOM_AISKILL_RESISTANCE;};
  379. };
  380. };
  381. };
  382.  
  383. //Here you can define specific side skill levels. This will add or subtract from the defined skill settings above per side.
  384. VCOM_AISKILL_WEST =
  385. {
  386. private _Endurance = _this skill "Endurance";
  387. private _aimingAccuracy = _this skill "aimingAccuracy";
  388. private _aimingShake = _this skill "aimingShake";
  389. private _aimingSpeed = _this skill "aimingSpeed";
  390. private _spotDistance = _this skill "spotDistance";
  391. private _spotTime = _this skill "spotTime";
  392. private _courage = _this skill "courage";
  393. private _reloadSpeed = _this skill "reloadSpeed";
  394. private _commanding = _this skill "commanding";
  395. private _general = _this skill "general";
  396.  
  397. //Change these variables to impact the gain or loss in each area.
  398. _EnduranceSet = 0.05;
  399. _aimingAccuracySet = 0.05;
  400. _aimingShakeSet = 0.05;
  401. _aimingSpeedSet = 0.05;
  402. _spotDistanceSet = 0.05;
  403. _spotTimeSet = 0.02;
  404. _courageSet = 0.05;
  405. _reloadSpeedSet = 0.05;
  406. _commandingSet = 0.05;
  407. _generalSet = 0.05;
  408.  
  409.  
  410. _this setSkill ["aimingAccuracy",_EnduranceSet + _Endurance];
  411. _this setSkill ["aimingShake",_aimingAccuracySet + _aimingAccuracy];
  412. _this setSkill ["spotDistance",_aimingShakeSet + _aimingShake];
  413. _this setSkill ["spotTime",_aimingSpeedSet + _aimingSpeed];
  414. _this setSkill ["courage",_spotDistanceSet + _spotDistance];
  415. _this setSkill ["commanding",_spotTimeSet + _spotTime];
  416. _this setSkill ["aimingSpeed",_courageSet + _courage];
  417. _this setSkill ["general",_reloadSpeedSet + _reloadSpeed];
  418. _this setSkill ["endurance",_commandingSet + _commanding];
  419. _this setSkill ["reloadSpeed",_generalSet + _general];
  420.  
  421. };
  422. VCOM_AISKILL_EAST =
  423. {
  424. private _Endurance = _this skill "Endurance";
  425. private _aimingAccuracy = _this skill "aimingAccuracy";
  426. private _aimingShake = _this skill "aimingShake";
  427. private _aimingSpeed = _this skill "aimingSpeed";
  428. private _spotDistance = _this skill "spotDistance";
  429. private _spotTime = _this skill "spotTime";
  430. private _courage = _this skill "courage";
  431. private _reloadSpeed = _this skill "reloadSpeed";
  432. private _commanding = _this skill "commanding";
  433. private _general = _this skill "general";
  434.  
  435. //Change these variables to impact the gain or loss in each area.
  436. _EnduranceSet = 0.05;
  437. _aimingAccuracySet = 0.05;
  438. _aimingShakeSet = 0.05;
  439. _aimingSpeedSet = 0.05;
  440. _spotDistanceSet = 0.05;
  441. _spotTimeSet = 0.02;
  442. _courageSet = 0.05;
  443. _reloadSpeedSet = 0.05;
  444. _commandingSet = 0.05;
  445. _generalSet = 0.05;
  446.  
  447.  
  448. _this setSkill ["aimingAccuracy",_EnduranceSet + _Endurance];
  449. _this setSkill ["aimingShake",_aimingAccuracySet + _aimingAccuracy];
  450. _this setSkill ["spotDistance",_aimingShakeSet + _aimingShake];
  451. _this setSkill ["spotTime",_aimingSpeedSet + _aimingSpeed];
  452. _this setSkill ["courage",_spotDistanceSet + _spotDistance];
  453. _this setSkill ["commanding",_spotTimeSet + _spotTime];
  454. _this setSkill ["aimingSpeed",_courageSet + _courage];
  455. _this setSkill ["general",_reloadSpeedSet + _reloadSpeed];
  456. _this setSkill ["endurance",_commandingSet + _commanding];
  457. _this setSkill ["reloadSpeed",_generalSet + _general];
  458.  
  459. };
  460. VCOM_AISKILL_RESISTANCE =
  461. {
  462. private _Endurance = _this skill "Endurance";
  463. private _aimingAccuracy = _this skill "aimingAccuracy";
  464. private _aimingShake = _this skill "aimingShake";
  465. private _aimingSpeed = _this skill "aimingSpeed";
  466. private _spotDistance = _this skill "spotDistance";
  467. private _spotTime = _this skill "spotTime";
  468. private _courage = _this skill "courage";
  469. private _reloadSpeed = _this skill "reloadSpeed";
  470. private _commanding = _this skill "commanding";
  471. private _general = _this skill "general";
  472.  
  473. //Change these variables to impact the gain or loss in each area.
  474. _EnduranceSet = 0.05;
  475. _aimingAccuracySet = 0.05;
  476. _aimingShakeSet = 0.05;
  477. _aimingSpeedSet = 0.05;
  478. _spotDistanceSet = 0.05;
  479. _spotTimeSet = 0.02;
  480. _courageSet = 0.05;
  481. _reloadSpeedSet = 0.05;
  482. _commandingSet = 0.05;
  483. _generalSet = 0.05;
  484.  
  485.  
  486. _this setSkill ["aimingAccuracy",_EnduranceSet + _Endurance];
  487. _this setSkill ["aimingShake",_aimingAccuracySet + _aimingAccuracy];
  488. _this setSkill ["spotDistance",_aimingShakeSet + _aimingShake];
  489. _this setSkill ["spotTime",_aimingSpeedSet + _aimingSpeed];
  490. _this setSkill ["courage",_spotDistanceSet + _spotDistance];
  491. _this setSkill ["commanding",_spotTimeSet + _spotTime];
  492. _this setSkill ["aimingSpeed",_courageSet + _courage];
  493. _this setSkill ["general",_reloadSpeedSet + _reloadSpeed];
  494. _this setSkill ["endurance",_commandingSet + _commanding];
  495. _this setSkill ["reloadSpeed",_generalSet + _general];
  496.  
  497. };
  498. };
RAW Paste Data