AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Группа разработки AviaSkins.com > W.I.P.

Важная информация

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.06.2018, 19:16   #1
Eugene1
Новичок
 
Аватар для Eugene1
 
Регистрация: 16.10.2009
Адрес: Казань
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Leopard Посмотреть сообщение
а в айр ини что писать ?
Поделюсь, как я поступаю в подобных случаях. Открываю блокнотом файлы типа I180_FM и иже с ними и среди набора китайской грамоты нахожу нужные строки.
Eugene1 вне форума   Ответить с цитированием
Старый 03.06.2018, 20:29   #2
Eugene1
Новичок
 
Аватар для Eugene1
 
Регистрация: 16.10.2009
Адрес: Казань
Сообщений: 20
По умолчанию

Огромное спасибо за И-180 ! Скачал, распаковал, полетел.
Eugene1 вне форума   Ответить с цитированием
Старый 05.06.2018, 03:38   #3
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,352
Радость

Посмотрел в класс и увидел несоответствие названия повреждений в хит-бон с мешами в хиер-химе.
На скорую руку поправил пока так:
Код:
if(s.startsWith("xengine1"))
            {
                Aircraft.debugprintln(this, "*** Engine Module: Hit..");
                if(s.endsWith("xxeng1case"))
                {
                    if(getEnergyPastArmor(0.2F, shot) > 0.0F)
                    {
                        if(World.Rnd().nextFloat() < shot.power / 140000F)
                        {
                            ((FlightModelMain) (super.FM)).AS.setEngineStuck(shot.initiator, 0);
                            Aircraft.debugprintln(this, "*** Engine Crank Case Hit - Engine Stucks..");
                        }
                        if(World.Rnd().nextFloat() < shot.power / 85000F)
                        {
                            ((FlightModelMain) (super.FM)).AS.hitEngine(shot.initiator, 0, 2);
                            Aircraft.debugprintln(this, "*** Engine Crank Case Hit - Engine Damaged..");
                        }
                    } else
                    if(World.Rnd().nextFloat() < 0.01F)
                    {
                        ((FlightModelMain) (super.FM)).EI.engines[0].setCyliderKnockOut(shot.initiator, 1);
                    } else
                    {
                        ((FlightModelMain) (super.FM)).EI.engines[0].setReadyness(shot.initiator, ((FlightModelMain) (super.FM)).EI.engines[0].getReadyness() - 0.002F);
                        Aircraft.debugprintln(this, "*** Engine Crank Case Hit - Readyness Reduced to " + ((FlightModelMain) (super.FM)).EI.engines[0].getReadyness() + "..");
                    }
                    getEnergyPastArmor(12F, shot);
                }
                if(s.startsWith("xxeng1cyls"))
                {
                    if(getEnergyPastArmor(6.85F, shot) > 0.0F && World.Rnd().nextFloat() < ((FlightModelMain) (super.FM)).EI.engines[0].getCylindersRatio() * 0.75F)
                    {
                        ((FlightModelMain) (super.FM)).EI.engines[0].setCyliderKnockOut(shot.initiator, World.Rnd().nextInt(1, (int)(shot.power / 19000F)));
                        Aircraft.debugprintln(this, "*** Engine Cylinders Hit, " + ((FlightModelMain) (super.FM)).EI.engines[0].getCylindersOperable() + "/" + ((FlightModelMain) (super.FM)).EI.engines[0].getCylinders() + " Left..");
                        if(World.Rnd().nextFloat() < shot.power / 48000F)
                        {
                            ((FlightModelMain) (super.FM)).AS.hitEngine(shot.initiator, 0, 2);
                            Aircraft.debugprintln(this, "*** Engine Cylinders Hit - Engine Fires..");
                        }
                    }
                    getEnergyPastArmor(24.5F, shot);
                }else
                if(s.endsWith("xxeng1eqpt") && getEnergyPastArmor(World.Rnd().nextFloat(0.001F, 0.2F), shot) > 0.0F && World.Rnd().nextFloat() < 0.89F)
                {
                    if(World.Rnd().nextFloat() < 0.11F)
                    {
                        ((FlightModelMain) (super.FM)).EI.engines[0].setMagnetoKnockOut(shot.initiator, World.Rnd().nextInt(0, 1));
                        Aircraft.debugprintln(this, "*** Engine Magneto Out..");
                    }
                    if(World.Rnd().nextFloat() < 0.11F)
                    {
                        ((FlightModelMain) (super.FM)).EI.engines[0].setKillCompressor(shot.initiator);
                        Aircraft.debugprintln(this, "*** Engine Compressor Feed Out..");
                    }
                }
                return;
            }
            if(s.startsWith("xxeng1oil1"))
            {
                ((FlightModelMain) (super.FM)).AS.hitOil(shot.initiator, 0);
                Aircraft.debugprintln(this, "*** Engine Module: Oil Radiator Hit..");
            } else
            if(s.endsWith("feed"))
            {
                if(getEnergyPastArmor(3.2F, shot) > 0.0F && World.Rnd().nextFloat() < 0.5F && ((FlightModelMain) (super.FM)).EI.engines[0].getPowerOutput() > 0.7F)
                {
                    ((FlightModelMain) (super.FM)).AS.hitEngine(shot.initiator, 0, 100);
                    Aircraft.debugprintln(this, "*** Engine Module: Pressurized Fuel Line Pierced, Fuel Flamed..");
                }
            } else
            if(s.startsWith("xxoiltank"))
            {
                if(getEnergyPastArmor(0.25F, shot) > 0.0F && World.Rnd().nextFloat() < 0.125F)
                {
                    ((FlightModelMain) (super.FM)).AS.hitOil(shot.initiator, 0);
                    getEnergyPastArmor(0.22F, shot);
                    debuggunnery("Engine Module: Oil Tank Pierced..");
                }
                return;
            }
            if(s.startsWith("xxtank1"))
            {
                int k = s.charAt(6) - 49;
                if(getEnergyPastArmor(2.2F, shot) > 0.0F && World.Rnd().nextFloat() < 0.45F)
                {
                    if(((FlightModelMain) (super.FM)).AS.astateTankStates[k] == 0)
                    {
                        debuggunnery("Fuel Tank (" + k + "): Pierced..");
                        ((FlightModelMain) (super.FM)).AS.hitTank(shot.initiator, k, 1);
                        ((FlightModelMain) (super.FM)).AS.doSetTankState(shot.initiator, k, 1);
                    }
                    if(World.Rnd().nextFloat() < 0.01F || shot.powerType == 3 && World.Rnd().nextFloat() < 0.4F)
                    {
                        ((FlightModelMain) (super.FM)).AS.hitTank(shot.initiator, k, 4);
                        debuggunnery("Fuel Tank (" + k + "): Hit..");
                    }
                }
                return;
        }
        if(s.startsWith("xxspart1"))
            {
                int j = s.charAt(7) - 49;
                ((FlightModelMain) (super.FM)).AS.setJamBullets(1, j);
                getEnergyPastArmor(12F, shot);
                return;
            }
            if(s.startsWith("xxpneu"))
            {
                ((FlightModelMain) (super.FM)).Gears.setHydroOperable(false);
                return;
            } else
            {
                return;
            }
        } 
        if(s.startsWith("xcf1"))
        {
            if(chunkDamageVisible("CF") < 3)
                hitChunk("CF", shot);
            if(World.Rnd().nextFloat() < 0.07F)
                ((FlightModelMain) (super.FM)).AS.setCockpitState(shot.initiator, ((FlightModelMain) (super.FM)).AS.astateCockpitState | 2);
            if(World.Rnd().nextFloat() < 0.07F)
                ((FlightModelMain) (super.FM)).AS.setCockpitState(shot.initiator, ((FlightModelMain) (super.FM)).AS.astateCockpitState | 1);
            if(World.Rnd().nextFloat() < 0.07F)
                ((FlightModelMain) (super.FM)).AS.setCockpitState(shot.initiator, ((FlightModelMain) (super.FM)).AS.astateCockpitState | 0x40);
            if(World.Rnd().nextFloat() < 0.07F)
                ((FlightModelMain) (super.FM)).AS.setCockpitState(shot.initiator, ((FlightModelMain) (super.FM)).AS.astateCockpitState | 4);
            if(World.Rnd().nextFloat() < 0.07F)
                ((FlightModelMain) (super.FM)).AS.setCockpitState(shot.initiator, ((FlightModelMain) (super.FM)).AS.astateCockpitState | 0x10);
        } else
        if(s.startsWith("xengine1"))
        {
            if(chunkDamageVisible("Engine1") < 2)
                hitChunk("Engine1", shot);
        } else
        if(s.startsWith("xtail1"))
        {
            if(chunkDamageVisible("Tail1") < 3)
                hitChunk("Tail1", shot);
        } else
        if(s.startsWith("xrudder1"))
        {
            if(chunkDamageVisible("Rudder1") < 1)
                hitChunk("Rudder1", shot);
        } else
        if(s.startsWith("xvatorr"))
        {
            if(s.startsWith("xvatorl") && chunkDamageVisible("VatorL") < 1)
                hitChunk("VatorL", shot);
            if(s.startsWith("xvatorr") && chunkDamageVisible("VatorR") < 1)
                hitChunk("VatorR", shot);
        } else
        if(s.startsWith("xwing"))
        {
            if(s.startsWith("xwinglin") && chunkDamageVisible("WingLIn") < 3)
                hitChunk("WingLIn", shot);
            if(s.startsWith("xwingrin") && chunkDamageVisible("WingRIn") < 3)
                hitChunk("WingRIn", shot);
        } else
        if(s.startsWith("xaroner"))
        {
            if(s.startsWith("xaronel") && chunkDamageVisible("AroneL") < 1)
                hitChunk("AroneL", shot);
            if(s.startsWith("xaroner") && chunkDamageVisible("AroneR") < 1)
                hitChunk("AroneR", shot);
        } else
        if(s.startsWith("xpilot1a") || s.startsWith("xhead1"))
        {
            byte byte0 = 0;
            int i;
            if(s.endsWith("a"))
            {
                byte0 = 1;
                i = s.charAt(6) - 49;
            } else
            if(s.endsWith("b"))
            {
                byte0 = 2;
                i = s.charAt(6) - 49;
            } else
            {
                i = s.charAt(5) - 49;
            }
            hitFlesh(i, shot, byte0);
        }
    }
