AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   Первым делом, первым делом - самолеты (http://forum.aviaskins.com/forumdisplay.php?f=20)
-   -   Самая "правильная" ФМ (http://forum.aviaskins.com/showthread.php?t=2949)

Stilet 18.06.2018 12:27

Цитата:

Сообщение от Leopard (Сообщение 178822)
есть такое понятие как КИНЕТИЧЕСКАЯ ЭНЕРГИЯ, вот благодаря ей и делается "дырища больше калибра", причем гооораздо больше калибра ;)
как пример...

Э-э, гмм. Насчёт кинетической энергии согласен, но вот на приведённых для примера фото разрушения не от неё. В подписи "русским по белому" сказано, что это результат попадания 12,7 МДЗ. А пуля Мгновенного Действия Зажигательная - это по сути маленький фугасный снаряд. Взрывается она при попадании. По личному составу эффект потрясающий - разносит на куски. Но бронепробиваемость близка к нулю - можно укрыться за плетнём или дощатым забором - пуля его разворотит(примерно, как на этих фото) но то что за ним не поразит.

Leopard 18.06.2018 13:16

Цитата:

Сообщение от Stilet (Сообщение 178825)
Э-э, гмм. Насчёт кинетической энергии согласен, но вот на приведённых для примера фото разрушения не от неё. В подписи "русским по белому" сказано, что это результат попадания 12,7 МДЗ. А пуля Мгновенного Действия Зажигательная - это по сути маленький фугасный снаряд. Взрывается она при попадании. По личному составу эффект потрясающий - разносит на куски. Но бронепробиваемость близка к нулю - можно укрыться за плетнём или дощатым забором - пуля его разворотит(примерно, как на этих фото) но то что за ним не поразит.

в целом согласен, НО ... считать эту пульку "маленьким фугасным снарядом" я бы не стал т.к. в ней ВВ от 1,3 до 1,6 г и 1,2 г зажигательного состава и главная задача ВВ проломить бензобак дабы зажигательный состав мог поджечь бензин или керосин, хотя при этом фугасное воздействие пульки было способно проделать дыру в обшивке самолета диаметром 30-40 см

Dragon104 18.06.2018 19:32

Главная задача ВВ в пуле МДЗ - воспламенить пары топлива в бензобаке, если рассматривать именно бензобак. А вот попадает ВВ в бензобак именно благодаря кинетической энергии пули, которая (энергия) и расходуется на пробитие стенки бака. Если уж быть совсем точным, то в бак попадают: форс пламени от сработавшего зажигательного состава, сердечник и прочие запчасти пули. В ББ снарядах заряд (если он есть) детонирует после пробития брони т.к. применяются взрыватели с замедлением. В полнотелых ББ снарядах поражающее действие наносится осколками брони и снаряда.
Leopard, ваше замечание справедливо только для деформируемых пуль, охотничьих в частности.
Коллега Mauzer тоже хватил, приравняв кинетическую энергию к тротиловому эквиваленту. Некорректное сравнение для рассматриваемых скоростей.

С уважением к сообществу.

Dragon104 18.06.2018 20:54

"20mm M-Geschoss = 11600mkg = 113796 Joule (18,7g.-TNT)
30mm M-Geschoss = 59500mkg = 583695 Joulе (96g.-TNT)
20mm Sprgranate m. L'Spur = 2300mkg = 22563 Joule (3,7g-TNT)"
Это что?

Vasya 19.06.2018 08:36

Вложений: 6
Так как я немецкий не знаю,
Цитата:

Сообщение от Mauser (Сообщение 178851)
ну вот тя на...Вы меня шО, по диагонале читаете? иХде я шО там равнял с чем?
я Вам показал, обЪяснил, шО Üb=Übung=учебный!!!!!!!!!!!! шО не понятного тО?
.....................

поэтому ошибся в назначении 500-от-грамового снаряда (одного из двох) к пушке МК-103.
Для Ила ошибочка в классе пушки будет не критична.
Так как у нас есть одинаковый по весу снаряд, но с зажигательнім составом, то достаточно вписать в
Цитата:

gunproperties.bullet[1].powerType = 2;
двойку вместо нуля и всё будет (х)окей.
На первой картинке внизу эта пуля/снаряд.
Так как выше по странице у товарищей была критика к этому снаряду, то переписал по новой фикс для пушек Хеншеля - внизу архив.
500-от-гпамовый снаряд удалён.
Вместо него прописан бронебойно-зажигательный снаряд 455 грамм - вторая картинка внизу.
Так же есть в раскладке бронебойный, внутри которого находится сердечник из карбида-вольфрама - третья картинка внизу.
Добавлен М-Джессос весом 330 грамм 42-43 года выпуска - четвёртая и пятая картинки внизу.
Хотя по моему мнению М-Джессос я бы исключил.
Почему?
Потому, что самолёт у нас штурмовик и использовался в основном по бронированным средствам, на воде в том числе. Даже для небольшого бронеавтомобиля Джессосы будут малоэффективны, а по моему мнению вообще безполезны., потому как разрушительное действие этих снарядов основываеться на высоком давлении горячих (до 3000 гр.) газов зажигательного состава снаряда. При попадании в малые объёмы типа крыла или фюзеляжа самолёта высокое давление газов приводит к раздавливанию/разламыванию конструкций из дюраля/дерева.
Броне же на открытом воздухе всё это будет нипочём. Такое моё мнение.
Если бы я был пилотом (типа в реале ВМВ) Хеншеля, то брал бы другую раскладку снарядов для легкобронированных целей.
Типа вот такую:
Код:

gunproperties.bullet = (new BulletProperties[] {
            new BulletProperties(), new BulletProperties(), new BulletProperties(), new BulletProperties()
        });
        gunproperties.bullet[0].massa = 0.502F;
        gunproperties.bullet[0].kalibr = 0.000468F;
        gunproperties.bullet[0].speed = 700F;
        gunproperties.bullet[0].power = 0.16F;
        gunproperties.bullet[0].powerType = 2;
        gunproperties.bullet[0].powerRadius = 0.0031F;
        gunproperties.bullet[0].traceMesh = "3do/effects/tracers/20mmYellow/mono.sim";
        gunproperties.bullet[0].traceTrail = "effects/Smokes/SmokeBlack_BuletteTrail.eff";
        gunproperties.bullet[0].traceColor = 0xd200ffff;
        gunproperties.bullet[0].timeLife = 17F;
        gunproperties.bullet[1].massa = 0.502F;
        gunproperties.bullet[1].kalibr = 0.000468F;
        gunproperties.bullet[1].speed = 700F;
        gunproperties.bullet[1].power = 0.16F;
        gunproperties.bullet[1].powerType = 2;
        gunproperties.bullet[1].powerRadius = 0.0031F;
        gunproperties.bullet[1].traceMesh = "3do/effects/tracers/20mmYellow/mono.sim";
        gunproperties.bullet[1].traceTrail = "effects/Smokes/SmokeBlack_BuletteTrail.eff";
        gunproperties.bullet[1].traceColor = 0xd200ffff;
        gunproperties.bullet[1].timeLife = 17F;
        gunproperties.bullet[2].massa = 0.356F;
        gunproperties.bullet[2].kalibr = 0.000468F;
        gunproperties.bullet[2].speed = 960F;
        gunproperties.bullet[2].power = 0.16727F;
        gunproperties.bullet[2].powerType = 0;
        gunproperties.bullet[2].powerRadius = 0.0031F;
        gunproperties.bullet[2].traceMesh = "3do/effects/tracers/20mmBlue/mono.sim";
        gunproperties.bullet[2].traceTrail = "effects/Smokes/SmokeBlack_BuletteTrail.eff";
        gunproperties.bullet[2].traceColor = 0xd2ff0000;
        gunproperties.bullet[2].timeLife = 17F;
        gunproperties.bullet[3].massa = 0.502F;
        gunproperties.bullet[3].kalibr = 0.000468F;
        gunproperties.bullet[3].speed = 700F;
        gunproperties.bullet[3].power = 0.16F;
        gunproperties.bullet[3].powerType = 2;
        gunproperties.bullet[3].powerRadius = 0.0031F;
        gunproperties.bullet[3].traceMesh = "3do/effects/tracers/20mmYellow/mono.sim";
        gunproperties.bullet[3].traceTrail = "effects/Smokes/SmokeBlack_BuletteTrail.eff";
        gunproperties.bullet[3].traceColor = 0xd200ffff;
        gunproperties.bullet[3].timeLife = 17F;
        return gunproperties;
    }
}

Тут сначала два тяжёлых и дешёвых бронебойно-зажигательных, потом дорогой бронебойный из сердечником из карбида-фольфрама, потом опять дешовый тяжёлый бронебойно-зажигательный.
Скорость Хеншеля не очень большая, при атаке можно выстрелить три-четыре раза. Даже если сначала промажешь, то невелика беда - тяжёлые снаряды недорогие и их много.
Такие мысли.
---------------------------------------
Мод обновлён 22 Июня.
Изменения:
исправлены ошибки/очепятки в классах.,
в ВК-37 добавлен осколочно-фугасный снаряд от зенитки.,
Код:

gunproperties.bullet[3].massa = 0.644F;
        gunproperties.bullet[3].kalibr = 0.00037F;
        gunproperties.bullet[3].speed = 820F;
        gunproperties.bullet[3].power = 0.0596F;
        gunproperties.bullet[3].powerType = 1;
        gunproperties.bullet[3].powerRadius = 70F;
        gunproperties.bullet[3].traceMesh = "3do/effects/tracers/20mmYellow/mono.sim";
        gunproperties.bullet[3].traceTrail = "effects/Smokes/SmokeBlack_BuletteTrail.eff";
        gunproperties.bullet[3].traceColor = 0xd200ffff;
        gunproperties.bullet[3].timeLife = 20F;

в МК-103 для Хеншеля так же добавлен фугасный снаряд старого образца.,
Код:

gunproperties.bullet[4].massa = 0.440F;
        gunproperties.bullet[4].kalibr = 0.000468F;
        gunproperties.bullet[4].speed = 800F;
        gunproperties.bullet[4].power = 0.14357F;
        gunproperties.bullet[4].powerType = 0;
        gunproperties.bullet[4].powerRadius = 4.5F;
        gunproperties.bullet[4].traceMesh = "3do/effects/tracers/20mmYellow/mono.sim";
        gunproperties.bullet[4].traceTrail = "effects/Smokes/SmokeBlack_BuletteTrail.eff";
        gunproperties.bullet[4].traceColor = 0xd200ffff;
        gunproperties.bullet[4].timeLife = 15F;

