AviaSkins.Forums

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.10.2021, 17:31   #1
andrey65
Модератор
 
Аватар для andrey65
 
Регистрация: 05.11.2007
Адрес: Кемеровская область
Сообщений: 7,639
По умолчанию

https://www.sas1946.com/main/index.p...html#msg691231
вот вроде сам мод, а поиском на САС по слову маяк - "Lighthouse" находится и что-то про Яву.
andrey65 на форуме   Ответить с цитированием
Старый 16.10.2021, 21:24   #2
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Cпасибо, мод скачал, буду разбираться.
tvister вне форума   Ответить с цитированием
Старый 24.10.2021, 13:41   #3
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 2,225
По умолчанию

Здравствуйте. Прошу помощи в решении следующей задачи:
Имеется некий меш (А). Необходимо создать java код, который при нажатии определённой клавиши заставит этот меш повернуться вокруг оси на определённое количество градусов, а потом (или одновременно с этим) переместить меш на определённое количество метров вдоль какой-либо из осей. Прошу Гуру помочь в решении этой задачи.
tarakan67 вне форума   Ответить с цитированием
Старый 25.10.2021, 09:35   #4
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
По умолчанию

resetYPRmodifier(); - обнулить значения

//установить значение смещения по осям
xyz[0] = 0.4f*setNew.fire;
xyz[1] = 0.4f*setNew.fire;
xyz[2] = 0.4f*setNew.fire;

//установить поворот по посям
ypr[0] = 0.4f*setNew.fire;
ypr[1] = 0.4f*setNew.fire;
ypr[2] = 0.4f*setNew.fire;

mesh.chunkSetLocate("Z_Fire", xyz, ypr); //одновременный поворот и смещение указанного меша на ранее заданные значения. Можно только смещать (YPR просто не указываются) или только вращать (но вращать проще mesh.chunkSetAngles)
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

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

Asura вне форума   Ответить с цитированием
Старый 25.10.2021, 12:25   #5
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 2,225
По умолчанию

К сожалению не получилось. Меш просто пропадает и всё. Хочу пояснить: я пытаюсь сделать анимацию отката рампы на Ан-26 на внешнем виде. Посмотрев реализацию сдвига фонаря на других самолётах увидел, что везде используется оператор вида:
Aircraft.xyz[1] = Aircraft.cvt((аргумент0)f, (аргумент1)F, (аргумент2)F, (аргумент3)F, (аргумент4)F);
Можете объяснить значения этих аргументов? Правильно ли я делаю, используя переменную cvt?
При попытке использовать Ваш код эклипс ругается на отсутствие переменной setNew
tarakan67 вне форума   Ответить с цитированием
Старый 26.10.2021, 12:44   #6
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
По умолчанию

Ну мой код не надо было прям копировать. Это был просто пример реализации. Я подозреваю что меш не пропадает, он просто очень сильно сдвигается. Оперировать надо сотыми долями при сдвиге.

Конструкция cvt работает следующим образом (на примере сдвига фонаря):

resetYPRmodifier();
Aircraft.xyz[1] = Aircraft.cvt(f, 0.01F, 0.99F, 0.0F, 0.55F);
hierMesh().chunkSetLocate("Blister1_D0", Aircraft.xyz, Aircraft.ypr);

Aircraft.xyz[1] или Aircraft.xyz[0] или Aircraft.xyz[2] - ось по которой будет происходить сдвиг

дальше можно расшифровать так - при значениях F от 0.01 до 0.99 установить значение Aircraft.xyz[1] (т.е. сдвинуть) от 0.0 до 0.55

оператор cvt устанавливает значение переменной в зависимости от другой переменной используя диапазон изменений.

переменная фонаря изменяется от 0 (закрыт) до 1 (открыт) при этом значения положения меняются плавно от 0 к 1.

с помощью CVT положение меша меняется плавно от 0 до 0.55, то есть происходит визуальное открытие фонаря.
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

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

Asura вне форума   Ответить с цитированием
Старый 26.10.2021, 14:03   #7
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 2,225
По умолчанию

