RHS Feedback - AFRF
View Issue Details
0000204AFRF[All Projects] Generalpublic2015-01-25 12:492015-02-09 01:18
CameronMcDonald 
reyhard 
normaltweakalways
resolvedfixed 
0.3.5 
0.3.60.3.6 
0000204: BMP1/BMD1 will not engage infantry with OG15V
Gents,

I've been doing some testing to see how your mounted weapons are configured (and see if there's a need for improvement a la the small tweak I put out for A2).

The BMP1/BMD1 will not engage infantry targets with OG15V HE-Frag, rather, it will stubbornly continue to use PG15V.

Not a real problem, but hell, the BMP1 is renowned for being an ArmA infantryman's worst nightmare... why not make it a bit scarier by using the OG15V to smear soft targets?
1. Throw a BMP1/BMD1 and some infantry down in the editor.
2. Remove the PKT to make the use of the 2A28 a bit more likely.
3. Watch the BMP1/BMD1 only engage with PG15V.
4. Daydream about how cool it would be if it used OG15V rounds to hit infantry/soft targets.
This can probably be easily rectified by tweaking ammunition cost values, if you've implemented a main gun system like I did in the below addon (I'm about to check your tanks, so hopefully you have!).

http://forums.bistudio.com/showthread.php?125395-CMcD-Cannon-Main-Gun-Tweaks [^]
No tags attached.
Issue History
2015-01-25 12:49CameronMcDonaldNew Issue
2015-01-25 13:26reyhardNote Added: 0000527
2015-01-25 14:13CameronMcDonaldNote Added: 0000529
2015-01-25 14:16CameronMcDonaldNote Edited: 0000529bug_revision_view_page.php?bugnote_id=529#r253
2015-01-25 14:17CameronMcDonaldNote Added: 0000530
2015-01-25 14:17CameronMcDonaldNote Edited: 0000530bug_revision_view_page.php?bugnote_id=530#r255
2015-01-25 14:19reyhardNote Added: 0000531
2015-01-25 14:20reyhardNote Edited: 0000531bug_revision_view_page.php?bugnote_id=531#r257
2015-01-25 14:26CameronMcDonaldNote Added: 0000532
2015-01-25 14:27CameronMcDonaldNote Edited: 0000532bug_revision_view_page.php?bugnote_id=532#r259
2015-01-25 14:29CameronMcDonaldNote Edited: 0000529bug_revision_view_page.php?bugnote_id=529#r260
2015-01-27 12:14CameronMcDonaldNote Added: 0000593
2015-01-27 13:33reyhardNote Added: 0000595
2015-01-28 08:09CameronMcDonaldNote Added: 0000609
2015-02-03 10:28CameronMcDonaldNote Added: 0000641
2015-02-03 10:28CameronMcDonaldNote Edited: 0000641bug_revision_view_page.php?bugnote_id=641#r320
2015-02-03 10:43reyhardNote Added: 0000642
2015-02-03 10:52CameronMcDonaldNote Added: 0000643
2015-02-08 09:33reyhardStatusnew => resolved
2015-02-08 09:33reyhardFixed in Version => 0.3.6
2015-02-08 09:33reyhardResolutionopen => fixed
2015-02-08 09:33reyhardAssigned To => reyhard
2015-02-09 01:18MistyRoninTarget Version => 0.3.6

Notes
(0000527)
reyhard   
2015-01-25 13:26   
only autocannons have such system know. I was afraid of AI cheating on reload times so I didn't even consider adding it to cannons. Sounds interesting anyway
(0000529)
CameronMcDonald   
2015-01-25 14:13   
(edited on: 2015-01-25 14:29)
It's pretty easy to implement. For example, for the A2 BMP3:

In CFGWeapons:

    // Muzzles for 2A70
    class CMCD_2A70 : 2A70
    {
        // Player's weapon
        displayName = "2A70";
        reloadTime = 6.6666667; // 9rpm (ROF fix)
        aiRateOfFire = 6.7666667; // Higher than reload to prevent AI haxx
        aiRateOfFireDistance = 10;
        magazines[] = {"22Rnd_100mm_HE_2A70","CMCD_9M117_BMP3"}; // Allows player to load ATGMs
    };
    class CMCD_2A70_OF19 : CMCD_2A70
    {
        // Intended for AI (OF19)
        displayName = "2A70";
        magazines[] = {"22Rnd_100mm_HE_2A70"};
    };
    class CMCD_2A70_9M117 : 2A70Rocket
    {
        // Intended for AI (9M117 ATGM)
        displayName = "9M117";
        reloadTime = 6.6666667; // 9rpm (ROF fix)
        aiRateOfFire = 6.7666667; // Higher than reload to prevent AI haxx
        aiRateOfFireDistance = 10;
        magazines[] = {"CMCD_9M117_BMP3"};
    };
    // Actual 2A70 gun for AI (and player)
    class CMCD_2A70_BMP3 : CMCD_2A70
    {
        scope = protected;
        displayName = "2A70";
        shotFromTurret = 1;
        muzzles[] = {ATGM,PLAYER};
        //class HE : CMCD_2A70_OF19 { ShowToPlayer=false; }; // Not visible to player
        class ATGM : CMCD_2A70_9M117 { ShowToPlayer=false; }; // Not visible to Player, AI will use as ATGM
        class PLAYER : CMCD_2A70 { ShowToPlayer=true; }; // Visible to Player, AI will use as HE
    };

