AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моды для Ил-2 > Первым делом, первым делом - самолеты

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.06.2018, 08:10   #981
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Смущение

Цитата:
Сообщение от Mauser Посмотреть сообщение
оЙ...падаждите, дайте с под стола вылезьти да на карту глянуть...ах да, действительно, её уж как скоро будет 20лет-нет...nÖ
нет, ну я конечно всё понимаю и фантазировать пемпeрсным таки никто не запрещает (слава богу), нО жАлЯзЯкА та тут причом?!
её они уже тож оживили одухотворили, иль без виликахасамавазвиличиваниявиликих уж и в сартир никак не сходить?
910 +/- 2%кг vs. 934kg ну оОООчень много разница...я бы даже сказал между ними прямь беЭздна))))...и это еще та маласть из тамошних пампeрсаф))))
мндя...выделения спаржи таки там просматриваются даже закрытыми глазами))))), а шОш будет дальше я и представить баЮсь))))
На мову перекласти можна?
Бо ніц не втямлю цього казання.
Vasya вне форума   Ответить с цитированием
Старый 26.06.2018, 12:07   #982
-OSF-Джо
Пенсионер
 
Аватар для -OSF-Джо
 
Регистрация: 24.06.2007
Адрес: Нерезиновая
Сообщений: 2,080
По умолчанию

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

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

А на счёт бревна... В зеркало посмотритесь.
__________________
-OSF-Джо вне форума   Ответить с цитированием
Старый 26.06.2018, 12:44   #983
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Смех

Цитата:
Сообщение от Mauser Посмотреть сообщение
ну во те на дела....а как же Вы сщитаете/записуете вес BMW u. АШ-82(М-82)...на глазок чтоли?
В Иле(игре) вес двигателя входит в вес планера - поэтому не записываем вообще никак. Выставляеться только общая развесовка.
----------------------------
А просил перевести текст ваш выше, потому как украинский для меня родной и такой "шарварок" слов на мове составить сложно.
Я - вообще - довольно строгого воспитания: моя мама родилась ещё в 1937 году и - соотвественно - стебаться в отношениях в их семье было не только ужасно стыдно, но и не согласовалось с честью, рода в том числе.
Я сегодня жене с утра рассказывал об отвественности перед предками рода., сказал, что хотелось бы так прожить, что бы мне не было стыдно перед родом. Кто там судить будет - не знаю: Один или Осарис, но всё же.
А если буду осмотрительным в словах и делах, то и девственницу выдадут (их там много есть красивых/арийских) и шоколадкой угостят.
Вот такие надежды.
Миниатюры
Нажмите на изображение для увеличения
Название: Zagmuk-Fight-Spence1916.jpg
Просмотров: 344
Размер:	159.2 Кб
ID:	54957   Нажмите на изображение для увеличения
Название: ПРЕКРАСНА АРІЙСЬКА ДІВЧИНА.jpg
Просмотров: 396
Размер:	59.9 Кб
ID:	54959   Нажмите на изображение для увеличения
Название: СПОРЦМЕНКИ.jpg
Просмотров: 339
Размер:	67.1 Кб
ID:	54960   Нажмите на изображение для увеличения
Название: ПАНЦЕР-ШОКОЛОДЕ.jpg
Просмотров: 329
Размер:	183.6 Кб
ID:	54961  
Изображения
Тип файла: jpg вчимо грамоту.jpg (12.2 Кб, 323 просмотров)
Vasya вне форума   Ответить с цитированием
Старый 26.06.2018, 14:12   #984
-OSF-Джо
Пенсионер
 
Аватар для -OSF-Джо
 
Регистрация: 24.06.2007
Адрес: Нерезиновая
Сообщений: 2,080
По умолчанию

Цитата:
Сообщение от Mauser Посмотреть сообщение
Ув. Джо, с какого такого перепугу Вы решили, шО я вам чем-то обязан?
Кто говорит о каких-то обязанностях? Можете вещать хоть на суахили, это Ваше право. Я просто попросил не коверкать русский язык. Что в этом странного или оскорбительного лично для Вас? Или это слишком трудно?
__________________
-OSF-Джо вне форума   Ответить с цитированием
Старый 26.06.2018, 15:07   #985
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Радость

Отстранившись от "шарварка",
предлагаю поправленный мод Лаггов, включены и "финские" типа.
Внизу архив.
Замечания приветствуются!
---------------------------------------
Проверял с модом 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
Вложения
Тип файла: rar !_003_LAGG_SERIYA_1-72_4.12.2+.rar (560.9 Кб, 294 просмотров)
Vasya вне форума   Ответить с цитированием
Старый 26.06.2018, 19:01   #986
Sita.
Местный
 
Регистрация: 12.04.2009
Сообщений: 5,057
По умолчанию

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

Джо... я сам был уверен что Товарищ Маузер Олбанский язык использует и любит ... оказалось нет... по другой это причине... не бери близко к сердцу ...
__________________
ищется идейный Программер )
Sita. вне форума   Ответить с цитированием
Старый 26.06.2018, 19:31   #987
Sita.
Местный
 
Регистрация: 12.04.2009
Сообщений: 5,057
По умолчанию

вот тролина то
__________________
ищется идейный Программер )
Sita. вне форума   Ответить с цитированием
Старый 27.06.2018, 08:26   #988
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Радость