Спасибо! Всё получилось.
tarakan67 вне форума   Ответить с цитированием
Старый 17.11.2021, 18:35   #8
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 2,225
По умолчанию

Опять у меня залипуха с Ан-26 (точнее с его рампой). В оригинальном моде открытие рампы "завязано" на управление воздушным тормозом (moveAirBrake). Но тогда у ботов десантирование людей и грузов происходит "сквозь рампу", то есть она(рампа) при десантировании ботами не открывается(откатывается). Я попробовал "привязать" управление рампой на управление створками бомболюка (moveBayDoor). Почти получилось, теперь боты при десантировании исправно открывают и закрывают рампу, но не устраивают два момента:
1. Откат рампы происходит очень быстро, можно ли каким либо образом увеличить время отката (хотя бы вдвое)?
2. У самолёта игрока нет блокировки срабатывания кнопки "сброса бомб"(сброса десантников или груза) при закрытых "створках бомболюка"(рампы). То есть если игрок нажимает кнопку"оружие 4" рампа открывается автоматически и после десантирования половины десантников так же автоматически закрывается и оставшиеся десантники прыгают сквозь рампу. Можно это как то поправить?
Ну и ещё хотелось бы сохранить звук работы гидравлики открытия\закрытия рампы, потому что после "перепривязки" звук исчез.
Если у Вас, уважаемый Asura, найдутся время и желание объяснить "чайнику" нюансы java-кода, прошу помочь мне справиться с этими проблемами.
Вложения
Тип файла: rar AN_26.rar (5.6 Кб, 781 просмотров)

Последний раз редактировалось tarakan67; 17.11.2021 в 18:39.
tarakan67 вне форума   Ответить с цитированием
Старый 18.11.2021, 09:56   #9
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
По умолчанию

Цитата:
Сообщение от tarakan67 Посмотреть сообщение
1. Откат рампы происходит очень быстро, можно ли каким либо образом увеличить время отката (хотя бы вдвое)?
Придумывается только решение через свою переменную как это делается при подъеме/опускании турелей

private float bcurpos ;

if (FM.CT.BayDoorControl < 0.5f)
{
bcurpos -= 0.2F * f;
if(bcurpos < 0.0F)
bcurpos = 0.0F;
} else {
bcurpos += 0.2F * f;
if(bcurpos > 1.0F)
bcurpos = 1.0F;
}

это вставить в public void update(float f), ту да же вставить код сдвигания рампы. protected void moveBayDoor(float f) не используется.

Это не рабочий код - это пример возможной реализации. Скорость открытия можно регулировать изменением множителя bcurpos -= 0.2F * f;

Цитата:
2. У самолёта игрока нет блокировки срабатывания кнопки "сброса бомб"
Сброс загрузки регулируется через FM. Если там прописать CBombBay 1 то без открытия рампы сброса вообще не будет. Соответственно сброс и открытие только по кнопке. На паратруперов вроде тоже распространяется.

Цитата:
Ну и ещё хотелось бы сохранить звук работы гидравлики открытия\закрытия рампы, потому что после "перепривязки" звук исчез.
Как подменить звук можно посмотреть в классе модных Тандерболтов. Наверно аналогично можно подменить звук бомболюков.
Вложения
Тип файла: zip CockpitP_47DModPack.zip (5.5 Кб, 791 просмотров)
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

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

Asura вне форума   Ответить с цитированием
Старый 18.11.2021, 15:53   #10
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 2,225
По умолчанию

Цитата:
Сообщение от Asura Посмотреть сообщение

это вставить в public void update(float f), ту да же вставить код сдвигания рампы. protected void moveBayDoor(float f) не используется.
К сожалению не работает. Если оставить код открытия рампы в
protected void moveBayDoor(float f),
то скорость открытия не изменяется. Если же удалить код открытия рампы из
protected void moveBayDoor(float f),
равно как и закоментить этот оператор, то рампа вообще не открывается.
tarakan67 вне форума   Ответить с цитированием
Старый 19.11.2021, 12:23   #11
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
По умолчанию

