Jump to content

Recommended Posts

Posted

Hey everyone, I was wondering if anyone else feels like the AI's shooting is too poor and that the AI is too trigger happy when shooting?


I gave the D520 campaign a go and managed to get myself shot down by a 110 tail gunner and decided to "spectate" my AI comrades for a bit, and I saw one of them get on the tail of a 110 and squeeze the trigger for almost 10 seconds straight but miss almost all the shots a little to the right and above of the enemy until it presumably ran out of ammo. I saw exactly the same thing happen when a flight of 109Fs engaged some P40s: a single endless burst until ammo depletion with barely any hits scored.


Is this a common occurrence or am I just watching the very bad ones? Is there some file I can mod to make the AI aim better or shoot in smaller bursts?

Posted
1 hour ago, otis_me said:

Hey everyone, I was wondering if anyone else feels like the AI's shooting is too poor and that the AI is too trigger happy when shooting?


I gave the D520 campaign a go and managed to get myself shot down by a 110 tail gunner and decided to "spectate" my AI comrades for a bit, and I saw one of them get on the tail of a 110 and squeeze the trigger for almost 10 seconds straight but miss almost all the shots a little to the right and above of the enemy until it presumably ran out of ammo. I saw exactly the same thing happen when a flight of 109Fs engaged some P40s: a single endless burst until ammo depletion with barely any hits scored.


Is this a common occurrence or am I just watching the very bad ones? Is there some file I can mod to make the AI aim better or shoot in smaller bursts?

The way I explored AI gunnery skills was by setting up missions in FMB such as a 2v2 based on a QM that I saved under a new name. Using the FMB AI gunnery and other skills can be adjusted for the mission as desired. That way you can see for yourself that skill levels will affect AI behavior though not in a totally predictable fashion.

343KKT_Kintaro
Posted

Yesterday, in the "ATAG Axis vs Allies Public Server ~ v5.0", by miracle, I managed to reach England and safely jump north of Dover. Yesterday the Royal Air Force lost one Spitfire Vb because of that bloody AI gunner on board a AI Bf 110. I must admit I was a bit clumzy yesterday evening, I certainly took too many risks, but the AI gunner did his job, sure he did.

Posted
3 hours ago, Dagwoodyt said:

The way I explored AI gunnery skills was by setting up missions in FMB such as a 2v2 based on a QM that I saved under a new name. Using the FMB AI gunnery and other skills can be adjusted for the mission as desired. That way you can see for yourself that skill levels will affect AI behavior though not in a totally predictable fashion.

 

I see, maybe the mission had a couple pilots set to low skill...

 

3 hours ago, 343KKT_Kintaro said:

Yesterday, in the "ATAG Axis vs Allies Public Server ~ v5.0", by miracle, I managed to reach England and safely jump north of Dover. Yesterday the Royal Air Force lost one Spitfire Vb because of that bloody AI gunner on board a AI Bf 110. I must admit I was a bit clumzy yesterday evening, I certainly took too many risks, but the AI gunner did his job, sure he did.


Oh right, the gunners are crack shots, but I meant the AI pilots. In any case i'm glad the gunners are so good: it makes the game feel more gritty and punishing.

  • Upvote 1
Posted (edited)
1 hour ago, otis_me said:

 

I see, maybe the mission had a couple pilots set to low skill...

 


Oh right, the gunners are crack shots, but I meant the AI pilots. In any case i'm glad the gunners are so good: it makes the game feel more gritty and punishing.

The only message I am hoping to convey is that I don't think there is any way to avoid learning to use the FMB to examine and edit .MIS files if you need to know what's happening "under the hood". The GUI is inadequate in some respects so it is essential to find ways to work around its' deficits. It is easy to become frustrated if one is totally dependent on the GUI. 

Edited by Dagwoodyt
Guest deleted@7076
Posted (edited)

 

-Deleted-

 

Edited by Varrattu
343KKT_Kintaro
Posted
6 hours ago, otis_me said:

 

I see, maybe the mission had a couple pilots set to low skill...

 


Oh right, the gunners are crack shots, but I meant the AI pilots. In any case i'm glad the gunners are so good: it makes the game feel more gritty and punishing.

 

 

I usually play that single-player Quick Mission on the French side (four D.520s vs four 109s) and the 109s aim pretty well... really.

Posted
10 hours ago, Varrattu said:

 

Hey otis_me, give this tiny  script a try:


/// @author Varrattu
/// @version 1.10
/// @date 2019-11-22

