FCDnipro 0 Posted November 4, 2020 Хочу запилить расчет радиуса окружности по формуле r=x-(x-50)*y/100, где: x - заданный вручную примерный обзор вражеского танка, y - показатель маскировки в движении нашего танка. Таким образом, становится понятно, с какой дистанции меня высветят. Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,203 #491989 Posted November 5, 2020 20 часов назад, FCDnipro сказал: x - заданный вручную примерный обзор вражеского танка, Он сильно варьируется. Поэтому делать как вы просите - бессмысленно. Круг постоянно будет врать. Quote Share this post Link to post Short link Share on other sites
FCDnipro 0 #491994 Posted November 5, 2020 4 часа назад, StranikS_Scan сказал: Он сильно варьируется. Поэтому делать как вы просите - бессмысленно. Круг постоянно будет врать. Я уже год катаю на ЕБРе с таким кругом и явно понимаю, как им пользоваться. Естественно, нужно делать поправку на пт с трубами и тт без обзора. Но эту поправку гораздо легче делать от предполагаемого радиуса засвета, чем от пустого пространства на миникарте. Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,203 #491999 Posted November 5, 2020 1 час назад, FCDnipro сказал: Я уже год катаю на ЕБРе с таким кругом и явно понимаю, как им пользоваться. Естественно, нужно делать поправку на пт с трубами и тт без обзора. Но эту поправку гораздо легче делать от предполагаемого радиуса засвета, чем от пустого пространства на миникарте. Вы можете обратиться в тему скриптов для XVM. Может автор темы запилит такой скрипт, если желание у него будет. В самом XVM такой возможно нет. 1 Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #492106 Posted November 7, 2020 04.11.2020 в 11:42, FCDnipro сказал: x - заданный вручную примерный обзор вражеского танка, y - показатель маскировки в движении нашего танка Не понял, как вы собираетесь задавать эти параметры? Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,203 #492107 Posted November 7, 2020 39 минут назад, ktulho сказал: Не понял, как вы собираетесь задавать эти параметры? y - это в клиенте есть, там можно посчитать для своего танка с учетом всех факторов + стоит танк свой или движется. А вот x - он просто вобьет в конфиге какой хочет. Типа x = 500 м и всё. Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #492108 Posted November 7, 2020 2 минуты назад, StranikS_Scan сказал: y - это в клиенте есть, там можно посчитать для своего танка с учетом всех факторов + стоит танк свой или движется. Не получиться. Круги не обновляются во время боя. Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,203 #492109 Posted November 7, 2020 1 минуту назад, ktulho сказал: Не получиться. Круги не обновляются во время боя. Они и не должны обновляться. Достаточно того же механизма какой сделан у круга обзора аля dynamic Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #492110 Posted November 7, 2020 Только что, StranikS_Scan сказал: Достаточно того же механизма какой сделан у круга обзора аля dynamic Я к тому, что py_macro это не сделать. Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,203 #492111 Posted November 7, 2020 3 минуты назад, ktulho сказал: Я к тому, что py_macro это не сделать. Но ты можешь наверно сделать замену кругов. Типа те круги обзора что в xvm предназначены для показа обзора своего танка превратить в круги засвета. Для этого достаточно в питоновой части XVM расчеты кругов подменить. ЗЫ: Обычно людям нуно либо круги своего обзора, либо круги своего засвета. Все вместе совместить вряд ли можно, каша будет. А так получается нормально. Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #492112 Posted November 7, 2020 4 минуты назад, StranikS_Scan сказал: Но ты можешь наверно сделать замену кругов. Типа те круги обзора что в xvm предназначены для показа обзора своего танка превратить в круги засвета. Для этого достаточно в питоновой части XVM расчеты кругов подменить. Сомневаюсь, что круги обновляются из питона. Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,203 #492113 Posted November 7, 2020 Только что, ktulho сказал: Сомневаюсь, что круги обновляются из питона. Расчет радиусов в питоне делается, а затем передается во флэшку. Для кругов собственного обзора только так и можно. Файл xvm_main.py\python\minimap_circles.py Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #492114 Posted November 7, 2020 23 минуты назад, StranikS_Scan сказал: y - это в клиенте есть, там можно посчитать для своего танка с учетом всех факторов Это скорее всего можно будет сделать. 24 минуты назад, StranikS_Scan сказал: стоит танк свой или движется Это вряд ли. Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,203 #492115 Posted November 7, 2020 self.minimapCirclesData = { 'vehCD': descr.type.compactDescr, 'is_full_crew': self.is_full_crew, 'base_commander_skill': self.base_commander_skill, 'base_radioman_skill': self.base_radioman_skill, 'base_loaders_skill': self.base_loaders_skill, 'view_distance_vehicle': self.view_distance_vehicle, 'view_brothers_in_arms': self.brothers_in_arms, 'view_stereoscope': self.stereoscope, 'view_ventilation': self.ventilation, 'view_coated_optics': self.coated_optics, 'view_rammer': self.rammer, 'view_consumable': self.consumable, 'view_commander_eagleEye': self.commander_eagleEye, 'view_radioman_finder': self.radioman_finder, 'view_radioman_inventor': self.radioman_inventor, 'view_camouflage': self.camouflage, 'artillery_range': artillery_range, 'shell_range': shell_range, 'base_gun_reload_time': float("{0:.3f}".format(descr.gun.reloadTime)), 'base_radio_distance': descr.radio.distance, 'commander_sixthSense': self.commander_sixthSense, } Всё передается в виде исходных компонентов формулы. А значит подменить можно только их. Но это сразу становится весьма не тривиальной задачей. Так подправить параметры выше чтоб внутри флэшки получился нужный радиус круга. Короче в таком виде это мышиная возня. Не понятно зачем так сделано. Quote Share this post Link to post Short link Share on other sites
FCDnipro 0 #492207 Posted November 9, 2020 Два круга мне не нужно. Мне нужен только круг, который рассчитывается на показателе маскировки в движении. Потому что, если танк стоит, то скорее всего он стоит в кустах. Честно говоря, не очень понял, что вы тут понаписывали). Смотрите, разве нельзя просто вытянуть из клиента игры итоговый показатель маскировки и воткнуть его в формулу, которую привяжем к расчету радиуса окружности? Или это надо для каждого танка вручную прописывать базовую маскировку и, учитывая перки и оборудование, увеличивать ее, согласно формуле расчета маскировки? Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #492211 Posted November 9, 2020 24 минуты назад, FCDnipro сказал: Смотрите, разве нельзя просто вытянуть из клиента игры итоговый показатель маскировки и воткнуть его в формулу, которую привяжем к расчету радиуса окружности? Вы знаете для какого-нибудь танка параметр: 04.11.2020 в 11:42, FCDnipro сказал: y - показатель маскировки в движении нашего танка. ? Это какой-то процент? Quote Share this post Link to post Short link Share on other sites
FCDnipro 0 #492215 Posted November 9, 2020 Да. Его можно посмотреть в самой игре. На страничке сравнения техники - для EBR 105 - 21.15, STB1 - 10.26 и т.д. (без перков и оборудования со 100% экипажем) Или в ангаре: STB1 - 23.45 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,203 #492216 Posted November 9, 2020 (edited) 1 час назад, FCDnipro сказал: Два круга мне не нужно. Мне нужен только круг, который рассчитывается на показателе маскировки в движении. Потому что, если танк стоит, то скорее всего он стоит в кустах. Честно говоря, не очень понял, что вы тут понаписывали). Смотрите, разве нельзя просто вытянуть из клиента игры итоговый показатель маскировки и воткнуть его в формулу, которую привяжем к расчету радиуса окружности? Или это надо для каждого танка вручную прописывать базовую маскировку и, учитывая перки и оборудование, увеличивать ее, согласно формуле расчета маскировки? Там не с формулами беда. Беда с флэшкой XVM. Как я понял в XVM во флэшку передаются не радиусы кругов, а аргументы для их расчета. А расчеты делаются уже внутри флэшки. Это значит, что написать скрипт, который что-то меняет - не получится. Нужно править флэшку для миникарты или свою делать. Edited November 9, 2020 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #492218 Posted November 9, 2020 // Дополнительные круги: { "enabled": true, "distance": 50, "scale": 1, "thickness": 0.75, "alpha": 60, "color": "0xFFFFFF" }, В параметре "distance" можно использовать макрос. Но значение макроса будет вычислено один раз, в самом начале боя. Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,203 #492220 Posted November 9, 2020 (edited) 44 минуты назад, ktulho сказал: // Дополнительные круги: { "enabled": true, "distance": 50, "scale": 1, "thickness": 0.75, "alpha": 60, "color": "0xFFFFFF" }, В параметре "distance" можно использовать макрос. Но значение макроса будет вычислено один раз, в самом начале боя. А забыл, там же дополнительные круги есть. Тогда смотри как нужно: 1. Добавляем два новых параметра в конфиг - коэф. видимости игрока стоя и в движении, например, PlayerVisibilityStill и PlayerVisibilityMoving 2. В конфиг пользователь вставляет один круг или два круга, как ему хочется, вот с такими макросами (синтаксис макросов XVM я не знаю, потому напишу свободно): "distance": {50 + (400 - 50)*PlayerVisibilityMoving}, где 50 это радиус круга рентгена, 400 - это обзор танка врага, вводимый пользователем "distance": {50 + (400 - 50)*PlayerVisibilityStill} 3. При входе в бой считаешь коэф. видимости для танка игрока. Это можно сделать через __getInvisibilityValues. Там на выходе будет вот такая штука (А, B), где A.current и A.atShot - это коэф. незаметности в % для движущегося танка: текущая незаметность и в момент выстрела, ну а B.current и B.atShot - для стоячего танка. В данном случае получается PlayerVisibilityMoving = 1 - A.current/100 и PlayerVisibilityStill = 1 - B.current/100 В результате получаем модификацию, которая позволяет вывести круг засвета своего танка либо стоячего, либо движущегося, либо оба круга вместе вывести, при статически заданном обзоре танка противника. А так как сей расчет - крайне приближенный из-за того, что обзор задаем вручную статически, то можно использовать приближенную, но более простую в записи, формулу: "distance": {50 + 400*PlayerVisibilityMoving} "distance": {50 + 400*PlayerVisibilityStill} С ней даже лучше станет, т.к. она дает загрубление в сторону раннего оповещения. Edited November 9, 2020 by StranikS_Scan 2 Quote Share this post Link to post Short link Share on other sites