AviaSkins.Forums

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.09.2020, 15:16   #141
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Цитата:
Сообщение от andrey65 Посмотреть сообщение
А что и как ставить в итоге?
Просто скопировать содержимое архива поверх предыдущих файлов и в technics.ini у Freya добавить новые строки

Код:
MaxRange           200
MaxAltitude        10000
AntennaHeight      10

// Display
RadarID            Freya
RangeUnit          1
RangeAccuracy      0.1
AltitudeUnit       1
AltitudeAccuracy   100
AzimuthAccuracy    1

Последний раз редактировалось ildar; 02.09.2020 в 15:26.
ildar вне форума   Ответить с цитированием
Старый 02.09.2020, 16:02   #142
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Зона видимости радара.
Наведение работает, если оба самолета и вражеский и игрока, находятся в этой зоне.


Последний раз редактировалось ildar; 26.12.2021 в 15:39.
ildar вне форума   Ответить с цитированием
Старый 02.09.2020, 18:52   #143
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Сейчас нашел баг, когда при уничтожении радара не отображается поврежденная 3D модель радара.

Баг исправлен, просьба снова скачать обновленный архив.
ildar вне форума   Ответить с цитированием
Старый 03.09.2020, 22:07   #144
Niro
Местный
 
Регистрация: 27.06.2013
Адрес: Киев
Сообщений: 673
По умолчанию

Установил в ДГен пак 3.0 , отлично работают и наводят на цель. Переделал миссию Валерия для Су-9 для высотного перехвата. Поставил Фрею , прописал ей радиус 250 км и высоту 12000 м. цель шла на 10000 м. Было очень интересно.
Вроде была речь о русификации сообщений, хотя итак понятно, но было бы неплохо.
Нам бы разных радаров, в том числе советских !
Niro вне форума   Ответить с цитированием
Старый 04.09.2020, 10:19   #145
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Цитата:
Сообщение от Niro Посмотреть сообщение
Установил в ДГен пак 3.0 , отлично работают и наводят на цель. Переделал миссию Валерия для Су-9 для высотного перехвата. Поставил Фрею , прописал ей радиус 250 км и высоту 12000 м. цель шла на 10000 м. Было очень интересно.
Вроде была речь о русификации сообщений, хотя итак понятно, но было бы неплохо.
Нам бы разных радаров, в том числе советских !
Работа над новыми радарами идет, но на это нужно время.
Ну, а пока могу предложить такой вариант: я взял 3D-модель советского радара П-12 из этого мода https://www.sas1946.com/main/index.p...c,64706.0.html и импортировал в свой мод с такими характеристиками:

Макс. дальность - 200 км
Макс. высота - 25000 м

Точность:
по дальности - 1км
по высоте - 1000 м
по азимуту - 2 градуса

Последний раз редактировалось ildar; 26.12.2021 в 15:38.
ildar вне форума   Ответить с цитированием
Старый 04.09.2020, 10:21   #146
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Вообще, любой желающий может импортировать свою 3D-модель радара в мой мод.

Чуть позже, на примере П-12, я расскажу как легко это сделать.
ildar вне форума   Ответить с цитированием
Старый 04.09.2020, 10:26   #147
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

А на счет русификации, оказалось не все так просто. Она легко делается через файл HUD_ru.properties только для статичных фраз, с 1-2 переменными. Однако, в моем моде почти все фразы генерируется из кучи переменных и там это не работает. Пока разбираюсь с этим.
ildar вне форума   Ответить с цитированием
Старый 04.09.2020, 10:55   #148
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,805
По умолчанию

Вариант русификации сообщений в классах:

Код:
int country = Config.cur.ini.get("Mods", "EnMessage", -1); //Asura HUD fix
    	if (country == -1) 
    	{
    	    String cn = Locale.getDefault().getLanguage(); 
    	    if (cn == "ru") country = 0; 
    	    else country = 1; 
    	}

if (country == 0) HUD.log("\u0420\u0435\u0436\u0438\u043C \u0430\u0432\u0442\u043E\u043F\u0438\u043B\u043E\u0442\u0430: \u0421\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0432\u044B\u0441\u043E\u0442\u044B \u0412\u041A\u041B"); //Asura HUD fix
                else HUD.log("Autopilot Mode: Altitude ON");

if (country == 0) HUD.logCenter("\u0426\u0435\u043b\u044c \u043d\u0430\u0437\u0435\u043c\u043d\u0430\u044f: \u043f\u0435\u043b\u0435\u043d\u0433 " + i1 + "\260" + ", \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f " + j2 + " \u043a\u043c"); //Asura HUD fix
                	else HUD.logCenter("Ground units bearing " + i1 + "\260" + ", range " + j2 + " km");
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

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