TL;DR - this adds invisible weapons for the AI which allow it to fire HE-Frag and ATGMs. Using an AIRateOfFire=xx; entry higher than the reloadtime will prevent the AI cheating (like in vanilla A2).

Naturally, the player cannot access the AI's firemodes (locked out via ShowToPlayer=false;) but can operate the cannon in the normal way.

This improvement can be carried across to all tank cannons, so you can have them using HE-Frag, HEAT, sabot, ATGMs - any ammo nature, basically - on the fly, without cheating on reload times.

(0000530)
CameronMcDonald   
2015-01-25 14:17   
Here's my example for the A2 T90:

In CFGWeapons:

    // Muzzles for 2A46M (T90)
    class CMCD_2A46M : CMCD_D81TM
    {
    displayname = "24A46M";
    magazines[] = {"23Rnd_125mmSABOT_T72", "22Rnd_125mmHE_T72", "CMCD_9M119", "CMCD_9M119M"};
    };
    class CMCD_2A46M_BK21M : CMCD_2A46M
    {
        // Intended for AI
        displayName = "2A46M";
        magazines[] = {"22Rnd_125mmHE_T72"};
    };
    class CMCD_2A46M_BM32 : CMCD_2A46M
    {
        // Intended for AI
        displayName = "2A46M";
        magazines[] = {"23Rnd_125mmSABOT_T72"};
    };
    class CMCD_2A46M_9K119 : CMCD_2A46M
    {
        // Intended for AI
        displayName = "9K119";
        magazines[] = {"CMCD_9M119"};
    };
    class CMCD_2A46M_9K120 : CMCD_2A46M
    {
        // Intended for AI
        displayName = "9K120";
        magazines[] = {"CMCD_9M119M"};
    };
    // Actual 2A46M gun (2A46M for T90 with 9K120) for AI and player
    class CMCD_2A46M_T90 : CMCD_2A46M
    {
        scope = public;
        muzzles[] = {PLAYER,ATGM,HEAT};
        shotFromTurret = 1;
        class HEAT : CMCD_2A46M_BK21M { ShowToPlayer=false; }; // Not visible to Player, AI will use as HE
        //class SABOT : CMCD_2A46M_BM32 { ShowToPlayer=false; }; // Not visible to Player
        class ATGM : CMCD_2A46M_9K119 { ShowToPlayer=false; aiRateOfFire = 7.7; }; // Not visible to Player, AI will use as ATGM
        class PLAYER : CMCD_2A46M {}; // Visible to Player, AI will use as SABOT
    };
};

(0000531)
reyhard   
2015-01-25 14:19   
(edited on: 2015-01-25 14:20)
yeah, I know, as I said before, it's already done that way for 2a42 & 2a72 but it's matter of AI cheating in that case.

imagine ai destroying tank & in another second firing HE into group of infantry. rather not realistic

(0000532)
CameronMcDonald   
2015-01-25 14:26   
(edited on: 2015-01-25 14:27)
Yep, like I said above, though - the one-two punch is solved using AIRateOfFire.

Unless this command has become deprecated in A3, that's how this was prevented in A2.

E.g.

        reloadTime = 6.6666667; // 9rpm (ROF fix)
        aiRateOfFire = 6.7666667; // Higher than reload to prevent AI haxx

(0000593)
CameronMcDonald   
2015-01-27 12:14   
Welp, I think you can close this one, reyhard.

I've found an issue (which was also present in A2) which will probably make a tweak like this untenable for anyone who wants to tank and hold onto their .RPTs at the same time.

I'm going to release an addon which implements the multiple muzzles, but I'll be sure to warn people of the potential RPT spam.

Damned engine limitations. :(
(0000595)
reyhard   
2015-01-27 13:33   
what kind of error?
(0000609)
CameronMcDonald   
2015-01-28 08:09   
https://dev.withsix.com/issues/39784 [^]

Take a look at the above - ACE2 incorporated the multiple muzzle idea as well, back in the day. The .RPT starts filling up with...

"duplicate magazine <insert magazine name here> detected in slots <insert mode here> and <insert another mode here>"

...as soon as the player jumps in the tank for some gunnery.

Note that AI-crewed tanks are just fine - it's only when the player is a gunner.

I've found a strange thing - you can have 2 muzzles for a tank gun with no problems (e.g. the 2A28 for the BMP/BMD1 works perfectly with HEAT/HE-F) with no errors at all, but as soon as you have 3 or more the error kicks in. Makes me wonder if BI did this in order to allow autocannons to work properly.

You could, I guess, compromise and have 2 muzzles for each tank main gun without any error - maybe SABOT and HE-F. A pity that HEAT and ATGM would still be unused, though.
(0000641)
CameronMcDonald   
2015-02-03 10:28   
http://forums.bistudio.com/showthread.php?188338-CMcD-Main-Gun-Tweaks-%28A3%29&p=2870810&viewfull=1#post2870810 [^]

Added some RHS weapons to my little tweak. Note the inherent limitations.

I've had some issues with the cost values of your ammunition and AI selection of natures (especially the M1's desire to fire HE at everything), but decided not to tinker with it for now.

(0000642)
reyhard   
2015-02-03 10:43   
well, take in account that I fiddled with it around and it might overlap later. Yet, till beta02 (or stable 0.4) there is nothing to worry
(0000643)
CameronMcDonald   
2015-02-03 10:52   
No worries, mate. :) Thanks again for your consideration. I'll definitely update for the next stable release.