|
|
![]() |
#1 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]()
Расскажу нашим участникам и захожим посетителям немного о мододелании.
Сел за комп и думаю себе: нужно поставить новую карту Белоруссии и потестить там Мессер с новыми крыльями. Класс там несложный и ваяеться всё неспеша за пол-часа. Ага... не тут то было. Залез в папку. где складываю папки с 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До с коллизиями можно потихоньку выписать всё в классе и это будет весьма гут. На скорую руку делать самолёты невозможно. Иначе это будут летающие брёвна. Извините за откровенность. ![]() Правленный класс Ки-94 до состояния "може буты" ниже в посте. Последний раз редактировалось Vasya; 29.06.2018 в 21:48. |
![]() |
![]() |
![]() |
#2 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]() Код:
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); } |
![]() |
![]() |
![]() |
#3 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]() Код:
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; } |
![]() |
![]() |
![]() |
#4 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]() Код:
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; } |
![]() |
![]() |
![]() |
#5 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]() Код:
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); } } |
![]() |
![]() |
![]() |
#6 | |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]() Цитата:
Благодарю! |
|
![]() |
![]() |
![]() |
#7 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]()
Хотелось бы поправленный планер И-180.
Ну шо бы крылья отрывались в двух местах - у фюзеля и половинка. Не помешало бы ломающийся хвост как в И-16 из поздних патчей. Если назвать меши как в планеры И-16 - то можно почти весь класс Ишака задействовать. Нужно только маслобак и маслорадиатор. Если сделать меш козырька диед с замызганным стеклом маслом - то и код из Яка или Месса можно "присунуть" для разбрызгивания масла. О! Мечты, мечты - где ваша сладость...? Последний раз редактировалось Vasya; 29.06.2018 в 21:40. |
![]() |
![]() |
![]() |
#8 | |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]() Цитата:
Как возмёться - пущай по образцу поздних Ишаков(Тип-29+) делает. И нормально меш с пушко-пулемётами нужен - длиннинький - дабы не полоска была, а цэлый арсенал - типа как в реале. Буду ждать очень поправленный Ишак-180. ![]() |
|
![]() |
![]() |
![]() |
#9 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]()
Пойду полью дочкины цветочки в огороде под домом.
![]() Звыняйте братэ! ![]() |
![]() |
![]() |
![]() |
#10 | |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]()
Дописываю мотор для Доры-9(10). Так что бы приспособить к Илу и не писать родной редуктор (0.42) - Ил его плохо понимает. Умножение мощности для компенсации потерь нужно в 1.6667 раза. Но в стоко же вырастает расход топлива. Вписывание пересчитанного расхода топлива в емд плохо помогает., Ил давиться и считает по своему - бак пустеет очень быстро. Это не есть гут.
Расчёты пока такие: Цитата:
Дело в том, что аэродинамика самолётов вполне сопоставима. Дора немного длиннее и немного уже в двигательной части. Поэтому и поляры сопоставимы(во всех патчах к тому же). Остаёться подогнать мощность, учитывая разность оборотов мотора, лучший винт у Доры(следствие и лучшая скороподъёмность). Мощности на номинале так же примерно одинаковы. Чуть позже выложу мод (Доры-9(10)) на пробу. Вот как сделано в патче 4.10(дефолт). Код:
[Jumo213A-1] [Jumo213A-1] HorsePowers 1500 BoostFactor 1.2 WEPBoostFactor 1.17 TowFactor 1.0 Thrust 0 cAfterburner 1 AfterburnerType 6 RPMMin 500 RPMNom 3100 RPMMax 3000 RPMMaxAllowed 3500 Reductor 0.73 PropDiameter 3.15 PropAnglerType 8 PropAnglerSpeed 0.11 PropAnglerMinParam 1800 PropAnglerMaxParam 3000 PropAnglerAfterburnerParam 3250 PropPhiMin 14.0 PropPhiMax 60.0 PropAoA0 11.0 CompressorPMax 1.65 CompressorAltitude0 1800.0 CompressorMultiplier0 1.0 CompressorAltitude1 5000.0 CompressorMultiplier1 1.0 CompressorRPMP0 2100.0 CompressorRPMPMax 3250.0 CompressorMaxATARPM 1.45 CompressorSpeedManifold 0.50 CompressorRPM0 400 CompressorATA0 0.65 CompressorRPM1 1200 CompressorATA1 0.80 CompressorRPM2 1400 CompressorATA2 0.85 CompressorRPM3 1600 CompressorATA3 0.86 CompressorRPM4 1800 CompressorATA4 0.92 CompressorRPM5 2400 CompressorATA6 1.15 CompressorRPM7 2700 CompressorATA7 1.30 DisP0x 2800 DisP0y 05 DisP1x 0 DisP1y 48 cRadiator 1 TESPEED 0.015 TWATERMAXRPM 90 TOILINMAXRPM 70 TOILOUTMAXRPM 105 MAXRPMTIME 280 MINRPMTIME 999 TWATERMAX 115 TWATERMIN 60 TOILMAX 126.5 TOILMIN 40 Последний раз редактировалось Vasya; 05.07.2018 в 23:34. |
|
![]() |
![]() |
![]() |
#11 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]()
Новый мотор предварительно пока такой.
Код:
[Jumo-213AG/B-4/DF/NEW] EngineAcceleration 9.0 FuelPumpPress 1.7 HorsePowers 2212.0 // 1700.0x1.3011=2212.0 BoostFactor 1.00 WEPBoostFactor 1.1177 TowFactor 1.0 Thrust 0 cAfterburner 0 AfterburnerType 10 PropMass 254.0 RPMMin 500 RPMNom 3150 RPMMax 3000 RPMMaxAllowed 3700 Reductor 0.70 // 0.42 // 0.54167:0.42=1.28969х2295(0.85)=2960:3250=0.91077:0.70=1.3011 // 0.73х1.17(дефолт 4.10)=0.8541х1.071062(1462:1365(обороты пропеллера))=0.91479:70=1.306849 PropDiameter 3.5 PropAnglerType 8 PropAnglerSpeed 0.12 PropAnglerMinParam 1260 PropAnglerMaxParam 3000 PropAnglerAfterburnerParam 3250 PropPhiMin 14.40 // 24.0 PropPhiMax 56.40 // 80.0 PropAoA0 11.0 Voptimal 260.0 CompressorType 1 CompressorSteps 2 CompressorPAt0 0.40 CompressorRPMCurvature 4.9 CompressorPMax 1.68 CompressorAltitude0 1800.0 CompressorMultiplier0 0.973 CompressorBaseMultiplier0 0.988 CompressorAltitude1 5200.0 CompressorMultiplier1 0.89 CompressorBaseMultiplier1 0.9059 CompressorRPMP0 2000.0 CompressorRPMPMax 3250.0 CompressorMaxATARPM 1.52 CompressorSpeedManifold 0.62 CompressorRPM0 400 CompressorATA0 0.65 CompressorRPM1 1200 CompressorATA1 0.80 CompressorRPM2 1600 CompressorATA2 0.92 CompressorRPM3 2100 CompressorATA3 1.15 CompressorRPM4 2400 CompressorATA4 1.30 CompressorRPM5 2700 CompressorATA5 1.40 CompressorRPM6 3000 CompressorATA6 1.52 DisP0x 3150 DisP0y 0 DisP1x 0 DisP1y 10 cRadiator 1 TESPEED 0.015 TWATERMAXRPM 100 TOILINMAXRPM 70 TOILOUTMAXRPM 110 MAXRPMTIME 600 MINRPMTIME 999 TWATERMAX 120 TWATERMIN 60 TOILMAX 130 TOILMIN 40 FuelConsumptionP0 = 0.164F FuelConsumptionP05 = 0.142F FuelConsumptionP1 = 0.187F FuelConsumptionPMAX = 0.209F |
![]() |
![]() |
![]() |
#12 |
Местный
Регистрация: 13.09.2010
Адрес: Россия, ЛНР
Сообщений: 413
|
![]()
Висилий, а ты не мог бы подправить ФМ Раннему Спитфайр 1 от САС?
|
![]() |
![]() |
![]() |
#13 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]() |
![]() |
![]() |
![]() |
#14 |
Местный
Регистрация: 13.09.2010
Адрес: Россия, ЛНР
Сообщений: 413
|
![]() |
![]() |
![]() |
![]() |
#15 | |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]() Цитата:
Как нибуть разберусь. ![]() Стараюсь, однако. ![]() Даже чукчи люди, аж с моими корнями то. Мож человеком стану. ![]() ----------------------------------- П.С. В игре можно "втулить" в мотор и МК-103. Людям поиграться. Не принимайте фантазию (на тему вальса Шопена) близко к сердцу. Инфаркт - дело очень неприятное. Носом тыкать лучше собачку в шкоду. Так шо - звыняйте гер пане Маузер. Бувайтє здоровлі! Последний раз редактировалось Vasya; 07.07.2018 в 20:26. |
|
![]() |
![]() |
![]() |
#16 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]()
Можно - не проблема.
Но когда вскрыл - то там ковыряния надолго. Фм взял от дефолтных Спитов-5. Но моторы нужно писать заново - в батонах всё от фонаря написано. К тому же есть известные Иловские ограничения на работу ВМГ на оборотах выше 2700. Приходиться выкручиваться. Опирался на данные из Тундры. https://forum.warthunder.ru/index.ph...pitfire-mkiia/ И читал тут: http://www.rafjever.org/spitfire.htm ----------------------------------------- У Спитов в кабине нет шарика и выставить триммирование невероятно тяжело. Там справа на приборке болтается палочка в разные стороны и настроить управление по ней как по колокольчику на козе. Архив с фм и классами внизу. Нужно совместить с САСовским https://www.sas1946.com/main/index.p...c,13798.0.html - на замену файлов согласиться. ФМ МК1а такая: Код:
[Aircraft] Type 1 Crew 1 Wingspan 11.23 Length 9.12 Seaplane 0 Canard 0 Jet 0 JetHiV 0 [Mass] Empty 2031.0 TakeOff 2749.0 Oil 52.0 Fuel 289.0 [Controls] CAileron 1 CAileronTrim 0 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 1 CockpitDoorPeriod 1.0 CAileronThreshold 300.0 CRudderThreshold 400.0 CElevatorThreshold 400.0 DefaultAileronTrim 0.007 DefaultElevatorTrim 0.005 DefaultRudderTrim 0.053 [Squares] Wing 22.48 Aileron 1.74 Flap 1.46 Stabilizer 1.90 Elevator 1.16 Keel 0.85 Rudder 0.80 Wing_In 4.0 Wing_Mid 3.84 Wing_Out 3.4 AirbrakeCxS 0.0 [Arm] Aileron 3.8 Flap 1.3 Stabilizer 4.3 Keel 4.4 Elevator 4.8 Rudder 5.1 Wing_In 1.2 Wing_Mid 2.6 Wing_Out 4.3 Wing_V 1.8 GCenter 0.05 GCenterZ 0.00 GC_AOA_Shift 0.50 GC_Flaps_Shift 0.20 GC_Gear_Shift -0.05 [Toughness] AroneL 50 AroneR 50 CF 400 Engine1 70 Engine2 70 Engine3 70 Engine4 70 GearL2 150 GearR2 150 Keel1 70 Keel2 70 Nose 100 Oil 70 Rudder1 50 Rudder2 50 StabL 70 StabR 70 Tail1 100 Tail2 100 Turret1B 100 Turret2B 100 Turret3B 100 Turret4B 100 Turret5B 100 Turret6B 100 VatorL 50 VatorR 50 WingLIn 100 WingLMid 90 WingLOut 50 WingRIn 100 WingRMid 90 WingROut 50 Flap01 50 Flap02 50 Flap03 50 Flap04 50 [Engine] Engine0Family Rolls-Royce-Merlin(MOD_EARLY):SPIT_EARLY Engine0SubModel Merlin-III/12lb/DF/Spitfire-Ia [Gear] H 1.614541 Pitch 11.842 SinkFactor 1000.0 SpringsStiffness 0.8 TailStiffness 0.7 [Params] CriticalAOA 17.0 CriticalCy 01.40 CxCurvature 00.70 CxStraightness 00.08 CriticalAOAFlap 15.00 CriticalCyFlap 01.70 SpinTailAlpha 13.00 SpinCxLoss 0.032 SpinCyLoss 0.012 Vyfac 1.00 Tfac 1.0 Vmin 142.0 Vmax 472.0 VmaxAllowed 780.0 VmaxH 596.0 HofVmax 6100.0 VminFLAPS 129.0 VmaxFLAPS 250.0 Vz_climb 17.1 V_climb 250.0 T_turn 18.8 V_turn 235.0 K_max 12.6 Cy0_max 0.15 FlapsMult 0.9 FlapsAngSh 10.0 G_class_coeff 20.0 G_class 9.0 Range 800.0 CruiseSpeed 300.0 SensYaw 0.52 SensPitch 0.60 SensRoll 0.32 [Polares] lineCyCoeff 0.081 AOAMinCx_Shift 0.072 Cy0_0 0.16 AOACritH_0 19.8 AOACritL_0 -17.0 CyCritH_0 1.38 CyCritL_0 -0.90 CxMin_0 0.0213 parabCxCoeff_0 5.3E-4 Cy0_1 0.63 AOACritH_1 17.5 AOACritL_1 -24.5 CyCritH_1 1.70 CyCritL_1 -0.8 CxMin_1 0.0512 parabCxCoeff_1 6.0E-4 parabAngle 4.0 Decline 0.010 maxDistAng 50.0 draw_graphs 0 mc3 -26.464,-13.497,-12.705,-72.354,-66.117,-36.136,-60.497,-17.971 mc4 59.294,34.677,38.145,665.61,454.62,233.29,375.72,175.28 mm 0.644,0.714,0.785,0.781,0.785,0.732,0.679,0.613 mz 0.251,0.254,0.239,0.086,0.09,0.11,0.097,0.09 [SOUND] Engine Std ----------------------------------------- Кто имеет программу, которая показывает скороподъёмность в реальном времени - прошу померять. Ввод в набор высоты на скорости около 260 км. в час и максимальной мощности. Двигатель у земли будет греться через минут пять на форсаже. Промежуточной мощности на 3000 об. как в Тундре нет. Есть номинал 2850 об и форсаж 3000 об. буст 12-16. Такие возможности Ила(не щитая патч 4.13.4), там возможен отдельный буст. Жалобы принимаються. Нужно ещё как то донастроить триммирование. Есть недостаток - Спит висит на малой скорости, хотя в реале он не мог набирать высоту под большим углом атаки. Всем приятных полётов! --------------------------------------- П.С. Внёс небольшие изменения в фм - после тестов будет предложен новый вариант. Хочеться добиться отсутствия "вертолётности" в поведении Спита. Последний раз редактировалось Vasya; 12.07.2018 в 04:02. |
![]() |
![]() |
![]() |
#17 | |
Местный
Регистрация: 13.09.2010
Адрес: Россия, ЛНР
Сообщений: 413
|
![]() Цитата:
![]() ![]() А в этом топике нет случайно темы про Мерлин ХХ? Последний раз редактировалось Константин; 11.07.2018 в 19:58. |
|
![]() |
![]() |
![]() |
#18 | |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]()
Стих о нетленном господину Маузеру.
Цитата:
|
|
![]() |
![]() |
![]() |
#19 |
Местный
Регистрация: 29.11.2013
Сообщений: 1,049
|
![]()
Василий, просьба, сделайте фм для И-180 с мотором М-89НВ (вес мотора 760 кг, мощность 1475 л/с, непосредственный впрыск) для вашей доработки Димоновской стовосьмидесятки
|
![]() |
![]() |
![]() |
#20 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,322
|
![]() |
![]() |
![]() |
![]() |
Здесь присутствуют: 3 (пользователей: 0 , гостей: 3) | |
|
|