изменены немного звуки и прс. к ним.
----------------------------------------
Удачных попаданий в супостата! :ok:

Vasya 21.06.2018 07:35

ФИКС ПУШЕК НА ХЕНШЕЛЬ
 
Вложений: 9
Обновил мод пушек МК-101 - МК-103 и ВК-37.
Пушки иеют свои звуки - в архиве есть саунд и семплес - к сожалению не совсем аутентичные и не очень правильно созданные., я не особо специалист в Иловских звуках.
В лентах добавил ещё боеприпасов - бронебойные и осколочные для ВК-37.
Жаль, что нет возможности в Иле выбрать самостоятельно набивку ленты под каждое задание.
-------------------------------
Если будут "очепятки" - пишите, обязательно поправлю.
Я подслеповат и не ношу очки.
Для Ю-87 и для Хеншеля раскладка такая:
Код:

public GunProperties createProperties()
    {
        GunProperties gunproperties = super.createProperties();
        gunproperties.bCannon = true;
        gunproperties.bUseHookAsRel = true;
        gunproperties.fireMesh = null;
        gunproperties.fire = "3DO/Effects/GunFire/37mmSlow/GunFire.eff";
        gunproperties.sprite = null;
        gunproperties.smoke = "effects/smokes/37mmSlow.eff";
        gunproperties.shells = null;
        gunproperties.sound = "weapon.MGun_BK37S";
        gunproperties.emitColor = new Color3f(1.0F, 1.0F, 0.0F);
        gunproperties.emitI = 10F;
        gunproperties.emitR = 3F;
        gunproperties.emitTime = 0.03F;
        gunproperties.aimMinDist = 10F;
        gunproperties.aimMaxDist = 1500F;
        gunproperties.weaponType = -1;
        gunproperties.maxDeltaAngle = 0.09F;
        gunproperties.shotFreq = 1.25F;
        gunproperties.traceFreq = 3;
        gunproperties.bullets = 12;
        gunproperties.bulletsCluster = 1;
        gunproperties.bullet = (new BulletProperties[] {
            new BulletProperties(), new BulletProperties(), new BulletProperties(), new BulletProperties()
        });
        gunproperties.bullet[0].massa = 0.410F;
        gunproperties.bullet[0].kalibr = 0.00037F;
        gunproperties.bullet[0].speed = 1146F;
        gunproperties.bullet[0].power = 0.27452F;
        gunproperties.bullet[0].powerType = 0;
        gunproperties.bullet[0].powerRadius = 0.004F;
        gunproperties.bullet[0].traceMesh = "3do/effects/tracers/20mmBlue/mono.sim";
        gunproperties.bullet[0].traceTrail = "effects/Smokes/SmokeBlack_BuletteTrail.eff";
        gunproperties.bullet[0].traceColor = 0xd2ff0000;
        gunproperties.bullet[0].timeLife = 20F;
        gunproperties.bullet[1].massa = 0.410F;
        gunproperties.bullet[1].kalibr = 0.00037F;
        gunproperties.bullet[1].speed = 1146F;
        gunproperties.bullet[1].power = 0.27452F;
        gunproperties.bullet[1].powerType = 0;
        gunproperties.bullet[1].powerRadius = 0.004F;
        gunproperties.bullet[1].traceMesh = "3do/effects/tracers/20mmBlue/mono.sim";
        gunproperties.bullet[1].traceTrail = "effects/Smokes/SmokeBlack_BuletteTrail.eff";
        gunproperties.bullet[1].traceColor = 0xd2ff0000;
        gunproperties.bullet[1].timeLife = 20F;
        gunproperties.bullet[2].massa = 0.550F;
        gunproperties.bullet[2].kalibr = 0.00037F;
        gunproperties.bullet[2].speed = 914F;
        gunproperties.bullet[2].power = 0.23425F;
        gunproperties.bullet[2].powerType = 2;
        gunproperties.bullet[2].powerRadius = 10F;
        gunproperties.bullet[2].traceMesh = "3do/effects/tracers/20mmYellow/mono.sim";
        gunproperties.bullet[2].traceTrail = "effects/Smokes/SmokeBlack_BuletteTrail.eff";
        gunproperties.bullet[2].traceColor = 0xd200ffff;
        gunproperties.bullet[2].timeLife = 20F;
        gunproperties.bullet[3].massa = 0.644F;
        gunproperties.bullet[3].kalibr = 0.00037F;
        gunproperties.bullet[3].speed = 820F;
        gunproperties.bullet[3].power = 0.0596F;
        gunproperties.bullet[3].powerType = 1;
        gunproperties.bullet[3].powerRadius = 70F;
        gunproperties.bullet[3].traceMesh = "3do/effects/tracers/20mmYellow/mono.sim";
        gunproperties.bullet[3].traceTrail = "effects/Smokes/SmokeBlack_BuletteTrail.eff";
        gunproperties.bullet[3].traceColor = 0xd200ffff;
        gunproperties.bullet[3].timeLife = 20F;
        return gunproperties;
    }

Последний осколочный от Флак-18-37.
Данные взял из таблицы(выше по странице) камрада Маузера.
По идее этот снаряд должен поражать автомобили, даже разорвавшись вблизи.
-------------------------------------------
Можно в моде заменить звуки на выстрелы пушек.
Внизу прикрепил архив.

С уважением к сообществу!

Vasya 23.06.2018 03:20

Предварительная фм для Лагг-3(4-ой серии).
Код:

[Aircraft]
  Type 1
  Crew 1
  Wingspan 9.8
  Length 8.81
  Seaplane 0
  Canard 0
  Jet 0
  JetHiV 0
[Mass]
  Empty 2680.0
  TakeOff 3346.0
  Oil 45.0
  Fuel 340.0
[Controls]
  CAileron 1
  CAileronTrim 0
  CElevator 1
  CElevatorTrim 1
  CRudder 1
  CRudderTrim 1
  CFlap 1
  CFlapPos 3
  CDiveBrake 0
  CInterceptor 0
  CEngine 1
  CVectoredThrust 0
  CUndercarriage 1
  CLockTailwheel 1
  CStabilizer 0
  CArrestorHook 0
  CWingFold 0
  OnlineCockpitDoor 0
  CCockpitDoor 1
  CockpitDoorPeriod 2.0
  CAileronThreshold 460.0
  CRudderThreshold 500.0
  CElevatorThreshold 420.0
  DefaultAileronTrim -0.012
  DefaultElevatorTrim -0.05
  DefaultRudderTrim -0.057
[Squares]
  Wing 17.51
  Aileron 1.32
  Flap 2.53
  Stabilizer 1.90
  Elevator 1.20
  Keel 0.70
  Rudder 1.10
  Wing_In 2.48
  Wing_Mid 3.225
  Wing_Out 2.93
  AirbrakeCxS 0.00
[Arm]
  Aileron 3.9
  Flap 1.6
  Stabilizer 5.25
  Keel 5.25
  Elevator 5.75
  Rudder 5.9
  Wing_In 1.0
  Wing_Mid 2.35
  Wing_Out 3.9
  Wing_V 1.5
  GCenter 0.10
  GCenterZ 0.00
  GC_AOA_Shift 0.45
  GC_Flaps_Shift 0.15
  GC_Gear_Shift -0.15
[Toughness]
  AroneL 50
  AroneR 50
  CF 300
  Engine1 50
  Engine2 50
  Engine3 50
  Engine4 50
  GearL2 200
  GearR2 200
  Keel1 50
  Keel2 50
  Nose 50
  Oil 20
  Rudder1 50
  Rudder2 50
  StabL 50
  StabR 50
  Tail1 80
  Tail2 80
  Turret1B 50
  Turret2B 50
  Turret3B 50
  Turret4B 50
  Turret5B 50
  Turret6B 50
  VatorL 50
  VatorR 50
  WingLIn 100
  WingLMid 80
  WingLOut 80
  WingRIn 100
  WingRMid 80
  WingROut 80
  Flap01 50
  Flap02 50
  Flap03 50
  Flap04 50
[Engine]
  Engine0Family M-100_Series_MOD_LAGG:LAGG
  Engine0SubModel M-105PA/LAGG-3EARLY/SERIYA-4
[Gear]
  H 1.827538
  Pitch 13.241
  SinkFactor 1000.0
  SpringsStiffness 0.8
[Params]
  CriticalAOA 21.00
  CriticalCy 01.70
  CxCurvature 00.80
  CxStraightness 00.20
  CriticalAOAFlap 18.00
  CriticalCyFlap 02.10
  SpinTailAlpha 17.00
  SpinCxLoss 0.05
  SpinCyLoss 0.02
  Vmin 165.0
  Vmax 550.0
  Vyfac 0.9
  Tfac 1.02
  Vmin 170.0
  Vmax 490.0
  VmaxAllowed 690.0
  VmaxH 572.0
  HofVmax 5000.0
  VminFLAPS 140.0
  VmaxFLAPS 235.0
  Vz_climb 15.0
  V_climb 270.0
  T_turn 23.0
  V_turn 340.0
  K_max 15.0
  Cy0_max 0.15
  FlapsMult 1.0
  FlapsAngSh 3.0
  ReferenceWeight -56.0
  G_class_coeff 18.5
  G_class 09.0
  Range 870.0
  CruiseSpeed 390.0
  SensYaw 0.39
  SensPitch 0.67
  SensRoll 0.34
[Polares]
  lineCyCoeff 0.094
  AOAMinCx_Shift 0.2
  Cy0_0 0.13
  AOACritH_0 19.0
  AOACritL_0 -15.0
  CyCritH_0 1.41
  CyCritL_0 -0.89
  CxMin_0 0.0215
  parabCxCoeff_0 4.3E-4
  Cy0_1 0.675
  AOACritH_1 17.0
  AOACritL_1 -26.0
  CyCritH_1 1.760134
  CyCritL_1 -0.87
  CxMin_1 0.111
  parabCxCoeff_1 5.9E-4
  parabAngle 6.0
  Decline 0.010
  maxDistAng 40.0
  draw_graphs 0
  mc3 -17.551,-9.8474,-2.4053,19.44,-11.492,-2.7464,1.6612,3.9875
  mc4 37.807,28.078,69.235,26.054,89.944,41.96,21.532,14.707
  mm 0.678,0.738,0.772,0.771,0.748,0.694,0.641,0.584
  mz 0.281,0.26,0.127,0.086,0.129,0.147,0.151,0.115
