-Coulum- 35 Posted June 22, 2012 Perhaps something else to consider would be unit resistance to suppression (i.e. SF), but this may be moving too far into Robalo territory. How do you mean. As is, the script that changes skills should make it so higher skilled units decrease in skill slower and regain skill faster than lower units. What other resistance do you mean? Back in ARMA days, second's suppression script use bullet type to determine suppression effects. So an AA type weapon like the ZU-23 can have a bigger effect suppressing the infantry. Though I cant remember if it can suppress vehicle or not... I was thinking the same thing. Right now I am very happy with where the script is at but maybe in the future... The whole system is set up to ignore shooters in vehicles at present (ie it only runs if vehicle _x == _x). So it's not a bug as such. The idea was that you don't want to be able to suppress a player in a vehicle (imagine being able to suppress a jet by shooting an assault rifle at it from the ground), but the side effect is that a player in a vehicle can't suppress a foot unit. Yeah that's what I thought the problem was. Your solution looks like it will solve it but I can't test as of now. Thank you and thanks for cleaning my mess up with all the comments and stuff. Share this post Link to post Share on other sites
CameronMcDonald 146 Posted June 22, 2012 How do you mean. As is, the script that changes skills should make it so higher skilled units decrease in skill slower and regain skill faster than lower units. What other resistance do you mean? I'm referring to a unit's inherent resistance to suppression - for example, you'd expect a civilian to be much more susceptible to suppression than a seasoned Spetsnatz brute, regardless of skill level. At the moment, both of these units react to suppression exactly the same if they have the same skill level. In a perfect world, mission editors would go through and alter the skill level of every unit manually to reflect military training, experience, etc, but this doesn't always happen. Share this post Link to post Share on other sites
-Coulum- 35 Posted June 22, 2012 (edited) Yes but how would that translate to game terms. Would Spetznaz be harder to make go prone or crouched because they are less fearful of supression? Like I said units will decrease in skill at a rate proportional to their courage and general skill... Okay I think I see what your saying now (sorry my bad, I'm up way to late). Are you suggesting that the Suppression script automatically set a units resistance to suppression and other skills? If so I would say that this is for ASR to do, and I think it does it quite well already. Actually, when I was creating the dynamic skills stuff I was really building it for ASR. I never plan to actually play it with Vanilla, because, like you say, all the soldier have the same stats by default and that makes everyone equally suppressable. But with ASR and the suppression script, elite units will have higher skills and thus suffer less from suppression(in terms of skill loss recovery). Edited June 22, 2012 by -Coulum- Share this post Link to post Share on other sites
CameronMcDonald 146 Posted June 22, 2012 Yeah, I think I'm overcomplicating things. The system, as it is, is fine, and if you're making it work in conjunction with ASR then even better. :) Share this post Link to post Share on other sites
orcinus 121 Posted June 22, 2012 ...imagine being able to suppress a jet by shooting an assault rifle at it from the ground... That just gave me an idea I think even I might be able to implement - not for jets, though, but for choppers. Machines like the UH60 & MI8 are a bit too easy to take out with, say, an M240 or even more with a vehicle-mounted weapon, especially if flying straight toward the player. The pilots don't take any evasive action at all. If I may 'steal' part of this script, what about a script that instead of suppression has the pilot jink from side to side in a semi-random way? Height changes = bad idea, they crash all to often anyway. Share this post Link to post Share on other sites
tpw 2315 Posted June 22, 2012 Thanks for all the ideas everyone. I can't speak for -Coulum- but I don't really want to turn this into a fine grained AI behavioural modification system for every kind of combatant. What do we have so far: All foot mobile units respond to bullets within 10m Units crouch under friendly fire, but are not suppressed nor do they lose skill Units are suppressed (crouch/drop) under enemy fire, and lose skill (aiming, accuracy) Skill is gradually regained if unit is not suppressed Units are not suppressed by small calibre pistol or SMG fire Units in vehicles are not suppressed by enemy fire Units are not affected by fire closer than 25m While I'm sure we could implement everything given time, there's going to reach a point where the sheer amount of calculations involved make the script stop working properly on a per frame basis. And since it's reacting to bullets, it needs to work fast. Share this post Link to post Share on other sites
kremator 1065 Posted June 22, 2012 ^^ this tpw! This is perfect as it is. The only thing I don't understand is why you don't want them to become suppressed by small arms - surely a bullet is a bullet :) However I'm happy to go with your recommendations. This thread and the LOS thread are my two favourites presently. Keep up the good work guys. Share this post Link to post Share on other sites
-Snafu- 78 Posted June 22, 2012 Sorry if this has been mentioned, but would allowFleeing be a workable addition to the script? In games like Close Combat and Combat Mission where suppressive fire is important in manoeuvring your forces effectively, units could break under sustained and heavy fire (depending on type of unit, skill and a huge amount of other variables) and either flee from the map or back to another position. I have hardly any experience with scripting beyond basic stuff so this is just a suggestion. I don't want to be adding another mountain to your workload! Anyway, great work so far and an excellent addition to the game. Share this post Link to post Share on other sites
tpw 2315 Posted June 22, 2012 I hear ya Kremator That's why there's now 3 versions of the script, which should suit just about everyone (or not). Basic (stance modifier) /* ALL INFANTRY UNITS ON MAP WILL REACT IF ANY BULLETS PASS WITHIN 10m BULLETS FIRED FROM LESS THAN 25m ARE IGNORED Authors: TPW & -Coulum- Last changed: 20120622 */ //Allow time for ASR AI skills to propagate sleep 30; //Start hint 0 = [] spawn {sleep 3;hintsilent "AI suppress active"; sleep 3; hintsilent ""}; private ["_stanceregain","_unit","_bc","_shots","_ball"]; //Main function tpw_ai_sup = { { if (alive _x) then { _unit = _x; _stanceregain = _unit getvariable ["stanceregain", -1]; if (_stanceregain == -1) then { _unit setvariable ["stanceregain", diag_ticktime]; _unit addeventhandler ["fired",{tpw_fired = _this select 0;tpw_bullet = _this select 6}]; }; if ( diag_ticktime >= _stanceregain) then { _unit setvariable ["supshots", 0]; _unit setunitpos "auto"; }; if !(isnull tpw_bullet) then { _bc = count ((getposatl _unit) nearobjects ["bulletbase",10]); if (_bc > 0) then { if ((tpw_fired distance _unit) > 25) then { _unit setvariable ["stanceregain", diag_ticktime + 10]; _shots = _unit getvariable "supshots"; _unit setvariable ["supshots", _shots + _bc]; _shots = _unit getvariable "supshots"; _unit setunitpos "middle"; if (_shots > 5) then { _unit setunitpos "down"; }; }; }; }; }; } foreach allunits; }; //Call function using per frame eventhandler so computer doesn't explode [tpw_ai_sup,0] call cba_fnc_addPerFrameHandler; Units react to bullets passing within 10m Affects all units, in vehicles or not Units react identically to any kind of bullet fired from more than 25m away Units react to identically bullets from any side 1-5 bullets -->kneel/crouch >5 bullets --> drop/crawl Units regain previous stance after 10 seconds without nearby bullets Light (stance modifier) /* ALL INFANTRY UNITS ON MAP WILL REACT IF ANY BULLETS PASS WITHIN 10m BULLETS FIRED FROM LESS THAN 25m ARE IGNORED BULLETS FROM SMG AND PISTOLS ARE IGNORED BULLETS FROM OWN SIDE CAUSE UNIT TO KNEEL/CROUCH BULLETS FROM ENEMY SIDE CAUSE UNIT TO KNEEL/DROP Authors: TPW & -Coulum- Last changed: 20120622 */ //Allow time for ASR AI skills to propagate sleep 30; //Start hint 0 = [] spawn {sleep 3;hintsilent "AI suppress active"; sleep 3; hintsilent ""}; private ["_stanceregain","_unit","_bc","_shots","_ball"]; //Pistol and SMG ammo to ignore tpw_mags =["30rnd_9x19_MP5", "30rnd_9x19_MP5SD", "15Rnd_9x19_M9", "15Rnd_9x19_M9SD", "7Rnd_45ACP_1911", "7Rnd_45ACP_1911", "8Rnd_9x18_Makarov", "8Rnd_9x18_MakarovSD", "64Rnd_9x19_Bizon", "64Rnd_9x19_SD_Bizon", "13Rnd_9mm_SLP", "17Rnd_9x19_glock17", "6Rnd_45ACP", "30Rnd_9x19_UZI", "30Rnd_9x19_UZI_SD"]; //Main function tpw_ai_sup = { { if (alive _x) then { _unit = _x; _stanceregain = _unit getvariable ["stanceregain", -1]; if (_stanceregain == -1) then { _unit setvariable ["stanceregain", diag_ticktime]; _unit addeventhandler ["fired",{tpw_fired = _this select 0;tpw_mag = _this select 5; tpw_bullet = _this select 6}]; }; if ( diag_ticktime >= _stanceregain) then { _unit setvariable ["supshots", 0]; _unit setunitpos "auto"; }; if !(isnull tpw_bullet) then { _bc = count ((getposatl _unit) nearobjects ["bulletbase",10]); if (_bc > 0) then { if ((tpw_fired distance _unit) > 25) then { if !(tpw_mag in tpw_mags) then { _unit setvariable ["stanceregain", diag_ticktime + 10]; _shots = _unit getvariable "supshots"; _unit setvariable ["supshots", _shots + _bc]; _shots = _unit getvariable "supshots"; _unit setunitpos "middle"; if ((side tpw_fired != side _unit) && (vehicle _unit == _unit)) then { if (_shots > 5) then { _unit setunitpos "down"; }; }; }; }; }; }; }; } foreach allunits; }; //Call function using per frame eventhandler so computer doesn't explode [tpw_ai_sup,0] call cba_fnc_addPerFrameHandler; Units react to bullets passing within 10m Only units not in vehicles are affected Bullets fired from less than 25m away are ignored Bullets from small calibre pistols and SMG are ignored Units react differently according to the side of the shooter 1-5 bullets --> kneel/crouch >5 bullets --> drop/crawl only if enemy shooter fired bullets Units regain previous stance after 10 seconds without nearby bullets Full (stance and skill modifier) /* ALL INFANTRY UNITS ON MAP WILL REACT IF ANY BULLETS PASS WITHIN 10m BULLETS FIRED FROM LESS THAN 25m ARE IGNORED BULLETS FROM SMG AND PISTOLS ARE IGNORED BULLETS FROM OWN SIDE CAUSE UNIT TO KNEEL/CROUCH BULLETS FROM ENEMY SIDE CAUSE UNIT TO KNEEL/DROP, AND A TEMPORARY DECREASE IN SKILL SKILLS WILL GRADUALLY RETURN ONCE UNIT IS NOT SUPPRESSED Authors: TPW & -Coulum- Last changed: 20120622 */ //Allow time for ASR AI skills to propagate sleep 30; //Start hint 0 = [] spawn {sleep 3;hintsilent "AI suppress active"; sleep 3; hintsilent ""}; private ["_stanceregain","_skillregain","_unit","_bc","_shots","_originalaccuracy","_originalshake","_originalcourage","_general","_ball"]; //Pistol and SMG ammo to ignore tpw_mags =["30rnd_9x19_MP5", "30rnd_9x19_MP5SD", "15Rnd_9x19_M9", "15Rnd_9x19_M9SD", "7Rnd_45ACP_1911", "7Rnd_45ACP_1911", "8Rnd_9x18_Makarov", "8Rnd_9x18_MakarovSD", "64Rnd_9x19_Bizon", "64Rnd_9x19_SD_Bizon", "13Rnd_9mm_SLP", "17Rnd_9x19_glock17", "6Rnd_45ACP", "30Rnd_9x19_UZI", "30Rnd_9x19_UZI_SD"]; //Main function tpw_ai_sup = { { //hint format["accuracy = %1, shake = %2, courage = %3, general = %4",(ai skill "aimingaccuracy"),(ai skill "aimingshake"),(ai skill "courage"),(ai skill "general")]; // Dsiplay skills for unit named "AI" if (alive _x) then { _unit = _x; _skillregain = _unit getvariable ["skillregain", -1]; _stanceregain = _unit getvariable ["stanceregain", -1]; if (_stanceregain == -1) then { _unit setvariable ["stanceregain", diag_ticktime]; _unit setvariable ["skillregain", diag_ticktime]; _unit addeventhandler ["fired",{tpw_fired = _this select 0;tpw_mag = _this select 5; tpw_bullet = _this select 6}]; _originalaccuracy = _unit skill "aimingaccuracy"; _unit setvariable ["originalaccuracy", _originalaccuracy]; _originalshake = _unit skill "aimingshake"; _unit setvariable ["originalshake", _originalshake]; _originalcourage = _unit skill "courage"; _unit setvariable ["originalcourage", _originalcourage]; _general = _unit skill "general"; _unit setvariable ["general", _general]; }; if ( diag_ticktime >= _stanceregain) then { _unit setvariable ["supshots", 0]; _unit setunitpos "auto"; _originalcourage = _unit getvariable "originalcourage"; _general = _unit getvariable "general"; if((_unit skill "courage") < _originalcourage) then { _unit setskill ["courage",(_unit skill "courage")+(_general)*(0.003)]; }; }; if (diag_ticktime >= _skillregain) then { _originalaccuracy = _unit getvariable "originalaccuracy"; _originalshake = _unit getvariable "originalshake"; _originalcourage = _unit getvariable "originalcourage"; _general = _unit getvariable "general"; if((_unit skill "aimingaccuracy") < _originalaccuracy) then { _unit setskill ["aimingaccuracy",(_unit skill "aimingaccuracy")+((_originalaccuracy-(_unit skill "aimingaccuracy"))*.01)]; }; if((_unit skill "aimingshake") < _originalshake) then { _unit setskill ["aimingshake",(_unit skill "aimingshake")+((_originalshake-(_unit skill "aimingshake"))*.01)]; }; }; if !(isnull tpw_bullet) then { _bc = count ((getposatl _unit) nearobjects ["bulletbase",10]); if (_bc > 0) then { if ((tpw_fired distance _unit) > 25) then { if !(tpw_mag in tpw_mags) then { _unit setvariable ["skillregain", diag_ticktime + (random 4)-((_unit getvariable "general")+(_unit getvariable "originalcourage"))]; _unit setvariable ["stanceregain", diag_ticktime + 10]; _shots = _unit getvariable "supshots"; _unit setvariable ["supshots", _shots + _bc]; _shots = _unit getvariable "supshots"; _originalaccuracy = _unit getvariable "originalaccuracy"; _originalshake = _unit getvariable "originalshake"; _originalcourage = _unit getvariable "originalcourage"; _general = _unit getvariable "general"; _unit setunitpos "middle"; if ((side tpw_fired != side _unit) && (vehicle _unit == _unit)) then { _unit setskill ["aimingaccuracy",_originalaccuracy*_originalcourage*_general-(_shots*(1-_general)*.003)]; _unit setskill ["aimingshake",_originalshake*_originalcourage*_general-(_shots*(1-_general)*.003)]; _unit setskill ["courage",_originalcourage*_originalcourage*_general-(_shots*(1-_general)*.003)]; if (_shots > 5) then { _unit setunitpos "down"; }; }; }; }; }; }; }; } foreach allunits; }; //Call function using per frame eventhandler so computer doesn't explode [tpw_ai_sup,0] call cba_fnc_addPerFrameHandler; Units react to bullets passing within 10m Only units not in vehicles are affected Bullets fired from less than 25m away are ignored Bullets from small calibre pistols and SMG are ignored Units react differently according to the side of the shooter Friendly shooter: >0 bullets --> kneel/crouch Enemy shooter: 1-5 bullets --> kneel/crouch, >5 bullets -->drop/crawl Friendly shooter: no skill reduction Enemy shooter: skills reduced according to number of bullets Units regain previous stance after 10 seconds without nearby bullets Units gradually regain skills after 5 or so seconds without bullets Obviously these scripts will be added to and refined! Share this post Link to post Share on other sites
-Coulum- 35 Posted June 22, 2012 (edited) Thanks for all the ideas everyone. I can't speak for -Coulum- but I don't really want to turn this into a fine grained AI behavioural modification system for every kind of combatant. Yes I can agree with that. I think sometimes the deeper you delve into the ai the more your gambling to get massive bugs and what not. For now, I think that what we have is fine. Of course everyone has the script and can try what they like, but I think that the addon versions should be as tpw has listed, at least for the present. First post updated. Edited June 22, 2012 by -Coulum- Share this post Link to post Share on other sites
blackmamb 2 Posted June 22, 2012 Alright, swo suggestions if you actually go with an addon version. (i actually think that having it as a script is quite convenient, on my end). - Could you let the tpw_mags array out of the addon (so that mission makers can include whatever new pistols/smgs they want in it? I'm thinking RH pistol and SMGs packs, for example)? Or maybe have it in a config file? - What would happen if we'd go with something like if isServer then { [tpw_ai_sup,0] call cba_fnc_addPerFrameHandler; }; Would it be enough in an MP environment? I don't see anything that would be messed up, but i don't have a dedi to test it. Would somebody be kind enough to try it? Share this post Link to post Share on other sites
tpw 2315 Posted June 22, 2012 No worries BlackMamb, I will make the addons configurable via an hpp file userconfig. Pistol and SMG mags can be modified from there. Players could also add silenced mags too. Your MP suggestion should work, but I'm neither an MP person nor do I have any server experience, so I can't tell you for sure. If someone wants to help make this primarily SP enhancing system work in MP then I welcome it, because I'm not going to bust a neurone doing it. I'll have the addons up within a day. Alright, swo suggestions if you actually go with an addon version. (i actually think that having it as a script is quite convenient, on my end).- Could you let the tpw_mags array out of the addon (so that mission makers can include whatever new pistols/smgs they want in it? I'm thinking RH pistol and SMGs packs, for example)? Or maybe have it in a config file? - What would happen if we'd go with something like if isServer then { [tpw_ai_sup,0] call cba_fnc_addPerFrameHandler; }; Would it be enough in an MP environment? I don't see anything that would be messed up, but i don't have a dedi to test it. Would somebody be kind enough to try it? Share this post Link to post Share on other sites
kremator 1065 Posted June 22, 2012 To speed this up even further, would FSM format be useful or overkill ? Share this post Link to post Share on other sites
mr_centipede 31 Posted June 22, 2012 Des anyone think the sleep 30 part is too long? For my end 5 secs was enough. Though only few AI were in it, like 40 or 50 Share this post Link to post Share on other sites
gammadust 12 Posted June 22, 2012 To speed this up even further, would FSM format be useful or overkill ? FSM does have an "event" for detected bullet hits (see DCExplosion (4)) but when i tested this some time ago the results were not quite what i expected taking into account the given description: "Ammo impact (explosion or a bullet hit) detected (seen or heard)". Share this post Link to post Share on other sites
blackmamb 2 Posted June 22, 2012 Des anyone think the sleep 30 part is too long? For my end 5 secs was enough. Though only few AI were in it, like 40 or 50 I don't think it matters that much anyway, as having a firefight with the player involved in the first 30 seconds is not very likely. (now that i think about it, maybe it would cause a few problems in some cutscenes, is all.) Share this post Link to post Share on other sites
orcinus 121 Posted June 22, 2012 Thanks for all the ideas everyone. I can't speak for -Coulum- but I don't really want to turn this into a fine grained AI behavioural modification system for every kind of combatant. FWIW, I meant that I think I could (& would like to try, anyway) make a separate chopper jinking script, if I may pinch part of -coulum-'s and your code :) Wouldn't fit too well in this addon, I agree. Cheers O. Share this post Link to post Share on other sites
-Coulum- 35 Posted June 22, 2012 (edited) I don't think it matters that much anyway, as having a firefight with the player involved in the first 30 seconds is not very likely. (now that i think about it, maybe it would cause a few problems in some cutscenes, is all.) No it matters very much. If the suppression script (skills version) runs before asr assigns skills all asr skills will be overwritten by the default ones. It doesn't mean that you can't have any fighting in that time, just it must be without the suppression script. If you are executing the suppression script from an init.sqf, the init should look something like this. sleep 20; nul = [] execvm "suppressionscript.sqf"; Yiu guys are probably right 30 seconds is probably overkill. I am not sure on the exact amount of time that ars takes to initiate. With only a few units "sleep 10" will do, but I am nots sure how it would play out with more units, hence why I suggested 20-30. Its up to you though. FWIW, I meant that I think I could (& would like to try, anyway) make a separate chopper jinking script, if I may pinch part of -coulum-'s and your code Wouldn't fit too well in this addon, I agree. Cheers O. Have at it Orcinus! I am interested to see how you do it. Good luck. As for multilayer. I have no idea what needs to be done to make this mod compatible. Would simply running the script (not the mod) on the dedicated server not work? Anybody with a server willing to give it a test? Edited June 22, 2012 by -Coulum- Share this post Link to post Share on other sites
blackmamb 2 Posted June 22, 2012 (edited) That is exactly what i meant, Coulum. 30 seconds is probably overkill but it doesn't matter that much. Edit: and for the multiplayer, as i said, it's probably already compatible, we just need to make sure it's running on the server only. Waiting for testing though. Edited June 22, 2012 by BlackMamb Share this post Link to post Share on other sites
-Coulum- 35 Posted June 22, 2012 Ah yes I misunderstood then, sorry. When you said "it doesn't matter" I thought you meant that the waiting time isn't neccesary. But you just meant that the wait isn't going to really affect gameplay. My bad. Share this post Link to post Share on other sites
orcinus 121 Posted June 22, 2012 Have at it Orcinus! I am interested to see how you do it. Good luck. Cheers, -Coulum- :) Haven't had time to think it through properly, but I'm considering adapting the script so that any AI chopper pilot will be made to react to heavy fire (# of bullets within 10m >x) by jinking, semi randomly, i.e., set a waypoint say 500m ahead but off the line of flight by (semirandom) 25-50 degrees, then moving the waypoint around every frame or 2 while bullets are still passing near the chopper. If the rate of fire drops below a threshold ((bullets within 10m </=x) ), the waypoint is deleted. Refinements would be several, like setting the distance to the temporary waypoint proportional to the speed of the chopper. Only semi-random as I don't want the chopper jinking towards enemies firing from one side. However I think I won;t worry about direction of fire until I see if it works at all (the KISS principle), Problematic anyway of fire comes from several directions. In any event it would be most useful against fire coming from units roughly along the line of flight, AI firing from the side have a harder time, as do humans. Probably more elegant ways to do it (& what I'm thinking of may not work anyway - I still assert the title of shittiest coder in this thread :) ) but in a week or two I should have found out if it works at all. Share this post Link to post Share on other sites
blackmamb 2 Posted June 22, 2012 Just one quick thought, back about that sleep related to ASR_ai. What's gonna happen to units that are spawned "on the fly", during the mission? The script will already be running, so it will probably override ASR in that case, right? Share this post Link to post Share on other sites
tpw 2315 Posted June 22, 2012 Let me know if you need a hand. It's the least I can do to pay you back for your ideas, enthusiasm and support. Cheers, -Coulum- :)Haven't had time to think it through properly, but I'm considering adapting the script so that any AI chopper pilot will be made to react to heavy fire (# of bullets within 10m >x) by jinking, semi randomly, i.e., set a waypoint say 500m ahead but off the line of flight by (semirandom) 25-50 degrees, then moving the waypoint around every frame or 2 while bullets are still passing near the chopper. If the rate of fire drops below a threshold ((bullets within 10m </=x) ), the waypoint is deleted. Refinements would be several, like setting the distance to the temporary waypoint proportional to the speed of the chopper. Only semi-random as I don't want the chopper jinking towards enemies firing from one side. However I think I won;t worry about direction of fire until I see if it works at all (the KISS principle), Problematic anyway of fire comes from several directions. In any event it would be most useful against fire coming from units roughly along the line of flight, AI firing from the side have a harder time, as do humans. Probably more elegant ways to do it (& what I'm thinking of may not work anyway - I still assert the title of shittiest coder in this thread :) ) but in a week or two I should have found out if it works at all. ---------- Post added at 07:27 ---------- Previous post was at 07:20 ---------- Yep, any units spawned after the suppression script will be picked up essentially in 1 frame, way before asr_ai would have time to modify them. I'll have to ponder that some more. I'll look more closely at Robalo's scripts, just in case he sets a variable that we could access. Just one quick thought, back about that sleep related to ASR_ai. What's gonna happen to units that are spawned "on the fly", during the mission? The script will already be running, so it will probably override ASR in that case, right? Share this post Link to post Share on other sites
deltafiveone 11 Posted June 22, 2012 Saw Orcinus' post in a few other threads about this future addon, may I ask when is it going to be released or can I just PBO this up myself? Itching for this one lol.. You guys help make Arma 2 the best infantry/combat in general sim out there. Thanks for all this work. Share this post Link to post Share on other sites
orcinus 121 Posted June 22, 2012 Let me know if you need a hand. It's the least I can do to pay you back for your ideas, enthusiasm and support. Nah, the addon you two have produced is more than ample payback for my input. Had a chance to play a couple of brief tests with the latest beta, the latest suppression_side PBO, & the latest asr_ai. Absolutely wonderful - firefights are really amazing now. Tougher as well - you need to think even more carefully about planning your route, where you want teams to move to, etc. (but the whole tactics/planning thing is a big part of why I am addicted to this game). Apart from that, many thanks for the offer - I'm sure I will need help :D @DeltaFiveOne: the last PBO's work very well if you don't want to mess with the latest scripts in the editor; I'm sure that there will be updates to the PBOs soon. As for PBOing for your own use, that's within the forum rules AIUI - as long as you don't distribute them without author permission. Share this post Link to post Share on other sites