AviaSkins.Forums

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

Важная информация

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

Цитата:
Сообщение от tvister Посмотреть сообщение
MGunVikkersKt.
Можно сделать так:
Взять Велл или чего другое и поставить код стрелка туда и проверить.
А лучше давай класс мне - я проверю на похожем самолёте.
Думаю, что очепятки в классе с пропиской вооружения или в самом классе виккерса. Возможно стоит модный класс виккерса с ошибками.
Vasya вне форума   Ответить с цитированием
Старый 24.12.2019, 14:44   #2
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,907
По умолчанию

Цитата:
Сообщение от tvister Посмотреть сообщение
Есть мысли, что виноват кокпит стрелка Энн. Уж очень велико расстояние между центральными точками опоры пулемета внешней модели и пулемета кокпита.
Это не верное предположение. Управляется и стреляет один ствол - на внешней модели. Ствол в кабине это "муляж" по сути. Совмещение внешней модели и модели кабины необходимо только из эстетических соображений.

Могу предположить, что проблема в изначальном наклонном положении хука стрелковой точки. То есть в момент старта миссии нулевыми считаются координаты "транспортного положения". У СБ - там где верхний шкас поднимается - ствол изначально горизонтально. В Р-5 и У-2 перемещение стволов реализовано через фейковый мешь. То есть крутится ствол, который не связан с хуком. после завершения анимации перевода в боевое положение фейковый ствол скрывается а связанный с хуком наоборот показывается. И он изначально в горизонтальном "рабочем" состоянии. Может попробовать так сделать?
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura вне форума   Ответить с цитированием
Старый 24.12.2019, 00:02   #3
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,600
По умолчанию

Он-лайн декомпилятор.
http://www.javadecompilers.com/?fbcl...LEyqOVAWWk9FGw
Vasya вне форума   Ответить с цитированием
Старый 24.12.2019, 00:26   #4
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

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

Цитата:
Сообщение от tvister Посмотреть сообщение
Я не специалист, но все кроме пулемета работает.
Откуда код для стрелка брал в класс?
От Д3А дефолтного не подошёл?
Код:
public boolean turretAngles(int i, float af[])
    {
        boolean flag = super.turretAngles(i, af);
        float f = -af[0];
        float f1 = af[1];
        switch(i)
        {
        case 0: // '\0'
            if(f < -33F)
            {
                f = -33F;
                flag = false;
            }
            if(f > 33F)
            {
                f = 33F;
                flag = false;
            }
            if(f1 < -3F)
            {
                f1 = -3F;
                flag = false;
            }
            if(f1 > 62F)
            {
                f1 = 62F;
                flag = false;
            }
            break;
        }
        af[0] = -f;
        af[1] = f1;
        return flag;
    }
Уже потихоньку один класс перебрал.
Кокпит стрелка должен называться так:
Код:
com.maddox.il2.objects.air.CockpitKi30A_TGunner.class

Последний раз редактировалось Vasya; 24.12.2019 в 00:59.
Vasya вне форума   Ответить с цитированием
Старый 24.12.2019, 01:00   #6
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,600
По умолчанию

Код:
package com.maddox.il2.objects.air;
import java.io.IOException;
import java.util.ArrayList;

import com.maddox.rts.Finger;
import com.maddox.rts.NetMsgGuaranted;
import com.maddox.rts.NetMsgInput;
import com.maddox.rts.Property;
import com.maddox.util.HashMapInt;

