Jump to content
Korean Random
FCDnipro

Можно ли привязать показатель маскировки в движении к minimapCircles.xc?

Recommended Posts

Хочу запилить расчет радиуса окружности по формуле r=x-(x-50)*y/100, где:

x - заданный вручную примерный обзор вражеского танка,

y - показатель маскировки в движении нашего танка.

Таким образом, становится понятно, с какой дистанции меня высветят.

Share this post


Link to post

Short link
Share on other sites
20 часов назад, FCDnipro сказал:

x - заданный вручную примерный обзор вражеского танка,

 

Он сильно варьируется. Поэтому делать как вы просите - бессмысленно. Круг постоянно будет врать.

Share this post


Link to post

Short link
Share on other sites
4 часа назад, StranikS_Scan сказал:

Он сильно варьируется. Поэтому делать как вы просите - бессмысленно. Круг постоянно будет врать.

Я уже год катаю на ЕБРе с таким кругом и явно понимаю, как им пользоваться. Естественно, нужно делать поправку на пт с трубами и тт без обзора. Но эту поправку гораздо легче делать от предполагаемого радиуса засвета, чем от пустого пространства на миникарте.

Share this post


Link to post

Short link
Share on other sites
1 час назад, FCDnipro сказал:

Я уже год катаю на ЕБРе с таким кругом и явно понимаю, как им пользоваться. Естественно, нужно делать поправку на пт с трубами и тт без обзора. Но эту поправку гораздо легче делать от предполагаемого радиуса засвета, чем от пустого пространства на миникарте.

 

Вы можете обратиться в тему скриптов для XVM. Может автор темы запилит такой скрипт, если желание у него будет. В самом XVM такой возможно нет.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
04.11.2020 в 11:42, FCDnipro сказал:

x - заданный вручную примерный обзор вражеского танка,

y - показатель маскировки в движении нашего танка

Не понял, как вы собираетесь задавать эти параметры?

Share this post


Link to post

Short link
Share on other sites
39 минут назад, ktulho сказал:

Не понял, как вы собираетесь задавать эти параметры?

 

y - это в клиенте есть, там можно посчитать для своего танка с учетом всех факторов + стоит танк свой или движется. А вот x - он просто вобьет в конфиге какой хочет. Типа x = 500 м и всё.

Share this post


Link to post

Short link
Share on other sites
2 минуты назад, StranikS_Scan сказал:

y - это в клиенте есть, там можно посчитать для своего танка с учетом всех факторов + стоит танк свой или движется.

Не получиться. Круги не обновляются во время боя.

Share this post


Link to post

Short link
Share on other sites
1 минуту назад, ktulho сказал:

Не получиться. Круги не обновляются во время боя.

 

Они и не должны обновляться. Достаточно того же механизма какой сделан у круга обзора аля dynamic

Share this post


Link to post

Short link
Share on other sites
Только что, StranikS_Scan сказал:

Достаточно того же механизма какой сделан у круга обзора аля dynamic

Я к тому, что py_macro это не сделать.

Share this post


Link to post

Short link
Share on other sites
3 минуты назад, ktulho сказал:

Я к тому, что py_macro это не сделать.

 

Но ты можешь наверно сделать замену кругов. Типа те круги обзора что в xvm предназначены для показа обзора своего танка превратить в круги засвета. Для этого достаточно в питоновой части XVM расчеты кругов подменить.

ЗЫ: Обычно людям нуно либо круги своего обзора, либо круги своего засвета. Все вместе совместить вряд ли можно, каша будет. А так получается нормально.

Share this post


Link to post

Short link
Share on other sites
4 минуты назад, StranikS_Scan сказал:

Но ты можешь наверно сделать замену кругов. Типа те круги обзора что в xvm предназначены для показа обзора своего танка превратить в круги засвета. Для этого достаточно в питоновой части XVM расчеты кругов подменить.

Сомневаюсь, что круги обновляются из питона.

Share this post


Link to post

Short link
Share on other sites
Только что, ktulho сказал:

Сомневаюсь, что круги обновляются из питона.

 

Расчет радиусов в питоне делается, а затем передается во флэшку. Для кругов собственного обзора только так и можно.

Файл xvm_main.py\python\minimap_circles.py

Share this post


Link to post

Short link
Share on other sites
23 минуты назад, StranikS_Scan сказал:

y - это в клиенте есть, там можно посчитать для своего танка с учетом всех факторов

Это скорее всего можно будет сделать. 

 

24 минуты назад, StranikS_Scan сказал:

стоит танк свой или движется

Это вряд ли. 

Share this post


Link to post

Short link
Share on other sites
        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,
        }

Всё передается в виде исходных компонентов формулы. А значит подменить можно только их. Но это сразу становится весьма не тривиальной задачей. Так подправить параметры выше чтоб внутри флэшки получился нужный радиус круга. Короче в таком виде это мышиная возня.

Не понятно зачем так сделано. 

Share this post


Link to post

Short link
Share on other sites

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

 

Честно говоря, не очень понял, что вы тут понаписывали). Смотрите, разве нельзя просто вытянуть из клиента игры итоговый показатель маскировки и воткнуть его в формулу, которую привяжем к расчету радиуса окружности? Или это надо для каждого танка вручную прописывать базовую маскировку и, учитывая перки и оборудование, увеличивать ее, согласно формуле расчета маскировки?

Share this post


Link to post

Short link
Share on other sites
24 минуты назад, FCDnipro сказал:

Смотрите, разве нельзя просто вытянуть из клиента игры итоговый показатель маскировки и воткнуть его в формулу, которую привяжем к расчету радиуса окружности?

Вы знаете для какого-нибудь танка параметр:

04.11.2020 в 11:42, FCDnipro сказал:

y - показатель маскировки в движении нашего танка.

? Это какой-то процент?

Share this post


Link to post

Short link
Share on other sites

Да. Его можно посмотреть в самой игре.

На страничке сравнения техники - для EBR 105 - 21.15, STB1 - 10.26 и т.д. (без перков и оборудования со 100% экипажем)

Или в ангаре: STB1 - 23.45

shot_065.jpg

shot_067.jpg

Share this post


Link to post

Short link
Share on other sites
1 час назад, FCDnipro сказал:

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

 

Честно говоря, не очень понял, что вы тут понаписывали). Смотрите, разве нельзя просто вытянуть из клиента игры итоговый показатель маскировки и воткнуть его в формулу, которую привяжем к расчету радиуса окружности? Или это надо для каждого танка вручную прописывать базовую маскировку и, учитывая перки и оборудование, увеличивать ее, согласно формуле расчета маскировки?

 

Там не с формулами беда. Беда с флэшкой XVM. Как я понял в XVM во флэшку передаются не радиусы кругов, а аргументы для их расчета. А расчеты делаются уже внутри флэшки. Это значит, что написать скрипт, который что-то меняет - не получится. Нужно править флэшку для миникарты или свою делать.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites
      // Дополнительные круги:
      { "enabled": true,  "distance": 50,         "scale": 1, "thickness": 0.75, "alpha": 60, "color": "0xFFFFFF" },

В параметре "distance" можно использовать макрос. Но значение макроса будет вычислено один раз, в самом начале боя.

Share this post


Link to post

Short link
Share on other sites
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 by StranikS_Scan
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...