using maddox.game;
using maddox.game.world;
using maddox.GP;
using part;

public class Mission : AMission
{
    int Hits = 0;

    public override void OnAircraftDamaged( int missionNumber, string shortName, AiAircraft aircraft, AiDamageInitiator DamageFrom, part.NamedDamageTypes WhatDamaged)
    {
        base.OnAircraftDamaged(
            missionNumber, 
            shortName, aircraft, 
            DamageFrom, 
            WhatDamaged
        );

        if (aircraft != (AiAircraft)GamePlay.gpPlayer().Place()
            && (aircraft != DamageFrom.Actor))
        {
            ShowDamgeEvent((DamageFrom.Actor as AiAircraft), (DamageFrom.Person as AiPerson), aircraft);
        }
    }

    public override void OnAircraftLimbDamaged( int missionNumber, string shortName, AiAircraft aircraft, AiLimbDamage limbDamage)
    {
        base.OnAircraftLimbDamaged(
            missionNumber, 
            shortName, 
            aircraft, limbDamage
        );

        if (aircraft != (AiAircraft)GamePlay.gpPlayer().Place()
            && (aircraft != limbDamage.Initiator.Actor))
        {
            ShowDamgeEvent((limbDamage.Initiator.Actor as AiAircraft), (limbDamage.Initiator.Person as AiPerson), aircraft);
        }
    }

    public override void OnAircraftCutLimb( int missionNumber, string shortName, AiAircraft aircraft, AiDamageInitiator initiator, LimbNames limbName) {

        base.OnAircraftCutLimb(
            missionNumber, 
            shortName, 
            aircraft, 
            initiator, 
            limbName);

        if (aircraft != (AiAircraft)GamePlay.gpPlayer().Place()
            && (aircraft != initiator.Actor))
        {
            ShowDamgeEvent((initiator.Actor as AiAircraft), (initiator.Person as AiPerson), aircraft);
        }
    }

    public override void OnPersonHealth( AiPerson person, AiDamageInitiator initiator, float deltaHealth) {

        base.OnPersonHealth(
            person, 
            initiator, 
            deltaHealth
        );

        if (initiator.Actor == (AiAircraft)GamePlay.gpPlayer().Place()
            && person.Cart() != initiator.Actor)
        {
            Hits++;
            GamePlay.gpLogServer(
               null,
               "({0}) in " +
               "({1}) getroffen von " +
               "({2}) in " +
               "({3}), " +
               "insgesamt [{4}] Treffer" +
               "\n",
               new object[] {
                person,
                person.Cart(),
                initiator.Person,
                initiator.Actor,
                Hits
               }
               );
        }
    }

    public void ShowDamgeEvent( AiAircraft playerAircraft, AiPerson person, AiAircraft targetAircraft) {

        Point3d playerAircraftPoint3d = playerAircraft.Pos();
        Point3d targetAircraftPoint3d = targetAircraft.Pos();

        Hits++;

        GamePlay.gpLogServer(
                null,
                "({0}) getroffen " +
                "von ({1}) " +
                "in ({2}), " +
                "Entfernung: ({3}m), " +
                "insgesamt [{4}] Treffer" +
                "\n",
                new object[] {
                targetAircraft,
                person,
                playerAircraft,
                string.Format("{0:0}", DistanceP2P3d(playerAircraftPoint3d, targetAircraftPoint3d)),
                Hits
                }
                );
    }

    ///  Find the Distance Between Two Points
    public double DistanceP2P3d(Point3d pointA, Point3d pointB) {

        double d = pointA.distance(ref pointB); return d;
    }
}

 

:salute: +V~

 

 

Do you mind telling me where I can find the tutorial to use this? I assume it's something to put in the FMB?

Guest deleted@7076
Posted (edited)

-Deleted-

Edited by Varrattu
Posted

The satisfaction of seeing what's happening "under the hood" makes the effort required to edit files worthwhile. Here's an example log file:

 

