Robalo 465 Posted July 2, 2012 I guess Pd3 is talking about AI hearing after they detected someone, not before. Because I tweaked it making sure that stabbing someone in the back in certain conditions can be done. It's probably the knowledge which once acquired lingers for longer than we'd expect to in CQB fights. Share this post Link to post Share on other sites
pd3 25 Posted July 2, 2012 (edited) I've been looking through it again comparing my modifications to that of stock BIS units. In some circumstances they seem to be less pinpoint accurate, however the last time I played with stock BIS units there might've been an update or two. All I can say is that I can sneak around the AI now with my mod and before that, they were so neurotic that no matter what you did, they were usually in a position to shoot you before you shot them. I will also say that this most recent time I tested the stock AI a new anomaly popped up, in which an AI went on a wild tangent, presuming I was somewhere I wasn't, in fact more than 90 degrees of difference, and then started throwing grenades in that direction. This did not happen back when I aimed to make those modifications. ---------- Post added at 23:01 ---------- Previous post was at 23:00 ---------- I guess Pd3 is talking about AI hearing after they detected someone, not before. Because I tweaked it making sure that stabbing someone in the back in certain conditions can be done. It's probably the knowledge which once acquired lingers for longer than we'd expect to in CQB fights. Yes, its all post-detection. Also, are you aware of a variable that modifies the FOV of AI? Their apparent "peripheral" vision is just as acute as that of looking at something dead-on. Edited July 2, 2012 by Pd3 Share this post Link to post Share on other sites
maturin 12 Posted July 2, 2012 (edited) I posted the link a page back.I'm not going to spoonfeed you. I didn't ask you for a script. A script is useless without a mission. It sounds to me like you are making claims that directly contradict what I have empirically proven for myself. You have to spoonfeed it to me, or I won't believe you, because you have not demonstrated that your testing methodology and experience is worth anything. And regardless, they can hear you at a distance further than you can hear them, and regardless of the modulus of that disparity, its still cheating, and it still gives the AI an unfair advantage.From what I can tell with my experiment in shapur, they can detect you to at least twice that distance. 42m was around the average distance at which I started going: "WTF" AI footstep hearing range when unaware=15m AI footstep hearing range when aware>25m Tested with ACE and ASR AI and much more useful script that is visual rather than map-based. I'll send the mission to you if you want it, and we can compare notes. Their apparent "peripheral" vision is just as acute as that of looking at something dead-on. I have observed too much tunnel vision to believe that. Their effective FOV may change based on the situation. Actually they (AI) do. That's the reason ACE had to add new ammo and magazines and change them on the fly for the suppressed weapons shooting supersonic ammo. Plus my system helps the AI detect the shooter in addition to the engine already. There are config parameters for ammo which control that, audiblefire and visiblefire which I suspect they're calculated in relation to unit's sensitivity and sensitivityEar values to determine detection. I remember a mod for Arma1 which added some "Whisper" bullets, supersonic but low-velocity bullets which had a config so well done, when used in suppressed weapons, the AI would detect the bullets but not the shooter, something in between the vanilla SD and non SD bullets. This is big news to me, Robalo. Because when I fire supersonic rounds from a suppressed weapon from beyond the hearing range of the muzzle blast, the AI don't react to the bullets snapping past their head. Edited July 2, 2012 by maturin Share this post Link to post Share on other sites
pd3 25 Posted July 2, 2012 I didn't ask you for a script. A script is useless without a mission.It sounds to me like you are making claims that directly contradict what I have empirically proven for myself. You have to spoonfeed it to me, or I won't believe you Again, you're demonstrating a clear resistance to put any effort into testing this yourself, if you're placing those sorts of stipulations on research, you're already admitted you refuse to believe. Furthermore, my convincing you of a very real issue is not of the utmost importance. because you have not demonstrated that your testing methodology and experience is worth anything. Oh but it absolutely was, and if you're admitting you cannot replicate or at least create a better test than I did for myself, you've no place to make any claims about the quality of my experiments. At the time I conducted those experiments, and around the same time that original thread was created a general consensus regarding the AI's ability to not only spot, but track obscured movement was generally accepted. You've already prefaced your skepticism with an overt bias, and to be quite honest you're not important enough for me to do something you're too lazy to do yourself, in spite of your vehement denial of this issue. AI footstep hearing range when unaware=15m AI footstep hearing range when aware>25m Tested with ACE and ASR AI and much more useful script that is visual rather than map-based. I'll send the mission to you if you want it, and we can compare notes. That in of itself is evidence enough, as unless the hearing range is altered for players. At 25m footfalls for the player are barely distinguishable, and require relative ambient silence to be heard, this with expensive sennheiser headphones no less. Now consider that every single time an AI player updates its potential knowledge of where you are, even at 25m, they can make a speculation based on where you're headed that the player simply cannot. In other words, unlike the player in which our hearing of ai footfalls is heavily obscured by that distance, they simply either hear you, or they don't. So essentially, that distance should be halved so that any speculation regarding the player's next location is less prediction, and more conjecture. ---------- Post added at 23:24 ---------- Previous post was at 23:19 ---------- Their apparent "peripheral" vision is just as acute as that of looking at something dead-on.I have observed too much tunnel vision to believe that. Their effective FOV may change based on the situation. I can be anywhere upwards of 60m moving parallel to their line of sight and they can still spot me. I would chalk up that tunnel vision to a random inconsistency. When I've been previously spotted by an AI opponent, if I plan to dart from alleyway to alleyway, parallel to their field of vision at a considerable distance, they still manage to update their location of where I am. No player would have that luxury of seeing somebody moving at 90 degrees of their facing. Share this post Link to post Share on other sites
maturin 12 Posted July 2, 2012 (edited) Again, you're demonstrating a clear resistance to put any effort into testing this yourself, if you're placing those sorts of stipulations on research, you're already admitted you refuse to believe. I don't know what to test! You don't seem to realize how this works. When you complain about a glitch, you tell other people how to re-produce it. You haven't even described a situation where I should experience this behavior. At 25m footfalls for the player are barely distinguishable, and require relative ambient silence to be heard, this with expensive sennheiser headphones no less. I have $9 headphones and can hear quite well at 50m. And the AI cannot hear you at 25m. I said 'less than,' so the range may be considerably lower. Now consider that every single time an AI player updates its potential knowledge of where you are, even at 25m, they can make a speculation based on where you're headed that the player simply cannot. Eh? I can speculate based on footsteps. With the power of logic, with the AI lacks, I can know that the AI is not running through that pond or solid building over there. In other words, unlike the player in which our hearing of ai footfalls is heavily obscured by that distance, they simply either hear you, or they don't. Untrue. If you use the script I do, you will see that at certain ranges, the AI CANNOT pinpoint your location based on hearing, but only makes a guess concerning a larger (maybe 25m2) circle. So they have no echolocation at 15m, because they require visual confirmation at that range. I can be anywhere upwards of 60m moving parallel to their line of sight and they can still spot me. This means nothing without an angle measurement, you know. I would chalk up that tunnel vision to a random inconsistency. NO. I can reproduce it flawlessly. It happens under certain circumstances that are quite common. You had the nerve to mention bias earlier? When I've been previously spotted by an AI opponent, if I plan to dart from alleyway to alleyway, parallel to their field of vision at a considerable distance, they still manage to update their location of where I am.No player would have that luxury of seeing somebody moving at 90 degrees of their facing. 90 degrees from their LoS, 100m, say? Now that I can test. Stand by. Edit: And yes, post-detection, AI seem to have a FoV of 180 degrees, as opposed to their pre-detection (but combat mode) predilection for tunnel vision. It's the central dilemma of ArmA's AI, moving from subhuman obliviousness to superhuman precision with a single bullet. See how this works now? If you actually provide a method of repro, things can be verified. So don't accuse me of bias when you effectively ask me to believe you without evidence. Edited July 2, 2012 by maturin Share this post Link to post Share on other sites
pd3 25 Posted July 2, 2012 I don't know what to test! You don't seem to realize how this works. When you complain about a glitch, you tell other people how to re-produce it. You haven't even described a situation where I should experience this behavior. I created an experiment in which I established a pathway extending from within to outside my audible range, moving through gaps between houses and around cover. When the AI runs this part of the gauntlet it was simply to determine the distance at which I lost the ability to hear them. When I ran it, it was in order to determine at which the point I lost my ability to hear the opponent and how well the AI was still able to track my movements. Granted since I've modified the game, which has been a fair amount of time now, it does seem as if the AI is far less consistent in pinpointing where I will re-enter their field of vision. However that was not originally the case. I have $9 headphones and can hear quite well at 50m. And the AI cannot hear you at 25m. I said 'less than,' so the range may be considerably lower. I've just attempted to hear the AI at 50m and could not, the only possibility of accounting for this is whether your sound card has EAX or something similar. Hardware acceleration may be responsible for that. Furthermore, the "useful" range at which you can hear footfalls is even lower, bearing in mind that most of the time you don't have the luxury of a completely quiet environment to hear your opponent. The AI suffers no such impairment to my knowledge. Eh? I can speculate based on footsteps. With the power of logic, with the AI lacks, I can know that the AI is not running through that pond or solid building over there. Yes, but at a distance which makes it useful? Typically the distance at which I can successfully hear them, you're not going to need to speculate as to which direction they've gone because they're so close that they'll hear you anyhow. Untrue. If you use the script I do, you will see that at certain ranges, the AI CANNOT pinpoint your location based on hearing, but only makes a guess concerning a larger (maybe 25m2) circle. So they have no echolocation at 15m, because they require visual confirmation at that range. Perhaps a total diameter of 25m, but that leaves a 12m radius that pretty much covers exactly where you're going to appear, meaning they can be facing completely away from you, at a distance which I personally cannot directly ascertain their direct location, and be ready to shoot you as soon as you appear. This means nothing without an angle measurement, you know. If you have two planes parallel to one another, at different distances, what angle do you think its going to be?! :confused: NO. I can reproduce it flawlessly. It happens under certain circumstances that are quite common. You had the nerve to mention bias earlier? All the circumstances I've encountered it are seemingly random, in fact the same circumstances under which I've experienced being spotted at a 90 degree angle, I've also experienced the AI inexplicably not spotting me. Although this was extremely rare around the time I started modifying things. 90 degrees from their LoS, 100m, say? Now that I can test. Stand by. This is of course after being identified by the enemy... Share this post Link to post Share on other sites
maturin 12 Posted July 3, 2012 I've just attempted to hear the AI at 50m and could not, the only possibility of accounting for this is whether your sound card has EAX or something similar. Hardware acceleration may be responsible for that. Or ACE_SM, come to think of it. Furthermore, the "useful" range at which you can hear footfalls is even lower, bearing in mind that most of the time you don't have the luxury of a completely quiet environment to hear your opponent. I agree. But since their footstep hearing ability only works out to two dozen meters (or less), which is smaller than most buildings, I call it a poor substitute for logic. Simply knowing where the two corners of a building are gives you a much better ability to outsmart someone in CQB. And you could always walk, you know, and render them deaf. Yes, but at a distance which makes it useful? Sure. I can hear what path they are taking around a building so I don't get flanked. Typically the distance at which I can successfully hear them, you're not going to need to speculate as to which direction they've gone because they're so close that they'll hear you anyhow. I don't follow. It's a problem that we can hear each other at them same time? And if I'm not moving, they will be clueless, because they can't see through solid objects. Perhaps a total diameter of 25m, but that leaves a 12m radius that pretty much covers exactly where you're going to appear, meaning they can be facing completely away from you, at a distance which I personally cannot directly ascertain their direct location, and be ready to shoot you as soon as you appear. I can definitely hear to the precision level of 25m in CQB, and if I hear your footsteps, you will get a facefull of lead as I use human logic to aim at the very small number of possible points you could emerge from (one, in a typical city). If you have two planes parallel to one another, at different distances, what angle do you think its going to be?! :confused: You said 60m offset from the unit's line of sight, meaning a very high angle at short range and a very low angle at long range. All the circumstances I've encountered it are seemingly random, in fact the same circumstances under which I've experienced being spotted at a 90 degree angle, I've also experienced the AI inexplicably not spotting me.. To repro tunnel vision, hide behind a solid object and fire a shot. If the AI looks in the wrong direction based on a faulty sound location estimation, they will probably exhibit tunnel vision. Share this post Link to post Share on other sites
jiltedjock 10 Posted July 3, 2012 (edited) hi, I wonder if anyone can help? I've noticed that all the Invasion 44 units seem to have the same skill base - Class Level 6. So I have tried to pass them into the custom ASR AI arrays using the .hpp - for example I want the airborne troops to go into one of the special forces arrays ie Class 1, I want regular troops to go into class 3 Regular etc However, when I examine the RPT, the units are still being assigned the Class 6 level of skills. These are the sorts of class names ie I am passing in to the arrays. I got these from Jedras spreadsheet. To me, they seem to be the correct classes ie they are parents of the individual vehicle names: "I44_Man_A_Army_bRifle" "I44_Man_A_Army_bOfficer" "I44_Man_A_Army_bNCO" "I44_Man_A_Army_bMG" "I44_Man_A_Army_bAT" "I44_Man_A_Army_bSniper" "I44_Man_A_Army_bMedic" "I44_Man_A_Army_bEngr" "I44_Man_A_Army_bGunCrew" "I44_Man_A_Army_bCrew" "I44_Man_A_Army_DDay_bRifle" "I44_Man_A_Army_DDay_bOfficer" "I44_Man_A_Army_DDay_bNCO" "I44_Man_A_Army_DDay_bMG" "I44_Man_A_Army_DDay_bAT" "I44_Man_A_Army_DDay_bSniper" "I44_Man_A_Army_DDay_bMedic" "I44_Man_A_Army_DDay_bEngr" "I44_Man_A_Army_DDay_bGunCrew" "I44_Man_A_Army_DDay_bCrew" "I44_Man_A_Army_AB_bRifle" "I44_Man_A_Army_AB_bOfficer" "I44_Man_A_Army_AB_bNCO" "I44_Man_A_Army_AB_bMG" "I44_Man_A_Army_AB_bAT" "I44_Man_A_Army_AB_bSniper" "I44_Man_A_Army_AB_bMedic" "I44_Man_A_Army_AB_bEngr" "I44_Man_A_Army_AB_bGunCrew" "I44_Man_A_Army_AB_bCrew" "I44_Man_A_Army_Ranger_bRifle" "I44_Man_A_Army_Ranger_bOfficer" "I44_Man_A_Army_Ranger_bNCO" "I44_Man_A_Army_Ranger_bMG" "I44_Man_A_Army_Ranger_bAT" "I44_Man_A_Army_Ranger_bSniper" "I44_Man_A_Army_Ranger_bMedic" "I44_Man_A_Army_Ranger_bEngr" "I44_Man_A_Army_Ranger_bGunCrew" "I44_Man_B_Army_bRifle" "I44_Man_B_Army_bOfficer" "I44_Man_B_Army_bNCO" "I44_Man_B_Army_bMG" "I44_Man_B_Army_bAT" "I44_Man_B_Army_bSniper" "I44_Man_B_Army_bMedic" "I44_Man_B_Army_bEngr" "I44_Man_B_Army_bGunCrew" "I44_Man_B_Army_bCrew" "I44_Man_B_Army_AB_bRifle" "I44_Man_B_Army_AB_bOfficer" "I44_Man_B_Army_AB_bNCO" "I44_Man_B_Army_AB_bMG" "I44_Man_B_Army_AB_bAT" "I44_Man_B_Army_AB_bSniper" "I44_Man_B_Army_AB_bMedic" "I44_Man_B_Army_AB_bEngr" "I44_Man_B_Army_AB_bGunCrew" "I44_Man_B_Army_AB_bCrew" "I44_Man_B_Army_Commando_bRifle" "I44_Man_B_Army_Commando_bOfficer" "I44_Man_B_Army_Commando_bNCO" "I44_Man_B_Army_Commando_bMG" "I44_Man_B_Army_Commando_bAT" "I44_Man_B_Army_Commando_bSniper" "I44_Man_B_Army_Commando_bMedic" "I44_Man_G_WH_bRifle" "I44_Man_G_WH_bOfficer" "I44_Man_G_WH_bNCO" "I44_Man_G_WH_bMG" "I44_Man_G_WH_bAT" "I44_Man_G_WH_bSniper" "I44_Man_G_WH_bMedic" "I44_Man_G_WH_bEngr" "I44_Man_G_WH_bGunCrew" "I44_Man_G_WH_bCrew" "I44_Man_G_WH_Camo_bRifle" "I44_Man_G_WH_Camo_bOfficer" "I44_Man_G_WH_Camo_bNCO" "I44_Man_G_WH_Camo_bMG" "I44_Man_G_WH_Camo_bAT" "I44_Man_G_WH_Camo_bSniper" "I44_Man_G_WH_Camo_bMedic" "I44_Man_G_WH_Camo_bEngr" "I44_Man_G_WH_Camo_bGunCrew" "I44_Man_G_WH_Camo_bCrew" "I44_Man_G_SS_bRifle" "I44_Man_G_SS_bOfficer" "I44_Man_G_SS_bNCO" "I44_Man_G_SS_bMG" "I44_Man_G_SS_bAT" "I44_Man_G_SS_bSniper" "I44_Man_G_SS_bMedic" "I44_Man_G_SS_bEngr" "I44_Man_G_SS_bGunCrew" "I44_Man_G_SS_bCrew" "I44_Man_G_WL_bRifle" "I44_Man_G_WL_bOfficer" "I44_Man_G_WL_bNCO" "I44_Man_G_WL_bMG" "I44_Man_G_WL_bAT" "I44_Man_G_WL_bSniper" "I44_Man_G_WL_bMedic" "I44_Man_G_WL_bEngr" "I44_Man_G_WL_bGunCrew" "I44_Man_G_WL_FJ_bRifle" "I44_Man_G_WL_FJ_bOfficer" "I44_Man_G_WL_FJ_bNCO" "I44_Man_G_WL_FJ_bMG" "I44_Man_G_WL_FJ_bAT" "I44_Man_G_WL_FJ_bSniper" "I44_Man_G_WL_FJ_bMedic" "I44_Man_G_WL_FJ_bEngr" "I44_Man_G_WL_FJ_bGunCrew" Has anyone had any success defining new skills for I44 units? Edited July 3, 2012 by jiltedjock Share this post Link to post Share on other sites
orcinus 121 Posted July 3, 2012 Update on testing the v1.5.3_test4: No Engage/disengage logorrhea by the player's unit (as leader, ofc) with asr_ai on its own, nor with TPWC AIS 2.0 on its own. Will test again with the latest version of TPWC AIS (2.02beta). Share this post Link to post Share on other sites
Robalo 465 Posted July 4, 2012 hi, I wonder if anyone can help?I've noticed that all the Invasion 44 units seem to have the same skill base - Class Level 6. So I have tried to pass them into the custom ASR AI arrays using the .hpp - for example I want the airborne troops to go into one of the special forces arrays ie Class 1, I want regular troops to go into class 3 Regular etc .. Has anyone had any success defining new skills for I44 units? Should be easy, but I did not understand what you did so I can't tell you what went wrong. ---------- Post added at 13:28 ---------- Previous post was at 13:27 ---------- Update on testing the v1.5.3_test4:No Engage/disengage logorrhea by the player's unit (as leader, ofc) with asr_ai on its own, nor with TPWC AIS 2.0 on its own. Will test again with the latest version of TPWC AIS (2.02beta). Unchanged yet, but I'll upload another test soon. Share this post Link to post Share on other sites
CameronMcDonald 146 Posted July 4, 2012 (edited) Ah, very good news, Robalo. On an odd note, I've noticed that your (wonderful) work's latest test version seems to break the SP scenario "Trial By Fire" (bunch of Marines being Huey'd onto Utes, terrible dialog) - the UH1 refuses to land and instead spends its time flying back and forth minigunning stuff. I'm pretty sure your latest non-test version had it running fine. If your latest test version causes it, I might create a ticket - although of course, you can feel free to ignore it as missions should be made to accommodate mods, not vice-versa. :) EDIT- yeah, you know what? I think it's just a sign that your addon is working, and also a mark of dubious mission design (not putting the pilot on careless to ensure the precious cargo actually gets delivered!). Ignore the above, and bring on the next test version, eh. Edited July 4, 2012 by CameronMcDonald Share this post Link to post Share on other sites
orcinus 121 Posted July 4, 2012 Thanks, Robalo. I tried running the latest TPWC AIS 2.02beta (pbo) with your test - I still get intermittent engage/disengage but much reduced frequency. FYI the mission I've been using as a test is bboy's "Pinned Down". Haven't had time to check with other missions where the player is leader, except for another couple of SP missions that are broken because the gear menu has been broken in the most recent betas. @CameronMcDonald: interesting, that's one of my standard test missions. I also find the chopper doesn't land immediately but does so after only one diversion: It takes out the Shilka on the hill S of the airfield). Quite reproducible. OTOH I have seen this happen if Zeus is running - the chopper cruises around taking out everything in sight and never lands. Share this post Link to post Share on other sites
CameronMcDonald 146 Posted July 4, 2012 @CameronMcDonald: interesting, that's one of my standard test missions. I also find the chopper doesn't land immediately but does so after only one diversion: It comes down after one pass on my system using the 1.15.1, but never lands on 1.15.1 test v4 - do you find the same? Also good to see someone using it as a testbed too! Share this post Link to post Share on other sites
orcinus 121 Posted July 4, 2012 It comes down after one pass on my system using the 1.15.1, but never lands on 1.15.1 test v4 - do you find the same?Also good to see someone using it as a testbed too! Nope, with either version it makes one attack then lands. Share this post Link to post Share on other sites
Robalo 465 Posted July 4, 2012 No worries, test4 had some rough experimental stuff, fine-tuning them for the next one. Excellent feedback, thanks ! I've added skill levels for the I44 soldiers too. Share this post Link to post Share on other sites
orcinus 121 Posted July 4, 2012 I've added skill levels for the I44 soldiers too. Excellent, thanks! Share this post Link to post Share on other sites
jiltedjock 10 Posted July 4, 2012 Should be easy, but I did not understand what you did so I can't tell you what went wrong. Hi Robalo Attached is my example hpp. /* ASR AI settings this file must be found in <game folder>\userconfig\asr_ai\ for most settings, 0 = disabled, 1 = enabled All config entries are turned into global variables following a standard naming scheme. For example: asr_ai_sys_airearming_feature = getNumber (configFile >> "asr_ai" >> "sys_airearming" >> "feature") Mission makers can control these features by setting these global variables in init.sqf or by setting a similar class in description.ext */ class asr_ai { version = 3; // will increment this when structure changes class sys_airearming { feature = 1; // All the other settings of this class matter only if we have 1 here run = 1; // Enable rearming at mission start radius = 50; // Rearming search radius - how far will AI go to grab stuff civ = 0; // Civilians will try to arm themselves sidearm = 1; // Units will take handguns binocs = 1; // Units will take binoculars ACEmeds[] = {4,1}; // Units will get this many morphine and epi (ACE mod); format: {amountIfMedic,amountIfNotMedic} // List of secondary weapons that any unit may take. Other launchers not in this list will only be picked by specialists launchers[] = { "M136","RPG18","cwr2_AT4","cwr2_LAW","cwr2_RPG75", "ACE_M136_CSRS","ACE_M72A2","ACE_M72","ACE_RPG22","ACE_RPG27","ACE_RPOM","ACE_RSHG1","ACE_RMG" }; // List of frag grenades that units will look for grenades[] = { "HandGrenade","HandGrenade_West","HandGrenade_East","BAF_L109A1_HE","ACE_DM51","ACE_DM51A1" }; // List of smoke grenades that units will look for smokes[] = { "SmokeShell","SmokeShellRed","SmokeShellGreen","SmokeShellYellow","SmokeShellPurple","SmokeShellBlue","SmokeShellOrange", "ACE_M34","ACE_RDG2","ACE_RDGM","ACE_DM25","ACE_DM31","ACE_DM32","ACE_DM33","ACE_DM34","ACE_DM36","ACE_M15" }; }; class sys_aiskill { feature = 1; // All the other settings of this class matter only if we have 1 here civ = 0; // Enable advanced skills for civilians radionet = 1; // AI groups share known enemy locations over radio radiorange = 600; // Maximum range for radios radionet_debug = 0; // Log info sharing to RPT nightspotting = 0.3; // Spotting range night reduction coeficient gunshothearing = 0.75; // Gunshot hearing range coefficient (applied to shooter's weapon sound range; 0 will disable the feature) gunshothearing_debug = 0; // Gunshot hearing debug: shows a hint with max range the AI will detect the shots fired by player (values: 0,1) buildingSearching = 0.8; // Chance the AI group will search nearby buildings when in combat mode (0 to 1 values, 0 will disable the feature) buildingSearchingAlwaysUp = 1; // Prefer UP stance (value: 1) when doing the house search or let AI choose automatically (value: 0) throwsmoke = 0.8; // AI throws smoke when hit (set 0 to disable or a number up to 1 to enable, higher number means better chance to do it) join_loners = 1; // Groups left with only one unit merge with nearest group of the same side or faction (1-enabled, 0-disabled) join_loners_sameFaction = 0; // Single units will only join groups of the same faction, if join_loners = 1 above (1-faction, 0-side) serverdvd = 1; // Dynamic dedicated server viewdistance adjustment setskills = 1; // Configure AI skills based on their unit type (faction, training etc.) setskills_debug = 1; // Log skill assignments to RPT recoilMod = 1; // Lower recoil when using MGs; also increased recoil for wounded AI (1-enabled, 0-disabled) stayLow = 1; // Units using MG, AR or sniper should fight from prone position (1-enabled, 0-disabled) split_legged = 300; // Units unable to walk for this time will separate from their group to prevent slowing it down (time in seconds, set 0 to disable) /* Units are classified into skill sets between 1 and 10 By default, a lower level number means a better skilled unit Levels 8-10 are special: - 8-9 are for pilots, very good by default, but some of their skills are now automatically reduced when they leave the aircraft (accuracy, courage) - 10 is for trained snipers */ class sets { // only classes of arrays under this class level_0 { // perfect (only used for testing) aimingAccuracy[] = {1.00, 0.00}; aimingShake[] = {1.00, 0.00}; aimingSpeed[] = {1.00, 0.00}; spotDistance[] = {1.00, 0.00}; spotTime[] = {1.00, 0.00}; endurance[] = {1.00, 0.00}; courage[] = {1.00, 0.00}; reloadSpeed[] = {1.00, 0.00}; commanding[] = {1.00, 0.00}; general[] = {1.00, 0.00}; units[] = { // add class names to this to override their default (or inherited) skill set }; }; class level_1 { // sf 1 aimingAccuracy[] = {0.35, 0.10}; // skilltype = {<min value>, <random value added to min>}; aimingShake[] = {0.35, 0.10}; aimingSpeed[] = {0.60, 0.20}; spotDistance[] = {0.65, 0.30}; spotTime[] = {0.40, 0.20}; endurance[] = {0.80, 0.20}; courage[] = {0.80, 0.20}; reloadSpeed[] = {0.80, 0.20}; commanding[] = {0.80, 0.20}; general[] = {0.80, 0.20}; units[] = { "I44_Man_A_Army_AB_bRifle","I44_Man_A_Army_AB_bOfficer","I44_Man_A_Army_AB_bNCO","I44_Man_A_Army_AB_bMG","I44_Man_A_Army_AB_bAT","I44_Man_A_Army_AB_bMedic", "I44_Man_A_Army_AB_bEngr","I44_Man_A_Army_AB_bGunCrew","I44_Man_A_Army_AB_bCrew","I44_Man_A_Army_Ranger_bRifle","I44_Man_A_Army_Ranger_bOfficer", "I44_Man_A_Army_Ranger_bNCO","I44_Man_A_Army_Ranger_bMG","I44_Man_A_Army_Ranger_bAT","I44_Man_A_Army_Ranger_bMedic", "I44_Man_A_Army_Ranger_bEngr","I44_Man_A_Army_Ranger_bGunCrew","I44_Man_B_Army_AB_bRifle","I44_Man_B_Army_AB_bOfficer", "I44_Man_B_Army_AB_bNCO","I44_Man_B_Army_AB_bMG","I44_Man_B_Army_AB_bAT","I44_Man_B_Army_AB_bMedic", "I44_Man_B_Army_AB_bEngr","I44_Man_B_Army_AB_bGunCrew","I44_Man_B_Army_AB_bCrew","I44_Man_B_Army_Commando_bRifle", "I44_Man_B_Army_Commando_bOfficer","I44_Man_B_Army_Commando_bNCO","I44_Man_B_Army_Commando_bMG", "I44_Man_B_Army_Commando_bAT","I44_Man_B_Army_Commando_bMedic","I44_Man_G_WL_FJ_bRifle","I44_Man_G_WL_FJ_bOfficer", "I44_Man_G_WL_FJ_bNCO","I44_Man_G_WL_FJ_bMG","I44_Man_G_WL_FJ_bAT","I44_Man_G_WL_FJ_bMedic", "I44_Man_G_WL_FJ_bEngr","I44_Man_G_WL_FJ_bGunCrew" }; }; class level_2 { // sf 2 aimingAccuracy[] = {0.30, 0.10}; aimingShake[] = {0.30, 0.10}; aimingSpeed[] = {0.55, 0.20}; spotDistance[] = {0.60, 0.30}; spotTime[] = {0.35, 0.20}; endurance[] = {0.70, 0.20}; courage[] = {0.80, 0.20}; reloadSpeed[] = {0.70, 0.20}; commanding[] = {0.80, 0.20}; general[] = {0.70, 0.20}; units[] = { "I44_Man_G_SS_bRifle","I44_Man_G_SS_bOfficer","I44_Man_G_SS_bNCO","I44_Man_G_SS_bMG","I44_Man_G_SS_bAT","I44_Man_G_SS_bMedic","I44_Man_G_SS_bEngr","I44_Man_G_SS_bGunCrew","I44_Man_G_SS_bCrew" }; }; class level_3 { // regular 1 aimingAccuracy[] = {0.25, 0.10}; aimingShake[] = {0.25, 0.10}; aimingSpeed[] = {0.50, 0.20}; spotDistance[] = {0.55, 0.30}; spotTime[] = {0.30, 0.20}; endurance[] = {0.60, 0.20}; courage[] = {0.60, 0.20}; reloadSpeed[] = {0.60, 0.20}; commanding[] = {0.60, 0.20}; general[] = {0.60, 0.20}; units[] = { "I44_Man_A_Army_bRifle","I44_Man_A_Army_bOfficer","I44_Man_A_Army_bNCO","I44_Man_A_Army_bMG","I44_Man_A_Army_bAT","I44_Man_A_Army_bMedic", "I44_Man_A_Army_bEngr","I44_Man_A_Army_bGunCrew","I44_Man_A_Army_bCrew","I44_Man_A_Army_DDay_bRifle","I44_Man_A_Army_DDay_bOfficer","I44_Man_A_Army_DDay_bNCO", "I44_Man_A_Army_DDay_bMG","I44_Man_A_Army_DDay_bAT","I44_Man_A_Army_DDay_bMedic","I44_Man_A_Army_DDay_bEngr","I44_Man_A_Army_DDay_bGunCrew","I44_Man_A_Army_DDay_bCrew", "I44_Man_B_Army_bRifle","I44_Man_B_Army_bOfficer","I44_Man_B_Army_bNCO","I44_Man_B_Army_bMG", "I44_Man_B_Army_bAT","I44_Man_B_Army_bMedic","I44_Man_B_Army_bEngr","I44_Man_B_Army_bGunCrew", "I44_Man_B_Army_bCrew","I44_Man_G_WH_bRifle","I44_Man_G_WH_bOfficer","I44_Man_G_WH_bNCO","I44_Man_G_WH_bMG", "I44_Man_G_WH_bAT","I44_Man_G_WH_bMedic","I44_Man_G_WH_bEngr","I44_Man_G_WH_bGunCrew","I44_Man_G_WH_bCrew", "I44_Man_G_WH_Camo_bRifle","I44_Man_G_WH_Camo_bOfficer","I44_Man_G_WH_Camo_bNCO","I44_Man_G_WH_Camo_bMG", "I44_Man_G_WH_Camo_bAT","I44_Man_G_WH_Camo_bMedic","I44_Man_G_WH_Camo_bEngr","I44_Man_G_WH_Camo_bGunCrew", "I44_Man_G_WH_Camo_bCrew","I44_Man_G_WL_bRifle","I44_Man_G_WL_bOfficer","I44_Man_G_WL_bNCO","I44_Man_G_WL_bMG", "I44_Man_G_WL_bAT","I44_Man_G_WL_bMedic","I44_Man_G_WL_bEngr","I44_Man_G_WL_bGunCrew" }; }; class level_4 { // regular 2 aimingAccuracy[] = {0.20, 0.10}; aimingShake[] = {0.20, 0.10}; aimingSpeed[] = {0.45, 0.20}; spotDistance[] = {0.50, 0.30}; spotTime[] = {0.25, 0.20}; endurance[] = {0.50, 0.20}; courage[] = {0.50, 0.20}; reloadSpeed[] = {0.50, 0.20}; commanding[] = {0.50, 0.20}; general[] = {0.50, 0.20}; units[] = { "ibr_bodyguard" }; }; class level_5 { // militia or trained insurgents, former regulars aimingAccuracy[] = {0.15, 0.10}; aimingShake[] = {0.15, 0.10}; aimingSpeed[] = {0.40, 0.20}; spotDistance[] = {0.45, 0.30}; spotTime[] = {0.20, 0.20}; endurance[] = {0.40, 0.20}; courage[] = {0.40, 0.20}; reloadSpeed[] = {0.40, 0.20}; commanding[] = {0.40, 0.20}; general[] = {0.40, 0.20}; units[] = { "ibr_arl_officer","ibr_arl_sniper","ibr_arl_sab","ibr_arl_roberto","ibr_arl_marksman" }; }; class level_6 { // civilians with some military training aimingAccuracy[] = {0.10, 0.10}; aimingShake[] = {0.10, 0.10}; aimingSpeed[] = {0.35, 0.20}; spotDistance[] = {0.40, 0.30}; spotTime[] = {0.15, 0.20}; endurance[] = {0.30, 0.20}; courage[] = {0.30, 0.20}; reloadSpeed[] = {0.30, 0.20}; commanding[] = {0.30, 0.20}; general[] = {0.30, 0.20}; units[] = { "ibr_rebel11","ibr_rebel22","ibr_rebel33","ibr_rebel44","ibr_rebel55","ibr_rebel66","ibr_rebel77","ibr_rebel83","ibr_rebel95","ibr_rebel102", "ibr_rebel111","ibr_rebel125","ibr_rebel132","ibr_rebel145","ibr_rebel151","ibr_rebel162","ibr_rebel173","ibr_rebel184","ibr_rebel195", "ibr_rebel206","ibr_rebel217", "ibr_arl_rif","ibr_arl_rif2","ibr_arl_mg","ibr_arl_ar","ibr_arl_at","ibr_arl_aa","ibr_arl_crew","ibr_arl_medic", "ibr_drg_man1","ibr_drg_man2","ibr_drg_man3","ibr_drg_man4","ibr_drg_man5","ibr_drg_man6","ibr_drg_man7" }; }; class level_7 { // civilians without military training aimingAccuracy[] = {0.10, 0.10}; aimingShake[] = {0.10, 0.10}; aimingSpeed[] = {0.30, 0.20}; spotDistance[] = {0.35, 0.30}; spotTime[] = {0.10, 0.20}; endurance[] = {0.20, 0.20}; courage[] = {0.20, 0.20}; reloadSpeed[] = {0.20, 0.20}; commanding[] = {0.20, 0.20}; general[] = {0.20, 0.20}; units[] = { "ibr_arl_stoner1","ibr_arl_stoner2","ibr_arl_stoner3","ibr_arl_stoner4","ibr_arl_stoner5","ibr_arl_stoner6","ibr_arl_stoner7" }; }; class level_8 { // pilot 1 aimingAccuracy[] = {0.25, 0.10}; aimingShake[] = {0.25, 0.10}; aimingSpeed[] = {0.60, 0.20}; spotDistance[] = {0.65, 0.30}; spotTime[] = {0.40, 0.20}; endurance[] = {0.60, 0.20}; courage[] = {0.60, 0.20}; reloadSpeed[] = {0.60, 0.20}; commanding[] = {0.60, 0.20}; general[] = {0.60, 0.20}; units[] = { "ibr_arl_eric" }; }; class level_9 { // pilot 2 aimingAccuracy[] = {0.20, 0.10}; aimingShake[] = {0.20, 0.10}; aimingSpeed[] = {0.55, 0.20}; spotDistance[] = {0.60, 0.30}; spotTime[] = {0.35, 0.20}; endurance[] = {0.50, 0.20}; courage[] = {0.50, 0.20}; reloadSpeed[] = {0.50, 0.20}; commanding[] = {0.50, 0.20}; general[] = {0.50, 0.20}; units[] = { "ibr_arl_pilot","ibr_drg_pilot" }; }; class level_10 { // sniper aimingAccuracy[] = {0.80, 0.10}; aimingShake[] = {0.90, 0.10}; aimingSpeed[] = {0.65, 0.20}; spotDistance[] = {0.70, 0.30}; spotTime[] = {0.75, 0.20}; endurance[] = {0.70, 0.20}; courage[] = {0.70, 0.20}; reloadSpeed[] = {0.70, 0.20}; commanding[] = {0.70, 0.20}; general[] = {0.70, 0.20}; units[] = { "I44_Man_A_Army_bSniper","I44_Man_A_Army_DDay_bSniper","I44_Man_B_Army_bSniper","I44_Man_G_WH_bSniper","I44_Man_G_WH_Camo_bSniper", "I44_Man_G_WL_bSniper","I44_Man_A_Army_AB_bSniper","I44_Man_A_Army_Ranger_bSniper","I44_Man_B_Army_AB_bSniper", "I44_Man_B_Army_Commando_bSniper","I44_Man_G_SS_bSniper","I44_Man_G_WL_FJ_bSniper" }; }; };//sets };//sys_aiskill }; These, as far as I can tell, are the class names. I took them from Jedras spreadsheet http://www.arma2jedra.co.uk/Addons/Skills.rar and also had a look in the I44 pbos. The vehicle names are here https://dev-heaven.net/projects/inv44/wiki/Classlist I've tried those too with no success. Typical output from RPT is here (unit is AB1) [201566,7673.33,0,"XEH: PreInit Started. v3.3.3. MISSINIT: missionName=testww2, worldName=I44_Omaha_v2, isMultiplayer=false, isServer=true, isDedicated=false"] [201566,7673.39,0,"XEH: PreInit Finished. CACHE DISABLED? (Disable caching with cba_disable_cache.pbo): SLX_XEH_RECOMPILE=false, CBA_COMPILE_RECOMPILE=false, CBA_FUNC_RECOMPILE=false"] [] [201583,7673.63,0,"XEH: PostInit Started"] [201583,7673.65,0,"CBA_VERSIONING: cba=0.8.3.175, "] [201583,7673.65,0,"XEH: PostInit Finished. State: _isClient=true, _isJip=false, _isDedClient=false, _isServer=true, _isDedServer=false, _playerCheckDone=true, _sp=true, _startInitDone=true, _postInitDone=true, _mpRespawn=false, _machineType=1, _sessionId=24, BIS_functions=L 1-1-A:1, group=L 1-1-A, player=B 1-1-A:1 (Andrew), _playerType=I44_Man_B_Army_AB_NCO_StenMk5", _playerGroup=B 1-1-A] "Unit B 1-1-A:1 (Andrew) has skill 1" "5.003 | Unit B 1-1-A:1 (Andrew) gets skill aimingAccuracy value 0.161652" "5.003 | Unit B 1-1-A:1 (Andrew) gets skill aimingShake value 0.134909" "5.003 | Unit B 1-1-A:1 (Andrew) gets skill aimingSpeed value 0.412013" "5.003 | Unit B 1-1-A:1 (Andrew) gets skill endurance value 0.476099" "5.003 | Unit B 1-1-A:1 (Andrew) gets skill spotDistance value 0.555163" "5.003 | Unit B 1-1-A:1 (Andrew) gets skill spotTime value 0.230036" "5.003 | Unit B 1-1-A:1 (Andrew) gets skill courage value 0.5" "5.003 | Unit B 1-1-A:1 (Andrew) gets skill reloadSpeed value 0.428329" "5.003 | Unit B 1-1-A:1 (Andrew) gets skill commanding value 0.327002" "5.003 | Unit B 1-1-A:1 (Andrew) gets skill general value 0.487773" "Unit ab1 has skill 0.424835" "5.003 | Unit ab1 gets skill aimingAccuracy value 0.187309" "5.003 | Unit ab1 gets skill aimingShake value 0.197728" "5.003 | Unit ab1 gets skill aimingSpeed value 0.520479" "5.003 | Unit ab1 gets skill endurance value 0.314546" "5.003 | Unit ab1 gets skill spotDistance value 0.422008" "5.003 | Unit ab1 gets skill spotTime value 0.330932" "5.003 | Unit ab1 gets skill courage value 0.320912" "5.003 | Unit ab1 gets skill reloadSpeed value 0.321468" "5.003 | Unit ab1 gets skill commanding value 0.342689" "5.003 | Unit ab1 gets skill general value 0.424835" Share this post Link to post Share on other sites
Robalo 465 Posted July 4, 2012 (edited) jiltedjock, from the looks of it you put base classes in there, but you need to put the actual soldier classes. Class inheritance does not work here, the unit type is checked if matching exactly with those set in userconfig as overrides. In your case, for example in the RPT I see your class is "I44_Man_B_Army_AB_NCO_StenMk5" but you don't have that in the userconfig. Edited July 4, 2012 by Robalo Share this post Link to post Share on other sites
teilx 4 Posted July 4, 2012 (edited) nice, i44 support....you are a hero. C'mon IF44 config would be a dream.^^ *joke* Edited July 4, 2012 by TeilX Share this post Link to post Share on other sites
Robalo 465 Posted July 4, 2012 nice, i44 support....you are a hero. C'mon IF44 config would be a dream.^^ *joke* Only basic support for I44, skill settings by class type. For complete support, I'd need to write a special config addon and require the I44 mod for it to work. Not so high in my TODO list :) Same goes for IF44, which I don't even have. ---------- Post added at 18:26 ---------- Previous post was at 17:49 ---------- Ah, very good news, Robalo.On an odd note, I've noticed that your (wonderful) work's latest test version seems to break the SP scenario "Trial By Fire" (bunch of Marines being Huey'd onto Utes, terrible dialog) - the UH1 refuses to land and instead spends its time flying back and forth minigunning stuff. I'm pretty sure your latest non-test version had it running fine. If your latest test version causes it, I might create a ticket - although of course, you can feel free to ignore it as missions should be made to accommodate mods, not vice-versa. :) EDIT- yeah, you know what? I think it's just a sign that your addon is working, and also a mark of dubious mission design (not putting the pilot on careless to ensure the precious cargo actually gets delivered!). Ignore the above, and bring on the next test version, eh. Took me a while to figure this out, because it was the last thing I'd expect. The problem is not the extended skills and sensors, or any behavior change, but a simple M134 weapon config tweak: I've extended it's maximum engagement range for AI from 800m to 1000m. The addon is asr_ai_c_airof.pbo. The AI pilot probably has the ZU truck within that range and decides to engage it, then it finds other targets and keeps killing. I'd agree on weak mission design on this one, they could've prevented that as you noted. Share this post Link to post Share on other sites
bravo409 13 Posted July 4, 2012 I'm still having trouble with the ai finding me where ever i go they always find me even if I run far away they still know right where I'm and this getting to be very annoying at the least. I have tried stealth and recon mod and tried lowering the sensitive ear and really saw no difference with that and plus I used the new 1.2 cowarmod only using slx+asr ai and still no difference what on gods green earth is going on some people say they dont have this problem. What I'm I configuring wrong in the ai mods someone please help. Share this post Link to post Share on other sites
Robalo 465 Posted July 4, 2012 I'm still having trouble with the ai finding me where ever i go they always find me even if I run far away they still know right where I'm and this getting to be very annoying at the least. I have tried stealth and recon mod and tried lowering the sensitive ear and really saw no difference with that and plus I used the new 1.2 cowarmod only using slx+asr ai and still no difference what on gods green earth is going on some people say they dont have this problem. What I'm I configuring wrong in the ai mods someone please help. Please post your testing scenario, rpt and config in a ticket on the tracker. Share this post Link to post Share on other sites
bravo409 13 Posted July 4, 2012 Please post your testing scenario, rpt and config in a ticket on the tracker. sorry to ask this but what is rpt Share this post Link to post Share on other sites
Robalo 465 Posted July 4, 2012 sorry to ask this but what is rpt http://community.bistudio.com/wiki/RPT test5 push0red Share this post Link to post Share on other sites
jiltedjock 10 Posted July 4, 2012 (edited) Hi Robalo thanks, yes I figured out where I was going wrong, need vehicle classnames as you suggested. I44 config below for anyone interested: [spoiler] /* ASR AI settings this file must be found in <game folder>\userconfig\asr_ai\ for most settings, 0 = disabled, 1 = enabled All config entries are turned into global variables following a standard naming scheme. For example: asr_ai_sys_airearming_feature = getNumber (configFile >> "asr_ai" >> "sys_airearming" >> "feature") Mission makers can control these features by setting these global variables in init.sqf or by setting a similar class in description.ext */ class asr_ai { version = 3; // will increment this when structure changes class sys_airearming { feature = 1; // All the other settings of this class matter only if we have 1 here run = 1; // Enable rearming at mission start radius = 50; // Rearming search radius - how far will AI go to grab stuff civ = 0; // Civilians will try to arm themselves sidearm = 1; // Units will take handguns binocs = 1; // Units will take binoculars ACEmeds[] = {4,1}; // Units will get this many morphine and epi (ACE mod); format: {amountIfMedic,amountIfNotMedic} // List of secondary weapons that any unit may take. Other launchers not in this list will only be picked by specialists launchers[] = { "M136","RPG18","cwr2_AT4","cwr2_LAW","cwr2_RPG75", "ACE_M136_CSRS","ACE_M72A2","ACE_M72","ACE_RPG22","ACE_RPG27","ACE_RPOM","ACE_RSHG1","ACE_RMG","I44_M1A1Bazooka","I44_PIAT","I44_PzFaust","I44_PzFaust30","I44_PzFaust60","I44_PzFaust100","I44_RPzB54" }; // List of frag grenades that units will look for grenades[] = { "HandGrenade","HandGrenade_West","HandGrenade_East","BAF_L109A1_HE","ACE_DM51","ACE_DM51A1", "I44_HandGrenade_No82","I44_HandGrenade_StiHgr24x7","I44_HandGrenade_Mk2","I44_HandGrenade_No36M","I44_HandGrenade_StiHgr24" }; // List of smoke grenades that units will look for smokes[] = { "SmokeShell","SmokeShellRed","SmokeShellGreen","SmokeShellYellow","SmokeShellPurple","SmokeShellBlue","SmokeShellOrange", "ACE_M34","ACE_RDG2","ACE_RDGM","ACE_DM25","ACE_DM31","ACE_DM32","ACE_DM33","ACE_DM34","ACE_DM36","ACE_M15" }; }; class sys_aiskill { feature = 1; // All the other settings of this class matter only if we have 1 here civ = 0; // Enable advanced skills for civilians radionet = 1; // AI groups share known enemy locations over radio radiorange = 600; // Maximum range for radios radionet_debug = 0; // Log info sharing to RPT nightspotting = 0.3; // Spotting range night reduction coeficient gunshothearing = 0.75; // Gunshot hearing range coefficient (applied to shooter's weapon sound range; 0 will disable the feature) gunshothearing_debug = 0; // Gunshot hearing debug: shows a hint with max range the AI will detect the shots fired by player (values: 0,1) buildingSearching = 0.8; // Chance the AI group will search nearby buildings when in combat mode (0 to 1 values, 0 will disable the feature) buildingSearchingAlwaysUp = 1; // Prefer UP stance (value: 1) when doing the house search or let AI choose automatically (value: 0) throwsmoke = 0.8; // AI throws smoke when hit (set 0 to disable or a number up to 1 to enable, higher number means better chance to do it) join_loners = 1; // Groups left with only one unit merge with nearest group of the same side or faction (1-enabled, 0-disabled) join_loners_sameFaction = 0; // Single units will only join groups of the same faction, if join_loners = 1 above (1-faction, 0-side) serverdvd = 1; // Dynamic dedicated server viewdistance adjustment setskills = 1; // Configure AI skills based on their unit type (faction, training etc.) setskills_debug = 1; // Log skill assignments to RPT recoilMod = 1; // Lower recoil when using MGs; also increased recoil for wounded AI (1-enabled, 0-disabled) stayLow = 1; // Units using MG, AR or sniper should fight from prone position (1-enabled, 0-disabled) split_legged = 300; // Units unable to walk for this time will separate from their group to prevent slowing it down (time in seconds, set 0 to disable) /* Units are classified into skill sets between 1 and 10 By default, a lower level number means a better skilled unit Levels 8-10 are special: - 8-9 are for pilots, very good by default, but some of their skills are now automatically reduced when they leave the aircraft (accuracy, courage) - 10 is for trained snipers */ class sets { // only classes of arrays under this class level_0 { // perfect (only used for testing) aimingAccuracy[] = {1.00, 0.00}; aimingShake[] = {1.00, 0.00}; aimingSpeed[] = {1.00, 0.00}; spotDistance[] = {1.00, 0.00}; spotTime[] = {1.00, 0.00}; endurance[] = {1.00, 0.00}; courage[] = {1.00, 0.00}; reloadSpeed[] = {1.00, 0.00}; commanding[] = {1.00, 0.00}; general[] = {1.00, 0.00}; units[] = { }; }; class level_1 { // sf 1 aimingAccuracy[] = {0.35, 0.10}; // skilltype = {<min value>, <random value added to min>}; aimingShake[] = {0.35, 0.10}; aimingSpeed[] = {0.60, 0.20}; spotDistance[] = {0.65, 0.30}; spotTime[] = {0.40, 0.20}; endurance[] = {0.80, 0.20}; courage[] = {0.80, 0.20}; reloadSpeed[] = {0.80, 0.20}; commanding[] = {0.80, 0.20}; general[] = {0.80, 0.20}; units[] = { "I44_Man_A_Army_AB_NCO_M1A1Carbine", "I44_Man_A_Army_AB_M1Garand", "I44_Man_A_Army_AB_M1Garand_M7", "I44_Man_A_Army_AB_M1A1Carbine", "I44_Man_A_Army_AB_RTO_M1A1Carbine", "I44_Man_A_Army_AB_M1903A3", "I44_Man_A_Army_AB_M1903A3_M1", "I44_Man_A_Army_AB_M1918A2", "I44_Man_A_Army_AB_M1A1Thompson", "I44_Man_A_Army_AB_M3Greasegun", "I44_Man_A_Army_AB_M1919A4", "I44_Man_A_Army_AB_M1A1Bazooka", "I44_Man_A_Army_AB_Medic", "I44_Man_A_Army_AB_Engr_M37DemoKit", "I44_Man_A_Army_AB_Engr_M2DemoCharges", "I44_Man_A_Army_AB_Engr_M1A1Bangalore", "I44_Man_A_Army_AB_Engr_M1Mine", "I44_Man_A_Army_AB_Engr_M2_2", "I44_Man_A_Army_AB_GunCrew_M1A1Carbine", "I44_Man_A_Army_AB_ATCrew_M3", "I44_Man_A_Army_AB_MCrew_C", "I44_Man_A_Army_AB_MCrew_G", "I44_Man_A_Army_AB_MGCrew_AG", "I44_Man_A_Army_AB_NCO_M1A1Carbine", "I44_Man_A_Army_AB_NCO_M1Garand", "I44_Man_A_Army_AB_NCO_M1A1Thompson", "I44_Man_A_Army_AB_GunCrew_NCO_M1911A1", "I44_Man_A_Army_AB_CO_M1A1Carbine", "I44_Man_A_Army_AB_CO_M1911A1", "I44_Man_A_Army_AB_82_NCO_M1A1Carbine", "I44_Man_A_Army_AB_82_M1Garand", "I44_Man_A_Army_AB_82_M1Garand_M7", "I44_Man_A_Army_AB_82_M1A1Carbine", "I44_Man_A_Army_AB_82_RTO_M1A1Carbine", "I44_Man_A_Army_AB_82_M1903A3", "I44_Man_A_Army_AB_82_M1903A3_M1", "I44_Man_A_Army_AB_82_M1918A2", "I44_Man_A_Army_AB_82_M1A1Thompson", "I44_Man_A_Army_AB_82_M3Greasegun", "I44_Man_A_Army_AB_82_M1919A4", "I44_Man_A_Army_AB_82_M1A1Bazooka", "I44_Man_A_Army_AB_82_Medic", "I44_Man_A_Army_AB_82_Engr_M37DemoKit", "I44_Man_A_Army_AB_82_Engr_M2DemoCharges", "I44_Man_A_Army_AB_82_Engr_M1A1Bangalore", "I44_Man_A_Army_AB_82_Engr_M1Mine", "I44_Man_A_Army_AB_82_Engr_M2_2", "I44_Man_A_Army_AB_82_GunCrew_M1A1Carbine", "I44_Man_A_Army_AB_82_ATCrew_M3", "I44_Man_A_Army_AB_82_MCrew_C", "I44_Man_A_Army_AB_82_MCrew_G", "I44_Man_A_Army_AB_82_MGCrew_AG", "I44_Man_A_Army_AB_82_NCO_M1A1Carbine", "I44_Man_A_Army_AB_82_NCO_M1Garand", "I44_Man_A_Army_AB_82_NCO_M1A1Thompson", "I44_Man_A_Army_AB_82_GunCrew_NCO_M1911A1", "I44_Man_A_Army_AB_82_CO_M1A1Carbine", "I44_Man_A_Army_AB_82_CO_M1911A1", "I44_Man_A_Army_AB_M43_NCO_M1A1Thompson", "I44_Man_A_Army_AB_M43_M1Garand", "I44_Man_A_Army_AB_M43_M1Garand_M7", "I44_Man_A_Army_AB_M43_M1A1Carbine", "I44_Man_A_Army_AB_M43_RTO_M1A1Carbine", "I44_Man_A_Army_AB_M43_M1903A3", "I44_Man_A_Army_AB_M43_M1903A3_M1", "I44_Man_A_Army_AB_M43_M1918A2", "I44_Man_A_Army_AB_M43_M1A1Thompson", "I44_Man_A_Army_AB_M43_M3Greasegun", "I44_Man_A_Army_AB_M43_M1919A4", "I44_Man_A_Army_AB_M43_M1A1Bazooka", "I44_Man_A_Army_AB_M43_Medic", "I44_Man_A_Army_AB_M43_Engr_M37DemoKit", "I44_Man_A_Army_AB_M43_Engr_M2DemoCharges", "I44_Man_A_Army_AB_M43_Engr_M1A1Bangalore", "I44_Man_A_Army_AB_M43_Engr_M1Mine", "I44_Man_A_Army_AB_M43_Engr_M2_2", "I44_Man_A_Army_AB_M43_GunCrew_M1A1Carbine", "I44_Man_A_Army_AB_M43_ATCrew_M3", "I44_Man_A_Army_AB_M43_MCrew_C", "I44_Man_A_Army_AB_M43_MCrew_G", "I44_Man_A_Army_AB_M43_MGCrew_AG", "I44_Man_A_Army_AB_M43_NCO_M1A1Carbine", "I44_Man_A_Army_AB_M43_NCO_M1Garand", "I44_Man_A_Army_AB_M43_NCO_M1A1Thompson", "I44_Man_A_Army_AB_M43_GunCrew_NCO_M1911A1", "I44_Man_A_Army_AB_M43_CO_M1A1Carbine", "I44_Man_A_Army_AB_M43_CO_M1911A1", "I44_Man_A_Army_AB_82_M43_NCO_M1A1Thompson", "I44_Man_A_Army_AB_82_M43_M1Garand", "I44_Man_A_Army_AB_82_M43_M1Garand_M7", "I44_Man_A_Army_AB_82_M43_M1A1Carbine", "I44_Man_A_Army_AB_82_M43_RTO_M1A1Carbine", "I44_Man_A_Army_AB_82_M43_M1903A3", "I44_Man_A_Army_AB_82_M43_M1903A3_M1", "I44_Man_A_Army_AB_82_M43_M1918A2", "I44_Man_A_Army_AB_82_M43_M1A1Thompson", "I44_Man_A_Army_AB_82_M43_M3Greasegun", "I44_Man_A_Army_AB_82_M43_M1919A4", "I44_Man_A_Army_AB_82_M43_M1A1Bazooka", "I44_Man_A_Army_AB_82_M43_Medic", "I44_Man_A_Army_AB_82_M43_Engr_M37DemoKit", "I44_Man_A_Army_AB_82_M43_Engr_M2DemoCharges", "I44_Man_A_Army_AB_82_M43_Engr_M1A1Bangalore", "I44_Man_A_Army_AB_82_M43_Engr_M1Mine", "I44_Man_A_Army_AB_82_M43_Engr_M2_2", "I44_Man_A_Army_AB_82_M43_GunCrew_M1A1Carbine", "I44_Man_A_Army_AB_82_M43_ATCrew_M3", "I44_Man_A_Army_AB_82_M43_MCrew_C", "I44_Man_A_Army_AB_82_M43_MCrew_G", "I44_Man_A_Army_AB_82_M43_MGCrew_AG", "I44_Man_A_Army_AB_82_M43_NCO_M1A1Carbine", "I44_Man_A_Army_AB_82_M43_NCO_M1Garand", "I44_Man_A_Army_AB_82_M43_NCO_M1A1Thompson", "I44_Man_A_Army_AB_82_M43_GunCrew_NCO_M1911A1", "I44_Man_A_Army_AB_82_M43_CO_M1A1Carbine", "I44_Man_A_Army_AB_82_M43_CO_M1911A1", "I44_Man_A_Army_AB_NCO_M1A1Thompson_Winter", "I44_Man_A_Army_AB_M1Garand_Winter", "I44_Man_A_Army_AB_M1Garand_M7_Winter", "I44_Man_A_Army_AB_M1A1Carbine_Winter", "I44_Man_A_Army_AB_RTO_M1A1Carbine_Winter", "I44_Man_A_Army_AB_M1903A3_Winter", "I44_Man_A_Army_AB_M1903A3_M1_Winter", "I44_Man_A_Army_AB_M1918A2_Winter", "I44_Man_A_Army_AB_M1A1Thompson_Winter", "I44_Man_A_Army_AB_M3Greasegun_Winter", "I44_Man_A_Army_AB_M1919A4_Winter", "I44_Man_A_Army_AB_M1A1Bazooka_Winter", "I44_Man_A_Army_AB_Medic_Winter", "I44_Man_A_Army_AB_Engr_M37DemoKit_Winter", "I44_Man_A_Army_AB_Engr_M2DemoCharges_Winter", "I44_Man_A_Army_AB_Engr_M1A1Bangalore_Winter", "I44_Man_A_Army_AB_Engr_M1Mine_Winter", "I44_Man_A_Army_AB_Engr_M2_2_Winter", "I44_Man_A_Army_AB_GunCrew_M1A1Carbine_Winter", "I44_Man_A_Army_AB_ATCrew_M3_Winter", "I44_Man_A_Army_AB_MCrew_C_Winter", "I44_Man_A_Army_AB_MCrew_G_Winter", "I44_Man_A_Army_AB_MGCrew_AG_Winter", "I44_Man_A_Army_AB_NCO_M1A1Carbine_Winter", "I44_Man_A_Army_AB_NCO_M1Garand_Winter", "I44_Man_A_Army_AB_NCO_M1A1Thompson_Winter", "I44_Man_A_Army_AB_GunCrew_NCO_M1911A1_Winter", "I44_Man_A_Army_AB_CO_M1A1Carbine_Winter", "I44_Man_A_Army_AB_CO_M1911A1_Winter", "I44_Man_A_Army_Ranger_NCO_M1Carbine", "I44_Man_A_Army_Ranger_M1Garand", "I44_Man_A_Army_Ranger_M1Garand_M7", "I44_Man_A_Army_Ranger_M1Carbine", "I44_Man_A_Army_Ranger_RTO_M1Carbine", "I44_Man_A_Army_Ranger_M1903A3", "I44_Man_A_Army_Ranger_M1903A3_M1", "I44_Man_A_Army_Ranger_M1918A2", "I44_Man_A_Army_Ranger_M1A1Thompson", "I44_Man_A_Army_Ranger_M3Greasegun", "I44_Man_A_Army_Ranger_M37Ithaca", "I44_Man_A_Army_Ranger_M1919A4", "I44_Man_A_Army_Ranger_M1A1Bazooka", "I44_Man_A_Army_Ranger_Engr_M37DemoKit", "I44_Man_A_Army_Ranger_Engr_M2DemoCharges", "I44_Man_A_Army_Ranger_Engr_M1A1Bangalore", "I44_Man_A_Army_Ranger_Engr_M1Mine", "I44_Man_A_Army_Ranger_Engr_M2_2", "I44_Man_A_Army_Ranger_Medic", "I44_Man_A_Army_Ranger_GunCrew_M1Carbine", "I44_Man_A_Army_Ranger_ATCrew_M3", "I44_Man_A_Army_Ranger_MCrew_C", "I44_Man_A_Army_Ranger_MCrew_G", "I44_Man_A_Army_Ranger_MGCrew_AG", "I44_Man_A_Army_Ranger_NCO_M1Carbine", "I44_Man_A_Army_Ranger_NCO_M1Garand", "I44_Man_A_Army_Ranger_NCO_M1A1Thompson", "I44_Man_A_Army_Ranger_GunCrew_NCO_M1911A1", "I44_Man_A_Army_Ranger_CO_M1Carbine", "I44_Man_A_Army_Ranger_CO_M1911A1", "I44_Man_B_Army_AB_NCO_StenMk5", "I44_Man_B_Army_AB_SMLENo4Mk1", "I44_Man_B_Army_AB_RTO", "I44_Man_B_Army_AB_SMLENo4Mk1_No82", "I44_Man_B_Army_AB_StenMk2", "I44_Man_B_Army_AB_StenMk5", "I44_Man_B_Army_AB_BrenMk1", "I44_Man_B_Army_AB_PIAT", "I44_Man_B_Army_AB_Engr_GrenadeNo75", "I44_Man_B_Army_AB_Eng_FlameNo2", "I44_Man_B_Army_AB_Medic", "I44_Man_B_Army_AB_Crew_WebleyMk6", "I44_Man_B_Army_AB_Crew_StenMk2", "I44_Man_B_Army_AB_GunCrew_SMLEdNo4Mk1", "I44_Man_B_Army_AB_ATCrew_SMLEdNo4Mk1", "I44_Man_B_Army_AB_Sapper_M37", "I44_Man_B_Army_AB_Sapper_M2", "I44_Man_B_Army_AB_Sapper_M1A1", "I44_Man_B_Army_AB_NCO_SMLENo4Mk1", "I44_Man_B_Army_AB_NCO_StenMk5", "I44_Man_B_Army_AB_CO_StenMk5", "I44_Man_B_Army_AB_CO_WebleyMk6", "I44_Man_B_Army_Commando_NCO_StenMk2S", "I44_Man_B_Army_Commando_SMLENo4Mk1", "I44_Man_B_Army_Commando_RTO", "I44_Man_B_Army_Commando_DeLisle", "I44_Man_B_Army_Commando_StenMk2", "I44_Man_B_Army_Commando_StenMk2S", "I44_Man_B_Army_Commando_StenMk5", "I44_Man_B_Army_Commando_M1A1Thompson", "I44_Man_B_Army_Commando_BrenMk1", "I44_Man_B_Army_Commando_PIAT", "I44_Man_B_Army_Commando_Engr_GrenadeNo75", "I44_Man_B_Army_Commando_Engr_FlameNo2", "I44_Man_B_Army_Commando_Medic", "I44_Man_B_Army_Commando_Sapper_M37", "I44_Man_B_Army_Commando_Sapper_M2", "I44_Man_B_Army_Commando_NCO_StenMk2S", "I44_Man_B_Army_Commando_CO_StenMk2S", "I44_Man_B_Army_Commando_CO_StenMk2S_winter", "I44_Man_B_Army_Commando_SMLENo4Mk1_winter", "I44_Man_B_Army_Commando_RTO_winter", "I44_Man_B_Army_Commando_DeLisle_winter", "I44_Man_B_Army_Commando_StenMk2_winter", "I44_Man_B_Army_Commando_StenMk2S_winter", "I44_Man_B_Army_Commando_StenMk5_winter", "I44_Man_B_Army_Commando_M1A1Thompson_winter", "I44_Man_B_Army_Commando_BrenMk1_winter", "I44_Man_B_Army_Commando_PIAT_winter", "I44_Man_B_Army_Commando_Engr_GrenadeNo75_winter", "I44_Man_B_Army_Commando_Engr_FlameNo2_winter", "I44_Man_B_Army_Commando_Sapper_M37_winter", "I44_Man_B_Army_Commando_Sapper_M2_winter", "I44_Man_B_Army_Commando_Medic_winter", "I44_Man_B_Army_Commando_NCO_StenMk2S_winter", "I44_Man_B_Army_Commando_CO_StenMk2S_winter", "I44_Man_G_WL_FJ_NCO_MP40", "I44_Man_G_WL_FJ_K98k", "I44_Man_G_WL_FJ_RTO", "I44_Man_G_WL_FJ_K98k_GGrGer", "I44_Man_G_WL_FJ_K98kZf41", "I44_Man_G_WL_FJ_K98k_PzF30", "I44_Man_G_WL_FJ_K98k_PzF60", "I44_Man_G_WL_FJ_G43", "I44_Man_G_WL_FJ_MP40", "I44_Man_G_WL_FJ_MP43", "I44_Man_G_WL_FJ_FG42", "I44_Man_G_WL_FJ_FG42_Zf4", "I44_Man_G_WL_FJ_MG34", "I44_Man_G_WL_FJ_MG42", "I44_Man_G_WL_FJ_RPzB54", "I44_Man_G_WL_FJ_GbLadung10kg", "I44_Man_G_WL_FJ_GbLadung3kg", "I44_Man_G_WL_FJ_SprB24", "I44_Man_G_WL_FJ_Rohrladung", "I44_Man_G_WL_FJ_TMi42", "I44_Man_G_WL_FJ_FmW35", "I44_Man_G_WL_FJ_Medic", "I44_Man_G_WL_FJ_ATCrew_G43", "I44_Man_G_WL_FJ_MCrew_C", "I44_Man_G_WL_FJ_MCrew_G", "I44_Man_G_WL_FJ_MGCrew_AG", "I44_Man_G_WL_FJ_NCO_K98k", "I44_Man_G_WL_FJ_NCO_MP40", "I44_Man_G_WL_FJ_NCO_MP43", "I44_Man_G_WL_FJ_CO_MP40", "I44_Man_G_WL_FJ_CO_P08" }; }; class level_2 { // sf 2 aimingAccuracy[] = {0.30, 0.10}; aimingShake[] = {0.30, 0.10}; aimingSpeed[] = {0.55, 0.20}; spotDistance[] = {0.60, 0.30}; spotTime[] = {0.35, 0.20}; endurance[] = {0.70, 0.20}; courage[] = {0.80, 0.20}; reloadSpeed[] = {0.70, 0.20}; commanding[] = {0.80, 0.20}; general[] = {0.75, 0.20}; units[] = { "I44_Man_G_SS_NCO_MP40", "I44_Man_G_SS_K98k", "I44_Man_G_SS_RTO", "I44_Man_G_SS_K98k_GGrGer", "I44_Man_G_SS_K98kZf41", "I44_Man_G_SS_K98k_PzF30", "I44_Man_G_SS_K98k_PzF60", "I44_Man_G_SS_G43", "I44_Man_G_SS_MP40", "I44_Man_G_SS_MP43", "I44_Man_G_SS_MG34", "I44_Man_G_SS_MG42", "I44_Man_G_SS_RPzB54", "I44_Man_G_SS_Engr_GbLadung10kg", "I44_Man_G_SS_Engr_GbLadung3kg", "I44_Man_G_SS_Engr_SprB24", "I44_Man_G_SS_Engr_Rohrladung", "I44_Man_G_SS_Engr_TMi42", "I44_Man_G_SS_Engr_FmW35", "I44_Man_G_SS_Medic", "I44_Man_G_SS_Crew_P38", "I44_Man_G_SS_Crew_MP40", "I44_Man_G_SS_Crew_Eng", "I44_Man_G_SS_GunCrew_K98k", "I44_Man_G_SS_ATCrew_G43", "I44_Man_G_SS_MCrew_C", "I44_Man_G_SS_MCrew_G", "I44_Man_G_SS_MGCrew_AG", "I44_Man_G_SS_NCO_K98k", "I44_Man_G_SS_NCO_MP40", "I44_Man_G_SS_NCO_MP43", "I44_Man_G_SS_Crew_NCO_P38", "I44_Man_G_SS_GunCrew_NCO_P38", "I44_Man_G_SS_CO_MP40", "I44_Man_G_SS_CO_P08", "I44_Man_G_SS_NCO_MP40_Winter", "I44_Man_G_SS_K98k_Winter", "I44_Man_G_SS_RTO_Winter", "I44_Man_G_SS_K98k_GGrGer_Winter", "I44_Man_G_SS_K98k_Zf41_Winter", "I44_Man_G_SS_K98k_PzF30_Winter", "I44_Man_G_SS_K98k_PzF60_Winter", "I44_Man_G_SS_G43_Winter", "I44_Man_G_SS_MP40_Winter", "I44_Man_G_SS_MP43_Winter", "I44_Man_G_SS_MG34_Winter", "I44_Man_G_SS_MG42_Winter", "I44_Man_G_SS_RPzB54_Winter", "I44_Man_G_SS_Engr_GbLadung10kg_Winter", "I44_Man_G_SS_Engr_GbLadung3kg_Winter", "I44_Man_G_SS_Engr_SprB24_Winter", "I44_Man_G_SS_Engr_Rohrladung_Winter", "I44_Man_G_SS_Engr_TMi42_Winter", "I44_Man_G_SS_Engr_FmW35_Winter", "I44_Man_G_SS_Medic_Winter", "I44_Man_G_SS_Crew_P38_Winter", "I44_Man_G_SS_Crew_Eng_Winter", "I44_Man_G_SS_Crew_MP40_Winter", "I44_Man_G_SS_GunCrew_K98k_Winter", "I44_Man_G_SS_ATCrew_G43_Winter", "I44_Man_G_SS_MCrew_C_Winter", "I44_Man_G_SS_MCrew_G_Winter", "I44_Man_G_SS_MGCrew_AG_Winter", "I44_Man_G_SS_NCO_K98k_Winter", "I44_Man_G_SS_NCO_MP40_Winter", "I44_Man_G_SS_NCO_MP43_Winter", "I44_Man_G_SS_Crew_NCO_P38_Winter", "I44_Man_G_SS_GunCrew_NCO_P38_Winter", "I44_Man_G_SS_CO_MP40_Winter", "I44_Man_G_SS_CO_P08_Winter" }; }; class level_3 { // regular 1 aimingAccuracy[] = {0.25, 0.10}; aimingShake[] = {0.25, 0.10}; aimingSpeed[] = {0.50, 0.20}; spotDistance[] = {0.55, 0.30}; spotTime[] = {0.30, 0.20}; endurance[] = {0.60, 0.20}; courage[] = {0.60, 0.20}; reloadSpeed[] = {0.60, 0.20}; commanding[] = {0.60, 0.20}; general[] = {0.60, 0.20}; units[] = { "I44_Man_A_Army_NCO_M1Carbine", "I44_Man_A_Army_M1Garand", "I44_Man_A_Army_M1Garand_M7", "I44_Man_A_Army_M1Carbine", "I44_Man_A_Army_RTO_M1Carbine", "I44_Man_A_Army_M1903A3", "I44_Man_A_Army_M1903A3_M1", "I44_Man_A_Army_M1918A2", "I44_Man_A_Army_M1A1Thompson", "I44_Man_A_Army_M3Greasegun", "I44_Man_A_Army_M37Ithaca", "I44_Man_A_Army_M1919A4", "I44_Man_A_Army_M1A1Bazooka", "I44_Man_A_Army_Engr_M37DemoKit", "I44_Man_A_Army_Engr_M2DemoCharges", "I44_Man_A_Army_Engr_M1A1Bangalore", "I44_Man_A_Army_Engr_M1Mine", "I44_Man_A_Army_Engr_M2_2", "I44_Man_A_Army_Medic", "I44_Man_A_Army_Crew_M1911A1", "I44_Man_A_Army_Crew_Eng", "I44_Man_A_Army_GunCrew_M1Carbine", "I44_Man_A_Army_ATCrew_M3", "I44_Man_A_Army_MCrew_C", "I44_Man_A_Army_MCrew_G", "I44_Man_A_Army_MGCrew_AG", "I44_Man_A_Army_NCO_M1Carbine", "I44_Man_A_Army_NCO_M1Garand", "I44_Man_A_Army_NCO_M1A1Thompson", "I44_Man_A_Army_Crew_NCO_M1911A1", "I44_Man_A_Army_GunCrew_NCO_M1911A1", "I44_Man_A_Army_CO_M1Carbine", "I44_Man_A_Army_CO_M1911A1", "I44_Man_A_Army_DDay_NCO_M1Carbine", "I44_Man_A_Army_DDay_M1Garand", "I44_Man_A_Army_DDay_M1Garand_M7", "I44_Man_A_Army_DDay_M1Carbine", "I44_Man_A_Army_DDay_RTO_M1Carbine", "I44_Man_A_Army_DDay_M1903A3", "I44_Man_A_Army_DDay_M1903A3_M1", "I44_Man_A_Army_DDay_M1918A2", "I44_Man_A_Army_DDay_M1A1Thompson", "I44_Man_A_Army_DDay_M3Greasegun", "I44_Man_A_Army_DDay_M37Ithaca", "I44_Man_A_Army_DDay_M1919A4", "I44_Man_A_Army_DDay_M1A1Bazooka", "I44_Man_A_Army_DDay_Engr_M37DemoKit", "I44_Man_A_Army_DDay_Engr_M2DemoCharges", "I44_Man_A_Army_DDay_Engr_M1A1Bangalore", "I44_Man_A_Army_DDay_Engr_M1Mine", "I44_Man_A_Army_DDay_Engr_M2_2", "I44_Man_A_Army_DDay_Medic", "I44_Man_A_Army_DDay_Crew_M1911A1", "I44_Man_A_Army_DDay_Crew_M3Greasegun", "I44_Man_A_Army_DDay_Crew_Eng", "I44_Man_A_Army_DDay_GunCrew_M1Carbine", "I44_Man_A_Army_DDay_ATCrew_M3", "I44_Man_A_Army_DDay_MCrew_C", "I44_Man_A_Army_DDay_MCrew_G", "I44_Man_A_Army_DDay_MGCrew_AG", "I44_Man_A_Army_DDay_NCO_M1Carbine", "I44_Man_A_Army_DDay_NCO_M1Garand", "I44_Man_A_Army_DDay_NCO_M1A1Thompson", "I44_Man_A_Army_DDay_Crew_NCO_M1911A1", "I44_Man_A_Army_DDay_GunCrew_NCO_M1911A1", "I44_Man_A_Army_DDay_CO_M1Carbine", "I44_Man_A_Army_DDay_CO_M1911A1", "I44_Man_B_Army_NCO_StenMk5", "I44_Man_B_Army_SMLENo4Mk1", "I44_Man_B_Army_RTO", "I44_Man_B_Army_SMLENo4Mk1_No82", "I44_Man_B_Army_StenMk2", "I44_Man_B_Army_StenMk5", "I44_Man_B_Army_BrenMk1", "I44_Man_B_Army_PIAT", "I44_Man_B_Army_Engr_GrenadeNo75", "I44_Man_B_Army_Engr_FlameNo2", "I44_Man_B_Army_Medic", "I44_Man_B_Army_Crew_WebleyMk6", "I44_Man_B_Army_Crew_StenMk2", "I44_Man_B_Army_Crew_Eng", "I44_Man_B_Army_GunCrew_SMLENo4Mk1", "I44_Man_B_Army_ATCrew_SMLEdNo4Mk1", "I44_Man_B_Army_Sapper_M37", "I44_Man_B_Army_Sapper_M2", "I44_Man_B_Army_Sapper_M1A1", "I44_Man_B_Army_NCO_SMLENo4Mk1", "I44_Man_B_Army_NCO_StenMk5", "I44_Man_B_Army_Crew_NCO_WebleyMk6", "I44_Man_B_Army_CO_StenMk5", "I44_Man_B_Army_CO_WebleyMk6", "I44_Man_G_WH_NCO_MP40", "I44_Man_G_WH_K98k", "I44_Man_G_WH_RTO", "I44_Man_G_WH_K98k_GGrGer", "I44_Man_G_WH_K98kZf41", "I44_Man_G_WH_K98k_PzF30", "I44_Man_G_WH_K98k_PzF60", "I44_Man_G_WH_G43", "I44_Man_G_WH_MP40", "I44_Man_G_WH_MP43", "I44_Man_G_WH_MG34", "I44_Man_G_WH_MG42", "I44_Man_G_WH_RPzB54", "I44_Man_G_WH_Engr_GbLadung10kg", "I44_Man_G_WH_Engr_GbLadung3kg", "I44_Man_G_WH_Engr_SprB24", "I44_Man_G_WH_Engr_Rohrladung", "I44_Man_G_WH_Engr_TMi42", "I44_Man_G_WH_Engr_FmW35", "I44_Man_G_WH_Medic", "I44_Man_G_WH_Crew_P38", "I44_Man_G_WH_Crew_MP40", "I44_Man_G_WH_Crew_Eng", "I44_Man_G_WH_GunCrew_K98k", "I44_Man_G_WH_ATCrew_G43", "I44_Man_G_WH_MCrew_C", "I44_Man_G_WH_MCrew_G", "I44_Man_G_WH_MGCrew_AG", "I44_Man_G_WH_NCO_K98k", "I44_Man_G_WH_NCO_MP40", "I44_Man_G_WH_NCO_MP43", "I44_Man_G_WH_Crew_NCO_P38", "I44_Man_G_WH_GunCrew_NCO_P38", "I44_Man_G_WH_CO_MP40", "I44_Man_G_WH_CO_P08", "I44_Man_G_WH_Camo_NCO_MP40", "I44_Man_G_WH_Camo_K98k", "I44_Man_G_WH_Camo_RTO", "I44_Man_G_WH_Camo_K98k_GGrGer", "I44_Man_G_WH_Camo_K98kZf41", "I44_Man_G_WH_Camo_K98k_PzF30", "I44_Man_G_WH_Camo_K98k_PzF60", "I44_Man_G_WH_Camo_G43", "I44_Man_G_WH_Camo_MP40", "I44_Man_G_WH_Camo_MP43", "I44_Man_G_WH_Camo_MG34", "I44_Man_G_WH_Camo_MG42", "I44_Man_G_WH_Camo_RPzB54", "I44_Man_G_WH_Camo_Engr_GbLadung10kg", "I44_Man_G_WH_Camo_Engr_GbLadung3kg", "I44_Man_G_WH_Camo_Engr_SprB24", "I44_Man_G_WH_Camo_Engr_Rohrladung", "I44_Man_G_WH_Camo_Engr_TMi42", "I44_Man_G_WH_Camo_Engr_FmW35", "I44_Man_G_WH_Camo_ATCrew_G43", "I44_Man_G_WH_Camo_MCrew_C", "I44_Man_G_WH_Camo_MCrew_G", "I44_Man_G_WH_Camo_MGCrew_AG", "I44_Man_G_WH_Camo_NCO_K98k", "I44_Man_G_WH_Camo_NCO_MP40", "I44_Man_G_WH_Camo_NCO_MP43", "I44_Man_G_WH_Camo_CO_MP40", "I44_Man_G_WH_Camo_CO_P08" }; }; class level_4 { // regular 2 aimingAccuracy[] = {0.20, 0.10}; aimingShake[] = {0.20, 0.10}; aimingSpeed[] = {0.45, 0.20}; spotDistance[] = {0.50, 0.30}; spotTime[] = {0.25, 0.20}; endurance[] = {0.50, 0.20}; courage[] = {0.50, 0.20}; reloadSpeed[] = {0.50, 0.20}; commanding[] = {0.50, 0.20}; general[] = {0.50, 0.20}; units[] = { "ibr_bodyguard" }; }; class level_5 { // militia or trained insurgents, former regulars aimingAccuracy[] = {0.15, 0.10}; aimingShake[] = {0.15, 0.10}; aimingSpeed[] = {0.40, 0.20}; spotDistance[] = {0.45, 0.30}; spotTime[] = {0.20, 0.20}; endurance[] = {0.40, 0.20}; courage[] = {0.40, 0.20}; reloadSpeed[] = {0.40, 0.20}; commanding[] = {0.40, 0.20}; general[] = {0.40, 0.20}; units[] = { "ibr_arl_officer","ibr_arl_sniper","ibr_arl_sab","ibr_arl_roberto","ibr_arl_marksman" }; }; class level_6 { // civilians with some military training aimingAccuracy[] = {0.10, 0.10}; aimingShake[] = {0.10, 0.10}; aimingSpeed[] = {0.35, 0.20}; spotDistance[] = {0.40, 0.30}; spotTime[] = {0.15, 0.20}; endurance[] = {0.30, 0.20}; courage[] = {0.30, 0.20}; reloadSpeed[] = {0.30, 0.20}; commanding[] = {0.30, 0.20}; general[] = {0.30, 0.20}; units[] = { "ibr_rebel11","ibr_rebel22","ibr_rebel33","ibr_rebel44","ibr_rebel55","ibr_rebel66","ibr_rebel77","ibr_rebel83","ibr_rebel95","ibr_rebel102", "ibr_rebel111","ibr_rebel125","ibr_rebel132","ibr_rebel145","ibr_rebel151","ibr_rebel162","ibr_rebel173","ibr_rebel184","ibr_rebel195", "ibr_rebel206","ibr_rebel217", "ibr_arl_rif","ibr_arl_rif2","ibr_arl_mg","ibr_arl_ar","ibr_arl_at","ibr_arl_aa","ibr_arl_crew","ibr_arl_medic", "ibr_drg_man1","ibr_drg_man2","ibr_drg_man3","ibr_drg_man4","ibr_drg_man5","ibr_drg_man6","ibr_drg_man7" }; }; class level_7 { // civilians without military training aimingAccuracy[] = {0.10, 0.10}; aimingShake[] = {0.10, 0.10}; aimingSpeed[] = {0.30, 0.20}; spotDistance[] = {0.35, 0.30}; spotTime[] = {0.10, 0.20}; endurance[] = {0.20, 0.20}; courage[] = {0.20, 0.20}; reloadSpeed[] = {0.20, 0.20}; commanding[] = {0.20, 0.20}; general[] = {0.20, 0.20}; units[] = { "ibr_arl_stoner1","ibr_arl_stoner2","ibr_arl_stoner3","ibr_arl_stoner4","ibr_arl_stoner5","ibr_arl_stoner6","ibr_arl_stoner7" }; }; class level_8 { // pilot 1 aimingAccuracy[] = {0.25, 0.10}; aimingShake[] = {0.25, 0.10}; aimingSpeed[] = {0.60, 0.20}; spotDistance[] = {0.65, 0.30}; spotTime[] = {0.40, 0.20}; endurance[] = {0.60, 0.20}; courage[] = {0.60, 0.20}; reloadSpeed[] = {0.60, 0.20}; commanding[] = {0.60, 0.20}; general[] = {0.60, 0.20}; units[] = { "ibr_arl_eric" }; }; class level_9 { // pilot 2 aimingAccuracy[] = {0.20, 0.10}; aimingShake[] = {0.20, 0.10}; aimingSpeed[] = {0.55, 0.20}; spotDistance[] = {0.60, 0.30}; spotTime[] = {0.35, 0.20}; endurance[] = {0.50, 0.20}; courage[] = {0.50, 0.20}; reloadSpeed[] = {0.50, 0.20}; commanding[] = {0.50, 0.20}; general[] = {0.50, 0.20}; units[] = { "ibr_arl_pilot","ibr_drg_pilot" }; }; class level_10 { // sniper aimingAccuracy[] = {0.80, 0.10}; aimingShake[] = {0.90, 0.10}; aimingSpeed[] = {0.65, 0.20}; spotDistance[] = {0.70, 0.30}; spotTime[] = {0.75, 0.20}; endurance[] = {0.70, 0.20}; courage[] = {0.70, 0.20}; reloadSpeed[] = {0.70, 0.20}; commanding[] = {0.70, 0.20}; general[] = {0.70, 0.20}; units[] = { "I44_Man_A_Army_Sniper_M1903A4", "I44_Man_A_Army_DDay_Sniper_M1903A4", "I44_Man_B_Army_Sniper_SMLENo4Mk1T", "I44_Man_G_WH_Sniper_K98kZf42", "I44_Man_G_WH_Sniper_G43Zf4", "I44_Man_G_WH_Camo_Sniper_K98kZf42", "I44_Man_G_WH_Camo_Sniper_G43Zf4", "I44_Man_A_Army_AB_Sniper_M1903A4", "I44_Man_A_Army_AB_82_Sniper_M1903A4", "I44_Man_A_Army_AB_M43_Sniper_M1903A4", "I44_Man_A_Army_AB_82_M43_Sniper_M1903A4", "I44_Man_A_Army_AB_Sniper_M1903A4_Winter", "I44_Man_A_Army_Ranger_Sniper_M1903A4", "I44_Man_B_Army_AB_Sniper_SMLENo4Mk1T", "I44_Man_B_Army_Commando_Sniper_SMLENo4Mk1T", "I44_Man_B_Army_Commando_Sniper_SMLENo4Mk1T_winter", "I44_Man_G_WL_FJ_Sniper_K98kZf42", "I44_Man_G_WL_FJ_Sniper_G43Zf4", "I44_Man_G_SS_Sniper_K98kZf42", "I44_Man_G_SS_Sniper_G43Zf4", "I44_Man_G_SS_Sniper_K98kZf42_Winter", "I44_Man_G_SS_Sniper_G43Zf4_Winter" }; }; };//sets };//sys_aiskill }; [/spoiler] Edited July 4, 2012 by jiltedjock Share this post Link to post Share on other sites