Вот так с ходу сложно придумать какой нибудь "замедлитель". Скорость открывания есть только у блистера. Как вариант само движение повесить на код открывания кабины и в нем ручками устанавливать открыт бомболюк или нет FM.CT.BayDoorControl = 0 или 1 для управления - можно бросать десант или нет.
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

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

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

Уважаемые коллеги прошу помощи. Вот класс корабля с ходовыми огнями, выделено черным, которые включаются ночью. Что и где нужно прописать что бы добавить эффект работающий круглосуточно?
Код:
/* Old_Gunboat - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
package com.maddox.il2.objects.ships;
import com.maddox.JGP.Point3d;
import com.maddox.il2.ai.World;
import com.maddox.il2.ai.ground.TgtShip;
import com.maddox.il2.engine.Eff3DActor;
import com.maddox.il2.engine.HookNamed;
import com.maddox.il2.engine.LightPointActor;
import com.maddox.il2.engine.LightPointWorld;
import com.maddox.il2.engine.Loc;
import com.maddox.rts.SectFile;

public abstract class Old_Gunboat extends Ship
{
    /*synthetic*/ static Class class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets;
    
    public static class Koreyets extends BigshipGeneric implements TgtShip
    {
	public LightPointActor light1;
	public LightPointActor light2;
	public LightPointActor light3;
	public LightPointActor light4;
	public LightPointActor[] lightk;
	
	public Koreyets() {
	    lightk = new LightPointActor[5];
	}
	
	public Koreyets(String string, int i, SectFile sectfile,
			  String string_0_, SectFile sectfile_1_,
			  String string_2_) {
	    super(string, i, sectfile, string_0_, sectfile_1_, string_2_);
	    lightk = new LightPointActor[5];
	    Loc loc = new Loc(0.0, 0.0, 0.0, 0.0F, 0.0F, 0.0F);
	    Loc loc_3_ = new Loc();
	    Loc loc_4_ = new Loc();
	    Loc loc_5_ = new Loc();
	    Loc loc_6_ = new Loc();
            Loc loc_7_ = new Loc();
	    if (World.Sun().ToSun.z < -0.15F) {
		for (int i_8_ = 0; i_8_ < 6; i_8_++)
		    Eff3DActor.New(this, findHook("_CLight" + i_8_), null,
				   1.0F, "3DO/Effects/Lights/FlareWhitek.eff",
				   -1.0F);
		Eff3DActor.New(this, findHook("_GLight"), null, 1.0F,
			       "3DO/Effects/Lights/FlareGreenkb.eff", -1.0F);
		Eff3DActor.New(this, findHook("_RLight"), null, 1.0F,
			       "3DO/Effects/Lights/FlareRedkb.eff", -1.0F);
                 {
                }   
            }
        }
    }
    
    /*synthetic*/ static Class class$(String string) {
	Class var_class;
	try {
	    var_class = Class.forName(string);
	} catch (ClassNotFoundException classnotfoundexception) {
	    throw new NoClassDefFoundError(classnotfoundexception
					       .getMessage());
	}
	return var_class;
    }
    
    static {
	new BigshipGeneric.SPAWN
	    (class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets == null
	     ? (class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets
		= class$("com.maddox.il2.objects.ships.Old_Gunboat$Koreyets"))
	     : class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets);
    }
}
tvister вне форума   Ответить с цитированием
Старый 29.05.2022, 21:16   #13
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 2,225
По умолчанию

Здравствуйте. Подскажите, какой класс или переменная отвечает за измерение истинной скорости(та, которая отображается на виде без кабины)?
tarakan67 вне форума   Ответить с цитированием
Старый 30.05.2022, 09:15   #14
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
По умолчанию

Если нужны цифровые значения то можно так:

spd = (int)(3.6f*Pitot.Indicator((float)World.getPlayerF M().Loc.z, World.getPlayerFM().getSpeed())*0.1f)*10;
tas = (int)(3.6f*World.getPlayerFM().getSpeed());

Если для прибора то так (для американцев):