Asura вне форума   Ответить с цитированием
Старый 04.09.2020, 11:19   #149
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Итак, как импортировать 3D-модель радар в мой мод.

Для начала несколько слов о требовании к самой модели. Модель должна состоять как минимум из двух частей: вращающейся части антенны и остального. Антенна должна состоять из одного меша, его мы потом пропишем в специальный класс, остальная часть радара может состоять из любого числа мешей. На примере П-12 (см. скриншоты), модель состоит из 4-х мешей, меш вращающаяся части антенны выделен синим.

Теперь создаем специальный class файл, у каждой модели радара он свой, в нем хранятся параметры: скорость вращения антенны, интервал показа команд наведения и название меша вращающейся части антенны

Код:
package com.maddox.il2.objects.vehicles.radars;

import com.maddox.il2.engine.Interpolate;
import com.maddox.rts.Message;
import com.maddox.rts.Time;
import com.maddox.il2.ai.World;

public class RadarP_12 extends RotatingRadarGeneric {
   public RadarP_12() {
      this.startRotate();
   }

   public void startRotate() {
      this.interpPut(new RadarP_12.Move(), "move", Time.current(), (Message)null);
   }

   public void interpolateTick() {
      super.interpolateTick();
      if (World.getPlayerAircraft() != null && this.dying == 0 && (float)Time.current() > (float)this.RefreshInterval + 30000.0F) {
         this.PlayerAircraftSearch();
      }

   }

   class Move extends Interpolate {
      public boolean tick() {
         if (RadarP_12.this.isAlive()) {
            float var1 = RotatingRadarGeneric.cvt((float)Time.current() % 15000.0F, 0.0F, 15000.0F, 0.0F, 360.0F);
            RadarP_12.this.hierMesh().chunkSetAngles("DipoleArray", -var1 - RadarP_12.this.pos.getAbsOrient().getYaw(), 0.0F, 0.0F);
         }

         return true;
      }
   }
}
Обращаем внимание на следующее:
RadarP_12 - название класса, оно может быть любым, какое вам будет удобно.
30000.0F - это интервал показа команд наведение в миллисекундах, в нашем случае это 30 секунд
15000.0F - это период обращения антенны в миллисекундах, в нашем случае это 15 секунд или 4 оборота в минуту. Обратите внимание, что это число должно быть прописано дважды в указанных выше местах.
DipoleArray - название меша вращающейся части антенны. Именно она будет анимирована.


Далее стандартно создаем слот под свой радар в классе RotatingRadar. Единственное, обращаем свое внимание на выделенное место, там мы прописываем название своего класса, что мы создали ранее.

Код:
package com.maddox.il2.objects.vehicles.radars;

import com.maddox.il2.ai.ground.TgtFlak;
import com.maddox.il2.objects.vehicles.artillery.AAA;

public abstract class RotatingRadar {
   static Class class$com$maddox$il2$objects$vehicles$radars$RotatingRadar$Freya;
   static Class class$com$maddox$il2$objects$vehicles$radars$RotatingRadar$P_12;

   static Class class$(String var0) {
      try {
         return Class.forName(var0);
      } catch (ClassNotFoundException var2) {
         throw new NoClassDefFoundError(var2.getMessage());
      }
   }

   static {
      new RotatingRadarGeneric.SPAWN(class$com$maddox$il2$objects$vehicles$radars$RotatingRadar$Freya == null ? (class$com$maddox$il2$objects$vehicles$radars$RotatingRadar$Freya = class$("com.maddox.il2.objects.vehicles.radars.RotatingRadar$Freya")) : class$com$maddox$il2$objects$vehicles$radars$RotatingRadar$Freya);
      new RotatingRadarGeneric.SPAWN(class$com$maddox$il2$objects$vehicles$radars$RotatingRadar$P_12 == null ? (class$com$maddox$il2$objects$vehicles$radars$RotatingRadar$P_12 = class$("com.maddox.il2.objects.vehicles.radars.RotatingRadar$P_12")) : class$com$maddox$il2$objects$vehicles$radars$RotatingRadar$P_12);
   }

   public static class P_12 extends RadarP_12 implements TgtFlak, AAA {
   }

   public static class Freya extends RadarFreya implements TgtFlak, AAA {
   }
}
А дальше осталось только прописать нужные нам параметры своего радара в ini файлах:

stationary.ini

Код:
[Radars]
P-12            vehicles.radars.RotatingRadar$P_12               1
technics.ini