public class Ki30A extends Ki30
    implements TypeBomber
{

    public Ki30A()
    {
    }
    
    public boolean turretAngles(int i, float[] fs) {
	boolean bool = super.turretAngles(i, fs);
	float f = -fs[0];
	float f_0_ = fs[1];
	switch (i) {
	case 0:
	    if (f < -33.0F) {
		f = -33.0F;
		bool = false;
	    }
	    if (f > 33.0F) {
		f = 33.0F;
		bool = false;
	    }
	    if (f_0_ < -3.0F) {
		f_0_ = -3.0F;
		bool = false;
	    }
	    if (f_0_ > 62.0F) {
		f_0_ = 62.0F;
		bool = false;
	    }
	    /* fall through */
	default:
	    fs[0] = -f;
	    fs[1] = f_0_;
	    return bool;
	}
    }
    
    public boolean typeBomberToggleAutomation()
    {
        return false;
    }

    public void typeBomberAdjDistanceReset()
    {
    }

    public void typeBomberAdjDistancePlus()
    {
    }

    public void typeBomberAdjDistanceMinus()
    {
    }

    public void typeBomberAdjSideslipReset()
    {
    }

    public void typeBomberAdjSideslipPlus()
    {
    }

    public void typeBomberAdjSideslipMinus()
    {
    }

    public void typeBomberAdjAltitudeReset()
    {
    }

    public void typeBomberAdjAltitudePlus()
    {
    }

    public void typeBomberAdjAltitudeMinus()
    {
    }

    public void typeBomberAdjSpeedReset()
    {
    }

    public void typeBomberAdjSpeedPlus()
    {
    }

    public void typeBomberAdjSpeedMinus()
    {
    }

    public void typeBomberUpdate(float f)
    {
    }

    public void typeBomberReplicateToNet(NetMsgGuaranted netmsgguaranted)
        throws IOException
    {
    }

    public void typeBomberReplicateFromNet(NetMsgInput netmsginput)
        throws IOException
    {
    }
    
    private static Aircraft._WeaponSlot[] GenerateDefaultConfig(int i)
    {
        Aircraft._WeaponSlot a_lweaponslot[] = new Aircraft._WeaponSlot[i];
        try
        {
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = null;
            a_lweaponslot[3] = null;
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = 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.Ki30A.class;
        new NetAircraft.SPAWN(class1);
        Property.set(class1, "iconFar_shortClassName", "Ki-30A");
        Property.set(class1, "meshName", "Ki30A(Multi1)/hier.him");
        Property.set(class1, "PaintScheme", new PaintSchemeFMPar01());
        Property.set(class1, "yearService", 1935F);
        Property.set(class1, "yearExpired", 1946.5F);
        Property.set(class1, "FlightModel", "FlightModels/Ki30A.fmd:Ki30A_FM");
        Property.set(class1, "cockpitClass", new Class[] {
            com.maddox.il2.objects.air.CockpitKi30A.class, com.maddox.il2.objects.air.CockpitKi30A_TGunner.class
        });
        Property.set(class1, "LOSElevation", 0.742F);
        Aircraft.weaponTriggersRegister(class1, new int[] {
            0, 10, 3, 3, 3, 3, 3, 3, 3, 3,
	    3, 3, 3
        });
	Aircraft.weaponHooksRegister(class1, new String[] {
            "_MGUN01", "_MGUN02", "_ExternalBomb01", "_ExternalBomb02", "_ExternalBomb03", "_ExternalBomb04", "_BombSpawn01", "_BombSpawn02", "_BombSpawn03", "_BombSpawn04",
            "_BombSpawn05", "_BombSpawn06", "_BombSpawn07"
        });

Последний раз редактировалось Vasya; 24.12.2019 в 17:55.
Vasya вне форума   Ответить с цитированием
Старый 24.12.2019, 12:02   #7
GUZKNIFE
Местный
 
Аватар для GUZKNIFE
 
Регистрация: 03.03.2009
Адрес: г.Харьков
Сообщений: 229
Отправить сообщение для GUZKNIFE с помощью ICQ
По умолчанию

Цитата:
Сообщение от Vasya Посмотреть сообщение
Код:
    
    private static Aircraft._WeaponSlot[] GenerateDefaultConfig(int i)
    {
        Aircraft._WeaponSlot a_lweaponslot[] = new Aircraft._WeaponSlot[i];
        try
        {
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = null;
            a_lweaponslot[3] = null;
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = null;         
        }
        catch(Exception exception) { }
        return a_lweaponslot;
    }
Немного комментария по этому классу.В данном классе этот раздел-бесполезная функция.Если бы её не было,то на классе это никак не отразиться.Вопрос?Вы знаете её назначение???
GUZKNIFE вне форума   Ответить с цитированием
Старый 24.12.2019, 17:51   #8
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,600
По умолчанию

Цитата:
Сообщение от GUZKNIFE Посмотреть сообщение
Немного комментария по этому классу. В данном классе этот раздел-бесполезная функция. Если бы её не было,то на классе это никак не отразиться. Вопрос? Вы знаете её назначение???
Для меня не безполезная.
Я знаю, что это дубляж дефаулт. И шо?
Просто раздел дефаулт с этой функцией можно не писать, но я пишу.
Пререпроверка наличного вооружения.
Vasya вне форума   Ответить с цитированием
Старый 24.12.2019, 01:02   #9
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,600
По умолчанию

Код:
        try
        {
            ArrayList arraylist = new ArrayList();
            Property.set(class1, "weaponsList", arraylist);
            HashMapInt hashmapint = new HashMapInt();
            Property.set(class1, "weaponsMap", hashmapint);
            byte byte0 = 13;
            String s = "default";
            Aircraft._WeaponSlot a_lweaponslot[] = new Aircraft._WeaponSlot[byte0];
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = null;
            a_lweaponslot[3] = null;
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = null;
            for(int i = 13; i < byte0; i++)
                a_lweaponslot[i] = null;
	
	    arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "6x50kg";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];           
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = null;
            a_lweaponslot[3] = null;
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[7] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[8] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[9] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[10] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[11] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[12] = null;
            for(int j = 13; j < byte0; j++)
                a_lweaponslot[j] = null;
	
	    arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "3x100kg";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0]; 
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = null;
            a_lweaponslot[3] = null;
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[11] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[12] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            for(int j1 = 13; j1 < byte0; j1++)
                a_lweaponslot[j1] = null;
Vasya вне форума   Ответить с цитированием
Старый 24.12.2019, 01:02   #10
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,600
По умолчанию

Код:
            arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "4x100kg";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0]; 
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[3] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[4] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[5] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = null;
            for(int j2 = 13; j2 < byte0; j2++)
                a_lweaponslot[j2] = null;
				
	    arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "1x250kg";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];           
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = null;
            a_lweaponslot[3] = null;
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = new Aircraft._WeaponSlot(3, "BombGun250kgJ", 1);
            for(int j3 = 1; j3 < byte0; j3++)
                a_lweaponslot[j3] = null;				
					
	    arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "1x250kg+4x50kg";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];           
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[3] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[4] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[5] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = new Aircraft._WeaponSlot(3, "BombGun250kgJ", 1);
            for(int j4 = 1; j4 < byte0; j4++)
                a_lweaponslot[j4] = null;				
					
            arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "1x250kg+2x100kg";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];           
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[3] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = new Aircraft._WeaponSlot(3, "BombGun250kgJ", 1);
            for(int j5 = 1; j5 < byte0; j5++)
                a_lweaponslot[j5] = null;					
	    
	    arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "10x50kg";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];           
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[3] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[4] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[5] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[6] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[7] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[8] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[9] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[10] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[11] = new Aircraft._WeaponSlot(3, "BombGun50kgJ", 1);
            a_lweaponslot[12] = null;
            for(int j6 = 13; j6 < byte0; j6++)
                a_lweaponslot[j6] = null;
	    
	    arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "5x100kg";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0]; 
            a_lweaponslot[0] = new Aircraft._WeaponSlot(0, "MGunVikkersKsi", 700);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(10, "MGunVikkersKt", 600);
            a_lweaponslot[2] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[3] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[4] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[5] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = new Aircraft._WeaponSlot(3, "BombGun100kgJ", 1);
            for(int j7 = 13; j7 < byte0; j7++)
                a_lweaponslot[j7] = null;
	    
            arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "none";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];
            a_lweaponslot[0] = null;
            a_lweaponslot[1] = null;
            a_lweaponslot[2] = null;
            a_lweaponslot[3] = null;
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = 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) { }
    }
}
Vasya вне форума   Ответить с цитированием
Старый 24.12.2019, 01:24   #11
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,600
Сообщение

