Jump to content
Sign in to follow this  
rksl-rock

Aircraft Proxy Doubling bug post 1.62 Problem solving...Help

Recommended Posts

So this one has been bugging the crap out of me for months.

Its been variously reported and both GLT-Myke and myself seem to be suffering from it. But i'm told others are also affected too.

The problem is that any weapon proxy loaded onto a plane is effectively doubled. So if you load a 2 round magazine onto the plane you will see 4 rounds in game. Fire 1 round and two proxies vanish and so on.

Here's an example of what i mean: http://downloads.rkslstudios.info/RKSL/wip/wednesday/wk49/week49_02.jpg (136 kB)

Previously mentioned here:

http://forums.rkslstudios.info/viewtopic.php?f=33&t=222

http://forums.bistudio.com/showthread.php?142319-Weird-bug-with-certain-addons-(mostly-aviation-based)-maybe-you-can-help-me-out

What I have found so far:

  1. The issue appeared after 1.62 patch.
  2. The issue is not caused by the weapons pack, weapon models or configs. Using BIS, GLT, PRACS or RKSL weapons makes no difference.
  3. BIS aircraft do not appear to be affected. Only user made stuff seems to suffer.
  4. There is no issue when the weapons and magazine defines are put into a turret (ie a twin seat plane like the Tornado has no issue) but when the weapons and ammo are placed out side of the class turret lines the problem returns.
  5. Inheriting directly from a BIS class eg A10 does not fix the problem

There are probably a few other things but they escape me right now.

So anyone any ideas? I'm going to keep slogging on with this but If someone has a solution i'd really like to hear it.

Cheers

Rock

EDIT - Just gone back to setup an example and i found that the A-10 is also affected when you remove all but one magazine.

SO I created a new class for the A-10 eg:

    class A10up : A10
   {
       displayName = "Weapons proxy A10";
       weapons[] = {"GAU8","MaverickLauncher","SidewinderLaucher_AH1Z","BombLauncherA10","FFARLauncher_14"};
       magazines[] = {"1350Rnd_30mmAP_A10","2Rnd_Maverick_A10"};
   };

Note the 2 round magazine... in game 4 Mavericks are displayed.

Its seems that its a core engine issue rather than a missing config entry etc. The reason it is affecting GLT and RKSL aircraft is that we both use a large number of proxies for multiple loadout on one model. Often leaving unfilled proxy points.

Eg: Lets say we have 6 pylons:

1 -

2 -

3 -

4 -

5 -

6 -

In the default BIS planes all pylons are filled.

1 -Sidewinder #1

2 -Bomb #1

3 -Bomb #3

4 -Bomb #4

5 -Bomb #2

6 -Sidewinder #2

The issue occurs when you DO NOT fill all the pylons. You get ghosts of the weapons:

1 -Sidewinder #1

2 -Duplicate of Sidewinder #2

3 -EMPTY

4 -EMPTY

5 -Duplicate of Sidewinder #1

6 -Sidewinder #2

I'm only guessing here but since the issue does not occur in twin seat aircraft and only single seat I think the routine that displays the weapons in the game engine is reading the magazine line twice.

For example a single seat config does NOT have a class turrets entry in the config. but its does have a single Weapons and Magazines entry.

class A10single : A10
   {
      ....
       ....
       weapons[] = {"GAU8","MaverickLauncher","SidewinderLaucher_AH1Z","BombLauncherA10","FFARLauncher_14"};
       magazines[] = {"1350Rnd_30mmAP_A10","2Rnd_Maverick_A10"};
      ....      
      ....
   };
};

So looking at the twin seat possible config. The twin seat has two.