Код:
[P_12]
Description        Early Warning Radar P-12
Icon               rotating_radar

MeshSummer         3do/Radars/P-12/Dipole.him

PanzerType         Car
PanzerSubtype      3
PanzerBodyFront    0.040

MaxRange           200
MaxAltitude        25000
AntennaHeight      10

// Display
RadarID            P-12
RangeUnit          1
RangeAccuracy      1
AltitudeUnit       1
AltitudeAccuracy   1000
AzimuthAccuracy    2
Подробнее о них рассказано здесь http://forum.aviaskins.com/showpost....&postcount=140

Последний раз редактировалось ildar; 26.12.2021 в 15:39.
ildar вне форума   Ответить с цитированием
Старый 04.09.2020, 11:24   #150
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Цитата:
Сообщение от Asura Посмотреть сообщение
Вариант русификации сообщений в классах:

Код:
int country = Config.cur.ini.get("Mods", "EnMessage", -1); //Asura HUD fix
    	if (country == -1) 
    	{
    	    String cn = Locale.getDefault().getLanguage(); 
    	    if (cn == "ru") country = 0; 
    	    else country = 1; 
    	}

if (country == 0) HUD.log("\u0420\u0435\u0436\u0438\u043C \u0430\u0432\u0442\u043E\u043F\u0438\u043B\u043E\u0442\u0430: \u0421\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0432\u044B\u0441\u043E\u0442\u044B \u0412\u041A\u041B"); //Asura HUD fix
                else HUD.log("Autopilot Mode: Altitude ON");

if (country == 0) HUD.logCenter("\u0426\u0435\u043b\u044c \u043d\u0430\u0437\u0435\u043c\u043d\u0430\u044f: \u043f\u0435\u043b\u0435\u043d\u0433 " + i1 + "\260" + ", \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f " + j2 + " \u043a\u043c"); //Asura HUD fix
                	else HUD.logCenter("Ground units bearing " + i1 + "\260" + ", range " + j2 + " km");
Спасибо, позже опробую.

У меня фраза формируется из такого массива:

Код:
         if (var37 <= 0 || var37 >= 360) {
            var43 = "dead ahead ";
         }

         if (var37 > 0 && var37 < 180) {
            var43 = "right ";
         }

         if (var37 == 180) {
            var43 = "behind ";
         }

         if (var37 > 180 && var37 < 360) {
            var43 = "left ";
         }

         if (var37 > 180) {
            var37 = 360 - var37;
         }

         float var44 = 1000.0F;
         String var45 = "   ";
         if (this.prop.RangeUnit == 1.0F) {
            var44 = 1000.0F;
            var45 = " km";
         }

         if (this.prop.RangeUnit == 2.0F) {
            var44 = 1609.344F;
            var45 = " mi";
         }

         if (this.prop.RangeUnit == 3.0F) {
            var44 = 1852.0F;
            var45 = " nm";
         }

         float var46 = 1.0F;
         String var47 = "   ";
         if (this.prop.AltitudeUnit == 1.0F) {
            var46 = 1.0F;
            var47 = " m";
         }

         if (this.prop.AltitudeUnit == 2.0F) {
            var46 = 0.3048F;
            var47 = " ft";
         }

         int var48 = (int)((float)Math.round(var29 / (double)var46 / (double)this.prop.AltitudeAccuracy) * this.prop.AltitudeAccuracy);
         float var49 = (float)Math.round((float)var42 / var44 / this.prop.RangeAccuracy) * this.prop.RangeAccuracy;
         float var50 = (float)((double)Math.round((double)var49 * 1000.0D) / 1000.0D);
         if (var48 > 0 && (float)var42 <= 2.0F * (var1 * (float)var18 / 3570.0F) && var42 > 10000) {
            HUD.log(this.prop.RadarID + ": Target " + var43 + var37 + "°, range " + var50 + var45 + ", altitude " + var48 + var47);
         }

         if (World.Sun().ToSun.z > 0.0F && var48 > 0 && var42 <= 10000 && var42 > 0) {
            HUD.logCenter(this.prop.RadarID + ": Target " + var43 + var37 + "°, range " + var50 + var45 + ", altitude " + var48 + var47);
         }

         if (World.Sun().ToSun.z <= 0.0F && var48 > 0 && var42 <= 10000 && var42 > 0) {
            HUD.log(this.prop.RadarID + ": Target " + var43 + var37 + "°, range " + var50 + var45 + ", altitude " + var48 + var47);
         }

         if (var48 <= 0 && (float)var42 <= 2.0F * (var1 * (float)var18 / 3570.0F) && var42 > 10000) {
            HUD.log(this.prop.RadarID + ": Target " + var43 + var37 + "°, range " + var50 + var45);
         }

         if (World.Sun().ToSun.z > 0.0F && var48 <= 0 && var42 <= 10000 && var42 > 0) {
            HUD.logCenter(this.prop.RadarID + ": Target " + var43 + var37 + "°, range " + var50 + var45);
         }

         if (World.Sun().ToSun.z <= 0.0F && var48 <= 0 && var42 <= 10000 && var42 > 0) {
            HUD.log(this.prop.RadarID + ": Target " + var43 + var37 + "°, range " + var50 + var45);
         }