[04:22:19]    Loading mission C:\Users\Nup\Documents\1C SoftClub\il-2 sturmovik cliffs of dover\mission\quick\007 - Dogfight - Even - Low Level.mis ...
[04:22:20]    Load landscape...
[04:22:20]    Load bridges
[04:22:21]    Load static objects...
[04:22:22]    Server: Muppet will fly for the Red forces.
[04:22:22]    Mission loaded. time = 3.117
[04:22:25]    Battle starting...[04:22:25]    Server: Battle begins!
[04:22:25]    ok
[04:31:33]    Server: Muppet hits BoB_LW_JG26_I.200 : CockpitDamageFlag01
[04:31:33]    
[04:31:33]    Server: Muppet hits BoB_LW_JG26_I.200 : Eng0WaterRadiator1Perforated
[04:31:33]    
[04:46:37]    Server: Muppet hits BoB_LW_JG26_I.200 : Machinegun02LineDamaged
[04:46:37]    
[04:46:37]    Server: Muppet hits BoB_LW_JG26_I.200 : LandingFlapsKinematicFailure1
[04:46:37]    
[04:46:37]    Server: Muppet hits BoB_LW_JG26_I.200 : LandingFlapsKinematicFailure2
[04:46:37]    
[04:46:37]    Server: Muppet hits BoB_LW_JG26_I.200 : Eng0WaterRadiator0Perforated
[04:46:37]    
[04:54:29]    Server: Pilot of a Bf 109 E-4 (1 +) (AI) is dead.
[04:54:29]    Server: AI in a Bf 109 E-4 (1 +) was destroyed by Muppet’s Spitfire Ia (100oct) (LO o A).
[04:54:50]    Server: The battle ends.
[04/06/2021 04:55:04]    -------------- END log session -------------

 

Notice how long the AI 109 gets to fly after the first water radiator perforation. A bit surprising to me.

  • Like 1
Posted
9 hours ago, Varrattu said:

Hello otis_me,

 

the script works with every single-player mission.

Copy the code into a text file, unformatted, extension .txt, saves the file.
Rename the file and use the name of the single mission file.
Change the file extension * .txt to * .cs
Move the *.cs file to the folder containing your mission.


SinglePlayer missions can be found in the folder
.... \ Documents \ 1C SoftClub \ il-2 sturmovik cliffs of dover \ missions \ Single

Example: If the file with the mission <BomberInterceptShips.ms> is to run, the new script file is called <BomberInterceptShips.cs>.

The server info window must be activated for the hits to be displayed. If you want to preserve your hits for eternity, then activate in the

conf.ini
LOG = 0 in LOG = 1
LOGFILE = log.txt
LOGKEEP = 0 // overwrites log.txt at the beginning of the next single-player mission
LOGKEEP = 1 // extends log.txt with each new mission.

Have fun :salute: ~V~

 

7 hours ago, Dagwoodyt said:

The satisfaction of seeing what's happening "under the hood" makes the effort required to edit files worthwhile. Here's an example log file:

 

[04:22:19]    Loading mission C:\Users\Nup\Documents\1C SoftClub\il-2 sturmovik cliffs of dover\mission\quick\007 - Dogfight - Even - Low Level.mis ...
[04:22:20]    Load landscape...
[04:22:20]    Load bridges
[04:22:21]    Load static objects...
[04:22:22]    Server: Muppet will fly for the Red forces.
[04:22:22]    Mission loaded. time = 3.117
[04:22:25]    Battle starting...[04:22:25]    Server: Battle begins!
[04:22:25]    ok
[04:31:33]    Server: Muppet hits BoB_LW_JG26_I.200 : CockpitDamageFlag01
[04:31:33]    
[04:31:33]    Server: Muppet hits BoB_LW_JG26_I.200 : Eng0WaterRadiator1Perforated
[04:31:33]    
[04:46:37]    Server: Muppet hits BoB_LW_JG26_I.200 : Machinegun02LineDamaged
[04:46:37]    
[04:46:37]    Server: Muppet hits BoB_LW_JG26_I.200 : LandingFlapsKinematicFailure1
[04:46:37]    
[04:46:37]    Server: Muppet hits BoB_LW_JG26_I.200 : LandingFlapsKinematicFailure2
[04:46:37]    
[04:46:37]    Server: Muppet hits BoB_LW_JG26_I.200 : Eng0WaterRadiator0Perforated
[04:46:37]    
[04:54:29]    Server: Pilot of a Bf 109 E-4 (1 +) (AI) is dead.
[04:54:29]    Server: AI in a Bf 109 E-4 (1 +) was destroyed by Muppet’s Spitfire Ia (100oct) (LO o A).
[04:54:50]    Server: The battle ends.
[04/06/2021 04:55:04]    -------------- END log session -------------

 

Notice how long the AI 109 gets to fly after the first water radiator perforation. A bit surprising to me.

Very nice stuff lads! I love this kind of stuff! Thank you very much!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...