Взято из CockpitD3A2_TGunner.java

Код:
    public void moveGun(Orient orient)
    {
        super.moveGun(orient);
        mesh.chunkSetAngles("Turret1A", 0.0F, orient.getYaw(), 0.0F);
        mesh.chunkSetAngles("Turret1B", 0.0F, orient.getTangage(), 0.0F);
    }

    public void clipAnglesGun(Orient orient)
    {
        if(isRealMode())
            if(!aiTurret().bIsOperable)
            {
                orient.setYPR(0.0F, 0.0F, 0.0F);
            } else
            {
                float f = orient.getYaw();
                float f1 = orient.getTangage();
                if(f < -33F)
                    f = -33F;
                if(f > 33F)
                    f = 33F;
                if(f1 > 62F)
                    f1 = 62F;
                if(f1 < -3F)
                    f1 = -3F;
                orient.setYPR(f, f1, 0.0F);
                orient.wrap();
            }
    }
Код:
    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;
    }
    
    static 
    {
        Property.set(com.maddox.il2.objects.air.CockpitKi30A_TGunner.class, "aiTuretNum", 0);
        Property.set(com.maddox.il2.objects.air.CockpitKi30A_TGunner.class, "weaponControlNum", 10);
        Property.set(com.maddox.il2.objects.air.CockpitKi30A_TGunner.class, "astatePilotIndx", 1);
    }
}