Может что не совсем так - потому как в 3До разбираюсь постолько-поскольку/что вижу - то и пою.
Нужна, конечно, шлифовка названий в коде.
Не нашёл названий мешей пулемётов. Написал по догадке, но скорее всего это не пулемёты. Если не они - их нужно лепить в 3До отдельными мешиками, что бы пулемёты при попадании отключались. Можно все четыре мешика - я попробую записать повреждение всех четырёх.
И ещё нужен маслобак - код уже вставлен.
Извини, Дима, что влажу в твой труд!
Я из самых лучших побуждений.
Хочеться поставить себе "вылизанный" И-180.
Vasya вне форума   Ответить с цитированием
Старый 09.06.2018, 11:40   #4
deSAD
Модератор
 
Аватар для deSAD
 
Регистрация: 06.03.2007
Адрес: Киев, Украина
Сообщений: 11,391
Отправить сообщение для deSAD с помощью ICQ Отправить сообщение для deSAD с помощью Skype™
По умолчанию

Цитата:
Сообщение от Vasya Посмотреть сообщение
Нужна, конечно, шлифовка названий в коде.
Не нашёл названий мешей пулемётов. Написал по догадке, но скорее всего это не пулемёты.
Они "одним куском" смоделированы:

Миниатюры
Нажмите на изображение для увеличения
Название: I-180_Barrel.jpg
Просмотров: 917
Размер:	180.5 Кб
ID:	54416  
__________________
deSAD вне форума   Ответить с цитированием
Старый 05.06.2018, 03:44   #5
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,352
Радость Правки в классе и фм И-180