mesh.chunkSetAngles("Z_Speed_1", 0.0F, floatindex(cvt(Pitot.Indicator((float) fm.Loc.z, fm.getSpeedKMH()) * 1.131F, 74.07994F,
1222.31894F, 0.0F, 14F), speedometerScale), 0.0F);
mesh.chunkSetAngles("Z_Speed_2", 0.0F, floatindex(cvt(fm.getSpeedKMH() * 1.131F, 74.07994F,
1222.31894F, 0.0F, 14F), speedometerScale), 0.0F);

или для наших:

mesh.chunkSetAngles("zTAS", 0.0F, floatindex(cvt(fm.getSpeedKMH(), 400F, 1100F, 0.0F, 2.0F), tasScale), 0.0F);
mesh.chunkSetAngles("zSpeed", 0.0F, floatindex(cvt(Pitot.Indicator((float)fm.Loc.z, fm.getSpeedKMH()), 0.0F, 750F, 0.0F, 14F), speedometerScale), 0.0F);
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

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


Последний раз редактировалось Asura; 30.05.2022 в 09:22.
Asura вне форума   Ответить с цитированием
Старый 30.05.2022, 13:02   #15
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 2,225
По умолчанию

Спасибо! Всё получилось.
tarakan67 вне форума   Ответить с цитированием
Старый 14.08.2022, 12:09   #16
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 2,225
По умолчанию

Здравствуйте. Интересуют классы радиомаяков системы слепой посадки. Хочу сделать дальность срабатывания курсового и глиссадного маяков разными. Сейчас оба маяка начинают "перемещать планки" на приборе на расстоянии 35 км от них. В реальности глиссадный радиомаяк имеет дальность действия 18-20 км в отличие от курсового с дальностью до 48 км. Если не затруднит, подскажите, куда копать?
tarakan67 вне форума   Ответить с цитированием
Старый 13.02.2025, 13:03   #17
pepelatz
Местный
 
Регистрация: 06.12.2016
Сообщений: 168
По умолчанию

Подскажите пожалуйста. Согласно этому
https://www.patrulla-azul.com/FreeIL...php?f=45&t=311
руководству добавил в БАТ стационарник. Вроде получилось, самолет в игре есть, в миссиях появляется. Первый блин не комом. Но покоя нет.
В БАТ папке vehicles/planes кроме классов вида Plane$A6M_21.class например, какие создались у меня снова в конечной папке, есть еще просто A6M_21.class. Они не создались. Вопрос. А что это за доп классы? Они нужны? Инструкция то не очень новая. Может чего поменялось?
pepelatz вне форума   Ответить с цитированием
Старый 13.02.2025, 15:32   #18
carsmaster
Пытающийся полететь
 
Аватар для carsmaster
 
Регистрация: 21.05.2009
Адрес: Сталинград
Сообщений: 2,558
Отправить сообщение для carsmaster с помощью ICQ Отправить сообщение для carsmaster с помощью Skype™
По умолчанию

Классы со знаком "Аля доллар" в названии это типа внутренние классы внутри самого основного класса. В зависимости от кода в основном классе они могут создаваться, а могут и не создаваться при компиляции(ещё от среды компиляции зависит). Это я так все упрощённо описал. Каждый конкретный случай очень индивидуален. Мне кажется, что если скомпилировался основной клас без классов " Аля доллар" в названии и при этом все работает, то не заморачивайтесь, не мешайте работать игре. Это уж если все коряво работает, тогда уже и будете изучать "Аля внутренние" классы, в чем я и сам не силен.
__________________
Даёшь защищенный онлайн и Свободный оффлайн.

Теперь я и в телеграмме: https://t.me/il_2_1946

Последний раз редактировалось carsmaster; 13.02.2025 в 15:36.
carsmaster вне форума   Ответить с цитированием
Старый 04.06.2018, 14:04   #19
Sita.
Местный
 
Регистрация: 12.04.2009
Сообщений: 5,104
По умолчанию

это надо в спец раздел по ФМ выносить ... такие данные то.
__________________
ищется идейный Программер )
Sita. вне форума   Ответить с цитированием
Старый 29.03.2019, 22:57   #20
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 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

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

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

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


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


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