Последний раз редактировалось ildar; 04.09.2020 в 11:36.
ildar вне форума   Ответить с цитированием
Старый 04.09.2020, 16:46   #151
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Благодаря помощи Asura русифицировал мод

Переведено всё, кроме обозначения морской мили, сухопутной мили и футов, их я оставил в английском сокращении.

Кстати, в ini параметр RadarID поддерживает написание название радара на родном языке.

Например, вместо
Код:
RadarID           P-12
можете написать сразу на русском языке
Код:
RadarID           П-12 «Енисей»

Последний раз редактировалось ildar; 26.12.2021 в 15:39.
ildar вне форума   Ответить с цитированием
Старый 05.09.2020, 13:29   #152
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Так как основная работа по наземным радарам завершена, теперь можно посмотреть и радар Bf-110.

Что там надо с ним еще делать, помимо прикручивания ограничений углов обзора?
ildar вне форума   Ответить с цитированием
Старый 06.09.2020, 16:52   #153
andrey65
Модератор
 
Аватар для andrey65
 
Регистрация: 05.11.2007
Адрес: Кемеровская область
Сообщений: 7,033
Отправить сообщение для andrey65 с помощью ICQ
По умолчанию

Опробовал, наконец нормально мод в последнем варианте. Очень понравилось.
andrey65 на форуме   Ответить с цитированием
Старый 06.09.2020, 18:51   #154
Niro
Местный
 
Регистрация: 27.06.2013
Адрес: Киев
Сообщений: 673
По умолчанию

Файлы радара П-12 в папку Radars_RU, там есть файлы на замену, это правильно будет? Я так сделал , вроде все работает.
Niro вне форума   Ответить с цитированием
Старый 06.09.2020, 19:07   #155
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Цитата:
Сообщение от Niro Посмотреть сообщение
Файлы радара П-12 в папку Radars_RU, там есть файлы на замену, это правильно будет? Я так сделал , вроде все работает.
Да, просто заменить файлы в папке.
ildar вне форума   Ответить с цитированием
Старый 06.09.2020, 19:08   #156
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Цитата:
Сообщение от andrey65 Посмотреть сообщение
Опробовал, наконец нормально мод в последнем варианте. Очень понравилось.
ildar вне форума   Ответить с цитированием
Старый 07.09.2020, 14:15   #157
Sita.
Местный
 
Регистрация: 12.04.2009
Сообщений: 5,059
По умолчанию

ЧБ, подскажи, в каком посте крайняя сборка мода?
__________________
ищется идейный Программер )
Sita. вне форума   Ответить с цитированием
Старый 07.09.2020, 15:14   #158
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Цитата:
Сообщение от Sita. Посмотреть сообщение
ЧБ, подскажи, в каком посте крайняя сборка мода?
Здесь http://forum.aviaskins.com/showpost....&postcount=152
ildar вне форума   Ответить с цитированием
Старый 07.09.2020, 15:23   #159
Sita.
Местный
 
Регистрация: 12.04.2009
Сообщений: 5,059
По умолчанию

а я подумал что это чисто русификация) хорошо, спасибо)
__________________
ищется идейный Программер )
Sita. вне форума   Ответить с цитированием
Старый 07.09.2020, 23:07   #160
ildar
Чёрный бомбер
 
Аватар для ildar
 
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
По умолчанию

Появилось свободное время и я поработал над радаром Bf-110

Прикрутил к нему отсутствующее ограничение обзора радара: в вертикальной плоскости +-50 градусов, в горизонтальной плоскости +-60 градусов.

Оригинальный мод https://www.sas1946.com/main/index.php?topic=25172.0

Мой патч для мода, просто распаковать содержимое архива в папку мода и заменить файлы.

Последний раз редактировалось ildar; 04.03.2022 в 10:20.
ildar вне форума   Ответить с цитированием
Ответ


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

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

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

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

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


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


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