[SOUND]
  Engine Std

Двигатель одинаковый с Яковским.
Код:

[M-105PA/YAK-1EARLY]
  Extinguishers 3
  HorsePowers 1020
  BoostFactor 1.07844
  WEPBoostFactor 1.001
  cAfterburner 0
  AfterburnerType 10
  TowFactor 1.0
  Thrust 0
  MixerAltitude 3000
  RPMMin 500
  RPMNom 2600
  RPMMax 2600
  RPMMaxAllowed 3200
  Reductor 0.666
  PropDiameter 3.0  // Винт ВИШ-61П
  PropAnglerType 2
  PropAnglerSpeed 0.9
  PropAnglerMinParam 1731.0
  PropAnglerMaxParam 2600.0
  PropAnglerAfterburnerParam 2700.0
  PropPhiMin 20.0
  PropPhiMax 55.0
  PropAoA0 11.0
  PropMass 132.0 
  Voptimal 260.0
  CompressorType 1
  CompressorSteps 2
  CompressorPAt0 0.5
  CompressorRPMCurvature 3.0     
  CompressorPMax 1.29153
  CompressorAltitude0 2000.0 
  CompressorMultiplier0 1.0
  CompressorBaseMultiplier0 1.00
  CompressorAltitude1 4000.0 
  CompressorMultiplier1 0.95455
  CompressorBaseMultiplier1 1.00
  CompressorRPMP0 1500.0
  CompressorRPMPMax 2700.0
  CompressorMaxATARPM 1.23715
  CompressorSpeedManifold 0.6
  CompressorRPM0 450
  CompressorATA0 0.7
  DisP0x 2600
  DisP0y 2
  DisP1x 0
  DisP1y 135
  TESPEED 0.015
  TWATERMAXRPM 70
  TOILINMAXRPM 70
  TOILOUTMAXRPM 95
  MAXRPMTIME 300
  MINRPMTIME 999
  TWATERMAX 100
  TWATERMIN 50
  TOILMAX 112.7
  TOILMIN 40
  FuelConsumptionP0 = 0.340f
  FuelConsumptionP05 = 0.200f
  FuelConsumptionP1 = 0.240f
  FuelConsumptionPMAX = 0.260f


Vasya 23.06.2018 03:33

Подъёмная сила для крыла Лагга будет немного лучше, чем у Лавки и отрыв потока позже. Банально нет ковшиков, как у Лавки, которые дули прямо на центроплан. сдувая поток к законцовкам, а резкое сужение крыла только усугубляло дело.
Лагг - если не учитывать малую енерговооружонность - будет поманевреннее Лавки.
Это с успехом демонстрировали опытные лётчики на Сталинградском фронте, когда пошли в части облегчённые Лагги с двигателем ПФ.
Кабы Лаггу двигатель Аллисон с веслообразными лопастями - то это был бы достойный конкурент Мессеру Густаву-6.
Такие мысли.

tarakan67 23.06.2018 08:24

Цитата:

Сообщение от Vasya (Сообщение 179023)
Банально нет ковшиков, как у Лавки, которые дули прямо на центроплан. сдувая поток к законцовкам, а резкое сужение крыла только усугубляло дело.

Что подразумевается под "ковшиками"?

Vasya 25.06.2018 03:08

Вложений: 3
Цитата:

Сообщение от tarakan67 (Сообщение 179026)
Что подразумевается под "ковшиками"?

"Предполагаю" вот такой, как на картинке выделил.
http://forum.aviaskins.com/attachmen...8&d=1529885255
http://airwar.ru/image/idop/other/yak11/yak11-8.jpg
Ссылка:
https://top-journals.info/zhurnal-na...-maj-2018.html
Может. что подскажите по поводу ковшика/совочка у "Ла-7" на картинке.

andrey65 25.06.2018 04:52

На фото не Ла-7, а переделанный под него во Франции Як-11.
А ковшики - это совки для выхода охлаждающего воздуха.
Цитата:

Реальной проблемой являлось обеспечение охлаждения цилиндров двигателя. Обычно на моторах такого типа используются регулируемые юбки — на ЛаГГе установить такую юбку без существенной переделки не получалось никак. Заместитель Швецова Валединский В.А. предложил сделать для выпуска воздуха совки по бортам фюзеляжа. Это был выход, однако полностью решить проблему перегрева головок цилиндров, которые находились не в створе совков, так и не удалось.

Vasya 25.06.2018 05:12

Цитата:

Сообщение от andrey65 (Сообщение 179093)
На фото не Ла-7, а переделанный под него во Франции Як-11.
А ковшики - это совки для выхода охлаждающего воздуха.

Ага(с)...! ;)
А ребята с редакции "Наука и Техника" и не знают то. :lol:
Вот бяда! :cry:
П.С.
Такой троллинг мне Игоря загубили, блин.

andrey65 25.06.2018 05:44

Цитата:

Сообщение от Vasya (Сообщение 179094)
Ага(с)...! ;)
А ребята с редакции "Наука и Техника" и не знают то. :lol:
Вот бяда! :cry:
П.С.
Такой троллинг мне Игоря загубили, блин.

))) не сразу дошло)

Vasya 25.06.2018 08:23

Цитата:

Сообщение от andrey65 (Сообщение 179095)
))) не сразу дошло)

Это ничё... жить и дружить можно. :rolleyes:
Я бывает с ручника через сутки пробега снимаюсь. :lol:

tarakan67 25.06.2018 18:13

Думаю не настолько сильным был поток из этих "ковшиков", чтобы сдувать поток к законцовкам. Особенно на фоне мощной струи от воздушного винта. Потом "ковшики" расположены выше крыла и даже если из них что-то и дуло, то только увеличивало подъёмную силу крыла, создавая дополнительное разрежение над крылом.

Vasya 25.06.2018 22:21

Цитата:

Сообщение от tarakan67 (Сообщение 179117)
Думаю не настолько сильным был поток из этих "ковшиков", чтобы сдувать поток к законцовкам. Особенно на фоне мощной струи от воздушного винта. Потом "ковшики" расположены выше крыла и даже если из них что-то и дуло, то только увеличивало подъёмную силу крыла, создавая дополнительное разрежение над крылом.

Говорят, что нарушалось обтекание крыла и отрыв потока происходил раньше при маневрировании. Там и так профили крыла были критические.
Я найду в сети мнение специалистов и дам ссылку.

tarakan67 25.06.2018 22:26

Цитата:

Сообщение от Vasya (Сообщение 179123)
Говорят, что нарушалось обтекание крыла и отрыв потока происходил раньше при маневрировании. Там и так профили крыла были критические.
Я найду в сети мнение специалистов и дам ссылку.

А поток от воздушного винта не нарушал обтекание крыла и отрыв потока не происходил раньше?

Vasya 25.06.2018 23:24

Цитата:

Сообщение от tarakan67 (Сообщение 179124)
А поток от воздушного винта не нарушал обтекание крыла и отрыв потока не происходил раньше?

Винт дул вдоль самолёта - по моим наблюдениям в Ю-Тубе.
Вот тут я начал читать - даже интересно.
http://www.airpages.ru/cgi-bin/yabb/...1095674535/0#0

Vasya 26.06.2018 06:49

Цитата:

Сообщение от Mauser (Сообщение 179134)
:lol::lol::lol:

Патриотично, чё... "Вставай страна народная...":eek:
:rolleyes:

-OSF-Джо 26.06.2018 08:04

Цитата:

Сообщение от Mauser (Сообщение 179137)
...а шОш будет дальше я и представить баЮсь))))

Ещё и писал бы по русски, без этих самых малолетнедебильных кривляний, цены б тебе не было. ;)
А так... Вроде всё и по делу, а читать невозможно... :(

Извини, если что...

Vasya 26.06.2018 08:10

Цитата:

Сообщение от Mauser (Сообщение 179137)
оЙ...падаждите, дайте с под стола вылезьти да на карту глянуть...ах да, действительно, её уж как скоро будет 20лет-нет...nÖ
нет, ну я конечно всё понимаю и фантазировать пемпeрсным таки никто не запрещает (слава богу), нО жАлЯзЯкА та тут причом?! :eek:
её они уже тож оживили одухотворили, иль без виликахасамавазвиличиваниявиликих уж и в сартир никак не сходить? :D
910 +/- 2%кг vs. 934kg ну оОООчень много разница...я бы даже сказал между ними прямь беЭздна))))...и это еще та маласть из тамошних пампeрсаф))))
мндя...выделения спаржи таки там просматриваются даже закрытыми глазами))))), а шОш будет дальше я и представить баЮсь))))

На мову перекласти можна? :ups:
Бо ніц не втямлю цього казання. :DONT_KNOW:

-OSF-Джо 26.06.2018 12:07

Цитата:

Сообщение от Mauser (Сообщение 179140)
извени Джо, нО с чего Вы взяли, шО я должен быть русским, или на этом ф-ме разрешено писать только русским,
а может это у Вас заложено уже в стереотипном понимании, шО в чужом глазу соринку видим, а в своём бревна не замечаем?

Извените если шО...;)

На форуме разрешено использование любого языка. Если Вы не можете писать нормально на русском, пишите на родном или на том, коим владеете более-менее нормально. Как-нибудь Промтом переведу. Но коверкать язык не надо, если не можете на нём грамотно изъясняться.

А на счёт бревна... В зеркало посмотритесь. ;)

Vasya 26.06.2018 12:44

Вложений: 5
Цитата:

Сообщение от Mauser (Сообщение 179141)
ну во те на дела....а как же Вы сщитаете/записуете вес BMW u. АШ-82(М-82)...на глазок чтоли? :eek:

В Иле(игре) вес двигателя входит в вес планера - поэтому не записываем вообще никак. Выставляеться только общая развесовка.
----------------------------
А просил перевести текст ваш выше, потому как украинский для меня родной и такой "шарварок" слов на мове составить сложно.
Я - вообще - довольно строгого воспитания: моя мама родилась ещё в 1937 году и - соотвественно - стебаться в отношениях в их семье было не только ужасно стыдно, но и не согласовалось с честью, рода в том числе.
Я сегодня жене с утра рассказывал об отвественности перед предками рода., сказал, что хотелось бы так прожить, что бы мне не было стыдно перед родом. Кто там судить будет - не знаю: Один или Осарис, но всё же.
А если буду осмотрительным в словах и делах, то и девственницу :rolleyes: выдадут (их там много есть красивых/арийских) и шоколадкой угостят.
Вот такие надежды. :eek:

-OSF-Джо 26.06.2018 14:12

Цитата:

Сообщение от Mauser (Сообщение 179144)
Ув. Джо, с какого такого перепугу Вы решили, шО я вам чем-то обязан?

Кто говорит о каких-то обязанностях? Можете вещать хоть на суахили, это Ваше право. Я просто попросил не коверкать русский язык. Что в этом странного или оскорбительного лично для Вас? Или это слишком трудно? :DONT_KNOW:

Vasya 26.06.2018 15:07

Вложений: 1
Отстранившись от "шарварка",
предлагаю поправленный мод Лаггов, включены и "финские" типа.
Внизу архив.
Замечания приветствуются!
---------------------------------------
Проверял с модом 3До из Д-Ген-пака.
https://drive.google.com/file/d/1Yzu...ew?usp=sharing
Подарил мне наш участник Димас - ему отдельное БОЛЬШОЕ СПАСИБО!
Всем приятных полётов!
П.С.
В фм(выше выкладывал) изменения почти не вносились, за исключением сопромата фюзеляжа. Его(сопромат) пришлось немного снизить что бы Лагг летал по ттх близких к заводским Лаггам(не по ттх эталонов).
В модели серия70(фантазия) установлен двигатель М-107А, но со старым радиатором - будет у земли греться через 1.5-2 минуты.
ФМ Серия-29.
Код:

[Aircraft]
  Type 1
  Crew 1
  Wingspan 9.8
  Length 8.81
  Seaplane 0
  Canard 0
  Jet 0
  JetHiV 0
[Mass]
  Empty 2430.0
  TakeOff 3160.0
  Oil 45.0
  Fuel 340.0
[Controls]
  CAileron 1
  CAileronTrim 0
  CElevator 1
  CElevatorTrim 1
  CRudder 1
  CRudderTrim 1
  CFlap 1
  CFlapPos 3
  CDiveBrake 0
  CInterceptor 0
  CEngine 1
  CVectoredThrust 0
  CUndercarriage 1
  CLockTailwheel 1
  CStabilizer 0
  CArrestorHook 0
  CWingFold 0
  OnlineCockpitDoor 0
  CCockpitDoor 1
  CockpitDoorPeriod 2.0
  CAileronThreshold 460.0
  CRudderThreshold 500.0
  CElevatorThreshold 420.0
  DefaultAileronTrim -0.012
  DefaultElevatorTrim -0.05
  DefaultRudderTrim -0.0587
[Squares]
  Wing 17.51
  Aileron 1.32
  Flap 2.53
  Stabilizer 1.90
  Elevator 1.20
  Keel 0.70
  Rudder 1.10
  Wing_In 2.48
  Wing_Mid 3.225
  Wing_Out 2.93
  AirbrakeCxS 0.00
[Arm]
  Aileron 3.9
  Flap 1.6
  Stabilizer 5.25
  Keel 5.25
  Elevator 5.75
  Rudder 5.9
  Wing_In 1.0
  Wing_Mid 2.35
  Wing_Out 3.9
  Wing_V 1.5
  GCenter 0.10
  GCenterZ 0.00
  GC_AOA_Shift 0.45
  GC_Flaps_Shift 0.15
  GC_Gear_Shift -0.15
[Toughness]
  AroneL 50
  AroneR 50
  CF 300
  Engine1 50
  Engine2 50
  Engine3 50
  Engine4 50
  GearL2 200
  GearR2 200
  Keel1 50
  Keel2 50
  Nose 50
  Oil 20
  Rudder1 50
  Rudder2 50
  StabL 50
  StabR 50
  Tail1 80
  Tail2 80
  Turret1B 50
  Turret2B 50
  Turret3B 50
  Turret4B 50
  Turret5B 50
  Turret6B 50
  VatorL 50
  VatorR 50
  WingLIn 100
  WingLMid 80
  WingLOut 80
  WingRIn 100
  WingRMid 80
  WingROut 80
  Flap01 50
  Flap02 50
  Flap03 50
  Flap04 50
[Engine]
  Engine0Family M-100_Series_MOD_LAGG:LAGG
  Engine0SubModel M-105PF/LAGG-3EARLY/SERIYA-29
[Gear]
  H 1.827538
  Pitch 13.241
  SinkFactor 1000.0
  SpringsStiffness 0.8
[Params]
  CriticalAOA 21.00
  CriticalCy 01.70
  CxCurvature 00.80
  CxStraightness 00.20
  CriticalAOAFlap 18.00
  CriticalCyFlap 02.10
  SpinTailAlpha 17.00
  SpinCxLoss 0.05
  SpinCyLoss 0.02
  Vmin 165.0
  Vmax 550.0
  Vyfac 0.9
  Tfac 1.02
  Vmin 170.0
  Vmax 520.0
  VmaxAllowed 690.0
  VmaxH 590.0
  HofVmax 5000.0
  VminFLAPS 140.0
  VmaxFLAPS 235.0
  Vz_climb 15.0
  V_climb 270.0
  T_turn 23.0
  V_turn 340.0
  K_max 15.0
  Cy0_max 0.15
  FlapsMult 1.0
  FlapsAngSh 3.0
  ReferenceWeight -56.0
  G_class_coeff 18.5
  G_class 09.5
  Range 870.0
  CruiseSpeed 390.0
  SensYaw 0.39
  SensPitch 0.67
  SensRoll 0.34
[Polares]
  lineCyCoeff 0.094
  AOAMinCx_Shift 0.2
  Cy0_0 0.13
  AOACritH_0 19.0
  AOACritL_0 -15.0
  CyCritH_0 1.41
  CyCritL_0 -0.89
  CxMin_0 0.0182
  parabCxCoeff_0 4.3E-4
  Cy0_1 0.675
  AOACritH_1 17.0
  AOACritL_1 -26.0
  CyCritH_1 1.760134
  CyCritL_1 -0.87
  CxMin_1 0.09099
  parabCxCoeff_1 5.9E-4
  parabAngle 6.0
  Decline 0.010
  maxDistAng 40.0
  draw_graphs 0
  mc3 -17.551,-9.8474,-2.4053,19.44,-11.492,-2.7464,1.6612,3.9875
  mc4 37.807,28.078,69.235,26.054,89.944,41.96,21.532,14.707
  mm 0.678,0.738,0.772,0.771,0.748,0.694,0.641,0.584
  mz 0.281,0.26,0.127,0.086,0.129,0.147,0.151,0.115
[SOUND]
  Engine Std


Sita. 26.06.2018 19:01

Цитата:

Сообщение от -OSF-Джо (Сообщение 179156)
Кто говорит о каких-то обязанностях? Можете вещать хоть на суахили, это Ваше право. Я просто попросил не коверкать русский язык. Что в этом странного или оскорбительного лично для Вас? Или это слишком трудно? :DONT_KNOW:


Джо... я сам был уверен что Товарищ Маузер Олбанский язык использует и любит :D ... оказалось нет... по другой это причине... не бери близко к сердцу ...

Sita. 26.06.2018 19:31

вот тролина то :D

Vasya 27.06.2018 08:26

Цитата:

Сообщение от Mauser (Сообщение 179160)
К инфо: :rtfm:
кое-шО листал тут и вспомнил сапсем другое...по 109 длина...и так длина, начиная с F bis K = 9020mm (оригинал)! Это важно для илдвас, т-к с-т начинает вести себя более адекватно...ОМ туда влипил бог-весь-шО...
во всяком случае когда мы меняли его длину на оригинальную (не трогая еще CAX), тО с-т полител по другому, а когда правили и CAX, то стала сапсем другая машина...

Если вас не затруднит - прикрепите сюда документик точных размеров Мессеров. Я их выставлю в фм моего мода.
Зарание БЛАГОДАРЮ!

Vasya 27.06.2018 08:58

Цитата:

Сообщение от Mauser (Сообщение 179178)
хммм...т.е. Вы мне хотите сщас сказать, шО не доверяете мне на слово...я так правильно понял?:rolleyes:

Я всегда доверяю серьёзным людям, которые ведут конструктивный диалог.
Не так ли поступали офицеры лучшей армии в мире?

Vasya 27.06.2018 09:04

Вложений: 7
Исправил некоторые циферки в фм моих модов Мессеров
!!!_000_UP_RealFWs_4.12.2+
!!!_000_COD_FOR_BF-109G-6+
которые работают с САСовским модом
00_BF109_Ultimate_Pack_v4
Исправления:
длинна и размах крыльев в моделях Фридрих-Густав-Курфюрст выставлены по документу - картинки внизу.
---------------------------------------
Заодно Лаггам чуть подправил триммирование рулей(ещё будут донастраиваться после дальнейших тестов на управляемость).

Vasya 27.06.2018 10:29

Цитата:

Сообщение от Mauser (Сообщение 179181)
Тогда в чом проблема? Поймите меня прально. Дело в том, шО это открытый ф-м и могут читать все. А т-к существуют еще "на той стороне" (не будем тыкать пальцем))) некие гопники,
тО облехчать им жизнь предостовляй информацию бесплатно, шОб они и далее обворовывали Users (комюнити авиасимов) я бОлее не намерен. Я уже Вам писал, шО если в чом сомневаетесь
(обсолютно и лигитимное ваше Право(!)), тО можете это посмотреть у нас на ф-ме. Потому я смогу лиш показывать тО, шО уже давно публиковано. ;)

И еще не большая инфа по Stabi/штаби (стабилизатор) на 190х...так-же известен, как Höhenflosse.
В существующей общеизвестно таблице установки Steuerungstabelle bzw. Ruderausschläge была внесена ошибка в пичати, т.е. даны данные +4°, -1° = не верно. Верно = +5°, -3° (!) Касается серии A, F, G(!)

p.s.
Те, вами выставленые доки по 109 выше, можете выкинуть и забыть! Нет, не шучу.