Ну и "новая" фм этому самолёту. От Ишака-18 немного будет не совсем верная.
За основу взята фм из "Запасного", но аэродинамика "переделана".
Поляра почти похожа на последние, что я делал зимой.
Добавлено сваливание - совсем немного.
Фм и поправленный класс - попробовать внизу в архиве. Не пересекаются с Димиными.
Сам ещё не тестил. Попробую вечером.
Код:
[Aircraft]
  Type 1
  Crew 1
  Wingspan 10.09
  Length 6.88
  Seaplane 0
  Canard 0
  Jet 0
  JetHiV 0
[Mass]
  Empty 2020.0
  TakeOff 2638.0
  Oil 40.0
  Fuel 200.0
[Controls]
  CAileron 1
  CAileronTrim 1
  CElevator 1
  CElevatorTrim 1
  CRudder 1
  CRudderTrim 1
  CFlap 1
  CFlapPos 2
  CDiveBrake 0
  CInterceptor 0
  CEngine 1
  CVectoredThrust 0
  CUndercarriage 1
  CLockTailwheel 1
  CStabilizer 0
  CArrestorHook 0
  CWingFold 0
  CCockpitDoor 0
  CAileronThreshold 380.0
  CRudderThreshold 400.0
  CElevatorThreshold 430.0
  DefaultAileronTrim -0.0089
  DefaultElevatorTrim -0.024
  DefaultRudderTrim -0.0625
[Squares]
  Wing 16.11
  Aileron 1.4
  Flap 1.63
  Stabilizer 1.84
  Elevator 0.92
  Keel 0.8
  Rudder 0.54
  Wing_In 3.00
  Wing_Mid 2.50
  Wing_Out 2.75
  AirbrakeCxS 0.0
[Arm]
  Aileron 3.5
  Flap 1.3
  Stabilizer 4.2
  Keel 4.16
  Elevator 4.65
  Rudder 4.75
  Wing_In 1.25
  Wing_Mid 2.50
  Wing_Out 4.10
  Wing_V 1.5
  GCenter 0.00
  GCenterZ 0.00
  GC_AOA_Shift 0.50
  GC_Flaps_Shift 0.15
  GC_Gear_Shift -0.15
[Toughness]
  AroneL 100
  AroneR 100
  CF 450
  Engine1 350
  Engine2 350
  Engine3 350
  Engine4 350
  GearL2 200
  GearR2 200
  Keel1 170
  Keel2 170
  Nose 170
  Oil 100
  Rudder1 100
  Rudder2 100
  StabL 170
  StabR 170
  Tail1 120
  Tail2 100
  Turret1B 100
  Turret2B 100
  Turret3B 100
  Turret4B 100
  Turret5B 100
  Turret6B 100
  VatorL 100
  VatorR 100
  WingLIn 100
  WingLMid 100
  WingLOut 100
  WingRIn 100
  WingRMid 100
  WingROut 100
  Flap01 100
  Flap02 100
  Flap03 100
  Flap04 100
[Engine]
  Engine0Family M-82_Series(MOD):I_180_FM
  Engine0SubModel M-88B/I-180
[Gear]
  H 1.593106
  Pitch 12.089
  SinkFactor 400.0
  SpringsStiffness 0.8
