02.09.2020, 15:16 | #141 |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
Просто скопировать содержимое архива поверх предыдущих файлов и в 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. |
02.09.2020, 16:02 | #142 |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
Зона видимости радара.
Наведение работает, если оба самолета и вражеский и игрока, находятся в этой зоне. Последний раз редактировалось ildar; 26.12.2021 в 15:39. |
02.09.2020, 18:52 | #143 |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
Сейчас нашел баг, когда при уничтожении радара не отображается поврежденная 3D модель радара.
Баг исправлен, просьба снова скачать обновленный архив. |
03.09.2020, 22:07 | #144 |
Местный
Регистрация: 27.06.2013
Адрес: Киев
Сообщений: 673
|
Установил в ДГен пак 3.0 , отлично работают и наводят на цель. Переделал миссию Валерия для Су-9 для высотного перехвата. Поставил Фрею , прописал ей радиус 250 км и высоту 12000 м. цель шла на 10000 м. Было очень интересно.
Вроде была речь о русификации сообщений, хотя итак понятно, но было бы неплохо. Нам бы разных радаров, в том числе советских ! |
04.09.2020, 10:19 | #145 | |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
Цитата:
Ну, а пока могу предложить такой вариант: я взял 3D-модель советского радара П-12 из этого мода https://www.sas1946.com/main/index.p...c,64706.0.html и импортировал в свой мод с такими характеристиками: Макс. дальность - 200 км Макс. высота - 25000 м Точность: по дальности - 1км по высоте - 1000 м по азимуту - 2 градуса Последний раз редактировалось ildar; 26.12.2021 в 15:38. |
|
04.09.2020, 10:21 | #146 |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
Вообще, любой желающий может импортировать свою 3D-модель радара в мой мод.
Чуть позже, на примере П-12, я расскажу как легко это сделать. |
04.09.2020, 10:26 | #147 |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
А на счет русификации, оказалось не все так просто. Она легко делается через файл HUD_ru.properties только для статичных фраз, с 1-2 переменными. Однако, в моем моде почти все фразы генерируется из кучи переменных и там это не работает. Пока разбираюсь с этим.
|
04.09.2020, 10:55 | #148 |
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,806
|
Вариант русификации сообщений в классах:
Код:
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"); |
04.09.2020, 11:19 | #149 |
Чёрный бомбер
Регистрация: 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 { } } stationary.ini Код:
[Radars] P-12 vehicles.radars.RotatingRadar$P_12 1 Код:
[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 Последний раз редактировалось ildar; 26.12.2021 в 15:39. |
04.09.2020, 11:24 | #150 | |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
Цитата:
У меня фраза формируется из такого массива: Код:
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. |
|
04.09.2020, 16:46 | #151 |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
Благодаря помощи Asura русифицировал мод
Переведено всё, кроме обозначения морской мили, сухопутной мили и футов, их я оставил в английском сокращении. Кстати, в ini параметр RadarID поддерживает написание название радара на родном языке. Например, вместо Код:
RadarID P-12 Код:
RadarID П-12 «Енисей» Последний раз редактировалось ildar; 26.12.2021 в 15:39. |
05.09.2020, 13:29 | #152 |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
Так как основная работа по наземным радарам завершена, теперь можно посмотреть и радар Bf-110.
Что там надо с ним еще делать, помимо прикручивания ограничений углов обзора? |
06.09.2020, 16:52 | #153 |
Модератор
|
Опробовал, наконец нормально мод в последнем варианте. Очень понравилось.
|
06.09.2020, 18:51 | #154 |
Местный
Регистрация: 27.06.2013
Адрес: Киев
Сообщений: 673
|
Файлы радара П-12 в папку Radars_RU, там есть файлы на замену, это правильно будет? Я так сделал , вроде все работает.
|
06.09.2020, 19:07 | #155 |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
|
06.09.2020, 19:08 | #156 |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
|
07.09.2020, 14:15 | #157 |
Местный
Регистрация: 12.04.2009
Сообщений: 5,062
|
ЧБ, подскажи, в каком посте крайняя сборка мода?
__________________
ищется идейный Программер ) |
07.09.2020, 15:14 | #158 |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
|
07.09.2020, 15:23 | #159 |
Местный
Регистрация: 12.04.2009
Сообщений: 5,062
|
а я подумал что это чисто русификация) хорошо, спасибо)
__________________
ищется идейный Программер ) |
07.09.2020, 23:07 | #160 |
Чёрный бомбер
Регистрация: 26.11.2018
Адрес: Бишкек, Кыргызстан
Сообщений: 329
|
Появилось свободное время и я поработал над радаром Bf-110
Прикрутил к нему отсутствующее ограничение обзора радара: в вертикальной плоскости +-50 градусов, в горизонтальной плоскости +-60 градусов. Оригинальный мод https://www.sas1946.com/main/index.php?topic=25172.0 Мой патч для мода, просто распаковать содержимое архива в папку мода и заменить файлы. Последний раз редактировалось ildar; 04.03.2022 в 10:20. |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|