Special Aircraft Service

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2]   Go Down

Author Topic: More work on reducing AI staying with damaged planes to destruction  (Read 1166 times)

0 Members and 1 Guest are viewing this topic.

WxTech

  • Modder
  • member
  • Offline Offline
  • Posts: 6040
Re: More work on reducing AI staying with damaged planes to destruction
« Reply #12 on: February 19, 2024, 09:22:26 PM »

That "ModCat" reference was a typo (dyslexia, I'm given to understand); it's actually "Modact" which is short for mod activator.  ;)
Logged
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. - Hyman Rickover (but probably predating his use.)

gunny0134

  • member
  • Offline Offline
  • Posts: 1153
  • no skill just simple, but seek the best beauty !!
Re: More work on reducing AI staying with damaged planes to destruction
« Reply #13 on: February 19, 2024, 09:50:52 PM »

That "ModCat" reference was a typo (dyslexia, I'm given to understand); it's actually "Modact" which is short for mod activator.  ;)

... ]laughing7[

I also wondered what that was.
Logged

genXgamer

  • member
  • Offline Offline
  • Posts: 1358
Re: More work on reducing AI staying with damaged planes to destruction
« Reply #14 on: February 19, 2024, 11:50:20 PM »

Logged
Go in quickly - Punch hard - Get out!

Frankiek

  • SAS Team
  • member
  • Offline Offline
  • Posts: 2952
Re: More work on reducing AI staying with damaged planes to destruction
« Reply #15 on: February 20, 2024, 02:10:43 AM »

Air Strikes Modcat 4.0

ModCat 6.4 for IL-2 1946

By sgt_fresh, yesterday at 01:16 AM

You never walk alone
Logged

Tokyo_Express_420

  • member
  • Offline Offline
  • Posts: 167
Re: More work on reducing AI staying with damaged planes to destruction
« Reply #16 on: February 20, 2024, 07:06:41 AM »

The Wildcat definitely is one of the worst for this - even higher skilled pilots

Another offender is the B17, with aileron damage they just spiral in a wide circle for ages getting ever so slightly lower then crashing hard enough to kill everyone

It's a real immersion killer but i'll test out this mod and see if it helps
Logged

WxTech

  • Modder
  • member
  • Offline Offline
  • Posts: 6040
Re: More work on reducing AI staying with damaged planes to destruction
« Reply #17 on: February 20, 2024, 07:27:17 AM »

If a plane is found to too- easily suffer damage to any particular component, such as the aileron control, this can be addressed by adjusting the relevant part of the plane class's hitBone method. Or the size of the hit box can be reduced.

For example, I dealt with the P-40's excessively easy-to-stop engine by shrinking two hit boxes, thereby reducing the chance of hits and effectively making the motor 'tougher.'
Logged
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. - Hyman Rickover (but probably predating his use.)

WxTech

  • Modder
  • member
  • Offline Offline
  • Posts: 6040
Re: More work on reducing AI staying with damaged planes to destruction
« Reply #18 on: February 20, 2024, 07:37:04 AM »

If one were to use this code block for 'real time diagnostics', replacing "System.out.println" with "HUD.training" will direct the output to the screen (in a big yellow font, for my B.A.T 4.0.) Or the two statements could be used together, so that the output goes also to log.lst.
Logged
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. - Hyman Rickover (but probably predating his use.)

WxTech

  • Modder
  • member
  • Offline Offline
  • Posts: 6040
Re: More work on reducing AI staying with damaged planes to destruction
« Reply #19 on: February 21, 2024, 12:50:02 PM »

To compare a pair of inveterate foes, the Zero and the Wildcat, as regards the conditions for aileron damage being set.

Here we are looking at the relevant section of method hitBone() in each aircraft class. There are considerable differences. What stands out at first glance is is the higher chance of the damage condition being met for the F4F; 70% versus 15%! That alone looks suspicious to me.

I looked at the hit boxes for the aileron control (wire or rod), and for both planes the size is pretty comparable. There is nothing to inspire any alteration here.

I'm not sure how to parse the structure of these, which also differ considerably:

Zero:   getEnergyPastArmor(0.99F, shot) > 0.0F
F4F:    getEnergyPastArmor(0.1F, shot) > 0.0F

If anyone could educate me on what is being tested, I'd appreciate it!

I would say that some tweaking could well be warranted. Unless it was indeed the case that the Wildcat had terribly delicate/susceptible aileron control cables...


from A6M.hitBone()
==============
if(s.startsWith("xxcontrols"))
{
   debuggunnery("Controls: Hit..");
   int i = s.charAt(10) - 48;
   switch(i)
   {
   default:
      break;

   case 1: // '\001'
   case 2: // '\002'
      if(getEnergyPastArmor(0.99F, shot) > 0.0F && World.Rnd().nextFloat() < 0.15F)
      {
         debuggunnery("Controls: Ailerones Controls: Out..");
         FM.AS.setControlsDamage(shot.initiator, 0);
      }
      break;



from F4F.hitBone()
=============
if(s.startsWith("xxcontrols"))
{
   debuggunnery("Controls: Hit..");
   int i = s.charAt(10) - 48;
   switch(i)
   {
   default:
      break;

   case 1: // '\001'
   case 2: // '\002'
      if(World.Rnd().nextFloat() < 0.7F && getEnergyPastArmor(0.1F, shot) > 0.0F)
      {
         debuggunnery("Controls: Ailerones Controls: Disabled..");
         FM.AS.setControlsDamage(shot.initiator, 0);
      }
      break;


Some additional comparisons...

For the F2A:
=========
case 2: // '\002'
   if(getEnergyPastArmor(2.2F, shot) > 0.0F)
   {
      debuggunnery("Controls: Controls Column: Hit, Controls Destroyed..");
      FM.AS.setControlsDamage(shot.initiator, 2);
      FM.AS.setControlsDamage(shot.initiator, 1);
      FM.AS.setControlsDamage(shot.initiator, 0);
   }
   break;


For the F4U:
=========
if(World.Rnd().nextFloat() < 0.5F && getEnergyPastArmor(0.1F, paramShot) > 0.0F)
{
   debuggunnery("Controls: Ailerones Controls: Disabled..");
   ((FlightModelMain) (super.FM)).AS.setControlsDamage(paramShot.initiator, 0);
}
break;


For the F6F:
=========
if(World.Rnd().nextFloat() < 0.5F && getEnergyPastArmor(0.1F, shot) > 0.0F)
{
   debuggunnery("Controls: Ailerones Controls: Disabled..");
   FM.AS.setControlsDamage(shot.initiator, 0);
}
break;


From the Ki_43:
===========
if(getEnergyPastArmor(0.99F, shot) > 0.0F && World.Rnd().nextFloat() < 0.175F)
{
   debuggunnery("Controls: Ailerones Controls: Out..");
   FM.AS.setControlsDamage(shot.initiator, 0);
}
break;


From the Ki_27:
===========
if(getEnergyPastArmor(4.2F, shot) > 0.0F)
{
   debuggunnery("Controls: Ailerones Controls: Out..");
   FM.AS.setControlsDamage(shot.initiator, 0);
}
break;
Logged
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. - Hyman Rickover (but probably predating his use.)

Tokyo_Express_420

  • member
  • Offline Offline
  • Posts: 167
Re: More work on reducing AI staying with damaged planes to destruction
« Reply #20 on: March 01, 2024, 09:12:41 AM »

Is this fix ready for release?

Eager to test it out, I didn't realise it wasn't released last time I commented 😂

Thanks,

- Tokyo Express
Logged

larschance

  • member
  • Offline Offline
  • Posts: 523
Re: More work on reducing AI staying with damaged planes to destruction
« Reply #21 on: March 01, 2024, 09:59:07 AM »

The F1M2 Pete floatplane is another with erratic damage effects. Even if you shoot away the floats, set it on fire, or just pepper it with bullets, when it hits the ground it bounces for a long time or lands in the water and sits there. Otherwise it is a great plane to fight with or against. Best way to ensure the kill is to ram it!!
Logged

WxTech

  • Modder
  • member
  • Offline Offline
  • Posts: 6040
Re: More work on reducing AI staying with damaged planes to destruction
« Reply #22 on: March 13, 2024, 12:44:55 PM »

I just tried a small change to the aileron control damage threshold for the Wildcat, by reducing the probability of the event being triggered. The original probability was 70%; I lowered it to 15%. That's a reduction of factor 4.7. And indeed, it takes a lot more shootin' to cause the aileron to be cut and have the pilot bail; it sure seems more sensible to me.

By way of comparison, here's the A5M, where the getEnergyPastArmor() threshold value is different by a factor of 10:

if(getEnergyPastArmor(0.99F, shot) > 0.0F && World.Rnd().nextFloat() < 0.15F)

For F4F.class
Code: [Select]
if(s.startsWith("xxcontrols"))
{
debuggunnery("Controls: Hit..");
int i = s.charAt(10) - 48;
switch(i)
{
default:
break;

case 1: // '\001'
case 2: // '\002'
//                    if(World.Rnd().nextFloat() < 0.7F && getEnergyPastArmor(0.1F, shot) > 0.0F)
if(World.Rnd().nextFloat() < 0.15F && getEnergyPastArmor(0.1F, shot) > 0.0F)
{
debuggunnery("Controls: Ailerones Controls: Disabled..");
FM.AS.setControlsDamage(shot.initiator, 0);
}
break;
Logged
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. - Hyman Rickover (but probably predating his use.)
Pages: 1 [2]   Go Up
 

Page created in 0.045 seconds with 24 queries.