[Params]
  CriticalAOA 16.00
  CriticalCy 01.60
  CxCurvature 00.45
  CxStraightness 00.10
  CriticalAOAFlap 18.00
  CriticalCyFlap 01.9
  SpinTailAlpha 16.50
  SpinCxLoss 0.075
  SpinCyLoss 0.025
  Vyfac 0.8
  Tfac 1.13
  Vmin 160.0
  Vmax 480.0
  VmaxAllowed 720.0
  VmaxH 600.0
  HofVmax 6550.0
  VminFLAPS 130.0
  VmaxFLAPS 270.0
  Vz_climb 19.0
  V_climb 270.0
  T_turn 18.0
  V_turn 300.0
  K_max 14.0
  Cy0_max 0.15
  FlapsMult 1.0
  FlapsAngSh 11.0
  G_class_coeff 22.0
  G_class 12.0
  ReferenceWeight -56.0
  Range 1000.0
  CruiseSpeed 330.0
  SensYaw 0.46
  SensPitch 0.65
  SensRoll 0.38
[Polares]
  lineCyCoeff 0.090
  AOAMinCx_Shift 0.09
  Cy0_0 0.14
  AOACritH_0 16.8
  AOACritL_0 -14.0
  CyCritH_0 1.27
  CyCritL_0 -0.77
  CxMin_0 0.02788
  parabCxCoeff_0 4.8E-4
  Cy0_1 0.65
  AOACritH_1 14.5
  AOACritL_1 -22.0
  CyCritH_1 1.58
  CyCritL_1 -0.79
  CxMin_1 0.089
  parabCxCoeff_1 5.9E-4
  parabAngle 4.0
  Decline 0.012
  maxDistAng 37.0
  draw_graphs 0
  mc3 -19.661,-5.9953,-4.7823,-19.253,-3.9002,-13.325,-50.807,-6.9855
  mc4 41.96,13.37,11.049,95.584,74.334,159.34,413.29,31.525
  mm 0.607,0.697,0.788,0.748,0.734,0.699,0.652,0.616
  mz 0.261,0.311,0.321,0.161,0.132,0.102,0.089,0.216
[SOUND]
  Engine fw_190
  Start p_start
  Prop fw_prop
Вложения
Тип файла: rar hier.rar (1.2 Кб, 521 просмотров)
Тип файла: rar I-180-NEW.rar (47.4 Кб, 431 просмотров)

Последний раз редактировалось Vasya; 10.06.2018 в 01:12. Причина: Прикрепление архива исправленного мода И-180.
Vasya вне форума   Ответить с цитированием
Старый 09.06.2018, 05:32   #6
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,352
Вопрос

В патче 4.12.2 заметил одну неприятную особенность: при полёте на высоте ниже 500-т метров самолёт минуты через три застывает в воздухе.
Жаль лога не сохранил.
Думаю, что нужно переписывать в классе вот этот раздел:
Код:
public static void moveGear(HierMesh hiermesh, float f, float f1, float f2)
    {
        hiermesh.chunkSetAngles("GearC2_D0", 0.0F, 0.0F, -80F * f);
        hiermesh.chunkSetAngles("GearL0_D0", 0.0F, -88F * f, 0.0F);
        hiermesh.chunkSetAngles("GearR0_D0", 0.0F, 88F * f, 0.0F);
        hiermesh.chunkSetAngles("GearL2_D0", 33F * f, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearR2_D0", -33F * f, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearL3_D0", 0.0F, -63F * f, 0.0F);
        hiermesh.chunkSetAngles("GearR3_D0", 0.0F, 63F * f, 0.0F);
        hiermesh.chunkSetAngles("GearL4_D0", 25F * f, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearR4_D0", -25F * f, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearL5_D0", 0.0F, 0.0F, -90F * f);
        hiermesh.chunkSetAngles("GearR5_D0", 0.0F, 0.0F, -90F * f);
    }
Нужно искать образец.
Vasya вне форума   Ответить с цитированием
Старый 09.06.2018, 15:29   #7
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,352
По умолчанию

Называется этот кусок как?
Баррел по идее должен быть типа баком.
Vasya вне форума   Ответить с цитированием
Старый 09.06.2018, 18:38   #8
deSAD
Модератор
 
Аватар для deSAD
 
Регистрация: 06.03.2007
Адрес: Киев, Украина
Сообщений: 11,391
Отправить сообщение для deSAD с помощью ICQ Отправить сообщение для deSAD с помощью Skype™
По умолчанию

Цитата:
Сообщение от Vasya Посмотреть сообщение
Называется этот кусок как?
Именно его название и выделено в "дереве" слева
Цитата:
Сообщение от Vasya Посмотреть сообщение
Баррел по идее должен быть типа баком.
Цитата:

barrel – определения

имя существительное
...
a tube forming part of an object such as a gun or a pen.
«They are the Mom and Dad and kids walking to work or school while looking for a gun barrel pointed at them from a white van.»
© Google
__________________
deSAD вне форума   Ответить с цитированием
Старый 09.06.2018, 19:27   #9
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,352
Вопрос

Цитата:
Сообщение от deSAD Посмотреть сообщение
Именно его название и выделено в "дереве" слева