Последний раз редактировалось Vasya; 24.12.2019 в 11:25. Причина: исправление ошибок
Vasya вне форума   Ответить с цитированием
Старый 24.12.2019, 01:50   #12
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,600
Смущение

Вот, что получилось на скорую руку.
Компилится в среде 4.13.4.
В архиве классы+джава и готовые хеши.
Очень хочеться что бы получилось настроить Ки-30.
Буду рад участвовать и далее в проектах.
---------------------------
Исправил очепятки 25 декабря.
Вложения
Тип файла: rar КІ-30--ВИПРАВЛЕНИЙ--25-12.rar (84.0 Кб, 442 просмотров)

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

Цитата:
Сообщение от Vasya Посмотреть сообщение
Вот, что получилось на скорую руку.
Компилится в среде 4.13.4.
Василий спасибо за помощь! Увы, но вашими классами вылет на 60%. Может потому, что у меня версия Ил-а 4.12?

Цитата:
Сообщение от Asura Посмотреть сообщение
Это не верное предположение. Управляется и стреляет один ствол - на внешней модели. Ствол в кабине это "муляж" по сути. Совмещение внешней модели и модели кабины необходимо только из эстетических соображений.
Ясно, значит кокпит тут не причем.
Цитата:
Сообщение от Asura Посмотреть сообщение
Могу предположить, что проблема в изначальном наклонном положении хука стрелковой точки. То есть в момент старта миссии нулевыми считаются координаты "транспортного положения". У СБ - там где верхний шкас поднимается - ствол изначально горизонтально. В Р-5 и У-2 перемещение стволов реализовано через фейковый мешь. То есть крутится ствол, который не связан с хуком. после завершения анимации перевода в боевое положение фейковый ствол скрывается а связанный с хуком наоборот показывается. И он изначально в горизонтальном "рабочем" состоянии. Может попробовать так сделать?
Интересная идея, тем более, что сидя на месте стрелка, на автомате, я замечал, что он как бы чуть задирает ствол. Может как раз на те же 30 градусов?
Попробую разобрать хеши от Василия и глянуть дефолт Р-5.
tvister вне форума   Ответить с цитированием
Старый 24.12.2019, 21:48   #14
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Глянул Р-5 в дефолте. У него нет анимации подъема или спуска пулемета. Обычный жестко закрепленный вариант пулемета.
tvister вне форума   Ответить с цитированием
Старый 28.12.2019, 12:44   #15
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,907
По умолчанию