class A10twin : A10
   {
      ....
       hasgunner=1;
       ....
[color=#ff0000]        weapons[] = {};
       magazines[] = {};[/color]
      ....      
       class Turrets 
       {
           class MainTurret : NewTurret 
           {
               body = "";
               gun = "";
               gunnerName = "Navigator";
               commanding = -1;
               memoryPointsGetInGunner = "pos_gunner";
               memoryPointsGetInGunnerDir = "pos_gunner_dir";
               memoryPointGunnerOptics = "gunnerview";                
[color=#ff0000]                weapons[] = {"GAU8","MaverickLauncher","SidewinderLaucher_AH1Z","BombLauncherA10","FFARLauncher_14"};
               magazines[] = {"1350Rnd_30mmAP_A10","2Rnd_Maverick_A10"};[/color]
               castGunnerShadow = true;
               viewGunnerShadow = true;
               gunnerAction = "A10_Pilot";
               gunnerInAction = "A10_Pilot";
           };
       };
      ....
   };
};

But please note that the first entry is empty an the weapons are only present in the "Gunner"s turret. In this configuration everything works fine.

Sooo... is it possible that in the "single" seat model the game engine is duplicating the first (pilot's) weapons and magazine entry into a phantom turret entry?

Its seem that the game engine is the problem!

WORK AROUND SOLUTION

So the easy fix is to fill all the empty pylons with something. I use a special pylonblank ammo in the RKSL Airweapons pack. Its just an empty model and and i just add the pylonblank magazine to the config line and its all works properly again.

Edited by RKSL-Rock
Found a fix myself.

Share this post


Link to post
Share on other sites

If memory serves me correctly (its a bit routine, keep copying a working formula) .....

My main lesson learnt was numbering the proxies

Next was to make sure the weapon (and proxy used) was registered in cfgNonAIVehicles

Next load the Magazines in the CPP in the same order as the proxy numbering

Once this is done it all seems to work, still. (as long ago, and now)

You can hang all the same proxy in the model, but its easy enough (to aid in making the model/visualising the model) to hang different weapons inside O2/Bulldozer. You can hang the exact weapons you plan to use.

You just have to go back and RENUMBER the proxy so theres only ever 1 weapon thats proxy #1, 1 weapon thats proxy #2, etc etc

As you said, you can't "skip over" proxy spots, you have to use "blank" weapons to "fill" unused proxies.

Weapons are loaded in order of the proxy number.

Haven't seen any ingame Re-Arm problems with either method.

Its possible to hang fuel tanks too.

P-38 example

Only 1 model, that can have 3 different load-outs. No need to have different models with or without weapons hung.

Proxy 1,2,3 & 4 are M64 bomb proxies on the wing.

Proxy 5 to 14 are HVAR proxies on the wing.

The (overloaded) full load-out can be seen correctly in Bulldozer.

Then in the config, you can weapon load 3 different ways/3 different aircraft;

class I44_Plane_A_P38 : I44_Plane_A_P38_Base
{
weapons[] = {"I44_4xANM2_mounted", "I44_HispanoM2_aircraft"};
magazines[] = {"I44_4x500rd_127x99_Mix_M2_aircraft", "I44_150rd_Shell_20x110_Hispano"};
};
class I44_Plane_A_P38_M64 : I44_Plane_A_P38
{
weapons[] = {"I44_4xANM2_mounted", "I44_HispanoM2_aircraft","I44_BombLauncherM64"};
magazines[] = {"I44_4x500rd_127x99_Mix_M2_aircraft", "I44_150rd_Shell_20x110_Hispano","I44_Bomb_AN_M64","I44_Bomb_AN_M64","I44_Bomb_AN_M64","I44_Bomb_AN_M64","I44_Bomb_Blank_10"};
};
class I44_Plane_A_P38_HVAR : I44_Plane_A_P38
{
weapons[] = {"I44_4xANM2_mounted", "I44_HispanoM2_aircraft","I44_HVARLauncher"};
magazines[] = {"I44_4x500rd_127x99_Mix_M2_aircraft", "I44_150rd_Shell_20x110_Hispano","I44_Bomb_Blank_1","I44_Bomb_Blank_1","I44_Bomb_Blank_1","I44_Bomb_Blank_1","I44_10xMissile_HVAR"};
};

BTW, I dont think (not fully tested) the "I44_Bomb_Blank_10" (a magazine of 10 blank bombs) actually works correctly (its better to define 1 blank bomb 10 times), but in this case it cases no issues because its at the END of the definition.

Share this post


Link to post
Share on other sites

Sorry Gnat but I think you are missing the point. Its not about creating proxies incorrectly or numbering/ordering. Its that if you were to load a single weapon ie 1 round magazine on the plane eg A10 the game engine would actually show 2 weapons.

Its a fault in the game engine since it affects every plane out there including the original stock BIS ones. it is just more visible on some of our planes since we use close to 40 proxy slots to allow multiple weapon load-outs. Without filling all of those visible slots the bug is apparent. Fill all the slots and its no longer a visible problem.

Edited by RKSL-Rock

Share this post


Link to post
Share on other sites

Rock,

Given the diagnosis that it's BI who botched it in 1.62, if they were to fix it in a future patch, is your fix easily reversible?

Tanky

Share this post


Link to post
Share on other sites

@RKSL-Rock its nice to hear that you have worked out what was causing the issue. :)

Share this post


Link to post
Share on other sites
Rock,

Given the diagnosis that it's BI who botched it in 1.62, if they were to fix it in a future patch, is your fix easily reversible?

Tanky

Yeah its no problem. The best part is that should BI fix the game engine my "fix" wont matter at all. :) You wont be able to see it anyway.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×