© Google
Да, Спасибо!
Я уже разглядел меш и убедился.
Там в меше нет м-гун-дамп для пулемётов - это непорядок.
Я дописал в хиере коллизии:
Код:
[Barrel_D0]
Mesh Barrel_D0
Parent CF_D0
Attaching 1 0 0 0 1 0 0 0 1 0 0 0
CollisionObject .xxmgun01
CollisionObject .xxmgun02
CollisionObject .xxmgun03
CollisionObject .xxmgun04
Код в клас такой приделал:
Код:
if(s.startsWith("xxmgun01"))
            {
                if(getEnergyPastArmor(0.75F, shot) > 0.0F)
                {
                    debuggunnery("Armament: Machine Gun 01 Disabled..");
                    FM.AS.setJamBullets(0, 0);
                    getEnergyPastArmor(World.Rnd().nextFloat(0.5F, 23.325F), shot);
                }
                return;
            }
            if(s.startsWith("xxmgun02"))
            {
                if(getEnergyPastArmor(0.75F, shot) > 0.0F)
                {
                    debuggunnery("Armament: Machine Gun 02 Disabled..");
                    FM.AS.setJamBullets(0, 1);
                    getEnergyPastArmor(World.Rnd().nextFloat(0.5F, 23.325F), shot);
                }
                return;
            }
            if(s.startsWith("xxmgun03"))
            {
                if(getEnergyPastArmor(0.75F, shot) > 0.0F)
                {
                    debuggunnery("Armament: Machine Gun 01 Disabled..");
                    FM.AS.setJamBullets(0, 0);
                    getEnergyPastArmor(World.Rnd().nextFloat(0.5F, 23.325F), shot);
                }
                return;
            }
            if(s.startsWith("xxmgun04"))
            {
                if(getEnergyPastArmor(0.75F, shot) > 0.0F)
                {
                    debuggunnery("Armament: Machine Gun 02 Disabled..");
                    FM.AS.setJamBullets(0, 1);
                    getEnergyPastArmor(World.Rnd().nextFloat(0.5F, 23.325F), shot);
                }
                }
                return;
            } else
            {
                return;
            }
        }
По идее должно работать.
Для шасси дописал единички - ф1 - так положено в поздних патчах.
Код:
public static void moveGear(HierMesh hiermesh, float f, float f1, float f2)
    {
        hiermesh.chunkSetAngles("GearC2_D0", 0.0F, 0.0F, -80F * f);
        hiermesh.chunkSetAngles("GearL0_D0", 0.0F, -88F * f, 0.0F);
        hiermesh.chunkSetAngles("GearR0_D0", 0.0F, 88F * f1, 0.0F);
        hiermesh.chunkSetAngles("GearL2_D0", 33F * f, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearR2_D0", -33F * f1, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearL3_D0", 0.0F, -63F * f, 0.0F);
        hiermesh.chunkSetAngles("GearR3_D0", 0.0F, 63F * f1, 0.0F);
        hiermesh.chunkSetAngles("GearL4_D0", 25F * f, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearR4_D0", -25F * f1, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearL5_D0", 0.0F, 0.0F, -90F * f);
        hiermesh.chunkSetAngles("GearR5_D0", 0.0F, 0.0F, -90F * f1);
    }

    protected void moveGear(float f, float f1, float f2)
    {
        moveGear(hierMesh(), f, f1, f2);
    }
Но проблеммы с Ишаком остались - он зависает на малой высоте, да и вообще - фпс падает, потому как есть неустранимые ошибки в чём то.
В миссии лог растёт за 15 минут до 42 мб. Херня, короче.
Вот основное ругательство лога:
Код:
java.lang.NullPointerException
	at com.maddox.il2.fm.Gear.ground(Gear.java:356)
	at com.maddox.il2.fm.Gear.ground(Gear.java:235)
	at com.maddox.il2.fm.RealFlightModel.update(RealFlightModel.java:1232)
	at com.maddox.il2.fm.FlightModelMain.tick(FlightModelMain.java:805)
	at com.maddox.il2.engine.Interpolators.tick(Interpolators.java:222)
	at com.maddox.il2.engine.Actor.interpolateTick(Actor.java:434)
	at com.maddox.il2.engine.InterpolateAdapter.msgTimeOut(InterpolateAdapter.java:174)
	at com.maddox.rts.MsgTimeOut.invokeListener(MsgTimeOut.java:73)
	at com.maddox.rts.Message._send(Message.java:1217)
	at com.maddox.rts.Message.sendToObject(Message.java:1191)
	at com.maddox.rts.Message.sendTo(Message.java:1134)
	at com.maddox.rts.Message.trySend(Message.java:1115)
	at com.maddox.rts.Time.loopMessages(Time.java:252)
	at com.maddox.rts.RTSConf.loopMsgs(RTSConf.java:101)
	at com.maddox.il2.game.MainWin3D.loopApp(MainWin3D.java:131)
	at com.maddox.il2.game.Main.exec(Main.java:439)
	at com.maddox.il2.game.GameWin3D.main(GameWin3D.java:235)