Цитата:
Сообщение от tvister Посмотреть сообщение
Глянул Р-5 в дефолте. У него нет анимации подъема или спуска пулемета. Обычный жестко закрепленный вариант пулемета.
Первый скрин - походное положение - это фейк.

Второй скрин - рабочее положение - стволы с хуками.

Третий - структура модели - видно основную турель - она всегда в рабочем положении и фейк - она анимирована. При этом хуки не двигаются и в начале миссии их нулевые координаты в нужном положении.
Миниатюры
Нажмите на изображение для увеличения
Название: grab0000.jpg
Просмотров: 392
Размер:	1.17 Мб
ID:	63493   Нажмите на изображение для увеличения
Название: grab0001.jpg
Просмотров: 392
Размер:	1.09 Мб
ID:	63494   Нажмите на изображение для увеличения
Название: Untitled-2.jpg
Просмотров: 391
Размер:	458.1 Кб
ID:	63495  
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura вне форума   Ответить с цитированием
Старый 30.12.2019, 10:20   #16
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Доброго времени суток. Я хотел сказать, что в 4.12 положение пулемета стрелка-наблюдателя, не меняется. Поворачивается сама фигурка стрелка.
Пока экспериментирую с классами СБ. Однако пока безуспешно. Не хотят компилироваться с одной стороны, с другой много непонятностей с названием мешей, добрая половина которых в классе просто не упоминается, соответственно не ясно их назначение.
tvister вне форума   Ответить с цитированием
Старый 25.12.2019, 00:02   #17
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,600
Восклицание

Цитата:
Сообщение от tvister Посмотреть сообщение
Василий спасибо за помощь! Увы, но вашими классами вылет на 60%. Может потому, что у меня версия Ил-а 4.12?


Ясно, значит кокпит тут не причем.

Интересная идея, тем более, что сидя на месте стрелка, на автомате, я замечал, что он как бы чуть задирает ствол. Может как раз на те же 30 градусов?
Попробую разобрать хеши от Василия и глянуть дефолт Р-5.
Не нужно разбирать хеши - там вложены исходники.
Скинь мне будь-ласка в личку планер с кокпитом - я посмотрю как работает анимация пулемётиста.
И версия 4.12.2 - 4.13.4 должна быть без разницы.
Там простой код.
Vasya вне форума   Ответить с цитированием
Старый 25.12.2019, 00:28   #18
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

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

Цитата:
Сообщение от tvister Посмотреть сообщение
Отправил в личку. Это версия с анимированным не стреляющим пулеметом и корявыми сканами за которые я еще не брался.
Уже скачал.
Сейчас проверю.
Пока проверял классы:
приделал 3До от Д3А2.,
миссия загрузилась в патчах 4.12.2 и в 4.13.4.
Правда в кокпит не смог зайти - какчество приборов Айчы не соответствует классам от Ки-30.
Попутно переписал фм и мотор для Айчи - буду тестить сегодня.
На картинках планер Айчы на классах от Ки-30.
Миниатюры
Нажмите на изображение для увеличения
Название: 2019.12.24 22-43-16.jpg
Просмотров: 455
Размер:	276.2 Кб
ID:	63463   Нажмите на изображение для увеличения
Название: 2019.12.24 22-43-25.jpg
Просмотров: 467
Размер:	249.2 Кб
ID:	63464  
Vasya вне форума   Ответить с цитированием
Старый 25.12.2019, 02:21   #20
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,600
По умолчанию

Уже грузиться в миссии.
Читаю фм и рою интернет.
Vasya вне форума   Ответить с цитированием
Ответ


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

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

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

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

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


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


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