Цитата:
Сообщение от Mauser Посмотреть сообщение
К инфо:
кое-шО листал тут и вспомнил сапсем другое...по 109 длина...и так длина, начиная с F bis K = 9020mm (оригинал)! Это важно для илдвас, т-к с-т начинает вести себя более адекватно...ОМ туда влипил бог-весь-шО...
во всяком случае когда мы меняли его длину на оригинальную (не трогая еще CAX), тО с-т полител по другому, а когда правили и CAX, то стала сапсем другая машина...
Если вас не затруднит - прикрепите сюда документик точных размеров Мессеров. Я их выставлю в фм моего мода.
Зарание БЛАГОДАРЮ!
Vasya вне форума   Ответить с цитированием
Старый 27.06.2018, 08:58   #989
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Радость

Цитата:
Сообщение от Mauser Посмотреть сообщение
хммм...т.е. Вы мне хотите сщас сказать, шО не доверяете мне на слово...я так правильно понял?
Я всегда доверяю серьёзным людям, которые ведут конструктивный диалог.
Не так ли поступали офицеры лучшей армии в мире?
Vasya вне форума   Ответить с цитированием
Старый 27.06.2018, 09:04   #990
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Радость

Исправил некоторые циферки в фм моих модов Мессеров
!!!_000_UP_RealFWs_4.12.2+
!!!_000_COD_FOR_BF-109G-6+
которые работают с САСовским модом
00_BF109_Ultimate_Pack_v4
Исправления:
длинна и размах крыльев в моделях Фридрих-Густав-Курфюрст выставлены по документу - картинки внизу.
---------------------------------------
Заодно Лаггам чуть подправил триммирование рулей(ещё будут донастраиваться после дальнейших тестов на управляемость).
Миниатюры
Нажмите на изображение для увеличения
Название: BF-108G-6U4.jpg
Просмотров: 317
Размер:	215.3 Кб
ID:	54973   Нажмите на изображение для увеличения
Название: BF-108G-6U4--СХЕМА--1.jpg
Просмотров: 326
Размер:	140.6 Кб
ID:	54974   Нажмите на изображение для увеличения
Название: BF-108G-6U4--СХЕМА--2.jpg
Просмотров: 306
Размер:	115.4 Кб
ID:	54975   Нажмите на изображение для увеличения
Название: BF-108G-6U4--СХЕМА--3.jpg
Просмотров: 320
Размер:	111.9 Кб
ID:	54976  
Вложения
Тип файла: rar BF_109F3.rar (431.8 Кб, 240 просмотров)
Тип файла: rar BF_109G_6_HARTMANN.rar (431.8 Кб, 238 просмотров)
Тип файла: rar LAGG.rar (127.5 Кб, 250 просмотров)

Последний раз редактировалось Vasya; 27.06.2018 в 09:05. Причина: исправление ошибок
Vasya вне форума   Ответить с цитированием
Старый 27.06.2018, 10:29   #991
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Радость

Цитата:
Сообщение от Mauser Посмотреть сообщение
Тогда в чом проблема? Поймите меня прально. Дело в том, шО это открытый ф-м и могут читать все. А т-к существуют еще "на той стороне" (не будем тыкать пальцем))) некие гопники,
тО облехчать им жизнь предостовляй информацию бесплатно, шОб они и далее обворовывали 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   #992
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Радость

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

по поводу длины на 109х уже много обсуждалось и говорилось. Если Вы всёже не в курсе то: длина данная в HB есть не совсем точное число, т-к замер делался по старому типу - тип замера Emil - до середины Propellerhaube.
Это можно найти и в более точной документации... и да, она есть в инэте...и у нас на DLW...так шО будте внимательны и всё увидете сами.
Спасибо вам за внимание ко мне!
Если можно - дайте пожалуйста (!!!) ссылку на DLW, что бы я мог поискать нужную мне документацию.
Vasya вне форума   Ответить с цитированием
Старый 27.06.2018, 12:12   #993
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Смех

Цитата:
Сообщение от Димон Посмотреть сообщение
pic
Супер!
Скоро будет в доступе.
Vasya вне форума   Ответить с цитированием
Старый 28.06.2018, 16:23   #994
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Радость

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

выходите на зайтэ .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 прописаны в "самом точном" симуляторе ДКС?
Может кто посмотрит - там код должен быть открытым.
Миниатюры
Нажмите на изображение для увеличения
Название: Фридрих--розміри--2.jpg
Просмотров: 314
Размер:	199.1 Кб
ID:	54992  
Vasya вне форума   Ответить с цитированием
Старый 29.06.2018, 20:31   #995
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Смущение

Расскажу нашим участникам и захожим посетителям немного о мододелании.
Сел за комп и думаю себе: нужно поставить новую карту Белоруссии и потестить там Мессер с новыми крыльями. Класс там несложный и ваяеться всё неспеша за пол-часа.
Ага... не тут то было.
Залез в папку. где складываю папки с 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.
Vasya вне форума   Ответить с цитированием
Старый 29.06.2018, 20:34   #996
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Сообщение

Код:
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   #997
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Сообщение

Код:
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   #998
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Сообщение

Код:
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   #999
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Сообщение

Код:
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   #1000
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Смущение

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

Последний раз редактировалось Vasya; 29.06.2018 в 21:40.
Vasya вне форума   Ответить с цитированием
Ответ


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

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

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

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

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


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


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