AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моделирование и конструирование

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

Цитата:
Сообщение от tvister Посмотреть сообщение
Эта метода и помогла. Врагом оказался архиватор ВИНРАР. При архивации папки com, нужно выбирать архивацию "без сжатия". Таким образом на Вин7 и семерке ява получил классы. Правда рабочие ли, не знаю, завтра буду пробовать. Тройке на вин 10 такое лекарство не помогло. Завтра попробую поставить седьмую яву на десятку.



Спасибо Вам, правильное слово вовремя сказанное очень помогает .
Я, конечно, рад что получилось.
Не пойму только зачем архивировать папку сом.
Она у меня в открытом виде; в открытом - это не в декомпиллированом, а просто все классы требуемого патча лежат на своих местах.
В подпапке - допустим - D:\Lab_4.13.4\com\maddox\il2\objects\ships я декомпиллирую класс и полученный джава-файл исправляю от ошибок декомпилятора и пробую закомпиллить; потом правлю под то, что мне нужно, закрываю и снова пробую закомпиллить созданным под этот класс батником. Если всё получается - то переношу полученные классы в другую рабочую папку( !_MakeMOD_412_ или Il2_RESOLVER) для хеширования.
И никакой мороки с архиваторами и другой лабутени типа Еклипса.
То есть:
1 - в переменные среды прописана основная джава 6 (для ХР);
2 - на дисках С и Д просто лежат джавы 1.3.1_20 и 1.3.1_01;
3 - в папке Lab_4.13.4 лежит среда патча сом с классами; так же там лежат нужные батники;
4 - в папке Il2_RESOLVER лежат подпапки RESOLV и HESH; так же - нужные батники(две штуки) и папка jar с джарами classresolver.jar и classhasher.jar.
Всё.
Все папки в открытом виде и после перепрописки
в батниках названия диска(С. Д, или Е) могут быть перемещаемы по всему компу для удобства.
Такие дела.

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

Все вопросы к камраду Slon. Сделанная по его инструкциям машинко, работает, это самое для меня важное (пока что). Однако она не идеальна, некоторые файлы не компилируются и это очень меня подвело в работе с прожекторами. По этому Ваши рекомендации взяты на изготовку, еще "Иду" заканчивать, на горизонте авианосец и прожектора очень хочется закончить.
tvister вне форума   Ответить с цитированием
Старый 27.05.2018, 22:35   #383
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,122
Радость

Цитата:
Сообщение от tvister Посмотреть сообщение
Все вопросы к камраду Slon. Сделанная по его инструкциям машинко, работает, это самое для меня важное (пока что). Однако она не идеальна, некоторые файлы не компилируются и это очень меня подвело в работе с прожекторами. По этому Ваши рекомендации взяты на изготовку, еще "Иду" заканчивать, на горизонте авианосец и прожектора очень хочется закончить.
УДАЧИ!
Vasya вне форума   Ответить с цитированием
Старый 28.05.2018, 00:09   #384
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

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

Цитата:
Сообщение от tvister Посмотреть сообщение
Спасибо, она всем нам очень пригодится.
Забыл сказать:
компиллить джава-файл в класс ОЧЕНЬ желательно в среде недекомпиллированных классов.
Возле джава-файла, который в "работе" могут присуствовать несколько (5-20) штук джава-файлов, но которые ГАРАНТИРОВАНО компиллятся и их классы идентичны исходникам.
Ни в коем случае нельзя держать открытые джава-файлы основных управляющих классов типа Мотор, Енжин или Дженерик Шипс.
Такие мои наблюдения.
Vasya вне форума   Ответить с цитированием
Старый 28.05.2018, 23:11   #386
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Спасибо. Камрад Slon об этом тоже говорит, так и делаю.
tvister вне форума   Ответить с цитированием
Старый 04.06.2018, 14:04   #387
Sita.
Местный
 
Регистрация: 12.04.2009
Сообщений: 5,080
По умолчанию

это надо в спец раздел по ФМ выносить ... такие данные то.
__________________
ищется идейный Программер )
Sita. вне форума   Ответить с цитированием
Старый 29.03.2019, 22:57   #388
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Доброго времени суток.
Пробую создать класс для Ки-36 "Ида", на основе Д3А "Вэл". Для этого все меши созданной модели Ки-36 проименовал как в Д3А1. Постараюсь описать процесс занудно-подробно, может кому то пригодится. Все желающие приглашаются к обсуждению.
Открыл классы Д3А1, скомпилировались два файла материнский Д3А и дочерний Д3А1. Классы Ки-36 тоже открылись образовав три файла, материнский Ки-36Х и дочерние Ки-36 и Ки-36NS.
Класс Ки-36NS пока удалил, позже изменю и перепишу его как Ки-55. Класс Д3А переписал, заменив в названии и содержимом файла на Ки-36М (материнский).
У "Вел" и "Иды" имеются важные различия в работе подвижных частей:
1. У Вел одна сдвижная часть блистера, у Иды три, причем первая и вторая части движутся разно направленно (на встречу друг дружке).
2. Вел, самолет авианосного базирования, у него складываются законцовки крыльев и есть посадочный крюк-гак. У Иды ничего этого нет.
3. Вел - пикирующий бомбардировщик, у него в отличии от Иды есть воздушные тормоза.
4. У Иды створки радиатора не регулирующиеся, у Вел для регулирования охлаждающего потока воздуха есть "юбка".
5. У Иды, стрелок-наблюдатель должен в обычном полете находиться лицом вперед, в боевой обстановке разворачиваться, и открывать блистер.
6. Есть вопросы по прочности планера Иды, есть моменты по вооружению.
Постараемся все эти вопросы решить.
Для наглядности буду приводить фрагменты кода.

Последний раз редактировалось tvister; 30.03.2019 в 09:12.
tvister вне форума   Ответить с цитированием
Старый 30.03.2019, 01:40   #389
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Все, что написано далее, это предположения.
Больше всего, меня почему то тревожат различия в устройстве сдвижных частей фонаря.
В материнском файле Д3А нет упоминания о меше Blister1_D0 но такой фрагмент есть в дочернем файле Д3А1.

PHP код:
   }
    
    public 
void moveCockpitDoor(float f) {
    
resetYPRmodifier();
    
xyz[1] = cvt(f0.01F0.99F0.0F0.44F);
    
hierMesh().chunkSetLocate("Blister1_D0"xyzypr);
    if (
Config.isUSE_RENDER()) {
        if (
Main3D.cur3D().cockpits != null
        
&& Main3D.cur3D().cockpits[0] != null)
        
Main3D.cur3D().cockpits[0].onDoorMoved(f);
        
setDoorSnd(f);
    } 
Заменим его на код извлеченный из материнского Ки-36Х
PHP код:
    }
    
    public 
void moveCockpitDoor(float f) {
    
this.resetYPRmodifier();
    
Aircraft.xyz[1] = Aircraft.cvt(f0.01F0.99F0.0F0.55F);
    
this.hierMesh().chunkSetLocate("Blister1_D0"Aircraft.xyz,
                       
Aircraft.ypr);
    
Aircraft.xyz[1] = Aircraft.cvt(f0.01F0.99F0.0F0.55F);
    
this.hierMesh().chunkSetLocate("Blister2_D0"Aircraft.xyz,
                       
Aircraft.ypr);
    
Aircraft.xyz[1] = Aircraft.cvt(f0.01F0.99F0.0F0.9F);
    
this.hierMesh().chunkSetLocate("Blister3_D0"Aircraft.xyz,
                       
Aircraft.ypr);
    } 
Пробую скомпилировать класс-файлы - получилось.
Не знаю, будет ли это работать, но мне не ясно как поймут меши куда и на сколько им двигаться.
Продолжение следует.

Последний раз редактировалось tvister; 30.03.2019 в 09:12.
tvister вне форума   Ответить с цитированием
Старый 30.03.2019, 01:49   #390
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Удалим вот этот фрагмент с мешами Brake01_D0 и Brake02_D0. Это воздушные тормоза.

PHP код:
    protected void moveAirBrake(float f) {
    
hierMesh().chunkSetAngles("Brake01_D0"0.0F, -90.0F f0.0F);
    
hierMesh().chunkSetAngles("Brake02_D0"0.0F90.0F f0.0F);
    } 
Пробуем скомпилировать классы, классы создаются.
tvister вне форума   Ответить с цитированием
Старый 30.03.2019, 07:49   #391
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 2,193
По умолчанию

Цитата:
Сообщение от tvister Посмотреть сообщение
Не знаю, будет ли это работать, но мне не ясно как поймут меши куда и на сколько им двигаться.
Продолжение следует.
Все три меша будут двигаться как одно целое.
P.S Прошу прощения, первые два меша будут двигаться одинаково, третий будет двигаться в ту же сторону но конечные координаты его будут отличаться от координат первых двух, я так думаю

Последний раз редактировалось tarakan67; 30.03.2019 в 07:55.
tarakan67 вне форума   Ответить с цитированием
Старый 30.03.2019, 09:00   #392
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Посмотрим на практике. Пока самолет с именами Ки-36 (Д3А1) появляется только в окне просмотра полного редактора. Что вполне логично, классы мы только начали править.
Столкнулся с таинственным словом "пропертис". Что это такое, зачем они? Если я правильно понял, пропертисы находятся в этой части кода.
Для материнских файлов:
Ки-36Х
PHP код:
package com.maddox.il2.objects.air;
import com.maddox.JGP.Point3d;
import com.maddox.il2.ai.Shot;
import com.maddox.il2.ai.World;
import com.maddox.il2.engine.Actor;
import com.maddox.il2.engine.Eff3DActor;
import com.maddox.il2.engine.HierMesh;
import com.maddox.rts.Property
Д3А
PHP код:
package com.maddox.il2.objects.air;
import java.io.IOException;

import com.maddox.JGP.Point3d;
import com.maddox.il2.ai.Shot;
import com.maddox.il2.ai.World;
import com.maddox.il2.engine.Eff3DActor;
import com.maddox.rts.NetMsgGuaranted;
import com.maddox.rts.NetMsgInput;
import com.maddox.rts.Property
Если присмотреться, можно заметить, что они разные.

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

Исправил ошибку, класс не Д3А2 а Д3А1. Вот основные, исходные коды, где Ки_36-САС, код модели от САС.
Вложения
Тип файла: txt Ki_36.txt (10.6 Кб, 427 просмотров)
Тип файла: txt Ki_36-CАС.txt (9.7 Кб, 428 просмотров)
Тип файла: txt Ki_36M.txt (16.6 Кб, 474 просмотров)
Тип файла: txt Ki_36X.txt (16.9 Кб, 456 просмотров)
tvister вне форума   Ответить с цитированием
Старый 30.03.2019, 11:36   #394
NB79
Местный
 
Регистрация: 12.07.2015
Сообщений: 417
По умолчанию

Для лучшего понимания нужно ознакомится с базовыми принципами Объектно-Ориентированного Программирования, оно же - ООП.

Вкратце. У вас есть базовые классы. Они описывают общую логику и базовые принципы построения некоего объекта. Это нечто общее, что объединяет всю цепочку описываемых вами объектов, событий, действий и т.д., и т.п.

Далее, вы создаёте классы-наследники, в которых описываете индивидуальные особенности тех, либо иных объектов.

Например. Базовый класс - мебель. Наследники - стол, стул, шкаф. Базовые свойства (properties) - предназначены для обслуживания потребностей человека в быту. Индивидуальные свойства - стол для приёма пищи, работы и т.д. (можно написать несколько наследников для стола раскрывающих их сущность). Стул - сидеть на нём. Шкаф - хранить барахло.

Свойства у нас тоже бывают разные. Публичные, видимые всем из всех классов. Приватные, видимые только внутри класса. Классовые, специфичные для класса. Виртуальные, Абстрактные и т.д. Задача всего этого многообразия так описать объект, чтоб обеспечить безопасность его функционирования и всю полноту управления им упростив доступ к свойствам и прочему повышая уровень абстракции. Примерно так, на примере: базовый класс - человек, у него куча методов и свойств, но наружу мы выводим только один метод (делаем его публичным), способность ходить. В результате все наследники Человека у нас ходят, но вся механика хождения скрыта в базовом классе. И если мы изменим механику в базовом классе, то у нас автоматом эти изменения отразятся на поведении наследников. Код наследников, при этом, будет осень простым и будет описывать только то, что свойственно только ему. Очень удобно при правильном использовании.

Представление о том, как нужно рассматривать ООП код быстро поставит всё на место и позволит ПРАВИЛЬНО его писАть. А частности, характерные для того, либо иного языка, это уже вторично, это особенности реализации общих подходов к объединяющей концепции.

Это очень-очень кратко, даже не по верхам, исключительно для привлечение внимания к тому, что надо изучить основы, это сэкономит прорву времени.
NB79 вне форума   Ответить с цитированием
Старый 30.03.2019, 14:17   #395
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Спасибо, для меня ява, это как английский, я его не знаю и очень не люблю. Но знать его надо...
tvister вне форума   Ответить с цитированием
Старый 30.03.2019, 19:19   #396
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

При ближайшем изучении модели и кода Ки-36 от САС, я обнаружил, что посадочный крюк и лепестки юбки мотора были сохранены в коде, а в модели созданы безматериальными мешами. Что то вроде картинки с сусликом. Лепестки в модели представлены точками-единичными вершинами. Попробовал удалить фрагменты кода с крюком
PHP код:
    }
    
    public 
void moveArrestorHook(float f) {
    
hierMesh().chunkSetAngles("Hook1_D0"0.0F60.0F f0.0F);
    
arrestor f
Удалил, код компилируется в класс нормально. Часть кода в которой упоминаются лепестки юбки мотора, оставил, а модель сделаю по образцу САС-овской. Как то надо регулировать тепловой режим мотора.
В дочернем классе Ки-36 изменил часть кода с названием самолета и путь к ФМ.
PHP код:
 static {
    Class 
var_class = (class$com$maddox$il2$objects$air$Ki_36 == null
               
? (class$com$maddox$il2$objects$air$Ki_36
                  
= class$("com.maddox.il2.objects.air.Ki_36"))
               : class
$com$maddox$il2$objects$air$Ki_36);
    new 
NetAircraft.SPAWN(var_class);
    
Property.set(var_class"iconFar_shortClassName""Ida");
    
Property.set(var_class"meshName""3DO/Plane/Ki36/hier.him");
    
Property.set(var_class"PaintScheme", new PaintSchemeBMPar00());
    
Property.set(var_class"yearService"1938.0F);
    
Property.set(var_class"yearExpired"1946.5F);
        
Property.set(var_class"FlightModel",
             
"FlightModels/KI-36-NEW.fmd:Ki36_FM");
    
Property.set(var_class"cockpitClass",
             ((Object) 
Все по образцу и подобию САС-овских классов.
К готовым классам добавил класс кокпита (класса бомбардира нет в принципе) захешировал и бросил их в папку с моделью, попробовал запустить игру. В итоге вылет на 20%. В логе ругань на отсутствие класса бомбардирского кокпита.

Тo be continued...
tvister вне форума   Ответить с цитированием
Старый 30.03.2019, 20:58   #397
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Удалил все строки где упоминается кокпит бомбардира-пулеметчика. В дочернем классе Ки-36 есть два таких фрагмента.

PHP код:
    /*synthetic*/ static Class class$com$maddox$il2$objects$air$CockpitKi_36_Bombardier;
    
/*synthetic*/ static Class class$com$maddox$il2$objects$air$CockpitKi_36_TGunner

PHP код:
        ((class$com$maddox$il2$objects$air$CockpitKi_36_Bombardier
          
== null)
         ? (class
$com$maddox$il2$objects$air$CockpitKi_36_Bombardier
            
= (class$
               (
"com.maddox.il2.objects.air.CockpitKi_36_Bombardier")))
         : class
$com$maddox$il2$objects$air$CockpitKi_36_Bombardier),
        (class
$com$maddox$il2$objects$air$CockpitKi_36_TGunner == null
         
? (class$com$maddox$il2$objects$air$CockpitKi_36_TGunner
            
= class$("com.maddox.il2.objects.air.CockpitKi_36_TGunner"))
         : class
$com$maddox$il2$objects$air$CockpitKi_36_TGunner) })); 
заменив последний блок на родные САС-овские строки
PHP код:
    Property.set(var_class"cockpitClass",
             new Class[] { 
CockpitKi_36.class }); 
В итоге код перестал компилироваться.
Пробовал так и эдак, но все без толку.
В итоге выдрал кусок кода с кокпитом из файла Ки-27КО. И переименовав все названия самолета на Ки-36 воткнул на место САС-овской строки. Вот как получилось.
PHP код:
    Property.set
        
(var_class"cockpitClass",
         ((Object)
          (class
$com$maddox$il2$objects$air$CockpitKi_36 == null
           
? (class$com$maddox$il2$objects$air$CockpitKi_36
          
= class$("com.maddox.il2.objects.air.CockpitKi_36"))
           : class
$com$maddox$il2$objects$air$CockpitKi_36))); 
Теперь игра запускается, запускаются даже миссии, но самолета в них нет. Он виден в окне полного редактора с почему то исчезающим рулем высоты.
Особо не переживаю с учетом того, что классы от разных моделей и что то я мог пропустить. А наш друг и помощник Log так и рапортует:
PHP код:
ERROR fileFile users/doe/Icons not found
Mission
QuickQMBPro/NWEurope/NWEuropeBlueNone00.mis is Playing
INTERNAL ERROR
HierMeshCan't find chunk 'WindowL1_D0'
INTERNAL ERROR: HierMesh: Can'
t find chunk 'WindowR1_D0'
Time overflow (0): speed 0.53097343
warning
no files music/inflight
INTERNAL ERROR
Str2FloatClamp() - Clamped 4096 -> 512 (delta = -3584to Range 1..512
-------------------------------- MISSION FAILED ---------------------
INTERNAL ERRORHierMeshCan't find chunk 'WindowL1_D0'
INTERNAL ERROR: HierMesh: Can'
t find chunk 'WindowR1_D0'
warningno files music/crash
WARNING
Clear VBuf 174961
WARNING
Clear IBuf 654888
WARNING
Clear VBuf 162728
WARNING
Clear IBuf 654798
WARNING
Clear VBuf 162728
WARNING
Clear IBuf 654798
WARNING
Clear VBuf 162728
WARNING
Clear IBuf 654798
WARNING
Clear VBuf 162788
WARNING
Clear IBuf 654798
WARNING
Clear VBuf 162586
WARNING
Clear IBuf 654798
WARNING
Clear VBuf 162698
WARNING
Clear IBuf 654798
WARNING
Clear VBuf 162728
WARNING
Clear IBuf 654798
WARNING
Clear VBuf 162806
WARNING
Clear IBuf 654798
WARNING
Clear VBuf 162728
WARNING
Clear IBuf 654798
[30.03.2019 17:27:10] -------------- END log session ------------- 
Роем дальше!
tvister вне форума   Ответить с цитированием
Старый 30.03.2019, 21:16   #398
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Становится интереснее. Дело в том, что ни в коде, ни в модели, нет имен WindowL1_D0 , WindowR1_D0.
Что то я пропустил...
tvister вне форума   Ответить с цитированием
Старый 30.03.2019, 21:24   #399
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Вроде как лекарство... https://www.sas1946.com/main/index.p...c,51123.0.html
Разбираемся ...
tvister вне форума   Ответить с цитированием
Старый 30.03.2019, 22:27   #400
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Чудеса встречаются... Ничего не делал, все нормализовалось само собой. Лог чистый, но модели в простом редакторе нет. С учетом недоведенного вооружения и в целом не законченной 3д модели, результат вполне предсказуем. Попробую добавить хуки.
tvister вне форума   Ответить с цитированием
Ответ


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

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

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

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

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


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


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