Пока у меня других документов нетути - шо есть, то черпал на немецком ресурсе.
Тут:
http://www.deutscheluftwaffe.com/arc.../Dokumente.htm
Вы отказались предоставить документы с верными размерами.
Хотя бы скрин с кусочком документа.
Я так понял, что длинна Мессершмита есть секретная информация.
На нет и суда нет.
Пока пользуюсь теми документами, которые есть в открытом доступе.
Ничем не хотел обидеть!

Vasya 27.06.2018 12:08

Цитата:

Сообщение от Mauser (Сообщение 179183)
Вам уже всё пояснили и сказали почему-нет, и как было. Ваше право слушать, верить, или не верить. Этот выбор делать Вам. Потому понимайте это так, как это написано, а не так, как Вы себе сами это представляете.
Я спорить не буду т-к; во превых-я это не умею и не знаю шО это такое...это не наше слово и у нас его нет, как и понятия эго. во вторых- смотрите во первых...и так до понимания что я не Вы и минталитет у нас разный.
Я лиш смогу помоч понять, если у опонента есть желание слушать и вникать...не бОлее! ;)

по поводу длины на 109х уже много обсуждалось и говорилось. Если Вы всёже не в курсе то: длина данная в HB есть не совсем точное число, т-к замер делался по старому типу - тип замера Emil - до середины Propellerhaube.
Это можно найти и в более точной документации... и да, она есть в инэте...и у нас на DLW...так шО будте внимательны и всё увидете сами.

Спасибо вам за внимание ко мне!
Если можно - дайте пожалуйста (!!!) ссылку на DLW, что бы я мог поискать нужную мне документацию.

Vasya 27.06.2018 12:12

Цитата:

Сообщение от Димон (Сообщение 179184)
pic

Супер! :good:
Скоро будет в доступе. :ok:

Vasya 28.06.2018 16:23

Вложений: 1
Цитата:

Сообщение от Mauser (Сообщение 179189)
хммм...но она же у Вас есть? пару постами выше Вы её давали...:rolleyes:
ОК...я так пологаю, шО многим затруднительно пользоватся нашим архивом, а потому поясню:

выходите на зайтэ .com (не .de(!)) - жмакаете на <Archiv>, далее - Alphabet - выбераете -Buchstabe- (к прим. -М- (Messerschmitt)), т.е. по заглавной букве того, шО ищите - далее жмакаете на неё и
в левом углу видете всё, шО на букву -М- , ну а далее находите Messerschmitt A.G. и в правой стороне открывается окно с всей имеющейся документацией...
там находите к прим. и это: http://www.deutscheluftwaffe.com/arc...Mai%201941.pdf
на стр. 262(PDF) будет изображение - Anlage -15, вот её и изучайте внимательно.

У меня этот документ был в личном архиве и там указан такой же размер как я приводил на картинке выше в моём посте.
То что не пощитан колпачёк закрывающий в коке винта втулку - то невелика беда. Разница в 6 см. и 20 милиметров. В симуляторе это не отразится на лётные характеристики. Тем более, что в других документах/книжках(handbuch) указываеться именно Length 8.94.
Вы изолили выразиться, что их нужно выкинуть. Ну что ж - это ваше личное мнение.
Я привык доверять документам - и немецким и западных созников(с известными поправками на "очепятки").
Большое СПАСИБО (!!!) вам за внимание ко мне и моим изысканиям в симулировании полёта самолётов в виртуальном мире.
-------------------------------------------
Итересно - какие размеры для Курфюрста-4 прописаны в "самом точном" симуляторе ДКС?
Может кто посмотрит - там код должен быть открытым.

Vasya 29.06.2018 20:31

Расскажу нашим участникам и захожим посетителям немного о мододелании.
Сел за комп и думаю себе: нужно поставить новую карту Белоруссии и потестить там Мессер с новыми крыльями. Класс там несложный и ваяеться всё неспеша за пол-часа.
Ага... не тут то было.
Залез в папку. где складываю папки с 3До для работы и зацепился взглядом за Ки-94. О! Вспомнил - я ему фм правил(чуть-чуть) года два назад. Думаю: щас быстренько перевскрою классы, закомпилю и сделаю фм за часок(знания уже типа позволяют).
Вскрыл я основной класс того Ки-94 и начал офуевать от "поэзии скульптора". Сразу зацепился взглядом за корявость:
Код:

public abstract class KI_94_V2 extends Scheme1
    implements TypeFighter, TypeBNZFighter, TypeStormovik
{

    public KI_94_V2()
    {
        Class class1 = com.maddox.il2.objects.air.KI_94_V2.class;
        new NetAircraft.SPAWN(class1);
        Property.set(class1, "originCountry", PaintScheme.countryItaly);
    }

Какого "херуса рамазотти" самоль штурмовик, да ещё и итальянский?
Для штурмовика свой код бомбометания нужно вписывать. Где он?
И Япония уже примыкает к Италии? Не, ну, оно канешна страны оси, но однако... просто в итальянских миссиях в патчах ниже 4.13.4 будет краш системы.
Дальше 4-5 разделов сложного кода, похоже выдранного из класса Лавок.
Но потом економия и ещё раз економия - коды ужаты - как буд то ваятель очень спешил и напихал что было под рукой.
Хотя есть же похожий крафт - Ки-84., есть и Ки-100. В них подробно и просто расписаны повреждения и работа агрегатов. Можно было при ваянии 3До просто одинаково(подобно как в Ки-84) назвать все меши и коллизии. Добавить чего нибуть вкусненького и дописать разделы кода из Ки-100 - например.
В общем: сидел я и пересобирал часа ТРИ основной класс, переставлял скобки и выправлял "скачущий в неизвесность" ужатый код.
Конечно - это всё получилось не идеально., в самолёт - в 3До - нужно добавлять и масло-бак и топливную систему и гидравлику и много ещё чего. Только после нормальной сборки 3До с коллизиями можно потихоньку выписать всё в классе и это будет весьма гут.
На скорую руку делать самолёты невозможно. Иначе это будут летающие брёвна.
Извините за откровенность. :ups:
Правленный класс Ки-94 до состояния "може буты" ниже в посте.

Vasya 29.06.2018 20:34

Код:

package com.maddox.il2.objects.air;

import com.maddox.JGP.Point3d;
import com.maddox.JGP.Vector3d;
import com.maddox.il2.ai.*;
import com.maddox.il2.engine.*;
import com.maddox.il2.engine.Actor;
import com.maddox.il2.engine.HierMesh;
import com.maddox.il2.fm.*;
import com.maddox.il2.game.Main3D;
import com.maddox.rts.Property;

public abstract class KI_94X extends Scheme1
    implements TypeFighter, TypeBNZFighter
{
   
    public KI_94X()
    {
        flapps = 0.0F;
    }
 
    public float getEyeLevelCorrection()
    {
        return 0.05F;
    }

    public void doMurderPilot(int i)
    {
        switch(i)
        {
        case 0: // '\0'
            hierMesh().chunkVisible("Pilot1_D0", false);
            hierMesh().chunkVisible("Head1_D0", false);
            hierMesh().chunkVisible("HMask1_D0", false);
            hierMesh().chunkVisible("Pilot1_D1", true);
            break;
        }
    }

    protected boolean cutFM(int i, int j, Actor actor)
    {
        if(i == 19)
            FM.Gears.hitCentreGear();
        return super.cutFM(i, j, actor);
    }

    public void moveCockpitDoor(float f)
    {
        resetYPRmodifier();
        Aircraft.xyz[2] = Aircraft.cvt(f, 0.01F, 0.99F, 0.0F, 0.005F);
        Aircraft.xyz[1] = Aircraft.cvt(f, 0.01F, 0.99F, 0.0F, 0.635F);
        Aircraft.ypr[2] = Aircraft.cvt(f, 0.01F, 0.99F, 0.0F, 1.0F);
        hierMesh().chunkSetLocate("Blister1_D0", Aircraft.xyz, Aircraft.ypr);
        if(Config.isUSE_RENDER())
        {
            if(Main3D.cur3D().cockpits != null && Main3D.cur3D().cockpits[0] != null)
                Main3D.cur3D().cockpits[0].onDoorMoved(f);
            setDoorSnd(f);
        }
    }

    public void update(float f)
    {
        float f1 = FM.EI.engines[0].getControlRadiator();
        if(Math.abs(flapps - f1) > 0.01F)
        {
            flapps = f1;
            for(int i = 1; i < 13; i++)
            {
                String s = "Water" + i + "_D0";
                hierMesh().chunkSetAngles(s, 0.0F, -32F * f1, 0.0F);
            }

        }
        super.update(f);
    }

    public void rareAction(float f, boolean flag)
    {
        super.rareAction(f, flag);
        if(FM.getAltitude() < 3000F)
            hierMesh().chunkVisible("hmask1_D0", false);
        else
            hierMesh().chunkVisible("hmask1_D0", hierMesh().isChunkVisible("Pilot1_D0"));
        if(flag)
        {
            if(FM.AS.astateEngineStates[0] > 3 && World.Rnd().nextFloat() < 0.39F)
                FM.AS.hitTank(this, 0, 1);
            if(FM.AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.1F)
                nextDMGLevel(FM.AS.astateEffectChunks[0] + "0", 0, this);
            if(FM.AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.1F)
                nextDMGLevel(FM.AS.astateEffectChunks[1] + "0", 0, this);
            if(FM.AS.astateTankStates[2] > 4 && World.Rnd().nextFloat() < 0.1F)
                nextDMGLevel(FM.AS.astateEffectChunks[2] + "0", 0, this);
            if(FM.AS.astateTankStates[3] > 4 && World.Rnd().nextFloat() < 0.1F)
                nextDMGLevel(FM.AS.astateEffectChunks[3] + "0", 0, this);
        }
    }
   
    public static void moveGear_old(HierMesh hiermesh, float f, float f1, float f2)
    {
        hiermesh.chunkSetAngles("GearL2_D0", 0.0F, Aircraft.cvt(f, 0.18F, 0.99F, 0.0F, 90F), 0.0F);
        hiermesh.chunkSetAngles("GearL4_D0", 0.0F, Aircraft.cvt(f, 0.02F, 0.2F, 0.0F, 90F), 0.0F);
        hiermesh.chunkSetAngles("Gearl6_D0", 0.0F, Aircraft.cvt(f, 0.18F, 0.99F, 0.0F, -30F), 0.0F);
        Aircraft.xyz[0] = Aircraft.xyz[1] = Aircraft.xyz[2] = Aircraft.ypr[0] = Aircraft.ypr[1] = Aircraft.ypr[2] = 0.0F;
        Aircraft.xyz[1] = Aircraft.cvt(f, 0.3F, 0.99F, 0.0F, 0.45F);
        hiermesh.chunkSetLocate("Gearl9_D0", Aircraft.xyz, Aircraft.ypr);
        hiermesh.chunkSetAngles("GearR2_D0", 0.0F, Aircraft.cvt(f1, 0.18F, 0.99F, 0.0F, 90F), 0.0F);
        hiermesh.chunkSetAngles("GearR4_D0", 0.0F, Aircraft.cvt(f1, 0.02F, 0.2F, 0.0F, 90F), 0.0F);
        hiermesh.chunkSetAngles("GearR6_D0", 0.0F, Aircraft.cvt(f1, 0.18F, 0.99F, 0.0F, 30F), 0.0F);
        Aircraft.xyz[0] = Aircraft.xyz[1] = Aircraft.xyz[2] = Aircraft.ypr[0] = Aircraft.ypr[1] = Aircraft.ypr[2] = 0.0F;
        Aircraft.xyz[1] = Aircraft.cvt(f1, 0.3F, 0.99F, 0.0F, 0.45F);
        hiermesh.chunkSetLocate("GearR9_D0", Aircraft.xyz, Aircraft.ypr);
        hiermesh.chunkSetAngles("GearC2_D0", 0.0F, Aircraft.cvt(f2, 0.11F, 0.67F, 0.0F, -70F), 0.0F);
        hiermesh.chunkSetAngles("GearC3L_D0", 0.0F, Aircraft.cvt(f2, 0.0F, 0.15F, 0.0F, 80F), 0.0F);
        hiermesh.chunkSetAngles("GearC3R_D0", 0.0F, Aircraft.cvt(f2, 0.0F, 0.15F, 0.0F, -80F), 0.0F);
    }

    protected void moveGear_old(float f, float f1, float f2)
    {
        moveGear(hierMesh(), f, f1, f2);
    }

    public static void moveGear(HierMesh hiermesh, float f, float f1, float f2, boolean flag)
    {
        hiermesh.chunkSetAngles("GearL2_D0", 0.0F, Aircraft.cvt(f, 0.18F, 0.89F, 0.0F, 90F), 0.0F);
        hiermesh.chunkSetAngles("GearL4_D0", 0.0F, Aircraft.cvt(f, 0.02F, 0.2F, 0.0F, 90F) + Aircraft.cvt(f, 0.6F, 0.79F, 0.0F, -90F), 0.0F);
        hiermesh.chunkSetAngles("Gearl6_D0", 0.0F, Aircraft.cvt(f, 0.18F, 0.89F, 0.0F, -30F), 0.0F);
        Aircraft.xyz[0] = Aircraft.xyz[1] = Aircraft.xyz[2] = Aircraft.ypr[0] = Aircraft.ypr[1] = Aircraft.ypr[2] = 0.0F;
        Aircraft.xyz[1] = Aircraft.cvt(f, 0.3F, 0.99F, 0.0F, 0.45F);
        hiermesh.chunkSetLocate("Gearl9_D0", Aircraft.xyz, Aircraft.ypr);
        hiermesh.chunkSetAngles("GearR2_D0", 0.0F, Aircraft.cvt(f1, 0.28F, 0.99F, 0.0F, 90F), 0.0F);
        hiermesh.chunkSetAngles("GearR4_D0", 0.0F, Aircraft.cvt(f1, 0.12F, 0.3F, 0.0F, 90F) + Aircraft.cvt(f, 0.7F, 0.89F, 0.0F, -90F), 0.0F);
        hiermesh.chunkSetAngles("GearR6_D0", 0.0F, Aircraft.cvt(f1, 0.28F, 0.99F, 0.0F, 30F), 0.0F);
        Aircraft.xyz[0] = Aircraft.xyz[1] = Aircraft.xyz[2] = Aircraft.ypr[0] = Aircraft.ypr[1] = Aircraft.ypr[2] = 0.0F;
        Aircraft.xyz[1] = Aircraft.cvt(f1, 0.3F, 0.99F, 0.0F, 0.45F);
        hiermesh.chunkSetLocate("GearR9_D0", Aircraft.xyz, Aircraft.ypr);
        Aircraft.xyz[0] = Aircraft.xyz[2] = Aircraft.ypr[0] = Aircraft.ypr[1] = Aircraft.ypr[2] = 0.0F;
        float f3 = -0.1F;
        Aircraft.xyz[1] = Aircraft.cvt(f, 0.18F, 0.35F, 0.0F, f3) - Aircraft.cvt(f, 0.38F, 0.5F, 0.0F, f3);
        hiermesh.chunkSetLocate("GearL8_D0", Aircraft.xyz, Aircraft.ypr);
        Aircraft.xyz[1] = Aircraft.cvt(f1, 0.28F, 0.45F, 0.0F, f3) - Aircraft.cvt(f1, 0.48F, 0.6F, 0.0F, f3);
        hiermesh.chunkSetLocate("GearR8_D0", Aircraft.xyz, Aircraft.ypr);
        if(flag)
        {
            hiermesh.chunkSetAngles("GearC2_D0", 0.0F, Aircraft.cvt(f2, 0.63F, 0.99F, 0.0F, -70F), 0.0F);
            hiermesh.chunkSetAngles("GearC3L_D0", 0.0F, Aircraft.cvt(f2, 0.52F, 0.67F, 0.0F, 80F), 0.0F);
            hiermesh.chunkSetAngles("GearC3R_D0", 0.0F, Aircraft.cvt(f2, 0.52F, 0.67F, 0.0F, -80F), 0.0F);
        } else
        {
            hiermesh.chunkSetAngles("GearC2_D0", 0.0F, Aircraft.cvt(f2, 0.11F, 0.47F, 0.0F, -70F), 0.0F);
            hiermesh.chunkSetAngles("GearC3L_D0", 0.0F, Aircraft.cvt(f2, 0.0F, 0.15F, 0.0F, 80F), 0.0F);
            hiermesh.chunkSetAngles("GearC3R_D0", 0.0F, Aircraft.cvt(f2, 0.0F, 0.15F, 0.0F, -80F), 0.0F);
        }
    }

    public static void moveGear(HierMesh hiermesh, float f, float f1, float f2)
    {
        moveGear(hiermesh, f, f1, f2, true);
    }

    protected void moveGear(float f, float f1, float f2)
    {
        moveGear(hierMesh(), f, f1, f2, FM.CT.GearControl > 0.5F);
    }

    public static void moveGear(HierMesh hiermesh, float f, boolean flag)
    {
        moveGear(hiermesh, f, f, f, flag);
    }

    public static void moveGear(HierMesh hiermesh, float f)
    {
        moveGear(hiermesh, f, f, f, true);
    }

    protected void moveGear(float f)
    {
        moveGear(hierMesh(), f, FM.CT.GearControl > 0.5F);
    }

    public void moveWheelSink()
    {
        resetYPRmodifier();
        Aircraft.xyz[1] = Aircraft.cvt(FM.Gears.gWheelSinking[0], 0.0F, 0.2085F, 0.0F, -0.2085F);
        hierMesh().chunkSetLocate("GearL8_D0", Aircraft.xyz, Aircraft.ypr);
        Aircraft.xyz[1] = Aircraft.cvt(FM.Gears.gWheelSinking[1], 0.0F, 0.2085F, 0.0F, -0.2085F);
        hierMesh().chunkSetLocate("GearR8_D0", Aircraft.xyz, Aircraft.ypr);
    }

    protected void moveFlap(float f)
    {
        if(thisWeaponsName.equalsIgnoreCase("2x250kg") && FM.CT.Weapons[3] != null && FM.CT.Weapons[3][0] != null && FM.CT.Weapons[3][FM.CT.Weapons[3].length - 1].haveBullets() && f > 0.33F)
        {
            FM.CT.forceFlaps(0.33F);
            FM.CT.FlapsControl = 0.33F;
            f = 0.33F;
        }
        resetYPRmodifier();
        Aircraft.xyz[0] = Aircraft.cvt(f, 0.0F, 0.2F, 0.0F, 0.45F);
        Aircraft.xyz[2] = Aircraft.cvt(f, 0.1F, 0.15F, 0.0F, -0.014F) + Aircraft.cvt(f, 0.2F, 1.0F, 0.0F, 0.014F);
        Aircraft.ypr[1] = Aircraft.cvt(f, 0.0F, 0.2F, 0.0F, -5F) + Aircraft.cvt(f, 0.2F, 0.33F, 0.0F, -15F) + Aircraft.cvt(f, 0.33F, 1.0F, 0.0F, -35F);
        hierMesh().chunkSetLocate("FlapInL_D0", Aircraft.xyz, Aircraft.ypr);
        hierMesh().chunkSetLocate("FlapInR_D0", Aircraft.xyz, Aircraft.ypr);
        hierMesh().chunkSetLocate("FlapOutL_D0", Aircraft.xyz, Aircraft.ypr);
        hierMesh().chunkSetLocate("FlapOutR_D0", Aircraft.xyz, Aircraft.ypr);
    }

    protected void setControlDamage(Shot shot, int i)
    {
        if(World.Rnd().nextFloat() < 0.01F && getEnergyPastArmor(4F, shot) > 0.01F)
            FM.AS.setControlsDamage(shot.initiator, i);
    }


Vasya 29.06.2018 20:35

Код:

protected void moveAileron(float f)
    {
        float f1 = -(f * 30F);
        hierMesh().chunkSetAngles("AroneL_D0", 0.0F, f1, 0.0F);
        f1 = -(f * 30F);
        hierMesh().chunkSetAngles("AroneR_D0", 0.0F, f1, 0.0F);
    }

    protected void moveRudder(float f)
    {
        hierMesh().chunkSetAngles("Rudder1_D0", 0.0F, -31F * f, 0.0F);
    }

    protected void moveElevator(float f)
    {
        if(f < 0.0F)
        {
            hierMesh().chunkSetAngles("VatorL_D0", 0.0F, -20F * f, 0.0F);
            hierMesh().chunkSetAngles("VatorR_D0", 0.0F, -20F * f, 0.0F);
        } else
        {
            hierMesh().chunkSetAngles("VatorL_D0", 0.0F, -30F * f, 0.0F);
            hierMesh().chunkSetAngles("VatorR_D0", 0.0F, -30F * f, 0.0F);
        }
    }

    protected void hitBone(String s, Shot shot, Point3d point3d)
    {
        if(s.startsWith("xx"))
        {
            if(s.startsWith("xxarmor"))
            {
                if(s.startsWith("xxarmorp"))
                {
                    int i = s.charAt(8) - 48;
                    switch(i)
                    {
                    case 1: // '\001'
                        getEnergyPastArmor(22.760000228881836D / (Math.abs(Aircraft.v1.x) + 9.9999997473787516E-005D), shot);
                        if(shot.power <= 0.0F)
                            doRicochetBack(shot);
                        break;

                    case 3: // '\003'
                        getEnergyPastArmor(9.366F, shot);
                        break;

                    case 5: // '\005'
                        getEnergyPastArmor(12.699999809265137D / (Math.abs(Aircraft.v1.x) + 9.9999997473787516E-005D), shot);
                        break;
                    }
                return;
            }
            if(s.startsWith("xxcontrols"))
            {
                int j = s.charAt(10) - 48;
                switch(j)
                {
                case 1: // '\001'
                case 2: // '\002'
                    if(getEnergyPastArmor(0.28F / ((float)Math.sqrt(Aircraft.v1.y * Aircraft.v1.y + Aircraft.v1.z * Aircraft.v1.z) + 0.0001F), shot) > 0.0F)
                    {
                        if(World.Rnd().nextFloat() < 0.05F)
                            FM.AS.setControlsDamage(shot.initiator, 1);
                        if(World.Rnd().nextFloat() < 0.75F)
                            FM.AS.setControlsDamage(shot.initiator, 2);
                    }
                    break;

                case 3: // '\003'
                    if(getEnergyPastArmor(3.6F, shot) > 0.0F)
                    {
                        FM.AS.setControlsDamage(shot.initiator, 2);
                        FM.AS.setControlsDamage(shot.initiator, 1);
                        FM.AS.setControlsDamage(shot.initiator, 0);
                    }
                    break;

                case 4: // '\004'
                    if(getEnergyPastArmor(0.22F, shot) > 0.0F)
                    {
                        FM.AS.setCockpitState(shot.initiator, FM.AS.astateCockpitState | 8);
                        FM.AS.setEngineSpecificDamage(shot.initiator, 0, 1);
                        FM.AS.setEngineSpecificDamage(shot.initiator, 0, 6);
                    }
                    break;

                case 5: // '\005'
                case 7: // '\007'
                    if(getEnergyPastArmor(0.125F, shot) > 0.0F)
                        FM.AS.setControlsDamage(shot.initiator, 0);
                    break;

                case 6: // '\006'
                case 8: // '\b'
                    if(getEnergyPastArmor(4D / (Math.abs(Aircraft.v1.x) + 9.9999997473787516E-005D), shot) > 0.0F && World.Rnd().nextFloat() < 0.5F)
                        FM.AS.setControlsDamage(shot.initiator, 0);
                    break;
                }
                return;
            }           
            if(s.startsWith("xxeng"))
                {
                   
                    if(s.endsWith("case") || s.endsWith("gear"))
                    { 
                        if((s.endsWith("prop") || s.endsWith("pipe")) && getEnergyPastArmor(0.2F, shot) > 0.0F && World.Rnd().nextFloat() < 0.5F)
                            FM.EI.engines[0].setKillPropAngleDevice(shot.initiator);
                        if(getEnergyPastArmor(0.1F, shot) > 0.0F)
                        {
                            if(World.Rnd().nextFloat() < shot.power / 140000F)
                            {
                                FM.AS.setEngineStuck(shot.initiator, 0);
                                debugprintln(this, "*** Engine Crank Case Hit - Engine Stucks..");
                            }
                            if(World.Rnd().nextFloat() < shot.power / 85000F)
                            {
                                FM.AS.hitEngine(shot.initiator, 0, 2);
                                debugprintln(this, "*** Engine Crank Case Hit - Engine Damaged..");
                            }
                    } else
                    if(World.Rnd().nextFloat() < 0.01F)
                    {
                        FM.EI.engines[0].setCyliderKnockOut(shot.initiator, 1);
                    } else
                    {
                        FM.EI.engines[0].setReadyness(shot.initiator, FM.EI.engines[0].getReadyness() - 0.002F);
                        debugprintln(this, "*** Engine Crank Case Hit - Readyness Reduced to " + FM.EI.engines[0].getReadyness() + "..");
                    }
                    getEnergyPastArmor(14F, shot);
                }
                if(s.endsWith("cyl1") || s.endsWith("cyl2"))
                    if(getEnergyPastArmor(5.85F, shot) > 0.0F && World.Rnd().nextFloat() < FM.EI.engines[0].getCylindersRatio() * 0.75F)
                    {
                        FM.EI.engines[0].setCyliderKnockOut(shot.initiator, World.Rnd().nextInt(1, (int)(shot.power / 19000F)));
                        debugprintln(this, "*** Engine Cylinders Hit, " + FM.EI.engines[0].getCylindersOperable() + "/" + FM.EI.engines[0].getCylinders() + " Left..");
                        if(World.Rnd().nextFloat() < shot.power / 48000F)
                        {
                            FM.AS.hitEngine(shot.initiator, 0, 2);
                            debugprintln(this, "*** Engine Cylinders Hit - Engine Fires..");
                        }
                    }
                    getEnergyPastArmor(25F, shot);
                } else
                if(s.endsWith("supc") && getEnergyPastArmor(0.1F, shot) > 0.0F && World.Rnd().nextFloat() < 0.89F)
                {
                    ((FlightModelMain) (super.FM)).EI.engines[0].setKillCompressor(shot.initiator);
                    Aircraft.debugprintln(this, "*** Engine Supercharger Out..");
                }                                                     
                if(s.startsWith("xxeng1oil"))
                {
                    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("xxtank"))
            {
                int k = s.charAt(6) - 49;
                if(getEnergyPastArmor(0.12F, shot) > 0.0F && World.Rnd().nextFloat() < 0.45F)
                {
                    if(FM.AS.astateTankStates[k] == 0)
                    {
                        debuggunnery("Fuel Tank (" + k + "): Pierced..");
                        FM.AS.hitTank(shot.initiator, k, 1);
                        FM.AS.doSetTankState(shot.initiator, k, 1);
                    }
                    if(FM.AS.astateTankStates[k] == 1)
                    {
                        debuggunnery("Fuel Tank (" + k + "): Pierced..");
                        FM.AS.hitTank(shot.initiator, k, 1);
                        FM.AS.doSetTankState(shot.initiator, k, 2);
                    }
                    if(World.Rnd().nextFloat() < 0.01F || shot.powerType == 3 && World.Rnd().nextFloat() < 0.4F)
                    {
                        FM.AS.hitTank(shot.initiator, k, 4);
                        debuggunnery("Fuel Tank (" + k + "): Hit..");
                    }
                }
                return;
            }


Vasya 29.06.2018 20:38

Код:

if(s.startsWith("xxmgun"))
            {
                if(s.endsWith("01"))
                    FM.AS.setJamBullets(0, 0);
                if(s.endsWith("02"))
                    FM.AS.setJamBullets(1, 0);
                    getEnergyPastArmor(World.Rnd().nextFloat(0.5F, 15.6F), shot);
                }
                return;
            }
            if(s.startsWith("xxcannon"))
            {
                if(s.endsWith("02"))
                    FM.AS.setJamBullets(3, 0);
                if(s.endsWith("03"))
                    FM.AS.setJamBullets(4, 0);
                    getEnergyPastArmor(World.Rnd().nextFloat(0.5F, 15.6F), shot);
                }
                return;
            }
            if(s.startsWith("xxlock"))
            {
                debuggunnery("Lock Construction: Hit..");
                if(s.startsWith("xxlockr") && getEnergyPastArmor(5.5F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
                {
                    debuggunnery("Lock Construction: Rudder1 Lock Shot Off..");
                    nextDMGLevels(3, 2, "Rudder1_D" + chunkDamageVisible("Rudder1"), shot.initiator);
                }
                if(s.startsWith("xxlockvl") && getEnergyPastArmor(5.5F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
                {
                    debuggunnery("Lock Construction: VatorL Lock Shot Off..");
                    nextDMGLevels(3, 2, "VatorL_D" + chunkDamageVisible("VatorL"), shot.initiator);
                }
                if(s.startsWith("xxlockvr") && getEnergyPastArmor(5.5F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
                {
                    debuggunnery("Lock Construction: VatorR Lock Shot Off..");
                    nextDMGLevels(3, 2, "VatorR_D" + chunkDamageVisible("VatorR"), shot.initiator);
                }
                if(s.startsWith("xxlockal") && getEnergyPastArmor(5.5F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
                {
                    debuggunnery("Lock Construction: AroneL Lock Shot Off..");
                    nextDMGLevels(3, 2, "AroneL_D" + chunkDamageVisible("AroneL"), shot.initiator);
                }
                if(s.startsWith("xxlockar") && getEnergyPastArmor(5.5F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
                {
                    debuggunnery("Lock Construction: AroneR Lock Shot Off..");
                    nextDMGLevels(3, 2, "AroneR_D" + chunkDamageVisible("AroneR"), shot.initiator);
                }
                if(s.startsWith("xxlockf"))
                    getEnergyPastArmor(5.5F * World.Rnd().nextFloat(1.0F, 3F), shot);
                return;
            }
            if(s.startsWith("xxspar"))
            {
                debugprintln(this, "*** Spar Construction: Hit..");
                if((s.endsWith("li1") || s.endsWith("li2")) && (double)World.Rnd().nextFloat() < 1.0D - 0.92000001668930054D * Math.abs(v1.x) && chunkDamageVisible("WingLIn") > 2 && getEnergyPastArmor(2.5F * World.Rnd().nextFloat(1.0F, 1.2F), shot) > 0.0F)
                {
                    debugprintln(this, "*** WingLIn Spars Damaged..");
                    nextDMGLevels(1, 2, "WingLIn_D3", shot.initiator);
                }
                if((s.endsWith("ri1") || s.endsWith("ri2")) && (double)World.Rnd().nextFloat() < 1.0D - 0.92000001668930054D * Math.abs(v1.x) && chunkDamageVisible("WingRIn") > 2 && getEnergyPastArmor(2.5F * World.Rnd().nextFloat(1.0F, 1.2F), shot) > 0.0F)
                {
                    debugprintln(this, "*** WingRIn Spars Damaged..");
                    nextDMGLevels(1, 2, "WingRIn_D3", shot.initiator);
                }
                if((s.endsWith("lm1") || s.endsWith("lm2")) && (double)World.Rnd().nextFloat() < 1.0D - 0.92000001668930054D * Math.abs(v1.x) && chunkDamageVisible("WingLMid") > 2 && getEnergyPastArmor(2.5F * World.Rnd().nextFloat(1.0F, 1.2F), shot) > 0.0F)
                {
                    debugprintln(this, "*** WingLMid Spars Damaged..");
                    nextDMGLevels(1, 2, "WingLMid_D3", shot.initiator);
                }
                if((s.endsWith("rm1") || s.endsWith("rm2")) && (double)World.Rnd().nextFloat() < 1.0D - 0.92000001668930054D * Math.abs(v1.x) && chunkDamageVisible("WingRMid") > 2 && getEnergyPastArmor(2.5F * World.Rnd().nextFloat(1.0F, 1.2F), shot) > 0.0F)
                {
                    debugprintln(this, "*** WingRMid Spars Damaged..");
                    nextDMGLevels(1, 2, "WingRMid_D3", shot.initiator);
                }
                if((s.endsWith("lo1") || s.endsWith("lo2")) && (double)World.Rnd().nextFloat() < 1.0D - 0.92000001668930054D * Math.abs(v1.x) && chunkDamageVisible("WingLOut") > 2 && getEnergyPastArmor(1.5F * World.Rnd().nextFloat(1.0F, 1.2F), shot) > 0.0F)
                {
                    debugprintln(this, "*** WingLOut Spars Damaged..");
                    nextDMGLevels(1, 2, "WingLOut_D3", shot.initiator);
                }
                if((s.endsWith("ro1") || s.endsWith("ro2")) && (double)World.Rnd().nextFloat() < 1.0D - 0.92000001668930054D * Math.abs(v1.x) && chunkDamageVisible("WingROut") > 2 && getEnergyPastArmor(1.5F * World.Rnd().nextFloat(1.0F, 1.2F), shot) > 0.0F)
                {
                    debugprintln(this, "*** WingROut Spars Damaged..");
                    nextDMGLevels(1, 2, "WingROut_D3", shot.initiator);
                }
                if(s.startsWith("xxsparsl") && World.Rnd().nextFloat(0.0F, 0.115F) < shot.mass && getEnergyPastArmor(6.8F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
                {
                    debugprintln(this, "*** StabL Spar Damaged..");
                    nextDMGLevels(1, 2, "StabL_D" + chunkDamageVisible("StabL"), shot.initiator);
                }
                if(s.startsWith("xxsparsr") && World.Rnd().nextFloat(0.0F, 0.115F) < shot.mass && getEnergyPastArmor(6.8F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
                {
                    debugprintln(this, "*** StabR Spar Damaged..");
                    nextDMGLevels(1, 2, "StabR_D" + chunkDamageVisible("StabR"), shot.initiator);
                }
                if(s.startsWith("xxspark") && World.Rnd().nextFloat() < 0.5F && getEnergyPastArmor((double)(6.8F * World.Rnd().nextFloat(1.0F, 1.5F)) / (Math.abs(v1.x) + 9.9999997473787516E-005D), shot) > 0.0F)
                {
                    debugprintln(this, "*** Keel Spars Damaged..");
                    nextDMGLevels(1, 2, "Keel1_D" + chunkDamageVisible("Keel1"), shot.initiator);
                }
                if(s.startsWith("xxspart") && chunkDamageVisible("Tail1") > 2 && getEnergyPastArmor(3.86F / (float)Math.sqrt(v1.y * v1.y + v1.z * v1.z), shot) > 0.0F && World.Rnd().nextFloat() < 0.25F)
                {
                    debuggunnery("Spar Construction: Tail1 Ribs Hit, Breaking in Half..");
                    nextDMGLevels(1, 2, "Tail1_D3", shot.initiator);
                }
                return;
        }


Vasya 29.06.2018 20:38

Код:

if(s.startsWith("xcf") || s.startsWith("xblister"))
        {
            setControlDamage(shot, 0);
            setControlDamage(shot, 1);
            setControlDamage(shot, 2);
            if(chunkDamageVisible("CF") < 3)
            hitChunk("CF", shot);
                if(s.startsWith("xblister"))
                FM.AS.setCockpitState(shot.initiator, FM.AS.astateCockpitState | 1);
            if(point3d.x > -0.60499999999999998D && point3d.x < -0.29499999999999998D)
                FM.AS.setCockpitState(shot.initiator, FM.AS.astateCockpitState | 0x40);
            if(point3d.x > -1.7050000000000001D && point3d.x < -0.49199999999999999D && point3d.z > 0.082000000000000003D && World.Rnd().nextFloat() < 0.5F)
                if(World.Rnd().nextFloat() < 0.25F)
                    FM.AS.setCockpitState(shot.initiator, FM.AS.astateCockpitState | 4);
                else
                if(World.Rnd().nextFloat() < 0.33F)
                    FM.AS.setCockpitState(shot.initiator, FM.AS.astateCockpitState | 8);
                else
                if(World.Rnd().nextFloat() < 0.5F)
                    FM.AS.setCockpitState(shot.initiator, FM.AS.astateCockpitState | 0x10);
                else
                    FM.AS.setCockpitState(shot.initiator, FM.AS.astateCockpitState | 0x20);
            return;
        }
        if(s.startsWith("xeng"))
        {
            if(chunkDamageVisible("Engine1") < 2)
                hitChunk("Engine1", shot);
        } else
        if(s.startsWith("xtail"))
        {
            setControlDamage(shot, 1);
            setControlDamage(shot, 2);
            if(chunkDamageVisible("Tail1") < 3)
                hitChunk("Tail1", shot);
        } else
        if(s.startsWith("xkeel"))
            hitChunk("Keel1", shot);
        else
        if(s.startsWith("xrudder"))
        {
            setControlDamage(shot, 2);
            if(chunkDamageVisible("Rudder1") < 1)
                hitChunk("Rudder1", shot);
        } else
        if(s.startsWith("xstab"))
        {
            if(s.startsWith("xstabl"))
                hitChunk("StabL", shot);
            if(s.startsWith("xstabr"))
                hitChunk("StabR", shot);
        } else
        if(s.startsWith("xvator"))
        {
            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)
            {
                setControlDamage(shot, 0);
                hitChunk("WingLIn", shot);
            }
            if(s.startsWith("xwingrin") && chunkDamageVisible("WingRIn") < 3)
            {
                setControlDamage(shot, 0);
                hitChunk("WingRIn", shot);
            }
            if(s.startsWith("xwinglmid") && chunkDamageVisible("WingLMid") < 3)
            {
                setControlDamage(shot, 0);
                hitChunk("WingLMid", shot);
            }
            if(s.startsWith("xwingrmid") && chunkDamageVisible("WingRMid") < 3)
            {
                setControlDamage(shot, 0);
                hitChunk("WingRMid", shot);
            }
            if(s.startsWith("xwinglout1") && chunkDamageVisible("WingLOut") < 3)
                hitChunk("WingLOut", shot);
            if(s.startsWith("xwingrout1") && chunkDamageVisible("WingROut") < 3)
                hitChunk("WingROut", shot);
        } else
        if(s.startsWith("xarone"))
        {
            if(s.startsWith("xaronel") && chunkDamageVisible("AroneL") < 1)
                hitChunk("AroneL", shot);
            if(s.startsWith("xaroner") && chunkDamageVisible("AroneR") < 1)
                hitChunk("AroneR", shot);
        } else       
        if(s.startsWith("xoil"))
        {
            if(World.Rnd().nextFloat() < 0.12F)
                FM.AS.hitOil(shot.initiator, 0);
        } else
        if(s.startsWith("xgear"))
        {
            if(World.Rnd().nextFloat() < 0.05F)
            {
                debuggunnery("Hydro System: Disabled..");
                FM.AS.setInternalDamage(shot.initiator, 0);
            }
            if(World.Rnd().nextFloat() < 0.1F && getEnergyPastArmor(World.Rnd().nextFloat(1.2F, 3.435F), shot) > 0.0F)
            {
                debuggunnery("Undercarriage: Stuck..");
                FM.AS.setInternalDamage(shot.initiator, 3);
            }
        } else
        if(!s.startsWith("xblister") && (s.startsWith("xpilot") || s.startsWith("xhead")))
        {
            byte byte0 = 0;
            int l;
            if(s.endsWith("a"))
            {
                byte0 = 1;
                l = s.charAt(6) - 49;
            } else
            if(s.endsWith("b"))
            {
                byte0 = 2;
                l = s.charAt(6) - 49;
            } else
            {
                l = s.charAt(5) - 49;
            }
            hitFlesh(l, shot, byte0);
            }
    }

    static java.lang.Class _mthclass$(java.lang.String s)
    {
        java.lang.Class class1;
        try
        {
            class1 = java.lang.Class.forName(s);
        }
        catch(java.lang.ClassNotFoundException classnotfoundexception)
        {
            throw new NoClassDefFoundError(classnotfoundexception.getMessage());
        }
        return class1;
    }

    private float flapps;

    static
    {
        Class class1 = com.maddox.il2.objects.air.KI_94X.class;
        Property.set(class1, "originCountry", PaintScheme.countryJapan);
    }
}


Vasya 29.06.2018 20:58

Хотелось бы поправленный планер И-180.
Ну шо бы крылья отрывались в двух местах - у фюзеля и половинка. Не помешало бы ломающийся хвост как в И-16 из поздних патчей.
Если назвать меши как в планеры И-16 - то можно почти весь класс Ишака задействовать. Нужно только маслобак и маслорадиатор. Если сделать меш козырька диед с замызганным стеклом маслом - то и код из Яка или Месса можно "присунуть" для разбрызгивания масла.
О!
Мечты, мечты - где ваша сладость...?


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

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot