AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   W.I.P. (http://forum.aviaskins.com/forumdisplay.php?f=38)
-   -   Tachikawa Ki-36 Type98 (Ida) (http://forum.aviaskins.com/showthread.php?t=4874)

Vasya 29.03.2019 14:44

Цитата:

Сообщение от tvister (Сообщение 192041)
Не правильно выразился, два файла (блокнот у меня). Это в классах. А в 3д две папки, но с этим вопросом я разобрался.
Удалось импортировать модель в Ил. Багов меньше чем ожидалось, но тени нужно править. Много недоделок по 3д. Ну и классы надо переделать.

Ничего не поял. Какие два файла?
Обычно вписывают папку с планером с приставкой (Multi1) - это для всех стран и иногда есть ещё папка с прыставкой страны - типа (USA).

tvister 29.03.2019 14:56

Василий, я о другом моменте. В классах в \com\maddox\il2\objects\air два блокнота D3A и D3A1, есла смотреть Вел. Что и зачем записано в этих блокнотах. В первом D3A, я так понял, все, что связанно с движущимися частями. Второй D3A1 это вооружение, летная модель и еще какие то блоки, назначений которых я пока не понял. Думаю нужно создать отдельную тему по классам, с детальным разбором всех составляющих классов. У меня в планах кроме Ки-36, доводка по образцу и подобию Ки-30, а там классы тоже править надо. Да и не только Ки-30...
Попробую попробую создать тему, может кто подключится.

Vasya 29.03.2019 15:07

Цитата:

Сообщение от tvister (Сообщение 192043)
Василий, я о другом моменте. В классах в \com\maddox\il2\objects\air два блокнота D3A и D3A1, есла смотреть Вел. Что и зачем записано в этих блокнотах. В первом D3A, я так понял, все, что связанно с движущимися частями. Второй D3A1 это вооружение, летная модель и еще какие то блоки, назначений которых я пока не понял. Думаю нужно создать отдельную тему по классам, с детальным разбором всех составляющих классов. У меня в планах кроме Ки-36, доводка по образцу и подобию Ки-30, а там классы тоже править надо. Да и не только Ки-30...
Попробую попробую создать тему, может кто подключится.

Вот есть тема.
http://forum.aviaskins.com/showthrea...t=3499&page=20

tarakan67 29.03.2019 16:05

Цитата:

Сообщение от tvister (Сообщение 192043)
В классах в \com\maddox\il2\objects\air два блокнота D3A и D3A1, есла смотреть Вел.

Собственно класс самолёта и родительский класс. То есть в родительском классе описывается всё, что общее для D3A всех модификаций. А в классе то, что строго индивидуально для данной модификации(включая набор вооружения)

pepelatz 29.03.2019 16:14

Цитата:

Сообщение от tvister (Сообщение 192043)
У меня в планах кроме Ки-36, доводка по образцу и подобию Ки-30...

https://3.bp.blogspot.com/-s4VXZKxqC...600/reihr4.gif

tvister 29.03.2019 16:39

Спасибо всем.
Эту тему я пропустил. Много интересного, но не всё. Василий, а где лежат данные по прочности планера и других частей самолета? Мне показалось, что прочность планера Иды маленько завышена.
Наблюдатель-пулеметчик в Ки-36 от САС, занимает неправильную позицию, в реале он должен сидеть лицом к пилоту и занимать боевое положение лицом к хвосту, приподнимая пулемет (потрошить Е-13а). Вооружение тоже хотелось бы поправить. Разваливаться и падать самолет должен тоже правильно.

Vasya 29.03.2019 16:56

Цитата:

Сообщение от tvister (Сообщение 192051)
Спасибо всем.
Эту тему я пропустил. Много интересного, но не всё. Василий, а где лежат данные по прочности планера и других частей самолета? Мне показалось, что прочность планера Иды маленько завышена.
Наблюдатель-пулеметчик в Ки-36 от САС, занимает неправильную позицию, в реале он должен сидеть лицом к пилоту и занимать боевое положение лицом к хвосту, приподнимая пулемет (потрошить Е-13а). Вооружение тоже хотелось бы поправить. Разваливаться и падать самолет должен тоже правильно.

В фм есть раздел по прочности с циферками напротив.
В классе в разделе Хит-бон описываются не только повреждения, которые согласовываются с дамаж можелью, но и взаимодействие всех мешей между собой.
Если код взаимодействия будет совпадать с набором мешей по именам, то и крашить самолёт будет правильно.
Поэтому я предложил сделать планер Иды по мешам подобным Д3А, что бы облегчить работу и не писать код повреждений с нуля, что несколько трудойомко, имею в виду согласование кода и дамаж модели в 3До. Трудойомко - имею в виду для новичков любителей вроде нас.

tvister 06.04.2019 00:49

Вложений: 1
Добавил к модельке все хуки, но без толку. Картина та же, самолет есть в окне просмотра в полном редакторе (но в игре нет). В простом, самолета и вооружения тоже нет. Правда нет ни теней, ни лодов, ни коллиженов.:I'm_thinking:

Vasya 06.04.2019 02:10

Цитата:

Сообщение от tvister (Сообщение 192993)
Добавил к модельке все хуки, но без толку. Картина та же, самолет есть в окне просмотра в полном редакторе (но в игре нет). В простом, самолета и вооружения тоже нет. Правда нет ни теней, ни лодов, ни коллиженов.:I'm_thinking:

Вот эти два раздела:
Код:

Property.set(class1, "LOSElevation", 0.87195F);
        Aircraft.weaponTriggersRegister(class1, new int[] {
            0, 10, 10, 3, 3, 3, 3, 3, 3, 3,
            3, 3, 3, 3, 3, 3, 3, 3, 3
        });
        Aircraft.weaponHooksRegister(class1, new String[] {
            "_MGUN01", "_MGUN02", "_MGUN03", "_ExternalBomb02", "_ExternalBomb03", "_ExternalBomb01", "_ExternalBomb04", "_ExternalBomb05", "_ExternalBomb06", "_ExternalBomb07",
            "_ExternalBomb08", "_ExternalBomb09", "_ExternalBomb10", "_ExternalBomb11", "_ExternalBomb12", "_ExternalBomb13", "_ExternalBomb14", "_ExternalBomb15", "_ExternalBomb16"
        });

Должны быть выписаны в точности с хуками в мешах и названия должны совпадать.
Инача в простом редакторе самолёт виден не будет.
П.С. Если в классе хуков слегка вписано больше - это ничего, но -ГЛАВНОЕ - полное совпадение в очерёдности и названиях хуков..

tvister 06.04.2019 08:25

Доброго времени суток. Переписал вооружение "по модному":) Вот как получилось:
Было

PHP код:

Property.set(var_class"LOSElevation"0.87195F);
    
weaponTriggersRegister(var_class, new int[] { 01033});
    
weaponHooksRegister(var_class,
                new 
String[] { "_MGUN01""_MGUN02",
                       
"_ExternalBomb02",
                       
"_ExternalBomb03",
                       
"_ExternalBomb01" });
    
weaponsRegister(var_class"default",
            (new 
String[]
             { 
"MGunVikkersKsi 600",
               
"MGunVikkersKt 600"nullnullnull }));
    
weaponsRegister(var_class"1x250",
            new 
String[] { "MGunVikkersKsi 600",
                       
"MGunVikkersKt 600"nullnull,
                       
"BombGun250kgJ 1" });
    
weaponsRegister(var_class"1x2502x30",
            new 
String[] { "MGunVikkersKsi 600",
                       
"MGunVikkersKt 600""BombGun30kgJ 1",
                       
"BombGun30kgJ 1""BombGun250kgJ 1" });
    
weaponsRegister(var_class"1x2502x60",
            new 
String[] { "MGunVikkersKsi 600",
                       
"MGunVikkersKt 600""BombGun60kgJ 1",
                       
"BombGun60kgJ 1""BombGun250kgJ 1" });
    
weaponsRegister(var_class"none",
            new 
String[] { nullnullnullnullnull });
    }


Стало

PHP код:

Property.set(var_class"LOSElevation"0.87195F);
    
Aircraft.weaponTriggersRegister(var_class, new int[] { 01033});
    
Aircraft.weaponHooksRegister(var_class,
                (new 
String[] { "_MGUN01""_MGUN02",
                       
"_ExternalBomb02",
                       
"_ExternalBomb03",
                       
"_ExternalBomb01" }));
    try {
        
ArrayList arraylist = new ArrayList();
        
Property.set(var_class"weaponsList"arraylist);
        
HashMapInt hashmapint = new HashMapInt();
        
Property.set(var_class"weaponsMap"hashmapint);
        
int i 5;
        
Aircraft._WeaponSlot[] var__WeaponSlots
        
= new Aircraft._WeaponSlot[i];
        
String string "default";
        
var__WeaponSlots = new Aircraft._WeaponSlot[i];
        
var__WeaponSlots[0]
        = new 
Aircraft._WeaponSlot(0"MGunVikkerssi"400);
        
var__WeaponSlots[1]
        = new 
Aircraft._WeaponSlot(10"MGunVikkersKt"420);
        
var__WeaponSlots[2] = null;
        
var__WeaponSlots[3] = null;
        
var__WeaponSlots[4] = null;
        for (
int i_1_ 5i_1_ ii_1_++)
        
var__WeaponSlots[i_1_] = null;
        
arraylist.add(string);
        
hashmapint.put(Finger.Int(string), var__WeaponSlots);
        
string "1x250";
        
var__WeaponSlots = new Aircraft._WeaponSlot[i];
        
var__WeaponSlots[0]
        = new 
Aircraft._WeaponSlot(0"MGunVikkerssi"400);
        
var__WeaponSlots[1]
        = new 
Aircraft._WeaponSlot(10"MGunVikkersKt"420);
        
var__WeaponSlots[2]
        = new 
Aircraft._WeaponSlot(3"BombGun250kgJ"1);
        
var__WeaponSlots[3] = null;
        
var__WeaponSlots[4] = null;
        for (
int i_2_ 5i_2_ ii_2_++)
        
var__WeaponSlots[i_2_] = null;
        
arraylist.add(string);
        
hashmapint.put(Finger.Int(string), var__WeaponSlots);
    } catch (
Exception exception) {
        
/* empty */
    
}
    }


Класс экспериментальный. Пока только два пулемета как и в реале и одна двухсот пятидесяти килограммовка.
Самолет все равно не собирается. Посмотрю правильность наименования мешей и хуков.

Vasya 06.04.2019 18:50

Выкинь нахер этот вар_класс и напиши по людски, что бы Ил не давился САСовской стряпьнёй.
Вот только калякал класс для УТ-1ГАЗ., родного класса не было.
Молва не дал мода - пришлось тестить на другом УТ-1.
Код:

    private static Aircraft._WeaponSlot[] GenerateDefaultConfig(int i)
    {
        Aircraft._WeaponSlot a_lweaponslot[] = new Aircraft._WeaponSlot[i];
        try
        {
            a_lweaponslot[0] = null;               
        }
        catch(Exception exception) { }
        return a_lweaponslot;
    }

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

    static
    {
        Class class1 = com.maddox.il2.objects.air.UT_1GAZ.class;
        new NetAircraft.SPAWN(class1);
        Property.set(class1, "iconFar_shortClassName", "UT-1GAZ");
        Property.set(class1, "meshName", "3DO/Plane/UT-1/hier.him");
        Property.set(class1, "PaintScheme", new PaintSchemeFMPar05());
        Property.set(class1, "yearService", 1937F);
        Property.set(class1, "yearExpired", 1952F);
        Property.set(class1, "FlightModel", "FlightModels/UT-1GAZ.fmd:UT1_FM");
        Property.set(class1, "cockpitClass", new Class[] {
            com.maddox.il2.objects.air.CockpitUT1.class
        });
        Aircraft.weaponTriggersRegister(class1, new int[] {
            0
        });
        Aircraft.weaponHooksRegister(class1, new String[] {
            "null"
        });
        try
        {
            ArrayList arraylist = new ArrayList();
            Property.set(class1, "weaponsList", arraylist);
            HashMapInt hashmapint = new HashMapInt();
            Property.set(class1, "weaponsMap", hashmapint);
            byte byte0 = 1;
            String s = "default";
            Aircraft._WeaponSlot a_lweaponslot[] = new Aircraft._WeaponSlot[byte0];
            a_lweaponslot[0] = null;
            for(int i = 1; i < byte0; i++)
                a_lweaponslot[i] = null;

            arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "none";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];
            a_lweaponslot[0] = null;
            for(int l = 0; l < byte0; l++)
                a_lweaponslot[l] = null;

            arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
        }
        catch(Exception exception) { }
    }
}

Структура не нарушена - можно копировать и менять названия самолёта, кокпита и количество хуков.
----------------------------------------
Вот в Як-1 так записываются хуки.
Код:

        Aircraft.weaponHooksRegister(class1, new String[] {
            "_MGUN01", "_MGUN02", "_CANNON01", "_ExternalDev01", "_ExternalDev02", "_ExternalDev03", "_ExternalDev04", "_ExternalDev05", "_ExternalDev06", "_ExternalRock01",
            "_ExternalRock02", "_ExternalRock03", "_ExternalRock04", "_ExternalRock05", "_ExternalRock06", "_ExternalBomb01", "_ExternalBomb02"
        });


tvister 07.04.2019 01:22

Спасибо Василий, мне бы еще фрагмент кода с вооружением. Попробовал вставить часть кода из предыдущего сообщения, перестает компилировать в класс...

Vasya 07.04.2019 02:15

Цитата:

Сообщение от tvister (Сообщение 193146)
Спасибо Василий, мне бы еще фрагмент кода с вооружением. Попробовал вставить часть кода из предыдущего сообщения, перестает компилировать в класс...

Не забудь прописать в начале класса.
Код:

import com.maddox.il2.objects.weapons.*;
import com.maddox.il2.objects.weapons.GunEmpty;
import com.maddox.util.HashMapInt;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;
import com.maddox.util.HashMapInt;
import com.maddox.rts.Finger;
import com.maddox.rts.Property;
import com.maddox.rts.*;


tvister 07.04.2019 02:42

Василий, извини за глупые вопросы, прописать весь фрагмент или то, что отмечено звездочками?
И как писать вот эту часть (вооружение)?
PHP код:

String string "default";
        
var__WeaponSlots = new Aircraft._WeaponSlot[i];
        
var__WeaponSlots[0]
        = new 
Aircraft._WeaponSlot(0"MGunVikkerssi"400);
        
var__WeaponSlots[1]
        = new 
Aircraft._WeaponSlot(10"MGunVikkersKt"420);
        
var__WeaponSlots[2] = null;
        
var__WeaponSlots[3] = null;
        
var__WeaponSlots[4] = null;
        for (
int i_1_ 5i_1_ ii_1_++)
        
var__WeaponSlots[i_1_] = null;
        
arraylist.add(string);
        
hashmapint.put(Finger.Int(string), var__WeaponSlots);
        
string "1x250";
        
var__WeaponSlots = new Aircraft._WeaponSlot[i];
        
var__WeaponSlots[0]
        = new 
Aircraft._WeaponSlot(0"MGunVikkerssi"400);
        
var__WeaponSlots[1]
        = new 
Aircraft._WeaponSlot(10"MGunVikkersKt"420);
        
var__WeaponSlots[2]
        = new 
Aircraft._WeaponSlot(3"BombGun250kgJ"1);
        
var__WeaponSlots[3] = null;
        
var__WeaponSlots[4] = null;
        for (
int i_2_ 5i_2_ ii_2_++)
        
var__WeaponSlots[i_2_] = null;
        
arraylist.add(string);
        
hashmapint.put(Finger.Int(string), var__WeaponSlots);
            
string "none";
        
var__WeaponSlots = new Aircraft._WeaponSlot[i];
        
var__WeaponSlots[0] = null;
        
var__WeaponSlots[1] = null;
        
var__WeaponSlots[2] = null;
        
var__WeaponSlots[3] = null;
        
var__WeaponSlots[4] = null;
        for (
int i_3_ 0i_3_ ii_3_++)
        
var__WeaponSlots[i_3_] = null

Есть ли какие то особенности?

Vasya 07.04.2019 12:29

Буду прздно вечером дома.
Скинь тут архивчик с исходниками/ джава-файлами.
Я выпишу всё как нужно - как учил делать Лакота на Запасном.

tvister 07.04.2019 13:21

Вложений: 1
Вот архив с исходниками и моей версией класса.
В архиве ява файлы:
D3A-материнский файл
D3A1-дочерний файл
Ki_36-дочерний файл от САС
Ki_36M-мой материнский файл на основе D3A
Ki_36X-материнский файл от САС
Ki_36- дочерний файл моя версия

Правда у нас разные версии явы.

yt2 07.04.2019 17:06

шерстите авиаскинс лучше. сто раз писали примеры.
стоковая запись оружия
weaponsRegister(class1, "default",new String[] {
"MGunMAC1934 675", "MGunMAC1934 675", "MGunMAC1934 675", "MGunMAC1934 675",
"MGunHispanoMkIkpzl 60"
});
требует cod файл и поэтому с ней сложно работать.

Но спецом для тестов (ну версию не помню но давно) ввели добавку Х
Если написать так
XweaponsRegister(class1, "default",new String[] {
"MGunMAC1934 675", "MGunMAC1934 675", "MGunMAC1934 675", "MGunMAC1934 675",
"MGunHispanoMkIkpzl 60"
});
то cod файл будет не нужен. а синтаксис прописки оружия будет полностью совместим с дефолтным.

Vasya 07.04.2019 17:10

Цитата:

Сообщение от tvister (Сообщение 193214)
Вот архив с исходниками и моей версией класса.
В архиве ява файлы:
D3A-материнский файл
D3A1-дочерний файл
Ki_36-дочерний файл от САС
Ki_36M-мой материнский файл на основе D3A
Ki_36X-материнский файл от САС
Ki_36- дочерний файл моя версия

Правда у нас разные версии явы.

У меня десятка винда и джава достаточно новая.
Но переменная не столь важна.
При компиляции в батнике прописана джава 1.3.1 - именно та, которая подходит для Ила по синтаксису.
Захожу сейчас на форум с рабочего фай-фая.
Дома вечером разберусь с классами и дам ответ.
Прошу подождать до 22-00.

Vasya 07.04.2019 17:14

Цитата:

Сообщение от yt2 (Сообщение 193236)
шерстите авиаскинс лучше. сто раз писали примеры.
стоковая запись оружия
weaponsRegister(class1, "default",new String[] {
"MGunMAC1934 675", "MGunMAC1934 675", "MGunMAC1934 675", "MGunMAC1934 675",
"MGunHispanoMkIkpzl 60"
});
требует cod файл и поэтому с ней сложно работать.

Но спецом для тестов (ну версию не помню но давно) ввели добавку Х
Если написать так
XweaponsRegister(class1, "default",new String[] {
"MGunMAC1934 675", "MGunMAC1934 675", "MGunMAC1934 675", "MGunMAC1934 675",
"MGunHispanoMkIkpzl 60"
});
то cod файл будет не нужен. а синтаксис прописки оружия будет полностью совместим с дефолтным.

Готовую констркуцию привёл выше, но Твистер не увидел её к сожалению.
Если переписать по Лакотовски - всё будет отлично.

tvister 07.04.2019 18:48

Коллеги, всем спасибо за помощь! Взяв за образец части кода от Василия и пересмотрев классы модных самолетов, обнаружил сходство написания в классе Е13А. Все переписал по образу и подобию, но и теперь ява-файл не компилируется в класс. Почему то ругается на кокпит. :(
Надеюсь на помощь от Василия...


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

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