Jump to content
Korean Random
phantasm

[Minimap] Ограничение круга обзора 445м

Recommended Posts

в изложении да, но один нюанс есть: 

Сюда просится переключение цвета, толщины и прозрачности активного круга, как в текущем варианте:

 

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

Офф: Может, вообще, по умолчанию собственную гамму цветов хвм сделать, универсальную?

Дефолтный конфиг всегда открыт для изменений. Предлагайте, обсуждайте.

Share this post


Link to post

Short link
Share on other sites

я не совсем понял, это сколько? я так понимаю, это динамически меняющаяся дальность обзора танка, с ограничением 445м? 

в изложении да, но один нюанс есть: 

Сюда просится переключение цвета, толщины и прозрачности активного круга, как в текущем варианте:

"view": [

{ "enabled": true, "distance": 50, "scale": 1, "thickness": 0.75, "alpha": 60, "color": "0xFFFFFF" },

{ "enabled": true, "distance": {{StaticVisionActive}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0xFF0000" },

{ "enabled": true, "distance": {{StaticVisionPassive}}, "scale": 1, "thickness": 0.7, "alpha": 60, "color": "0x0000FF" },

{ "enabled": true, "distance": 445, "scale": 1, "thickness": 1.1, "alpha": 45, "color": "0xFFCC66" }

]

А слово Radius вообще из названий макросов лучше выкинуть- ибо лишние километры только:)

 

Цитирую:

 

1. "Граница слепой зоны танка - это один единственный круг, за которым ни чего нельзя увидеть, но что-то можно увидеть внутри него".

Математически это = 50 если ДО<50 иначе (445 если ДО>445 иначе ДО), где ДО - дальность обзора танка, вычисляемая в реальном времени во время боя

 

2. Реакцию цвета, толщины и прозрачности круга на его радиус, я выше предлагал сделать через макросы.

 

3. Что означает StaticVisionActive - ? Я не понимаю, что такое "static" для макроса, значение которого будет и должно пересчитываться модом в реальном времени? Или это статическое положение танка, но такого термина нет, танк либо стоящий, либо движущийся?  Что означает "аctive", это активный круг? Активный макрос? Макросы - это всего лишь функции, возвращающие значение какого-либо параметра, они не имеют ни какого отношения к кругам (мы используем их, чтобы получить круги какие мы хотим). Поэтому не могут быть ни пассивными ни активными. Вообщем и целом постороннему человек понять сие не возможно.

 

StandingVision - дальность обзора стоячего танка

MotionVision - дальность обзора движущегося танка

DynamicVision - дальность обзора динамическая

 

И обратите внимание начиная с грядущего релиза XVM мод кругов выйдет на новый качественный уровень - все макросы будут обсчитываться в реальном времени, т.е. с учётом состояния танка в бою. Это будет основа основ. Поэтому выше я об этом специально ни где не упоминаю, т.к. считаю по умолчанию, что только так макросы и должны работать. Все предыдущие реализации мода - будут считаться устаревшими и "не правильными".

Edited by StranikS_Scan
  • Upvote 4

Share this post


Link to post

Short link
Share on other sites

If we are on colors i will copypaste part of my tankrange.xc with colors i use now:

 

 

 
"major": [
      {
        "alpha": 50,
        "color": "0xFFCC66",
        "distance": 445,
        "enabled": true,
        "thickness": 0.5
      },
      {
        "alpha": 50,
        "color": "0xEE0000",
        "distance": 50,
        "enabled": true,
        "thickness": 0.5
      }
    ],

 

 

 
"tankrange": {
    "circle_artillery": {
      "alpha": 80,
      "color": "0x50FF50",
      "enabled": true,
      "filled": false,
      "thickness": 0.5
    },
    "circle_binocular": {
      "alpha": 50,
      "color": "0xFFFFFF",
      "enabled": true,
      "filled": false,
      "thickness": 0.5
    },
    "circle_shell": {
      "alpha": 50,
      "color": "0x00FF00",
      "enabled": true,
      "filled": false,
      "thickness": 0.5
    },
    "circle_view": {
      "alpha": 50,
      "color": "0xFFFFFF",
      "enabled": true,
      "filled": false,
      "thickness": 0.5
    },
    "ignore_artillery": false,
    "logging": true,
    "notify_changes": true,
    "spotting_limit": true
  }

 

 

Nothing fancy, simple base color values. 

Share this post


Link to post

Short link
Share on other sites
Не, тут как раз речь о том, что актив/пассив далеко не всем нужен, и для него будет как раз отдельный макрос, который и будет "границей слепой зоны".

 

Что означает StaticVisionActive - ?

Так я же говорю, мне допустим нужны два круга, как по 2 варианту, но мне не надо, чтобы постоянно рисовало радиус в движении зеленым, а стоя синим, мне нужно чтобы активный на данный момент был зеленым, а неактивный- синим. В предложенном 2 варианте такого не получится:

{ "enabled": true, "distance": {{StandingVisionRadius}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0xFF0000" },

{ "enabled": true, "distance": {{MotionVisionRadius}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0x0000FF" },

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

Edited by demon2597

Share this post


Link to post

Short link
Share on other sites

Так я же говорю, мне допустим нужны два круга, как по 2 варианту, но мне не надо, чтобы постоянно рисовало радиус в движении зеленым, а стоя синим, мне нужно чтобы активный на данный момент был зеленым, а неактивный- синим. В предложенном 2 варианте такого не получится:

{ "enabled": true, "distance": {{StandingVisionRadius}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0xFF0000" },

{ "enabled": true, "distance": {{MotionVisionRadius}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0x0000FF" },

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

Можешь нарисовать 2 статических круга, а поверх них динамический. Правда с ограничением 445 снова беда получается. :)

Share this post


Link to post

Short link
Share on other sites

Так я же говорю, мне допустим нужны два круга, как по 2 варианту, но мне не надо, чтобы постоянно рисовало радиус в движении зеленым, а стоя синим, мне нужно чтобы активный на данный момент был зеленым, а неактивный- синим. В предложенном 2 варианте такого не получится:

{ "enabled": true, "distance": {{StandingVisionRadius}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0xFF0000" },

{ "enabled": true, "distance": {{MotionVisionRadius}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0x0000FF" },

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

 

Я понял что ты хочешь получить, но я не понял какими макросами ты решил это сделать. Что возвращают твои макросы StaticVisionActive и StaticVisionPassive ? Это же свойства "distance", а там подставляются только макросы, возвращающие расстояния. Как с помощью этих макросов ты решил получить описанную выше логику?

 

Вот как надо - вводим макросы, возвращающие цвет в зависимости  от состояния танка:

{{c:state}}     //Возвращает цвет А, если танк стоит, иначе цвет В
{{invc:state}}  //Макрос, возвращает инвертированное значение макроса {{c:state}}, то бишь B и А

В конфиг добавляем секцию, отвечающую за цвета state-макроса после чего спокойно реализуем то что ты хотел:

"state_color": {
    "standing": "0x0000FF",  //стоя зелёный
    "motion": "0x00FF00" },  //в движении синий

"view": [
{ "enabled": true, "distance": {{StandingVision}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": {{c:state}} },
{ "enabled": true, "distance": {{MotionVision}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": {{invc:state}} }
]

Что мы получили - два круга, один без трубы, другой с трубой. Когда танк стоит первый круг рисуется зелёным цветом, а второй синим, когда танк движется первый круг синий, а второй зелёный.

 

Этим примером я еще раз хочу всех присутствующих направить на истинный путь реализации мода, который здесь и сейчас является единственно правильным. Макросы - это наиболее здравый подход в текущем вопросе. Какие-либо другие решения  - это куча костылей, непонятный код и еще более не понятный конфиг. Сам конфиг XVM изначально и до сих пор строится на макросах - и потому еще жив несмотря на непомерный свой объем и сложность.

 

А вот альтернативный вариант решения задачи без использования макросов подстановки цвета. Нам потребует два макроса состояния танка: 

{{standing}} //Возвращает 1, если танк стоит и 0, если танк едет
{{motion}}   //Возвращает 0, если танк стоит и 1, если танк едет

А вот и реализация:

"view": [
{ "enabled": true, "distance": {{StandingVision}}, "scale": {{standing}}, "thickness": 1.0, "alpha": 60, "color": "0x00FF00"},
{ "enabled": true, "distance": {{StandingVision}}, "scale": {{motion}}, "thickness": 1.0, "alpha": 60, "color": "0x0000FF" },
{ "enabled": true, "distance": {{MotionVision}}, "scale": {{motion}}, "thickness": 1.0, "alpha": 60, "color": "0x00FF00" },
{ "enabled": true, "distance": {{MotionVision}}, "scale": {{standing}}, "thickness": 1.0, "alpha": 60, "color": "0x0000FF" }
]

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

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites
Я понял что ты хочешь получить, но я не понял какими макросами ты решил это сделать. Что возвращают твои макросы StaticVisionActive и StaticVisionPassive ?

так то же самое, что и сейчас- дистанцию для круга. Какого параметра не хватает сейчас в этой секции:

"view": {

           "enabled": true,

           // Active circle - current view range

           // Активный круг - текущая дальность обзора

           "active":  { "alpha": 35, "color": "0x60FF00", "thickness": 1 },

           // Passive circle - view range with or without binoculars (depending from current state)

           // Пассивный круг - с рогами или без них, в зависимости от текущего состояния

           "passive": { "alpha": 35, "color": "0xCCCCCC", "thickness": 0.7 }

        }, 

Ну не суть, смысл главное понятен- вместо двух статичных кругов в варианте 2 запихнуть туда вот эту существующую сейчас секцию

Edited by demon2597

Share this post


Link to post

Short link
Share on other sites

Adding another opinion: more colors is NOT better. 

Currently i have both Omegaice's and XVM's circles working (because i couldn't switch off the latter) and side effect is that active circle drawn twice is getting thicker - that is neat trick and actually i like this behavior (at least when white, like i have). So, my proposition is to show active circle with changing thickness parameter instead of color (while drawing both circles all the time).

passive 0.5

active 1.0

Check yourselves if you find this convenient.

Share this post


Link to post

Short link
Share on other sites

 

Изложу базовые принципы в манифесте о кругах

 

Вроде готово, проверяйте.

"major" выкосил совсем, "view" теперь такой:

 

// Дальность обзора
        // Параметры:
        //   "enabled": false - выключен;
        //   "distance" - дистанция;
        //   "scale" - масштаб круга (множитель расстояния);
        //   "thickness" - толщина;
        //   "alpha" - прозрачность;
        //   "color" - цвет.
        // Доступные значения расстояния:
        //   N - число в метрах, рисуется статический круг
        //   "blindarea" - граница слепой зоны
        //   "dynamic"   - реальная дальность обзора танка c учётом стоит/движется
        //   "standing"  - реальная дальность обзора танка стоя
        //   "motion"    - реальная дальность обзора танка в движении
        // Источник:
        //   http://www.koreanrandom.com/forum/topic/15467-/page-5#entry187139
        //   http://www.koreanrandom.com/forum/topic/15467-/page-4#entry186794
        "view": [
            // Simple model (one dynamic circle), for most players
            { "enabled": true, "distance": "blindarea", "scale": 1, "thickness": 0.75, "alpha": 80, "color": "0xFFFF00" }
            /*
            // Extended model (4 circles), for experienced players
            { "enabled": true, "distance": 50, "scale": 1, "thickness": 0.75, "alpha": 60, "color": "0xFFFFFF" },
            { "enabled": true, "distance": 445, "scale": 1, "thickness": 1.1, "alpha": 45, "color": "0xFFCC66" },
            { "enabled": true, "distance": standing", "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0xFF0000" },
            { "enabled": true, "distance": motion", "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0x0000FF" }
            */
        ],
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

получается dynamic" заменят "standing" и "motion"?

нет, он "прыгает" при переключении рогов, а "standing" и "motion" - нет

Share this post


Link to post

Short link
Share on other sites

"view" теперь такой

меня более чем удовлетворяет :) крутота

 

"distance": "blindarea"

но тут должно быть dynamic, судя по строке комментария

Share this post


Link to post

Short link
Share on other sites

меня более чем удовлетворяет :) крутота

 

но тут должно быть dynamic, судя по строке комментария

оно оба динамические.

"dynamic" - это реальный обзор с трубой и без

"blindarea" - это тоже самое, но в диапазоне 50 <= X <= 445

Share this post


Link to post

Short link
Share on other sites

 

 

"blindarea" - это тоже самое, но в диапазоне 50 <= X <= 445

тогда вообще плюсую люто. всё что можно считает, причём несколькими кругами.

 

вопрос можно закрывать, наверное, не?)

Share this post


Link to post

Short link
Share on other sites

@sirmax, отлично, первый этап пройден! Поздравляю всех, принимавших участие... (далее идут бурные аплодисменты, переходящие в овацию... шутка)
 
Идем дальше:
 
1. Мона ссылку на место код, дабы проверить реализацию макросов
 
2. По конфигу:
- не хватает по одно кавычке в тэгах в 4 и 5 круге
- в 11 строке напиши как "blindarea" - реальная граница слепой зоны танка (50<= X<=445)", это не будет противоречь нашей "религии", зато старые адепты быстро сообразят что это значит :)))
- чуть позже я напишу единый гайд по механике обзора, моду кругов и конфигу.
- думаю надо:

  • заменить "Simple model (one dynamic circle)" на "Simple model (one dynamic circle for blindarea)" и тогда не будет разночтения как в посте у phantasm, слово динамик имеет ввиду подвижный круг, а не макрос динамической дальности обзора "dynamic"
  • заменить "Extended model (4 circles), for experienced players" на "Extended models (5 circles), for experienced players"
  • добавить в список расширенных кругов круг динамической дальности обзора, раз уж там все круги уже прописаны: { "enabled": true, "distance": "dynamic", "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0x00FF00" }, думаю он логично впишется между кругами со standing и motion

Думаю получившийся в конфиге состав кругов следует считать - составом по умолчанию. Этого достаточно чтобы обычный юзвер смог удовлетворить свои запросы и настроить вывод нужной ему информации без лишних телодвижений, если границы слепой зоны танка ему не достаточно, а нужны более сложные модели.
 
Что касается "необычных" юзверов, то пора перейти ко второму этапу.
 
3. И так этап номер №2.
Теперь надо расширить стилистическую гибкость конфига, дабы творческие юзверы могли задать более сложную логику отображения кругов, например как этого хотел demon2597.
 
Я в посте в самом его конце показал, что в действительности возможно и не потребуется вводить макрос цвета. Может оказаться, что достаточным будут только макросы состояния танка, возвращающие 1 и 0 в зависимости от того стоит танк или движется.
 
А далее уже используя эти макросы опытные конфигуристы смогут сделать так чтобы круги разного цвета сменяли друг друга.
 
Тут надо обсудить реализацию.
 
Как их назвать эти макросы?
 
Что должны возвращать эти макросы? 1 и 0 (!!!пишу по старинке как в посте!!!):

{ "enabled": true, "distance": {{StandingVision}}, "scale": {{standing}}, "thickness": 1.0, "alpha": 60, "color": "0x00FF00"},
{ "enabled": true, "distance": {{StandingVision}}, "scale": {{motion}}, "thickness": 1.0, "alpha": 60, "color": "0x0000FF" },
{ "enabled": true, "distance": {{MotionVision}}, "scale": {{motion}}, "thickness": 1.0, "alpha": 60, "color": "0x00FF00" },
{ "enabled": true, "distance": {{MotionVision}}, "scale": {{standing}}, "thickness": 1.0, "alpha": 60, "color": "0x0000FF" }

а может лучше true и false и тогда можно было бы делать так:

{ "enabled": {{standing}}, "distance": {{StandingVision}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0x00FF00"},
{ "enabled": {{motion}}, "distance": {{StandingVision}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0x0000FF" },
{ "enabled": {{motion}}, "distance": {{MotionVision}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0x00FF00" },
{ "enabled": {{standing}}, "distance": {{MotionVision}}, "scale": 1, "thickness": 1.0, "alpha": 60, "color": "0x0000FF" }

круг виден когда танк стоит или круг виден когда танк едет. Думаю такой вариант воспринимается легче всего.

Edited by StranikS_Scan
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

А есть еще один вариант - вместо макроса состояния, можно ввести поле отображения:

"enabled": true, "visible_in_standing": true, "visible_in_motion": true,"distance": 50, "scale": 1, "thickness": 0.75, "alpha": 60, "color": "0xFFFFFF" }

Это наверно наилучшее решение задачи :)))


Только эти тэги наверно надо в конец записи перенести. 

Share this post


Link to post

Short link
Share on other sites

А есть еще один вариант - вместо макроса состояния, можно ввести поле отображения:

"enabled": true, "visible_in_standing": true, "visible_in_motion": true,"distance": 50, "scale": 1, "thickness": 0.75, "alpha": 60, "color": "0xFFFFFF" }

Это наверно наилучшее решение задачи :)))

Да, как раз хотел предложить похожий вариант:

 

"enabled": true, "state": 3, "distance": 50, "scale": 1, "thickness": 0.75, "alpha": 60, "color": "0xFFFFFF" }

где state =

 1 - standing

 2 - motion

 3 - st+mo

Share this post


Link to post

Short link
Share on other sites

states: [1,3] хотя не, херню написал

Edited by phantasm

Share this post


Link to post

Short link
Share on other sites

states: [1,3]

да ну, с массивом еще заморачиваться

Share this post


Link to post

Short link
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...