Interpolators destroying in invoked method 'tick' 
com.maddox.il2.engine.ActorException: Interpolators destroying in invoked method 'tick' 
	at com.maddox.il2.engine.Interpolators.destroy(Interpolators.java:263)
	at com.maddox.il2.engine.Actor.destroy(Actor.java:777)
	at com.maddox.il2.engine.ActorMesh.destroy(ActorMesh.java:49)
	at com.maddox.il2.engine.ActorHMesh.destroy(ActorHMesh.java:66)
	at com.maddox.il2.objects.sounds.SndAircraft.destroy(SndAircraft.java:398)
	at com.maddox.il2.objects.air.NetAircraft.destroy(NetAircraft.java:1879)
	at com.maddox.il2.objects.air.Aircraft.destroy(Aircraft.java:2337)
	at com.maddox.il2.objects.air.AircraftLH.destroy(AircraftLH.java:84)
	at com.maddox.il2.engine.Engine.destroyListGameActors(Engine.java:152)
	at com.maddox.il2.engine.InterpolateAdapter.resetGameClear(InterpolateAdapter.java:240)
	at com.maddox.il2.engine.Engine.resetGameClear(Engine.java:192)
	at com.maddox.il2.game.Main.resetGameClear(Main.java:84)
	at com.maddox.il2.game.Main3D.resetGameClear(Main3D.java:1144)
	at com.maddox.il2.game.Main.resetGame(Main.java:96)
	at com.maddox.il2.game.Mission.clear(Mission.java:415)
	at com.maddox.il2.game.Mission.destroy(Mission.java:371)
Кто, граммотный - подскажите пожалуйста (!!!) в чём дело?!
// У меня есть подозрение на команду пилота:
Код:
if(s.startsWith("xpilot1a") || s.startsWith("xhead1"))
        {
            byte byte0 = 0;
            int i;
            if(s.endsWith("a"))
            {
                byte0 = 1;
                i = s.charAt(6) - 49;
            } else
            if(s.endsWith("b"))
            {
                byte0 = 2;
                i = s.charAt(6) - 49;
            } else
            {
                i = s.charAt(5) - 49;
            }
            hitFlesh(i, shot, byte0);
        }
    }
Может я по неумению не так вписал название меша пилота? Там их два (меша) в 3До кокпита. //
Вопрос по пилоту снят.
---------------------------------
Исправленный мод И-180НЬЮ в архиве в посте № 62 :
http://forum.aviaskins.com/showpost....7&postcount=62
Поправленный хиер-хим для планера нужно вкинуть в папку по адресу:
E:\Program Files\IL-2 Complete Edition\MODS\I_180-NEW\3do\plane\I-180
Вложения
Тип файла: rar hier.rar (1.2 Кб, 476 просмотров)

Последний раз редактировалось Vasya; 09.06.2018 в 21:36.
Vasya вне форума   Ответить с цитированием
Старый 09.06.2018, 19:43   #10
deSAD
Модератор
 
Аватар для deSAD
 
Регистрация: 06.03.2007
Адрес: Киев, Украина
Сообщений: 11,391
Отправить сообщение для deSAD с помощью ICQ Отправить сообщение для deSAD с помощью Skype™
По умолчанию

Цитата:
Сообщение от Vasya Посмотреть сообщение
Может я по неумению не так вписал название меша пилота? Там их два (меша) в 3До кокпита.
"Живой" пилот состоит из трёх частей: тело, голова и маска ...






"Убитый" представлен "одним куском" ...


Тобто, всё по дефолту.
Миниатюры
Нажмите на изображение для увеличения
Название: Pilot1_D0.jpg
Просмотров: 902
Размер:	173.9 Кб
ID:	54424   Нажмите на изображение для увеличения
Название: Head1_D0.jpg
Просмотров: 975
Размер:	170.4 Кб
ID:	54425   Нажмите на изображение для увеличения
Название: HMask1_D0.jpg
Просмотров: 921
Размер:	170.4 Кб
ID:	54426   Нажмите на изображение для увеличения
Название: Pilot1_D1.jpg
Просмотров: 856
Размер:	171.2 Кб
ID:	54427  
__________________
deSAD вне форума   Ответить с цитированием
Старый 09.06.2018, 20:25   #11
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,352
Вопрос

