sirmax Posted May 28, 2014 Share Posted May 28, 2014 в изложении да, но один нюанс есть: Сюда просится переключение цвета, толщины и прозрачности активного круга, как в текущем варианте: Не, тут как раз речь о том, что актив/пассив далеко не всем нужен, и для него будет как раз отдельный макрос, который и будет "границей слепой зоны".Офф: Может, вообще, по умолчанию собственную гамму цветов хвм сделать, универсальную? Дефолтный конфиг всегда открыт для изменений. Предлагайте, обсуждайте. Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted May 28, 2014 Share Posted May 28, 2014 (edited) я не совсем понял, это сколько? я так понимаю, это динамически меняющаяся дальность обзора танка, с ограничением 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 May 28, 2014 by StranikS_Scan 4 @ Link to comment Short link Share on other sites More sharing options...
nixxxie Posted May 28, 2014 Share Posted May 28, 2014 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. Link to comment Short link Share on other sites More sharing options...
demon2597 Posted May 28, 2014 Share Posted May 28, 2014 (edited) Не, тут как раз речь о том, что актив/пассив далеко не всем нужен, и для него будет как раз отдельный макрос, который и будет "границей слепой зоны". Что означает 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 May 28, 2014 by demon2597 Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 28, 2014 Share Posted May 28, 2014 Так я же говорю, мне допустим нужны два круга, как по 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 снова беда получается. :) Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted May 28, 2014 Share Posted May 28, 2014 (edited) Так я же говорю, мне допустим нужны два круга, как по 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 May 28, 2014 by StranikS_Scan Link to comment Short link Share on other sites More sharing options...
demon2597 Posted May 28, 2014 Share Posted May 28, 2014 (edited) Я понял что ты хочешь получить, но я не понял какими макросами ты решил это сделать. Что возвращают твои макросы 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 May 28, 2014 by demon2597 Link to comment Short link Share on other sites More sharing options...
nixxxie Posted May 28, 2014 Share Posted May 28, 2014 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. Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 29, 2014 Share Posted May 29, 2014 Изложу базовые принципы в манифесте о кругах Вроде готово, проверяйте. "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" } */ ], 3 @ Link to comment Short link Share on other sites More sharing options...
freeman440 Posted May 29, 2014 Share Posted May 29, 2014 получается dynamic" заменят "standing" и "motion"? Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 29, 2014 Share Posted May 29, 2014 получается dynamic" заменят "standing" и "motion"? нет, он "прыгает" при переключении рогов, а "standing" и "motion" - нет Link to comment Short link Share on other sites More sharing options...
phantasm Posted May 29, 2014 Author Share Posted May 29, 2014 "view" теперь такой меня более чем удовлетворяет :) крутота "distance": "blindarea" но тут должно быть dynamic, судя по строке комментария Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 29, 2014 Share Posted May 29, 2014 меня более чем удовлетворяет :) крутота но тут должно быть dynamic, судя по строке комментария оно оба динамические. "dynamic" - это реальный обзор с трубой и без "blindarea" - это тоже самое, но в диапазоне 50 <= X <= 445 Link to comment Short link Share on other sites More sharing options...
phantasm Posted May 29, 2014 Author Share Posted May 29, 2014 "blindarea" - это тоже самое, но в диапазоне 50 <= X <= 445 тогда вообще плюсую люто. всё что можно считает, причём несколькими кругами. вопрос можно закрывать, наверное, не?) Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted May 29, 2014 Share Posted May 29, 2014 (edited) @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 May 29, 2014 by StranikS_Scan 1 @ Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 29, 2014 Share Posted May 29, 2014 1. Мона ссылку на место код, дабы проверить реализацию макросов http://dev.modxvm.com/xvm/src/87b3f3146f845011feb94111d6e599242c5f3c62/src/xvm-as2/src/wot/Minimap/shapes/Circles.as?at=default#cl-203 2. По конфигу: Готово Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted May 29, 2014 Share Posted May 29, 2014 А есть еще один вариант - вместо макроса состояния, можно ввести поле отображения: "enabled": true, "visible_in_standing": true, "visible_in_motion": true,"distance": 50, "scale": 1, "thickness": 0.75, "alpha": 60, "color": "0xFFFFFF" } Это наверно наилучшее решение задачи :))) Только эти тэги наверно надо в конец записи перенести. Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 29, 2014 Share Posted May 29, 2014 А есть еще один вариант - вместо макроса состояния, можно ввести поле отображения: "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 Link to comment Short link Share on other sites More sharing options...
phantasm Posted May 29, 2014 Author Share Posted May 29, 2014 (edited) states: [1,3] хотя не, херню написал Edited May 29, 2014 by phantasm Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 29, 2014 Share Posted May 29, 2014 states: [1,3] да ну, с массивом еще заморачиваться Link to comment Short link Share on other sites More sharing options...
Recommended Posts