Цитата:
Сообщение от deSAD Посмотреть сообщение
"Живой" пилот состоит из трёх частей: тело, голова и маска ...
.............................
Тобто, всё по дефолту.
Спасибо!
Уже посмотрел в мешах Лакотовского И-180.
И сравнил с новым планером от "Димона".
В коде исправил как должно быть, но зависание всё равно происходит.
Лог такой:
Код:
com.maddox.il2.engine.ActorException: Interpolators destroying in invoked method 'tick' 
	at com.maddox.il2.engine.Interpolators.destroy(Interpolators.java:263)
	at com.maddox.il2.engine.Actor.destroy(Actor.java:777)
	at com.maddox.il2.engine.ActorMesh.destroy(ActorMesh.java:49)
	at com.maddox.il2.engine.ActorHMesh.destroy(ActorHMesh.java:66)
	at com.maddox.il2.objects.sounds.SndAircraft.destroy(SndAircraft.java:398)
	at com.maddox.il2.objects.air.NetAircraft.destroy(NetAircraft.java:1879)
	at com.maddox.il2.objects.air.Aircraft.destroy(Aircraft.java:2337)
	at com.maddox.il2.objects.air.AircraftLH.destroy(AircraftLH.java:84)
	at com.maddox.il2.engine.Engine.destroyListGameActors(Engine.java:152)
	at com.maddox.il2.engine.DrawEnvXY.resetGameClear(DrawEnvXY.java:746)
	at com.maddox.il2.engine.Engine.resetGameClear(Engine.java:189)
	at com.maddox.il2.game.Main.resetGameClear(Main.java:84)
	at com.maddox.il2.game.Main3D.resetGameClear(Main3D.java:1144)
	at com.maddox.il2.game.Main.resetGame(Main.java:96)
	at com.maddox.il2.game.Mission.clear(Mission.java:415)
	at com.maddox.il2.game.Mission.destroy(Mission.java:371)
	at com.maddox.il2.gui.GUISingleStat.doNext(GUISingleStat.java:47)
	at com.maddox.il2.gui.GUIStat$DialogClient.notify(GUIStat.java:331)
	at com.maddox.gwindow.GWindow.notify(GWindow.java:144)
	at com.maddox.gwindow.GWindowDialogControl._notify(GWindowDialogControl.java:51)
	at com.maddox.il2.gui.GUIButton._notify(GUIButton.java:18)
	at com.maddox.gwindow.GWindowDialogControl.mouseClick(GWindowDialogControl.java:86)
	at com.maddox.il2.gui.GUIButton.mouseClick(GUIButton.java:22)
	at com.maddox.gwindow.GWindow._mouseButton(GWindow.java:556)
	at com.maddox.gwindow.GWindowRoot.doMouseButton(GWindowRoot.java:251)
	at com.maddox.gwindow.GWindowManager.doMouseButton(GWindowManager.java:69)
	at com.maddox.il2.engine.GUIWindowManager.msgMouseButton(GUIWindowManager.java:126)
	at com.maddox.rts.MsgMouse.invokeListener(MsgMouse.java:98)
	at com.maddox.rts.Message._send(Message.java:1217)
	at com.maddox.rts.Message.sendToObject(Message.java:1191)
	at com.maddox.rts.Message.sendToArray(Message.java:1147)
	at com.maddox.rts.Message.sendTo(Message.java:1128)
	at com.maddox.rts.Message.trySend(Message.java:1115)
	at com.maddox.rts.Time.loopMessages(Time.java:180)
	at com.maddox.rts.RTSConf.loopMsgs(RTSConf.java:101)
	at com.maddox.il2.game.MainWin3D.loopApp(MainWin3D.java:131)
	at com.maddox.il2.game.Main.exec(Main.java:439)
	at com.maddox.il2.game.GameWin3D.main(GameWin3D.java:235)
Interpolators destroying in invoked method 'tick' 
com.maddox.il2.engine.ActorException: Interpolators destroying in invoked method 'tick' 
	at com.maddox.il2.engine.Interpolators.destroy(Interpolators.java:263)
	at com.maddox.il2.engine.Actor.destroy(Actor.java:777)
	at com.maddox.il2.engine.ActorMesh.destroy(ActorMesh.java:49)
	at com.maddox.il2.engine.ActorHMesh.destroy(ActorHMesh.java:66)
	at com.maddox.il2.objects.sounds.SndAircraft.destroy(SndAircraft.java:398)
	at com.maddox.il2.objects.air.NetAircraft.destroy(NetAircraft.java:1879)
	at com.maddox.il2.objects.air.Aircraft.destroy(Aircraft.java:2337)
	at com.maddox.il2.objects.air.AircraftLH.destroy(AircraftLH.java:84)
	at com.maddox.il2.engine.Engine.destroyListGameActors(Engine.java:152)
	at com.maddox.il2.engine.InterpolateAdapter.resetGameClear(InterpolateAdapter.java:240)
	at com.maddox.il2.engine.Engine.resetGameClear(Engine.java:192)
	at com.maddox.il2.game.Main.resetGameClear(Main.java:84)
	at com.maddox.il2.game.Main3D.resetGameClear(Main3D.java:1144)
	at com.maddox.il2.game.Main.resetGame(Main.java:96)
	at com.maddox.il2.game.Mission.clear(Mission.java:415)
	at com.maddox.il2.game.Mission.destroy(Mission.java:371)
	at com.maddox.il2.gui.GUISingleStat.doNext(GUISingleStat.java:47)
	at com.maddox.il2.gui.GUIStat$DialogClient.notify(GUIStat.java:331)
	at com.maddox.gwindow.GWindow.notify(GWindow.java:144)
Вот напасть. Понять бы где ошибка.
Коды повреждения мотора выставлял по коллизиям в мешах. Сами коды нормальные и хорошо работают в других самолётах.
На высоте самолёт летает, но ниже 250 метров зависает через пару минут. Заходил на посадку и самолёт замер. Всё управляеться, мотор так же, но самолёт застывший.
Миниатюры
Нажмите на изображение для увеличения
Название: 2018.06.09 20-09-06.jpg
Просмотров: 559
Размер:	132.8 Кб
ID:	54432   Нажмите на изображение для увеличения
Название: 2018.06.09 20-09-18.jpg
Просмотров: 591
Размер:	134.1 Кб
ID:	54433   Нажмите на изображение для увеличения
Название: 2018.06.09 20-09-46.jpg
Просмотров: 579
Размер:	135.1 Кб
ID:	54434  

Последний раз редактировалось Vasya; 09.06.2018 в 20:28.
Vasya вне форума   Ответить с цитированием
Старый 12.06.2018, 21:24   #12
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,352
Смущение

Кто бы сделал разъёмные крилья - ну что бы ломались и даже отрывались вообще.
???!!!
Vasya вне форума   Ответить с цитированием
Старый 12.06.2018, 21:28   #13
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию


Пожалуй да, сообщение удалил. А что же тогда можно прикрутить?
Для себя любимого, сделал четыре БС-а, вроде тоже было. Была у меня хорошая монография по 180-тому, но пропала, и автора не помню...
tvister вне форума   Ответить с цитированием
Старый 12.06.2018, 21:37   #14
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,352
Радость

Цитата:
Сообщение от tvister Посмотреть сообщение

Пожалуй да, сообщение удалил. А что же тогда можно прикрутить?
Для себя любимого, сделал четыре БС-а, вроде тоже было. Была у меня хорошая монография по 180-тому, но пропала, и автора не помню...
Наверное два швака по краю можно сделать.
Да и четыре УБСа нормально будет, но боезапас уменьшить до 350-370 патронов., иначе в реале он тяжолым будет заипись, а со шваками совсем бревно.
Мотор по мощности не шибко сильнее М-62, а веса больше., мидель почти не уменьшился.
Вообще 3(три) УБСа - это зашибись много. Представь: соеденить вместе три ДШК. А УБ по идее скорострельнее на 30-ть процентов будет. Это за пару минут и баржу порезать можно на метал.
Швак особо залпа не добавлял, а если учесть, что его осколочные снаряды были малось фиговаты - то в УБСах есть преимущество.
----------------------------------
Можешь в классе правленном дать ссылку на мою фм или взять исходник из архива что я прикрепил в посте 62. И уже править вооружение в моём исходнике. (Я таки старался "вылизать" код. )

Последний раз редактировалось Vasya; 12.06.2018 в 21:41.
Vasya вне форума   Ответить с цитированием
Старый 12.06.2018, 21:42   #15
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

А какой БК для ШВАК-ов?
И как добавить FM?
tvister вне форума   Ответить с цитированием
Старый 12.06.2018, 21:51   #16
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,352
Радость Расширение вооружения для И-180

Цитата:
Сообщение от tvister Посмотреть сообщение
А какой БК для ШВАК-ов?
И как добавить FM?
Щас, пару минут - всё дам сюда.
---------------------------------------------
Внизу архив.
Иходник моего правленного И-180 вложен.
Джава-файл осталось закомпиллить.
Вооружение дописано.
Классы и исходники вооружения есть в архиве.
У Швака снижена скорострельность на 30 проц.
Там ещё есть файлики прс и звуки для вооружения.
ФМ вложена внутрь архива.
Фикс обновлён 1 апреля 2019 года.
Приятных полётов!

--------------------------------------------
Вложения
Тип файла: rar I-180-NEW-4.09.rar (579.5 Кб, 291 просмотров)

Последний раз редактировалось Vasya; 01.04.2019 в 15:02. Причина: Обновления фикса для И-180 1 Апреля 2019 года
Vasya вне форума   Ответить с цитированием
Старый 12.06.2018, 21:43   #17
Leopard
Местный
 
Аватар для Leopard
 
Регистрация: 29.11.2013
Сообщений: 1,049
По умолчанию

Цитата:
Сообщение от tvister Посмотреть сообщение

Была у меня хорошая монография по 180-тому, но пропала, и автора не помню...
посмотрите тут
http://wunderwaffe.narod.ru/WeaponBo...i180/index.htm
Leopard вне форума   Ответить с цитированием
Старый 12.06.2018, 21:46   #18
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Спасибо, почитаю обязательно .
tvister вне форума   Ответить с цитированием
Старый 12.06.2018, 21:46   #19
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,352
По умолчанию

Да, забыл добавить:
нормальный синхронизатор на Швак только в году так 45-м сделали/начали ставить.
До этого массово сихронизатор на Лавках был от Ишака (давно читал про такое)., а с этим сихронизатором залп падал до неприличия. Як-9 с безсинхронным Шваком и одним УБС-ом имел хорошое преимущество перед Лавкой.
Так шо это нужно писать новый класс Швака и уменьшать скорострельность на 30-35 процентов. Ну что бы исторично было с И-180. Типа.
Vasya вне форума   Ответить с цитированием
Старый 13.06.2018, 02:06   #20
Leopard
Местный
 
Аватар для Leopard
 
Регистрация: 29.11.2013
Сообщений: 1,049
По умолчанию

Цитата:
Сообщение от Vasya Посмотреть сообщение
Да, забыл добавить:
нормальный синхронизатор на Швак только в году так 45-м сделали/начали ставить.
До этого массово сихронизатор на Лавках был от Ишака (давно читал про такое)., а с этим сихронизатором залп падал до неприличия. Як-9 с безсинхронным Шваком и одним УБС-ом имел хорошое преимущество перед Лавкой.
Так шо это нужно писать новый класс Швака и уменьшать скорострельность на 30-35 процентов. Ну что бы исторично было с И-180. Типа.
таки нет ... на Ла-5 синхронизатор стоял от И-185 (на И-16 синхронных ШВАКов не было в серии) и тепм стрельбы с этим синхронизатором падал на 15% от исходного, так что ... добавьте стовосьмидесятке со ШВАКами скорострельности
Leopard вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 3 (пользователей: 0 , гостей: 3)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 10:40. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Рейтинг@Mail.ru